>From Michael Blow <[email protected]>:

Michael Blow has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17769 )


Change subject: Null merge commit '4e5aa99155' into 'master'
......................................................................

Null merge commit '4e5aa99155' into 'master'

Change-Id: I0dac3fa33fcfc54177c110bcf6de7270f43f134e
---
M 
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/PlanNode.java
M 
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinEnum.java
M 
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java
4 files changed, 13 insertions(+), 309 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/69/17769/1

diff --git 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinEnum.java
 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinEnum.java
index 0552df5..3ce4e9f 100644
--- 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinEnum.java
+++ 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinEnum.java
@@ -32,19 +32,12 @@
 import 
org.apache.asterix.common.annotations.SecondaryIndexSearchPreferenceAnnotation;
 import org.apache.asterix.common.exceptions.AsterixException;
 import org.apache.asterix.common.exceptions.ErrorCode;
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
 import org.apache.asterix.common.metadata.DataverseName;
-=======
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
 import org.apache.asterix.metadata.declared.DataSource;
 import org.apache.asterix.metadata.declared.DataSourceId;
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
 import org.apache.asterix.metadata.declared.DatasetDataSource;
 import org.apache.asterix.metadata.declared.MetadataProvider;
 import org.apache.asterix.metadata.declared.SampleDataSource;
-=======
-import org.apache.asterix.metadata.declared.MetadataProvider;
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
 import org.apache.asterix.metadata.entities.Index;
 import org.apache.asterix.om.base.AInt64;
 import org.apache.asterix.om.base.AOrderedList;
@@ -87,11 +80,8 @@
 import 
org.apache.hyracks.algebricks.core.algebra.prettyprint.IPlanPrettyPrinter;
 import 
org.apache.hyracks.algebricks.core.algebra.util.OperatorManipulationUtil;
 import 
org.apache.hyracks.algebricks.core.rewriter.base.PhysicalOptimizationConfig;
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
 import org.apache.hyracks.api.exceptions.IWarningCollector;
 import org.apache.hyracks.api.exceptions.Warning;
-=======
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
 import org.apache.hyracks.control.common.config.OptionTypes;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -107,10 +97,6 @@
     // Mode for cartesian product plan generation during join and plan 
enumeration
     public static final String CBO_CP_ENUM_KEY = "cbocpenum";
     private static final boolean CBO_CP_ENUM_DEFAULT = true;
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
-=======
-
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
     protected List<JoinCondition> joinConditions; // "global" list of join 
conditions
     protected Map<IExpressionAnnotation, Warning> joinHints;
     protected List<PlanNode> allPlans; // list of all plans
@@ -130,15 +116,8 @@
     protected int maxBits; // the joinNode where the dataset bits are the 
highest is where all the tables have been joined

     protected Stats stats;
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
     private boolean cboMode;
     private boolean cboTestMode;
-=======
-    protected PhysicalOptimizationConfig physOptConfig;
-    protected boolean cboMode;
-    protected boolean cboTestMode;
-
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
     protected int cboFullEnumLevel;
     protected boolean cboCPEnumMode;
     protected int numberOfTerms;
@@ -152,20 +131,11 @@
     public JoinEnum() {
     }

