>From Michael Blow <[email protected]>:
Michael Blow has submitted this change. (
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(-)
Approvals:
Michael Blow: Looks good to me, approved; Verified
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-Reviewer: Michael Blow <[email protected]>
Gerrit-CC: Jenkins <[email protected]>
Gerrit-MessageType: merged