postgresql/src/include/executor
Tom Lane 20d3fe9009 In INSERT/UPDATE, use the table's real tuple descriptor as target.
Previously, ExecInitModifyTable relied on ExecInitJunkFilter,
and thence ExecCleanTypeFromTL, to build the target descriptor from
the query tlist.  While we just checked (in ExecCheckPlanOutput)
that the tlist produces compatible output, this is not a great
substitute for the relation's actual tuple descriptor that's
available from the relcache.  For one thing, dropped columns will
not be correctly marked attisdropped; it's a bit surprising that
we've gotten away with that this long.  But the real reason for
being concerned with this is that using the table's descriptor means
that the slot will have correct attrmissing data, allowing us to
revert the klugy fix of commit ba9f18abd.  (This commit undoes
that one's changes in trigger.c, but keeps the new test case.)
Thus we can solve the bogus-trigger-tuple problem with fewer cycles
rather than more.

No back-patch, since this doesn't fix any additional bug, and it
seems somewhat more likely to have unforeseen side effects than
ba9f18abd's narrow fix.

Discussion: https://postgr.es/m/16644-5da7ef98a7ac4545@postgresql.org
2020-10-26 11:36:53 -04:00
..
execdebug.h Implement Incremental Sort 2020-04-06 21:35:10 +02:00
execdesc.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
execExpr.h Move resolution of AlternativeSubPlan choices to the planner. 2020-09-27 12:51:28 -04:00
execParallel.h Add infrastructure to track WAL usage. 2020-04-04 10:02:08 +05:30
execPartition.h Remove PartitionRoutingInfo struct. 2020-10-19 14:42:55 +03:00
executor.h In INSERT/UPDATE, use the table's real tuple descriptor as target. 2020-10-26 11:36:53 -04:00
functions.h Fix list-munging bug that broke SQL function result coercions. 2020-10-19 14:33:09 -04:00
hashjoin.h Add hash_mem_multiplier GUC. 2020-07-29 14:14:58 -07:00
instrument.h Fix comment in instrument.h 2020-07-31 14:17:29 +09:00
nodeAgg.h HashAgg: use better cardinality estimate for recursive spilling. 2020-07-28 23:16:28 -07:00
nodeAppend.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeBitmapAnd.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeBitmapHeapscan.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeBitmapIndexscan.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeBitmapOr.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeCtescan.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeCustom.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeForeignscan.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeFunctionscan.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeGather.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeGatherMerge.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeGroup.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeHash.h Add hash_mem_multiplier GUC. 2020-07-29 14:14:58 -07:00
nodeHashjoin.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeIncrementalSort.h Implement Incremental Sort 2020-04-06 21:35:10 +02:00
nodeIndexonlyscan.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeIndexscan.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeLimit.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeLockRows.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeMaterial.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeMergeAppend.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeMergejoin.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeModifyTable.h Remove es_result_relation_info from EState. 2020-10-14 11:41:40 +03:00
nodeNamedtuplestorescan.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeNestloop.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeProjectSet.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeRecursiveunion.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeResult.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeSamplescan.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeSeqscan.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeSetOp.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeSort.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeSubplan.h Move resolution of AlternativeSubPlan choices to the planner. 2020-09-27 12:51:28 -04:00
nodeSubqueryscan.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeTableFuncscan.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeTidscan.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeUnique.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeValuesscan.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeWindowAgg.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nodeWorktablescan.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
spi.h Avoid using a cursor in plpgsql's RETURN QUERY statement. 2020-06-12 12:14:32 -04:00
spi_priv.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
tablefunc.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
tqueue.h Use MinimalTuple for tuple queues. 2020-07-17 15:04:16 +12:00
tstoreReceiver.h Avoid using a cursor in plpgsql's RETURN QUERY statement. 2020-06-12 12:14:32 -04:00
tuptable.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00