-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
     protected void initEnum(AbstractLogicalOperator op, boolean cboMode, 
boolean cboTestMode, int numberOfFromTerms,
             List<ILogicalOperator> leafInputs, List<JoinOperator> allJoinOps, 
List<AssignOperator> assignOps,
             List<Quadruple<Integer, Integer, JoinOperator, Integer>> 
outerJoinsDependencyList,
             List<Triple<Integer, Integer, Boolean>> buildSets, 
HashMap<LogicalVariable, Integer> varLeafInputIds,
             IOptimizationContext context) throws AsterixException {
-=======
-    public void initEnum(AbstractLogicalOperator op, boolean cboMode, boolean 
cboTestMode, int numberOfFromTerms,
-            List<Pair<EmptyTupleSourceOperator, DataSourceScanOperator>> 
emptyTupleAndDataSourceOps,
-            Map<EmptyTupleSourceOperator, ILogicalOperator> 
joinLeafInputsHashMap,
-            Map<DataSourceScanOperator, EmptyTupleSourceOperator> 
dataSourceEmptyTupleHashMap,
-            List<ILogicalOperator> internalEdges, List<ILogicalOperator> 
joinOps, IOptimizationContext context)
-            throws AsterixException {
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
         this.singleDatasetPreds = new ArrayList<>();
         this.joinConditions = new ArrayList<>();
         this.joinHints = new HashMap<>();
@@ -222,11 +192,7 @@
         return mdp.getBooleanProperty(CBO_CP_ENUM_KEY, CBO_CP_ENUM_DEFAULT);
     }

-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
     protected List<JoinCondition> getJoinConditions() {
-=======
-    public List<JoinCondition> getJoinConditions() {
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
         return joinConditions;
     }

diff --git 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java
 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java
index fe47a55..4c49cb3 100644
--- 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java
+++ 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/JoinNode.java
@@ -384,11 +384,7 @@
         if (this.cheapestPlanIndex == PlanNode.NO_PLAN || 
opCost.costLT(this.cheapestPlanCost) || forceEnum) {
             // for now just add one plan
             pn = new PlanNode(allPlans.size(), joinEnum);
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
             pn.setJoinNode(this);
-=======
-            pn.jn = this;
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
             pn.datasetName = this.datasetNames.get(0);
             pn.leafInput = this.leafInput;
             pn.setLeftJoinIndex(this.jnArrayIndex);
@@ -413,7 +409,6 @@
         return PlanNode.NO_PLAN;
     }

-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
     private AbstractFunctionCallExpression 
buildExpr(List<IOptimizableFuncExpr> exprs,
             List<Pair<Integer, Integer>> pairs) {
         int i;
@@ -424,32 +419,7 @@

         ScalarFunctionCallExpression andExpr = new 
ScalarFunctionCallExpression(
                 
BuiltinFunctions.getBuiltinFunctionInfo(AlgebricksBuiltinFunctions.AND));
-=======
-    protected void buildIndexPlan(boolean forceIndexPlan) {
-        List<PlanNode> allPlans = joinEnum.allPlans;
-        ICost opCost, totalCost;
-        PlanNode pn, cheapestPlan;
-        opCost = joinEnum.getCostMethodsHandle().costIndexScan(this);
-        totalCost = opCost;
-        boolean forceEnum = level <= joinEnum.cboFullEnumLevel;
-        if (this.cheapestPlanIndex == PlanNode.NO_PLAN || 
opCost.costLT(this.cheapestPlanCost) || forceIndexPlan
-                || forceEnum) {
-            // for now just add one plan
-            pn = new PlanNode(allPlans.size(), joinEnum);
-            pn.jn = this;
-            pn.datasetName = this.datasetNames.get(0);
-            pn.correspondingEmptyTupleSourceOp = 
this.correspondingEmptyTupleSourceOp;
-            pn.jnIndexes[0] = this.jnArrayIndex;
-            pn.jnIndexes[1] = JoinNode.NO_JN;
-            pn.planIndexes[0] = PlanNode.NO_PLAN; // There ane no plans below 
this plan.
-            pn.planIndexes[1] = PlanNode.NO_PLAN; // There ane no plans below 
this plan.
-            pn.opCost = opCost;
-            pn.scanOp = PlanNode.ScanMethod.INDEX_SCAN;
-            pn.indexHint = forceIndexPlan;
-            pn.totalCost = totalCost;
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)

-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
         for (i = 0; i < pairs.size(); i++) {
             IOptimizableFuncExpr expr = exprs.get(pairs.get(i).getFirst());
             andExpr.getArguments().add(new 
MutableObject<>(expr.getFuncExpr()));
@@ -465,17 +435,6 @@
                 afce.putAnnotation(SkipSecondaryIndexSearchExpressionAnnotation
                         
.newInstance(Collections.singleton(IndexCostInfo.get(i).first.getIndexName())));
             }
-=======
-            allPlans.add(pn);
-            this.planIndexesArray.add(pn.allPlansIndex);
-            if (!forceEnum) {
-                cheapestPlan = pn;
-            } else {
-                cheapestPlan = findCheapestPlan();
-            }
-            this.cheapestPlanCost = cheapestPlan.totalCost;
-            this.cheapestPlanIndex = cheapestPlan.allPlansIndex;
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
         }
     }

@@ -735,7 +694,6 @@
         }
     }

-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
     // check if the left side or the right side is the preserving side.
     // The preserving side has to be the probe side (which is the left side 
since our engine builds from the right side)
     // R LOJ S -- R is the preserving side; S is the null extending side.
@@ -757,22 +715,15 @@

     protected int buildHashJoinPlan(JoinNode leftJn, JoinNode rightJn, 
PlanNode leftPlan, PlanNode rightPlan,
             ILogicalExpression hashJoinExpr, HashJoinExpressionAnnotation 
hintHashJoin, boolean outerJoin) {
-=======
-    protected int buildHashJoinPlan(JoinNode leftJn, JoinNode rightJn, 
PlanNode leftPlan, PlanNode rightPlan,
-            ILogicalExpression hashJoinExpr, HashJoinExpressionAnnotation 
hintHashJoin) {
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
         List<PlanNode> allPlans = joinEnum.allPlans;
         PlanNode pn, cheapestPlan;
         ICost hjCost, leftExchangeCost, rightExchangeCost, childCosts, 
totalCost;
         this.leftJn = leftJn;
         this.rightJn = rightJn;
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)

         if (nullExtendingSide(leftJn.datasetBits, outerJoin)) {
             return PlanNode.NO_PLAN;
         }
-=======
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)

         if (hashJoinExpr == null || hashJoinExpr == ConstantExpression.TRUE) {
             return PlanNode.NO_PLAN;
@@ -787,17 +738,9 @@
                 && !rightJn.IsBaseLevelJoinNode() && level > 
joinEnum.cboFullEnumLevel) {
             return PlanNode.NO_PLAN;
         }
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
         boolean forceEnum = hintHashJoin != null || joinEnum.forceJoinOrderMode
                 || 
