Re: [COMMITTERS] pgsql: Add a WHEN clause to CREATE TRIGGER, allowing a boolean - Mailing list pgsql-hackers

From Robert Haas
Subject Re: [COMMITTERS] pgsql: Add a WHEN clause to CREATE TRIGGER, allowing a boolean
Date
Msg-id 603c8f070911201412k2f023565lb8735065baf35a3@mail.gmail.com
Whole thread Raw
In response to Re: [COMMITTERS] pgsql: Add a WHEN clause to CREATE TRIGGER, allowing a boolean  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On Fri, Nov 20, 2009 at 5:05 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> Random thought: would it be possible to use something like this to
>> optimize foreign key constraints, by not firing them if none of the
>> relevant columns have been updated?
>
> There already is code in there to do that; see RI_FKey_keyequal_upd_fk
> and RI_FKey_keyequal_upd_pk.

*scratches head*  Hmm, I see EXPLAIN showing time & calls logged
against fk triggers even when I don't update any columns, unless the
existing value is NULL.  But maybe I'm doing something strange, or
misinterpreting the output.

> Earlier in the discussion of this patch I had suggested eliminating the
> special-case code for FKs in favor of using a WHEN clause, but that
> would probably not fly unless we can make the WHEN-based implementation
> just as fast as the bespoke code; which seems unlikely.

Yeah.

...Robert


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [COMMITTERS] pgsql: Add a WHEN clause to CREATE TRIGGER, allowing a boolean
Next
From: Jan Urbański
Date:
Subject: Re: Partitioning option for COPY