• Tom Lane's avatar
    Improve tests for whether we can skip queueing RI enforcement triggers. · cfa0f425
    Tom Lane authored
    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.
    cfa0f425
trigger.c 134 KB