Thread: [COMMITTERS] pgsql: Fix transition tables for ON CONFLICT.

[COMMITTERS] pgsql: Fix transition tables for ON CONFLICT.

From
Andrew Gierth
Date:
Fix transition tables for ON CONFLICT.

We now disallow having triggers with both transition tables and ON
INSERT OR UPDATE (which was a PG extension to the spec anyway),
because in this case it's not at all clear how the transition tables
should work for an INSERT ... ON CONFLICT query.  Separate ON INSERT
and ON UPDATE triggers with transition tables are allowed, and the
transition tables for these reflect only the inserted and only the
updated tuples respectively.

Patch by Thomas Munro

Discussion: https://postgr.es/m/CAEepm%3D11KHQ0JmETJQihSvhZB5mUZL2xrqHeXbCeLhDiqQ39%3Dw%40mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/8c55244ae379822d8bf62f6db0b5b1f7637eea3a

Modified Files
--------------
src/backend/commands/trigger.c         | 58 ++++++++++++++++++++++++++++++----
src/include/commands/trigger.h         | 14 ++++++--
src/test/regress/expected/plpgsql.out  |  9 ++++--
src/test/regress/expected/triggers.out | 38 ++++++++++++++++++++++
src/test/regress/sql/plpgsql.sql       | 10 ++++--
src/test/regress/sql/triggers.sql      | 39 +++++++++++++++++++++++
6 files changed, 155 insertions(+), 13 deletions(-)