!joinEnum.queryPlanShape.equals(AlgebricksConfig.QUERY_PLAN_SHAPE_ZIGZAG) || 
outerJoin
                 || level <= joinEnum.cboFullEnumLevel;
-=======
-
-        boolean forceEnum = hintHashJoin != null || joinEnum.forceJoinOrderMode
-                || 
!joinEnum.queryPlanShape.equals(AlgebricksConfig.QUERY_PLAN_SHAPE_ZIGZAG)
-                || level <= joinEnum.cboFullEnumLevel;
-
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
         if (rightJn.cardinality * rightJn.size <= leftJn.cardinality * 
leftJn.size || forceEnum) {
             // We want to build with the smaller side.
             hjCost = joinEnum.getCostMethodsHandle().costHashJoin(this);
@@ -808,20 +751,12 @@
             totalCost = 
hjCost.costAdd(leftExchangeCost).costAdd(rightExchangeCost).costAdd(childCosts);
             if (this.cheapestPlanIndex == PlanNode.NO_PLAN || 
totalCost.costLT(this.cheapestPlanCost) || forceEnum) {
                 pn = new PlanNode(allPlans.size(), joinEnum);
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
                 pn.setJoinNode(this);
                 pn.outerJoin = outerJoin;
                 pn.setLeftJoinIndex(leftJn.jnArrayIndex);
                 pn.setRightJoinIndex(rightJn.jnArrayIndex);
                 pn.setLeftPlanIndex(leftPlan.allPlansIndex);
                 pn.setRightPlanIndex(rightPlan.allPlansIndex);
-=======
-                pn.jn = this;
-                pn.jnIndexes[0] = leftJn.jnArrayIndex;
-                pn.jnIndexes[1] = rightJn.jnArrayIndex;
-                pn.planIndexes[0] = leftPlan.allPlansIndex;
-                pn.planIndexes[1] = rightPlan.allPlansIndex;
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
                 pn.joinOp = PlanNode.JoinMethod.HYBRID_HASH_JOIN; // need to 
check that all the conditions have equality predicates ONLY.
                 pn.joinHint = hintHashJoin;
                 pn.side = HashJoinExpressionAnnotation.BuildSide.RIGHT;
@@ -845,26 +780,18 @@
         return PlanNode.NO_PLAN;
     }

-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
     private int buildBroadcastHashJoinPlan(JoinNode leftJn, JoinNode rightJn, 
PlanNode leftPlan, PlanNode rightPlan,
             ILogicalExpression hashJoinExpr, BroadcastExpressionAnnotation 
hintBroadcastHashJoin, boolean outerJoin) {
-=======
-    protected int buildBroadcastHashJoinPlan(JoinNode leftJn, JoinNode 
rightJn, PlanNode leftPlan, PlanNode rightPlan,
-            ILogicalExpression hashJoinExpr, BroadcastExpressionAnnotation 
hintBroadcastHashJoin) {
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
         List<PlanNode> allPlans = joinEnum.allPlans;
         PlanNode pn, cheapestPlan;
         ICost bcastHjCost, leftExchangeCost, rightExchangeCost, childCosts, 
totalCost;

         this.leftJn = leftJn;
         this.rightJn = rightJn;
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)

         if (nullExtendingSide(leftJn.datasetBits, outerJoin)) {
             return PlanNode.NO_PLAN;
         }
-=======
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)

         if (hashJoinExpr == null || hashJoinExpr == ConstantExpression.TRUE) {
             return PlanNode.NO_PLAN;
@@ -881,11 +808,7 @@
         }

         boolean forceEnum = hintBroadcastHashJoin != null || 
joinEnum.forceJoinOrderMode
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
                 || 
!joinEnum.queryPlanShape.equals(AlgebricksConfig.QUERY_PLAN_SHAPE_ZIGZAG) || 
outerJoin
-=======
-                || 
!joinEnum.queryPlanShape.equals(AlgebricksConfig.QUERY_PLAN_SHAPE_ZIGZAG)
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
                 || level <= joinEnum.cboFullEnumLevel;
         if (rightJn.cardinality * rightJn.size <= leftJn.cardinality * 
leftJn.size || forceEnum) {
             // We want to broadcast and build with the smaller side.
@@ -897,20 +820,12 @@
             totalCost = 
bcastHjCost.costAdd(rightExchangeCost).costAdd(childCosts);
             if (this.cheapestPlanIndex == PlanNode.NO_PLAN || 
totalCost.costLT(this.cheapestPlanCost) || forceEnum) {
                 pn = new PlanNode(allPlans.size(), joinEnum);
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
                 pn.setJoinNode(this);
                 pn.outerJoin = outerJoin;
                 pn.setLeftJoinIndex(leftJn.jnArrayIndex);
                 pn.setRightJoinIndex(rightJn.jnArrayIndex);
                 pn.setLeftPlanIndex(leftPlan.allPlansIndex);
                 pn.setRightPlanIndex(rightPlan.allPlansIndex);
-=======
-                pn.jn = this;
-                pn.jnIndexes[0] = leftJn.jnArrayIndex;
-                pn.jnIndexes[1] = rightJn.jnArrayIndex;
-                pn.planIndexes[0] = leftPlan.allPlansIndex;
-                pn.planIndexes[1] = rightPlan.allPlansIndex;
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
                 pn.joinOp = PlanNode.JoinMethod.BROADCAST_HASH_JOIN; // need 
to check that all the conditions have equality predicates ONLY.
                 pn.joinHint = hintBroadcastHashJoin;
                 pn.side = HashJoinExpressionAnnotation.BuildSide.RIGHT;
@@ -934,13 +849,8 @@
         return PlanNode.NO_PLAN;
     }

-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
     private int buildNLJoinPlan(JoinNode leftJn, JoinNode rightJn, PlanNode 
leftPlan, PlanNode rightPlan,
             ILogicalExpression nestedLoopJoinExpr, 
IndexedNLJoinExpressionAnnotation hintNLJoin, boolean outerJoin)
-=======
-    protected int buildNLJoinPlan(JoinNode leftJn, JoinNode rightJn, PlanNode 
leftPlan, PlanNode rightPlan,
-            ILogicalExpression nestedLoopJoinExpr, 
IndexedNLJoinExpressionAnnotation hintNLJoin)
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
             throws AlgebricksException {

         // Build a nested loops plan, first check if it is possible
@@ -953,13 +863,10 @@
         this.leftJn = leftJn;
         this.rightJn = rightJn;

-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
         if (nullExtendingSide(leftJn.datasetBits, outerJoin)) {
             return PlanNode.NO_PLAN;
         }

-=======
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
         if (rightJn.jnArrayIndex > numberOfTerms) {
             // right side consists of more than one table
             return PlanNode.NO_PLAN; // nested loop plan not possible.
@@ -974,28 +881,16 @@
         rightExchangeCost = joinEnum.getCostHandle().zeroCost();
         childCosts = allPlans.get(leftPlan.allPlansIndex).totalCost;
         totalCost = nljCost.costAdd(leftExchangeCost).costAdd(childCosts);
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
         boolean forceEnum =
                 hintNLJoin != null || joinEnum.forceJoinOrderMode || outerJoin 
|| level <= joinEnum.cboFullEnumLevel;
-=======
-        boolean forceEnum = hintNLJoin != null || joinEnum.forceJoinOrderMode 
|| level <= joinEnum.cboFullEnumLevel;
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
         if (this.cheapestPlanIndex == PlanNode.NO_PLAN || 
totalCost.costLT(this.cheapestPlanCost) || forceEnum) {
             pn = new PlanNode(allPlans.size(), joinEnum);
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
             pn.setJoinNode(this);
             pn.outerJoin = outerJoin;
             pn.setLeftJoinIndex(leftJn.jnArrayIndex);
             pn.setRightJoinIndex(rightJn.jnArrayIndex);
             pn.setLeftPlanIndex(leftPlan.allPlansIndex);
             pn.setRightPlanIndex(rightPlan.allPlansIndex);
-=======
-            pn.jn = this;
-            pn.jnIndexes[0] = leftJn.jnArrayIndex;
-            pn.jnIndexes[1] = rightJn.jnArrayIndex;
-            pn.planIndexes[0] = leftPlan.allPlansIndex;
-            pn.planIndexes[1] = rightPlan.allPlansIndex;
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
             pn.joinOp = PlanNode.JoinMethod.INDEX_NESTED_LOOP_JOIN;
             pn.joinHint = hintNLJoin;
             pn.joinExpr = nestedLoopJoinExpr; // save it so can be used to add 
the NESTED annotation in getNewTree.
@@ -1017,13 +912,8 @@
         return PlanNode.NO_PLAN;
     }

-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
     private int buildCPJoinPlan(JoinNode leftJn, JoinNode rightJn, PlanNode 
leftPlan, PlanNode rightPlan,
             ILogicalExpression hashJoinExpr, ILogicalExpression 
nestedLoopJoinExpr, boolean outerJoin) {
-=======
-    protected int buildCPJoinPlan(JoinNode leftJn, JoinNode rightJn, PlanNode 
leftPlan, PlanNode rightPlan,
-            ILogicalExpression hashJoinExpr, ILogicalExpression 
nestedLoopJoinExpr) {
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
         // Now build a cartesian product nested loops plan
         List<PlanNode> allPlans = joinEnum.allPlans;
         PlanNode pn, cheapestPlan;
@@ -1033,13 +923,10 @@
             return PlanNode.NO_PLAN;
         }

-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
         if (nullExtendingSide(leftJn.datasetBits, outerJoin)) {
             return PlanNode.NO_PLAN;
         }

-=======
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
         this.leftJn = leftJn;
         this.rightJn = rightJn;

@@ -1067,27 +954,15 @@
         childCosts =
                 
allPlans.get(leftPlan.allPlansIndex).totalCost.costAdd(allPlans.get(rightPlan.allPlansIndex).totalCost);
         totalCost = cpCost.costAdd(rightExchangeCost).costAdd(childCosts);
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
         boolean forceEnum = joinEnum.forceJoinOrderMode || outerJoin || level 
<= joinEnum.cboFullEnumLevel;
-=======
-        boolean forceEnum = joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel;
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
         if (this.cheapestPlanIndex == PlanNode.NO_PLAN || 
totalCost.costLT(this.cheapestPlanCost) || forceEnum) {
             pn = new PlanNode(allPlans.size(), joinEnum);
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
             pn.setJoinNode(this);
             pn.outerJoin = outerJoin;
             pn.setLeftJoinIndex(leftJn.jnArrayIndex);
             pn.setRightJoinIndex(rightJn.jnArrayIndex);
             pn.setLeftPlanIndex(leftPlan.allPlansIndex);
             pn.setRightPlanIndex(rightPlan.allPlansIndex);
-=======
-            pn.jn = this;
-            pn.jnIndexes[0] = leftJn.jnArrayIndex;
-            pn.jnIndexes[1] = rightJn.jnArrayIndex;
-            pn.planIndexes[0] = leftPlan.allPlansIndex;
-            pn.planIndexes[1] = rightPlan.allPlansIndex;
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
             pn.joinOp = PlanNode.JoinMethod.CARTESIAN_PRODUCT_JOIN;
             pn.joinExpr = Objects.requireNonNullElse(cpJoinExpr, 
ConstantExpression.TRUE);
             pn.opCost = cpCost;
@@ -1160,10 +1035,7 @@
         }
         ILogicalExpression hashJoinExpr = 
joinEnum.getHashJoinExpr(newJoinConditions);
         ILogicalExpression nestedLoopJoinExpr = 
joinEnum.getNestedLoopJoinExpr(newJoinConditions);
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
         boolean outerJoin = joinEnum.lookForOuterJoins(newJoinConditions);
-=======
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)

         double current_card = this.cardinality;
         if (current_card >= Cost.MAX_CARD) {
@@ -1195,23 +1067,14 @@
                         || rightJn.aliases.contains(buildOrProbeObject)))
                         || (probe && 
(leftJn.datasetNames.contains(buildOrProbeObject)
                                 || 
leftJn.aliases.contains(buildOrProbeObject)))) {
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
                     hjPlan = buildHashJoinPlan(leftJn, rightJn, leftPlan, 
rightPlan, hashJoinExpr, hintHashJoin,
                             outerJoin);
-=======
-                    hjPlan = buildHashJoinPlan(leftJn, rightJn, leftPlan, 
rightPlan, hashJoinExpr, hintHashJoin);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
                 } else if ((build && 
(leftJn.datasetNames.contains(buildOrProbeObject)
                         || leftJn.aliases.contains(buildOrProbeObject)))
                         || (probe && 
(rightJn.datasetNames.contains(buildOrProbeObject)
                                 || 
rightJn.aliases.contains(buildOrProbeObject)))) {
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
                     commutativeHjPlan = buildHashJoinPlan(rightJn, leftJn, 
rightPlan, leftPlan, hashJoinExpr,
                             hintHashJoin, outerJoin);
-=======
-                    commutativeHjPlan =
-                            buildHashJoinPlan(rightJn, leftJn, rightPlan, 
leftPlan, hashJoinExpr, hintHashJoin);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
                 }
             }
             if (hjPlan == PlanNode.NO_PLAN && commutativeHjPlan == 
PlanNode.NO_PLAN) {
@@ -1227,54 +1090,27 @@
                                         (build ? "build " : "probe ") + "with 
" + buildOrProbeObject));
                     }
                 }
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
                 hjPlan = buildHashJoinPlan(leftJn, rightJn, leftPlan, 
rightPlan, hashJoinExpr, null, outerJoin);
                 if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
                     commutativeHjPlan =
                             buildHashJoinPlan(rightJn, leftJn, rightPlan, 
leftPlan, hashJoinExpr, null, outerJoin);
-=======
-                hjPlan = buildHashJoinPlan(leftJn, rightJn, leftPlan, 
rightPlan, hashJoinExpr, null);
-                if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
-                    commutativeHjPlan = buildHashJoinPlan(rightJn, leftJn, 
rightPlan, leftPlan, hashJoinExpr, null);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
                 }
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
                 bcastHjPlan =
                         buildBroadcastHashJoinPlan(leftJn, rightJn, leftPlan, 
rightPlan, hashJoinExpr, null, outerJoin);
                 if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
                     commutativeBcastHjPlan = 
