Re: ALTER TABLE .... make constraint DEFERRABLE - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: ALTER TABLE .... make constraint DEFERRABLE
Date
Msg-id 201006030106.o5316Cv00489@momjian.us
Whole thread Raw
In response to ALTER TABLE .... make constraint DEFERRABLE  (Simon Riggs <simon@2ndQuadrant.com>)
Responses Re: ALTER TABLE .... make constraint DEFERRABLE  (Dean Rasheed <dean.a.rasheed@gmail.com>)
Re: ALTER TABLE .... make constraint DEFERRABLE  (Simon Riggs <simon@2ndQuadrant.com>)
List pgsql-hackers
Simon Riggs wrote:
> 
> Deferrable unique constraints seem an interesting feature, though I have
> either some questions or some issues, not sure which.
> 
> I don't seem to be able to find any way to do an ALTER TABLE that adds
> this new capability to an existing table.

I was able to do it:
test=> create table test (x int unique DEFERRABLE INITIALLY DEFERRED);NOTICE:  CREATE TABLE / UNIQUE will create
implicitindex "test_x_key"for table "test"CREATE TABLE
 
test=> alter table test add column y int;ALTER TABLE
test=> alter table test add unique (y) DEFERRABLE INITIALLY DEFERRED;NOTICE:  ALTER TABLE / ADD UNIQUE will create
implicitindex"test_y_key" for table "test"ALTER TABLE
 

Is that what you were asking?

> There is no way to add a constraint via a CREATE TABLE AS SELECT, so
> that means there is no way to use the feature at all in that case.

Uh, CREATE TABLE AS SELECT seems to be very limited, but I have not
heard any complaints about it before.

> Also, foreign keys can't be defined that refer to a deferrable primary
> key. That isn't mentioned at all in the manual with regard to the
> DEFERRABLE clause, though it is mentioned in the FK section. You get
> this error message
> ERROR:  cannot use a deferrable unique constraint for referenced table
> 
> The use case for this feature looks a little narrow at present. Can we
> do something about usability?

Not sure why that was a limitation.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + None of us is going to be here forever. +


pgsql-hackers by date:

Previous
From: Stephen Frost
Date:
Subject: Re: Keepalive for max_standby_delay
Next
From: Takahiro Itagaki
Date:
Subject: Re: [BUGS] BUG #5487: dblink failed with 63 bytes connection names