Fix issue-6143 (#6145)

* Fix issue-6143

Signed-off-by: kun yu <kun.yu@zilliz.com>

* Return error when output_fields contains vector field

Signed-off-by: kun yu <kun.yu@zilliz.com>

* Fix when output_fields contain primarykey

Signed-off-by: kun yu <kun.yu@zilliz.com>

* Add primarykey

Signed-off-by: kun yu <kun.yu@zilliz.com>
pull/6158/head
yukun 2021-06-28 10:12:13 +08:00 committed by GitHub
parent f973456c10
commit effcbc7cb3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 16 additions and 4 deletions

View File

@ -2037,19 +2037,31 @@ func (rt *RetrieveTask) PreExecute(ctx context.Context) error {
}
}
} else {
rt.OutputFields = rt.retrieve.OutputFields
for _, reqField := range rt.retrieve.OutputFields {
findField := false
addPrimaryKey := false
for _, field := range schema.Fields {
if reqField == field.Name {
if field.DataType != schemapb.DataType_FloatVector && field.DataType != schemapb.DataType_BinaryVector {
rt.OutputFields = append(rt.OutputFields, reqField)
if field.DataType == schemapb.DataType_FloatVector || field.DataType == schemapb.DataType_BinaryVector {
errMsg := "Query does not support vector field currently"
return errors.New(errMsg)
}
} else {
if field.IsPrimaryKey {
addPrimaryKey = true
}
findField = true
rt.OutputFields = append(rt.OutputFields, reqField)
} else {
if field.IsPrimaryKey && !addPrimaryKey {
rt.OutputFields = append(rt.OutputFields, field.Name)
addPrimaryKey = true
}
}
}
if !findField {
errMsg := "Field " + reqField + " not exist"
return errors.New(errMsg)
}
}
}