You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by ri...@apache.org on 2026/10/04 10:14:57 UTC

(asterixdb) branch master updated: [ASTERIXDB-3817][COMP] Drop excludeUnknownKey from VectorIndexDetails

This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git


The following commit(s) were added to refs/heads/master by this push:
     new b49cd3437c [ASTERIXDB-3817][COMP] Drop excludeUnknownKey from VectorIndexDetails
b49cd3437c is described below

commit b49cd3437c042bb8fd18c559c232eda3979c8017
Author: Le0shy <le...@gmail.com>
AuthorDate: Sat Sep 5 02:44:33 2026 -0700

    [ASTERIXDB-3817][COMP] Drop excludeUnknownKey from VectorIndexDetails
    
    - user model changes: no
    - storage format changes: no
    - interface changes: yes
    
    Details:
    The EXCLUDE UNKNOWN KEY clause is already dropped in master, so removing
    the field it fed is a clean deletion and does not involve a format
    change on index metadata.
    
    Ext-ref: MB-73194
    Change-Id: I055099e76af12494c11f4b2c55e98b3477ea5647
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21704
    Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Reviewed-by: Ali Alsuliman <al...@gmail.com>
    Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Reviewed-by: Hongyu Shi <le...@gmail.com>
---
 .../asterix/optimizer/rules/cbo/indexadvisor/FakeIndex.java    |  3 +--
 .../org/apache/asterix/app/translator/QueryTranslator.java     |  8 ++------
 .../main/java/org/apache/asterix/metadata/entities/Index.java  | 10 +---------
 .../metadata/entitytupletranslators/IndexTupleTranslator.java  |  4 +---
 .../VectorIndexParametersTupleTranslatorTest.java              |  3 +--
 5 files changed, 6 insertions(+), 22 deletions(-)

diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/indexadvisor/FakeIndex.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/indexadvisor/FakeIndex.java
index c68ab7d8c9..54d5ee5fc2 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/indexadvisor/FakeIndex.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/indexadvisor/FakeIndex.java
@@ -49,8 +49,7 @@ public class FakeIndex extends Index {
         super(databaseName, dataverseName, datasetName, indexName, DatasetConfig.IndexType.VTREE,
                 new VectorIndexDetails(vectorFieldName, includeFieldNames,
                         Collections.nCopies(includeFieldNames.size(), 0),
-                        Collections.nCopies(includeFieldNames.size(), BuiltinType.ANY), false, OptionalBoolean.empty(),
-                        vectorParameters),
+                        Collections.nCopies(includeFieldNames.size(), BuiltinType.ANY), false, vectorParameters),
                 false, false, MetadataUtil.PENDING_NO_OP, Creator.DEFAULT_CREATOR);
     }
 
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
index f1cd96b8db..ff94f0531c 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
@@ -319,7 +319,6 @@ import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory;
 import org.apache.hyracks.storage.am.lsm.common.dataflow.LSMTreeIndexInsertUpdateDeleteOperatorDescriptor;
 import org.apache.hyracks.storage.am.lsm.invertedindex.fulltext.TokenizerCategory;
 import org.apache.hyracks.util.LogRedactionUtil;
-import org.apache.hyracks.util.OptionalBoolean;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -1924,17 +1923,14 @@ public class QueryTranslator extends AbstractLangTranslator implements IStatemen
                     }
                 }
 
-                // excludeUnknownKey is a BTree/Array-index DDL option that does not apply to a vector index;
-                // the vector CREATE INDEX path never sets it, so it is always empty here.
                 // Fix the sizing before the record is written. num_clusters and train_list_fraction are
                 // derived from the per-partition cardinality when the user leaves them out, and the record is
                 // written before any build job runs, so deriving them later would leave the catalog silent
                 // about what the build actually used. Same reason the seed is drawn at DDL time.
                 VectorIndexParameters vectorParameters = VTreeParamsInference.infer(metadataProvider, ds,
                         stmtCreateIndex.getVectorParameters(), warningCollector, sourceLoc);
