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, thencurrently 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 avoidexecuting ANY expression.2.Also, we are constructing an expression using index 0 of arrays inPartitionKey since currently we have only one column for list partition in key,added an assert for this.PFA.Regards,Jeevan Ladhe
В списке pgsql-hackers по дате отправления: