Re: BUG #15212: Default values in partition tables don't work as expected and allow NOT NULL violation

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp>
Cc: Amit Langote <amitlangote09(at)gmail(dot)com>, Ashutosh Bapat <ashutosh(dot)bapat(at)enterprisedb(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Jürgen Strobel <juergen+postgresql(at)strobel(dot)info>
Subject: Re: BUG #15212: Default values in partition tables don't work as expected and allow NOT NULL violation
Date: 2018-11-09 15:59:43
Message-ID: 20181109155943.xnlbcyzp7crnyjmo@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

On 2018-Nov-09, Amit Langote wrote:

> Or is it a *bug* of tuple-routing that it doesn't substitute default
> values that may be defined for partitions? It kind of looks like one if
> you see an example like this.
>
> create table p (a int, b int) partition by list (a);
> create table p1 partition of p (b not null default 1) for values in (1);
> insert into p1 values (1);
> table p;
> a │ b
> ───┼───
> 1 │ 1
> (1 row)
>
> insert into p values (1);
> ERROR: null value in column "b" violates not-null constraint
> DETAIL: Failing row contains (1, null).

I don't know. I wonder if the bug isn't that we allow the default to be
specified for the partition at all -- why shouldn't we just reject that
with an error?

See this example, where the inserts give values that could be said to be
inconsistent:

create table p (a int , b int default 3) partition by list (a);
create table p1 partition of p (b default 42) for values in (1);
insert into p (a) values (1);
insert into p1 (a) values (1);
select * from p;

a │ b
───┼────
1 │ 3
1 │ 42
(2 filas)

--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Joe Conway 2018-11-09 16:02:21 Re: Compatibility issues with version 9.5
Previous Message PG Bug reporting form 2018-11-09 15:47:59 BUG #15495: Ldap authentication not working with multiple server in Postgresql 11

Browse pgsql-hackers by date

  From Date Subject
Next Message Konstantin Knizhnik 2018-11-09 16:08:58 Re: [HACKERS] Surjective functional indexes
Previous Message Adam Berlin 2018-11-09 15:51:23 Re: COPY FROM WHEN condition