buildBroadcastHashJoinPlan(rightJn, leftJn, rightPlan, leftPlan,
                             hashJoinExpr, null, outerJoin);
-=======
-                bcastHjPlan = buildBroadcastHashJoinPlan(leftJn, rightJn, 
leftPlan, rightPlan, hashJoinExpr, null);
-                if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
-                    commutativeBcastHjPlan =
-                            buildBroadcastHashJoinPlan(rightJn, leftJn, 
rightPlan, leftPlan, hashJoinExpr, null);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
                 }
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
                 nljPlan = buildNLJoinPlan(leftJn, rightJn, leftPlan, 
rightPlan, nestedLoopJoinExpr, null, outerJoin);
                 if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
                     commutativeNljPlan =
                             buildNLJoinPlan(rightJn, leftJn, rightPlan, 
leftPlan, nestedLoopJoinExpr, null, outerJoin);
-=======
-                nljPlan = buildNLJoinPlan(leftJn, rightJn, leftPlan, 
rightPlan, nestedLoopJoinExpr, null);
-                if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
-                    commutativeNljPlan =
-                            buildNLJoinPlan(rightJn, leftJn, rightPlan, 
leftPlan, nestedLoopJoinExpr, null);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
                 }
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
                 cpPlan = buildCPJoinPlan(leftJn, rightJn, leftPlan, rightPlan, 
hashJoinExpr, nestedLoopJoinExpr,
                         outerJoin);
                 if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
                     commutativeCpPlan = buildCPJoinPlan(rightJn, leftJn, 
rightPlan, leftPlan, hashJoinExpr,
                             nestedLoopJoinExpr, outerJoin);
