Re: With commit 4e5fe9ad19, range partition missing handling for theNULL partition key - Mailing list pgsql-hackers

From Amit Langote
Subject Re: With commit 4e5fe9ad19, range partition missing handling for theNULL partition key
Date
Msg-id 5aa92e95-186d-e63f-b320-59338f918c72@lab.ntt.co.jp
Whole thread Raw
In response to With commit 4e5fe9ad19, range partition missing handling for the NULLpartition key  (Rushabh Lathia <rushabh.lathia@gmail.com>)
Responses Re: With commit 4e5fe9ad19, range partition missing handling for theNULL partition key  (amul sul <sulamul@gmail.com>)
List pgsql-hackers
Hi Rushabh,

On 2017/11/22 13:45, Rushabh Lathia wrote:
> Consider the below test:
> 
> CREATE TABLE range_tab(a int, b int) PARTITION BY RANGE(a);
> CREATE TABLE range_tab_p1 PARTITION OF range_tab FOR VALUES FROM (minvalue)
> TO (10);
> CREATE TABLE range_tab_p2 PARTITION OF range_tab FOR VALUES FROM (10) TO
> (20);
> CREATE TABLE range_tab_p3 PARTITION OF range_tab FOR VALUES FROM (20) TO
> (maxvalue);
> 
> INSERT INTO range_tab VALUES(NULL, 10);
> 
> Above insert should fail with an error "no partition of relation found for
> row".
> 
> Looking further I found that, this behaviour is changed after below commit:
> 
> commit 4e5fe9ad19e14af360de7970caa8b150436c9dec
> Author: Robert Haas <rhaas@postgresql.org>
> Date:   Wed Nov 15 10:23:28 2017 -0500
> 
>     Centralize executor-related partitioning code.
> 
>     Some code is moved from partition.c, which has grown very quickly
> lately;
>     splitting the executor parts out might help to keep it from getting
>     totally out of control.  Other code is moved from execMain.c.  All is
>     moved to a new file execPartition.c.  get_partition_for_tuple now has
>     a new interface that more clearly separates executor concerns from
>     generic concerns.
> 
>     Amit Langote.  A slight comment tweak by me.
> 
> Before above commit insert with NULL partition key in the range partition
> was throwing a proper error.

Oops, good catch.

> Attaching patch to fix as well as regression test.

Thanks for the patch.  About the code, how about do it like the attached
instead?

Thanks,
Amit

Attachment

pgsql-hackers by date:

Previous
From: Craig Ringer
Date:
Subject: Re: Failed to delete old ReorderBuffer spilled files
Next
From: Fabien COELHO
Date:
Subject: Re: [HACKERS] [WIP] Zipfian distribution in pgbench