>From Glenn Galvizo <[email protected]>:

Glenn Galvizo has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17223 )


Change subject: [NO-ISSUE][COMP] Deep-copy fix in array index recognition
......................................................................

[NO-ISSUE][COMP] Deep-copy fix in array index recognition

- user model changes: no
- storage format changes: no
- interface changes: no

Change-Id: I217dfed91b8af814c380b99537789b17e8d0a3a6
---
M 
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/array/AbstractOperatorFromSubplanRewrite.java
1 file changed, 16 insertions(+), 6 deletions(-)



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

diff --git 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/array/AbstractOperatorFromSubplanRewrite.java
 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/array/AbstractOperatorFromSubplanRewrite.java
index ba70aff..9a370c6 100644
--- 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/array/AbstractOperatorFromSubplanRewrite.java
+++ 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/array/AbstractOperatorFromSubplanRewrite.java
@@ -156,9 +156,7 @@
             switch (workingOriginalOperator.getOperatorTag()) {
                 case UNNEST:
                     UnnestOperator originalUnnest = (UnnestOperator) 
workingOriginalOperator;
-                    UnnestOperator newUnnest =
-                            new UnnestOperator(originalUnnest.getVariable(), 
originalUnnest.getExpressionRef());
-                    newUnnest.setSourceLocation(sourceLocation);
+                    UnnestOperator newUnnest = (UnnestOperator) 
OperatorManipulationUtil.deepCopy(originalUnnest);
                     workingNewOperator.getInputs().add(new 
MutableObject<>(newUnnest));
                     workingNewOperator = newUnnest;
                     bottommostNewUnnest = (UnnestOperator) workingNewOperator;
@@ -166,8 +164,7 @@

                 case ASSIGN:
                     AssignOperator originalAssign = (AssignOperator) 
workingOriginalOperator;
-                    AssignOperator newAssign =
-                            new AssignOperator(originalAssign.getVariables(), 
originalAssign.getExpressions());
+                    AssignOperator newAssign = (AssignOperator) 
OperatorManipulationUtil.deepCopy(originalAssign);
                     newAssign.setSourceLocation(sourceLocation);
                     workingNewOperator.getInputs().add(new 
MutableObject<>(newAssign));
                     workingNewOperator = newAssign;
@@ -508,7 +505,7 @@
                 if (splitIntoConjuncts(conjunct.getValue(), 
innerExprConjuncts)) {
                     conjuncts.addAll(innerExprConjuncts);
                 } else {
-                    conjuncts.add(conjunct);
+                    conjuncts.add(new 
MutableObject<>(conjunct.getValue().cloneExpression()));
                 }
             }
             return true;

--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17223
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: I217dfed91b8af814c380b99537789b17e8d0a3a6
Gerrit-Change-Number: 17223
Gerrit-PatchSet: 1
Gerrit-Owner: Glenn Galvizo <[email protected]>
Gerrit-MessageType: newchange

Reply via email to