-=======
-                cpPlan = buildCPJoinPlan(leftJn, rightJn, leftPlan, rightPlan, 
hashJoinExpr, nestedLoopJoinExpr);
-                if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
-                    commutativeCpPlan =
-                            buildCPJoinPlan(rightJn, leftJn, rightPlan, 
leftPlan, hashJoinExpr, nestedLoopJoinExpr);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
                 }
             }
         } else if (hintBroadcastHashJoin != null) {
@@ -1289,34 +1125,18 @@
                 joinEnum.joinHints.put(hintBroadcastHashJoin, null);
                 if (rightJn.datasetNames.contains(broadcastObject) || 
rightJn.aliases.contains(broadcastObject)) {
                     bcastHjPlan = buildBroadcastHashJoinPlan(leftJn, rightJn, 
leftPlan, rightPlan, hashJoinExpr,
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
                             hintBroadcastHashJoin, outerJoin);
-=======
-                            hintBroadcastHashJoin);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
                 } else if (leftJn.datasetNames.contains(broadcastObject) || 
leftJn.aliases.contains(broadcastObject)) {
                     commutativeBcastHjPlan = 
buildBroadcastHashJoinPlan(rightJn, leftJn, rightPlan, leftPlan,
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
                             hashJoinExpr, hintBroadcastHashJoin, outerJoin);
-=======
-                            hashJoinExpr, hintBroadcastHashJoin);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
                 }
             } else if (broadcastObject == null) {
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
                 joinEnum.joinHints.put(hintBroadcastHashJoin, null);
                 bcastHjPlan = buildBroadcastHashJoinPlan(leftJn, rightJn, 
leftPlan, rightPlan, hashJoinExpr,
                         hintBroadcastHashJoin, outerJoin);
                 if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
                     commutativeBcastHjPlan = 
buildBroadcastHashJoinPlan(rightJn, leftJn, rightPlan, leftPlan,
                             hashJoinExpr, hintBroadcastHashJoin, outerJoin);
-=======
-                bcastHjPlan = buildBroadcastHashJoinPlan(leftJn, rightJn, 
leftPlan, rightPlan, hashJoinExpr,
-                        hintBroadcastHashJoin);
-                if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
-                    commutativeBcastHjPlan = 
buildBroadcastHashJoinPlan(rightJn, leftJn, rightPlan, leftPlan,
-                            hashJoinExpr, hintBroadcastHashJoin);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
                 }
             }
             if (bcastHjPlan == PlanNode.NO_PLAN && commutativeBcastHjPlan == 
PlanNode.NO_PLAN) {
@@ -1333,69 +1153,35 @@
                     }
                 }

