diff --git a/internal/proxynode/task.go b/internal/proxynode/task.go index 6816cf6d4ce1fc9279b105986d90ecbc00334033..3b64111bbeb97ffb3444d2d04d304c6ed4ba2ccc 100644 --- a/internal/proxynode/task.go +++ b/internal/proxynode/task.go @@ -1481,8 +1481,22 @@ func (rt *RetrieveTask) PreExecute(ctx context.Context) error { zap.Any("requestID", rt.Base.MsgID), zap.Any("requestType", "retrieve")) rt.Base.MsgType = commonpb.MsgType_Retrieve + if rt.retrieve.Ids == nil { + errMsg := "Retrieve ids is nil" + return errors.New(errMsg) + } rt.Ids = rt.retrieve.Ids - rt.OutputFields = rt.retrieve.OutputFields + if len(rt.retrieve.OutputFields) == 0 { + schema, err := globalMetaCache.GetCollectionSchema(ctx, collectionName) + if err != nil { + return err + } + for _, field := range schema.Fields { + rt.OutputFields = append(rt.OutputFields, field.Name) + } + } else { + rt.OutputFields = rt.retrieve.OutputFields + } rt.ResultChannelID = Params.RetrieveChannelNames[0] rt.DbID = 0 // todo(yukun)