pgsql: Remove small inefficiency in ExecARDeleteTriggers/ExecARUpdateTr

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Remove small inefficiency in ExecARDeleteTriggers/ExecARUpdateTr
Дата
Msg-id E1lROIw-0004Z1-Qa@gemulon.postgresql.org
обсуждение исходный текст
Список 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(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: pgsql: adjust dblink regression expected output for commit 5da9868ed9
Следующее
От: Michael Paquier
Дата:
Сообщение: pgsql: Add support for --extension in pg_dump