-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
                 hjPlan = buildHashJoinPlan(leftJn, rightJn, leftPlan, 
rightPlan, hashJoinExpr, null, outerJoin);
                 if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
                     commutativeHjPlan =
                             buildHashJoinPlan(rightJn, leftJn, rightPlan, 
leftPlan, hashJoinExpr, null, outerJoin);
-=======
-                hjPlan = buildHashJoinPlan(leftJn, rightJn, leftPlan, 
rightPlan, hashJoinExpr, null);
-                if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
-                    commutativeHjPlan = buildHashJoinPlan(rightJn, leftJn, 
rightPlan, leftPlan, hashJoinExpr, null);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
                 }
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
                 bcastHjPlan =
                         buildBroadcastHashJoinPlan(leftJn, rightJn, leftPlan, 
rightPlan, hashJoinExpr, null, outerJoin);
                 if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
                     commutativeBcastHjPlan = 
buildBroadcastHashJoinPlan(rightJn, leftJn, rightPlan, leftPlan,
                             hashJoinExpr, null, outerJoin);
-=======
-                bcastHjPlan = buildBroadcastHashJoinPlan(leftJn, rightJn, 
leftPlan, rightPlan, hashJoinExpr, null);
-                if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
-                    commutativeBcastHjPlan =
-                            buildBroadcastHashJoinPlan(rightJn, leftJn, 
rightPlan, leftPlan, hashJoinExpr, null);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
                 }
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
                 nljPlan = buildNLJoinPlan(leftJn, rightJn, leftPlan, 
rightPlan, nestedLoopJoinExpr, null, outerJoin);
                 if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
                     commutativeNljPlan =
                             buildNLJoinPlan(rightJn, leftJn, rightPlan, 
leftPlan, nestedLoopJoinExpr, null, outerJoin);
-=======
-                nljPlan = buildNLJoinPlan(leftJn, rightJn, leftPlan, 
rightPlan, nestedLoopJoinExpr, null);
-                if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
-                    commutativeNljPlan =
-                            buildNLJoinPlan(rightJn, leftJn, rightPlan, 
leftPlan, nestedLoopJoinExpr, null);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
                 }
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
                 cpPlan = buildCPJoinPlan(leftJn, rightJn, leftPlan, rightPlan, 
hashJoinExpr, nestedLoopJoinExpr,
                         outerJoin);
                 if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
                     commutativeCpPlan = buildCPJoinPlan(rightJn, leftJn, 
rightPlan, leftPlan, hashJoinExpr,
                             nestedLoopJoinExpr, outerJoin);
