]> granicus.if.org Git - postgresql/commit
Add test case for EEOP_INNER_SYSVAR/EEOP_OUTER_SYSVAR executor opcodes.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Tue, 10 Jul 2018 13:16:14 +0000 (16:16 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Tue, 10 Jul 2018 13:16:14 +0000 (16:16 +0300)
commit17b715c634d451da3edb221c55c614a7d993c289
tree511803a32459a165edd84b00b97ca052df515501
parent1486f7f981c0052988891677d4e734b14317816c
Add test case for EEOP_INNER_SYSVAR/EEOP_OUTER_SYSVAR executor opcodes.

The EEOP_INNER_SYSVAR and EEOP_OUTER_SYSVAR executor opcodes are not
exercised by normal queries, because setrefs.c will resolve the references
to system columns in the scan nodes already. Join nodes refer to them by
their position in the child node's target list, like user columns.

The only place where those opcodes are used, is in evaluating a trigger's
WHEN condition that references system columns. Trigger evaluation abuses
the INNER/OUTER Vars to refer to the OLD and NEW tuples. The code to handle
the opcodes is pretty straightforward, but it seems like a good idea to
have some test coverage for them, anyway, so that they don't get removed or
broken by accident.

Author: Ashutosh Bapat, with some changes by me.
Discussion: https://www.postgresql.org/message-id/CAFjFpRerUFX=T0nSnCoroXAJMoo-xah9J+pi7+xDUx86PtQmew@mail.gmail.com
src/test/regress/expected/triggers.out
src/test/regress/sql/triggers.sql