>From Preetham Poluparthi <preetha...@apache.org>:

Preetham Poluparthi has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20281 )


Change subject: [ASTERIXDB-3632] Support Array Indexes in Index Advisor
......................................................................

[ASTERIXDB-3632] Support Array Indexes in Index Advisor

Change-Id: I9f7b70321a7ec831b4880437871af9749d93d0c4
---
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.5.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.7.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.3.update.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.4.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.8.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.2.update.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.4.adm
M 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/CBOJoinQueries.xml
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.6.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.8.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.6.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.7.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.5.query.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.1.ddl.sqlpp
14 files changed, 296 insertions(+), 0 deletions(-)



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

diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/CBOJoinQueries.xml
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/CBOJoinQueries.xml
index 67691a3..e914a0b 100644
--- 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/CBOJoinQueries.xml
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/CBOJoinQueries.xml
@@ -46,4 +46,9 @@
             <output-dir compare="Text">join-advise</output-dir>
         </compilation-unit>
     </test-case>
+    <test-case FilePath="cbo-join/index-advisor">
+        <compilation-unit name="array-simple-advise">
+            <output-dir compare="Text">array-simple-advise</output-dir>
+        </compilation-unit>
+    </test-case>
 </test-group>
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.1.ddl.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.1.ddl.sqlpp
new file mode 100644
index 0000000..c57565f
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.1.ddl.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+drop dataverse test if exists;
+create dataverse test;
+use test;
+
+CREATE DATASET A PRIMARY KEY ( a_0 : integer);
+
+CREATE INDEX A_idx
+ON A (UNNEST categories:STRING)
+EXCLUDE UNKNOWN KEY;
\ No newline at end of file
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.2.update.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.2.update.sqlpp
new file mode 100644
index 0000000..7872a09
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.2.update.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+use test;
+
+INSERT INTO A(
+    SELECT VALUE    {"a_0": i, "a_1": i%20 , "a_2" : i , "categories": 
["Drink"] }
+    FROM range(1, 1000) i
+);
+
+INSERT INTO A(
+    SELECT VALUE    {"a_0": i, "a_1": i%20 , "a_2" : i , "categories": 
["Food"] }
+    FROM range(1001, 1003) i
+);
+
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.3.update.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.3.update.sqlpp
new file mode 100644
index 0000000..d8d3c91
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.3.update.sqlpp
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+use test;
+
+
+ANALYZE DATASET A with {"sample": "high", "sample-seed": 2};
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.4.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.4.query.sqlpp
new file mode 100644
index 0000000..ffbe337
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.4.query.sqlpp
@@ -0,0 +1,40 @@
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+use test;
+
+--     distribute result [$$19] [cardinality: 0.0, doc-size: 0.0, op-cost: 
0.0, total-cost: 0.0] -- |UNPARTITIONED|
+--   project ([$$19]) [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, 
total-cost: 0.0] -- |UNPARTITIONED|
+--     assign [$$19] <- [{"p": $$p}] [cardinality: 0.0, doc-size: 0.0, 
op-cost: 0.0, total-cost: 0.0] -- |UNPARTITIONED|
+-- select ($$17) [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 
0.0] -- |UNPARTITIONED|
+--         subplan {
+--                   aggregate [$$17] <- [non-empty-stream()] [cardinality: 
0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] -- |UNPARTITIONED|
+-- select (eq("Food", $#1)) [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, 
total-cost: 0.0] -- |UNPARTITIONED|
+--                       unnest $#1 <- 
scan-collection($$p.getField("categories")) [cardinality: 0.0, doc-size: 0.0, 
op-cost: 0.0, total-cost: 0.0] -- |UNPARTITIONED|
+--                         nested tuple source [cardinality: 0.0, doc-size: 
0.0, op-cost: 0.0, total-cost: 0.0] -- |UNPARTITIONED|
+--                } [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, 
total-cost: 0.0] -- |UNPARTITIONED|
+--           unnest $$p <- dataset("Default", "Default", "A", false) 
[cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] -- 
|UNPARTITIONED|
+--             empty-tuple-source [cardinality: 0.0, doc-size: 0.0, op-cost: 
0.0, total-cost: 0.0] -- |UNPARTITIONED|
+
+
+ADVISE
+SELECT p
+FROM products p
+WHERE "Food" IN p.categories;
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.5.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.5.query.sqlpp
new file mode 100644
index 0000000..e828c05
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.5.query.sqlpp
@@ -0,0 +1,40 @@
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+use test;
+
+
+--     distribute result [$$28] [cardinality: 0.0, doc-size: 0.0, op-cost: 
0.0, total-cost: 0.0] -- |UNPARTITIONED|
+--   project ([$$28]) [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, 
total-cost: 0.0] -- |UNPARTITIONED|
+--     assign [$$28] <- [{"p": $$p}] [cardinality: 0.0, doc-size: 0.0, 
op-cost: 0.0, total-cost: 0.0] -- |UNPARTITIONED|
+-- select ($$26) [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 
0.0] -- |UNPARTITIONED|
+--         subplan {
+--                   aggregate [$$26] <- [non-empty-stream()] [cardinality: 
0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] -- |UNPARTITIONED|
+-- select (eq($$c, "Food")) [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, 
total-cost: 0.0] -- |UNPARTITIONED|
+--                       unnest $$c <- 
scan-collection($$p.getField("categories")) [cardinality: 0.0, doc-size: 0.0, 
op-cost: 0.0, total-cost: 0.0] -- |UNPARTITIONED|
+--                         nested tuple source [cardinality: 0.0, doc-size: 
0.0, op-cost: 0.0, total-cost: 0.0] -- |UNPARTITIONED|
+--                } [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, 
total-cost: 0.0] -- |UNPARTITIONED|
+--           unnest $$p <- dataset("Default", "Default", "A", false) 
[cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] -- 
|UNPARTITIONED|
+--             empty-tuple-source [cardinality: 0.0, doc-size: 0.0, op-cost: 
0.0, total-cost: 0.0] -- |UNPARTITIONED|
+
+ADVISE
+SELECT p
+FROM products p
+WHERE SOME c IN p.categories SATISFIES c = "Food";
\ No newline at end of file
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.6.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.6.query.sqlpp
new file mode 100644
index 0000000..c1a6393
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.6.query.sqlpp
@@ -0,0 +1,41 @@
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+use test;
+
+
+--     distribute result [$$36] [cardinality: 0.0, doc-size: 0.0, op-cost: 
0.0, total-cost: 0.0] -- |UNPARTITIONED|
+--   project ([$$36]) [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, 
total-cost: 0.0] -- |UNPARTITIONED|
+--     assign [$$36] <- [{"o": $$o}] [cardinality: 0.0, doc-size: 0.0, 
op-cost: 0.0, total-cost: 0.0] -- |UNPARTITIONED|
+-- select (and(gt(len($$o.getField("items")), 0), $$33)) [cardinality: 0.0, 
doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] -- |UNPARTITIONED|
+--         subplan {
+--                   aggregate [$$33] <- [empty-stream()] [cardinality: 0.0, 
doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] -- |UNPARTITIONED|
+-- select (not(if-missing-or-null(and(gt($$i.getField("qty"), 100), 
lt($$i.getField("price"), 5.0)), false))) [cardinality: 0.0, doc-size: 0.0, 
op-cost: 0.0, total-cost: 0.0] -- |UNPARTITIONED|
+--                       unnest $$i <- scan-collection($$o.getField("items")) 
[cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] -- 
|UNPARTITIONED|
+--                         nested tuple source [cardinality: 0.0, doc-size: 
0.0, op-cost: 0.0, total-cost: 0.0] -- |UNPARTITIONED|
+--                } [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, 
total-cost: 0.0] -- |UNPARTITIONED|
+--           unnest $$o <- dataset("Default", "Default", "A", false) 
[cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] -- 
|UNPARTITIONED|
+--             empty-tuple-source [cardinality: 0.0, doc-size: 0.0, op-cost: 
0.0, total-cost: 0.0] -- |UNPARTITIONED|
+
+ADVISE
+SELECT o
+FROM orders o
+WHERE LEN(o.items) > 0 AND
+(EVERY i IN o.items SATISFIES i.qty > 100 AND i.price < 5.00);
\ No newline at end of file
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.7.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.7.query.sqlpp
new file mode 100644
index 0000000..32205f1
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.7.query.sqlpp
@@ -0,0 +1,36 @@
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+use test;
+
+
+--     distribute result [$$27] [cardinality: 0.0, doc-size: 0.0, op-cost: 
0.0, total-cost: 0.0] -- |UNPARTITIONED|
+--   project ([$$27]) [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, 
total-cost: 0.0] -- |UNPARTITIONED|
+--     distinct ([$$27]) [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, 
total-cost: 0.0] -- |UNPARTITIONED|
+--       assign [$$27] <- [{"p": $$p}] [cardinality: 0.0, doc-size: 0.0, 
op-cost: 0.0, total-cost: 0.0] -- |UNPARTITIONED|
+-- select (eq($$c, "Food")) [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, 
total-cost: 0.0] -- |UNPARTITIONED|
+--           unnest $$c <- scan-collection($$p.getField("categories")) 
[cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] -- 
|UNPARTITIONED|
+--             unnest $$p <- dataset("Default", "Default", "A", false) 
[cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] -- 
|UNPARTITIONED|
+--               empty-tuple-source [cardinality: 0.0, doc-size: 0.0, op-cost: 
0.0, total-cost: 0.0] -- |UNPARTITIONED|
+
+ADVISE
+SELECT DISTINCT p
+FROM products p, p.categories c
+WHERE c = "Food";
\ No newline at end of file
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.8.query.sqlpp
 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.8.query.sqlpp
new file mode 100644
index 0000000..42d5359
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/cbo-join/index-advisor/array-simple-advise/array-simple-advise.8.query.sqlpp
@@ -0,0 +1,36 @@
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+use test;
+
+
+--    distribute result [$$31] [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, 
total-cost: 0.0] -- |UNPARTITIONED|
+--   project ([$$31]) [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, 
total-cost: 0.0] -- |UNPARTITIONED|
+--     distinct ([$$31]) [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, 
total-cost: 0.0] -- |UNPARTITIONED|
+--       assign [$$31] <- [{"o": $$o}] [cardinality: 0.0, doc-size: 0.0, 
op-cost: 0.0, total-cost: 0.0] -- |UNPARTITIONED|
+-- select (and(gt($$i.getField("qty"), 100), gt($$i.getField("price"), 0))) 
[cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] -- 
|UNPARTITIONED|
+--           unnest $$i <- scan-collection($$o.getField("items")) 
[cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] -- 
|UNPARTITIONED|
+--             unnest $$o <- dataset("Default", "Default", "A", false) 
[cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] -- 
|UNPARTITIONED|
+--               empty-tuple-source [cardinality: 0.0, doc-size: 0.0, op-cost: 
0.0, total-cost: 0.0] -- |UNPARTITIONED|
+
+ADVISE
+SELECT DISTINCT o
+FROM orders o, o.items i
+WHERE i.qty > 100 AND i.price > 0;
\ No newline at end of file
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.4.adm
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.4.adm
new file mode 100644
index 0000000..55150de
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.4.adm
@@ -0,0 +1 @@
+[{"#operator":"Advise","advice":{"#operator":"IndexAdvice","adviseinfo":{"current_indexes":[{"index_statement":"CREATE
 INDEX idx_a_1 ON 
`Default`.`test`.`A`(`a_1`);"}],"recommended_indexes":{"indexes":[{"index_statement":"CREATE
 INDEX idx_b_2 ON `Default`.`test`.`B`(`b_2`);"}]}}}}]
\ No newline at end of file
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.5.adm
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.5.adm
new file mode 100644
index 0000000..55150de
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.5.adm
@@ -0,0 +1 @@
+[{"#operator":"Advise","advice":{"#operator":"IndexAdvice","adviseinfo":{"current_indexes":[{"index_statement":"CREATE
 INDEX idx_a_1 ON 
`Default`.`test`.`A`(`a_1`);"}],"recommended_indexes":{"indexes":[{"index_statement":"CREATE
 INDEX idx_b_2 ON `Default`.`test`.`B`(`b_2`);"}]}}}}]
\ No newline at end of file
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.6.adm
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.6.adm
new file mode 100644
index 0000000..55150de
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.6.adm
@@ -0,0 +1 @@
+[{"#operator":"Advise","advice":{"#operator":"IndexAdvice","adviseinfo":{"current_indexes":[{"index_statement":"CREATE
 INDEX idx_a_1 ON 
`Default`.`test`.`A`(`a_1`);"}],"recommended_indexes":{"indexes":[{"index_statement":"CREATE
 INDEX idx_b_2 ON `Default`.`test`.`B`(`b_2`);"}]}}}}]
\ No newline at end of file
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.7.adm
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.7.adm
new file mode 100644
index 0000000..55150de
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.7.adm
@@ -0,0 +1 @@
+[{"#operator":"Advise","advice":{"#operator":"IndexAdvice","adviseinfo":{"current_indexes":[{"index_statement":"CREATE
 INDEX idx_a_1 ON 
`Default`.`test`.`A`(`a_1`);"}],"recommended_indexes":{"indexes":[{"index_statement":"CREATE
 INDEX idx_b_2 ON `Default`.`test`.`B`(`b_2`);"}]}}}}]
\ No newline at end of file
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.8.adm
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.8.adm
new file mode 100644
index 0000000..55150de
--- /dev/null
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/cbo-join/index-advisor/array-simple-advise/array-simple-advise.8.adm
@@ -0,0 +1 @@
+[{"#operator":"Advise","advice":{"#operator":"IndexAdvice","adviseinfo":{"current_indexes":[{"index_statement":"CREATE
 INDEX idx_a_1 ON 
`Default`.`test`.`A`(`a_1`);"}],"recommended_indexes":{"indexes":[{"index_statement":"CREATE
 INDEX idx_b_2 ON `Default`.`test`.`B`(`b_2`);"}]}}}}]
\ No newline at end of file

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

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I9f7b70321a7ec831b4880437871af9749d93d0c4
Gerrit-Change-Number: 20281
Gerrit-PatchSet: 1
Gerrit-Owner: Preetham Poluparthi <preetha...@apache.org>
Gerrit-MessageType: newchange

Reply via email to