>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]>

Reply via email to