mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-06 17:18:35 +08:00
fix: [GoSDK] Handle row->column input dynamic column (#44626)
Related to #44161 --------- Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
This commit is contained in:
parent
d3dfb90587
commit
bd6eb43617
@ -64,6 +64,10 @@ func (opt *columnBasedDataOption) processInsertColumns(colSchema *entity.Schema,
|
|||||||
// setup dynamic related var
|
// setup dynamic related var
|
||||||
isDynamic := colSchema.EnableDynamicField
|
isDynamic := colSchema.EnableDynamicField
|
||||||
|
|
||||||
|
inputDynamicColumn := lo.FindOrElse(columns, nil, func(col column.Column) bool {
|
||||||
|
return col.FieldData().GetIsDynamic()
|
||||||
|
})
|
||||||
|
|
||||||
// check columns and field matches
|
// check columns and field matches
|
||||||
var rowSize int
|
var rowSize int
|
||||||
mNameField := make(map[string]*entity.Field)
|
mNameField := make(map[string]*entity.Field)
|
||||||
@ -88,6 +92,12 @@ func (opt *columnBasedDataOption) processInsertColumns(colSchema *entity.Schema,
|
|||||||
if !isDynamic {
|
if !isDynamic {
|
||||||
return nil, 0, fmt.Errorf("field %s does not exist in collection %s", col.Name(), colSchema.CollectionName)
|
return nil, 0, fmt.Errorf("field %s does not exist in collection %s", col.Name(), colSchema.CollectionName)
|
||||||
}
|
}
|
||||||
|
if inputDynamicColumn != nil {
|
||||||
|
if col == inputDynamicColumn {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
return nil, 0, errors.New("cannot pass pre-composed dynamic json column with other dynamic columns")
|
||||||
|
}
|
||||||
// add to dynamic column list for further processing
|
// add to dynamic column list for further processing
|
||||||
dynamicColumns = append(dynamicColumns, col)
|
dynamicColumns = append(dynamicColumns, col)
|
||||||
continue
|
continue
|
||||||
@ -139,6 +149,9 @@ func (opt *columnBasedDataOption) processInsertColumns(colSchema *entity.Schema,
|
|||||||
fixedColumn.CompactNullableValues()
|
fixedColumn.CompactNullableValues()
|
||||||
fieldsData = append(fieldsData, fixedColumn.FieldData())
|
fieldsData = append(fieldsData, fixedColumn.FieldData())
|
||||||
}
|
}
|
||||||
|
if inputDynamicColumn != nil {
|
||||||
|
fieldsData = append(fieldsData, inputDynamicColumn.FieldData())
|
||||||
|
}
|
||||||
if len(dynamicColumns) > 0 {
|
if len(dynamicColumns) > 0 {
|
||||||
// use empty column name here
|
// use empty column name here
|
||||||
col, err := opt.mergeDynamicColumns("", rowSize, dynamicColumns)
|
col, err := opt.mergeDynamicColumns("", rowSize, dynamicColumns)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user