This is an automated email from the ASF dual-hosted git repository.
wyk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
The following commit(s) were added to refs/heads/master by this push:
new 7fc2a3d820 [ASTERIXDB-3308][COMP]: CH2 Q7 fails with internal error
(with CBO on)
7fc2a3d820 is described below
commit 7fc2a3d820427ebe3e5923a6c9f3581e351ea634
Author: Vijay Sarathy <[email protected]>
AuthorDate: Thu Dec 7 11:11:47 2023 -0800
[ASTERIXDB-3308][COMP]: CH2 Q7 fails with internal error (with CBO on)
Change-Id: Icbdfc40090af6f7b4d7148c27a873d7e43830246
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18002
Integration-Tests: Jenkins <[email protected]>
Tested-by: Jenkins <[email protected]>
Reviewed-by: <[email protected]>
Reviewed-by: Vijay Sarathy <[email protected]>
---
.../org/apache/asterix/optimizer/rules/cbo/EnumerateJoinsRule.java | 3 ---
.../main/java/org/apache/asterix/optimizer/rules/cbo/JoinEnum.java | 5 +++++
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/EnumerateJoinsRule.java
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/EnumerateJoinsRule.java
index c24dd7f218..7ed23f7502 100644
---
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/EnumerateJoinsRule.java
+++
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/EnumerateJoinsRule.java
@@ -1015,7 +1015,6 @@ public class EnumerateJoinsRule implements
IAlgebraicRewriteRule {
// on top of that LeafInput. Modify the joinLeafInputsHashMap as well.
private void pushAssignsIntoLeafInputs(IPlanPrettyPrinter pp,
List<ILogicalOperator> leafInputs,
List<AssignOperator> assignOps, List<ILogicalExpression>
assignJoinExprs) throws AlgebricksException {
- int pos = 0;
for (ILogicalOperator lo : leafInputs) {
ILogicalOperator joinLeafInput = lo;
printPlan(pp, (AbstractLogicalOperator) joinLeafInput, "Incoming
leaf Input");
@@ -1023,10 +1022,8 @@ public class EnumerateJoinsRule implements
IAlgebraicRewriteRule {
if (assignNumber != -1) {
joinLeafInput = addAssignToLeafInput(joinLeafInput,
assignOps.get(assignNumber));
printPlan(pp, (AbstractLogicalOperator) joinLeafInput,
"Modified leaf Input");
- leafInputs.add(pos, joinLeafInput);
assignOps.remove(assignNumber);
}
- pos++;
}
}
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 e748e55ae5..76f87b27c8 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
@@ -440,6 +440,7 @@ public class JoinEnum {
usedVars.clear();
ILogicalExpression expr = jc.joinCondition;
expr.getUsedVariables(usedVars);
+ List<AssignOperator> erase = new ArrayList<>();
for (AssignOperator aOp : assignOps) {
for (int i = 0; i < aOp.getVariables().size(); i++) {
if (usedVars.contains(aOp.getVariables().get(i))) {
@@ -447,9 +448,13 @@ public class JoinEnum {
aOp.getVariables().get(i),
aOp.getExpressions().get(i).getValue());
jc.joinCondition = expr;
jc.selectivity =
stats.getSelectivityFromAnnotationMain(jc.joinCondition, true);
+ erase.add(aOp);
}
}
}
+ for (int i = erase.size() - 1; i >= 0; i--) {
+ assignOps.remove(erase.get(i));
+ }
}
// now fill the datasetBits for each join condition.