This is an automated email from the ASF dual-hosted git repository. mblow pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit 6adec7569d9a5820338b99566833cfc577985815 Author: Dmitry Lychagin <[email protected]> AuthorDate: Fri Jun 17 17:03:47 2022 -0700 [NO ISSUE][COMP] Fix regression in RemoveRedundantVariablesRule - user model changes: no - storage format changes: no - interface changes: no Details: - Fix regression in RemoveRedundantVariablesRule introduced by the change that added ANALYZE DATASET statement Change-Id: I469df809115b7c419038a81c3fa1e1ae69e79c7e Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/16583 Contrib: Jenkins <[email protected]> Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Reviewed-by: Dmitry Lychagin <[email protected]> Reviewed-by: Ali Alsuliman <[email protected]> Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17325 Reviewed-by: Michael Blow <[email protected]> Tested-by: Michael Blow <[email protected]> --- .../rewriter/rules/RemoveRedundantVariablesRule.java | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/RemoveRedundantVariablesRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/RemoveRedundantVariablesRule.java index 32f754c826..1ed7170b18 100644 --- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/RemoveRedundantVariablesRule.java +++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/RemoveRedundantVariablesRule.java @@ -23,7 +23,6 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Objects; import org.apache.commons.lang3.mutable.Mutable; import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException; @@ -139,9 +138,12 @@ public class RemoveRedundantVariablesRule implements IAlgebraicRewriteRule { if (expr.getExpressionTag() != LogicalExpressionTag.VARIABLE) { continue; } - VariableReferenceExpression rhsVarRefExpr = (VariableReferenceExpression) expr; - // Update equivalence class map. LogicalVariable lhs = assignOp.getVariables().get(i); + if (context.shouldNotBeInlined(lhs)) { + continue; + } + // Update equivalence class map. + VariableReferenceExpression rhsVarRefExpr = (VariableReferenceExpression) expr; LogicalVariable rhs = rhsVarRefExpr.getVariableReference(); updateEquivalenceClassMap(lhs, rhs); } @@ -159,7 +161,6 @@ public class RemoveRedundantVariablesRule implements IAlgebraicRewriteRule { modified = true; } } else { - substVisitor.reset(context); if (op.acceptExpressionTransform(substVisitor)) { modified = true; } @@ -284,13 +285,6 @@ public class RemoveRedundantVariablesRule implements IAlgebraicRewriteRule { } private class VariableSubstitutionVisitor implements ILogicalExpressionReferenceTransform { - - private IOptimizationContext context; - - void reset(IOptimizationContext context) { - this.context = Objects.requireNonNull(context); - } - @Override public boolean transform(Mutable<ILogicalExpression> exprRef) { ILogicalExpression e = exprRef.getValue(); @@ -299,9 +293,6 @@ public class RemoveRedundantVariablesRule implements IAlgebraicRewriteRule { // Replace variable references with their equivalent representative in the equivalence class map. VariableReferenceExpression varRefExpr = (VariableReferenceExpression) e; LogicalVariable var = varRefExpr.getVariableReference(); - if (context.shouldNotBeInlined(var)) { - return false; - } LogicalVariable representative = findEquivalentRepresentativeVar(var); if (representative != null) { varRefExpr.setVariable(representative);
