>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