>From Ali Alsuliman <[email protected]>:

Ali Alsuliman has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19448 )


Change subject: [ASTERIXDB-3562][COMP] Do not place array slice in a subplan
......................................................................

[ASTERIXDB-3562][COMP] Do not place array slice in a subplan

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
Array slice expressions (e.g. array_f[1:5]) do not need to
be nested in a subplan.

Ext-ref: MB-65312
Change-Id: I352a0e249e31963e959815e10a9e7d25bed3206f
---
M 
asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-3562.plan
M 
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java
2 files changed, 33 insertions(+), 30 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/48/19448/1

diff --git 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java
 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java
index acbd13e..b1638d4 100644
--- 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java
+++ 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java
@@ -1847,6 +1847,7 @@
             case IF_EXPRESSION:
             case CASE_EXPRESSION:
             case WINDOW_EXPRESSION:
+            case LIST_SLICE_EXPRESSION:
                 return true;
             case QUANTIFIED_EXPRESSION:
                 return ((QuantifiedExpression) expr).getQuantifier() == 
Quantifier.SOME_AND_EVERY;
diff --git 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-3562.plan
 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-3562.plan
index fc97335..2653643 100644
--- 
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-3562.plan
+++ 
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/query-ASTERIXDB-3562.plan
@@ -4,35 +4,19 @@
   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
     project ([$$17])
     -- STREAM_PROJECT  |PARTITIONED|
-      assign [$$17] <- [{"f_1": $$14, "f_2": $$16}]
+      assign [$$17] <- [{"f_1": array-slice($$18, 0, 1), "f_2": 
array-slice($$18, 0, 2)}]
       -- ASSIGN  |PARTITIONED|
-        project ([$$14, $$16])
+        project ([$$18])
         -- STREAM_PROJECT  |PARTITIONED|
-          subplan {
-                    assign [$$16] <- [array-slice($$19, 0, 2)] [cardinality: 
0.0, op-cost: 0.0, total-cost: 0.0]
-                    -- ASSIGN  |LOCAL|
-                      nested tuple source [cardinality: 0.0, op-cost: 0.0, 
total-cost: 0.0]
-                      -- NESTED_TUPLE_SOURCE  |LOCAL|
-                 }
-          -- SUBPLAN  |PARTITIONED|
-            subplan {
-                      assign [$$14] <- [array-slice($$19, 0, 1)] [cardinality: 
0.0, op-cost: 0.0, total-cost: 0.0]
-                      -- ASSIGN  |LOCAL|
-                        nested tuple source [cardinality: 0.0, op-cost: 0.0, 
total-cost: 0.0]
-                        -- NESTED_TUPLE_SOURCE  |LOCAL|
-                   }
-            -- SUBPLAN  |PARTITIONED|
-              project ([$$19])
-              -- STREAM_PROJECT  |PARTITIONED|
-                assign [$$19] <- [$$collection1.getField("array1")]
-                -- ASSIGN  |PARTITIONED|
-                  project ([$$collection1])
-                  -- STREAM_PROJECT  |PARTITIONED|
-                    exchange
-                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                      data-scan []<-[$$18, $$collection1] <- test.collection1
-                      -- DATASOURCE_SCAN  |PARTITIONED|
-                        exchange
-                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                          empty-tuple-source
-                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
\ No newline at end of file
+          assign [$$18] <- [$$collection1.getField("array1")]
+          -- ASSIGN  |PARTITIONED|
+            project ([$$collection1])
+            -- STREAM_PROJECT  |PARTITIONED|
+              exchange
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                data-scan []<-[$$19, $$collection1] <- test.collection1
+                -- DATASOURCE_SCAN  |PARTITIONED|
+                  exchange
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    empty-tuple-source
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
\ No newline at end of file

--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19448
To unsubscribe, or for help writing mail filters, visit 
https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: neo
Gerrit-Change-Id: I352a0e249e31963e959815e10a9e7d25bed3206f
Gerrit-Change-Number: 19448
Gerrit-PatchSet: 1
Gerrit-Owner: Ali Alsuliman <[email protected]>
Gerrit-MessageType: newchange

Reply via email to