You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudberry.apache.org by ma...@apache.org on 2024/12/31 02:55:52 UTC
(cloudberry) 10/27: Derive combined hashed spec outer join master revert (#13967)
This is an automated email from the ASF dual-hosted git repository.
maxyang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudberry.git
commit a565c9fc7eb9657ae4eef68d5788dcaded9ce08c
Author: THANATOSLAVA <99...@users.noreply.github.com>
AuthorDate: Wed Aug 24 11:29:56 2022 -0700
Derive combined hashed spec outer join master revert (#13967)
* Revert "Derive Combined Hashed Spec For Outer Joins - Patch (#13899)"
This reverts commit 512561fe9920df5be844a60926e612562d782d4a.
* Revert "Derive Combined Hashed Spec For Outer Joins (#13714)"
This reverts commit fc662eadf9d4fcbeecdb32d661deccba72c86f1a.
* Rerun mdp, regress/with_clause
Co-authored-by: Jingyu Wang <wj...@vmware.com>
---
.../4WayJoinInferredPredsRemovedWith2Motion.mdp | 2 +-
.../data/dxl/minidump/AddPredsInSubqueries.mdp | 50 +++---
.../dxl/minidump/BitmapIndex-ChooseHashJoin.mdp | 2 +-
.../data/dxl/minidump/BroadcastSkewedHashjoin.mdp | 2 +-
.../CJoinOrderDPTest/JoinOrderWithOutDP.mdp | 2 +-
.../dxl/minidump/CTAS-With-Global-Local-Agg.mdp | 2 +-
src/backend/gporca/data/dxl/minidump/CTE-4.mdp | 2 +-
src/backend/gporca/data/dxl/minidump/CTE-5.mdp | 10 +-
.../minidump/CTE-Join-Redistribute-Producer.mdp | 2 +-
.../data/dxl/minidump/CTE-NoPushProperties.mdp | 2 +-
.../data/dxl/minidump/CTE-PushProperties.mdp | 2 +-
.../gporca/data/dxl/minidump/CTE-volatile.mdp | 2 +-
.../minidump/CTEMergeGroupsCircularDeriveStats.mdp | 2 +-
.../data/dxl/minidump/CTEWithMergedGroup.mdp | 2 +-
.../data/dxl/minidump/CapGbCardToSelectCard.mdp | 2 +-
.../minidump/ConstTblGetUnderSubqWithOuterRef.mdp | 2 +-
.../dxl/minidump/ConvertHashToRandomInsert.mdp | 2 +-
.../dxl/minidump/ConvertHashToRandomSelect.mdp | 2 +-
src/backend/gporca/data/dxl/minidump/DPE-IN.mdp | 2 +-
.../gporca/data/dxl/minidump/DPE-NOT-IN.mdp | 2 +-
.../dxl/minidump/DPE-with-unsupported-pred.mdp | 2 +-
.../DQA-InnerJoin-GroupBy-HashAggregate.mdp | 2 +-
.../DeleteRandomlyDistributedTableJoin.mdp | 2 +-
.../dxl/minidump/EagerAggGroupColumnInJoin.mdp | 58 +++----
.../data/dxl/minidump/EffectOfLocalPredOnJoin2.mdp | 2 +-
.../data/dxl/minidump/EffectOfLocalPredOnJoin3.mdp | 2 +-
.../data/dxl/minidump/Equiv-HashedDistr-1.mdp | 2 +-
.../data/dxl/minidump/Equiv-HashedDistr-2.mdp | 2 +-
.../gporca/data/dxl/minidump/EquivClassesAndOr.mdp | 2 +-
.../minidump/EstimateJoinRowsForCastPredicates.mdp | 2 +-
.../gporca/data/dxl/minidump/ExpandJoinOrder.mdp | 2 +-
.../minidump/ExpandNAryJoinGreedyWithLOJOnly.mdp | 2 +-
.../data/dxl/minidump/ExtractPredicateFromDisj.mdp | 2 +-
...ExtractPredicateFromDisjWithComputedColumns.mdp | 2 +-
.../FullJoin-Subquery-CastedPredicates.mdp | 2 +-
.../gporca/data/dxl/minidump/GreedyNAryJoin.mdp | 54 +++----
.../data/dxl/minidump/GroupingOnSameTblCol-1.mdp | 2 +-
.../dxl/minidump/HAWQ-TPCH-Stat-Derivation.mdp | 2 +-
.../dxl/minidump/HJN-DPE-Bitmap-Outer-Child.mdp | 2 +-
.../gporca/data/dxl/minidump/HJN-DeeperOuter.mdp | 10 +-
.../dxl/minidump/HJN-Redistribute-One-Side.mdp | 2 +-
...IndexApply-IndexCondDisjointWithHashedDistr.mdp | 2 +-
...ndexApply-IndexCondIntersectWithHashedDistr.mdp | 2 +-
.../IndexApply-IndexCondSubsetOfHashedDistr.mdp | 2 +-
.../IndexApply-IndexCondSupersetOfHashedDistr.mdp | 2 +-
.../IndexApply-MultiDistKey-WithComplexPreds.mdp | 2 +-
...Apply-MultiDistKeys-Bitmap-WithComplexPreds.mdp | 2 +-
.../minidump/IndexApply-MultiDistKeys-Bitmap.mdp | 2 +-
.../data/dxl/minidump/IndexGet-OuterRefs.mdp | 2 +-
.../minidump/InferPredicatesForProcessedColumn.mdp | 74 ++++-----
.../dxl/minidump/InferPredicatesInnerOfLOJ.mdp | 2 +-
.../InferredPredicatesConstraintSimplification.mdp | 48 +++---
.../data/dxl/minidump/InnerJoinOverJoinExcept.mdp | 42 ++---
.../dxl/minidump/InnerJoinOverJoinExceptAll.mdp | 42 ++---
.../data/dxl/minidump/Insert-With-HJ-CTE-Agg.mdp | 2 +-
.../data/dxl/minidump/Intersect-OuterRefs.mdp | 2 +-
.../dxl/minidump/JOIN-NonRedistributableCol.mdp | 2 +-
.../data/dxl/minidump/JOIN-Pred-Cast-Int4.mdp | 2 +-
.../data/dxl/minidump/JOIN-Pred-Cast-Varchar.mdp | 2 +-
.../JOIN-cast2text-int4-Eq-cast2text-double.mdp | 2 +-
.../data/dxl/minidump/JOIN-int4-Eq-double.mdp | 2 +-
.../gporca/data/dxl/minidump/JOIN-int4-Eq-int2.mdp | 2 +-
.../data/dxl/minidump/Join-Varchar-Equality.mdp | 2 +-
...inArityAssociativityCommutativityAboveLimit.mdp | 60 +++----
.../JoinArityAssociativityCommutativityAtLimit.mdp | 60 +++----
...inArityAssociativityCommutativityBelowLimit.mdp | 8 +-
.../gporca/data/dxl/minidump/JoinCitextVarchar.mdp | 2 +-
.../data/dxl/minidump/JoinColWithOnlyNDV.mdp | 2 +-
...nDefaultOpfamiliesUsingNonDefaultOpfamilyOp.mdp | 2 +-
...nOptimizationLevelGreedyNonPartTblInnerJoin.mdp | 2 +-
.../gporca/data/dxl/minidump/JoinOrderDPE.mdp | 2 +-
.../gporca/data/dxl/minidump/JoinTinterval.mdp | 2 +-
...ly-MultiDistKey-MultiIndexKey-NoExtraFilter.mdp | 2 +-
.../LOJ-IndexApply-MultiDistKey-MultiIndexKey.mdp | 2 +-
...Apply-MultiDistKeys-Bitmap-WithComplexPreds.mdp | 2 +-
...J-IndexApply-MultiDistKeys-WithComplexPreds.mdp | 2 +-
.../LOJ-IndexApply-WithComplexPredicates.mdp | 2 +-
.../dxl/minidump/LOJNonNullRejectingPredicates.mdp | 124 ++++++++++-----
.../dxl/minidump/LOJNullRejectingPredicates.mdp | 144 ++++++++---------
.../dxl/minidump/LOJReorderComplexNestedLOJs.mdp | 2 +-
.../minidump/LOJReorderWithComplexPredicate.mdp | 2 +-
.../gporca/data/dxl/minidump/LOJReorderWithIDF.mdp | 2 +-
.../minidump/LOJReorderWithNestedLOJAndFilter.mdp | 6 +-
.../dxl/minidump/LOJReorderWithOneSidedFilter.mdp | 2 +-
.../dxl/minidump/LOJReorderWithSimplePredicate.mdp | 104 ++++++------
.../gporca/data/dxl/minidump/LOJ_bb_mpph.mdp | 32 ++--
.../LOJ_convert_to_inner_with_and_predicate.mdp | 2 +-
.../LOJ_convert_to_inner_with_or_predicate.mdp | 2 +-
.../data/dxl/minidump/LeftJoinDPv2JoinOrder.mdp | 2 +-
.../LeftOuter2InnerUnionAllAntiSemiJoin-Tpcds.mdp | 2 +-
.../LeftOuter2InnerUnionAllAntiSemiJoin.mdp | 20 +--
.../data/dxl/minidump/ManyTextUnionsInSubquery.mdp | 2 +-
...tiColumnDQA-InnerJoin-GroupBy-HashAggregate.mdp | 2 +-
.../dxl/minidump/MultiDistKeyJoinCardinality.mdp | 2 +-
.../MultiDistKeyWithOtherPredsJoinCardinality.mdp | 2 +-
.../minidump/MultipleDampedPredJoinCardinality.mdp | 2 +-
.../gporca/data/dxl/minidump/Nested-Setops-2.mdp | 2 +-
.../data/dxl/minidump/NestedSubqLimitBindings.mdp | 174 ++++++++++-----------
.../minidump/NoDistKeyMultiPredJoinCardinality.mdp | 2 +-
.../data/dxl/minidump/NoRedistributeOnAppend.mdp | 2 +-
.../OneDistKeyMultiPredJoinCardinality.mdp | 2 +-
.../data/dxl/minidump/PartSelectorOnJoinSide.mdp | 2 +-
.../dxl/minidump/PartTbl-AvoidRangePred-DPE.mdp | 12 +-
.../data/dxl/minidump/PartTbl-DPE-GroupBy.mdp | 2 +-
.../minidump/PartTbl-DisablePartSelectionJoin.mdp | 2 +-
.../gporca/data/dxl/minidump/PartTbl-HJ3.mdp | 2 +-
.../data/dxl/minidump/PartTbl-JoinOverExcept.mdp | 2 +-
.../data/dxl/minidump/PartTbl-JoinOverGbAgg-2.mdp | 2 +-
.../dxl/minidump/PartTbl-JoinOverIntersect.mdp | 2 +-
.../data/dxl/minidump/PartTbl-JoinOverUnion-1.mdp | 2 +-
.../data/dxl/minidump/PartTbl-JoinOverUnion-2.mdp | 2 +-
.../data/dxl/minidump/PartTbl-MultiWayJoin.mdp | 68 ++++----
.../dxl/minidump/PartTbl-MultiWayJoinWithDPE-2.mdp | 2 +-
.../dxl/minidump/PartTbl-MultiWayJoinWithDPE.mdp | 2 +-
.../gporca/data/dxl/minidump/PartTbl-SQScalar.mdp | 2 +-
.../dxl/minidump/Remove-Distinct-From-Subquery.mdp | 68 +++++---
.../data/dxl/minidump/Select-Over-CTEAnchor.mdp | 10 +-
.../gporca/data/dxl/minidump/SixWayDPv2.mdp | 2 +-
.../data/dxl/minidump/Subq2CorrSQInLOJOn.mdp | 2 +-
.../minidump/SubqExists-With-External-Corrs.mdp | 2 +-
.../minidump/SubqExists-Without-External-Corrs.mdp | 2 +-
.../minidump/TPCDS-39-InnerJoin-JoinEstimate.mdp | 2 +-
.../data/dxl/minidump/TPCH-Partitioned-256GB.mdp | 2 +-
...thCTEAndTableScanIntoFilterAndOneTimeFilter.mdp | 2 +-
.../dxl/minidump/Union-NOT-Plus-OR-Constraint.mdp | 2 +-
src/backend/gporca/data/dxl/minidump/UnionAll.mdp | 2 +-
.../gporca/data/dxl/minidump/UnnestSQJoins.mdp | 2 +-
.../data/dxl/minidump/UpdateCardinalityAssert.mdp | 2 +-
.../gporca/data/dxl/minidump/UpdateDistrKey.mdp | 2 +-
.../data/dxl/minidump/cte-duplicate-columns-2.mdp | 2 +-
.../include/gpopt/base/CDistributionSpecHashed.h | 3 -
.../gpopt/operators/CPhysicalLeftOuterHashJoin.h | 9 --
.../libgpopt/src/base/CDistributionSpecHashed.cpp | 108 ++++++-------
.../src/operators/CPhysicalFullMergeJoin.cpp | 14 +-
.../libgpopt/src/operators/CPhysicalHashJoin.cpp | 20 +--
.../src/operators/CPhysicalLeftOuterHashJoin.cpp | 120 --------------
src/backend/gporca/server/CMakeLists.txt | 3 +-
.../unittest/gpopt/base/CDistributionSpecTest.cpp | 59 +------
.../regress/expected/bfv_statistic_optimizer.out | 34 ++--
src/test/regress/expected/join_gp_optimizer.out | 8 +-
src/test/regress/expected/notin_optimizer.out | 8 +-
.../regress/expected/with_clause_optimizer.out | 15 +-
142 files changed, 878 insertions(+), 1015 deletions(-)
diff --git a/src/backend/gporca/data/dxl/minidump/4WayJoinInferredPredsRemovedWith2Motion.mdp b/src/backend/gporca/data/dxl/minidump/4WayJoinInferredPredsRemovedWith2Motion.mdp
index 4f9e21ae78..1a7aff4de4 100644
--- a/src/backend/gporca/data/dxl/minidump/4WayJoinInferredPredsRemovedWith2Motion.mdp
+++ b/src/backend/gporca/data/dxl/minidump/4WayJoinInferredPredsRemovedWith2Motion.mdp
@@ -4649,7 +4649,7 @@ explain select * from cs catalog_sales, it item, sr store_returns, ss store_sale
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="134775">
+ <dxl:Plan Id="0" SpaceSize="104185">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1725.989618" Rows="129.961520" Width="44"/>
diff --git a/src/backend/gporca/data/dxl/minidump/AddPredsInSubqueries.mdp b/src/backend/gporca/data/dxl/minidump/AddPredsInSubqueries.mdp
index a1fb16ccde..873ae6e3a9 100644
--- a/src/backend/gporca/data/dxl/minidump/AddPredsInSubqueries.mdp
+++ b/src/backend/gporca/data/dxl/minidump/AddPredsInSubqueries.mdp
@@ -467,8 +467,8 @@
<dxl:JoinFilter/>
<dxl:HashCondList>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="18" ColName="a" TypeMdid="0.23.1.0"/>
<dxl:Ident ColId="9" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="18" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
</dxl:HashCondList>
<dxl:TableScan>
@@ -476,26 +476,26 @@
<dxl:Cost StartupCost="0" TotalCost="431.000114" Rows="1.000000" Width="4"/>
</dxl:Properties>
<dxl:ProjList>
- <dxl:ProjElem ColId="18" Alias="a">
- <dxl:Ident ColId="18" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="9" Alias="a">
+ <dxl:Ident ColId="9" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="18" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="9" ColName="a" TypeMdid="0.23.1.0"/>
<dxl:ConstValue TypeMdid="0.23.1.0" Value="40"/>
</dxl:Comparison>
</dxl:Filter>
- <dxl:TableDescriptor Mdid="0.114697.1.0" TableName="bar">
+ <dxl:TableDescriptor Mdid="0.114694.1.0" TableName="foo">
<dxl:Columns>
- <dxl:Column ColId="18" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="20" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="21" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="22" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="23" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="24" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="25" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="26" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="9" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="11" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="12" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="13" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="14" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="15" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="16" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="17" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
@@ -504,26 +504,26 @@
<dxl:Cost StartupCost="0" TotalCost="431.000114" Rows="1.000000" Width="4"/>
</dxl:Properties>
<dxl:ProjList>
- <dxl:ProjElem ColId="9" Alias="a">
- <dxl:Ident ColId="9" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="18" Alias="a">
+ <dxl:Ident ColId="18" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="9" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="18" ColName="a" TypeMdid="0.23.1.0"/>
<dxl:ConstValue TypeMdid="0.23.1.0" Value="40"/>
</dxl:Comparison>
</dxl:Filter>
- <dxl:TableDescriptor Mdid="0.114694.1.0" TableName="foo">
+ <dxl:TableDescriptor Mdid="0.114697.1.0" TableName="bar">
<dxl:Columns>
- <dxl:Column ColId="9" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="11" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="12" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="13" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="14" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="15" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="16" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="17" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="18" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="20" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="21" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="22" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="23" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="24" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="25" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="26" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
diff --git a/src/backend/gporca/data/dxl/minidump/BitmapIndex-ChooseHashJoin.mdp b/src/backend/gporca/data/dxl/minidump/BitmapIndex-ChooseHashJoin.mdp
index b4e56a2ff8..0daadbf59f 100644
--- a/src/backend/gporca/data/dxl/minidump/BitmapIndex-ChooseHashJoin.mdp
+++ b/src/backend/gporca/data/dxl/minidump/BitmapIndex-ChooseHashJoin.mdp
@@ -3456,7 +3456,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="17">
+ <dxl:Plan Id="0" SpaceSize="12">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1070.584957" Rows="992059.668838" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/BroadcastSkewedHashjoin.mdp b/src/backend/gporca/data/dxl/minidump/BroadcastSkewedHashjoin.mdp
index af857d4c73..bd1312a19b 100644
--- a/src/backend/gporca/data/dxl/minidump/BroadcastSkewedHashjoin.mdp
+++ b/src/backend/gporca/data/dxl/minidump/BroadcastSkewedHashjoin.mdp
@@ -3111,7 +3111,7 @@ Intent: The join should pick up a Broadcast over Redistribute. The hashjoin is s
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="12">
+ <dxl:Plan Id="0" SpaceSize="8">
<dxl:GatherMotion InputSegments="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="871.634495" Rows="77880.861751" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/CJoinOrderDPTest/JoinOrderWithOutDP.mdp b/src/backend/gporca/data/dxl/minidump/CJoinOrderDPTest/JoinOrderWithOutDP.mdp
index 7e4c7263eb..e212099fd9 100644
--- a/src/backend/gporca/data/dxl/minidump/CJoinOrderDPTest/JoinOrderWithOutDP.mdp
+++ b/src/backend/gporca/data/dxl/minidump/CJoinOrderDPTest/JoinOrderWithOutDP.mdp
@@ -1764,7 +1764,7 @@ INNER JOIN (SELECT FOO10.i1 AS i1
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="798218">
+ <dxl:Plan Id="0" SpaceSize="197120">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="2155.369590" Rows="100.000000" Width="8"/>
diff --git a/src/backend/gporca/data/dxl/minidump/CTAS-With-Global-Local-Agg.mdp b/src/backend/gporca/data/dxl/minidump/CTAS-With-Global-Local-Agg.mdp
index a9c90d3bf2..3ab97cfe9a 100644
--- a/src/backend/gporca/data/dxl/minidump/CTAS-With-Global-Local-Agg.mdp
+++ b/src/backend/gporca/data/dxl/minidump/CTAS-With-Global-Local-Agg.mdp
@@ -710,7 +710,7 @@
</dxl:LogicalGroupBy>
</dxl:LogicalCTAS>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="17">
+ <dxl:Plan Id="0" SpaceSize="14">
<dxl:PhysicalCTAS Name="fake ctas rel" IsTemporary="true" StorageType="Heap" DistributionPolicy="Random" InsertColumns="10" VarTypeModList="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="438.394467" Rows="1.000000" Width="8"/>
diff --git a/src/backend/gporca/data/dxl/minidump/CTE-4.mdp b/src/backend/gporca/data/dxl/minidump/CTE-4.mdp
index 18ccee9e74..03efb44564 100644
--- a/src/backend/gporca/data/dxl/minidump/CTE-4.mdp
+++ b/src/backend/gporca/data/dxl/minidump/CTE-4.mdp
@@ -271,7 +271,7 @@
</dxl:LogicalCTEAnchor>
</dxl:LogicalCTEAnchor>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="28">
+ <dxl:Plan Id="0" SpaceSize="25">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1293.003882" Rows="10.000000" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/CTE-5.mdp b/src/backend/gporca/data/dxl/minidump/CTE-5.mdp
index c02fc19d6f..3f74928af4 100644
--- a/src/backend/gporca/data/dxl/minidump/CTE-5.mdp
+++ b/src/backend/gporca/data/dxl/minidump/CTE-5.mdp
@@ -457,7 +457,7 @@
<dxl:Plan Id="0" SpaceSize="240">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="10344.018379" Rows="3.333333" Width="24"/>
+ <dxl:Cost StartupCost="0" TotalCost="10344.016560" Rows="3.333333" Width="24"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="9" Alias="a">
@@ -483,7 +483,7 @@
<dxl:SortingColumnList/>
<dxl:NestedLoopJoin JoinType="Inner" IndexNestedLoopJoin="false" OuterRefAsParam="false">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="10344.018020" Rows="3.333333" Width="24"/>
+ <dxl:Cost StartupCost="0" TotalCost="10344.016201" Rows="3.333333" Width="24"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="9" Alias="a">
@@ -514,7 +514,7 @@
</dxl:JoinFilter>
<dxl:BroadcastMotion InputSegments="0,1" OutputSegments="0,1">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1724.003627" Rows="2.000000" Width="16"/>
+ <dxl:Cost StartupCost="0" TotalCost="1724.003172" Rows="2.000000" Width="16"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="36" Alias="c">
@@ -534,7 +534,7 @@
<dxl:SortingColumnList/>
<dxl:Sequence>
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1724.002789" Rows="1.000000" Width="16"/>
+ <dxl:Cost StartupCost="0" TotalCost="1724.002753" Rows="1.000000" Width="16"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="36" Alias="c">
@@ -657,7 +657,7 @@
</dxl:CTEProducer>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="862.000902" Rows="1.000000" Width="16"/>
+ <dxl:Cost StartupCost="0" TotalCost="862.000874" Rows="1.000000" Width="16"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="36" Alias="c">
diff --git a/src/backend/gporca/data/dxl/minidump/CTE-Join-Redistribute-Producer.mdp b/src/backend/gporca/data/dxl/minidump/CTE-Join-Redistribute-Producer.mdp
index b583b53074..2353c533cf 100644
--- a/src/backend/gporca/data/dxl/minidump/CTE-Join-Redistribute-Producer.mdp
+++ b/src/backend/gporca/data/dxl/minidump/CTE-Join-Redistribute-Producer.mdp
@@ -410,7 +410,7 @@ with v as (select * from t1) select * from v v1, v v2 where v1.b=v2.b;
</dxl:LogicalJoin>
</dxl:LogicalCTEAnchor>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="25">
+ <dxl:Plan Id="0" SpaceSize="20">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1293.388166" Rows="1000.000000" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/CTE-NoPushProperties.mdp b/src/backend/gporca/data/dxl/minidump/CTE-NoPushProperties.mdp
index f7e793f0a8..d99ae0ca2c 100644
--- a/src/backend/gporca/data/dxl/minidump/CTE-NoPushProperties.mdp
+++ b/src/backend/gporca/data/dxl/minidump/CTE-NoPushProperties.mdp
@@ -1726,7 +1726,7 @@
</dxl:LogicalJoin>
</dxl:LogicalCTEAnchor>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="42">
+ <dxl:Plan Id="0" SpaceSize="24">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1293.483722" Rows="1000.000000" Width="26"/>
diff --git a/src/backend/gporca/data/dxl/minidump/CTE-PushProperties.mdp b/src/backend/gporca/data/dxl/minidump/CTE-PushProperties.mdp
index b8612c140b..8c98bf5c8e 100644
--- a/src/backend/gporca/data/dxl/minidump/CTE-PushProperties.mdp
+++ b/src/backend/gporca/data/dxl/minidump/CTE-PushProperties.mdp
@@ -1755,7 +1755,7 @@
</dxl:LogicalJoin>
</dxl:LogicalCTEAnchor>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="119">
+ <dxl:Plan Id="0" SpaceSize="62">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1293.388623" Rows="400.000000" Width="26"/>
diff --git a/src/backend/gporca/data/dxl/minidump/CTE-volatile.mdp b/src/backend/gporca/data/dxl/minidump/CTE-volatile.mdp
index 235ee7ba66..2a0b4c9226 100644
--- a/src/backend/gporca/data/dxl/minidump/CTE-volatile.mdp
+++ b/src/backend/gporca/data/dxl/minidump/CTE-volatile.mdp
@@ -410,7 +410,7 @@
</dxl:LogicalJoin>
</dxl:LogicalCTEAnchor>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="42">
+ <dxl:Plan Id="0" SpaceSize="32">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1293.055688" Rows="100.000000" Width="24"/>
diff --git a/src/backend/gporca/data/dxl/minidump/CTEMergeGroupsCircularDeriveStats.mdp b/src/backend/gporca/data/dxl/minidump/CTEMergeGroupsCircularDeriveStats.mdp
index 2aadc039d3..3c90cb9ffb 100644
--- a/src/backend/gporca/data/dxl/minidump/CTEMergeGroupsCircularDeriveStats.mdp
+++ b/src/backend/gporca/data/dxl/minidump/CTEMergeGroupsCircularDeriveStats.mdp
@@ -251,7 +251,7 @@
<dxl:LogicalCTEConsumer CTEId="1" Columns="19,20,21,22"/>
</dxl:LogicalCTEAnchor>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="15">
+ <dxl:Plan Id="0" SpaceSize="10">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.000587" Rows="1.000000" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/CTEWithMergedGroup.mdp b/src/backend/gporca/data/dxl/minidump/CTEWithMergedGroup.mdp
index 47d81ec472..fea6b7e1ff 100644
--- a/src/backend/gporca/data/dxl/minidump/CTEWithMergedGroup.mdp
+++ b/src/backend/gporca/data/dxl/minidump/CTEWithMergedGroup.mdp
@@ -425,7 +425,7 @@
</dxl:LogicalProject>
</dxl:LogicalCTEAnchor>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="157158227264">
+ <dxl:Plan Id="0" SpaceSize="91069351488">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1356250696.455244" Rows="1.000000" Width="4"/>
diff --git a/src/backend/gporca/data/dxl/minidump/CapGbCardToSelectCard.mdp b/src/backend/gporca/data/dxl/minidump/CapGbCardToSelectCard.mdp
index 75002b2f75..580b5bd12e 100644
--- a/src/backend/gporca/data/dxl/minidump/CapGbCardToSelectCard.mdp
+++ b/src/backend/gporca/data/dxl/minidump/CapGbCardToSelectCard.mdp
@@ -10888,7 +10888,7 @@ group by item.i_item_id, item.i_item_desc, item.i_current_price;
</dxl:LogicalJoin>
</dxl:LogicalGroupBy>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="118">
+ <dxl:Plan Id="0" SpaceSize="98">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="102938.691528" Rows="13.696907" Width="127"/>
diff --git a/src/backend/gporca/data/dxl/minidump/ConstTblGetUnderSubqWithOuterRef.mdp b/src/backend/gporca/data/dxl/minidump/ConstTblGetUnderSubqWithOuterRef.mdp
index 1c9def9199..ec21fcbcdf 100644
--- a/src/backend/gporca/data/dxl/minidump/ConstTblGetUnderSubqWithOuterRef.mdp
+++ b/src/backend/gporca/data/dxl/minidump/ConstTblGetUnderSubqWithOuterRef.mdp
@@ -279,7 +279,7 @@ SELECT * FROM foo,bar WHERE a=(SELECT c);
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="84">
+ <dxl:Plan Id="0" SpaceSize="80">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="883135.989715" Rows="1.000000" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/ConvertHashToRandomInsert.mdp b/src/backend/gporca/data/dxl/minidump/ConvertHashToRandomInsert.mdp
index a374b0b485..3e70b277fb 100644
--- a/src/backend/gporca/data/dxl/minidump/ConvertHashToRandomInsert.mdp
+++ b/src/backend/gporca/data/dxl/minidump/ConvertHashToRandomInsert.mdp
@@ -642,7 +642,7 @@ explain analyze insert into t1 select t2.a,t3.b from t2, t3 where t2.a = t3.a;
</dxl:LogicalJoin>
</dxl:LogicalInsert>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="30">
+ <dxl:Plan Id="0" SpaceSize="18">
<dxl:DMLInsert Columns="0,6" ActionCol="10" OidCol="0" CtidCol="0" SegmentIdCol="0" InputSorted="false">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="877.746838" Rows="1000.000000" Width="7"/>
diff --git a/src/backend/gporca/data/dxl/minidump/ConvertHashToRandomSelect.mdp b/src/backend/gporca/data/dxl/minidump/ConvertHashToRandomSelect.mdp
index 65271c4fd0..68f6dc7e06 100644
--- a/src/backend/gporca/data/dxl/minidump/ConvertHashToRandomSelect.mdp
+++ b/src/backend/gporca/data/dxl/minidump/ConvertHashToRandomSelect.mdp
@@ -202,7 +202,7 @@
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="11">
+ <dxl:Plan Id="0" SpaceSize="10">
<dxl:GatherMotion InputSegments="0,1,2,3,4,5" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.000696" Rows="1.000000" Width="24"/>
diff --git a/src/backend/gporca/data/dxl/minidump/DPE-IN.mdp b/src/backend/gporca/data/dxl/minidump/DPE-IN.mdp
index 348b210fd3..3ab456726d 100644
--- a/src/backend/gporca/data/dxl/minidump/DPE-IN.mdp
+++ b/src/backend/gporca/data/dxl/minidump/DPE-IN.mdp
@@ -971,7 +971,7 @@ select * from P,X where P.a=X.a and X.a in (1,2);
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="8">
+ <dxl:Plan Id="0" SpaceSize="7">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.284504" Rows="1.000000" Width="12"/>
diff --git a/src/backend/gporca/data/dxl/minidump/DPE-NOT-IN.mdp b/src/backend/gporca/data/dxl/minidump/DPE-NOT-IN.mdp
index f079e6602a..934222499c 100644
--- a/src/backend/gporca/data/dxl/minidump/DPE-NOT-IN.mdp
+++ b/src/backend/gporca/data/dxl/minidump/DPE-NOT-IN.mdp
@@ -963,7 +963,7 @@ select * from P,X where P.a=X.a and X.a not in (1,2);
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="8">
+ <dxl:Plan Id="0" SpaceSize="7">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="863.294061" Rows="1.000000" Width="12"/>
diff --git a/src/backend/gporca/data/dxl/minidump/DPE-with-unsupported-pred.mdp b/src/backend/gporca/data/dxl/minidump/DPE-with-unsupported-pred.mdp
index c2be61f238..22f6dc7847 100644
--- a/src/backend/gporca/data/dxl/minidump/DPE-with-unsupported-pred.mdp
+++ b/src/backend/gporca/data/dxl/minidump/DPE-with-unsupported-pred.mdp
@@ -2371,7 +2371,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="79">
+ <dxl:Plan Id="0" SpaceSize="75">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1324807.970884" Rows="2844.444444" Width="28"/>
diff --git a/src/backend/gporca/data/dxl/minidump/DQA-InnerJoin-GroupBy-HashAggregate.mdp b/src/backend/gporca/data/dxl/minidump/DQA-InnerJoin-GroupBy-HashAggregate.mdp
index c3a2f0cefa..5dc5e131d9 100644
--- a/src/backend/gporca/data/dxl/minidump/DQA-InnerJoin-GroupBy-HashAggregate.mdp
+++ b/src/backend/gporca/data/dxl/minidump/DQA-InnerJoin-GroupBy-HashAggregate.mdp
@@ -466,7 +466,7 @@
</dxl:LogicalGroupBy>
</dxl:LogicalLimit>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="40">
+ <dxl:Plan Id="0" SpaceSize="36">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.007060" Rows="10.000001" Width="24"/>
diff --git a/src/backend/gporca/data/dxl/minidump/DeleteRandomlyDistributedTableJoin.mdp b/src/backend/gporca/data/dxl/minidump/DeleteRandomlyDistributedTableJoin.mdp
index 7f3b6be19f..7c81acdc0a 100644
--- a/src/backend/gporca/data/dxl/minidump/DeleteRandomlyDistributedTableJoin.mdp
+++ b/src/backend/gporca/data/dxl/minidump/DeleteRandomlyDistributedTableJoin.mdp
@@ -277,7 +277,7 @@
</dxl:LogicalJoin>
</dxl:LogicalDelete>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="19">
+ <dxl:Plan Id="0" SpaceSize="17">
<dxl:DMLDelete Columns="0" ActionCol="16" OidCol="0" CtidCol="1" SegmentIdCol="7" InputSorted="false">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.023911" Rows="1.000000" Width="1"/>
diff --git a/src/backend/gporca/data/dxl/minidump/EagerAggGroupColumnInJoin.mdp b/src/backend/gporca/data/dxl/minidump/EagerAggGroupColumnInJoin.mdp
index c4dccee555..d5cfb83297 100644
--- a/src/backend/gporca/data/dxl/minidump/EagerAggGroupColumnInJoin.mdp
+++ b/src/backend/gporca/data/dxl/minidump/EagerAggGroupColumnInJoin.mdp
@@ -329,7 +329,7 @@
</dxl:LogicalSelect>
</dxl:LogicalGroupBy>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="104">
+ <dxl:Plan Id="0" SpaceSize="96">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.000604" Rows="1.000000" Width="12"/>
@@ -415,37 +415,10 @@
<dxl:JoinFilter/>
<dxl:HashCondList>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="10" ColName="j2" TypeMdid="0.23.1.0"/>
<dxl:Ident ColId="1" ColName="g1" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="10" ColName="j2" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
</dxl:HashCondList>
- <dxl:TableScan>
- <dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="431.000023" Rows="1.000000" Width="8"/>
- </dxl:Properties>
- <dxl:ProjList>
- <dxl:ProjElem ColId="10" Alias="j2">
- <dxl:Ident ColId="10" ColName="j2" TypeMdid="0.23.1.0"/>
- </dxl:ProjElem>
- <dxl:ProjElem ColId="11" Alias="g2">
- <dxl:Ident ColId="11" ColName="g2" TypeMdid="0.23.1.0"/>
- </dxl:ProjElem>
- </dxl:ProjList>
- <dxl:Filter/>
- <dxl:TableDescriptor Mdid="0.16388.1.0" TableName="bar">
- <dxl:Columns>
- <dxl:Column ColId="10" Attno="1" ColName="j2" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="11" Attno="2" ColName="g2" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="13" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="14" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="15" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="16" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="17" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="18" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="19" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
- </dxl:Columns>
- </dxl:TableDescriptor>
- </dxl:TableScan>
<dxl:RedistributeMotion InputSegments="0,1,2" OutputSegments="0,1,2">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="431.000040" Rows="1.000000" Width="8"/>
@@ -560,6 +533,33 @@
</dxl:Aggregate>
</dxl:Result>
</dxl:RedistributeMotion>
+ <dxl:TableScan>
+ <dxl:Properties>
+ <dxl:Cost StartupCost="0" TotalCost="431.000023" Rows="1.000000" Width="8"/>
+ </dxl:Properties>
+ <dxl:ProjList>
+ <dxl:ProjElem ColId="10" Alias="j2">
+ <dxl:Ident ColId="10" ColName="j2" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ <dxl:ProjElem ColId="11" Alias="g2">
+ <dxl:Ident ColId="11" ColName="g2" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ </dxl:ProjList>
+ <dxl:Filter/>
+ <dxl:TableDescriptor Mdid="0.16388.1.0" TableName="bar">
+ <dxl:Columns>
+ <dxl:Column ColId="10" Attno="1" ColName="j2" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="11" Attno="2" ColName="g2" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="13" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="14" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="15" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="16" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="17" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="18" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="19" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ </dxl:Columns>
+ </dxl:TableDescriptor>
+ </dxl:TableScan>
</dxl:HashJoin>
</dxl:Sort>
</dxl:Aggregate>
diff --git a/src/backend/gporca/data/dxl/minidump/EffectOfLocalPredOnJoin2.mdp b/src/backend/gporca/data/dxl/minidump/EffectOfLocalPredOnJoin2.mdp
index e8c4929fe1..ae0b2b6991 100644
--- a/src/backend/gporca/data/dxl/minidump/EffectOfLocalPredOnJoin2.mdp
+++ b/src/backend/gporca/data/dxl/minidump/EffectOfLocalPredOnJoin2.mdp
@@ -11330,7 +11330,7 @@
</dxl:LogicalGet>
</dxl:LogicalSelect>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="24">
+ <dxl:Plan Id="0" SpaceSize="22">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="865.875352" Rows="3866.533707" Width="116"/>
diff --git a/src/backend/gporca/data/dxl/minidump/EffectOfLocalPredOnJoin3.mdp b/src/backend/gporca/data/dxl/minidump/EffectOfLocalPredOnJoin3.mdp
index 2f22518e23..b52347da47 100644
--- a/src/backend/gporca/data/dxl/minidump/EffectOfLocalPredOnJoin3.mdp
+++ b/src/backend/gporca/data/dxl/minidump/EffectOfLocalPredOnJoin3.mdp
@@ -13863,7 +13863,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="11">
+ <dxl:Plan Id="0" SpaceSize="10">
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="3209.039368" Rows="716144.000000" Width="402"/>
diff --git a/src/backend/gporca/data/dxl/minidump/Equiv-HashedDistr-1.mdp b/src/backend/gporca/data/dxl/minidump/Equiv-HashedDistr-1.mdp
index faa4deb2b9..0f6bb81ac7 100644
--- a/src/backend/gporca/data/dxl/minidump/Equiv-HashedDistr-1.mdp
+++ b/src/backend/gporca/data/dxl/minidump/Equiv-HashedDistr-1.mdp
@@ -1934,7 +1934,7 @@
</dxl:UnionAll>
</dxl:LogicalCTEAnchor>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="102">
+ <dxl:Plan Id="0" SpaceSize="66">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="34972.709569" Rows="19097.637457" Width="4"/>
diff --git a/src/backend/gporca/data/dxl/minidump/Equiv-HashedDistr-2.mdp b/src/backend/gporca/data/dxl/minidump/Equiv-HashedDistr-2.mdp
index 1f50a5056d..10cf9fa3af 100644
--- a/src/backend/gporca/data/dxl/minidump/Equiv-HashedDistr-2.mdp
+++ b/src/backend/gporca/data/dxl/minidump/Equiv-HashedDistr-2.mdp
@@ -1936,7 +1936,7 @@
</dxl:LogicalJoin>
</dxl:LogicalCTEAnchor>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="408">
+ <dxl:Plan Id="0" SpaceSize="264">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="34974.557438" Rows="9548.818729" Width="8"/>
diff --git a/src/backend/gporca/data/dxl/minidump/EquivClassesAndOr.mdp b/src/backend/gporca/data/dxl/minidump/EquivClassesAndOr.mdp
index 1aa0f536d0..5018f259b2 100644
--- a/src/backend/gporca/data/dxl/minidump/EquivClassesAndOr.mdp
+++ b/src/backend/gporca/data/dxl/minidump/EquivClassesAndOr.mdp
@@ -344,7 +344,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="347">
+ <dxl:Plan Id="0" SpaceSize="300">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1293.002536" Rows="1.000000" Width="60"/>
diff --git a/src/backend/gporca/data/dxl/minidump/EstimateJoinRowsForCastPredicates.mdp b/src/backend/gporca/data/dxl/minidump/EstimateJoinRowsForCastPredicates.mdp
index a75ecc6bad..d773c2c0b7 100644
--- a/src/backend/gporca/data/dxl/minidump/EstimateJoinRowsForCastPredicates.mdp
+++ b/src/backend/gporca/data/dxl/minidump/EstimateJoinRowsForCastPredicates.mdp
@@ -515,7 +515,7 @@ explain select * from A,B where A.j=B.j;
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="17">
+ <dxl:Plan Id="0" SpaceSize="12">
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.541395" Rows="10000.000000" Width="14"/>
diff --git a/src/backend/gporca/data/dxl/minidump/ExpandJoinOrder.mdp b/src/backend/gporca/data/dxl/minidump/ExpandJoinOrder.mdp
index 1bd097fa76..be7fa50c8c 100644
--- a/src/backend/gporca/data/dxl/minidump/ExpandJoinOrder.mdp
+++ b/src/backend/gporca/data/dxl/minidump/ExpandJoinOrder.mdp
@@ -865,7 +865,7 @@
</dxl:LogicalProject>
</dxl:LogicalLimit>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="3561">
+ <dxl:Plan Id="0" SpaceSize="2316">
<dxl:Limit>
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="31120.423435" Rows="100.000000" Width="128"/>
diff --git a/src/backend/gporca/data/dxl/minidump/ExpandNAryJoinGreedyWithLOJOnly.mdp b/src/backend/gporca/data/dxl/minidump/ExpandNAryJoinGreedyWithLOJOnly.mdp
index 7127bcfe4a..9d97571896 100644
--- a/src/backend/gporca/data/dxl/minidump/ExpandNAryJoinGreedyWithLOJOnly.mdp
+++ b/src/backend/gporca/data/dxl/minidump/ExpandNAryJoinGreedyWithLOJOnly.mdp
@@ -3934,7 +3934,7 @@
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="165817">
+ <dxl:Plan Id="0" SpaceSize="100041">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="2586.168979" Rows="10.000001" Width="20"/>
diff --git a/src/backend/gporca/data/dxl/minidump/ExtractPredicateFromDisj.mdp b/src/backend/gporca/data/dxl/minidump/ExtractPredicateFromDisj.mdp
index 188ca54e0c..feb990b682 100644
--- a/src/backend/gporca/data/dxl/minidump/ExtractPredicateFromDisj.mdp
+++ b/src/backend/gporca/data/dxl/minidump/ExtractPredicateFromDisj.mdp
@@ -15779,7 +15779,7 @@ WHERE ((sale_type = 's'::text AND dyear = 2001 AND year_total > 0::numeric) O
</dxl:LogicalProject>
</dxl:LogicalSelect>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="2802">
+ <dxl:Plan Id="0" SpaceSize="2386">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="5944.261371" Rows="20169.272000" Width="76"/>
diff --git a/src/backend/gporca/data/dxl/minidump/ExtractPredicateFromDisjWithComputedColumns.mdp b/src/backend/gporca/data/dxl/minidump/ExtractPredicateFromDisjWithComputedColumns.mdp
index 6d8c969c80..5932303f80 100644
--- a/src/backend/gporca/data/dxl/minidump/ExtractPredicateFromDisjWithComputedColumns.mdp
+++ b/src/backend/gporca/data/dxl/minidump/ExtractPredicateFromDisjWithComputedColumns.mdp
@@ -459,7 +459,7 @@ where (cd.dyear = 2001 and s.tickets_cnt > 3) or (cd.dmoy = 4 and s.tickets_c
</dxl:LogicalJoin>
</dxl:LogicalSelect>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="4030">
+ <dxl:Plan Id="0" SpaceSize="3190">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1293.002852" Rows="1.000000" Width="64"/>
diff --git a/src/backend/gporca/data/dxl/minidump/FullJoin-Subquery-CastedPredicates.mdp b/src/backend/gporca/data/dxl/minidump/FullJoin-Subquery-CastedPredicates.mdp
index 0359b200ab..ac3d89c5c9 100644
--- a/src/backend/gporca/data/dxl/minidump/FullJoin-Subquery-CastedPredicates.mdp
+++ b/src/backend/gporca/data/dxl/minidump/FullJoin-Subquery-CastedPredicates.mdp
@@ -487,7 +487,7 @@
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="3196">
+ <dxl:Plan Id="0" SpaceSize="2048">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1299.001542" Rows="3.000000" Width="20"/>
diff --git a/src/backend/gporca/data/dxl/minidump/GreedyNAryJoin.mdp b/src/backend/gporca/data/dxl/minidump/GreedyNAryJoin.mdp
index 44d8107975..bb61251c7b 100644
--- a/src/backend/gporca/data/dxl/minidump/GreedyNAryJoin.mdp
+++ b/src/backend/gporca/data/dxl/minidump/GreedyNAryJoin.mdp
@@ -1147,7 +1147,7 @@ EXPLAIN SELECT * FROM t1 INNER JOIN t2 ON a =b INNER JOIN t3 ON b = c;
<dxl:Plan Id="0" SpaceSize="88">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1293.747876" Rows="1.000000" Width="12"/>
+ <dxl:Cost StartupCost="0" TotalCost="1293.748028" Rows="1.000000" Width="12"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="a">
@@ -1164,7 +1164,7 @@ EXPLAIN SELECT * FROM t1 INNER JOIN t2 ON a =b INNER JOIN t3 ON b = c;
<dxl:SortingColumnList/>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1293.747832" Rows="1.000000" Width="12"/>
+ <dxl:Cost StartupCost="0" TotalCost="1293.747984" Rows="1.000000" Width="12"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="a">
@@ -1181,36 +1181,13 @@ EXPLAIN SELECT * FROM t1 INNER JOIN t2 ON a =b INNER JOIN t3 ON b = c;
<dxl:JoinFilter/>
<dxl:HashCondList>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="16" ColName="c" TypeMdid="0.23.1.0"/>
<dxl:Ident ColId="8" ColName="b" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="16" ColName="c" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
</dxl:HashCondList>
- <dxl:TableScan>
- <dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="431.000062" Rows="10.000000" Width="4"/>
- </dxl:Properties>
- <dxl:ProjList>
- <dxl:ProjElem ColId="16" Alias="c">
- <dxl:Ident ColId="16" ColName="c" TypeMdid="0.23.1.0"/>
- </dxl:ProjElem>
- </dxl:ProjList>
- <dxl:Filter/>
- <dxl:TableDescriptor Mdid="0.74018.1.0" TableName="t3">
- <dxl:Columns>
- <dxl:Column ColId="16" Attno="1" ColName="c" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="17" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="18" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="19" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="20" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="21" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="22" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="23" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
- </dxl:Columns>
- </dxl:TableDescriptor>
- </dxl:TableScan>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="862.747049" Rows="1.000000" Width="8"/>
+ <dxl:Cost StartupCost="0" TotalCost="862.747068" Rows="1.000000" Width="8"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="a">
@@ -1275,6 +1252,29 @@ EXPLAIN SELECT * FROM t1 INNER JOIN t2 ON a =b INNER JOIN t3 ON b = c;
</dxl:TableDescriptor>
</dxl:TableScan>
</dxl:HashJoin>
+ <dxl:TableScan>
+ <dxl:Properties>
+ <dxl:Cost StartupCost="0" TotalCost="431.000062" Rows="10.000000" Width="4"/>
+ </dxl:Properties>
+ <dxl:ProjList>
+ <dxl:ProjElem ColId="16" Alias="c">
+ <dxl:Ident ColId="16" ColName="c" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ </dxl:ProjList>
+ <dxl:Filter/>
+ <dxl:TableDescriptor Mdid="0.74018.1.0" TableName="t3">
+ <dxl:Columns>
+ <dxl:Column ColId="16" Attno="1" ColName="c" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="17" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="18" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="19" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="20" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="21" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="22" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="23" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ </dxl:Columns>
+ </dxl:TableDescriptor>
+ </dxl:TableScan>
</dxl:HashJoin>
</dxl:GatherMotion>
</dxl:Plan>
diff --git a/src/backend/gporca/data/dxl/minidump/GroupingOnSameTblCol-1.mdp b/src/backend/gporca/data/dxl/minidump/GroupingOnSameTblCol-1.mdp
index 3f5d090cad..39e2d4e007 100644
--- a/src/backend/gporca/data/dxl/minidump/GroupingOnSameTblCol-1.mdp
+++ b/src/backend/gporca/data/dxl/minidump/GroupingOnSameTblCol-1.mdp
@@ -11022,7 +11022,7 @@ group by item.i_item_id, item.i_item_desc, item.i_current_price;
</dxl:LogicalJoin>
</dxl:LogicalGroupBy>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="84">
+ <dxl:Plan Id="0" SpaceSize="76">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="458.857269" Rows="3.941034" Width="127"/>
diff --git a/src/backend/gporca/data/dxl/minidump/HAWQ-TPCH-Stat-Derivation.mdp b/src/backend/gporca/data/dxl/minidump/HAWQ-TPCH-Stat-Derivation.mdp
index 0707fd92d4..541de65953 100644
--- a/src/backend/gporca/data/dxl/minidump/HAWQ-TPCH-Stat-Derivation.mdp
+++ b/src/backend/gporca/data/dxl/minidump/HAWQ-TPCH-Stat-Derivation.mdp
@@ -6367,7 +6367,7 @@ ORDER BY s_name;
</dxl:LogicalJoin>
</dxl:LogicalLimit>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="3270672">
+ <dxl:Plan Id="0" SpaceSize="1863552">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="24583535.993774" Rows="49.989277" Width="65"/>
diff --git a/src/backend/gporca/data/dxl/minidump/HJN-DPE-Bitmap-Outer-Child.mdp b/src/backend/gporca/data/dxl/minidump/HJN-DPE-Bitmap-Outer-Child.mdp
index 51ebecaf88..e6c73106e2 100644
--- a/src/backend/gporca/data/dxl/minidump/HJN-DPE-Bitmap-Outer-Child.mdp
+++ b/src/backend/gporca/data/dxl/minidump/HJN-DPE-Bitmap-Outer-Child.mdp
@@ -1917,7 +1917,7 @@ select * from dbs_target, dbs_helper where dbs_target.c1 = dbs_helper.c1 and dbs
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="30">
+ <dxl:Plan Id="0" SpaceSize="20">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="829.034339" Rows="35.148716" Width="24"/>
diff --git a/src/backend/gporca/data/dxl/minidump/HJN-DeeperOuter.mdp b/src/backend/gporca/data/dxl/minidump/HJN-DeeperOuter.mdp
index 5a4fd23107..14110b7cfb 100644
--- a/src/backend/gporca/data/dxl/minidump/HJN-DeeperOuter.mdp
+++ b/src/backend/gporca/data/dxl/minidump/HJN-DeeperOuter.mdp
@@ -356,10 +356,10 @@ SELECT z.*,x.* FROM x,y,z WHERE x.i=y.i AND x.i=z.i;
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="410">
+ <dxl:Plan Id="0" SpaceSize="354">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1293.001468" Rows="1.000000" Width="32"/>
+ <dxl:Cost StartupCost="0" TotalCost="1293.001398" Rows="1.000000" Width="32"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="18" Alias="i">
@@ -382,7 +382,7 @@ SELECT z.*,x.* FROM x,y,z WHERE x.i=y.i AND x.i=z.i;
<dxl:SortingColumnList/>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1293.001325" Rows="1.000000" Width="32"/>
+ <dxl:Cost StartupCost="0" TotalCost="1293.001255" Rows="1.000000" Width="32"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="18" Alias="i">
@@ -444,7 +444,7 @@ SELECT z.*,x.* FROM x,y,z WHERE x.i=y.i AND x.i=z.i;
</dxl:TableScan>
<dxl:RedistributeMotion InputSegments="0,1" OutputSegments="0,1">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="862.000710" Rows="1.000000" Width="24"/>
+ <dxl:Cost StartupCost="0" TotalCost="862.000640" Rows="1.000000" Width="24"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="i">
@@ -468,7 +468,7 @@ SELECT z.*,x.* FROM x,y,z WHERE x.i=y.i AND x.i=z.i;
</dxl:HashExprList>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="862.000644" Rows="1.000000" Width="24"/>
+ <dxl:Cost StartupCost="0" TotalCost="862.000602" Rows="1.000000" Width="24"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="i">
diff --git a/src/backend/gporca/data/dxl/minidump/HJN-Redistribute-One-Side.mdp b/src/backend/gporca/data/dxl/minidump/HJN-Redistribute-One-Side.mdp
index 55a05923ee..f4dd31e074 100644
--- a/src/backend/gporca/data/dxl/minidump/HJN-Redistribute-One-Side.mdp
+++ b/src/backend/gporca/data/dxl/minidump/HJN-Redistribute-One-Side.mdp
@@ -4551,7 +4551,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="49">
+ <dxl:Plan Id="0" SpaceSize="32">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="11941.357050" Rows="1.000000" Width="275"/>
diff --git a/src/backend/gporca/data/dxl/minidump/IndexApply-IndexCondDisjointWithHashedDistr.mdp b/src/backend/gporca/data/dxl/minidump/IndexApply-IndexCondDisjointWithHashedDistr.mdp
index 8641cbd39e..94f1dc6404 100644
--- a/src/backend/gporca/data/dxl/minidump/IndexApply-IndexCondDisjointWithHashedDistr.mdp
+++ b/src/backend/gporca/data/dxl/minidump/IndexApply-IndexCondDisjointWithHashedDistr.mdp
@@ -824,7 +824,7 @@
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="18">
+ <dxl:Plan Id="0" SpaceSize="13">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="863.431632" Rows="1000.888592" Width="20"/>
diff --git a/src/backend/gporca/data/dxl/minidump/IndexApply-IndexCondIntersectWithHashedDistr.mdp b/src/backend/gporca/data/dxl/minidump/IndexApply-IndexCondIntersectWithHashedDistr.mdp
index da6cc7a590..86e0debb35 100644
--- a/src/backend/gporca/data/dxl/minidump/IndexApply-IndexCondIntersectWithHashedDistr.mdp
+++ b/src/backend/gporca/data/dxl/minidump/IndexApply-IndexCondIntersectWithHashedDistr.mdp
@@ -830,7 +830,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="34">
+ <dxl:Plan Id="0" SpaceSize="23">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="864.151759" Rows="1000.000000" Width="20"/>
diff --git a/src/backend/gporca/data/dxl/minidump/IndexApply-IndexCondSubsetOfHashedDistr.mdp b/src/backend/gporca/data/dxl/minidump/IndexApply-IndexCondSubsetOfHashedDistr.mdp
index 8641cbd39e..94f1dc6404 100644
--- a/src/backend/gporca/data/dxl/minidump/IndexApply-IndexCondSubsetOfHashedDistr.mdp
+++ b/src/backend/gporca/data/dxl/minidump/IndexApply-IndexCondSubsetOfHashedDistr.mdp
@@ -824,7 +824,7 @@
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="18">
+ <dxl:Plan Id="0" SpaceSize="13">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="863.431632" Rows="1000.888592" Width="20"/>
diff --git a/src/backend/gporca/data/dxl/minidump/IndexApply-IndexCondSupersetOfHashedDistr.mdp b/src/backend/gporca/data/dxl/minidump/IndexApply-IndexCondSupersetOfHashedDistr.mdp
index bb67fd6528..984dfc523c 100644
--- a/src/backend/gporca/data/dxl/minidump/IndexApply-IndexCondSupersetOfHashedDistr.mdp
+++ b/src/backend/gporca/data/dxl/minidump/IndexApply-IndexCondSupersetOfHashedDistr.mdp
@@ -816,7 +816,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="22">
+ <dxl:Plan Id="0" SpaceSize="17">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="863.780122" Rows="100.000000" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/IndexApply-MultiDistKey-WithComplexPreds.mdp b/src/backend/gporca/data/dxl/minidump/IndexApply-MultiDistKey-WithComplexPreds.mdp
index 5e6712ce4a..d2039de609 100644
--- a/src/backend/gporca/data/dxl/minidump/IndexApply-MultiDistKey-WithComplexPreds.mdp
+++ b/src/backend/gporca/data/dxl/minidump/IndexApply-MultiDistKey-WithComplexPreds.mdp
@@ -285,7 +285,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="44">
+ <dxl:Plan Id="0" SpaceSize="27">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="437.000677" Rows="1.000000" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/IndexApply-MultiDistKeys-Bitmap-WithComplexPreds.mdp b/src/backend/gporca/data/dxl/minidump/IndexApply-MultiDistKeys-Bitmap-WithComplexPreds.mdp
index fe05f260e1..810e1fe2a0 100644
--- a/src/backend/gporca/data/dxl/minidump/IndexApply-MultiDistKeys-Bitmap-WithComplexPreds.mdp
+++ b/src/backend/gporca/data/dxl/minidump/IndexApply-MultiDistKeys-Bitmap-WithComplexPreds.mdp
@@ -290,7 +290,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="44">
+ <dxl:Plan Id="0" SpaceSize="27">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="822.296104" Rows="1.000000" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/IndexApply-MultiDistKeys-Bitmap.mdp b/src/backend/gporca/data/dxl/minidump/IndexApply-MultiDistKeys-Bitmap.mdp
index b649c6c652..9fca3b9432 100644
--- a/src/backend/gporca/data/dxl/minidump/IndexApply-MultiDistKeys-Bitmap.mdp
+++ b/src/backend/gporca/data/dxl/minidump/IndexApply-MultiDistKeys-Bitmap.mdp
@@ -273,7 +273,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="31">
+ <dxl:Plan Id="0" SpaceSize="21">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="822.295674" Rows="1.000000" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/IndexGet-OuterRefs.mdp b/src/backend/gporca/data/dxl/minidump/IndexGet-OuterRefs.mdp
index 535941b056..0fedd0455a 100644
--- a/src/backend/gporca/data/dxl/minidump/IndexGet-OuterRefs.mdp
+++ b/src/backend/gporca/data/dxl/minidump/IndexGet-OuterRefs.mdp
@@ -260,7 +260,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="34">
+ <dxl:Plan Id="0" SpaceSize="24">
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="437.001095" Rows="1.000000" Width="32"/>
diff --git a/src/backend/gporca/data/dxl/minidump/InferPredicatesForProcessedColumn.mdp b/src/backend/gporca/data/dxl/minidump/InferPredicatesForProcessedColumn.mdp
index 3657aa454e..f473b64ac3 100644
--- a/src/backend/gporca/data/dxl/minidump/InferPredicatesForProcessedColumn.mdp
+++ b/src/backend/gporca/data/dxl/minidump/InferPredicatesForProcessedColumn.mdp
@@ -373,7 +373,7 @@
<dxl:Plan Id="0" SpaceSize="104">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1293.001033" Rows="1.000000" Width="24"/>
+ <dxl:Cost StartupCost="0" TotalCost="1293.001317" Rows="1.000000" Width="24"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="id">
@@ -393,7 +393,7 @@
<dxl:SortingColumnList/>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1293.000943" Rows="1.000000" Width="24"/>
+ <dxl:Cost StartupCost="0" TotalCost="1293.001227" Rows="1.000000" Width="24"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="id">
@@ -413,45 +413,13 @@
<dxl:JoinFilter/>
<dxl:HashCondList>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="0" ColName="id" TypeMdid="0.23.1.0"/>
<dxl:Ident ColId="9" ColName="id" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="0" ColName="id" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
</dxl:HashCondList>
- <dxl:TableScan>
- <dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="431.000078" Rows="1.000000" Width="12"/>
- </dxl:Properties>
- <dxl:ProjList>
- <dxl:ProjElem ColId="0" Alias="id">
- <dxl:Ident ColId="0" ColName="id" TypeMdid="0.23.1.0"/>
- </dxl:ProjElem>
- <dxl:ProjElem ColId="1" Alias="name">
- <dxl:Ident ColId="1" ColName="name" TypeMdid="0.25.1.0"/>
- </dxl:ProjElem>
- </dxl:ProjList>
- <dxl:Filter>
- <dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="0" ColName="id" TypeMdid="0.23.1.0"/>
- <dxl:ConstValue TypeMdid="0.23.1.0" Value="10"/>
- </dxl:Comparison>
- </dxl:Filter>
- <dxl:TableDescriptor Mdid="0.16384.1.0" TableName="t1">
- <dxl:Columns>
- <dxl:Column ColId="0" Attno="1" ColName="id" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="1" Attno="2" ColName="name" TypeMdid="0.25.1.0" ColWidth="8"/>
- <dxl:Column ColId="2" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="3" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="4" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="5" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="6" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="7" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="8" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
- </dxl:Columns>
- </dxl:TableDescriptor>
- </dxl:TableScan>
<dxl:Result>
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="862.000532" Rows="1.000000" Width="12"/>
+ <dxl:Cost StartupCost="0" TotalCost="862.000568" Rows="1.000000" Width="12"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="27" Alias="name">
@@ -468,7 +436,7 @@
<dxl:OneTimeFilter/>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="862.000528" Rows="1.000000" Width="12"/>
+ <dxl:Cost StartupCost="0" TotalCost="862.000556" Rows="1.000000" Width="12"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="9" Alias="id">
@@ -548,6 +516,38 @@
</dxl:TableScan>
</dxl:HashJoin>
</dxl:Result>
+ <dxl:TableScan>
+ <dxl:Properties>
+ <dxl:Cost StartupCost="0" TotalCost="431.000078" Rows="1.000000" Width="12"/>
+ </dxl:Properties>
+ <dxl:ProjList>
+ <dxl:ProjElem ColId="0" Alias="id">
+ <dxl:Ident ColId="0" ColName="id" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ <dxl:ProjElem ColId="1" Alias="name">
+ <dxl:Ident ColId="1" ColName="name" TypeMdid="0.25.1.0"/>
+ </dxl:ProjElem>
+ </dxl:ProjList>
+ <dxl:Filter>
+ <dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
+ <dxl:Ident ColId="0" ColName="id" TypeMdid="0.23.1.0"/>
+ <dxl:ConstValue TypeMdid="0.23.1.0" Value="10"/>
+ </dxl:Comparison>
+ </dxl:Filter>
+ <dxl:TableDescriptor Mdid="0.16384.1.0" TableName="t1">
+ <dxl:Columns>
+ <dxl:Column ColId="0" Attno="1" ColName="id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="1" Attno="2" ColName="name" TypeMdid="0.25.1.0" ColWidth="8"/>
+ <dxl:Column ColId="2" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="3" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="4" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="5" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="6" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="7" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="8" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ </dxl:Columns>
+ </dxl:TableDescriptor>
+ </dxl:TableScan>
</dxl:HashJoin>
</dxl:GatherMotion>
</dxl:Plan>
diff --git a/src/backend/gporca/data/dxl/minidump/InferPredicatesInnerOfLOJ.mdp b/src/backend/gporca/data/dxl/minidump/InferPredicatesInnerOfLOJ.mdp
index 888d9c6ce3..339aa55649 100644
--- a/src/backend/gporca/data/dxl/minidump/InferPredicatesInnerOfLOJ.mdp
+++ b/src/backend/gporca/data/dxl/minidump/InferPredicatesInnerOfLOJ.mdp
@@ -816,7 +816,7 @@
</dxl:LogicalJoin>
</dxl:LogicalSelect>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="376">
+ <dxl:Plan Id="0" SpaceSize="238">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1293.000804" Rows="1.000000" Width="4"/>
diff --git a/src/backend/gporca/data/dxl/minidump/InferredPredicatesConstraintSimplification.mdp b/src/backend/gporca/data/dxl/minidump/InferredPredicatesConstraintSimplification.mdp
index 0db5432eaa..ad0d936bc2 100644
--- a/src/backend/gporca/data/dxl/minidump/InferredPredicatesConstraintSimplification.mdp
+++ b/src/backend/gporca/data/dxl/minidump/InferredPredicatesConstraintSimplification.mdp
@@ -479,35 +479,12 @@
<dxl:JoinFilter/>
<dxl:HashCondList>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.1054.1.0">
+ <dxl:Ident ColId="0" ColName="a" TypeMdid="0.1042.1.0" TypeModifier="6"/>
<dxl:Cast TypeMdid="0.1042.1.0" FuncId="0.0.0.0">
<dxl:Ident ColId="16" ColName="c" TypeMdid="0.1043.1.0" TypeModifier="28"/>
</dxl:Cast>
- <dxl:Ident ColId="0" ColName="a" TypeMdid="0.1042.1.0" TypeModifier="6"/>
</dxl:Comparison>
</dxl:HashCondList>
- <dxl:TableScan>
- <dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="431.000030" Rows="1.000000" Width="8"/>
- </dxl:Properties>
- <dxl:ProjList>
- <dxl:ProjElem ColId="16" Alias="c">
- <dxl:Ident ColId="16" ColName="c" TypeMdid="0.1043.1.0" TypeModifier="28"/>
- </dxl:ProjElem>
- </dxl:ProjList>
- <dxl:Filter/>
- <dxl:TableDescriptor Mdid="0.49162.1.0" TableName="t3">
- <dxl:Columns>
- <dxl:Column ColId="16" Attno="1" ColName="c" TypeMdid="0.1043.1.0" TypeModifier="28" ColWidth="24"/>
- <dxl:Column ColId="17" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="18" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="19" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="20" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="21" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="22" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="23" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
- </dxl:Columns>
- </dxl:TableDescriptor>
- </dxl:TableScan>
<dxl:TableScan>
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="431.000065" Rows="1.000000" Width="8"/>
@@ -536,6 +513,29 @@
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
+ <dxl:TableScan>
+ <dxl:Properties>
+ <dxl:Cost StartupCost="0" TotalCost="431.000030" Rows="1.000000" Width="8"/>
+ </dxl:Properties>
+ <dxl:ProjList>
+ <dxl:ProjElem ColId="16" Alias="c">
+ <dxl:Ident ColId="16" ColName="c" TypeMdid="0.1043.1.0" TypeModifier="28"/>
+ </dxl:ProjElem>
+ </dxl:ProjList>
+ <dxl:Filter/>
+ <dxl:TableDescriptor Mdid="0.49162.1.0" TableName="t3">
+ <dxl:Columns>
+ <dxl:Column ColId="16" Attno="1" ColName="c" TypeMdid="0.1043.1.0" TypeModifier="28" ColWidth="24"/>
+ <dxl:Column ColId="17" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="18" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="19" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="20" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="21" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="22" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="23" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ </dxl:Columns>
+ </dxl:TableDescriptor>
+ </dxl:TableScan>
</dxl:HashJoin>
</dxl:HashJoin>
</dxl:GatherMotion>
diff --git a/src/backend/gporca/data/dxl/minidump/InnerJoinOverJoinExcept.mdp b/src/backend/gporca/data/dxl/minidump/InnerJoinOverJoinExcept.mdp
index 4327b36f83..98d6fbce7c 100644
--- a/src/backend/gporca/data/dxl/minidump/InnerJoinOverJoinExcept.mdp
+++ b/src/backend/gporca/data/dxl/minidump/InnerJoinOverJoinExcept.mdp
@@ -432,8 +432,8 @@ ON (a.col = b.col);
<dxl:JoinFilter/>
<dxl:HashCondList>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="16" ColName="col" TypeMdid="0.23.1.0"/>
<dxl:Ident ColId="8" ColName="col" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="16" ColName="col" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
</dxl:HashCondList>
<dxl:TableScan>
@@ -441,21 +441,21 @@ ON (a.col = b.col);
<dxl:Cost StartupCost="0" TotalCost="431.000019" Rows="1.000000" Width="4"/>
</dxl:Properties>
<dxl:ProjList>
- <dxl:ProjElem ColId="16" Alias="col">
- <dxl:Ident ColId="16" ColName="col" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="8" Alias="col">
+ <dxl:Ident ColId="8" ColName="col" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter/>
<dxl:TableDescriptor Mdid="0.16385.1.0" TableName="mytable" LockMode="1">
<dxl:Columns>
- <dxl:Column ColId="16" Attno="1" ColName="col" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="17" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="18" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="19" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="20" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="21" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="22" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="23" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="8" Attno="1" ColName="col" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="9" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="10" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="11" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="12" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="13" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="14" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="15" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
@@ -464,21 +464,21 @@ ON (a.col = b.col);
<dxl:Cost StartupCost="0" TotalCost="431.000019" Rows="1.000000" Width="4"/>
</dxl:Properties>
<dxl:ProjList>
- <dxl:ProjElem ColId="8" Alias="col">
- <dxl:Ident ColId="8" ColName="col" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="16" Alias="col">
+ <dxl:Ident ColId="16" ColName="col" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter/>
<dxl:TableDescriptor Mdid="0.16385.1.0" TableName="mytable" LockMode="1">
<dxl:Columns>
- <dxl:Column ColId="8" Attno="1" ColName="col" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="9" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="10" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="11" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="12" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="13" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="14" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="15" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="16" Attno="1" ColName="col" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="17" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="18" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="19" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="20" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="21" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="22" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="23" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
diff --git a/src/backend/gporca/data/dxl/minidump/InnerJoinOverJoinExceptAll.mdp b/src/backend/gporca/data/dxl/minidump/InnerJoinOverJoinExceptAll.mdp
index b2b946b041..55b609250c 100644
--- a/src/backend/gporca/data/dxl/minidump/InnerJoinOverJoinExceptAll.mdp
+++ b/src/backend/gporca/data/dxl/minidump/InnerJoinOverJoinExceptAll.mdp
@@ -476,8 +476,8 @@ ON (a.col = b.col);
<dxl:JoinFilter/>
<dxl:HashCondList>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="16" ColName="col" TypeMdid="0.23.1.0"/>
<dxl:Ident ColId="8" ColName="col" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="16" ColName="col" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
</dxl:HashCondList>
<dxl:TableScan>
@@ -485,21 +485,21 @@ ON (a.col = b.col);
<dxl:Cost StartupCost="0" TotalCost="431.000019" Rows="1.000000" Width="4"/>
</dxl:Properties>
<dxl:ProjList>
- <dxl:ProjElem ColId="16" Alias="col">
- <dxl:Ident ColId="16" ColName="col" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="8" Alias="col">
+ <dxl:Ident ColId="8" ColName="col" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter/>
<dxl:TableDescriptor Mdid="0.32783.1.0" TableName="mytable" LockMode="1">
<dxl:Columns>
- <dxl:Column ColId="16" Attno="1" ColName="col" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="17" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="18" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="19" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="20" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="21" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="22" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="23" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="8" Attno="1" ColName="col" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="9" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="10" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="11" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="12" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="13" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="14" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="15" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
@@ -508,21 +508,21 @@ ON (a.col = b.col);
<dxl:Cost StartupCost="0" TotalCost="431.000019" Rows="1.000000" Width="4"/>
</dxl:Properties>
<dxl:ProjList>
- <dxl:ProjElem ColId="8" Alias="col">
- <dxl:Ident ColId="8" ColName="col" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="16" Alias="col">
+ <dxl:Ident ColId="16" ColName="col" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter/>
<dxl:TableDescriptor Mdid="0.32783.1.0" TableName="mytable" LockMode="1">
<dxl:Columns>
- <dxl:Column ColId="8" Attno="1" ColName="col" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="9" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="10" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="11" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="12" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="13" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="14" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="15" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="16" Attno="1" ColName="col" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="17" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="18" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="19" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="20" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="21" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="22" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="23" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
diff --git a/src/backend/gporca/data/dxl/minidump/Insert-With-HJ-CTE-Agg.mdp b/src/backend/gporca/data/dxl/minidump/Insert-With-HJ-CTE-Agg.mdp
index ac903d964b..a86ec3eb77 100644
--- a/src/backend/gporca/data/dxl/minidump/Insert-With-HJ-CTE-Agg.mdp
+++ b/src/backend/gporca/data/dxl/minidump/Insert-With-HJ-CTE-Agg.mdp
@@ -508,7 +508,7 @@
</dxl:LogicalProject>
</dxl:LogicalInsert>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="1160">
+ <dxl:Plan Id="0" SpaceSize="1180">
<dxl:DMLInsert Columns="38,39,42,43,44" ActionCol="48" OidCol="0" CtidCol="0" SegmentIdCol="0" InputSorted="false">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="867.122533" Rows="96.000000" Width="36"/>
diff --git a/src/backend/gporca/data/dxl/minidump/Intersect-OuterRefs.mdp b/src/backend/gporca/data/dxl/minidump/Intersect-OuterRefs.mdp
index af4f299ff2..f62d156d32 100644
--- a/src/backend/gporca/data/dxl/minidump/Intersect-OuterRefs.mdp
+++ b/src/backend/gporca/data/dxl/minidump/Intersect-OuterRefs.mdp
@@ -1413,7 +1413,7 @@
</dxl:LogicalGet>
</dxl:LogicalSelect>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="4320">
+ <dxl:Plan Id="0" SpaceSize="4060">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1293.065290" Rows="77.229878" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/JOIN-NonRedistributableCol.mdp b/src/backend/gporca/data/dxl/minidump/JOIN-NonRedistributableCol.mdp
index b124e71431..b4d2bb1f32 100644
--- a/src/backend/gporca/data/dxl/minidump/JOIN-NonRedistributableCol.mdp
+++ b/src/backend/gporca/data/dxl/minidump/JOIN-NonRedistributableCol.mdp
@@ -270,7 +270,7 @@ explain select * from foo, testhstore where foo.b = testhstore.h;
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="17">
+ <dxl:Plan Id="0" SpaceSize="12">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.000526" Rows="1.000000" Width="14"/>
diff --git a/src/backend/gporca/data/dxl/minidump/JOIN-Pred-Cast-Int4.mdp b/src/backend/gporca/data/dxl/minidump/JOIN-Pred-Cast-Int4.mdp
index 8e9b9985cf..fe31ac9c51 100644
--- a/src/backend/gporca/data/dxl/minidump/JOIN-Pred-Cast-Int4.mdp
+++ b/src/backend/gporca/data/dxl/minidump/JOIN-Pred-Cast-Int4.mdp
@@ -453,7 +453,7 @@
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="11">
+ <dxl:Plan Id="0" SpaceSize="10">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.022378" Rows="1.000000" Width="12"/>
diff --git a/src/backend/gporca/data/dxl/minidump/JOIN-Pred-Cast-Varchar.mdp b/src/backend/gporca/data/dxl/minidump/JOIN-Pred-Cast-Varchar.mdp
index 3a07cc1a97..c1f0873e2d 100644
--- a/src/backend/gporca/data/dxl/minidump/JOIN-Pred-Cast-Varchar.mdp
+++ b/src/backend/gporca/data/dxl/minidump/JOIN-Pred-Cast-Varchar.mdp
@@ -649,7 +649,7 @@
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="17">
+ <dxl:Plan Id="0" SpaceSize="12">
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.566515" Rows="10000.000000" Width="14"/>
diff --git a/src/backend/gporca/data/dxl/minidump/JOIN-cast2text-int4-Eq-cast2text-double.mdp b/src/backend/gporca/data/dxl/minidump/JOIN-cast2text-int4-Eq-cast2text-double.mdp
index 20f7eb05da..d064eb0e5a 100644
--- a/src/backend/gporca/data/dxl/minidump/JOIN-cast2text-int4-Eq-cast2text-double.mdp
+++ b/src/backend/gporca/data/dxl/minidump/JOIN-cast2text-int4-Eq-cast2text-double.mdp
@@ -474,7 +474,7 @@
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="17">
+ <dxl:Plan Id="0" SpaceSize="12">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.031867" Rows="100.000000" Width="13"/>
diff --git a/src/backend/gporca/data/dxl/minidump/JOIN-int4-Eq-double.mdp b/src/backend/gporca/data/dxl/minidump/JOIN-int4-Eq-double.mdp
index 1eaf1fc6ad..d68bb48daf 100644
--- a/src/backend/gporca/data/dxl/minidump/JOIN-int4-Eq-double.mdp
+++ b/src/backend/gporca/data/dxl/minidump/JOIN-int4-Eq-double.mdp
@@ -453,7 +453,7 @@
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="11">
+ <dxl:Plan Id="0" SpaceSize="10">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.030459" Rows="100.000000" Width="13"/>
diff --git a/src/backend/gporca/data/dxl/minidump/JOIN-int4-Eq-int2.mdp b/src/backend/gporca/data/dxl/minidump/JOIN-int4-Eq-int2.mdp
index 48e41eac45..4da53e5cd6 100644
--- a/src/backend/gporca/data/dxl/minidump/JOIN-int4-Eq-int2.mdp
+++ b/src/backend/gporca/data/dxl/minidump/JOIN-int4-Eq-int2.mdp
@@ -352,7 +352,7 @@
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="11">
+ <dxl:Plan Id="0" SpaceSize="10">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.022512" Rows="100.000000" Width="6"/>
diff --git a/src/backend/gporca/data/dxl/minidump/Join-Varchar-Equality.mdp b/src/backend/gporca/data/dxl/minidump/Join-Varchar-Equality.mdp
index df011632b8..f644648a70 100644
--- a/src/backend/gporca/data/dxl/minidump/Join-Varchar-Equality.mdp
+++ b/src/backend/gporca/data/dxl/minidump/Join-Varchar-Equality.mdp
@@ -4049,7 +4049,7 @@
</dxl:LogicalJoin>
</dxl:LogicalGroupBy>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="125612">
+ <dxl:Plan Id="0" SpaceSize="80990">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="3422679.529071" Rows="19136.250000" Width="31"/>
diff --git a/src/backend/gporca/data/dxl/minidump/JoinArityAssociativityCommutativityAboveLimit.mdp b/src/backend/gporca/data/dxl/minidump/JoinArityAssociativityCommutativityAboveLimit.mdp
index 269560cbde..34d37ff93c 100644
--- a/src/backend/gporca/data/dxl/minidump/JoinArityAssociativityCommutativityAboveLimit.mdp
+++ b/src/backend/gporca/data/dxl/minidump/JoinArityAssociativityCommutativityAboveLimit.mdp
@@ -336,7 +336,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="3667">
+ <dxl:Plan Id="0" SpaceSize="2488">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1293.001370" Rows="1.000000" Width="8"/>
@@ -418,41 +418,14 @@
<dxl:JoinFilter/>
<dxl:HashCondList>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="18" ColName="i" TypeMdid="0.23.1.0"/>
<dxl:Ident ColId="0" ColName="i" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="18" ColName="i" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="19" ColName="j" TypeMdid="0.23.1.0"/>
<dxl:Ident ColId="1" ColName="j" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="19" ColName="j" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
</dxl:HashCondList>
- <dxl:TableScan>
- <dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="431.000021" Rows="1.000000" Width="8"/>
- </dxl:Properties>
- <dxl:ProjList>
- <dxl:ProjElem ColId="18" Alias="i">
- <dxl:Ident ColId="18" ColName="i" TypeMdid="0.23.1.0"/>
- </dxl:ProjElem>
- <dxl:ProjElem ColId="19" Alias="j">
- <dxl:Ident ColId="19" ColName="j" TypeMdid="0.23.1.0"/>
- </dxl:ProjElem>
- </dxl:ProjList>
- <dxl:Filter/>
- <dxl:TableDescriptor Mdid="0.57410.1.1" TableName="table3">
- <dxl:Columns>
- <dxl:Column ColId="18" Attno="1" ColName="i" TypeMdid="0.23.1.0"/>
- <dxl:Column ColId="19" Attno="2" ColName="j" TypeMdid="0.23.1.0"/>
- <dxl:Column ColId="20" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0"/>
- <dxl:Column ColId="21" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0"/>
- <dxl:Column ColId="22" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0"/>
- <dxl:Column ColId="23" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0"/>
- <dxl:Column ColId="24" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0"/>
- <dxl:Column ColId="25" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0"/>
- <dxl:Column ColId="26" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0"/>
- </dxl:Columns>
- </dxl:TableDescriptor>
- </dxl:TableScan>
<dxl:TableScan>
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="431.000021" Rows="1.000000" Width="8"/>
@@ -480,6 +453,33 @@
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
+ <dxl:TableScan>
+ <dxl:Properties>
+ <dxl:Cost StartupCost="0" TotalCost="431.000021" Rows="1.000000" Width="8"/>
+ </dxl:Properties>
+ <dxl:ProjList>
+ <dxl:ProjElem ColId="18" Alias="i">
+ <dxl:Ident ColId="18" ColName="i" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ <dxl:ProjElem ColId="19" Alias="j">
+ <dxl:Ident ColId="19" ColName="j" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ </dxl:ProjList>
+ <dxl:Filter/>
+ <dxl:TableDescriptor Mdid="0.57410.1.1" TableName="table3">
+ <dxl:Columns>
+ <dxl:Column ColId="18" Attno="1" ColName="i" TypeMdid="0.23.1.0"/>
+ <dxl:Column ColId="19" Attno="2" ColName="j" TypeMdid="0.23.1.0"/>
+ <dxl:Column ColId="20" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0"/>
+ <dxl:Column ColId="21" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0"/>
+ <dxl:Column ColId="22" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0"/>
+ <dxl:Column ColId="23" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0"/>
+ <dxl:Column ColId="24" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0"/>
+ <dxl:Column ColId="25" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0"/>
+ <dxl:Column ColId="26" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0"/>
+ </dxl:Columns>
+ </dxl:TableDescriptor>
+ </dxl:TableScan>
</dxl:HashJoin>
</dxl:HashJoin>
</dxl:GatherMotion>
diff --git a/src/backend/gporca/data/dxl/minidump/JoinArityAssociativityCommutativityAtLimit.mdp b/src/backend/gporca/data/dxl/minidump/JoinArityAssociativityCommutativityAtLimit.mdp
index 53f9ea016b..e59e2ff636 100644
--- a/src/backend/gporca/data/dxl/minidump/JoinArityAssociativityCommutativityAtLimit.mdp
+++ b/src/backend/gporca/data/dxl/minidump/JoinArityAssociativityCommutativityAtLimit.mdp
@@ -336,7 +336,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="8201">
+ <dxl:Plan Id="0" SpaceSize="5270">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1293.001370" Rows="1.000000" Width="8"/>
@@ -418,41 +418,14 @@
<dxl:JoinFilter/>
<dxl:HashCondList>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="9" ColName="i" TypeMdid="0.23.1.0"/>
<dxl:Ident ColId="0" ColName="i" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="9" ColName="i" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="10" ColName="j" TypeMdid="0.23.1.0"/>
<dxl:Ident ColId="1" ColName="j" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="10" ColName="j" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
</dxl:HashCondList>
- <dxl:TableScan>
- <dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="431.000021" Rows="1.000000" Width="8"/>
- </dxl:Properties>
- <dxl:ProjList>
- <dxl:ProjElem ColId="9" Alias="i">
- <dxl:Ident ColId="9" ColName="i" TypeMdid="0.23.1.0"/>
- </dxl:ProjElem>
- <dxl:ProjElem ColId="10" Alias="j">
- <dxl:Ident ColId="10" ColName="j" TypeMdid="0.23.1.0"/>
- </dxl:ProjElem>
- </dxl:ProjList>
- <dxl:Filter/>
- <dxl:TableDescriptor Mdid="0.57383.1.1" TableName="table2">
- <dxl:Columns>
- <dxl:Column ColId="9" Attno="1" ColName="i" TypeMdid="0.23.1.0"/>
- <dxl:Column ColId="10" Attno="2" ColName="j" TypeMdid="0.23.1.0"/>
- <dxl:Column ColId="11" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0"/>
- <dxl:Column ColId="12" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0"/>
- <dxl:Column ColId="13" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0"/>
- <dxl:Column ColId="14" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0"/>
- <dxl:Column ColId="15" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0"/>
- <dxl:Column ColId="16" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0"/>
- <dxl:Column ColId="17" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0"/>
- </dxl:Columns>
- </dxl:TableDescriptor>
- </dxl:TableScan>
<dxl:TableScan>
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="431.000021" Rows="1.000000" Width="8"/>
@@ -480,6 +453,33 @@
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
+ <dxl:TableScan>
+ <dxl:Properties>
+ <dxl:Cost StartupCost="0" TotalCost="431.000021" Rows="1.000000" Width="8"/>
+ </dxl:Properties>
+ <dxl:ProjList>
+ <dxl:ProjElem ColId="9" Alias="i">
+ <dxl:Ident ColId="9" ColName="i" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ <dxl:ProjElem ColId="10" Alias="j">
+ <dxl:Ident ColId="10" ColName="j" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ </dxl:ProjList>
+ <dxl:Filter/>
+ <dxl:TableDescriptor Mdid="0.57383.1.1" TableName="table2">
+ <dxl:Columns>
+ <dxl:Column ColId="9" Attno="1" ColName="i" TypeMdid="0.23.1.0"/>
+ <dxl:Column ColId="10" Attno="2" ColName="j" TypeMdid="0.23.1.0"/>
+ <dxl:Column ColId="11" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0"/>
+ <dxl:Column ColId="12" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0"/>
+ <dxl:Column ColId="13" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0"/>
+ <dxl:Column ColId="14" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0"/>
+ <dxl:Column ColId="15" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0"/>
+ <dxl:Column ColId="16" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0"/>
+ <dxl:Column ColId="17" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0"/>
+ </dxl:Columns>
+ </dxl:TableDescriptor>
+ </dxl:TableScan>
</dxl:HashJoin>
</dxl:HashJoin>
</dxl:GatherMotion>
diff --git a/src/backend/gporca/data/dxl/minidump/JoinArityAssociativityCommutativityBelowLimit.mdp b/src/backend/gporca/data/dxl/minidump/JoinArityAssociativityCommutativityBelowLimit.mdp
index 798cf1cfb3..d8f66c4afa 100644
--- a/src/backend/gporca/data/dxl/minidump/JoinArityAssociativityCommutativityBelowLimit.mdp
+++ b/src/backend/gporca/data/dxl/minidump/JoinArityAssociativityCommutativityBelowLimit.mdp
@@ -336,10 +336,10 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="293">
+ <dxl:Plan Id="0" SpaceSize="415">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1293.001643" Rows="1.000000" Width="8"/>
+ <dxl:Cost StartupCost="0" TotalCost="1293.001389" Rows="1.000000" Width="8"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="i">
@@ -353,7 +353,7 @@
<dxl:SortingColumnList/>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1293.001613" Rows="1.000000" Width="8"/>
+ <dxl:Cost StartupCost="0" TotalCost="1293.001359" Rows="1.000000" Width="8"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="i">
@@ -377,7 +377,7 @@
</dxl:HashCondList>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="862.000834" Rows="1.000000" Width="8"/>
+ <dxl:Cost StartupCost="0" TotalCost="862.000815" Rows="1.000000" Width="8"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="i">
diff --git a/src/backend/gporca/data/dxl/minidump/JoinCitextVarchar.mdp b/src/backend/gporca/data/dxl/minidump/JoinCitextVarchar.mdp
index 1209ddff4b..dee046525a 100644
--- a/src/backend/gporca/data/dxl/minidump/JoinCitextVarchar.mdp
+++ b/src/backend/gporca/data/dxl/minidump/JoinCitextVarchar.mdp
@@ -347,7 +347,7 @@
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="11">
+ <dxl:Plan Id="0" SpaceSize="10">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.001378" Rows="4.000000" Width="12"/>
diff --git a/src/backend/gporca/data/dxl/minidump/JoinColWithOnlyNDV.mdp b/src/backend/gporca/data/dxl/minidump/JoinColWithOnlyNDV.mdp
index 56e298dd4b..76d9d507a2 100644
--- a/src/backend/gporca/data/dxl/minidump/JoinColWithOnlyNDV.mdp
+++ b/src/backend/gporca/data/dxl/minidump/JoinColWithOnlyNDV.mdp
@@ -11699,7 +11699,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="11">
+ <dxl:Plan Id="0" SpaceSize="10">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="97948.947313" Rows="4424643.209483" Width="856"/>
diff --git a/src/backend/gporca/data/dxl/minidump/JoinDefaultOpfamiliesUsingNonDefaultOpfamilyOp.mdp b/src/backend/gporca/data/dxl/minidump/JoinDefaultOpfamiliesUsingNonDefaultOpfamilyOp.mdp
index 6f4b086b00..566f1f0c7f 100644
--- a/src/backend/gporca/data/dxl/minidump/JoinDefaultOpfamiliesUsingNonDefaultOpfamilyOp.mdp
+++ b/src/backend/gporca/data/dxl/minidump/JoinDefaultOpfamiliesUsingNonDefaultOpfamilyOp.mdp
@@ -333,7 +333,7 @@
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="17">
+ <dxl:Plan Id="0" SpaceSize="12">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.000704" Rows="4.800000" Width="8"/>
diff --git a/src/backend/gporca/data/dxl/minidump/JoinOptimizationLevelGreedyNonPartTblInnerJoin.mdp b/src/backend/gporca/data/dxl/minidump/JoinOptimizationLevelGreedyNonPartTblInnerJoin.mdp
index 22f80c9512..e699cf1b41 100644
--- a/src/backend/gporca/data/dxl/minidump/JoinOptimizationLevelGreedyNonPartTblInnerJoin.mdp
+++ b/src/backend/gporca/data/dxl/minidump/JoinOptimizationLevelGreedyNonPartTblInnerJoin.mdp
@@ -2868,7 +2868,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="761">
+ <dxl:Plan Id="0" SpaceSize="617">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1724.848201" Rows="10.000000" Width="32"/>
diff --git a/src/backend/gporca/data/dxl/minidump/JoinOrderDPE.mdp b/src/backend/gporca/data/dxl/minidump/JoinOrderDPE.mdp
index 4b5f86ed41..bab20c572c 100644
--- a/src/backend/gporca/data/dxl/minidump/JoinOrderDPE.mdp
+++ b/src/backend/gporca/data/dxl/minidump/JoinOrderDPE.mdp
@@ -3144,7 +3144,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="87">
+ <dxl:Plan Id="0" SpaceSize="84">
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1301.264895" Rows="95315.069401" Width="24"/>
diff --git a/src/backend/gporca/data/dxl/minidump/JoinTinterval.mdp b/src/backend/gporca/data/dxl/minidump/JoinTinterval.mdp
index 0f4ee795a0..63c2672a6e 100644
--- a/src/backend/gporca/data/dxl/minidump/JoinTinterval.mdp
+++ b/src/backend/gporca/data/dxl/minidump/JoinTinterval.mdp
@@ -311,7 +311,7 @@
</dxl:LogicalProject>
</dxl:LogicalLimit>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="79">
+ <dxl:Plan Id="0" SpaceSize="54">
<dxl:Result>
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.000771" Rows="1.000000" Width="32"/>
diff --git a/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-MultiDistKey-MultiIndexKey-NoExtraFilter.mdp b/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-MultiDistKey-MultiIndexKey-NoExtraFilter.mdp
index 85707686ad..2446a33814 100644
--- a/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-MultiDistKey-MultiIndexKey-NoExtraFilter.mdp
+++ b/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-MultiDistKey-MultiIndexKey-NoExtraFilter.mdp
@@ -355,7 +355,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="12">
+ <dxl:Plan Id="0" SpaceSize="11">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="461.001441" Rows="5.000000" Width="24"/>
diff --git a/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-MultiDistKey-MultiIndexKey.mdp b/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-MultiDistKey-MultiIndexKey.mdp
index 529b36f4db..eb0b673e84 100644
--- a/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-MultiDistKey-MultiIndexKey.mdp
+++ b/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-MultiDistKey-MultiIndexKey.mdp
@@ -374,7 +374,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="15">
+ <dxl:Plan Id="0" SpaceSize="14">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="461.001661" Rows="5.000000" Width="24"/>
diff --git a/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-MultiDistKeys-Bitmap-WithComplexPreds.mdp b/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-MultiDistKeys-Bitmap-WithComplexPreds.mdp
index 507edfbc18..3ce53531c3 100644
--- a/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-MultiDistKeys-Bitmap-WithComplexPreds.mdp
+++ b/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-MultiDistKeys-Bitmap-WithComplexPreds.mdp
@@ -288,7 +288,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="12">
+ <dxl:Plan Id="0" SpaceSize="11">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="822.295778" Rows="2.000000" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-MultiDistKeys-WithComplexPreds.mdp b/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-MultiDistKeys-WithComplexPreds.mdp
index 30a7680b8a..1590635186 100644
--- a/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-MultiDistKeys-WithComplexPreds.mdp
+++ b/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-MultiDistKeys-WithComplexPreds.mdp
@@ -283,7 +283,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="12">
+ <dxl:Plan Id="0" SpaceSize="11">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="437.000351" Rows="2.000000" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-WithComplexPredicates.mdp b/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-WithComplexPredicates.mdp
index 01e062d6b9..2baf10a02e 100644
--- a/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-WithComplexPredicates.mdp
+++ b/src/backend/gporca/data/dxl/minidump/LOJ-IndexApply-WithComplexPredicates.mdp
@@ -287,7 +287,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="10">
+ <dxl:Plan Id="0" SpaceSize="9">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="437.000597" Rows="2.000000" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/LOJNonNullRejectingPredicates.mdp b/src/backend/gporca/data/dxl/minidump/LOJNonNullRejectingPredicates.mdp
index 631178b10f..ea1d0551d0 100644
--- a/src/backend/gporca/data/dxl/minidump/LOJNonNullRejectingPredicates.mdp
+++ b/src/backend/gporca/data/dxl/minidump/LOJNonNullRejectingPredicates.mdp
@@ -431,10 +431,10 @@
</dxl:LogicalJoin>
</dxl:LogicalSelect>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="15">
+ <dxl:Plan Id="0" SpaceSize="27">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1724.002949" Rows="1.000000" Width="64"/>
+ <dxl:Cost StartupCost="0" TotalCost="1724.004667" Rows="1.000000" Width="64"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="a">
@@ -490,7 +490,7 @@
<dxl:SortingColumnList/>
<dxl:Result>
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1724.002710" Rows="1.000000" Width="64"/>
+ <dxl:Cost StartupCost="0" TotalCost="1724.004429" Rows="1.000000" Width="64"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="a">
@@ -550,7 +550,7 @@
<dxl:OneTimeFilter/>
<dxl:HashJoin JoinType="Left">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1724.002667" Rows="4.000000" Width="64"/>
+ <dxl:Cost StartupCost="0" TotalCost="1724.004385" Rows="4.000000" Width="64"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="a">
@@ -612,7 +612,7 @@
</dxl:HashCondList>
<dxl:HashJoin JoinType="Left">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1293.001647" Rows="3.000000" Width="48"/>
+ <dxl:Cost StartupCost="0" TotalCost="1293.002506" Rows="3.000000" Width="48"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="a">
@@ -769,9 +769,9 @@
</dxl:TableDescriptor>
</dxl:TableScan>
</dxl:HashJoin>
- <dxl:TableScan>
+ <dxl:BroadcastMotion InputSegments="0,1,2" OutputSegments="0,1,2">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="431.000025" Rows="1.000000" Width="16"/>
+ <dxl:Cost StartupCost="0" TotalCost="431.000914" Rows="3.000000" Width="16"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="22" Alias="a">
@@ -788,26 +788,47 @@
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter/>
- <dxl:TableDescriptor Mdid="0.49158.1.0" TableName="t3">
- <dxl:Columns>
- <dxl:Column ColId="22" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="23" Attno="2" ColName="b" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="24" Attno="3" ColName="c" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="25" Attno="4" ColName="d" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="26" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="27" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="28" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="29" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="30" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="31" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="32" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
- </dxl:Columns>
- </dxl:TableDescriptor>
- </dxl:TableScan>
+ <dxl:SortingColumnList/>
+ <dxl:TableScan>
+ <dxl:Properties>
+ <dxl:Cost StartupCost="0" TotalCost="431.000025" Rows="1.000000" Width="16"/>
+ </dxl:Properties>
+ <dxl:ProjList>
+ <dxl:ProjElem ColId="22" Alias="a">
+ <dxl:Ident ColId="22" ColName="a" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ <dxl:ProjElem ColId="23" Alias="b">
+ <dxl:Ident ColId="23" ColName="b" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ <dxl:ProjElem ColId="24" Alias="c">
+ <dxl:Ident ColId="24" ColName="c" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ <dxl:ProjElem ColId="25" Alias="d">
+ <dxl:Ident ColId="25" ColName="d" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ </dxl:ProjList>
+ <dxl:Filter/>
+ <dxl:TableDescriptor Mdid="0.49158.1.0" TableName="t3">
+ <dxl:Columns>
+ <dxl:Column ColId="22" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="23" Attno="2" ColName="b" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="24" Attno="3" ColName="c" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="25" Attno="4" ColName="d" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="26" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="27" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="28" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="29" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="30" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="31" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="32" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ </dxl:Columns>
+ </dxl:TableDescriptor>
+ </dxl:TableScan>
+ </dxl:BroadcastMotion>
</dxl:HashJoin>
- <dxl:TableScan>
+ <dxl:BroadcastMotion InputSegments="0,1,2" OutputSegments="0,1,2">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="431.000025" Rows="1.000000" Width="16"/>
+ <dxl:Cost StartupCost="0" TotalCost="431.000914" Rows="3.000000" Width="16"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="33" Alias="a">
@@ -824,22 +845,43 @@
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter/>
- <dxl:TableDescriptor Mdid="0.49161.1.0" TableName="t4">
- <dxl:Columns>
- <dxl:Column ColId="33" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="34" Attno="2" ColName="b" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="35" Attno="3" ColName="c" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="36" Attno="4" ColName="d" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="37" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="38" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="39" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="40" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="41" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="42" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="43" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
- </dxl:Columns>
- </dxl:TableDescriptor>
- </dxl:TableScan>
+ <dxl:SortingColumnList/>
+ <dxl:TableScan>
+ <dxl:Properties>
+ <dxl:Cost StartupCost="0" TotalCost="431.000025" Rows="1.000000" Width="16"/>
+ </dxl:Properties>
+ <dxl:ProjList>
+ <dxl:ProjElem ColId="33" Alias="a">
+ <dxl:Ident ColId="33" ColName="a" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ <dxl:ProjElem ColId="34" Alias="b">
+ <dxl:Ident ColId="34" ColName="b" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ <dxl:ProjElem ColId="35" Alias="c">
+ <dxl:Ident ColId="35" ColName="c" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ <dxl:ProjElem ColId="36" Alias="d">
+ <dxl:Ident ColId="36" ColName="d" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ </dxl:ProjList>
+ <dxl:Filter/>
+ <dxl:TableDescriptor Mdid="0.49161.1.0" TableName="t4">
+ <dxl:Columns>
+ <dxl:Column ColId="33" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="34" Attno="2" ColName="b" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="35" Attno="3" ColName="c" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="36" Attno="4" ColName="d" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="37" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="38" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="39" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="40" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="41" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="42" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="43" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ </dxl:Columns>
+ </dxl:TableDescriptor>
+ </dxl:TableScan>
+ </dxl:BroadcastMotion>
</dxl:HashJoin>
</dxl:Result>
</dxl:GatherMotion>
diff --git a/src/backend/gporca/data/dxl/minidump/LOJNullRejectingPredicates.mdp b/src/backend/gporca/data/dxl/minidump/LOJNullRejectingPredicates.mdp
index 0cc3c6991b..7c35f88da6 100644
--- a/src/backend/gporca/data/dxl/minidump/LOJNullRejectingPredicates.mdp
+++ b/src/backend/gporca/data/dxl/minidump/LOJNullRejectingPredicates.mdp
@@ -582,10 +582,45 @@ explain select * from t1 left join t2 on t1.a=t2.a left join t3 on t2.a=t3.a lef
<dxl:JoinFilter/>
<dxl:HashCondList>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="33" ColName="a" TypeMdid="0.23.1.0"/>
<dxl:Ident ColId="0" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="33" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
</dxl:HashCondList>
+ <dxl:TableScan>
+ <dxl:Properties>
+ <dxl:Cost StartupCost="0" TotalCost="431.000025" Rows="1.000000" Width="16"/>
+ </dxl:Properties>
+ <dxl:ProjList>
+ <dxl:ProjElem ColId="0" Alias="a">
+ <dxl:Ident ColId="0" ColName="a" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ <dxl:ProjElem ColId="1" Alias="b">
+ <dxl:Ident ColId="1" ColName="b" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ <dxl:ProjElem ColId="2" Alias="c">
+ <dxl:Ident ColId="2" ColName="c" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ <dxl:ProjElem ColId="3" Alias="d">
+ <dxl:Ident ColId="3" ColName="d" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ </dxl:ProjList>
+ <dxl:Filter/>
+ <dxl:TableDescriptor Mdid="0.49152.1.0" TableName="t1">
+ <dxl:Columns>
+ <dxl:Column ColId="0" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="1" Attno="2" ColName="b" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="2" Attno="3" ColName="c" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="3" Attno="4" ColName="d" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="4" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="5" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="6" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="7" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="8" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="9" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="10" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ </dxl:Columns>
+ </dxl:TableDescriptor>
+ </dxl:TableScan>
<dxl:TableScan>
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="431.000088" Rows="1.000000" Width="16"/>
@@ -626,41 +661,6 @@ explain select * from t1 left join t2 on t1.a=t2.a left join t3 on t2.a=t3.a lef
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
- <dxl:TableScan>
- <dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="431.000025" Rows="1.000000" Width="16"/>
- </dxl:Properties>
- <dxl:ProjList>
- <dxl:ProjElem ColId="0" Alias="a">
- <dxl:Ident ColId="0" ColName="a" TypeMdid="0.23.1.0"/>
- </dxl:ProjElem>
- <dxl:ProjElem ColId="1" Alias="b">
- <dxl:Ident ColId="1" ColName="b" TypeMdid="0.23.1.0"/>
- </dxl:ProjElem>
- <dxl:ProjElem ColId="2" Alias="c">
- <dxl:Ident ColId="2" ColName="c" TypeMdid="0.23.1.0"/>
- </dxl:ProjElem>
- <dxl:ProjElem ColId="3" Alias="d">
- <dxl:Ident ColId="3" ColName="d" TypeMdid="0.23.1.0"/>
- </dxl:ProjElem>
- </dxl:ProjList>
- <dxl:Filter/>
- <dxl:TableDescriptor Mdid="0.49152.1.0" TableName="t1">
- <dxl:Columns>
- <dxl:Column ColId="0" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="1" Attno="2" ColName="b" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="2" Attno="3" ColName="c" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="3" Attno="4" ColName="d" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="4" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="5" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="6" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="7" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="8" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="9" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="10" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
- </dxl:Columns>
- </dxl:TableDescriptor>
- </dxl:TableScan>
</dxl:HashJoin>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
@@ -696,45 +696,10 @@ explain select * from t1 left join t2 on t1.a=t2.a left join t3 on t2.a=t3.a lef
<dxl:JoinFilter/>
<dxl:HashCondList>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="22" ColName="a" TypeMdid="0.23.1.0"/>
<dxl:Ident ColId="11" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="22" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
</dxl:HashCondList>
- <dxl:TableScan>
- <dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="431.000025" Rows="1.000000" Width="16"/>
- </dxl:Properties>
- <dxl:ProjList>
- <dxl:ProjElem ColId="22" Alias="a">
- <dxl:Ident ColId="22" ColName="a" TypeMdid="0.23.1.0"/>
- </dxl:ProjElem>
- <dxl:ProjElem ColId="23" Alias="b">
- <dxl:Ident ColId="23" ColName="b" TypeMdid="0.23.1.0"/>
- </dxl:ProjElem>
- <dxl:ProjElem ColId="24" Alias="c">
- <dxl:Ident ColId="24" ColName="c" TypeMdid="0.23.1.0"/>
- </dxl:ProjElem>
- <dxl:ProjElem ColId="25" Alias="d">
- <dxl:Ident ColId="25" ColName="d" TypeMdid="0.23.1.0"/>
- </dxl:ProjElem>
- </dxl:ProjList>
- <dxl:Filter/>
- <dxl:TableDescriptor Mdid="0.49158.1.0" TableName="t3">
- <dxl:Columns>
- <dxl:Column ColId="22" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="23" Attno="2" ColName="b" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="24" Attno="3" ColName="c" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="25" Attno="4" ColName="d" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="26" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="27" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="28" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="29" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="30" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="31" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="32" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
- </dxl:Columns>
- </dxl:TableDescriptor>
- </dxl:TableScan>
<dxl:TableScan>
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="431.000025" Rows="1.000000" Width="16"/>
@@ -770,6 +735,41 @@ explain select * from t1 left join t2 on t1.a=t2.a left join t3 on t2.a=t3.a lef
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
+ <dxl:TableScan>
+ <dxl:Properties>
+ <dxl:Cost StartupCost="0" TotalCost="431.000025" Rows="1.000000" Width="16"/>
+ </dxl:Properties>
+ <dxl:ProjList>
+ <dxl:ProjElem ColId="22" Alias="a">
+ <dxl:Ident ColId="22" ColName="a" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ <dxl:ProjElem ColId="23" Alias="b">
+ <dxl:Ident ColId="23" ColName="b" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ <dxl:ProjElem ColId="24" Alias="c">
+ <dxl:Ident ColId="24" ColName="c" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ <dxl:ProjElem ColId="25" Alias="d">
+ <dxl:Ident ColId="25" ColName="d" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ </dxl:ProjList>
+ <dxl:Filter/>
+ <dxl:TableDescriptor Mdid="0.49158.1.0" TableName="t3">
+ <dxl:Columns>
+ <dxl:Column ColId="22" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="23" Attno="2" ColName="b" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="24" Attno="3" ColName="c" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="25" Attno="4" ColName="d" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="26" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="27" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="28" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="29" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="30" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="31" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="32" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ </dxl:Columns>
+ </dxl:TableDescriptor>
+ </dxl:TableScan>
</dxl:HashJoin>
</dxl:HashJoin>
</dxl:GatherMotion>
diff --git a/src/backend/gporca/data/dxl/minidump/LOJReorderComplexNestedLOJs.mdp b/src/backend/gporca/data/dxl/minidump/LOJReorderComplexNestedLOJs.mdp
index fc952c9b9a..74ad352016 100644
--- a/src/backend/gporca/data/dxl/minidump/LOJReorderComplexNestedLOJs.mdp
+++ b/src/backend/gporca/data/dxl/minidump/LOJReorderComplexNestedLOJs.mdp
@@ -1619,7 +1619,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="6114743">
+ <dxl:Plan Id="0" SpaceSize="2778615">
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="2586.297294" Rows="6.196244" Width="56"/>
diff --git a/src/backend/gporca/data/dxl/minidump/LOJReorderWithComplexPredicate.mdp b/src/backend/gporca/data/dxl/minidump/LOJReorderWithComplexPredicate.mdp
index 98d1aa06bf..b279df81a6 100644
--- a/src/backend/gporca/data/dxl/minidump/LOJReorderWithComplexPredicate.mdp
+++ b/src/backend/gporca/data/dxl/minidump/LOJReorderWithComplexPredicate.mdp
@@ -1957,7 +1957,7 @@
</dxl:LogicalJoin>
</dxl:LogicalSelect>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="142">
+ <dxl:Plan Id="0" SpaceSize="95">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1293.153370" Rows="2.000000" Width="36"/>
diff --git a/src/backend/gporca/data/dxl/minidump/LOJReorderWithIDF.mdp b/src/backend/gporca/data/dxl/minidump/LOJReorderWithIDF.mdp
index ed0f8c9394..418882f082 100644
--- a/src/backend/gporca/data/dxl/minidump/LOJReorderWithIDF.mdp
+++ b/src/backend/gporca/data/dxl/minidump/LOJReorderWithIDF.mdp
@@ -1540,7 +1540,7 @@
</dxl:LogicalJoin>
</dxl:LogicalSelect>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="136">
+ <dxl:Plan Id="0" SpaceSize="95">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1293.153459" Rows="1.200000" Width="36"/>
diff --git a/src/backend/gporca/data/dxl/minidump/LOJReorderWithNestedLOJAndFilter.mdp b/src/backend/gporca/data/dxl/minidump/LOJReorderWithNestedLOJAndFilter.mdp
index d3b24e2107..64f03a7d63 100644
--- a/src/backend/gporca/data/dxl/minidump/LOJReorderWithNestedLOJAndFilter.mdp
+++ b/src/backend/gporca/data/dxl/minidump/LOJReorderWithNestedLOJAndFilter.mdp
@@ -1543,7 +1543,7 @@
<dxl:Plan Id="0" SpaceSize="57">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1293.153655" Rows="4.000000" Width="36"/>
+ <dxl:Cost StartupCost="0" TotalCost="1293.154254" Rows="4.000000" Width="36"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="a">
@@ -1578,7 +1578,7 @@
<dxl:SortingColumnList/>
<dxl:Result>
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1293.153118" Rows="4.000000" Width="36"/>
+ <dxl:Cost StartupCost="0" TotalCost="1293.153717" Rows="4.000000" Width="36"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="a">
@@ -1623,7 +1623,7 @@
<dxl:OneTimeFilter/>
<dxl:HashJoin JoinType="Right">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1293.152987" Rows="4.000000" Width="36"/>
+ <dxl:Cost StartupCost="0" TotalCost="1293.153323" Rows="4.000000" Width="36"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="a">
diff --git a/src/backend/gporca/data/dxl/minidump/LOJReorderWithOneSidedFilter.mdp b/src/backend/gporca/data/dxl/minidump/LOJReorderWithOneSidedFilter.mdp
index 5e367347f0..d1be91f463 100644
--- a/src/backend/gporca/data/dxl/minidump/LOJReorderWithOneSidedFilter.mdp
+++ b/src/backend/gporca/data/dxl/minidump/LOJReorderWithOneSidedFilter.mdp
@@ -1954,7 +1954,7 @@
</dxl:LogicalJoin>
</dxl:LogicalSelect>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="15">
+ <dxl:Plan Id="0" SpaceSize="10">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1765474.620713" Rows="4.000000" Width="36"/>
diff --git a/src/backend/gporca/data/dxl/minidump/LOJReorderWithSimplePredicate.mdp b/src/backend/gporca/data/dxl/minidump/LOJReorderWithSimplePredicate.mdp
index 5a5637f51f..e0b00cab9b 100644
--- a/src/backend/gporca/data/dxl/minidump/LOJReorderWithSimplePredicate.mdp
+++ b/src/backend/gporca/data/dxl/minidump/LOJReorderWithSimplePredicate.mdp
@@ -1540,10 +1540,10 @@
</dxl:LogicalJoin>
</dxl:LogicalSelect>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="583">
+ <dxl:Plan Id="0" SpaceSize="449">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1293.211204" Rows="2.000000" Width="36"/>
+ <dxl:Cost StartupCost="0" TotalCost="1293.210199" Rows="2.000000" Width="36"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="a">
@@ -1578,7 +1578,7 @@
<dxl:SortingColumnList/>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1293.210936" Rows="2.000000" Width="36"/>
+ <dxl:Cost StartupCost="0" TotalCost="1293.209931" Rows="2.000000" Width="36"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="a">
@@ -1613,54 +1613,58 @@
<dxl:JoinFilter/>
<dxl:HashCondList>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="10" ColName="a" TypeMdid="0.23.1.0"/>
<dxl:Ident ColId="0" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="10" ColName="a" TypeMdid="0.23.1.0"/>
+ </dxl:Comparison>
+ <dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
+ <dxl:Ident ColId="1" ColName="b" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="21" ColName="b" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
</dxl:HashCondList>
<dxl:TableScan>
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="431.007692" Rows="999.000000" Width="12"/>
+ <dxl:Cost StartupCost="0" TotalCost="431.007700" Rows="1000.000000" Width="12"/>
</dxl:Properties>
<dxl:ProjList>
- <dxl:ProjElem ColId="10" Alias="a">
- <dxl:Ident ColId="10" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="0" Alias="a">
+ <dxl:Ident ColId="0" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
- <dxl:ProjElem ColId="11" Alias="b">
- <dxl:Ident ColId="11" ColName="b" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="1" Alias="b">
+ <dxl:Ident ColId="1" ColName="b" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
- <dxl:ProjElem ColId="12" Alias="c">
- <dxl:Ident ColId="12" ColName="c" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="2" Alias="c">
+ <dxl:Ident ColId="2" ColName="c" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter/>
- <dxl:TableDescriptor Mdid="0.29923.1.0" TableName="t2">
+ <dxl:TableDescriptor Mdid="0.29920.1.0" TableName="t1">
<dxl:Columns>
- <dxl:Column ColId="10" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="11" Attno="2" ColName="b" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="12" Attno="3" ColName="c" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="13" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="14" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="15" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="16" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="17" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="18" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="19" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="0" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="1" Attno="2" ColName="b" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="2" Attno="3" ColName="c" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="3" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="4" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="5" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="6" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="7" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="8" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="9" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="862.134128" Rows="2.000000" Width="24"/>
+ <dxl:Cost StartupCost="0" TotalCost="862.075908" Rows="2.000000" Width="24"/>
</dxl:Properties>
<dxl:ProjList>
- <dxl:ProjElem ColId="0" Alias="a">
- <dxl:Ident ColId="0" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="10" Alias="a">
+ <dxl:Ident ColId="10" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
- <dxl:ProjElem ColId="1" Alias="b">
- <dxl:Ident ColId="1" ColName="b" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="11" Alias="b">
+ <dxl:Ident ColId="11" ColName="b" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
- <dxl:ProjElem ColId="2" Alias="c">
- <dxl:Ident ColId="2" ColName="c" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="12" Alias="c">
+ <dxl:Ident ColId="12" ColName="c" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
<dxl:ProjElem ColId="20" Alias="a">
<dxl:Ident ColId="20" ColName="a" TypeMdid="0.23.1.0"/>
@@ -1676,42 +1680,38 @@
<dxl:JoinFilter/>
<dxl:HashCondList>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="1" ColName="b" TypeMdid="0.23.1.0"/>
- <dxl:Ident ColId="21" ColName="b" TypeMdid="0.23.1.0"/>
- </dxl:Comparison>
- <dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="0" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="10" ColName="a" TypeMdid="0.23.1.0"/>
<dxl:Ident ColId="20" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
</dxl:HashCondList>
<dxl:TableScan>
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="431.007700" Rows="1000.000000" Width="12"/>
+ <dxl:Cost StartupCost="0" TotalCost="431.007692" Rows="999.000000" Width="12"/>
</dxl:Properties>
<dxl:ProjList>
- <dxl:ProjElem ColId="0" Alias="a">
- <dxl:Ident ColId="0" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="10" Alias="a">
+ <dxl:Ident ColId="10" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
- <dxl:ProjElem ColId="1" Alias="b">
- <dxl:Ident ColId="1" ColName="b" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="11" Alias="b">
+ <dxl:Ident ColId="11" ColName="b" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
- <dxl:ProjElem ColId="2" Alias="c">
- <dxl:Ident ColId="2" ColName="c" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="12" Alias="c">
+ <dxl:Ident ColId="12" ColName="c" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter/>
- <dxl:TableDescriptor Mdid="0.29920.1.0" TableName="t1">
+ <dxl:TableDescriptor Mdid="0.29923.1.0" TableName="t2">
<dxl:Columns>
- <dxl:Column ColId="0" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="1" Attno="2" ColName="b" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="2" Attno="3" ColName="c" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="3" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="4" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="5" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="6" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="7" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="8" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="9" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="10" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="11" Attno="2" ColName="b" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="12" Attno="3" ColName="c" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="13" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="14" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="15" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="16" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="17" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="18" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="19" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
diff --git a/src/backend/gporca/data/dxl/minidump/LOJ_bb_mpph.mdp b/src/backend/gporca/data/dxl/minidump/LOJ_bb_mpph.mdp
index 0e5623610d..83498c9b0c 100644
--- a/src/backend/gporca/data/dxl/minidump/LOJ_bb_mpph.mdp
+++ b/src/backend/gporca/data/dxl/minidump/LOJ_bb_mpph.mdp
@@ -5773,10 +5773,10 @@
</dxl:LogicalProject>
</dxl:LogicalLimit>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="34318200">
+ <dxl:Plan Id="0" SpaceSize="25862900">
<dxl:Limit>
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="2587.327627" Rows="1.000000" Width="24"/>
+ <dxl:Cost StartupCost="0" TotalCost="2587.327973" Rows="1.000000" Width="24"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="111" Alias="?column?">
@@ -5791,7 +5791,7 @@
</dxl:ProjList>
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="2587.327603" Rows="1.000000" Width="24"/>
+ <dxl:Cost StartupCost="0" TotalCost="2587.327949" Rows="1.000000" Width="24"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="111" Alias="?column?">
@@ -5811,7 +5811,7 @@
</dxl:SortingColumnList>
<dxl:Result>
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="2587.327514" Rows="1.000000" Width="24"/>
+ <dxl:Cost StartupCost="0" TotalCost="2587.327860" Rows="1.000000" Width="24"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="111" Alias="?column?">
@@ -5828,7 +5828,7 @@
<dxl:OneTimeFilter/>
<dxl:Sort SortDiscardDuplicates="false">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="2587.327506" Rows="1.000000" Width="34"/>
+ <dxl:Cost StartupCost="0" TotalCost="2587.327852" Rows="1.000000" Width="34"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="110" Alias="count">
@@ -5847,7 +5847,7 @@
<dxl:LimitOffset/>
<dxl:Aggregate AggregationStrategy="Sorted" StreamSafe="false">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="2587.327506" Rows="1.000000" Width="34"/>
+ <dxl:Cost StartupCost="0" TotalCost="2587.327852" Rows="1.000000" Width="34"/>
</dxl:Properties>
<dxl:GroupingColumns>
<dxl:GroupingColumn ColId="1"/>
@@ -5870,7 +5870,7 @@
<dxl:Filter/>
<dxl:Aggregate AggregationStrategy="Sorted" StreamSafe="false">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="2587.327465" Rows="1.000000" Width="34"/>
+ <dxl:Cost StartupCost="0" TotalCost="2587.327811" Rows="1.000000" Width="34"/>
</dxl:Properties>
<dxl:GroupingColumns>
<dxl:GroupingColumn ColId="1"/>
@@ -5887,7 +5887,7 @@
<dxl:Filter/>
<dxl:Sort SortDiscardDuplicates="false">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="2587.327412" Rows="1.000000" Width="34"/>
+ <dxl:Cost StartupCost="0" TotalCost="2587.327758" Rows="1.000000" Width="34"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="1" Alias="s_name">
@@ -5906,7 +5906,7 @@
<dxl:LimitOffset/>
<dxl:RedistributeMotion InputSegments="0,1,2" OutputSegments="0,1,2">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="2587.327412" Rows="1.000000" Width="34"/>
+ <dxl:Cost StartupCost="0" TotalCost="2587.327758" Rows="1.000000" Width="34"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="1" Alias="s_name">
@@ -5925,7 +5925,7 @@
</dxl:HashExprList>
<dxl:Aggregate AggregationStrategy="Sorted" StreamSafe="false">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="2587.327359" Rows="1.000000" Width="34"/>
+ <dxl:Cost StartupCost="0" TotalCost="2587.327705" Rows="1.000000" Width="34"/>
</dxl:Properties>
<dxl:GroupingColumns>
<dxl:GroupingColumn ColId="1"/>
@@ -5942,7 +5942,7 @@
<dxl:Filter/>
<dxl:Sort SortDiscardDuplicates="false">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="2587.327341" Rows="1.000000" Width="34"/>
+ <dxl:Cost StartupCost="0" TotalCost="2587.327687" Rows="1.000000" Width="34"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="112" Alias="ColRef_0112">
@@ -5961,7 +5961,7 @@
<dxl:LimitOffset/>
<dxl:Result>
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="2587.327341" Rows="1.000000" Width="34"/>
+ <dxl:Cost StartupCost="0" TotalCost="2587.327687" Rows="1.000000" Width="34"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="112" Alias="ColRef_0112">
@@ -5982,7 +5982,7 @@
<dxl:OneTimeFilter/>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="2587.327330" Rows="1.000000" Width="38"/>
+ <dxl:Cost StartupCost="0" TotalCost="2587.327676" Rows="1.000000" Width="38"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="1" Alias="s_name">
@@ -6098,7 +6098,7 @@
</dxl:HashJoin>
<dxl:BroadcastMotion InputSegments="0,1,2" OutputSegments="0,1,2">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1725.313352" Rows="3.000000" Width="16"/>
+ <dxl:Cost StartupCost="0" TotalCost="1725.313699" Rows="3.000000" Width="16"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="41" Alias="l_orderkey">
@@ -6115,7 +6115,7 @@
<dxl:SortingColumnList/>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1725.313066" Rows="1.000000" Width="16"/>
+ <dxl:Cost StartupCost="0" TotalCost="1725.313412" Rows="1.000000" Width="16"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="41" Alias="l_orderkey">
@@ -6167,7 +6167,7 @@
</dxl:TableScan>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1294.224907" Rows="1.000000" Width="16"/>
+ <dxl:Cost StartupCost="0" TotalCost="1294.224944" Rows="1.000000" Width="16"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="41" Alias="l_orderkey">
diff --git a/src/backend/gporca/data/dxl/minidump/LOJ_convert_to_inner_with_and_predicate.mdp b/src/backend/gporca/data/dxl/minidump/LOJ_convert_to_inner_with_and_predicate.mdp
index 2e3748896e..da2ec9193d 100644
--- a/src/backend/gporca/data/dxl/minidump/LOJ_convert_to_inner_with_and_predicate.mdp
+++ b/src/backend/gporca/data/dxl/minidump/LOJ_convert_to_inner_with_and_predicate.mdp
@@ -352,7 +352,7 @@
</dxl:LogicalJoin>
</dxl:LogicalSelect>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="18">
+ <dxl:Plan Id="0" SpaceSize="13">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="437.000687" Rows="1.000000" Width="24"/>
diff --git a/src/backend/gporca/data/dxl/minidump/LOJ_convert_to_inner_with_or_predicate.mdp b/src/backend/gporca/data/dxl/minidump/LOJ_convert_to_inner_with_or_predicate.mdp
index d6d1ca5415..ea37a02bfe 100644
--- a/src/backend/gporca/data/dxl/minidump/LOJ_convert_to_inner_with_or_predicate.mdp
+++ b/src/backend/gporca/data/dxl/minidump/LOJ_convert_to_inner_with_or_predicate.mdp
@@ -360,7 +360,7 @@
</dxl:LogicalJoin>
</dxl:LogicalSelect>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="18">
+ <dxl:Plan Id="0" SpaceSize="13">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="437.000687" Rows="1.000000" Width="24"/>
diff --git a/src/backend/gporca/data/dxl/minidump/LeftJoinDPv2JoinOrder.mdp b/src/backend/gporca/data/dxl/minidump/LeftJoinDPv2JoinOrder.mdp
index d6f6744119..29eabe0da2 100644
--- a/src/backend/gporca/data/dxl/minidump/LeftJoinDPv2JoinOrder.mdp
+++ b/src/backend/gporca/data/dxl/minidump/LeftJoinDPv2JoinOrder.mdp
@@ -1444,7 +1444,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="145">
+ <dxl:Plan Id="0" SpaceSize="97">
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1325421.228417" Rows="333733.333333" Width="32"/>
diff --git a/src/backend/gporca/data/dxl/minidump/LeftOuter2InnerUnionAllAntiSemiJoin-Tpcds.mdp b/src/backend/gporca/data/dxl/minidump/LeftOuter2InnerUnionAllAntiSemiJoin-Tpcds.mdp
index 484c0b2bc1..3ff9ba402d 100644
--- a/src/backend/gporca/data/dxl/minidump/LeftOuter2InnerUnionAllAntiSemiJoin-Tpcds.mdp
+++ b/src/backend/gporca/data/dxl/minidump/LeftOuter2InnerUnionAllAntiSemiJoin-Tpcds.mdp
@@ -11631,7 +11631,7 @@ select * from v2 left outer join v1 on v2.i_item_sk = v1.ss_item_sk limit 5;
</dxl:LogicalCTEAnchor>
</dxl:LogicalCTEAnchor>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="96397">
+ <dxl:Plan Id="0" SpaceSize="85902">
<dxl:Limit>
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="5904.512295" Rows="5.000000" Width="8"/>
diff --git a/src/backend/gporca/data/dxl/minidump/LeftOuter2InnerUnionAllAntiSemiJoin.mdp b/src/backend/gporca/data/dxl/minidump/LeftOuter2InnerUnionAllAntiSemiJoin.mdp
index 6ba88e9fc2..1ca4c38424 100644
--- a/src/backend/gporca/data/dxl/minidump/LeftOuter2InnerUnionAllAntiSemiJoin.mdp
+++ b/src/backend/gporca/data/dxl/minidump/LeftOuter2InnerUnionAllAntiSemiJoin.mdp
@@ -301,10 +301,10 @@ and ei.entity_id = i.ad_id;
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="4080">
+ <dxl:Plan Id="0" SpaceSize="3034">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="2586.003316" Rows="2.000000" Width="24"/>
+ <dxl:Cost StartupCost="0" TotalCost="2586.003103" Rows="2.000000" Width="24"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="user_id">
@@ -321,7 +321,7 @@ and ei.entity_id = i.ad_id;
<dxl:SortingColumnList/>
<dxl:Sequence>
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="2586.003101" Rows="2.000000" Width="24"/>
+ <dxl:Cost StartupCost="0" TotalCost="2586.002887" Rows="2.000000" Width="24"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="user_id">
@@ -425,7 +425,7 @@ and ei.entity_id = i.ad_id;
</dxl:CTEProducer>
<dxl:Sequence>
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="2155.003017" Rows="2.000000" Width="20"/>
+ <dxl:Cost StartupCost="0" TotalCost="2155.002803" Rows="2.000000" Width="20"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="user_id">
@@ -665,7 +665,7 @@ and ei.entity_id = i.ad_id;
</dxl:CTEProducer>
<dxl:Append IsTarget="false" IsZapped="false">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1293.000979" Rows="2.000000" Width="20"/>
+ <dxl:Cost StartupCost="0" TotalCost="1293.000766" Rows="2.000000" Width="20"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="user_id">
@@ -763,7 +763,7 @@ and ei.entity_id = i.ad_id;
</dxl:Result>
<dxl:Result>
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="862.000911" Rows="1.000000" Width="20"/>
+ <dxl:Cost StartupCost="0" TotalCost="862.000697" Rows="1.000000" Width="20"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="48" Alias="user_id">
@@ -780,7 +780,7 @@ and ei.entity_id = i.ad_id;
<dxl:OneTimeFilter/>
<dxl:HashJoin JoinType="LeftAntiSemiJoin">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="862.000891" Rows="1.000000" Width="16"/>
+ <dxl:Cost StartupCost="0" TotalCost="862.000677" Rows="1.000000" Width="16"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="48" Alias="user_id">
@@ -845,7 +845,7 @@ and ei.entity_id = i.ad_id;
</dxl:CTEConsumer>
<dxl:Aggregate AggregationStrategy="Sorted" StreamSafe="false">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="431.000045" Rows="1.000000" Width="8"/>
+ <dxl:Cost StartupCost="0" TotalCost="431.000023" Rows="1.000000" Width="8"/>
</dxl:Properties>
<dxl:GroupingColumns>
<dxl:GroupingColumn ColId="58"/>
@@ -862,7 +862,7 @@ and ei.entity_id = i.ad_id;
<dxl:Filter/>
<dxl:Sort SortDiscardDuplicates="false">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="431.000029" Rows="1.000000" Width="12"/>
+ <dxl:Cost StartupCost="0" TotalCost="431.000014" Rows="1.000000" Width="12"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="58" Alias="user_id">
@@ -932,7 +932,7 @@ and ei.entity_id = i.ad_id;
<dxl:LimitOffset/>
<dxl:CTEConsumer CTEId="1" Columns="58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="431.000029" Rows="1.000000" Width="12"/>
+ <dxl:Cost StartupCost="0" TotalCost="431.000014" Rows="1.000000" Width="12"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="58" Alias="user_id">
diff --git a/src/backend/gporca/data/dxl/minidump/ManyTextUnionsInSubquery.mdp b/src/backend/gporca/data/dxl/minidump/ManyTextUnionsInSubquery.mdp
index 96e577c104..4ae6b0a401 100644
--- a/src/backend/gporca/data/dxl/minidump/ManyTextUnionsInSubquery.mdp
+++ b/src/backend/gporca/data/dxl/minidump/ManyTextUnionsInSubquery.mdp
@@ -588,7 +588,7 @@
</dxl:LogicalSelect>
</dxl:LogicalProject>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="14116300">
+ <dxl:Plan Id="0" SpaceSize="13648900">
<dxl:Result>
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.003419" Rows="1.000000" Width="4"/>
diff --git a/src/backend/gporca/data/dxl/minidump/MultiColumnDQA-InnerJoin-GroupBy-HashAggregate.mdp b/src/backend/gporca/data/dxl/minidump/MultiColumnDQA-InnerJoin-GroupBy-HashAggregate.mdp
index 4977da1730..00c7b81632 100644
--- a/src/backend/gporca/data/dxl/minidump/MultiColumnDQA-InnerJoin-GroupBy-HashAggregate.mdp
+++ b/src/backend/gporca/data/dxl/minidump/MultiColumnDQA-InnerJoin-GroupBy-HashAggregate.mdp
@@ -445,7 +445,7 @@
</dxl:LogicalJoin>
</dxl:LogicalGroupBy>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="9">
+ <dxl:Plan Id="0" SpaceSize="8">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.006109" Rows="10.000001" Width="8"/>
diff --git a/src/backend/gporca/data/dxl/minidump/MultiDistKeyJoinCardinality.mdp b/src/backend/gporca/data/dxl/minidump/MultiDistKeyJoinCardinality.mdp
index d1f6349e2c..5839df357d 100644
--- a/src/backend/gporca/data/dxl/minidump/MultiDistKeyJoinCardinality.mdp
+++ b/src/backend/gporca/data/dxl/minidump/MultiDistKeyJoinCardinality.mdp
@@ -1162,7 +1162,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="30">
+ <dxl:Plan Id="0" SpaceSize="20">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.346837" Rows="1000.000000" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/MultiDistKeyWithOtherPredsJoinCardinality.mdp b/src/backend/gporca/data/dxl/minidump/MultiDistKeyWithOtherPredsJoinCardinality.mdp
index 034705156d..5eb17e7566 100644
--- a/src/backend/gporca/data/dxl/minidump/MultiDistKeyWithOtherPredsJoinCardinality.mdp
+++ b/src/backend/gporca/data/dxl/minidump/MultiDistKeyWithOtherPredsJoinCardinality.mdp
@@ -687,7 +687,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="52">
+ <dxl:Plan Id="0" SpaceSize="32">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.740340" Rows="1368.264678" Width="32"/>
diff --git a/src/backend/gporca/data/dxl/minidump/MultipleDampedPredJoinCardinality.mdp b/src/backend/gporca/data/dxl/minidump/MultipleDampedPredJoinCardinality.mdp
index 220a0513b0..c1a2e35db6 100644
--- a/src/backend/gporca/data/dxl/minidump/MultipleDampedPredJoinCardinality.mdp
+++ b/src/backend/gporca/data/dxl/minidump/MultipleDampedPredJoinCardinality.mdp
@@ -4718,7 +4718,7 @@ explain select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="21">
+ <dxl:Plan Id="0" SpaceSize="16">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.346837" Rows="1000.000000" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/Nested-Setops-2.mdp b/src/backend/gporca/data/dxl/minidump/Nested-Setops-2.mdp
index 92eae0abf6..eef3cab472 100644
--- a/src/backend/gporca/data/dxl/minidump/Nested-Setops-2.mdp
+++ b/src/backend/gporca/data/dxl/minidump/Nested-Setops-2.mdp
@@ -597,7 +597,7 @@
</dxl:LogicalProject>
</dxl:Difference>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="244000000">
+ <dxl:Plan Id="0" SpaceSize="177876000">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="2592.974241" Rows="1.000000" Width="12"/>
diff --git a/src/backend/gporca/data/dxl/minidump/NestedSubqLimitBindings.mdp b/src/backend/gporca/data/dxl/minidump/NestedSubqLimitBindings.mdp
index d822a09ee9..60490404a0 100644
--- a/src/backend/gporca/data/dxl/minidump/NestedSubqLimitBindings.mdp
+++ b/src/backend/gporca/data/dxl/minidump/NestedSubqLimitBindings.mdp
@@ -615,10 +615,33 @@ select a from t as t1 where a in (
<dxl:JoinFilter/>
<dxl:HashCondList>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="32" ColName="a" TypeMdid="0.23.1.0"/>
<dxl:Ident ColId="24" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="32" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
</dxl:HashCondList>
+ <dxl:TableScan>
+ <dxl:Properties>
+ <dxl:Cost StartupCost="0" TotalCost="431.000019" Rows="1.000000" Width="4"/>
+ </dxl:Properties>
+ <dxl:ProjList>
+ <dxl:ProjElem ColId="24" Alias="a">
+ <dxl:Ident ColId="24" ColName="a" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ </dxl:ProjList>
+ <dxl:Filter/>
+ <dxl:TableDescriptor Mdid="0.16385.1.0" TableName="t" LockMode="1">
+ <dxl:Columns>
+ <dxl:Column ColId="24" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="25" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="26" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="27" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="28" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="29" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="30" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="31" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ </dxl:Columns>
+ </dxl:TableDescriptor>
+ </dxl:TableScan>
<dxl:Aggregate AggregationStrategy="Sorted" StreamSafe="false">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="2586.001288" Rows="1.000000" Width="4"/>
@@ -698,8 +721,8 @@ select a from t as t1 where a in (
<dxl:JoinFilter/>
<dxl:HashCondList>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="40" ColName="a" TypeMdid="0.23.1.0"/>
<dxl:Ident ColId="32" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="40" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
</dxl:HashCondList>
<dxl:TableScan>
@@ -707,21 +730,21 @@ select a from t as t1 where a in (
<dxl:Cost StartupCost="0" TotalCost="431.000019" Rows="1.000000" Width="4"/>
</dxl:Properties>
<dxl:ProjList>
- <dxl:ProjElem ColId="40" Alias="a">
- <dxl:Ident ColId="40" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="32" Alias="a">
+ <dxl:Ident ColId="32" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter/>
<dxl:TableDescriptor Mdid="0.16385.1.0" TableName="t" LockMode="1">
<dxl:Columns>
- <dxl:Column ColId="40" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="41" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="42" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="43" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="44" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="45" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="46" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="47" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="32" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="33" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="34" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="35" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="36" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="37" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="38" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="39" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
@@ -730,21 +753,21 @@ select a from t as t1 where a in (
<dxl:Cost StartupCost="0" TotalCost="431.000019" Rows="1.000000" Width="4"/>
</dxl:Properties>
<dxl:ProjList>
- <dxl:ProjElem ColId="32" Alias="a">
- <dxl:Ident ColId="32" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="40" Alias="a">
+ <dxl:Ident ColId="40" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter/>
<dxl:TableDescriptor Mdid="0.16385.1.0" TableName="t" LockMode="1">
<dxl:Columns>
- <dxl:Column ColId="32" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="33" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="34" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="35" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="36" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="37" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="38" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="39" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="40" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="41" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="42" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="43" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="44" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="45" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="46" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="47" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
@@ -792,8 +815,8 @@ select a from t as t1 where a in (
<dxl:JoinFilter/>
<dxl:HashCondList>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="56" ColName="a" TypeMdid="0.23.1.0"/>
<dxl:Ident ColId="48" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="56" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
</dxl:HashCondList>
<dxl:TableScan>
@@ -801,21 +824,21 @@ select a from t as t1 where a in (
<dxl:Cost StartupCost="0" TotalCost="431.000019" Rows="1.000000" Width="4"/>
</dxl:Properties>
<dxl:ProjList>
- <dxl:ProjElem ColId="56" Alias="a">
- <dxl:Ident ColId="56" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="48" Alias="a">
+ <dxl:Ident ColId="48" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter/>
<dxl:TableDescriptor Mdid="0.16385.1.0" TableName="t" LockMode="1">
<dxl:Columns>
- <dxl:Column ColId="56" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="57" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="58" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="59" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="60" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="61" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="62" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="63" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="48" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="49" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="50" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="51" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="52" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="53" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="54" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="55" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
@@ -824,21 +847,21 @@ select a from t as t1 where a in (
<dxl:Cost StartupCost="0" TotalCost="431.000019" Rows="1.000000" Width="4"/>
</dxl:Properties>
<dxl:ProjList>
- <dxl:ProjElem ColId="48" Alias="a">
- <dxl:Ident ColId="48" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="56" Alias="a">
+ <dxl:Ident ColId="56" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter/>
<dxl:TableDescriptor Mdid="0.16385.1.0" TableName="t" LockMode="1">
<dxl:Columns>
- <dxl:Column ColId="48" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="49" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="50" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="51" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="52" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="53" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="54" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="55" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="56" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="57" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="58" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="59" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="60" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="61" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="62" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="63" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
@@ -886,8 +909,8 @@ select a from t as t1 where a in (
<dxl:JoinFilter/>
<dxl:HashCondList>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="72" ColName="a" TypeMdid="0.23.1.0"/>
<dxl:Ident ColId="64" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="72" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
</dxl:HashCondList>
<dxl:TableScan>
@@ -895,21 +918,21 @@ select a from t as t1 where a in (
<dxl:Cost StartupCost="0" TotalCost="431.000019" Rows="1.000000" Width="4"/>
</dxl:Properties>
<dxl:ProjList>
- <dxl:ProjElem ColId="72" Alias="a">
- <dxl:Ident ColId="72" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="64" Alias="a">
+ <dxl:Ident ColId="64" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter/>
<dxl:TableDescriptor Mdid="0.16385.1.0" TableName="t" LockMode="1">
<dxl:Columns>
- <dxl:Column ColId="72" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="73" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="74" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="75" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="76" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="77" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="78" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="79" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="64" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="65" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="66" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="67" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="68" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="69" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="70" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="71" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
@@ -918,21 +941,21 @@ select a from t as t1 where a in (
<dxl:Cost StartupCost="0" TotalCost="431.000019" Rows="1.000000" Width="4"/>
</dxl:Properties>
<dxl:ProjList>
- <dxl:ProjElem ColId="64" Alias="a">
- <dxl:Ident ColId="64" ColName="a" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="72" Alias="a">
+ <dxl:Ident ColId="72" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter/>
<dxl:TableDescriptor Mdid="0.16385.1.0" TableName="t" LockMode="1">
<dxl:Columns>
- <dxl:Column ColId="64" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="65" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="66" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="67" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="68" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="69" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="70" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="71" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="72" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="73" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="74" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="75" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="76" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="77" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="78" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="79" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
@@ -942,29 +965,6 @@ select a from t as t1 where a in (
</dxl:Append>
</dxl:Sort>
</dxl:Aggregate>
- <dxl:TableScan>
- <dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="431.000019" Rows="1.000000" Width="4"/>
- </dxl:Properties>
- <dxl:ProjList>
- <dxl:ProjElem ColId="24" Alias="a">
- <dxl:Ident ColId="24" ColName="a" TypeMdid="0.23.1.0"/>
- </dxl:ProjElem>
- </dxl:ProjList>
- <dxl:Filter/>
- <dxl:TableDescriptor Mdid="0.16385.1.0" TableName="t" LockMode="1">
- <dxl:Columns>
- <dxl:Column ColId="24" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="25" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="26" Attno="-2" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="27" Attno="-3" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="28" Attno="-4" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="29" Attno="-5" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="30" Attno="-6" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="31" Attno="-7" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
- </dxl:Columns>
- </dxl:TableDescriptor>
- </dxl:TableScan>
</dxl:HashJoin>
</dxl:GatherMotion>
</dxl:Materialize>
diff --git a/src/backend/gporca/data/dxl/minidump/NoDistKeyMultiPredJoinCardinality.mdp b/src/backend/gporca/data/dxl/minidump/NoDistKeyMultiPredJoinCardinality.mdp
index 120046a2e6..75c12a2825 100644
--- a/src/backend/gporca/data/dxl/minidump/NoDistKeyMultiPredJoinCardinality.mdp
+++ b/src/backend/gporca/data/dxl/minidump/NoDistKeyMultiPredJoinCardinality.mdp
@@ -1584,7 +1584,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="43">
+ <dxl:Plan Id="0" SpaceSize="26">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.448529" Rows="1000.000000" Width="24"/>
diff --git a/src/backend/gporca/data/dxl/minidump/NoRedistributeOnAppend.mdp b/src/backend/gporca/data/dxl/minidump/NoRedistributeOnAppend.mdp
index e7d6ee1b33..e21c858a8e 100644
--- a/src/backend/gporca/data/dxl/minidump/NoRedistributeOnAppend.mdp
+++ b/src/backend/gporca/data/dxl/minidump/NoRedistributeOnAppend.mdp
@@ -425,7 +425,7 @@ GROUP BY b;
</dxl:LogicalCTEAnchor>
</dxl:LogicalCTEAnchor>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="32557795328">
+ <dxl:Plan Id="0" SpaceSize="28999731200">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="2155.000796" Rows="1.000000" Width="8"/>
diff --git a/src/backend/gporca/data/dxl/minidump/OneDistKeyMultiPredJoinCardinality.mdp b/src/backend/gporca/data/dxl/minidump/OneDistKeyMultiPredJoinCardinality.mdp
index 83e5dfb260..dbe066353a 100644
--- a/src/backend/gporca/data/dxl/minidump/OneDistKeyMultiPredJoinCardinality.mdp
+++ b/src/backend/gporca/data/dxl/minidump/OneDistKeyMultiPredJoinCardinality.mdp
@@ -1220,7 +1220,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="21">
+ <dxl:Plan Id="0" SpaceSize="16">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.423489" Rows="1000.000000" Width="24"/>
diff --git a/src/backend/gporca/data/dxl/minidump/PartSelectorOnJoinSide.mdp b/src/backend/gporca/data/dxl/minidump/PartSelectorOnJoinSide.mdp
index 0074467fb5..2f7f369544 100644
--- a/src/backend/gporca/data/dxl/minidump/PartSelectorOnJoinSide.mdp
+++ b/src/backend/gporca/data/dxl/minidump/PartSelectorOnJoinSide.mdp
@@ -2264,7 +2264,7 @@
</dxl:LogicalJoin>
</dxl:LogicalSelect>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="14">
+ <dxl:Plan Id="0" SpaceSize="9">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="898.322204" Rows="73705.404960" Width="24"/>
diff --git a/src/backend/gporca/data/dxl/minidump/PartTbl-AvoidRangePred-DPE.mdp b/src/backend/gporca/data/dxl/minidump/PartTbl-AvoidRangePred-DPE.mdp
index 8ac7ef95c1..17d4008ae2 100644
--- a/src/backend/gporca/data/dxl/minidump/PartTbl-AvoidRangePred-DPE.mdp
+++ b/src/backend/gporca/data/dxl/minidump/PartTbl-AvoidRangePred-DPE.mdp
@@ -1926,10 +1926,10 @@ FROM abuela JOIN bar ON a = c AND b BETWEEN d - 1 AND d + 4
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="261">
+ <dxl:Plan Id="0" SpaceSize="202">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1293.008634" Rows="3.000000" Width="4"/>
+ <dxl:Cost StartupCost="0" TotalCost="1293.013245" Rows="3.000000" Width="4"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="1" Alias="b">
@@ -1940,7 +1940,7 @@ FROM abuela JOIN bar ON a = c AND b BETWEEN d - 1 AND d + 4
<dxl:SortingColumnList/>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1293.008589" Rows="3.000000" Width="4"/>
+ <dxl:Cost StartupCost="0" TotalCost="1293.013200" Rows="3.000000" Width="4"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="1" Alias="b">
@@ -1976,7 +1976,7 @@ FROM abuela JOIN bar ON a = c AND b BETWEEN d - 1 AND d + 4
<dxl:Ident ColId="19" ColName="f" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
</dxl:HashCondList>
- <dxl:DynamicTableScan PartIndexId="1" SelectorIds="31">
+ <dxl:DynamicTableScan SelectorIds="31">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="431.000149" Rows="21.333333" Width="8"/>
</dxl:Properties>
@@ -2029,7 +2029,7 @@ FROM abuela JOIN bar ON a = c AND b BETWEEN d - 1 AND d + 4
</dxl:DynamicTableScan>
<dxl:PartitionSelector RelationMdid="0.247422.1.0" SelectorId="31" ScanId="1" Partitions="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="862.003059" Rows="12.000000" Width="12"/>
+ <dxl:Cost StartupCost="0" TotalCost="862.003395" Rows="12.000000" Width="12"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="9" Alias="c">
@@ -2066,7 +2066,7 @@ FROM abuela JOIN bar ON a = c AND b BETWEEN d - 1 AND d + 4
</dxl:PartFilterExpr>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="862.003059" Rows="12.000000" Width="12"/>
+ <dxl:Cost StartupCost="0" TotalCost="862.003395" Rows="12.000000" Width="12"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="9" Alias="c">
diff --git a/src/backend/gporca/data/dxl/minidump/PartTbl-DPE-GroupBy.mdp b/src/backend/gporca/data/dxl/minidump/PartTbl-DPE-GroupBy.mdp
index 8808a87cea..7b20a269ba 100644
--- a/src/backend/gporca/data/dxl/minidump/PartTbl-DPE-GroupBy.mdp
+++ b/src/backend/gporca/data/dxl/minidump/PartTbl-DPE-GroupBy.mdp
@@ -828,7 +828,7 @@
</dxl:LogicalGet>
</dxl:LogicalSelect>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="743">
+ <dxl:Plan Id="0" SpaceSize="701">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.020922" Rows="100.000000" Width="14"/>
diff --git a/src/backend/gporca/data/dxl/minidump/PartTbl-DisablePartSelectionJoin.mdp b/src/backend/gporca/data/dxl/minidump/PartTbl-DisablePartSelectionJoin.mdp
index fe556a7369..f996e0a6d9 100644
--- a/src/backend/gporca/data/dxl/minidump/PartTbl-DisablePartSelectionJoin.mdp
+++ b/src/backend/gporca/data/dxl/minidump/PartTbl-DisablePartSelectionJoin.mdp
@@ -845,7 +845,7 @@
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="11">
+ <dxl:Plan Id="0" SpaceSize="10">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.108395" Rows="1.000000" Width="20"/>
diff --git a/src/backend/gporca/data/dxl/minidump/PartTbl-HJ3.mdp b/src/backend/gporca/data/dxl/minidump/PartTbl-HJ3.mdp
index 7dcb3b0d64..d3a061ccb8 100644
--- a/src/backend/gporca/data/dxl/minidump/PartTbl-HJ3.mdp
+++ b/src/backend/gporca/data/dxl/minidump/PartTbl-HJ3.mdp
@@ -468,7 +468,7 @@
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="9">
+ <dxl:Plan Id="0" SpaceSize="8">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.000831" Rows="1.000000" Width="28"/>
diff --git a/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverExcept.mdp b/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverExcept.mdp
index 41940ed126..d74267d4bd 100644
--- a/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverExcept.mdp
+++ b/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverExcept.mdp
@@ -1788,7 +1788,7 @@ select * from (select * from p1 except select * from p2) as p, tt where p.b=tt.b
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="198">
+ <dxl:Plan Id="0" SpaceSize="103">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1298.385913" Rows="4000.000000" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverGbAgg-2.mdp b/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverGbAgg-2.mdp
index 4b82937de4..a77389d39f 100644
--- a/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverGbAgg-2.mdp
+++ b/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverGbAgg-2.mdp
@@ -1609,7 +1609,7 @@
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="16">
+ <dxl:Plan Id="0" SpaceSize="14">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.027897" Rows="101.010101" Width="24"/>
diff --git a/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverIntersect.mdp b/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverIntersect.mdp
index f54a7e9910..0cacb8a210 100644
--- a/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverIntersect.mdp
+++ b/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverIntersect.mdp
@@ -1788,7 +1788,7 @@ select * from (select * from p1 intersect select * from p2) as p, tt where p.b=t
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="2036">
+ <dxl:Plan Id="0" SpaceSize="680">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1301.575209" Rows="10000.000000" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverUnion-1.mdp b/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverUnion-1.mdp
index b65c511e0d..11c1e87f29 100644
--- a/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverUnion-1.mdp
+++ b/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverUnion-1.mdp
@@ -1788,7 +1788,7 @@ select * from (select * from p1 union all select * from p2) as p, tt where p.b=t
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="15">
+ <dxl:Plan Id="0" SpaceSize="9">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1297.273809" Rows="20000.000000" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverUnion-2.mdp b/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverUnion-2.mdp
index a66b2e116c..131ea86082 100644
--- a/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverUnion-2.mdp
+++ b/src/backend/gporca/data/dxl/minidump/PartTbl-JoinOverUnion-2.mdp
@@ -1137,7 +1137,7 @@ select * from (select * from tt union all select * from p2) as p, tt where p.b=t
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="14">
+ <dxl:Plan Id="0" SpaceSize="8">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1294.717330" Rows="5431.276543" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/PartTbl-MultiWayJoin.mdp b/src/backend/gporca/data/dxl/minidump/PartTbl-MultiWayJoin.mdp
index 233e07a5d0..fcfc899bd3 100644
--- a/src/backend/gporca/data/dxl/minidump/PartTbl-MultiWayJoin.mdp
+++ b/src/backend/gporca/data/dxl/minidump/PartTbl-MultiWayJoin.mdp
@@ -518,10 +518,10 @@ explain select count(*) from r_p, s c, s d, s e where r_p.a = c.c and r_p.a = d.
</dxl:LogicalJoin>
</dxl:LogicalGroupBy>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="594117">
+ <dxl:Plan Id="0" SpaceSize="520621">
<dxl:Aggregate AggregationStrategy="Plain" StreamSafe="false">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1724.010909" Rows="1.000000" Width="8"/>
+ <dxl:Cost StartupCost="0" TotalCost="1724.012321" Rows="1.000000" Width="8"/>
</dxl:Properties>
<dxl:GroupingColumns/>
<dxl:ProjList>
@@ -539,7 +539,7 @@ explain select count(*) from r_p, s c, s d, s e where r_p.a = c.c and r_p.a = d.
<dxl:Filter/>
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1724.010908" Rows="1.000000" Width="8"/>
+ <dxl:Cost StartupCost="0" TotalCost="1724.012320" Rows="1.000000" Width="8"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="42" Alias="ColRef_0042">
@@ -550,7 +550,7 @@ explain select count(*) from r_p, s c, s d, s e where r_p.a = c.c and r_p.a = d.
<dxl:SortingColumnList/>
<dxl:Aggregate AggregationStrategy="Plain" StreamSafe="false">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1724.010879" Rows="1.000000" Width="8"/>
+ <dxl:Cost StartupCost="0" TotalCost="1724.012291" Rows="1.000000" Width="8"/>
</dxl:Properties>
<dxl:GroupingColumns/>
<dxl:ProjList>
@@ -566,7 +566,7 @@ explain select count(*) from r_p, s c, s d, s e where r_p.a = c.c and r_p.a = d.
<dxl:Filter/>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1724.010879" Rows="640.000000" Width="1"/>
+ <dxl:Cost StartupCost="0" TotalCost="1724.012291" Rows="640.000000" Width="1"/>
</dxl:Properties>
<dxl:ProjList/>
<dxl:Filter/>
@@ -590,8 +590,8 @@ explain select count(*) from r_p, s c, s d, s e where r_p.a = c.c and r_p.a = d.
<dxl:JoinFilter/>
<dxl:HashCondList>
<dxl:Comparison ComparisonOperator="=" OperatorMdid="0.96.1.0">
- <dxl:Ident ColId="33" ColName="e" TypeMdid="0.23.1.0"/>
<dxl:Ident ColId="11" ColName="c" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="33" ColName="e" TypeMdid="0.23.1.0"/>
</dxl:Comparison>
</dxl:HashCondList>
<dxl:RedistributeMotion InputSegments="0,1,2" OutputSegments="0,1,2">
@@ -599,15 +599,15 @@ explain select count(*) from r_p, s c, s d, s e where r_p.a = c.c and r_p.a = d.
<dxl:Cost StartupCost="0" TotalCost="431.000119" Rows="8.000000" Width="4"/>
</dxl:Properties>
<dxl:ProjList>
- <dxl:ProjElem ColId="33" Alias="e">
- <dxl:Ident ColId="33" ColName="e" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="11" Alias="c">
+ <dxl:Ident ColId="11" ColName="c" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter/>
<dxl:SortingColumnList/>
<dxl:HashExprList>
<dxl:HashExpr>
- <dxl:Ident ColId="33" ColName="e" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="11" ColName="c" TypeMdid="0.23.1.0"/>
</dxl:HashExpr>
</dxl:HashExprList>
<dxl:TableScan>
@@ -615,21 +615,21 @@ explain select count(*) from r_p, s c, s d, s e where r_p.a = c.c and r_p.a = d.
<dxl:Cost StartupCost="0" TotalCost="431.000062" Rows="8.000000" Width="4"/>
</dxl:Properties>
<dxl:ProjList>
- <dxl:ProjElem ColId="33" Alias="e">
- <dxl:Ident ColId="33" ColName="e" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="11" Alias="c">
+ <dxl:Ident ColId="11" ColName="c" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter/>
<dxl:TableDescriptor Mdid="0.57461.1.0" TableName="s">
<dxl:Columns>
- <dxl:Column ColId="33" Attno="3" ColName="e" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="34" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="35" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="36" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="37" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="38" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="39" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="40" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="11" Attno="1" ColName="c" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="14" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="15" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="16" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="17" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="18" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="19" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="20" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
@@ -639,15 +639,15 @@ explain select count(*) from r_p, s c, s d, s e where r_p.a = c.c and r_p.a = d.
<dxl:Cost StartupCost="0" TotalCost="431.000119" Rows="8.000000" Width="4"/>
</dxl:Properties>
<dxl:ProjList>
- <dxl:ProjElem ColId="11" Alias="c">
- <dxl:Ident ColId="11" ColName="c" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="33" Alias="e">
+ <dxl:Ident ColId="33" ColName="e" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter/>
<dxl:SortingColumnList/>
<dxl:HashExprList>
<dxl:HashExpr>
- <dxl:Ident ColId="11" ColName="c" TypeMdid="0.23.1.0"/>
+ <dxl:Ident ColId="33" ColName="e" TypeMdid="0.23.1.0"/>
</dxl:HashExpr>
</dxl:HashExprList>
<dxl:TableScan>
@@ -655,21 +655,21 @@ explain select count(*) from r_p, s c, s d, s e where r_p.a = c.c and r_p.a = d.
<dxl:Cost StartupCost="0" TotalCost="431.000062" Rows="8.000000" Width="4"/>
</dxl:Properties>
<dxl:ProjList>
- <dxl:ProjElem ColId="11" Alias="c">
- <dxl:Ident ColId="11" ColName="c" TypeMdid="0.23.1.0"/>
+ <dxl:ProjElem ColId="33" Alias="e">
+ <dxl:Ident ColId="33" ColName="e" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter/>
<dxl:TableDescriptor Mdid="0.57461.1.0" TableName="s">
<dxl:Columns>
- <dxl:Column ColId="11" Attno="1" ColName="c" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="14" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="15" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="16" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="17" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="18" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="19" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="20" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="33" Attno="3" ColName="e" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="34" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="35" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="36" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="37" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="38" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="39" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="40" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
@@ -677,7 +677,7 @@ explain select count(*) from r_p, s c, s d, s e where r_p.a = c.c and r_p.a = d.
</dxl:HashJoin>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="862.003044" Rows="40.000000" Width="4"/>
+ <dxl:Cost StartupCost="0" TotalCost="862.003184" Rows="40.000000" Width="4"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="a">
@@ -748,7 +748,7 @@ explain select count(*) from r_p, s c, s d, s e where r_p.a = c.c and r_p.a = d.
<dxl:Ident ColId="0" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:HashExpr>
</dxl:HashExprList>
- <dxl:DynamicTableScan PartIndexId="1" SelectorIds="">
+ <dxl:DynamicTableScan SelectorIds="">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="431.000084" Rows="10.000000" Width="4"/>
</dxl:Properties>
diff --git a/src/backend/gporca/data/dxl/minidump/PartTbl-MultiWayJoinWithDPE-2.mdp b/src/backend/gporca/data/dxl/minidump/PartTbl-MultiWayJoinWithDPE-2.mdp
index cf1dc41ab9..30fc8b3ee6 100644
--- a/src/backend/gporca/data/dxl/minidump/PartTbl-MultiWayJoinWithDPE-2.mdp
+++ b/src/backend/gporca/data/dxl/minidump/PartTbl-MultiWayJoinWithDPE-2.mdp
@@ -2566,7 +2566,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="303">
+ <dxl:Plan Id="0" SpaceSize="261">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="23515.903551" Rows="12277684.984863" Width="246"/>
diff --git a/src/backend/gporca/data/dxl/minidump/PartTbl-MultiWayJoinWithDPE.mdp b/src/backend/gporca/data/dxl/minidump/PartTbl-MultiWayJoinWithDPE.mdp
index 28a0cb7884..42339f0833 100644
--- a/src/backend/gporca/data/dxl/minidump/PartTbl-MultiWayJoinWithDPE.mdp
+++ b/src/backend/gporca/data/dxl/minidump/PartTbl-MultiWayJoinWithDPE.mdp
@@ -4765,7 +4765,7 @@
</dxl:LogicalJoin>
</dxl:LogicalSelect>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="31498">
+ <dxl:Plan Id="0" SpaceSize="16648">
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1749361.683589" Rows="321694266.492042" Width="355"/>
diff --git a/src/backend/gporca/data/dxl/minidump/PartTbl-SQScalar.mdp b/src/backend/gporca/data/dxl/minidump/PartTbl-SQScalar.mdp
index 75191a8cae..41a36e7cc4 100644
--- a/src/backend/gporca/data/dxl/minidump/PartTbl-SQScalar.mdp
+++ b/src/backend/gporca/data/dxl/minidump/PartTbl-SQScalar.mdp
@@ -739,7 +739,7 @@
</dxl:LogicalGet>
</dxl:LogicalSelect>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="32">
+ <dxl:Plan Id="0" SpaceSize="28">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.000898" Rows="1.000000" Width="16"/>
diff --git a/src/backend/gporca/data/dxl/minidump/Remove-Distinct-From-Subquery.mdp b/src/backend/gporca/data/dxl/minidump/Remove-Distinct-From-Subquery.mdp
index 635388b779..0d82507cfb 100644
--- a/src/backend/gporca/data/dxl/minidump/Remove-Distinct-From-Subquery.mdp
+++ b/src/backend/gporca/data/dxl/minidump/Remove-Distinct-From-Subquery.mdp
@@ -524,7 +524,7 @@ select * from bar where c not in (select distinct a from foo);
<dxl:Plan Id="0" SpaceSize="3293136">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="4310.001444" Rows="4.000000" Width="8"/>
+ <dxl:Cost StartupCost="0" TotalCost="4310.001431" Rows="4.000000" Width="8"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="c">
@@ -538,7 +538,7 @@ select * from bar where c not in (select distinct a from foo);
<dxl:SortingColumnList/>
<dxl:Append IsTarget="false" IsZapped="false">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="4310.001324" Rows="4.000000" Width="8"/>
+ <dxl:Cost StartupCost="0" TotalCost="4310.001312" Rows="4.000000" Width="8"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="0" Alias="c">
@@ -647,9 +647,9 @@ select * from bar where c not in (select distinct a from foo);
</dxl:BroadcastMotion>
</dxl:Materialize>
</dxl:NestedLoopJoin>
- <dxl:HashJoin JoinType="In">
+ <dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="862.000462" Rows="1.000000" Width="8"/>
+ <dxl:Cost StartupCost="0" TotalCost="862.000449" Rows="1.000000" Width="8"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="18" Alias="c">
@@ -694,29 +694,59 @@ select * from bar where c not in (select distinct a from foo);
</dxl:Columns>
</dxl:TableDescriptor>
</dxl:TableScan>
- <dxl:TableScan>
+ <dxl:Aggregate AggregationStrategy="Sorted" StreamSafe="false">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="431.000021" Rows="1.000000" Width="4"/>
+ <dxl:Cost StartupCost="0" TotalCost="431.000035" Rows="1.000000" Width="4"/>
</dxl:Properties>
+ <dxl:GroupingColumns>
+ <dxl:GroupingColumn ColId="27"/>
+ </dxl:GroupingColumns>
<dxl:ProjList>
<dxl:ProjElem ColId="27" Alias="a">
<dxl:Ident ColId="27" ColName="a" TypeMdid="0.23.1.0"/>
</dxl:ProjElem>
</dxl:ProjList>
<dxl:Filter/>
- <dxl:TableDescriptor Mdid="0.188698.1.0" TableName="foo">
- <dxl:Columns>
- <dxl:Column ColId="27" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
- <dxl:Column ColId="29" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
- <dxl:Column ColId="30" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="31" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="32" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
- <dxl:Column ColId="33" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
- <dxl:Column ColId="34" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
- <dxl:Column ColId="35" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
- </dxl:Columns>
- </dxl:TableDescriptor>
- </dxl:TableScan>
+ <dxl:Sort SortDiscardDuplicates="false">
+ <dxl:Properties>
+ <dxl:Cost StartupCost="0" TotalCost="431.000028" Rows="1.000000" Width="4"/>
+ </dxl:Properties>
+ <dxl:ProjList>
+ <dxl:ProjElem ColId="27" Alias="a">
+ <dxl:Ident ColId="27" ColName="a" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ </dxl:ProjList>
+ <dxl:Filter/>
+ <dxl:SortingColumnList>
+ <dxl:SortingColumn ColId="27" SortOperatorMdid="0.97.1.0" SortOperatorName="<" SortNullsFirst="false"/>
+ </dxl:SortingColumnList>
+ <dxl:LimitCount/>
+ <dxl:LimitOffset/>
+ <dxl:TableScan>
+ <dxl:Properties>
+ <dxl:Cost StartupCost="0" TotalCost="431.000021" Rows="1.000000" Width="4"/>
+ </dxl:Properties>
+ <dxl:ProjList>
+ <dxl:ProjElem ColId="27" Alias="a">
+ <dxl:Ident ColId="27" ColName="a" TypeMdid="0.23.1.0"/>
+ </dxl:ProjElem>
+ </dxl:ProjList>
+ <dxl:Filter/>
+ <dxl:TableDescriptor Mdid="0.188698.1.0" TableName="foo">
+ <dxl:Columns>
+ <dxl:Column ColId="27" Attno="1" ColName="a" TypeMdid="0.23.1.0" ColWidth="4"/>
+ <dxl:Column ColId="29" Attno="-1" ColName="ctid" TypeMdid="0.27.1.0" ColWidth="6"/>
+ <dxl:Column ColId="30" Attno="-3" ColName="xmin" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="31" Attno="-4" ColName="cmin" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="32" Attno="-5" ColName="xmax" TypeMdid="0.28.1.0" ColWidth="4"/>
+ <dxl:Column ColId="33" Attno="-6" ColName="cmax" TypeMdid="0.29.1.0" ColWidth="4"/>
+ <dxl:Column ColId="34" Attno="-7" ColName="tableoid" TypeMdid="0.26.1.0" ColWidth="4"/>
+ <dxl:Column ColId="35" Attno="-8" ColName="gp_segment_id" TypeMdid="0.23.1.0" ColWidth="4"/>
+ </dxl:Columns>
+ </dxl:TableDescriptor>
+ </dxl:TableScan>
+ </dxl:Sort>
+ </dxl:Aggregate>
</dxl:HashJoin>
<dxl:NestedLoopJoin JoinType="LeftAntiSemiJoin" IndexNestedLoopJoin="false" OuterRefAsParam="false">
<dxl:Properties>
diff --git a/src/backend/gporca/data/dxl/minidump/Select-Over-CTEAnchor.mdp b/src/backend/gporca/data/dxl/minidump/Select-Over-CTEAnchor.mdp
index 90eb2f4fab..490b9806ce 100644
--- a/src/backend/gporca/data/dxl/minidump/Select-Over-CTEAnchor.mdp
+++ b/src/backend/gporca/data/dxl/minidump/Select-Over-CTEAnchor.mdp
@@ -463,7 +463,7 @@
<dxl:Plan Id="0" SpaceSize="240">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="10344.018379" Rows="3.333333" Width="24"/>
+ <dxl:Cost StartupCost="0" TotalCost="10344.016560" Rows="3.333333" Width="24"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="9" Alias="a">
@@ -489,7 +489,7 @@
<dxl:SortingColumnList/>
<dxl:NestedLoopJoin JoinType="Inner" IndexNestedLoopJoin="false" OuterRefAsParam="false">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="10344.018020" Rows="3.333333" Width="24"/>
+ <dxl:Cost StartupCost="0" TotalCost="10344.016201" Rows="3.333333" Width="24"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="9" Alias="a">
@@ -520,7 +520,7 @@
</dxl:JoinFilter>
<dxl:BroadcastMotion InputSegments="0,1" OutputSegments="0,1">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1724.003627" Rows="2.000000" Width="16"/>
+ <dxl:Cost StartupCost="0" TotalCost="1724.003172" Rows="2.000000" Width="16"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="36" Alias="c">
@@ -540,7 +540,7 @@
<dxl:SortingColumnList/>
<dxl:Sequence>
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="1724.002789" Rows="1.000000" Width="16"/>
+ <dxl:Cost StartupCost="0" TotalCost="1724.002753" Rows="1.000000" Width="16"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="36" Alias="c">
@@ -663,7 +663,7 @@
</dxl:CTEProducer>
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
- <dxl:Cost StartupCost="0" TotalCost="862.000902" Rows="1.000000" Width="16"/>
+ <dxl:Cost StartupCost="0" TotalCost="862.000874" Rows="1.000000" Width="16"/>
</dxl:Properties>
<dxl:ProjList>
<dxl:ProjElem ColId="36" Alias="c">
diff --git a/src/backend/gporca/data/dxl/minidump/SixWayDPv2.mdp b/src/backend/gporca/data/dxl/minidump/SixWayDPv2.mdp
index 87356b30ed..862dfdc50f 100644
--- a/src/backend/gporca/data/dxl/minidump/SixWayDPv2.mdp
+++ b/src/backend/gporca/data/dxl/minidump/SixWayDPv2.mdp
@@ -492,7 +492,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="1037742">
+ <dxl:Plan Id="0" SpaceSize="534472">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="2586.003056" Rows="1.000000" Width="48"/>
diff --git a/src/backend/gporca/data/dxl/minidump/Subq2CorrSQInLOJOn.mdp b/src/backend/gporca/data/dxl/minidump/Subq2CorrSQInLOJOn.mdp
index 02f73e7ffb..df0e15af0b 100644
--- a/src/backend/gporca/data/dxl/minidump/Subq2CorrSQInLOJOn.mdp
+++ b/src/backend/gporca/data/dxl/minidump/Subq2CorrSQInLOJOn.mdp
@@ -2430,7 +2430,7 @@
</dxl:LogicalGet>
</dxl:LogicalSelect>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="47">
+ <dxl:Plan Id="0" SpaceSize="32">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="568384082185.659546" Rows="1000.000000" Width="8"/>
diff --git a/src/backend/gporca/data/dxl/minidump/SubqExists-With-External-Corrs.mdp b/src/backend/gporca/data/dxl/minidump/SubqExists-With-External-Corrs.mdp
index 860a718ee8..947e2e0609 100644
--- a/src/backend/gporca/data/dxl/minidump/SubqExists-With-External-Corrs.mdp
+++ b/src/backend/gporca/data/dxl/minidump/SubqExists-With-External-Corrs.mdp
@@ -456,7 +456,7 @@
</dxl:LogicalGet>
</dxl:LogicalSelect>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="30156">
+ <dxl:Plan Id="0" SpaceSize="22026">
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1724.001472" Rows="1.000000" Width="8"/>
diff --git a/src/backend/gporca/data/dxl/minidump/SubqExists-Without-External-Corrs.mdp b/src/backend/gporca/data/dxl/minidump/SubqExists-Without-External-Corrs.mdp
index af26e4eace..cd32a68403 100644
--- a/src/backend/gporca/data/dxl/minidump/SubqExists-Without-External-Corrs.mdp
+++ b/src/backend/gporca/data/dxl/minidump/SubqExists-Without-External-Corrs.mdp
@@ -431,7 +431,7 @@
</dxl:LogicalGet>
</dxl:LogicalSelect>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="357461">
+ <dxl:Plan Id="0" SpaceSize="150026">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="12930.008073" Rows="1.000000" Width="8"/>
diff --git a/src/backend/gporca/data/dxl/minidump/TPCDS-39-InnerJoin-JoinEstimate.mdp b/src/backend/gporca/data/dxl/minidump/TPCDS-39-InnerJoin-JoinEstimate.mdp
index 869c88f22b..56f0e9d265 100644
--- a/src/backend/gporca/data/dxl/minidump/TPCDS-39-InnerJoin-JoinEstimate.mdp
+++ b/src/backend/gporca/data/dxl/minidump/TPCDS-39-InnerJoin-JoinEstimate.mdp
@@ -2648,7 +2648,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="11">
+ <dxl:Plan Id="0" SpaceSize="10">
<dxl:HashJoin JoinType="Inner">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="9093.176214" Rows="11530621.000000" Width="123"/>
diff --git a/src/backend/gporca/data/dxl/minidump/TPCH-Partitioned-256GB.mdp b/src/backend/gporca/data/dxl/minidump/TPCH-Partitioned-256GB.mdp
index f69f9b40b8..b2d1313d50 100644
--- a/src/backend/gporca/data/dxl/minidump/TPCH-Partitioned-256GB.mdp
+++ b/src/backend/gporca/data/dxl/minidump/TPCH-Partitioned-256GB.mdp
@@ -4043,7 +4043,7 @@
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="91668">
+ <dxl:Plan Id="0" SpaceSize="57782">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="2343319.893955" Rows="10325183.250315" Width="697"/>
diff --git a/src/backend/gporca/data/dxl/minidump/TranslateFilterWithCTEAndTableScanIntoFilterAndOneTimeFilter.mdp b/src/backend/gporca/data/dxl/minidump/TranslateFilterWithCTEAndTableScanIntoFilterAndOneTimeFilter.mdp
index 468b04b85b..161f140ee1 100644
--- a/src/backend/gporca/data/dxl/minidump/TranslateFilterWithCTEAndTableScanIntoFilterAndOneTimeFilter.mdp
+++ b/src/backend/gporca/data/dxl/minidump/TranslateFilterWithCTEAndTableScanIntoFilterAndOneTimeFilter.mdp
@@ -612,7 +612,7 @@
</dxl:LogicalProject>
</dxl:LogicalCTEAnchor>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="1116">
+ <dxl:Plan Id="0" SpaceSize="616">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1852062876647.470947" Rows="10.000001" Width="12"/>
diff --git a/src/backend/gporca/data/dxl/minidump/Union-NOT-Plus-OR-Constraint.mdp b/src/backend/gporca/data/dxl/minidump/Union-NOT-Plus-OR-Constraint.mdp
index 9392fa3183..79e5fff298 100644
--- a/src/backend/gporca/data/dxl/minidump/Union-NOT-Plus-OR-Constraint.mdp
+++ b/src/backend/gporca/data/dxl/minidump/Union-NOT-Plus-OR-Constraint.mdp
@@ -288,7 +288,7 @@ explain SELECT a.f3 FROM tb a JOIN tb b ON a.f1 = b.f1 AND NOT ( a.f2 = 0 OR a.f
</dxl:LogicalProject>
</dxl:Union>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="2168">
+ <dxl:Plan Id="0" SpaceSize="1488">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.001805" Rows="1.000000" Width="8"/>
diff --git a/src/backend/gporca/data/dxl/minidump/UnionAll.mdp b/src/backend/gporca/data/dxl/minidump/UnionAll.mdp
index e3b63f202e..f147d18f0c 100644
--- a/src/backend/gporca/data/dxl/minidump/UnionAll.mdp
+++ b/src/backend/gporca/data/dxl/minidump/UnionAll.mdp
@@ -8890,7 +8890,7 @@
</dxl:Comparison>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="13">
+ <dxl:Plan Id="0" SpaceSize="12">
<dxl:GatherMotion InputSegments="0,1" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1773.052304" Rows="2163263.000000" Width="8"/>
diff --git a/src/backend/gporca/data/dxl/minidump/UnnestSQJoins.mdp b/src/backend/gporca/data/dxl/minidump/UnnestSQJoins.mdp
index a8ca16af2c..2125e5bd8e 100644
--- a/src/backend/gporca/data/dxl/minidump/UnnestSQJoins.mdp
+++ b/src/backend/gporca/data/dxl/minidump/UnnestSQJoins.mdp
@@ -1282,7 +1282,7 @@ WHERE
</dxl:And>
</dxl:LogicalJoin>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="51358">
+ <dxl:Plan Id="0" SpaceSize="51614">
<dxl:GatherMotion InputSegments="0,1,2" OutputSegments="-1">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1306.824501" Rows="199.680000" Width="148"/>
diff --git a/src/backend/gporca/data/dxl/minidump/UpdateCardinalityAssert.mdp b/src/backend/gporca/data/dxl/minidump/UpdateCardinalityAssert.mdp
index 9519d5bb66..abd11efae6 100644
--- a/src/backend/gporca/data/dxl/minidump/UpdateCardinalityAssert.mdp
+++ b/src/backend/gporca/data/dxl/minidump/UpdateCardinalityAssert.mdp
@@ -274,7 +274,7 @@
</dxl:LogicalJoin>
</dxl:LogicalUpdate>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="9">
+ <dxl:Plan Id="0" SpaceSize="8">
<dxl:DMLUpdate Columns="0,1" ActionCol="18" OidCol="19" CtidCol="2" SegmentIdCol="8" InputSorted="false">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="862.102559" Rows="1.000000" Width="1"/>
diff --git a/src/backend/gporca/data/dxl/minidump/UpdateDistrKey.mdp b/src/backend/gporca/data/dxl/minidump/UpdateDistrKey.mdp
index 168425603a..d9793d306c 100644
--- a/src/backend/gporca/data/dxl/minidump/UpdateDistrKey.mdp
+++ b/src/backend/gporca/data/dxl/minidump/UpdateDistrKey.mdp
@@ -269,7 +269,7 @@
</dxl:LogicalJoin>
</dxl:LogicalUpdate>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="30">
+ <dxl:Plan Id="0" SpaceSize="20">
<dxl:DMLUpdate Columns="0,1" ActionCol="18" OidCol="19" CtidCol="2" SegmentIdCol="8" InputSorted="false">
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1880.351554" Rows="10000.000000" Width="1"/>
diff --git a/src/backend/gporca/data/dxl/minidump/cte-duplicate-columns-2.mdp b/src/backend/gporca/data/dxl/minidump/cte-duplicate-columns-2.mdp
index 09aa7d1b4e..3acec81637 100644
--- a/src/backend/gporca/data/dxl/minidump/cte-duplicate-columns-2.mdp
+++ b/src/backend/gporca/data/dxl/minidump/cte-duplicate-columns-2.mdp
@@ -245,7 +245,7 @@ where x1.b = x2.b;
</dxl:LogicalJoin>
</dxl:LogicalCTEAnchor>
</dxl:Query>
- <dxl:Plan Id="0" SpaceSize="30">
+ <dxl:Plan Id="0" SpaceSize="20">
<dxl:Sequence>
<dxl:Properties>
<dxl:Cost StartupCost="0" TotalCost="1293.001043" Rows="1.000000" Width="24"/>
diff --git a/src/backend/gporca/libgpopt/include/gpopt/base/CDistributionSpecHashed.h b/src/backend/gporca/libgpopt/include/gpopt/base/CDistributionSpecHashed.h
index 59d03e8735..42332859b5 100644
--- a/src/backend/gporca/libgpopt/include/gpopt/base/CDistributionSpecHashed.h
+++ b/src/backend/gporca/libgpopt/include/gpopt/base/CDistributionSpecHashed.h
@@ -226,9 +226,6 @@ public:
// create a copy of the distribution spec
CDistributionSpecHashed *Copy(CMemoryPool *mp);
- // create a copy of the distribution spec with given nulls colocated value
- CDistributionSpecHashed *Copy(CMemoryPool *mp, BOOL fNullsColocated);
-
// get distribution expr array from the current and its equivalent spec
CExpressionArrays *GetAllDistributionExprs(CMemoryPool *mp);
diff --git a/src/backend/gporca/libgpopt/include/gpopt/operators/CPhysicalLeftOuterHashJoin.h b/src/backend/gporca/libgpopt/include/gpopt/operators/CPhysicalLeftOuterHashJoin.h
index 801d952a9a..c39ff4e9df 100644
--- a/src/backend/gporca/libgpopt/include/gpopt/operators/CPhysicalLeftOuterHashJoin.h
+++ b/src/backend/gporca/libgpopt/include/gpopt/operators/CPhysicalLeftOuterHashJoin.h
@@ -28,11 +28,6 @@ namespace gpopt
class CPhysicalLeftOuterHashJoin : public CPhysicalHashJoin
{
private:
- // helper for deriving hash join distribution from hashed children
- CDistributionSpec *PdsDeriveFromHashedChildren(
- CMemoryPool *mp, CDistributionSpec *pdsOuter,
- CDistributionSpec *pdsInner) const;
-
public:
CPhysicalLeftOuterHashJoin(const CPhysicalLeftOuterHashJoin &) = delete;
@@ -59,10 +54,6 @@ public:
return "CPhysicalLeftOuterHashJoin";
}
- // derive distribution
- CDistributionSpec *PdsDerive(CMemoryPool *mp,
- CExpressionHandle &exprhdl) const override;
-
// conversion function
static CPhysicalLeftOuterHashJoin *
PopConvert(COperator *pop)
diff --git a/src/backend/gporca/libgpopt/src/base/CDistributionSpecHashed.cpp b/src/backend/gporca/libgpopt/src/base/CDistributionSpecHashed.cpp
index eb57486989..2bfb0facd2 100644
--- a/src/backend/gporca/libgpopt/src/base/CDistributionSpecHashed.cpp
+++ b/src/backend/gporca/libgpopt/src/base/CDistributionSpecHashed.cpp
@@ -417,21 +417,10 @@ CDistributionSpecHashed::AppendEnforcers(CMemoryPool *mp,
}
// add a hashed distribution enforcer
- // if the distribution spec request isn't met, always enforce nulls colocation
-
- CDistributionSpecHashed *this_copy = this;
- if (this->FNullsColocated())
- {
- this_copy->AddRef();
- }
- else
- {
- this_copy = this->Copy(mp, true);
- }
-
+ AddRef();
pexpr->AddRef();
CExpression *pexprMotion = GPOS_NEW(mp) CExpression(
- mp, GPOS_NEW(mp) CPhysicalMotionHashDistribute(mp, this_copy), pexpr);
+ mp, GPOS_NEW(mp) CPhysicalMotionHashDistribute(mp, this), pexpr);
pdrgpexpr->Append(pexprMotion);
}
@@ -818,49 +807,37 @@ CDistributionSpecHashed::ComputeEquivHashExprs(
CDistributionSpecHashed *
CDistributionSpecHashed::Copy(CMemoryPool *mp)
{
- if (nullptr != m_pdrgpexpr)
- {
- m_pdrgpexpr->AddRef();
- }
-
- if (nullptr != m_opfamilies)
+ CExpressionArray *distribution_exprs = this->Pdrgpexpr();
+ CExpressionArrays *equiv_distribution_exprs =
+ GPOS_NEW(mp) CExpressionArrays(mp);
+ CDistributionSpecHashed *pds = this;
+ while (pds)
{
- m_opfamilies->AddRef();
+ CExpressionArray *distribution_exprs = pds->Pdrgpexpr();
+ distribution_exprs->AddRef();
+ equiv_distribution_exprs->Append(distribution_exprs);
+ pds = pds->PdshashedEquiv();
}
- CDistributionSpecHashed *result = GPOS_NEW(mp)
- CDistributionSpecHashed(m_pdrgpexpr, m_fNullsColocated, m_opfamilies);
-
- if (nullptr != m_pdshashedEquiv)
+ CDistributionSpecHashed *spec = nullptr;
+ for (ULONG ul = 1; ul < equiv_distribution_exprs->Size(); ul++)
{
- result->m_pdshashedEquiv = m_pdshashedEquiv->Copy(mp);
- }
-
- return result;
-}
-
-CDistributionSpecHashed *
-CDistributionSpecHashed::Copy(CMemoryPool *mp, BOOL fNullsColocated)
-{
- if (nullptr != m_pdrgpexpr)
- {
- m_pdrgpexpr->AddRef();
+ CExpressionArray *distribution_exprs = (*equiv_distribution_exprs)[ul];
+ distribution_exprs->AddRef();
+ spec = GPOS_NEW(mp) CDistributionSpecHashed(
+ distribution_exprs, this->FNullsColocated(), spec);
}
+ distribution_exprs->AddRef();
if (nullptr != m_opfamilies)
{
m_opfamilies->AddRef();
}
-
- CDistributionSpecHashed *result = GPOS_NEW(mp)
- CDistributionSpecHashed(m_pdrgpexpr, fNullsColocated, m_opfamilies);
-
- if (nullptr != m_pdshashedEquiv)
- {
- result->m_pdshashedEquiv = m_pdshashedEquiv->Copy(mp, fNullsColocated);
- }
-
- return result;
+ CDistributionSpecHashed *spec_copy = GPOS_NEW(mp) CDistributionSpecHashed(
+ distribution_exprs, this->FNullsColocated(), spec, m_opfamilies);
+ equiv_distribution_exprs->Release();
+ GPOS_ASSERT(nullptr != spec_copy);
+ return spec_copy;
}
//---------------------------------------------------------------------------
// @function:
@@ -981,23 +958,34 @@ CDistributionSpecHashed *
CDistributionSpecHashed::Combine(CMemoryPool *mp,
CDistributionSpecHashed *other_spec)
{
- if (nullptr == other_spec)
- {
- return this;
- }
-
- CDistributionSpecHashed *combined_spec = this->Copy(mp);
- other_spec->AddRef();
- CDistributionSpecHashed *temp_spec = combined_spec;
+ CExpressionArrays *distribution_exprs = this->GetAllDistributionExprs(mp);
+ CExpressionArrays *other_distribution_exprs =
+ other_spec->GetAllDistributionExprs(mp);
+ CExpressionArrays *all_distribution_exprs =
+ CUtils::GetCombinedExpressionArrays(mp, distribution_exprs,
+ other_distribution_exprs);
- while (nullptr != temp_spec->m_pdshashedEquiv)
+ CDistributionSpecHashed *combined_hashed_spec = nullptr;
+ for (ULONG ul = 0; ul < all_distribution_exprs->Size(); ul++)
{
- temp_spec = temp_spec->m_pdshashedEquiv;
+ CExpressionArray *exprs = (*all_distribution_exprs)[ul];
+#ifdef GPOS_DEBUG
+ // ensure that all the spec has the same size
+ GPOS_ASSERT(this->Pdrgpexpr()->Size() == exprs->Size());
+#endif
+ exprs->AddRef();
+ if (nullptr != m_opfamilies)
+ {
+ m_opfamilies->AddRef();
+ }
+ combined_hashed_spec = GPOS_NEW(mp) CDistributionSpecHashed(
+ exprs, this->FNullsColocated(), combined_hashed_spec, m_opfamilies);
}
-
- temp_spec->m_pdshashedEquiv = other_spec;
-
- return combined_spec;
+ all_distribution_exprs->Release();
+ distribution_exprs->Release();
+ other_distribution_exprs->Release();
+ GPOS_ASSERT(nullptr != combined_hashed_spec);
+ return combined_hashed_spec;
}
// check if the equivalent spec (if any) has no matching columns with the main spec
diff --git a/src/backend/gporca/libgpopt/src/operators/CPhysicalFullMergeJoin.cpp b/src/backend/gporca/libgpopt/src/operators/CPhysicalFullMergeJoin.cpp
index 655d8cf181..02e57eba44 100644
--- a/src/backend/gporca/libgpopt/src/operators/CPhysicalFullMergeJoin.cpp
+++ b/src/backend/gporca/libgpopt/src/operators/CPhysicalFullMergeJoin.cpp
@@ -255,24 +255,22 @@ CPhysicalFullMergeJoin::PdsDerive(CMemoryPool *mp,
// Create a hash spec similar to the outer spec, but with fNullsColocated = false because
// nulls appear as the results get computed, so we cannot verify that they will be colocated.
- CDistributionSpecHashed *pdsDeriveOuter =
- pdshashedOuter->Copy(mp, false /* fNullsCollocated*/);
+ pdshashedOuter->Pdrgpexpr()->AddRef();
+ CDistributionSpecHashed *pds = GPOS_NEW(mp) CDistributionSpecHashed(
+ pdshashedOuter->Pdrgpexpr(), false /* fNullsCollocated */);
// NB: Logic is similar to CPhysicalInnerHashJoin::PdsDeriveFromHashedChildren()
if (pdshashedOuter->IsCoveredBy(m_outer_merge_clauses) &&
pdshashedInner->IsCoveredBy(m_inner_merge_clauses))
{
- CDistributionSpecHashed *pdsDeriveInner =
- pdshashedInner->Copy(mp, false /* fNullsCollocated*/);
CDistributionSpecHashed *pdsCombined =
- pdsDeriveOuter->Combine(mp, pdsDeriveInner);
- pdsDeriveOuter->Release();
- pdsDeriveInner->Release();
+ pds->Combine(mp, pdshashedInner);
+ pds->Release();
return pdsCombined;
}
else
{
- return pdsDeriveOuter;
+ return pds;
}
}
diff --git a/src/backend/gporca/libgpopt/src/operators/CPhysicalHashJoin.cpp b/src/backend/gporca/libgpopt/src/operators/CPhysicalHashJoin.cpp
index 61dc38ed10..df6b30ce67 100644
--- a/src/backend/gporca/libgpopt/src/operators/CPhysicalHashJoin.cpp
+++ b/src/backend/gporca/libgpopt/src/operators/CPhysicalHashJoin.cpp
@@ -134,9 +134,11 @@ CPhysicalHashJoin::CreateHashRedistributeRequests(CMemoryPool *mp)
// add a separate request for each hash join key
+ // TODO: - Dec 30, 2011; change fNullsColocated to false when our
+ // distribution matching can handle differences in NULL colocation
CDistributionSpecHashed *pdshashedCurrent =
GPOS_NEW(mp) CDistributionSpecHashed(
- pdrgpexprCurrent, false /* fNullsCollocated */, opfamilies);
+ pdrgpexprCurrent, true /* fNullsCollocated */, opfamilies);
m_pdrgpdsRedistributeRequests->Append(pdshashedCurrent);
}
}
@@ -148,7 +150,7 @@ CPhysicalHashJoin::CreateHashRedistributeRequests(CMemoryPool *mp)
m_hash_opfamilies->AddRef();
}
CDistributionSpecHashed *pdshashed = GPOS_NEW(mp) CDistributionSpecHashed(
- pdrgpexpr, false /* fNullsCollocated */, m_hash_opfamilies);
+ pdrgpexpr, true /* fNullsCollocated */, m_hash_opfamilies);
m_pdrgpdsRedistributeRequests->Append(pdshashed);
}
@@ -292,6 +294,7 @@ CPhysicalHashJoin::PdsMatch(CMemoryPool *mp, CDistributionSpec *pds,
}
}
+
//---------------------------------------------------------------------------
// @function:
// CPhysicalHashJoin::PdshashedMatching
@@ -391,17 +394,8 @@ CPhysicalHashJoin::PdshashedMatching(
GPOS_WSZ_LIT("Unable to create matching hashed distribution."));
}
- // nulls colocated for inner hash joins, but not colocated in outer hash joins
- BOOL fNullsColocated = true;
-
- if (COperator::EopPhysicalLeftOuterHashJoin == Eopid() ||
- COperator::EopPhysicalRightOuterHashJoin == Eopid())
- {
- fNullsColocated = false;
- }
-
- return GPOS_NEW(mp)
- CDistributionSpecHashed(pdrgpexpr, fNullsColocated, opfamilies);
+ return GPOS_NEW(mp) CDistributionSpecHashed(
+ pdrgpexpr, true /* fNullsCollocated */, opfamilies);
}
diff --git a/src/backend/gporca/libgpopt/src/operators/CPhysicalLeftOuterHashJoin.cpp b/src/backend/gporca/libgpopt/src/operators/CPhysicalLeftOuterHashJoin.cpp
index b39ab55214..5c88b948aa 100644
--- a/src/backend/gporca/libgpopt/src/operators/CPhysicalLeftOuterHashJoin.cpp
+++ b/src/backend/gporca/libgpopt/src/operators/CPhysicalLeftOuterHashJoin.cpp
@@ -14,8 +14,6 @@
#include "gpos/base.h"
#include "gpopt/base/CDistributionSpecHashed.h"
-#include "gpopt/base/CUtils.h"
-#include "gpopt/operators/CExpressionHandle.h"
using namespace gpopt;
@@ -49,122 +47,4 @@ CPhysicalLeftOuterHashJoin::CPhysicalLeftOuterHashJoin(
//---------------------------------------------------------------------------
CPhysicalLeftOuterHashJoin::~CPhysicalLeftOuterHashJoin() = default;
-//---------------------------------------------------------------------------
-// @function:
-// CPhysicalInnerHashJoin::PdsDeriveFromHashedChildren
-//
-// @doc:
-// Derive hash join distribution from hashed children;
-// return NULL if derivation failed
-//
-//---------------------------------------------------------------------------
-CDistributionSpec *
-CPhysicalLeftOuterHashJoin::PdsDeriveFromHashedChildren(
- CMemoryPool *mp, CDistributionSpec *pdsOuter,
- CDistributionSpec *pdsInner) const
-{
- GPOS_ASSERT(nullptr != pdsOuter);
- GPOS_ASSERT(nullptr != pdsInner);
-
- CDistributionSpecHashed *pdshashedOuter =
- CDistributionSpecHashed::PdsConvert(pdsOuter);
- CDistributionSpecHashed *pdshashedInner =
- CDistributionSpecHashed::PdsConvert(pdsInner);
-
- if (pdshashedOuter->IsCoveredBy(PdrgpexprOuterKeys()) &&
- pdshashedInner->IsCoveredBy(PdrgpexprInnerKeys()))
- {
- // if both sides are hashed on subsets of hash join keys, join's output can be
- // seen as distributed on outer spec or (equivalently) on inner spec,
- // so create a new spec and mark outer and inner as equivalent
-
- CDistributionSpecHashed *pdshashedInnerCopy =
- pdshashedInner->Copy(mp, false);
- CDistributionSpecHashed *combined_hashed_spec =
- pdshashedOuter->Combine(mp, pdshashedInnerCopy);
- pdshashedInnerCopy->Release();
- return combined_hashed_spec;
- }
-
- return nullptr;
-}
-
-//---------------------------------------------------------------------------
-// @function:
-// CPhysicalJoin::PdsDerive
-//
-// @doc:
-// Derive distribution
-//
-//---------------------------------------------------------------------------
-CDistributionSpec *
-CPhysicalLeftOuterHashJoin::PdsDerive(CMemoryPool *mp,
- CExpressionHandle &exprhdl) const
-{
- CDistributionSpec *pdsOuter = exprhdl.Pdpplan(0 /*child_index*/)->Pds();
- CDistributionSpec *pdsInner = exprhdl.Pdpplan(1 /*child_index*/)->Pds();
-
- // We must use the non-nullable side for the distribution spec for outer joins.
- // For right join, the hash side is the non-nullable side, so we swap the inner/outer
- // distribution specs for the logic below
- if (exprhdl.Pop()->Eopid() == EopPhysicalRightOuterHashJoin)
- {
- pdsOuter = exprhdl.Pdpplan(1 /*child_index*/)->Pds();
- pdsInner = exprhdl.Pdpplan(0 /*child_index*/)->Pds();
- }
-
- if (CDistributionSpec::EdtHashed == pdsOuter->Edt() &&
- CDistributionSpec::EdtHashed == pdsInner->Edt())
- {
- CDistributionSpec *pdsDerived =
- PdsDeriveFromHashedChildren(mp, pdsOuter, pdsInner);
- if (nullptr != pdsDerived)
- {
- return pdsDerived;
- }
- }
-
- CDistributionSpec *pds;
- if (CDistributionSpec::EdtStrictReplicated == pdsOuter->Edt() ||
- CDistributionSpec::EdtUniversal == pdsOuter->Edt())
- {
- // if outer is replicated/universal, return inner distribution
- pds = pdsInner;
- }
- else
- {
- // otherwise, return outer distribution
- pds = pdsOuter;
- }
-
- // TODO: Similar to the case where both outer and inner relations
- // are hash distributed, when only the outer relation is hash
- // distributed, we can also return a combined hash distribution spec.
- // The combined spec contains nulls colocated outer relation, and
- // nulls not colocated inner relation.
- if (CDistributionSpec::EdtHashed == pds->Edt())
- {
- CDistributionSpecHashed *pdsHashed =
- CDistributionSpecHashed::PdsConvert(pds);
-
- // Clean up any incomplete distribution specs since they can no longer be completed above
- // Note that, since this is done at the lowest join, no relevant equivalent specs are lost.
- if (!pdsHashed->HasCompleteEquivSpec(mp))
- {
- CExpressionArray *pdrgpexpr = pdsHashed->Pdrgpexpr();
- IMdIdArray *opfamilies = pdsHashed->Opfamilies();
-
- if (nullptr != opfamilies)
- {
- opfamilies->AddRef();
- }
- pdrgpexpr->AddRef();
- return GPOS_NEW(mp) CDistributionSpecHashed(
- pdrgpexpr, pdsHashed->FNullsColocated(), opfamilies);
- }
- }
-
- pds->AddRef();
- return pds;
-}
// EOF
diff --git a/src/backend/gporca/server/CMakeLists.txt b/src/backend/gporca/server/CMakeLists.txt
index 563599e9c0..4b1672c38e 100644
--- a/src/backend/gporca/server/CMakeLists.txt
+++ b/src/backend/gporca/server/CMakeLists.txt
@@ -264,8 +264,7 @@ COuterJoin1Test:
ExpandNAryJoinGreedyWithLOJOnly NaryWithLojAndNonLojChilds LOJ_bb_mpph LOJ-Condition-False
LeftJoin-With-Pred-On-Inner LeftJoin-With-Pred-On-Inner2
LeftJoin-With-Col-Const-Pred LeftJoin-With-Coalesce LOJWithFalsePred LeftJoin-DPv2-With-Select
-DPv2GreedyOnly DPv2MinCardOnly DPv2QueryOnly LOJ-PushDown LeftJoinDPv2JoinOrder
-LeftJoinNullsNotColocated InnerJoinBroadcastTableHashSpec LeftJoinBroadcastTableHashSpec InnerJoinReplicatedTableHashSpec;
+DPv2GreedyOnly DPv2MinCardOnly DPv2QueryOnly LOJ-PushDown LeftJoinDPv2JoinOrder;
COuterJoin2Test:
LOJ-IsNullPred Select-Proj-OuterJoin OuterJoin-With-OuterRefs Join-Disj-Subqs
diff --git a/src/backend/gporca/server/src/unittest/gpopt/base/CDistributionSpecTest.cpp b/src/backend/gporca/server/src/unittest/gpopt/base/CDistributionSpecTest.cpp
index 42b9c15fab..18ad710987 100644
--- a/src/backend/gporca/server/src/unittest/gpopt/base/CDistributionSpecTest.cpp
+++ b/src/backend/gporca/server/src/unittest/gpopt/base/CDistributionSpecTest.cpp
@@ -66,6 +66,7 @@ CDistributionSpecTest::EresUnittest()
return CUnittest::EresExecute(rgut, GPOS_ARRAY_SIZE(rgut));
}
+
//---------------------------------------------------------------------------
// @function:
// CDistributionSpecTest::EresUnittest_Any
@@ -410,10 +411,6 @@ CDistributionSpecTest::EresUnittest_Hashed()
pexprScalarA->AddRef();
prgpexpr2->Append(pexprScalarA);
- CExpressionArray *prgpexpr3 = GPOS_NEW(mp) CExpressionArray(mp);
- pexprScalarB->AddRef();
- prgpexpr3->Append(pexprScalarB);
-
// basic hash distribution tests
// HD{A,B}, nulls colocated, duplicate insensitive
@@ -453,46 +450,6 @@ CDistributionSpecTest::EresUnittest_Hashed()
GPOS_ASSERT(!pdshashed1->FMatchSubset(pdshashed3));
GPOS_ASSERT(!pdshashed1->FSatisfies(pdshashed3));
- // HD{B}, nulls colocated, duplicate sensitive
- poptctxt->MarkDMLQuery(true /*fDMLQuery*/);
- CDistributionSpecHashed *pdshashed4 = GPOS_NEW(mp)
- CDistributionSpecHashed(prgpexpr3, true /* fNullsCollocated */);
-
- // HD{B}, nulls not colocated, duplicate sensitive
- prgpexpr3->AddRef();
- CDistributionSpecHashed *pdshashed5 = GPOS_NEW(mp)
- CDistributionSpecHashed(prgpexpr3, false /* fNullsCollocated */);
-
- // Combine {A} true, {B} false
- CDistributionSpecHashed *pdshashed6 = pdshashed2->Combine(mp, pdshashed5);
-
- GPOS_ASSERT(true == pdshashed6->FNullsColocated());
- GPOS_ASSERT(false == pdshashed6->PdshashedEquiv()->FNullsColocated());
-
- // Combine {B} true, {A} false
- CDistributionSpecHashed *pdshashed7 = pdshashed4->Combine(mp, pdshashed3);
-
- GPOS_ASSERT(true == pdshashed7->FNullsColocated());
- GPOS_ASSERT(false == pdshashed7->PdshashedEquiv()->FNullsColocated());
-
- // Copy {A} true, {B} false
- CDistributionSpecHashed *pdshashed8 = pdshashed7->Copy(mp);
-
- GPOS_ASSERT(true == pdshashed8->FNullsColocated());
- GPOS_ASSERT(false == pdshashed8->PdshashedEquiv()->FNullsColocated());
-
- // Copy {A} true, {B} true
- CDistributionSpecHashed *pdshashed9 = pdshashed6->Copy(mp, true);
-
- GPOS_ASSERT(true == pdshashed9->FNullsColocated());
- GPOS_ASSERT(true == pdshashed9->PdshashedEquiv()->FNullsColocated());
-
- // Copy {B} false, {A} false
- CDistributionSpecHashed *pdshashed10 = pdshashed7->Copy(mp, false);
-
- GPOS_ASSERT(false == pdshashed10->FNullsColocated());
- GPOS_ASSERT(false == pdshashed10->PdshashedEquiv()->FNullsColocated());
-
// hashed and universal
CDistributionSpecUniversal *pdsuniversal =
GPOS_NEW(mp) CDistributionSpecUniversal();
@@ -531,24 +488,10 @@ CDistributionSpecTest::EresUnittest_Hashed()
at.Os() << *pdshashed1 << std::endl;
at.Os() << *pdshashed2 << std::endl;
at.Os() << *pdshashed3 << std::endl;
- at.Os() << *pdshashed4 << std::endl;
- at.Os() << *pdshashed5 << std::endl;
- at.Os() << *pdshashed6 << std::endl;
- at.Os() << *pdshashed7 << std::endl;
- at.Os() << *pdshashed8 << std::endl;
- at.Os() << *pdshashed9 << std::endl;
- at.Os() << *pdshashed10 << std::endl;
pdshashed1->Release();
pdshashed2->Release();
pdshashed3->Release();
- pdshashed4->Release();
- pdshashed5->Release();
- pdshashed6->Release();
- pdshashed7->Release();
- pdshashed8->Release();
- pdshashed9->Release();
- pdshashed10->Release();
pdssSegment->Release();
pdsreplicated->Release();
diff --git a/src/test/regress/expected/bfv_statistic_optimizer.out b/src/test/regress/expected/bfv_statistic_optimizer.out
index f3550401f1..f6107a2533 100644
--- a/src/test/regress/expected/bfv_statistic_optimizer.out
+++ b/src/test/regress/expected/bfv_statistic_optimizer.out
@@ -396,25 +396,25 @@ ANALYZE test_join_card1;
ANALYZE test_join_card2;
ANALYZE test_join_card3;
EXPLAIN SELECT * FROM test_join_card1 t1, test_join_card2 t2, test_join_card3 t3 WHERE t1.b = t2.b and t3.b = t2.b;
- QUERY PLAN
----------------------------------------------------------------------------------------------------------------------
- Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..1298.23 rows=5999 width=22)
- -> Hash Join (cost=0.00..1297.74 rows=2000 width=22)
- Hash Cond: ((test_join_card1.b)::text = (test_join_card2.b)::text)
- -> Redistribute Motion 3:3 (slice2; segments: 3) (cost=0.00..431.48 rows=6667 width=10)
- Hash Key: test_join_card1.b
- -> Seq Scan on test_join_card1 (cost=0.00..431.15 rows=6667 width=10)
- -> Hash (cost=864.16..864.16 rows=2000 width=12)
- -> Hash Join (cost=0.00..864.16 rows=2000 width=12)
- Hash Cond: ((test_join_card3.b)::text = (test_join_card2.b)::text)
- -> Redistribute Motion 3:3 (slice3; segments: 3) (cost=0.00..431.20 rows=3334 width=8)
+ QUERY PLAN
+------------------------------------------------------------------------------------------------------------------------------------------
+ Gather Motion 3:1 (slice4; segments: 3) (cost=0.00..1298.38 rows=5999 width=22)
+ -> Hash Join (cost=0.00..1297.89 rows=2000 width=22)
+ Hash Cond: (((test_join_card1.b)::text = (test_join_card2.b)::text) AND ((test_join_card3.b)::text = (test_join_card2.b)::text))
+ -> Hash Join (cost=0.00..865.03 rows=3334 width=18)
+ Hash Cond: ((test_join_card1.b)::text = (test_join_card3.b)::text)
+ -> Redistribute Motion 3:3 (slice1; segments: 3) (cost=0.00..431.48 rows=6667 width=10)
+ Hash Key: test_join_card1.b
+ -> Seq Scan on test_join_card1 (cost=0.00..431.15 rows=6667 width=10)
+ -> Hash (cost=431.20..431.20 rows=3334 width=8)
+ -> Redistribute Motion 3:3 (slice2; segments: 3) (cost=0.00..431.20 rows=3334 width=8)
Hash Key: test_join_card3.b
-> Seq Scan on test_join_card3 (cost=0.00..431.07 rows=3334 width=8)
- -> Hash (cost=431.08..431.08 rows=2000 width=4)
- -> Redistribute Motion 3:3 (slice4; segments: 3) (cost=0.00..431.08 rows=2000 width=4)
- Hash Key: test_join_card2.b
- -> Seq Scan on test_join_card2 (cost=0.00..431.04 rows=2000 width=4)
- Optimizer: Pivotal Optimizer (GPORCA)
+ -> Hash (cost=431.08..431.08 rows=2000 width=4)
+ -> Redistribute Motion 3:3 (slice3; segments: 3) (cost=0.00..431.08 rows=2000 width=4)
+ Hash Key: test_join_card2.b
+ -> Seq Scan on test_join_card2 (cost=0.00..431.04 rows=2000 width=4)
+ Optimizer: Pivotal Optimizer (GPORCA) version 3.41.0
(17 rows)
-- start_ignore
diff --git a/src/test/regress/expected/join_gp_optimizer.out b/src/test/regress/expected/join_gp_optimizer.out
index 1815bced7b..05d192e628 100644
--- a/src/test/regress/expected/join_gp_optimizer.out
+++ b/src/test/regress/expected/join_gp_optimizer.out
@@ -643,12 +643,12 @@ explain (costs off) select * from t1 left join t2 on (t1.a = t2.a) join t3 on (t
------------------------------------------------------
Gather Motion 3:1 (slice1; segments: 3)
-> Hash Join
- Hash Cond: (t2.a = t1.a)
- -> Seq Scan on t2
+ Hash Cond: ((t1.a = t2.a) AND (t1.b = t3.b))
+ -> Seq Scan on t1
-> Hash
-> Hash Join
- Hash Cond: ((t1.b = t3.b) AND (t1.a = t3.a))
- -> Seq Scan on t1
+ Hash Cond: (t2.a = t3.a)
+ -> Seq Scan on t2
-> Hash
-> Seq Scan on t3
Optimizer: Pivotal Optimizer (GPORCA) version 3.75.0
diff --git a/src/test/regress/expected/notin_optimizer.out b/src/test/regress/expected/notin_optimizer.out
index a82cf43af5..0b3d6ab3d5 100644
--- a/src/test/regress/expected/notin_optimizer.out
+++ b/src/test/regress/expected/notin_optimizer.out
@@ -239,12 +239,12 @@ explain select c1 from t1,
Hash Cond: (t2.c2 = t3.c3)
-> Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..862.00 rows=1 width=8)
-> Hash Join (cost=0.00..862.00 rows=1 width=8)
- Hash Cond: (t1.c1 = t2.c2)
+ Hash Cond: (t2.c2 = t1.c1)
+ -> Seq Scan on t2 (cost=0.00..431.00 rows=1 width=4)
+ Filter: (c2 > 4)
+ -> Hash (cost=431.00..431.00 rows=2 width=4)
-> Seq Scan on t1 (cost=0.00..431.00 rows=2 width=4)
Filter: (c1 > 4)
- -> Hash (cost=431.00..431.00 rows=1 width=4)
- -> Seq Scan on t2 (cost=0.00..431.00 rows=1 width=4)
- Filter: (c2 > 4)
-> Hash (cost=431.00..431.00 rows=1 width=4)
-> Gather Motion 3:1 (slice2; segments: 3) (cost=0.00..431.00 rows=3 width=4)
-> Seq Scan on t3 (cost=0.00..431.00 rows=1 width=4)
diff --git a/src/test/regress/expected/with_clause_optimizer.out b/src/test/regress/expected/with_clause_optimizer.out
index 84f39f9c91..d7da0a393e 100644
--- a/src/test/regress/expected/with_clause_optimizer.out
+++ b/src/test/regress/expected/with_clause_optimizer.out
@@ -2277,18 +2277,19 @@ SELECT count(a1.i)
-> Seq Scan on foo foo_1
-> Append
-> Hash Join
- Hash Cond: (share1_ref2.i = share0_ref2.i)
- -> Shared Scan (share slice:id 1:1)
+ Hash Cond: (share0_ref2.i = share1_ref2.i)
+ -> Shared Scan (share slice:id 1:0)
-> Hash
- -> Shared Scan (share slice:id 1:0)
+ -> Shared Scan (share slice:id 1:1)
-> Redistribute Motion 1:3 (slice2)
-> Aggregate
-> Gather Motion 3:1 (slice3; segments: 3)
- -> Hash Join
- Hash Cond: (share1_ref3.i = share0_ref3.i)
- -> Shared Scan (share slice:id 3:1)
- -> Hash
+ -> Partial Aggregate
+ -> Hash Join
+ Hash Cond: (share0_ref3.i = share1_ref3.i)
-> Shared Scan (share slice:id 3:0)
+ -> Hash
+ -> Shared Scan (share slice:id 3:1)
Optimizer: Pivotal Optimizer (GPORCA)
(22 rows)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cloudberry.apache.org
For additional commands, e-mail: commits-help@cloudberry.apache.org