This is an automated email from the ASF dual-hosted git repository.
dlych 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 0f3259a37f [NO ISSUE][COMP] Fix regression in
RemoveRedundantVariablesRule
0f3259a37f is described below
commit 0f3259a37fab6519f870e946e2e10e22696785f9
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]>
---
.../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);