]> granicus.if.org Git - postgresql/commit
Check for pending trigger events on far end when dropping an FK constraint.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 25 Nov 2016 18:44:47 +0000 (13:44 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 25 Nov 2016 18:44:47 +0000 (13:44 -0500)
commitbf5fe7bfa0e8bdc87be94b98bbdcb26054a6b75c
treeaeff13547d034af4940b2858d633b2f1678d7011
parent81f92a55c7bb920a7b915ae0e022a8488126ec22
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>
src/backend/commands/tablecmds.c
src/test/regress/expected/foreign_key.out
src/test/regress/sql/foreign_key.sql