pgsql: Fix SET CONSTRAINTS .. DEFERRED on partitioned tables - Mailing list pgsql-committers

From Alvaro Herrera
Subject pgsql: Fix SET CONSTRAINTS .. DEFERRED on partitioned tables
Date
Msg-id E1iSla7-0005iN-W6@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix SET CONSTRAINTS .. DEFERRED on partitioned tables

SET CONSTRAINTS ... DEFERRED failed on partitioned tables, because of a
sanity check that ensures that the affected constraints have triggers.
On partitioned tables, the triggers are in the leaf partitions, not in
the partitioned relations themselves, so the sanity check fails.
Removing the sanity check solves the problem, because the code needed to
support the case is already there.

Backpatch to 11.

Note: deferred unique constraints are not affected by this bug, because
they do have triggers in the parent partitioned table.  I did not add a
test for this scenario.

Discussion: https://postgr.es/m/20191105212915.GA11324@alvherre.pgsql

Branch
------
REL_12_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/b75ccddcd6f747dc386411eeac6bbfdface14a2c

Modified Files
--------------
src/backend/commands/trigger.c            | 10 ------
src/test/regress/expected/foreign_key.out | 56 +++++++++++++++++++++++++++++--
src/test/regress/sql/foreign_key.sql      | 45 ++++++++++++++++++++++++-
3 files changed, 97 insertions(+), 14 deletions(-)


pgsql-committers by date:

Previous
From: Fujii Masao
Date:
Subject: Re: pgsql: doc: Further clarify how recovery target parameters are applied
Next
From: Alvaro Herrera
Date:
Subject: pgsql: Fix SET CONSTRAINTS .. DEFERRED on partitioned tables