Fix system column accesses in ON CONFLICT ... RETURNING. After 277cb789836 ON CONFLICT ... SET ... RETURNING failed with ERROR: virtual tuple table slot does not have system attributes when taking the update path, as the slot used to insert into the table (and then process RETURNING) was defined to be a virtual slot in that commit. Virtual slots don't support system columns except for tableoid and ctid, as the other system columns are AM dependent.
Fix that by using a slot of the table's type. Add tests for system column accesses in ON CONFLICT ... RETURNING. Reported-By: Roby, bisected to the relevant commit by Jeff Janes Author: Andres Freund Discussion: https://postgr.es/m/[email protected] Backpatch: 12-, where the bug was introduced in 277cb789836 Branch ------ REL_12_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/f9257cffef3bb16aba2dbbe05fd8bf0afaa6b1f2 Modified Files -------------- src/backend/executor/nodeModifyTable.c | 9 +++++++-- src/test/regress/expected/update.out | 23 +++++++++++++++++++++++ src/test/regress/sql/update.sql | 15 +++++++++++++++ 3 files changed, 45 insertions(+), 2 deletions(-)
