You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by gg...@apache.org on 2022/09/01 01:31:33 UTC
[asterixdb] branch master updated: [NO-ISSUE][COMP] Deep-copy fix in array index recognition
This is an automated email from the ASF dual-hosted git repository.
ggalvizo 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 a0030a7fbd [NO-ISSUE][COMP] Deep-copy fix in array index recognition
a0030a7fbd is described below
commit a0030a7fbd5d98d9b51c2b51896b0883eeae9364
Author: ggalvizo <gg...@uci.edu>
AuthorDate: Wed Aug 31 13:03:17 2022 -0700
[NO-ISSUE][COMP] Deep-copy fix in array index recognition
- user model changes: no
- storage format changes: no
- interface changes: no
Change-Id: I217dfed91b8af814c380b99537789b17e8d0a3a6
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17223
Tested-by: Ali Alsuliman <al...@gmail.com>
Reviewed-by: Ali Alsuliman <al...@gmail.com>
---
.../rules/am/array/AbstractOperatorFromSubplanRewrite.java | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
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 ba70aff830..9a370c64c9 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 @@ abstract public class AbstractOperatorFromSubplanRewrite<T> implements IIntroduc
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 @@ abstract public class AbstractOperatorFromSubplanRewrite<T> implements IIntroduc
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 @@ abstract public class AbstractOperatorFromSubplanRewrite<T> implements IIntroduc
if (splitIntoConjuncts(conjunct.getValue(), innerExprConjuncts)) {
conjuncts.addAll(innerExprConjuncts);
} else {
- conjuncts.add(conjunct);
+ conjuncts.add(new MutableObject<>(conjunct.getValue().cloneExpression()));
}
}
return true;