fix: reject GEOMETRY and TIMESTAMPTZ in STRUCT [2.6] (#44938)

issue: https://github.com/milvus-io/milvus/issues/44930
pr: https://github.com/milvus-io/milvus/pull/44937

Signed-off-by: SpadeA <tangchenjie1210@gmail.com>
This commit is contained in:
Spade A 2025-10-20 10:34:03 +08:00 committed by GitHub
parent 1ff0d5d47d
commit 94c3f114eb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 4 additions and 9 deletions

View File

@ -654,13 +654,9 @@ func ValidateFieldsInStruct(field *schemapb.FieldSchema, schema *schemapb.Collec
return fmt.Errorf("Nested array is not supported %s", field.Name)
}
if field.ElementType == schemapb.DataType_JSON {
return fmt.Errorf("JSON is not supported for fields in struct, fieldName = %s", field.Name)
}
if field.DataType == schemapb.DataType_Array {
if typeutil.IsVectorType(field.GetElementType()) {
return fmt.Errorf("Inconsistent schema: element type of array field %s is a vector type", field.Name)
if err := validateElementType(field.GetElementType()); err != nil {
return err
}
} else {
// TODO(SpadeA): only support float vector now

View File

@ -3908,7 +3908,7 @@ func TestValidateFieldsInStruct(t *testing.T) {
}
err := ValidateFieldsInStruct(field, schema)
assert.Error(t, err)
assert.Contains(t, err.Error(), "JSON is not supported for fields in struct")
assert.Contains(t, err.Error(), "is not supported")
})
t.Run("nested array not supported", func(t *testing.T) {
@ -3940,7 +3940,7 @@ func TestValidateFieldsInStruct(t *testing.T) {
}
err := ValidateFieldsInStruct(field, schema)
assert.Error(t, err)
assert.Contains(t, err.Error(), "element type of array field array_with_vector is a vector type")
assert.Contains(t, err.Error(), "element type FloatVector is not supported")
})
t.Run("array of vector field with non-vector element type", func(t *testing.T) {
@ -4054,7 +4054,6 @@ func TestValidateFieldsInStruct(t *testing.T) {
schemapb.DataType_Int64,
schemapb.DataType_Float,
schemapb.DataType_Double,
schemapb.DataType_String,
}
for _, dt := range validScalarTypes {