-=======
-                cpPlan = buildCPJoinPlan(leftJn, rightJn, leftPlan, rightPlan, 
hashJoinExpr, nestedLoopJoinExpr);
-                if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
-                    commutativeCpPlan =
-                            buildCPJoinPlan(rightJn, leftJn, rightPlan, 
leftPlan, hashJoinExpr, nestedLoopJoinExpr);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
                 }
             }
         } else if (hintNLJoin != null) {
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
             joinEnum.joinHints.put(hintNLJoin, null);
             nljPlan = buildNLJoinPlan(leftJn, rightJn, leftPlan, rightPlan, 
nestedLoopJoinExpr, hintNLJoin, outerJoin);
             if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
                 commutativeNljPlan = buildNLJoinPlan(rightJn, leftJn, 
rightPlan, leftPlan, nestedLoopJoinExpr,
                         hintNLJoin, outerJoin);
-=======
-            nljPlan = buildNLJoinPlan(leftJn, rightJn, leftPlan, rightPlan, 
nestedLoopJoinExpr, hintNLJoin);
-            if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
-                commutativeNljPlan =
-                        buildNLJoinPlan(rightJn, leftJn, rightPlan, leftPlan, 
nestedLoopJoinExpr, hintNLJoin);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
             }
             if (nljPlan == PlanNode.NO_PLAN && commutativeNljPlan == 
PlanNode.NO_PLAN) {
                 // Hints are attached to predicates, so newJoinConditions 
should not be empty, but adding the check to be safe.
@@ -1409,91 +1195,45 @@
                                         ErrorCode.INAPPLICABLE_HINT, "index 
nested loop join", "ignored"));
                     }
                 }
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
                 hjPlan = buildHashJoinPlan(leftJn, rightJn, leftPlan, 
rightPlan, hashJoinExpr, null, outerJoin);
                 if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
                     commutativeHjPlan =
                             buildHashJoinPlan(rightJn, leftJn, rightPlan, 
leftPlan, hashJoinExpr, null, outerJoin);
-=======
-                hjPlan = buildHashJoinPlan(leftJn, rightJn, leftPlan, 
rightPlan, hashJoinExpr, null);
-                if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
-                    commutativeHjPlan = buildHashJoinPlan(rightJn, leftJn, 
rightPlan, leftPlan, hashJoinExpr, null);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
                 }
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
                 bcastHjPlan =
                         buildBroadcastHashJoinPlan(leftJn, rightJn, leftPlan, 
rightPlan, hashJoinExpr, null, outerJoin);
                 if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
                     commutativeBcastHjPlan = 
buildBroadcastHashJoinPlan(rightJn, leftJn, rightPlan, leftPlan,
                             hashJoinExpr, null, outerJoin);
-=======
-                bcastHjPlan = buildBroadcastHashJoinPlan(leftJn, rightJn, 
leftPlan, rightPlan, hashJoinExpr, null);
-                if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
-                    commutativeBcastHjPlan =
-                            buildBroadcastHashJoinPlan(rightJn, leftJn, 
rightPlan, leftPlan, hashJoinExpr, null);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
                 }
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
                 cpPlan = buildCPJoinPlan(leftJn, rightJn, leftPlan, rightPlan, 
hashJoinExpr, nestedLoopJoinExpr,
                         outerJoin);
                 if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
                     commutativeCpPlan = buildCPJoinPlan(rightJn, leftJn, 
rightPlan, leftPlan, hashJoinExpr,
                             nestedLoopJoinExpr, outerJoin);
