Luo Chen has uploaded a new change for review.
https://asterix-gerrit.ics.uci.edu/2227
Change subject: [ASTERIXDB-920] Fix BTree Composite Key Search
......................................................................
[ASTERIXDB-920] Fix BTree Composite Key Search
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
When we search a primary BTree with composite keys, we should always add
another select operator to filter out results, unless only the last key
is a range search. The reason is that when we search a BTree, we iterate
from the start index (based on the composite low range) to the end index
(based on the composite high range). However, during the iteration,
there could be a lot of false positives.
This patch fixes this bug by preserving the select operator in case of
composite keys.
Change-Id: I8654e52aec59601c533255cd57c2824612066fc0
---
M
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/BTreeAccessMethod.java
M
asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-join/primary-composite-key-join_01.plan
M
asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-join/primary-composite-key-join_02.plan
M
asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-15.plan
M
asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-16.plan
M
asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-19.plan
M
asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-20.plan
M
asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index-join/primary-composite-key-join_01.plan
M
asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index-join/primary-composite-key-join_02.plan
M
asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-15.plan
M
asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-16.plan
M
asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-19.plan
M
asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-20.plan
M
asterixdb/asterix-app/src/test/resources/optimizerts/results/skip-index/dont-skip-primary-index.plan
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/query-ASTERIXDB-920/query-ASTERIXDB-920.1.ddl.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/query-ASTERIXDB-920/query-ASTERIXDB-920.2.update.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/query-ASTERIXDB-920/query-ASTERIXDB-920.3.query.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/results/dml/query-ASTERIXDB-920/query-ASTERIXDB-920.1.adm
M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
19 files changed, 214 insertions(+), 85 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/27/2227/1
diff --git
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/BTreeAccessMethod.java
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/BTreeAccessMethod.java
index ddc93f8..29d00d0 100644
---
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/BTreeAccessMethod.java
+++
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/BTreeAccessMethod.java
@@ -416,22 +416,21 @@
return null;
}
- // If the select condition contains mixed open/closed intervals on
multiple keys, then we make all intervals
- // closed to obtain a superset of answers and leave the original
selection in place.
+ // if we have composite search keys, we should always need a
post-processing to ensure the correctness
+ // of search results because of the way a BTree is searched, unless
only the last key is a range search.
+ // During a BTree search, we iterate from the start index
+ // (based on the low keys) to the end index (based on the high keys).
During the iteration,
+ // we can encounter a lot of false positives
boolean primaryIndexPostProccessingIsNeeded = false;
- for (int i = 1; i < numSecondaryKeys; ++i) {
- if (lowKeyInclusive[i] != lowKeyInclusive[0]) {
- Arrays.fill(lowKeyInclusive, true);
+ for (int i = 0; i < numSecondaryKeys - 1; i++) {
+ if (!LimitType.EQUAL.equals(lowKeyLimits[i]) ||
!LimitType.EQUAL.equals(highKeyLimits[i])) {
primaryIndexPostProccessingIsNeeded = true;
- break;
}
}
- for (int i = 1; i < numSecondaryKeys; ++i) {
- if (highKeyInclusive[i] != highKeyInclusive[0]) {
- Arrays.fill(highKeyInclusive, true);
- primaryIndexPostProccessingIsNeeded = true;
- break;
- }
+
+ if (primaryIndexPostProccessingIsNeeded) {
+ Arrays.fill(lowKeyInclusive, true);
+ Arrays.fill(highKeyInclusive, true);
}
// determine cases when prefix search could be applied
diff --git
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-join/primary-composite-key-join_01.plan
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-join/primary-composite-key-join_01.plan
index 00b6d92..5814a93 100644
---
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-join/primary-composite-key-join_01.plan
+++
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-join/primary-composite-key-join_01.plan
@@ -3,9 +3,10 @@
-- STREAM_PROJECT |PARTITIONED|
-- ASSIGN |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- BTREE_SEARCH |PARTITIONED|
- -- BROADCAST_EXCHANGE |PARTITIONED|
- -- DATASOURCE_SCAN |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
\ No newline at end of file
+ -- STREAM_SELECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- BTREE_SEARCH |PARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
+ -- DATASOURCE_SCAN |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-join/primary-composite-key-join_02.plan
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-join/primary-composite-key-join_02.plan
index 00b6d92..5814a93 100644
---
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-join/primary-composite-key-join_02.plan
+++
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index-join/primary-composite-key-join_02.plan
@@ -3,9 +3,10 @@
-- STREAM_PROJECT |PARTITIONED|
-- ASSIGN |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- BTREE_SEARCH |PARTITIONED|
- -- BROADCAST_EXCHANGE |PARTITIONED|
- -- DATASOURCE_SCAN |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
\ No newline at end of file
+ -- STREAM_SELECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- BTREE_SEARCH |PARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
+ -- DATASOURCE_SCAN |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-15.plan
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-15.plan
index 6f13ebb..279cc83 100644
---
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-15.plan
+++
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-15.plan
@@ -1,8 +1,9 @@
-- DISTRIBUTE_RESULT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- BTREE_SEARCH |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- ASSIGN |PARTITIONED|
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- BTREE_SEARCH |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-16.plan
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-16.plan
index 6f13ebb..279cc83 100644
---
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-16.plan
+++
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-16.plan
@@ -1,8 +1,9 @@
-- DISTRIBUTE_RESULT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- BTREE_SEARCH |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- ASSIGN |PARTITIONED|
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- BTREE_SEARCH |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-19.plan
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-19.plan
index 6f13ebb..279cc83 100644
---
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-19.plan
+++
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-19.plan
@@ -1,8 +1,9 @@
-- DISTRIBUTE_RESULT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- BTREE_SEARCH |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- ASSIGN |PARTITIONED|
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- BTREE_SEARCH |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-20.plan
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-20.plan
index 6f13ebb..279cc83 100644
---
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-20.plan
+++
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/btree-index/btree-primary-20.plan
@@ -1,8 +1,9 @@
-- DISTRIBUTE_RESULT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- BTREE_SEARCH |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- ASSIGN |PARTITIONED|
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- BTREE_SEARCH |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index-join/primary-composite-key-join_01.plan
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index-join/primary-composite-key-join_01.plan
index bea4cf8..e9588f2 100644
---
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index-join/primary-composite-key-join_01.plan
+++
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index-join/primary-composite-key-join_01.plan
@@ -3,14 +3,17 @@
-- STREAM_PROJECT |PARTITIONED|
-- ASSIGN |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- BTREE_SEARCH |PARTITIONED|
- -- BROADCAST_EXCHANGE |PARTITIONED|
- -- STREAM_PROJECT |PARTITIONED|
- -- ASSIGN |PARTITIONED|
- -- ASSIGN |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- BTREE_SEARCH |PARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- DATASOURCE_SCAN |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- DATASOURCE_SCAN |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index-join/primary-composite-key-join_02.plan
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index-join/primary-composite-key-join_02.plan
index bea4cf8..e9588f2 100644
---
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index-join/primary-composite-key-join_02.plan
+++
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index-join/primary-composite-key-join_02.plan
@@ -3,14 +3,17 @@
-- STREAM_PROJECT |PARTITIONED|
-- ASSIGN |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- BTREE_SEARCH |PARTITIONED|
- -- BROADCAST_EXCHANGE |PARTITIONED|
- -- STREAM_PROJECT |PARTITIONED|
- -- ASSIGN |PARTITIONED|
- -- ASSIGN |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- BTREE_SEARCH |PARTITIONED|
+ -- BROADCAST_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- DATASOURCE_SCAN |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- DATASOURCE_SCAN |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-15.plan
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-15.plan
index 6f13ebb..77ee34d 100644
---
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-15.plan
+++
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-15.plan
@@ -1,8 +1,13 @@
-- DISTRIBUTE_RESULT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- BTREE_SEARCH |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
-- ASSIGN |PARTITIONED|
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- BTREE_SEARCH |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-16.plan
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-16.plan
index 6f13ebb..77ee34d 100644
---
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-16.plan
+++
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-16.plan
@@ -1,8 +1,13 @@
-- DISTRIBUTE_RESULT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- BTREE_SEARCH |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
-- ASSIGN |PARTITIONED|
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- BTREE_SEARCH |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
\ No newline at end of file
diff --git
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-19.plan
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-19.plan
index 6f13ebb..9782637 100644
---
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-19.plan
+++
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-19.plan
@@ -1,8 +1,13 @@
-- DISTRIBUTE_RESULT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- BTREE_SEARCH |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
-- ASSIGN |PARTITIONED|
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- BTREE_SEARCH |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-20.plan
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-20.plan
index 6f13ebb..9782637 100644
---
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-20.plan
+++
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/nested-index/btree-index/btree-primary-20.plan
@@ -1,8 +1,13 @@
-- DISTRIBUTE_RESULT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- BTREE_SEARCH |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
-- ASSIGN |PARTITIONED|
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- STREAM_PROJECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- BTREE_SEARCH |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/skip-index/dont-skip-primary-index.plan
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/skip-index/dont-skip-primary-index.plan
index 6f13ebb..279cc83 100644
---
a/asterixdb/asterix-app/src/test/resources/optimizerts/results/skip-index/dont-skip-primary-index.plan
+++
b/asterixdb/asterix-app/src/test/resources/optimizerts/results/skip-index/dont-skip-primary-index.plan
@@ -1,8 +1,9 @@
-- DISTRIBUTE_RESULT |PARTITIONED|
-- ONE_TO_ONE_EXCHANGE |PARTITIONED|
-- STREAM_PROJECT |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- BTREE_SEARCH |PARTITIONED|
- -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
- -- ASSIGN |PARTITIONED|
- -- EMPTY_TUPLE_SOURCE |PARTITIONED|
+ -- STREAM_SELECT |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- BTREE_SEARCH |PARTITIONED|
+ -- ONE_TO_ONE_EXCHANGE |PARTITIONED|
+ -- ASSIGN |PARTITIONED|
+ -- EMPTY_TUPLE_SOURCE |PARTITIONED|
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/query-ASTERIXDB-920/query-ASTERIXDB-920.1.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/query-ASTERIXDB-920/query-ASTERIXDB-920.1.ddl.sqlpp
new file mode 100644
index 0000000..9ad7c4e
--- /dev/null
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/query-ASTERIXDB-920/query-ASTERIXDB-920.1.ddl.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.
+ */
+/*
+ * Description : This test case is to verify the fix for ASTERIXDB-920
+ : https://issues.apache.org/jira/browse/ASTERIXDB-920
+ * Expected Res : Success
+ * Date : 14 Dec 2017
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+
+use test;
+
+create type FacebookMessageType as closed {
+messageid: int32,
+authorid: int32,
+in_response_to: int32?,
+sender_location: point?,
+message: string
+};
+
+create dataset FacebookMessages(FacebookMessageType)
+primary key messageid, authorid;
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/query-ASTERIXDB-920/query-ASTERIXDB-920.2.update.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/query-ASTERIXDB-920/query-ASTERIXDB-920.2.update.sqlpp
new file mode 100644
index 0000000..8910d57
--- /dev/null
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/query-ASTERIXDB-920/query-ASTERIXDB-920.2.update.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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 FacebookMessages
+{"messageid":5,"authorid":6,"in_response_to":2,"sender_location":point("34.7,90.76"),
+"message":" love sprint the customization is mind-blowing"}
+;
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/query-ASTERIXDB-920/query-ASTERIXDB-920.3.query.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/query-ASTERIXDB-920/query-ASTERIXDB-920.3.query.sqlpp
new file mode 100644
index 0000000..fa01455
--- /dev/null
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/dml/query-ASTERIXDB-920/query-ASTERIXDB-920.3.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * 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;
+
+select value msg
+from FacebookMessages msg
+where msg.messageid>5
+and msg.authorid>0;
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/query-ASTERIXDB-920/query-ASTERIXDB-920.1.adm
b/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/query-ASTERIXDB-920/query-ASTERIXDB-920.1.adm
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/results/dml/query-ASTERIXDB-920/query-ASTERIXDB-920.1.adm
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
index bc919db..f14ea78 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
@@ -2241,6 +2241,11 @@
<output-dir compare="Text">upsert-return-custom-result</output-dir>
</compilation-unit>
</test-case>
+ <test-case FilePath="dml">
+ <compilation-unit name="query-ASTERIXDB-920">
+ <output-dir compare="Text">query-ASTERIXDB-920</output-dir>
+ </compilation-unit>
+ </test-case>
</test-group>
<test-group name="employee">
<test-case FilePath="employee">
--
To view, visit https://asterix-gerrit.ics.uci.edu/2227
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I8654e52aec59601c533255cd57c2824612066fc0
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Luo Chen <[email protected]>