Skip site navigation (1) Skip section navigation (2)

ALTER TABLE

From: Gena Gurchonok <gena(at)rt(dot)mipt(dot)ru>
To: pgsql-bugs(at)postgresql(dot)org
Subject: ALTER TABLE
Date: 2000-08-03 10:26:39
Message-ID: 0601.000803@rt.mipt.ru (view raw or flat)
Thread:
Lists: pgsql-bugs
============================================================================
                         POSTGRESQL BUG REPORT TEMPLATE
============================================================================

Your name               : Gena Gurchonok
Your email address      : gena(at)rt(dot)mipt(dot)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 EXECUTE PROCEDURE "RI_FKey_check_ins" ('fr_fkey', 'fr', 'pr1', 'FULL', 'f_id', 'id');

please take a look at TRIGGERS' arguments



Responses

pgsql-bugs by date

Next:From: Bruce MomjianDate: 2000-08-03 13:17:16
Subject: Re: ALTER TABLE
Previous:From: Simon BantonDate: 2000-08-02 12:45:05
Subject: LinuxPPC/PG 7.0.2 .ctl file handling and \i comment parsing

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group