postgresql/src/include/executor
Alvaro Herrera fb958b5da8
Generalize ri_RootToPartitionMap to use for non-partition children
ri_RootToPartitionMap is currently only initialized for tuple routing
target partitions, though a future commit will need the ability to use
it even for the non-partition child tables, so make adjustments to the
decouple it from the partitioning code.

Also, make it lazily initialized via ExecGetRootToChildMap(), making
that function its preferred access path.  Existing third-party code
accessing it directly should no longer do so; consequently, it's been
renamed to ri_RootToChildMap, which also makes it consistent with
ri_ChildToRootMap.

ExecGetRootToChildMap() houses the logic of setting the map appropriately
depending on whether a given child relation is partition or not.

To support this, also add a separate entry point for TupleConversionMap
creation that receives an AttrMap.  No new code here, just split an
existing function in two.

Author: Amit Langote <amitlangote09@gmail.com>
Discussion: https://postgr.es/m/CA+HiwqEYUhDXSK5BTvG_xk=eaAEJCD4GS3C6uH7ybBvv+Z_Tmg@mail.gmail.com
2022-12-02 10:35:55 +01:00
..
execAsync.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
execdebug.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
execdesc.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
execExpr.h Replace SQLValueFunction by COERCE_SQL_SYNTAX 2022-11-21 18:31:59 +09:00
execParallel.h Harmonize parameter names in storage and AM code. 2022-09-19 19:18:36 -07:00
execPartition.h Move PartitioPruneInfo out of plan nodes into PlannedStmt 2022-12-01 12:56:21 +01:00
executor.h Generalize ri_RootToPartitionMap to use for non-partition children 2022-12-02 10:35:55 +01:00
functions.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
hashjoin.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
instrument.h Track I/O timing for temporary file blocks in EXPLAIN (BUFFERS) 2022-04-08 11:27:21 +09:00
nodeAgg.h Improve performance of ORDER BY / DISTINCT aggregates 2022-08-02 23:11:45 +12:00
nodeAppend.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeBitmapAnd.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeBitmapHeapscan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeBitmapIndexscan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeBitmapOr.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeCtescan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeCustom.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeForeignscan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeFunctionscan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeGather.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeGatherMerge.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeGroup.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeHash.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeHashjoin.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeIncrementalSort.h Harmonize parameter names in storage and AM code. 2022-09-19 19:18:36 -07:00
nodeIndexonlyscan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeIndexscan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeLimit.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeLockRows.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeMaterial.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeMemoize.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeMergeAppend.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeMergejoin.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeModifyTable.h Add support for MERGE SQL command 2022-03-28 16:47:48 +02:00
nodeNamedtuplestorescan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeNestloop.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeProjectSet.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeRecursiveunion.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeResult.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeSamplescan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeSeqscan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeSetOp.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeSort.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeSubplan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeSubqueryscan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeTableFuncscan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeTidrangescan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeTidscan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeUnique.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeValuesscan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeWindowAgg.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
nodeWorktablescan.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
spi.h Harmonize parameter names in storage and AM code. 2022-09-19 19:18:36 -07:00
spi_priv.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
tablefunc.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
tqueue.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
tstoreReceiver.h Update copyright for 2022 2022-01-07 19:04:57 -05:00
tuptable.h Remove AssertArg and AssertState 2022-10-28 09:19:06 +02:00