>From Hongyu Shi <[email protected]>:

Hongyu Shi has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21704?usp=email )


Change subject: [ASTERIXDB-3817][COMP] Drop excludeUnknownKey from 
VectorIndexDetails
......................................................................

[ASTERIXDB-3817][COMP] Drop excludeUnknownKey from VectorIndexDetails

- user model changes: no
- storage format changes: no
- interface changes: yes

Details:
Now that the mandatory EXCLUDE UNKNOWN KEY clause is gone, the field it
fed is deprecated. It was never written to the index record for a vector
index so removing it is a clean deletion rather than a format change on
index metadata.

Ext-ref: MB-73669
Change-Id: I055099e76af12494c11f4b2c55e98b3477ea5647
---
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
M 
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Index.java
M 
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java
M 
asterixdb/asterix-metadata/src/test/java/org/apache/asterix/metadata/entitytupletranslators/VectorIndexParametersTupleTranslatorTest.java
4 files changed, 4 insertions(+), 19 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/04/21704/1

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 a7a42b5..a55903b 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
@@ -316,7 +316,6 @@
 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;
@@ -1912,11 +1911,8 @@
                     }
                 }

-                // 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.
                 indexDetails = new Index.VectorIndexDetails(keyFieldNames, 
includeFieldNames,
-                        includeFieldSourceIndicators, includeFieldTypes, 
false, OptionalBoolean.empty(),
-                        stmtCreateIndex.getVectorParameters());
+                        includeFieldSourceIndicators, includeFieldTypes, 
false, stmtCreateIndex.getVectorParameters());

                 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 a5aacb7..b3992c0 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 @@

         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 @@
             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 c0ecb4e..4112b69 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
@@ -469,7 +469,6 @@
                         
searchElements.stream().map(Pair::getSecond).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);

@@ -500,8 +499,7 @@
                 }

                 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 78ffa7f..98da021 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
@@ -56,7 +56,6 @@
 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.apache.hyracks.util.annotations.AiProvenance;
 import org.junit.Assert;
 import org.junit.Test;
@@ -195,7 +194,7 @@

     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)

--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21704?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: I055099e76af12494c11f4b2c55e98b3477ea5647
Gerrit-Change-Number: 21704
Gerrit-PatchSet: 1
Gerrit-Owner: Hongyu Shi <[email protected]>

Reply via email to