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 &gt; 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 &gt; 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="&lt;" 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