BUG #5688: ALTER TABLE ALTER col TYPE newtype fails if col is named in an UPDATE OF col trigger
От | Daniel Grace |
---|---|
Тема | BUG #5688: ALTER TABLE ALTER col TYPE newtype fails if col is named in an UPDATE OF col trigger |
Дата | |
Msg-id | 201010012147.o91LlJGk097773@wwwmaster.postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #5688: ALTER TABLE ALTER col TYPE newtype fails if col is named in an UPDATE OF col trigger
|
Список | pgsql-bugs |
The following bug has been logged online: Bug reference: 5688 Logged by: Daniel Grace Email address: dgrace@wingsnw.com PostgreSQL version: 9.0.0 Operating system: Windows XP 32-bit Description: ALTER TABLE ALTER col TYPE newtype fails if col is named in an UPDATE OF col trigger Details: Given the following state: CREATE TABLE foo ( bar TEXT, baz TEXT ); CREATE OR REPLACE FUNCTION foo_trigger_proc() RETURNS TRIGGER LANGUAGE PLPGSQL AS $$BEGIN RETURN NEW; END$$; CREATE TRIGGER foo_trigger BEFORE INSERT OR UPDATE OF bar ON foo FOR EACH ROW EXECUTE PROCEDURE foo_trigger_proc(); The following happens: > ALTER TABLE foo ALTER bar TYPE VARCHAR; Fails: ERROR: unexpected object depending on column: trigger foo_trigger on table foo SQL state: XX000 > ALTER TABLE foo ALTER baz TYPE VARCHAR; Succeeds (because baz is not named in the trigger) > ALTER TABLE foo DROP bar; Correctly produces an error message: ERROR: cannot drop table foo column bar because other objects depend on it DETAIL: trigger foo_trigger on table foo depends on table foo column bar > ALTER TABLE foo DROP bar CASCADE; Correctly removes bar and foo_trigger ALTER TABLE foo RENAME bar and other variations of variations of ALTER column seem to function correctly.
В списке pgsql-bugs по дате отправления: