postgresql/src/include/executor
Tom Lane 22e44e8dbc Minor code review for tuple slot rewrite.
Avoid creating transiently-inconsistent slot states where possible,
by not setting TTS_FLAG_SHOULDFREE until after the slot actually has
a free'able tuple pointer, and by making sure that we reset tts_nvalid
and related derived state before we replace the tuple contents.  This
would only matter if something were to examine the slot after we'd
suffered some kind of error (e.g. out of memory) while manipulating
the slot.  We typically don't do that, so these changes might just be
cosmetic --- but even if so, it seems like good future-proofing.

Also remove some redundant Asserts, and add a couple for consistency.

Back-patch to v12 where all this code was rewritten.

Discussion: https://postgr.es/m/16095-c3ff2e5283b8dba5@postgresql.org
2019-11-06 12:00:17 -05:00
..
execExpr.h Fix inconsistencies and typos in the tree, take 9 2019-08-05 12:14:58 +09:00
execParallel.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
execPartition.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
execdebug.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
execdesc.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
executor.h Reorder EPQ work, to fix rowmark related bugs and improve efficiency. 2019-09-09 05:14:11 -07:00
functions.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
hashjoin.h Collations with nondeterministic comparison 2019-03-22 12:12:43 +01:00
instrument.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeAgg.h Remove redundant prototypes for SQL callable functions. 2019-08-16 10:17:32 -07: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 Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04: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 Fix many typos and inconsistencies 2019-07-01 10:00:23 +09:00
nodeForeignscan.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04: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 Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
nodeGroup.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
nodeHash.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
nodeHashjoin.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
nodeIndexonlyscan.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
nodeIndexscan.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04: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 Generated columns 2019-03-30 08:15:57 +01: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 Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04: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 Further adjust SPITupleTable to provide a public row-count field. 2019-07-18 10:37:13 -04:00
spi_priv.h Update copyright for 2019 2019-01-02 12:44:25 -05:00
tablefunc.h Fix inconsistencies in the code 2019-07-08 13:15:09 +09:00
tqueue.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
tstoreReceiver.h Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
tuptable.h Minor code review for tuple slot rewrite. 2019-11-06 12:00:17 -05:00