>From <[email protected]>:
[email protected] has uploaded this change for review. (
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19404 )
Change subject: actual subplan change
......................................................................
actual subplan change
Change-Id: I87d3f9313bff16f4402bee1e6104d41cde4b575f
---
M
hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IntroduceProjectsRule.java
1 file changed, 24 insertions(+), 1 deletion(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/04/19404/1
diff --git
a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IntroduceProjectsRule.java
b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IntroduceProjectsRule.java
index ca92331..86f3186 100644
---
a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IntroduceProjectsRule.java
+++
b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IntroduceProjectsRule.java
@@ -30,10 +30,12 @@
import org.apache.commons.lang3.mutable.MutableObject;
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalPlan;
import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
import org.apache.hyracks.algebricks.core.algebra.base.LogicalOperatorTag;
import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
import
org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
+import
org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractOperatorWithNestedPlans;
import
org.apache.hyracks.algebricks.core.algebra.operators.logical.ProjectOperator;
import
org.apache.hyracks.algebricks.core.algebra.operators.logical.visitors.VariableUtilities;
import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
@@ -131,6 +133,18 @@
}
}
+ if(op.hasNestedPlans()){
+ AbstractOperatorWithNestedPlans nestedPlansOp =
(AbstractOperatorWithNestedPlans) op;
+ for(ILogicalPlan nestedPlanOp : nestedPlansOp.getNestedPlans()){
+ for(Mutable<ILogicalOperator> rootOpRef :
nestedPlanOp.getRoots()){
+
if(introduceProjects(null,-1,rootOpRef,Collections.<LogicalVariable>
emptySet(),context)){
+ modified = true;
+ }
+ }
+ }
+ }
+
+
if (modified) {
context.computeAndSetTypeEnvironmentForOperator(op);
}
@@ -175,7 +189,7 @@
VariableUtilities.getLiveVariables(op.getInputs().get(0).getValue(), liveVars);
ProjectOperator projectOp = (ProjectOperator) op;
List<LogicalVariable> projectVarsTemp = projectOp.getVariables();
- if (liveVars.size() == projectVarsTemp.size() &&
liveVars.containsAll(projectVarsTemp)) {
+ if (liveVars.size() == projectVarsTemp.size() &&
liveVars.containsAll(projectVarsTemp) && parentOp!=null) {
// The existing project has become useless. Remove it.
parentOp.getInputs().get(parentInputIndex).setValue(op.getInputs().get(0).getValue());
modified = true;
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19404
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: I87d3f9313bff16f4402bee1e6104d41cde4b575f
Gerrit-Change-Number: 19404
Gerrit-PatchSet: 1
Gerrit-Owner: [email protected]
Gerrit-MessageType: newchange