mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-06 17:18:35 +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"
|
"math"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
|
||||||
|
"github.com/samber/lo"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
|
||||||
"github.com/milvus-io/milvus-proto/go-api/v2/schemapb"
|
"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
|
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 {
|
if fieldSchema.GetDefaultValue() == nil {
|
||||||
err = FillWithNullValue(field, fieldSchema, numRows)
|
err = FillWithNullValue(field, fieldSchema, numRows)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@ -6277,7 +6277,7 @@ func Test_validateUtil_fillWithValue(t *testing.T) {
|
|||||||
assert.True(t, flag)
|
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"}
|
stringData := []string{"a"}
|
||||||
data := []*schemapb.FieldData{
|
data := []*schemapb.FieldData{
|
||||||
{
|
{
|
||||||
@ -6311,6 +6311,44 @@ func Test_validateUtil_fillWithValue(t *testing.T) {
|
|||||||
|
|
||||||
err = v.fillWithValue(data, h, 1)
|
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.Error(t, err)
|
||||||
assert.ErrorIs(t, err, merr.ErrParameterInvalid)
|
assert.ErrorIs(t, err, merr.ErrParameterInvalid)
|
||||||
})
|
})
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user