Re: With commit 4e5fe9ad19, range partition missing handling for the NULL partition key
Amit Langote <langote_amit_f8@lab.ntt.co.jp>
From: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
To: amul sul <sulamul@gmail.com>
Cc: Rushabh Lathia <rushabh.lathia@gmail.com>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>,
Robert Haas <robertmhaas@gmail.com>
Date: 2017-11-22T09:06:28Z
Lists: pgsql-hackers
Attachments
- range_null_values-3.patch (text/plain) patch
On 2017/11/22 17:42, amul sul wrote: > On Wed, Nov 22, 2017 at 11:38 AM, Amit Langote wrote: >> On 2017/11/22 13:45, Rushabh Lathia wrote: >>> Attaching patch to fix as well as regression test. >> >> Thanks for the patch. About the code, how about do it like the attached >> instead? >> > > Looks good to me, even we can skip the following change in v2 patch: > > 19 @@ -2560,6 +2559,8 @@ get_partition_for_tuple(Relation relation, > Datum *values, bool *isnull) > 20 */ > 21 part_index = > partdesc->boundinfo->indexes[bound_offset + 1]; > 22 } > 23 + else > 24 + part_index = partdesc->boundinfo->default_index; > 25 } > 26 break; > 27 > > default_index will get assign by following code in get_partition_for_tuple() : > > /* > * part_index < 0 means we failed to find a partition of this parent. > * Use the default partition, if there is one. > */ > if (part_index < 0) > part_index = partdesc->boundinfo->default_index; Good point. Updated patch attached. Thanks, Amit
Commits
-
If a range-partitioned table has no default partition, reject null keys.
- 2d7950f2222c 11.0 landed
-
Centralize executor-related partitioning code.
- 4e5fe9ad19e1 11.0 cited