pgsql: Check for pending trigger events on far end when dropping an FK - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Check for pending trigger events on far end when dropping an FK
Date
Msg-id E1cALUr-0000mG-0Q@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Check for pending trigger events on far end when dropping an FK constraint.

When dropping a foreign key constraint with ALTER TABLE DROP CONSTRAINT,
we refuse the drop if there are any pending trigger events on the named
table; this ensures that we won't remove the pg_trigger row that will be
consulted by those events.  But we should make the same check for the
referenced relation, else we might remove a due-to-be-referenced pg_trigger
row for that relation too, resulting in "could not find trigger NNN" or
"relation NNN has no triggers" errors at commit.  Per bug #14431 from
Benjie Gillam.  Back-patch to all supported branches.

Report: <20161124114911.6530.31200@wrigleys.postgresql.org>

Branch
------
REL9_2_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/6a363a4c252329f1f97d80526eb55b3301abf1f2

Modified Files
--------------
src/backend/commands/tablecmds.c          | 18 ++++++++++++++++++
src/test/regress/expected/foreign_key.out | 13 +++++++++++++
src/test/regress/sql/foreign_key.sql      | 13 +++++++++++++
3 files changed, 44 insertions(+)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Check for pending trigger events on far end when dropping an FK
Next
From: Tom Lane
Date:
Subject: pgsql: Check for pending trigger events on far end when dropping an FK