Re: ALTER RENAME and indexes

Поиск
Список
Период
Сортировка
От Stephan Szabo
Тема Re: ALTER RENAME and indexes
Дата
Msg-id Pine.BSF.4.21.0110070400210.72409-100000@megazone23.bigpanda.com
обсуждение исходный текст
Ответ на Re: ALTER RENAME and indexes  (Brent Verner <brent@rcfile.org>)
Ответы Re: ALTER RENAME and indexes  (Brent Verner <brent@rcfile.org>)
Список pgsql-hackers
On Sat, 6 Oct 2001, Brent Verner wrote:

> On 06 Oct 2001 at 20:13 (-0400), Rod Taylor wrote:
> | Of course, in 7.1 foreign key constraints become rather confused when
> | you rename columns on them.
> | 
> | create table parent (id serial);
> | create table child (id int4 references parent(id) on update cascade);
> | alter table parent rename column id to anotherid;
> | alter table child rename column id to junk;
> | insert into child values (1);
> | 
> | -> ERROR:  constraint <unnamed>: table child does now have an
> | attribute id
> 
> ok, I see where this breaks. The args to the RI_ConstraintTrigger_%d
> are written into the pg_trigger tuple like so..
> 
>   '<unnamed>\000child\000parent\000UNSPECIFIED\000id\000id\000'
> 
> There are really two approaches, AFAICS.
> 
> 1) modify this tgargs value to reflect the modified column name(s).
> 2) modify <whatever uses these args> to use the oid instead of
>    the column names, and modify CreateTrigger to reflect this change..
> 
> #2 seems to be the most bulletproof approach, so I'm looking
> into hacking this up right now.  Any comments would be much 
> appreciated about any (better) ways to fix this problem.

#2 also requires changes to dump/restore stuff, since AFAIK
it currently dumps create constraint trigger statements and the
oids won't be known for the restore, but this is probably a good
idea in general.




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Brent Verner
Дата:
Сообщение: Re: ALTER RENAME and indexes
Следующее
От: Brent Verner
Дата:
Сообщение: Re: ALTER RENAME and indexes