>From Preetham Poluparthi <[email protected]>:
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 <[email protected]>
Gerrit-MessageType: newchange