>From Hongyu Shi <[email protected]>:
Hongyu Shi has uploaded this change for review. (
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21669?usp=email )
Change subject: [NO ISSUE][SQL++][COMP] Drop EXCLUDE UNKNOWN KEY from vector DDL
......................................................................
[NO ISSUE][SQL++][COMP] Drop EXCLUDE UNKNOWN KEY from vector DDL
- user model changes: yes
- storage format changes: no
- interface changes: yes
Details:
The parser validated the flag then discarded it and was never written to the
index record nor read back so it had no effect on a vector index. Reject it
now and drop it from the vector tests.
Ext-ref: MB-73669
Change-Id: I4564beb27393fbf1b3efd2f4bb321ed1c10d23b1
---
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-composite-pk/create-index-vtree-composite-pk.4.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-dimension-mismatch/create-index-vtree-dimension-mismatch.4.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-glove/create-index-vtree-glove.4.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-include-filter/create-index-vtree-include-filter.4.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-include-nested/create-index-vtree-include-nested.4.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-invalid-field-type/create-index-vtree-invalid-field-type.1.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-meta-pk/create-index-vtree-meta-pk.4.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-metadata/create-index-vtree-metadata.4.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-metadata/create-index-vtree-metadata.7.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-movie/create-index-vtree-movie.4.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-nested/create-index-vtree-nested.4.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-no-type/create-index-vtree-no-type.04.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.1.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.2.update.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.4.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.5.query.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-similarity-normalize/create-index-vtree-similarity-normalize.4.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-type-mismatch/create-index-vtree-type-mismatch.01.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree/create-index-vtree.4.ddl.sqlpp
M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
M
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java
21 files changed, 30 insertions(+), 47 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/69/21669/1
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-composite-pk/create-index-vtree-composite-pk.4.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-composite-pk/create-index-vtree-composite-pk.4.ddl.sqlpp
index 80ae61f..da946b9 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-composite-pk/create-index-vtree-composite-pk.4.ddl.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-composite-pk/create-index-vtree-composite-pk.4.ddl.sqlpp
@@ -22,5 +22,4 @@
CREATE INDEX idx_cpk_emb
ON MovieCpk(embedding VECTOR) INCLUDE (year)
TYPE VTREE
- WITH { "dimension": 4, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 }
- EXCLUDE UNKNOWN KEY;
+ WITH { "dimension": 4, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 };
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-dimension-mismatch/create-index-vtree-dimension-mismatch.4.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-dimension-mismatch/create-index-vtree-dimension-mismatch.4.ddl.sqlpp
index 2e47142..be86158 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-dimension-mismatch/create-index-vtree-dimension-mismatch.4.ddl.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-dimension-mismatch/create-index-vtree-dimension-mismatch.4.ddl.sqlpp
@@ -23,5 +23,4 @@
CREATE INDEX idx_emb
ON MovieSmall(embedding VECTOR)
TYPE VTREE
- WITH { "dimension": 8, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 }
- EXCLUDE UNKNOWN KEY;
+ WITH { "dimension": 8, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 };
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-glove/create-index-vtree-glove.4.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-glove/create-index-vtree-glove.4.ddl.sqlpp
index 7eec251..4be20a5 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-glove/create-index-vtree-glove.4.ddl.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-glove/create-index-vtree-glove.4.ddl.sqlpp
@@ -20,5 +20,4 @@
USE testg;
CREATE INDEX idx_emb ON GloveReal(embedding VECTOR) TYPE VTREE
- WITH { "dimension": 100, "similarity": "cosine", "num_clusters": 4,
"train_list_fraction": 1.0, "seed": 42 }
- EXCLUDE UNKNOWN KEY;
+ WITH { "dimension": 100, "similarity": "cosine", "num_clusters": 4,
"train_list_fraction": 1.0, "seed": 42 };
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-include-filter/create-index-vtree-include-filter.4.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-include-filter/create-index-vtree-include-filter.4.ddl.sqlpp
index 3fbfdcd..6a841c2 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-include-filter/create-index-vtree-include-filter.4.ddl.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-include-filter/create-index-vtree-include-filter.4.ddl.sqlpp
@@ -21,5 +21,4 @@
ON MovieSmall(embedding VECTOR)
INCLUDE (year)
TYPE VTREE
- WITH { "dimension": 4, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 }
- EXCLUDE UNKNOWN KEY;
+ WITH { "dimension": 4, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 };
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-include-nested/create-index-vtree-include-nested.4.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-include-nested/create-index-vtree-include-nested.4.ddl.sqlpp
index ca1dc2c..b9d1c17 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-include-nested/create-index-vtree-include-nested.4.ddl.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-include-nested/create-index-vtree-include-nested.4.ddl.sqlpp
@@ -22,5 +22,4 @@
ON MovieSmall(embedding VECTOR)
INCLUDE (info.year)
TYPE VTREE
- WITH { "dimension": 4, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 }
- EXCLUDE UNKNOWN KEY;
+ WITH { "dimension": 4, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 };
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-invalid-field-type/create-index-vtree-invalid-field-type.1.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-invalid-field-type/create-index-vtree-invalid-field-type.1.ddl.sqlpp
index d08a19f..0581af5 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-invalid-field-type/create-index-vtree-invalid-field-type.1.ddl.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-invalid-field-type/create-index-vtree-invalid-field-type.1.ddl.sqlpp
@@ -35,5 +35,4 @@
CREATE INDEX idx_emb
ON MovieSmall(embedding VECTOR)
TYPE VTREE
- WITH { "dimension": 4, "similarity": "euclidean" }
- EXCLUDE UNKNOWN KEY;
+ WITH { "dimension": 4, "similarity": "euclidean" };
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-meta-pk/create-index-vtree-meta-pk.4.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-meta-pk/create-index-vtree-meta-pk.4.ddl.sqlpp
index fe652da..4b756ee 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-meta-pk/create-index-vtree-meta-pk.4.ddl.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-meta-pk/create-index-vtree-meta-pk.4.ddl.sqlpp
@@ -22,5 +22,4 @@
CREATE INDEX idx_emb
ON VecMeta(embedding VECTOR)
TYPE VTREE
- WITH { "dimension": 4, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 }
- EXCLUDE UNKNOWN KEY;
+ WITH { "dimension": 4, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 };
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-metadata/create-index-vtree-metadata.4.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-metadata/create-index-vtree-metadata.4.ddl.sqlpp
index bab128d..f33f92a 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-metadata/create-index-vtree-metadata.4.ddl.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-metadata/create-index-vtree-metadata.4.ddl.sqlpp
@@ -36,5 +36,4 @@
"epsilon": 0.5,
"cross_pollination_m": 3,
"rng_factor": 1.5
- }
- EXCLUDE UNKNOWN KEY;
+ };
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-metadata/create-index-vtree-metadata.7.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-metadata/create-index-vtree-metadata.7.ddl.sqlpp
index cbfb58d..36fb7ba 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-metadata/create-index-vtree-metadata.7.ddl.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-metadata/create-index-vtree-metadata.7.ddl.sqlpp
@@ -24,5 +24,4 @@
CREATE INDEX idx_emb
ON MovieSmall(embedding VECTOR)
TYPE VTREE
- WITH { "dimension": 4, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0 }
- EXCLUDE UNKNOWN KEY;
+ WITH { "dimension": 4, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0 };
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-movie/create-index-vtree-movie.4.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-movie/create-index-vtree-movie.4.ddl.sqlpp
index d51f39e..b724a0f 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-movie/create-index-vtree-movie.4.ddl.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-movie/create-index-vtree-movie.4.ddl.sqlpp
@@ -20,5 +20,4 @@
USE testm;
CREATE INDEX idx_emb ON MovieReal(embedding VECTOR) TYPE VTREE
- WITH { "dimension": 384, "similarity": "l2_squared", "num_clusters": 4,
"train_list_fraction": 1.0, "seed": 42 }
- EXCLUDE UNKNOWN KEY;
+ WITH { "dimension": 384, "similarity": "l2_squared", "num_clusters": 4,
"train_list_fraction": 1.0, "seed": 42 };
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-nested/create-index-vtree-nested.4.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-nested/create-index-vtree-nested.4.ddl.sqlpp
index 646da6d..a443fdf 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-nested/create-index-vtree-nested.4.ddl.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-nested/create-index-vtree-nested.4.ddl.sqlpp
@@ -23,5 +23,4 @@
ON MovieNested(meta.embedding VECTOR)
INCLUDE (meta.year)
TYPE VTREE
- WITH { "dimension": 4, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 }
- EXCLUDE UNKNOWN KEY;
+ WITH { "dimension": 4, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 };
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-no-type/create-index-vtree-no-type.04.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-no-type/create-index-vtree-no-type.04.ddl.sqlpp
index 62d88b6..09b0f72 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-no-type/create-index-vtree-no-type.04.ddl.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-no-type/create-index-vtree-no-type.04.ddl.sqlpp
@@ -19,8 +19,7 @@
USE test;
// No TYPE clause. The VECTOR annotation on `embedding` is what makes this a
vector index; the
-// INCLUDE/WITH/EXCLUDE UNKNOWN KEY clauses that only a vector index accepts
must be honoured too.
+// INCLUDE/WITH clauses that only a vector index accepts must be honoured too.
CREATE INDEX idx_emb
ON MovieSmall(embedding VECTOR)
- WITH { "dimension": 4, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 }
- EXCLUDE UNKNOWN KEY;
+ WITH { "dimension": 4, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 };
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.1.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.1.ddl.sqlpp
index afbda1e..029fc74 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.1.ddl.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.1.ddl.sqlpp
@@ -17,8 +17,8 @@
* under the License.
*/
-// An UNDECLARED vector field on an OPEN type is a supported, indexable case.
The vector DDL requires
-// EXCLUDE UNKNOWN KEY, which skips records whose key is missing and indexes
those that have it, so an
+// An UNDECLARED vector field on an OPEN type is a supported, indexable case.
The build skips records
+// whose embedding is missing and indexes those that have it, so an
// open/undeclared embedding present in the records builds and queries
normally (it does not fail with
// "no training vectors"). This test guards that behavior end to end.
DROP DATAVERSE test IF EXISTS;
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.2.update.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.2.update.sqlpp
index 406ce7d..805154b 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.2.update.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.2.update.sqlpp
@@ -20,7 +20,7 @@
USE test;
// Same well-separated data as create-index-vtree (ids 1-15 near origin, 16-30
near [10,10,10,*],
// 4th coord 0.1..1.5 so distances to [0,0,0,0] are unique), EXCEPT the
embedding field is undeclared
-// (the type is OPEN). id 31 has NO embedding -> exercises EXCLUDE UNKNOWN KEY
(must be skipped, not fail).
+// (the type is OPEN). id 31 has NO embedding -> must be skipped by the build,
not fail.
INSERT INTO MovieOpen ([
{"id": 1, "embedding": [0.0, 0.0, 0.0, 0.1]},
{"id": 2, "embedding": [0.0, 0.0, 0.0, 0.2]},
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.4.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.4.ddl.sqlpp
index 6578c39..7ed23de 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.4.ddl.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.4.ddl.sqlpp
@@ -22,5 +22,4 @@
CREATE INDEX idx_emb
ON MovieOpen(embedding VECTOR)
TYPE VTREE
- WITH { "dimension": 4, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 }
- EXCLUDE UNKNOWN KEY;
+ WITH { "dimension": 4, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 };
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.5.query.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.5.query.sqlpp
index 63632d9..c222900 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.5.query.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-open-undeclared/create-index-vtree-open-undeclared.5.query.sqlpp
@@ -18,7 +18,7 @@
*/
USE test;
-// The 3 nearest to [0,0,0,0] are ids 1,2,3; id 31 (no embedding) is excluded
by EXCLUDE UNKNOWN KEY.
+// The 3 nearest to [0,0,0,0] are ids 1,2,3; id 31 (no embedding) is not
indexed.
SELECT VALUE m.id
FROM MovieOpen m
ORDER BY ann_distance(m.embedding, [0.0, 0.0, 0.0, 0.0], "euclidean", 1.0)
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-similarity-normalize/create-index-vtree-similarity-normalize.4.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-similarity-normalize/create-index-vtree-similarity-normalize.4.ddl.sqlpp
index 7855251..f27865c 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-similarity-normalize/create-index-vtree-similarity-normalize.4.ddl.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-similarity-normalize/create-index-vtree-similarity-normalize.4.ddl.sqlpp
@@ -23,5 +23,4 @@
CREATE INDEX idx_emb
ON MovieSmall(embedding VECTOR)
TYPE VTREE
- WITH { "dimension": 4, "similarity": "L2", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 }
- EXCLUDE UNKNOWN KEY;
+ WITH { "dimension": 4, "similarity": "L2", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 };
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-type-mismatch/create-index-vtree-type-mismatch.01.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-type-mismatch/create-index-vtree-type-mismatch.01.ddl.sqlpp
index 2e14d91..f59b311 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-type-mismatch/create-index-vtree-type-mismatch.01.ddl.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree-type-mismatch/create-index-vtree-type-mismatch.01.ddl.sqlpp
@@ -32,5 +32,4 @@
CREATE INDEX idx_emb
ON MovieSmall(embedding VECTOR)
TYPE BTREE
- WITH { "dimension": 4, "similarity": "euclidean" }
- EXCLUDE UNKNOWN KEY;
+ WITH { "dimension": 4, "similarity": "euclidean" };
diff --git
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree/create-index-vtree.4.ddl.sqlpp
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree/create-index-vtree.4.ddl.sqlpp
index d8d6d29..9b3402e 100644
---
a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree/create-index-vtree.4.ddl.sqlpp
+++
b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/vector/create-index-vtree/create-index-vtree.4.ddl.sqlpp
@@ -22,5 +22,4 @@
CREATE INDEX idx_emb
ON MovieSmall(embedding VECTOR)
TYPE VTREE
- WITH { "dimension": 4, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 }
- EXCLUDE UNKNOWN KEY;
+ WITH { "dimension": 4, "similarity": "euclidean", "num_clusters": 2,
"train_list_fraction": 1.0, "seed": 42 };
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
index 111d8c8..1d845a8 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
+++ b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
@@ -1738,13 +1738,13 @@
if (hasVectorField && indexParams != null && !explicitVTree) {
throw new SqlppParseException(getSourceLocation(startStmtToken),
"VECTOR field annotation is not supported for TYPE " +
indexParams.type
- + ". Expected syntax: CREATE INDEX ... (field VECTOR) [TYPE VTREE]
WITH {...} EXCLUDE UNKNOWN KEY");
+ + ". Expected syntax: CREATE INDEX ... (field VECTOR) [TYPE VTREE]
WITH {...}");
}
// Validate: TYPE VTREE requires VECTOR annotation
if (explicitVTree && !hasVectorField) {
throw new SqlppParseException(getSourceLocation(startStmtToken),
- "TYPE VTREE requires VECTOR field annotation. Expected syntax:
CREATE INDEX ... (field VECTOR) TYPE VTREE WITH {...} EXCLUDE UNKNOWN KEY");
+ "TYPE VTREE requires VECTOR field annotation. Expected syntax:
CREATE INDEX ... (field VECTOR) TYPE VTREE WITH {...}");
}
// TYPE VTREE is optional: no other index type accepts a VECTOR field,
so the annotation alone
@@ -1777,10 +1777,10 @@
"CAST (...) is not supported for a vector index (TYPE VTREE)");
}
- // Validate that EXCLUDE UNKNOWN KEY is specified
- if (excludeUnknown == null || !excludeUnknown) {
+ // A vector index neither persists nor reads this flag, so accepting
it would have no effect.
+ if (excludeUnknown != null) {
throw new SqlppParseException(getSourceLocation(startStmtToken),
- "Vector index requires EXCLUDE UNKNOWN KEY");
+ "INCLUDE/EXCLUDE UNKNOWN KEY is not supported for a vector index
(TYPE VTREE)");
}
// Create vector index statement
diff --git
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java
index a881436..c0ecb4e 100644
---
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java
+++
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java
@@ -750,11 +750,10 @@
}
writeSearchKeyType(index);
- // Every index type runs the writers below. A vector index has nothing
to contribute to most of them
- // — it is never enforced, takes no CAST, is not a sample index, and
its EXCLUDE UNKNOWN KEY is
- // implicit — and each writer is already guarded on the index type, so
they no-op for VTREE. Returning
- // early instead used to skip writeIndexCreator as well, which is
*not* a no-op: the creator is read
- // back generically for every index type, so a vector index silently
lost its creator on reload.
+ // The writers below run for every index type, so do not return early
from the switch above. Most
+ // are guarded and no-op for a type that has nothing to contribute,
but writeIndexCreator is not
+ // type-guarded and must always run: the creator is read back
generically, so skipping it makes an
+ // index silently lose its creator on reload.
writeEnforced(index);
writeSearchKeySourceIndicator(index);
writeExcludeUnknownKey(index);
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21669?usp=email
To unsubscribe, or for help writing mail filters, visit
https://asterix-gerrit.ics.uci.edu/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I4564beb27393fbf1b3efd2f4bb321ed1c10d23b1
Gerrit-Change-Number: 21669
Gerrit-PatchSet: 1
Gerrit-Owner: Hongyu Shi <[email protected]>