You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by pr...@apache.org on 2014/02/18 01:47:40 UTC

git commit: Found the order for checking used variables was off. Moved check to after nested plans.

Repository: incubator-vxquery
Updated Branches:
  refs/heads/prestonc/benchmarks_staging d88a64e17 -> ed696a53e


Found the order for checking used variables was off. Moved check to after nested plans.


Project: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/commit/ed696a53
Tree: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/tree/ed696a53
Diff: http://git-wip-us.apache.org/repos/asf/incubator-vxquery/diff/ed696a53

Branch: refs/heads/prestonc/benchmarks_staging
Commit: ed696a53ef52aa1bea10322ad18536afb1401579
Parents: d88a64e
Author: Preston Carman <pr...@apache.org>
Authored: Mon Feb 17 16:47:22 2014 -0800
Committer: Preston Carman <pr...@apache.org>
Committed: Mon Feb 17 16:47:22 2014 -0800

----------------------------------------------------------------------
 .../rewriter/rules/AbstractUsedVariablesProcessingRule.java    | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-vxquery/blob/ed696a53/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/AbstractUsedVariablesProcessingRule.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/AbstractUsedVariablesProcessingRule.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/AbstractUsedVariablesProcessingRule.java
index c567909..04c6f1e 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/AbstractUsedVariablesProcessingRule.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/rules/AbstractUsedVariablesProcessingRule.java
@@ -63,10 +63,9 @@ public abstract class AbstractUsedVariablesProcessingRule implements IAlgebraicR
     protected boolean rewritePreOnePass(Mutable<ILogicalOperator> opRef, IOptimizationContext context)
             throws AlgebricksException {
         boolean modified = processOperator(opRef, context);
-
         AbstractLogicalOperator op = (AbstractLogicalOperator) opRef.getValue();
-        VariableUtilities.getUsedVariables(op, usedVariables);
 
+        // Descend into nested plans merging unnest along the way.
         if (op.hasNestedPlans()) {
             AbstractOperatorWithNestedPlans opwnp = (AbstractOperatorWithNestedPlans) op;
             for (ILogicalPlan rootPlans : opwnp.getNestedPlans()) {
@@ -78,6 +77,9 @@ public abstract class AbstractUsedVariablesProcessingRule implements IAlgebraicR
             }
         }
 
+        // Only add variables after operator is used.
+        VariableUtilities.getUsedVariables(op, usedVariables);
+
         // Descend into children merging unnest along the way.
         if (op.hasInputs()) {
             for (Mutable<ILogicalOperator> inputOpRef : op.getInputs()) {