-                indexDetails =
-                        new Index.VectorIndexDetails(keyFieldNames, includeFieldNames, includeFieldSourceIndicators,
-                                includeFieldTypes, false, OptionalBoolean.empty(), vectorParameters);
+                indexDetails = new Index.VectorIndexDetails(keyFieldNames, includeFieldNames,
+                        includeFieldSourceIndicators, includeFieldTypes, false, vectorParameters);
 
                 Index newIndex = new Index(databaseName, dataverseName, datasetName, indexName, indexType, indexDetails,
                         stmtCreateIndex.isEnforced(), false, MetadataUtil.PENDING_ADD_OP, creator);
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Index.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Index.java
index 481e3f6963..151c2173e0 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Index.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Index.java
@@ -464,17 +464,13 @@ public class Index implements IMetadataEntity<Index>, Comparable<Index> {
 
         private final boolean overrideKeyFieldTypes;
 
-        private final Boolean excludeUnknownKey;
-
         private final VectorIndexParameters vectorParameters;
 
         public VectorIndexDetails(List<String> keyFieldNames, List<List<String>> includeFieldNames,
                 List<Integer> includeFieldSourceIndicators, List<IAType> includeFieldTypes,
-                boolean overrideKeyFieldTypes, OptionalBoolean excludeUnknownKey,
-                VectorIndexParameters vectorParameters) {
+                boolean overrideKeyFieldTypes, VectorIndexParameters vectorParameters) {
             this.keyFieldNames = keyFieldNames;
             this.overrideKeyFieldTypes = overrideKeyFieldTypes;
-            this.excludeUnknownKey = excludeUnknownKey.isEmpty() ? null : excludeUnknownKey.get();
             this.includeFieldNames = includeFieldNames;
             this.includeFieldTypes = includeFieldTypes;
             this.includeFieldSourceIndicators = includeFieldSourceIndicators;
@@ -501,10 +497,6 @@ public class Index implements IMetadataEntity<Index>, Comparable<Index> {
             return includeFieldTypes;
         }
 
-        public OptionalBoolean getExcludeUnknownKey() {
-            return OptionalBoolean.ofNullable(excludeUnknownKey);
-        }
-
         /** The index's validated {@code WITH} parameters; never {@code null}. */
         public VectorIndexParameters getVectorParameters() {
             return vectorParameters;
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 942593b752..3d856ac215 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
@@ -468,7 +468,6 @@ public class IndexTupleTranslator extends AbstractTupleTranslator<Index> {
                         searchElements.stream().map(Pair::getRight).map(List::getFirst).collect(Collectors.toList());
                 keyFieldTypes = searchKeyType.stream().map(List::getFirst).collect(Collectors.toList());
 
-                excludeUnknownKey = OptionalBoolean.empty();
                 castDefaultNull = OptionalBoolean.empty();
                 VectorIndexParameters vectorParameters = VectorIndexParameters.readFields(indexRecord);
 
@@ -499,8 +498,7 @@ public class IndexTupleTranslator extends AbstractTupleTranslator<Index> {
                 }
 
                 indexDetails = new Index.VectorIndexDetails(keyFieldNames.getFirst(), includeFieldNames,
-                        includeFieldSourceIndicators, includeFieldTypes, isOverridingKeyTypes, excludeUnknownKey,
-                        vectorParameters);
+                        includeFieldSourceIndicators, includeFieldTypes, isOverridingKeyTypes, vectorParameters);
                 break;
             case TEXT:
                 keyFieldNames =
diff --git a/asterixdb/asterix-metadata/src/test/java/org/apache/asterix/metadata/entitytupletranslators/VectorIndexParametersTupleTranslatorTest.java b/asterixdb/asterix-metadata/src/test/java/org/apache/asterix/metadata/entitytupletranslators/VectorIndexParametersTupleTranslatorTest.java
index 72d94a3f8d..bb50bb0591 100644
--- a/asterixdb/asterix-metadata/src/test/java/org/apache/asterix/metadata/entitytupletranslators/VectorIndexParametersTupleTranslatorTest.java
+++ b/asterixdb/asterix-metadata/src/test/java/org/apache/asterix/metadata/entitytupletranslators/VectorIndexParametersTupleTranslatorTest.java
@@ -57,7 +57,6 @@ import org.apache.asterix.om.vector.VectorIndexParameters;
 import org.apache.asterix.runtime.compression.CompressionManager;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
-import org.apache.hyracks.util.OptionalBoolean;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -204,7 +203,7 @@ public class VectorIndexParametersTupleTranslatorTest {
 
     private static Index.VectorIndexDetails vectorIndexDetails(VectorIndexParameters parameters) {
         return new Index.VectorIndexDetails(Collections.singletonList("embedding"), Collections.emptyList(),
-                Collections.emptyList(), Collections.emptyList(), false, OptionalBoolean.empty(), parameters);
+                Collections.emptyList(), Collections.emptyList(), false, parameters);
     }
 
     private static VectorIndexParameters roundTrip(VectorIndexParameters parameters)