>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]>

Reply via email to