>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

Reply via email to