From 4c6823df3e5bf1d6b035c30ca141cf499ebe2469 Mon Sep 17 00:00:00 2001
From: Congqi Xia <congqi.xia@zilliz.com>
Date: Wed, 8 Nov 2023 18:35:25 +0800
Subject: [PATCH] Fix QueryByPKs composes wrong expr when pk data has spaces

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
---
 client/data.go                | 4 ++--
 test/testcases/upsert_test.go | 1 -
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/client/data.go b/client/data.go
index 106f53f3..040a7bd7 100644
--- a/client/data.go
+++ b/client/data.go
@@ -183,11 +183,11 @@ func PKs2Expr(backName string, ids entity.Column) string {
 	case entity.FieldTypeInt64:
 		expr = fmt.Sprintf("%s in %s", pkName, strings.Join(strings.Fields(fmt.Sprint(ids.FieldData().GetScalars().GetLongData().GetData())), ","))
 	case entity.FieldTypeVarChar:
-		data := ids.FieldData().GetScalars().GetData().(*schemapb.ScalarField_StringData).StringData.Data
+		data := ids.FieldData().GetScalars().GetData().(*schemapb.ScalarField_StringData).StringData.GetData()
 		for i := range data {
 			data[i] = fmt.Sprintf("\"%s\"", data[i])
 		}
-		expr = fmt.Sprintf("%s in %s", pkName, strings.Join(strings.Fields(fmt.Sprint(data)), ","))
+		expr = fmt.Sprintf("%s in [%s]", pkName, strings.Join(data, ","))
 	}
 	return expr
 }
diff --git a/test/testcases/upsert_test.go b/test/testcases/upsert_test.go
index af563360..83b30975 100644
--- a/test/testcases/upsert_test.go
+++ b/test/testcases/upsert_test.go
@@ -120,7 +120,6 @@ func TestUpsertAutoID(t *testing.T) {
 }
 
 func TestUpsertVarcharPk(t *testing.T) {
-	t.Skip("https://github.com/milvus-io/milvus-sdk-go/issues/612")
 	/*
 		test upsert varchar pks
 		upsert after query