pgsql: Improve tests for whether we can skip queueing RI enforcement tr

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Improve tests for whether we can skip queueing RI enforcement tr
Date: 2012-06-20 00:08:00
Message-ID: E1Sh8Sm-0002OM-Lu@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Improve tests for whether we can skip queueing RI enforcement triggers.

During an update of a PK row, we can skip firing the RI trigger if any old
key value is NULL, because then the row could not have had any matching
rows in the FK table. Conversely, during an update of an FK row, the
outcome is determined if any new key value is NULL. In either case it
becomes unnecessary to compare individual key values.

This patch was inspired by discussion of Vik Reykja's patch to use IS NOT
DISTINCT semantics for the key comparisons. In the event there is no need
for that and so this patch looks nothing like his, but he should still get
credit for having re-opened consideration of the trigger skip logic.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/cfa0f4255bb0f5550d37a01c4d8fe2966d20040c

Modified Files
--------------
src/backend/commands/trigger.c | 31 +++------
src/backend/utils/adt/ri_triggers.c | 129 ++++++++++++++++++++++++++++-------
src/include/commands/trigger.h | 8 +-
3 files changed, 120 insertions(+), 48 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Magnus Hagander 2012-06-20 09:40:13 Re: pgsql: Remove confusing half sentence from legal notice
Previous Message Tom Lane 2012-06-19 22:34:07 pgsql: Add pgbench option to add foreign key constraints to the standar