pgsql: Remove small inefficiency in ExecARDeleteTriggers/ExecARUpdateTr

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Remove small inefficiency in ExecARDeleteTriggers/ExecARUpdateTr
Date: 2021-03-31 00:01:50
Message-ID: E1lROIw-0004Z1-Qa@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Remove small inefficiency in ExecARDeleteTriggers/ExecARUpdateTriggers.

Whilst poking at nodeModifyTable.c, I chanced to notice that while
its calls to ExecBR*Triggers and ExecIR*Triggers are protected by
tests to see if there are any relevant triggers to fire, its calls
to ExecAR*Triggers are not; the latter functions do the equivalent
tests themselves. This seems possibly reasonable given the more
complex conditions involved, but what's less reasonable is that
the ExecAR* functions aren't careful to do no work when there is
no work to be done. ExecARInsertTriggers gets this right, but the
other two will both force creation of a slot that the query may
have no use for. ExecARUpdateTriggers additionally performed a
usually-useless ExecClearTuple() on that slot. This is probably
all pretty microscopic in real workloads, but a cycle shaved is a
cycle earned.

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/65158f497a7d7523ad438b2034d01a560fafe6bd

Modified Files
--------------
src/backend/commands/trigger.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Michael Paquier 2021-03-31 00:14:30 pgsql: Add support for --extension in pg_dump
Previous Message Bruce Momjian 2021-03-30 23:46:34 pgsql: adjust dblink regression expected output for commit 5da9868ed9