On Mon, Dec 10, 2012 at 11:51 PM, Andres Freund <and...@2ndquadrant.com>wrote:
> Btw, as an example of the problems caused by renaming: > > postgres=# CREATE TABLE a (id serial primary key); CREATE TABLE b(id > serial primary key, a_id int REFERENCES a); > CREATE TABLE > Time: 137.840 ms > CREATE TABLE > Time: 143.500 ms > postgres=# \d b > Table "public.b" > Column | Type | Modifiers > --------+---------+------------------------------------------------ > id | integer | not null default nextval('b_id_seq'::regclass) > a_id | integer | > Indexes: > "b_pkey" PRIMARY KEY, btree (id) > Foreign-key constraints: > "b_a_id_fkey" FOREIGN KEY (a_id) REFERENCES a(id) > > postgres=# REINDEX TABLE a CONCURRENTLY; > NOTICE: drop cascades to constraint b_a_id_fkey on table b > REINDEX > Time: 248.992 ms > postgres=# \d b > Table "public.b" > Column | Type | Modifiers > --------+---------+------------------------------------------------ > id | integer | not null default nextval('b_id_seq'::regclass) > a_id | integer | > Indexes: > "b_pkey" PRIMARY KEY, btree (id) > Oops. I will fix that in the next version of the patch. There should be an elegant way to change the dependencies at the swap phase. -- Michael Paquier http://michael.otacoo.com