>From Vijay Sarathy <vijay.sara...@couchbase.com>: Vijay Sarathy has submitted this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18002 )
Change subject: [ASTERIXDB-3308][COMP]: CH2 Q7 fails with internal error (with CBO on) ...................................................................... [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 <jenk...@fulliautomatix.ics.uci.edu> Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Reviewed-by: <murali.kris...@couchbase.com> Reviewed-by: Vijay Sarathy <vijay.sara...@couchbase.com> --- 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/EnumerateJoinsRule.java 2 files changed, 19 insertions(+), 3 deletions(-) Approvals: murali.kris...@couchbase.com: Looks good to me, but someone else must approve Vijay Sarathy: Looks good to me, approved Jenkins: Verified; Verified Objections: Anon. E. Moose #1000171: Violations found 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 c24dd7f..7ed23f7 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 @@ // 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 @@ 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 e748e55..76f87b2 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 @@ 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 @@ 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. -- To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18002 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: Icbdfc40090af6f7b4d7148c27a873d7e43830246 Gerrit-Change-Number: 18002 Gerrit-PatchSet: 2 Gerrit-Owner: Vijay Sarathy <vijay.sara...@couchbase.com> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Gerrit-Reviewer: Vijay Sarathy <vijay.sara...@couchbase.com> Gerrit-Reviewer: murali.kris...@couchbase.com Gerrit-MessageType: merged