postgresql/src/include/executor
Andres Freund ff11e7f4b9 Use slots in trigger infrastructure, except for the actual invocation.
In preparation for abstracting table storage, convert trigger.c to
track tuples in slots. Which also happens to make code calling
triggers simpler.

As the calling interface for triggers themselves is not changed in
this patch, HeapTuples still are extracted from the slot at that
time. But that's handled solely inside trigger.c, not visible to
callers. It's quite likely that we'll want to revise the external
trigger interface, but that's a separate large project.

As part of this work the slots used for old/new/return tuples are
moved from EState into ResultRelInfo, as different updated tables
might need different slots. The slots are now also now created
on-demand, which is good both from an efficiency POV, but also makes
the modifying code simpler.

Author: Andres Freund, Amit Khandekar and Ashutosh Bapat
Discussion: https://postgr.es/m/20180703070645.wchpu5muyto5n647@alap3.anarazel.de
2019-02-26 20:31:38 -08:00
..
execExpr.h Renaming for new subscripting mechanism 2019-02-01 12:50:32 -03:00
execParallel.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
execPartition.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
execdebug.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
execdesc.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
executor.h Use slots in trigger infrastructure, except for the actual invocation. 2019-02-26 20:31:38 -08:00
functions.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
hashjoin.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
instrument.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeAgg.h Change function call information to be variable length. 2019-01-26 14:17:52 -08:00
nodeAppend.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeBitmapAnd.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeBitmapHeapscan.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeBitmapIndexscan.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeBitmapOr.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeCtescan.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeCustom.h Rename nodes/relation.h to nodes/pathnodes.h. 2019-01-29 16:49:25 -05:00
nodeForeignscan.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeFunctionscan.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeGather.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeGatherMerge.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeGroup.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeHash.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeHashjoin.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeIndexonlyscan.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeIndexscan.h Don't include genam.h from execnodes.h and relscan.h anymore. 2019-01-14 17:02:12 -08:00
nodeLimit.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeLockRows.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeMaterial.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeMergeAppend.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeMergejoin.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeModifyTable.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeNamedtuplestorescan.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeNestloop.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeProjectSet.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeRecursiveunion.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeResult.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeSamplescan.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeSeqscan.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeSetOp.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeSort.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeSubplan.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeSubqueryscan.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeTableFuncscan.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeTidscan.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeUnique.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeValuesscan.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeWindowAgg.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeWorktablescan.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
spi.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
spi_priv.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
tablefunc.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
tqueue.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
tstoreReceiver.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
tuptable.h Store table oid and tuple's tid in tuple slots directly. 2019-02-26 20:31:16 -08:00