From: | Daniel Westermann <daniel(dot)westermann(at)dbi-services(dot)com> |
---|---|
To: | amul sul <sulamul(at)gmail(dot)com> |
Cc: | pgsql-general <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: PG11 Hash partitioning and null values in the partition key |
Date: | 2018-07-14 04:22:04 |
Message-ID: | 1150806919.726.1531542123999.JavaMail.zimbra@dbi-services.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi,
given this setup:
create table part2 ( a int, list varchar(10) ) partition by hash (a);
create table part2_1 partition of part2 FOR VALUES WITH (MODULUS 3, REMAINDER 0);
create table part2_2 partition of part2 FOR VALUES WITH (MODULUS 3, REMAINDER 1);
create table part2_3 partition of part2 FOR VALUES WITH (MODULUS 3, REMAINDER 2);
insert into part2 (a,list) values (1,'aaa');
insert into part2 (a,list) values (2,'bbb');
insert into part2 (a,list) values (3,'ccc');
... it is possible to insert rows like this which will always go to the first partition:
insert into part2 (a,list) values (null,'ddd');
insert into part2 (a,list) values (null,'eee');
select * from part2_1;
a | list
---+------
2 | bbb
| ddd
| eee
(3 rows)
I suppose this is intended but I could not find anything in the documentation about that. Can someone please clarify the logic behind that?
>> The calculated hash value for the null value will be zero, therefore, it will fall to the partition having remainder zero.
Thank you, Amul
From | Date | Subject | |
---|---|---|---|
Next Message | Charles Clavadetscher | 2018-07-14 06:22:51 | RE: Read only to schema |
Previous Message | Alvaro Herrera | 2018-07-13 17:05:58 | Re: ERROR: found multixact from before relminmxid |