Re: [HACKERS] fix empty array expression in get_qual_for_list()

Поиск
Список
Период
Сортировка
От Jeevan Ladhe
Тема Re: [HACKERS] fix empty array expression in get_qual_for_list()
Дата
Msg-id CAOgcT0OQnK3G5SghCUvO=DfXc_xO5tnVD3ojMn-n+Tjse5VKAg@mail.gmail.com
обсуждение исходный текст
Ответ на [HACKERS] fix empty array expression in get_qual_for_list()  (Jeevan Ladhe <jeevan.ladhe@enterprisedb.com>)
Список pgsql-hackers
Here is an example:

create table t1 ( a int) partition by list (a);
create table t11 partition of t1 for values in (null);

Current constraints:
postgres=# \d+ t11;
                                    Table "public.t11"
 Column |  Type   | Collation | Nullable | Default | Storage | Stats target | Description 
--------+---------+-----------+----------+---------+---------+--------------+-------------
 a      | integer |           |          |         | plain   |              | 
Partition of: t1 FOR VALUES IN (NULL)
Partition constraint: ((a IS NULL) OR (a = ANY (ARRAY[]::integer[])))

Constraints after fix:
postgres=# \d+ t11;
                                    Table "public.t11"
 Column |  Type   | Collation | Nullable | Default | Storage | Stats target | Description 
--------+---------+-----------+----------+---------+---------+--------------+-------------
 a      | integer |           |          |         | plain   |              | 
Partition of: t1 FOR VALUES IN (NULL)
Partition constraint: (a IS NULL)


Regards,
Jeevan Ladhe

On Mon, Jun 26, 2017 at 4:53 PM, Jeevan Ladhe <jeevan.ladhe@enterprisedb.com> wrote:
Hi,

In case of list partitioned table:
1. If there is a partition accepting only null values and nothing else, then
currently the partition constraints for such a partition are constructed as
"((a IS NULL) OR (a = ANY (ARRAY[]::integer[])))".
I think there it is better to avoid constructing an empty array to avoid
executing ANY expression.

2.Also, we are constructing an expression using index 0 of arrays in
PartitionKey since currently we have only one column for list partition in key,
added an assert for this.

PFA.

Regards,
Jeevan Ladhe

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Jeevan Ladhe
Дата:
Сообщение: [HACKERS] fix empty array expression in get_qual_for_list()
Следующее
От: Tom Lane
Дата:
Сообщение: Re: [HACKERS] A mistake in a comment