>From Preetham Poluparthi <[email protected]>:
Preetham Poluparthi has uploaded this change for review. (
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21156?usp=email )
Change subject: [ASTERIXDB-3709][COMP] Switch PushSelectDown rule from
pre-order to post-order
......................................................................
[ASTERIXDB-3709][COMP] Switch PushSelectDown rule from pre-order to post-order
- user model changes: no
- storage format changes: no
- interface changes: no
Ext-ref: MB-71042
Details : Changed SelectPushdown rule application from pre-order to post-order
to ensure proper handling of multiple array index predicates. The earlier
approach could lead to suboptimal index usage due to lack of intersection
across array indexes.
Change-Id: I814d2cc90744126dc4d0a5b09ec1d981556ff4e9
---
M
hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushSelectDownRule.java
1 file changed, 7 insertions(+), 6 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/56/21156/1
diff --git
a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushSelectDownRule.java
b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushSelectDownRule.java
index 04cba02..5eeca4a 100644
---
a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushSelectDownRule.java
+++
b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/PushSelectDownRule.java
@@ -36,12 +36,7 @@
public class PushSelectDownRule implements IAlgebraicRewriteRule {
@Override
- public boolean rewritePost(Mutable<ILogicalOperator> opRef,
IOptimizationContext context) {
- return false;
- }
-
- @Override
- public boolean rewritePre(Mutable<ILogicalOperator> opRef,
IOptimizationContext context)
+ public boolean rewritePost(Mutable<ILogicalOperator> opRef,
IOptimizationContext context)
throws AlgebricksException {
AbstractLogicalOperator op = (AbstractLogicalOperator)
opRef.getValue();
if (op.getOperatorTag() != LogicalOperatorTag.SELECT ||
!OperatorPropertiesUtil.isMovable(op)) {
@@ -69,6 +64,12 @@
}
}
+ @Override
+ public boolean rewritePre(Mutable<ILogicalOperator> opRef,
IOptimizationContext context)
+ throws AlgebricksException {
+ return false;
+ }
+
private static boolean propagateSelectionRec(Mutable<ILogicalOperator>
sigmaRef, Mutable<ILogicalOperator> opRef2)
throws AlgebricksException {
AbstractLogicalOperator op2 = (AbstractLogicalOperator)
opRef2.getValue();
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21156?usp=email
To unsubscribe, or for help writing mail filters, visit
https://asterix-gerrit.ics.uci.edu/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: asterixdb
Gerrit-Branch: lumina
Gerrit-Change-Id: I814d2cc90744126dc4d0a5b09ec1d981556ff4e9
Gerrit-Change-Number: 21156
Gerrit-PatchSet: 1
Gerrit-Owner: Preetham Poluparthi <[email protected]>