Re: ALTER TABLE - Mailing list pgsql-bugs
From | Bruce Momjian |
---|---|
Subject | Re: ALTER TABLE |
Date | |
Msg-id | 200008031317.JAA17857@candle.pha.pa.us Whole thread Raw |
In response to | ALTER TABLE (Gena Gurchonok <gena@rt.mipt.ru>) |
List | pgsql-bugs |
I can confirm that this is a bug, and crashes in the current development tree. > ============================================================================ > POSTGRESQL BUG REPORT TEMPLATE > ============================================================================ > > Your name : Gena Gurchonok > Your email address : gena@rt.mipt.ru > > System Configuration > --------------------- > Architecture (example: Intel Pentium): intel Celeron 500 > Operating System (example: Linux 2.0.26 ELF): 2.2.16 ELF > PostgreSQL version (example: PostgreSQL-7.0): PostgreSQL-7.0.2 > Compiler used (example: gcc 2.8.0): pgcc-2.91.66 > > > Please enter a FULL description of your problem: > ------------------------------------------------ > > When I renaming table using ALTER TABLE, > it doesn't change table name in RI triggers. This results in backend > crash due to invalid arguments for RI_Check trigger procedure. > > > Please describe a way to repeat the problem. Please try to provide a > concise reproducible example, if at all possible: > ---------------------------------------------------------------------- > > CREATE TABLE "pr1" ( > "id" int4 , > PRIMARY KEY ("id") > ); > > CREATE TABLE "fr" ( > "f_id" int4 NOT NULL, > CONSTRAINT fr_fkey FOREIGN KEY (f_id) > REFERENCES pr1(id) > MATCH FULL > ON DELETE RESTRICT > ON UPDATE CASCADE > NOT DEFERRABLE > INITIALLY IMMEDIATE > ); > > insert into pr1 values(1); > insert into fr values(1); > > alter table fr rename to fr2; > > delete from pr1; > > As the result we have: > pqReadData() -- backend closed the channel unexpectedly. > This probably means the backend terminated abnormally > before or while processing the request. > The connection to the server was lost. Attempting reset: Failed. > > pg_dump gives > > \connect - gena > CREATE TABLE "pr1" ( > "id" int4 NOT NULL, > PRIMARY KEY ("id") > ); > CREATE TABLE "fr2" ( > "f_id" int4 NOT NULL > ); > COPY "pr1" FROM stdin; > 1 > \. > COPY "fr2" FROM stdin; > 1 > \. > CREATE CONSTRAINT TRIGGER "fr_fkey" AFTER DELETE ON "pr1" NOT DEFERRABLE INITIALLY IMMEDIATE FOR EACH ROW EXECUTE PROCEDURE"RI_FKey_restrict_del" ('fr_fkey', 'fr', 'pr1', 'FULL', 'f_id', 'id'); > CREATE CONSTRAINT TRIGGER "fr_fkey" AFTER UPDATE ON "pr1" NOT DEFERRABLE INITIALLY IMMEDIATE FOR EACH ROW EXECUTE PROCEDURE"RI_FKey_cascade_upd" ('fr_fkey', 'fr', 'pr1', 'FULL', 'f_id', 'id'); > CREATE CONSTRAINT TRIGGER "fr_fkey" AFTER INSERT OR UPDATE ON "fr2" NOT DEFERRABLE INITIALLY IMMEDIATE FOR EACH ROW EXECUTEPROCEDURE "RI_FKey_check_ins" ('fr_fkey', 'fr', 'pr1', 'FULL', 'f_id', 'id'); > > please take a look at TRIGGERS' arguments > > > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
pgsql-bugs by date: