BUG #15247: At 'ALTER TABLE ADD COLUMN fast default' , Set attmissingval to NULL in the pg_attribute, query fail

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: liguangxian1995(at)gmail(dot)com
Subject: BUG #15247: At 'ALTER TABLE ADD COLUMN fast default' , Set attmissingval to NULL in the pg_attribute, query fail
Date: 2018-06-19 04:19:55
Message-ID: 152938199549.1445.15943776243848338882@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 15247
Logged by: guangxian li
Email address: liguangxian1995(at)gmail(dot)com
PostgreSQL version: 11beta1
Operating system: debian 6.4.0
Description:

Dear developer:
Steps:
(1) create table test(a int);
(2) insert into test values(1),(2),(3);
(3) alter table test add b int not null default 0;
(4) update pg_attribute set attmissingval = NULL where attname = 'b';
(5) select b from test;
Then,query the b field from the test table(select b from test;) , lead to
server closed the connection unexpectedly .

I think this a bug ,or not. Meanwhile,I think we should add an statement
--if(att->atthasmissing && tupleDesc->constr->missing) .Not Assert().

So, Hope to get your reply,Thanks again.



Next is a patch.

--- a/src/backend/access/common/heaptuple.c
+++ b/src/backend/access/common/heaptuple.c
@@ -91,7 +91,7 @@ getmissingattr(TupleDesc tupleDesc,

att = TupleDescAttr(tupleDesc, attnum - 1);

- if (att->atthasmissing)
+ if (att->atthasmissing && tupleDesc->constr->missing)
{
AttrMissing *attrmiss;

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Michael Paquier 2018-06-19 05:50:17 Re: BUG #15247: At 'ALTER TABLE ADD COLUMN fast default' , Set attmissingval to NULL in the pg_attribute, query fail
Previous Message Tom Lane 2018-06-19 03:06:23 Re: BUG #15246: Does not allow an INOUT parameter to receive values when its data type is a user-defined data type.