Re: BUG #16386: drop contraint in inherited table is missing in pg_dump backup

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: Euler Taveira <euler(dot)taveira(at)2ndquadrant(dot)com>, pgsql-bugs(at)lists(dot)postgresql(dot)org, szittya314(at)gmail(dot)com
Subject: Re: BUG #16386: drop contraint in inherited table is missing in pg_dump backup
Date: 2020-04-24 16:08:00
Message-ID: 4072.1587744480@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> writes:
> On 2020-Apr-24, Euler Taveira wrote:
>> On Fri, 24 Apr 2020 at 07:09, PG Bug reporting form <noreply(at)postgresql(dot)org>
>> wrote:
>>> create table b (aaa int primary key,bb date );
>>> create table A (id int primary key) inherits (B);
>>> alter table a alter column aaa drop not null;

>> It does not make sense to exclude a not null constraint on an inherited
>> table because column "aaa" can be null in table "a" but a SELECT in table
>> "b" will return a NULL for a primary key (ugh). It is just one of the ways
>> to shoot yourself in the foot. If you check CREATE TABLE synopsis, there
>> isn't NO INHERIT for not null constraints. Maybe it is worth adding a note
>> in CREATE TABLE.

> I agree with your analysis, but in that case we should make the DROP NOT
> NULL throw an error instead of proceeding.

Indeed, but we lack the catalog infrastructure to do that reasonably.
If we ever get around to creating pg_constraint entries for NOT NULL
constraints, it'd be simple to do, since those would carry info about
whether or not the constraint is inherited. (Weren't you working on
that awhile ago?)

regards, tom lane

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message David G. Johnston 2020-04-24 16:08:56 Re: Queries getting older values (autocommit enabled)
Previous Message Eudald Valcàrcel Lacasa 2020-04-24 16:03:42 Queries getting older values (autocommit enabled)