mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-07 01:28:27 +08:00
fix: Adapt all valid nullable data without valid data flags (#44296)
Related to milvus-io/pymilvus#2971 --------- Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
This commit is contained in:
parent
18371773dd
commit
fd83cae0fd
@ -5,6 +5,7 @@ import (
|
||||
"math"
|
||||
"reflect"
|
||||
|
||||
"github.com/samber/lo"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"github.com/milvus-io/milvus-proto/go-api/v2/schemapb"
|
||||
@ -339,6 +340,11 @@ func (v *validateUtil) fillWithValue(data []*schemapb.FieldData, schema *typeuti
|
||||
return err
|
||||
}
|
||||
|
||||
// adapt all valid data for nullable column
|
||||
if fieldSchema.GetNullable() && len(field.GetValidData()) == 0 {
|
||||
field.ValidData = lo.RepeatBy(numRows, func(i int) bool { return true })
|
||||
}
|
||||
|
||||
if fieldSchema.GetDefaultValue() == nil {
|
||||
err = FillWithNullValue(field, fieldSchema, numRows)
|
||||
if err != nil {
|
||||
|
||||
@ -6277,7 +6277,7 @@ func Test_validateUtil_fillWithValue(t *testing.T) {
|
||||
assert.True(t, flag)
|
||||
})
|
||||
|
||||
t.Run("check the length of ValidData when not has default value", func(t *testing.T) {
|
||||
t.Run("all_valid_nullable_data_without_validdata", func(t *testing.T) {
|
||||
stringData := []string{"a"}
|
||||
data := []*schemapb.FieldData{
|
||||
{
|
||||
@ -6311,6 +6311,44 @@ func Test_validateUtil_fillWithValue(t *testing.T) {
|
||||
|
||||
err = v.fillWithValue(data, h, 1)
|
||||
|
||||
assert.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("nullable_data_size_not_match", func(t *testing.T) {
|
||||
stringData := []string{"a"}
|
||||
data := []*schemapb.FieldData{
|
||||
{
|
||||
FieldName: "test",
|
||||
Type: schemapb.DataType_VarChar,
|
||||
Field: &schemapb.FieldData_Scalars{
|
||||
Scalars: &schemapb.ScalarField{
|
||||
Data: &schemapb.ScalarField_StringData{
|
||||
StringData: &schemapb.StringArray{
|
||||
Data: stringData,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
ValidData: []bool{false},
|
||||
},
|
||||
}
|
||||
|
||||
schema := &schemapb.CollectionSchema{
|
||||
Fields: []*schemapb.FieldSchema{
|
||||
{
|
||||
Name: "test",
|
||||
DataType: schemapb.DataType_VarChar,
|
||||
Nullable: true,
|
||||
},
|
||||
},
|
||||
}
|
||||
h, err := typeutil.CreateSchemaHelper(schema)
|
||||
assert.NoError(t, err)
|
||||
|
||||
v := newValidateUtil()
|
||||
|
||||
err = v.fillWithValue(data, h, 1)
|
||||
|
||||
assert.Error(t, err)
|
||||
assert.ErrorIs(t, err, merr.ErrParameterInvalid)
|
||||
})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user