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


The following commit(s) were added to refs/heads/master by this push:
     new f388dbc8d9 [ASTERIXDB-3635][COMP] Fix array skip-index annotation
f388dbc8d9 is described below

commit f388dbc8d925d1aa29ba6b03444a1ce2d16a4bef
Author: murali4104 <[email protected]>
AuthorDate: Thu Oct 16 08:04:13 2025 -0700

    [ASTERIXDB-3635][COMP] Fix array skip-index annotation
    
    Ext-Ref: MB-68074
    
    Change-Id: I5f8ac2170fd6b2beef14d90cd8b93411f0f19ba8
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20489
    Reviewed-by: Preetham Poluparthi <[email protected]>
    Integration-Tests: Jenkins <[email protected]>
    Tested-by: Jenkins <[email protected]>
---
 .../rules/am/IntroduceSelectAccessMethodRule.java      | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceSelectAccessMethodRule.java
 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceSelectAccessMethodRule.java
index df9fb2cf5a..d3efcac4c3 100644
--- 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceSelectAccessMethodRule.java
+++ 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IntroduceSelectAccessMethodRule.java
@@ -495,22 +495,24 @@ public class IntroduceSelectAccessMethodRule extends 
AbstractIntroduceAccessMeth
 
             if (continueCheck && 
context.getPhysicalOptimizationConfig().isArrayIndexEnabled()
                     && 
SelectFromSubplanRewrite.isApplicableForRewriteCursory(indexProvider, 
selectOp)) {
-                // If there exists a composite atomic-array index, our 
conjuncts will be split across multiple
-                // SELECTs. This rewrite is to be used **solely** for the 
purpose of changing a DATA-SCAN into a
-                // non-index-only plan branch. No nodes introduced from this 
rewrite will be used beyond this point.
-
-                if (rewriteLocallyAndTransform(selectRef, context, 
mergedSelectRewrite, checkApplicableOnly,
-                        chosenIndexes, analyzedAMs)) {
-                    return true;
-                }
 
                 // If there exists a SUBPLAN in our plan, and we are 
conditioning on a variable, attempt to rewrite
                 // this subplan to allow an array-index AM to be introduced. 
Again, this rewrite is to be used
                 // **solely** for the purpose of changing a DATA-SCAN into a 
non-index-only plan branch.
+                // the order of these rewrites was switched on Glenn's 
suggestion
                 if (rewriteLocallyAndTransform(selectRef, context, 
selectFromSubplanRewrite, checkApplicableOnly,
                         chosenIndexes, analyzedAMs)) {
                     return true;
                 }
+
+                // If there exists a composite atomic-array index, our 
conjuncts will be split across multiple
+                // SELECTs. This rewrite is to be used **solely** for the 
purpose of changing a DATA-SCAN into a
+                // non-index-only plan branch. No nodes introduced from this 
rewrite will be used beyond this point.
+
+                if (rewriteLocallyAndTransform(selectRef, context, 
mergedSelectRewrite, checkApplicableOnly,
+                        chosenIndexes, analyzedAMs)) {
+                    return true;
+                }
             }
 
             // Check the condition of SELECT operator is a function call since

Reply via email to