mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-07 01:28:27 +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
|
||||
isDynamic := colSchema.EnableDynamicField
|
||||
|
||||
inputDynamicColumn := lo.FindOrElse(columns, nil, func(col column.Column) bool {
|
||||
return col.FieldData().GetIsDynamic()
|
||||
})
|
||||
|
||||
// check columns and field matches
|
||||
var rowSize int
|
||||
mNameField := make(map[string]*entity.Field)
|
||||
@ -88,6 +92,12 @@ func (opt *columnBasedDataOption) processInsertColumns(colSchema *entity.Schema,
|
||||
if !isDynamic {
|
||||
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
|
||||
dynamicColumns = append(dynamicColumns, col)
|
||||
continue
|
||||
@ -139,6 +149,9 @@ func (opt *columnBasedDataOption) processInsertColumns(colSchema *entity.Schema,
|
||||
fixedColumn.CompactNullableValues()
|
||||
fieldsData = append(fieldsData, fixedColumn.FieldData())
|
||||
}
|
||||
if inputDynamicColumn != nil {
|
||||
fieldsData = append(fieldsData, inputDynamicColumn.FieldData())
|
||||
}
|
||||
if len(dynamicColumns) > 0 {
|
||||
// use empty column name here
|
||||
col, err := opt.mergeDynamicColumns("", rowSize, dynamicColumns)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user