-=======
-                cpPlan = buildCPJoinPlan(leftJn, rightJn, leftPlan, rightPlan, 
hashJoinExpr, nestedLoopJoinExpr);
-                if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
-                    commutativeCpPlan =
-                            buildCPJoinPlan(rightJn, leftJn, rightPlan, 
leftPlan, hashJoinExpr, nestedLoopJoinExpr);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
                 }
             }
         } else {
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
             hjPlan = buildHashJoinPlan(leftJn, rightJn, leftPlan, rightPlan, 
hashJoinExpr, null, outerJoin);
             if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
                 commutativeHjPlan =
                         buildHashJoinPlan(rightJn, leftJn, rightPlan, 
leftPlan, hashJoinExpr, null, outerJoin);
-=======
-            hjPlan = buildHashJoinPlan(leftJn, rightJn, leftPlan, rightPlan, 
hashJoinExpr, null);
-            if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
-                commutativeHjPlan = buildHashJoinPlan(rightJn, leftJn, 
rightPlan, leftPlan, hashJoinExpr, null);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
             }
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
             bcastHjPlan =
                     buildBroadcastHashJoinPlan(leftJn, rightJn, leftPlan, 
rightPlan, hashJoinExpr, null, outerJoin);
             if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
                 commutativeBcastHjPlan =
                         buildBroadcastHashJoinPlan(rightJn, leftJn, rightPlan, 
leftPlan, hashJoinExpr, null, outerJoin);
-=======
-            bcastHjPlan = buildBroadcastHashJoinPlan(leftJn, rightJn, 
leftPlan, rightPlan, hashJoinExpr, null);
-            if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
-                commutativeBcastHjPlan =
-                        buildBroadcastHashJoinPlan(rightJn, leftJn, rightPlan, 
leftPlan, hashJoinExpr, null);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
             }
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
             nljPlan = buildNLJoinPlan(leftJn, rightJn, leftPlan, rightPlan, 
nestedLoopJoinExpr, null, outerJoin);
             if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
                 commutativeNljPlan =
                         buildNLJoinPlan(rightJn, leftJn, rightPlan, leftPlan, 
nestedLoopJoinExpr, null, outerJoin);
-=======
-            nljPlan = buildNLJoinPlan(leftJn, rightJn, leftPlan, rightPlan, 
nestedLoopJoinExpr, null);
-            if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
-                commutativeNljPlan = buildNLJoinPlan(rightJn, leftJn, 
rightPlan, leftPlan, nestedLoopJoinExpr, null);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
             }
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
             cpPlan = buildCPJoinPlan(leftJn, rightJn, leftPlan, rightPlan, 
hashJoinExpr, nestedLoopJoinExpr, outerJoin);
             if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
                 commutativeCpPlan = buildCPJoinPlan(rightJn, leftJn, 
rightPlan, leftPlan, hashJoinExpr,
                         nestedLoopJoinExpr, outerJoin);
-=======
-            cpPlan = buildCPJoinPlan(leftJn, rightJn, leftPlan, rightPlan, 
hashJoinExpr, nestedLoopJoinExpr);
-            if (!joinEnum.forceJoinOrderMode || level <= 
joinEnum.cboFullEnumLevel) {
-                commutativeCpPlan =
-                        buildCPJoinPlan(rightJn, leftJn, rightPlan, leftPlan, 
hashJoinExpr, nestedLoopJoinExpr);
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
             }
         }

diff --git 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/PlanNode.java
 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/PlanNode.java
index 04e897a..b017140 100644
--- 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/PlanNode.java
+++ 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/PlanNode.java
@@ -32,7 +32,6 @@
     protected static int NO_PLAN = -1;

     private final JoinEnum joinEnum;
-<<<<<<< HEAD   (84f4a8 [NO ISSUE][TX] Concurrently wirte checkpoints for 
atomic sta)
     boolean outerJoin = false;
     protected int allPlansIndex;
     protected int[] planIndexes;
@@ -46,20 +45,6 @@
     protected JoinMethod joinOp;
     protected boolean indexHint;
     protected IExpressionAnnotation joinHint;
-=======
-    int allPlansIndex;
-    int[] planIndexes;
-    int[] jnIndexes;
-    JoinNode jn;
-    String datasetName;
-    ICost opCost;
-    ICost totalCost;
-    ICost leftExchangeCost;
-    ICost rightExchangeCost;
-    JoinMethod joinOp;
-    boolean indexHint;
-    IExpressionAnnotation joinHint;
->>>>>>> BRANCH (4e5aa9 [ASTERIXDB-3195][COMP] Add query properties to 
enumerate all)
     // Used to indicate which side to build for HJ and which side to broadcast 
for BHJ.
     protected HashJoinExpressionAnnotation.BuildSide side;
     protected ScanMethod scanOp;

--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17769
To unsubscribe, or for help writing mail filters, visit 
https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I0dac3fa33fcfc54177c110bcf6de7270f43f134e
Gerrit-Change-Number: 17769
Gerrit-PatchSet: 1
Gerrit-Owner: Michael Blow <[email protected]>
Gerrit-MessageType: newchange

Reply via email to