From e65c30bea69ab0a5286444dd7dcb1508650b0dce Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B0=8F=E9=BB=91?= <zhangshuai@sudoprivacy.com>
Date: Fri, 26 Aug 2022 12:53:34 +0800
Subject: [PATCH 1/3] fix: fix client field list

---
 client/conn.go | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/client/conn.go b/client/conn.go
index bcbb6f58c..5b65af892 100644
--- a/client/conn.go
+++ b/client/conn.go
@@ -328,22 +328,19 @@ func (c *Conn) FieldList(table string, wildcard string) ([]*Field, error) {
 		return nil, errors.Trace(err)
 	}
 
-	data, err := c.ReadPacket()
-	if err != nil {
-		return nil, errors.Trace(err)
-	}
-
 	fs := make([]*Field, 0, 4)
 	var f *Field
-	if data[0] == ERR_HEADER {
-		return nil, c.handleErrorPacket(data)
-	}
-
 	for {
-		if data, err = c.ReadPacket(); err != nil {
+		data, err := c.ReadPacket()
+		if err != nil {
 			return nil, errors.Trace(err)
 		}
 
+		// ERR Packet
+		if data[0] == ERR_HEADER {
+			return nil, c.handleErrorPacket(data)
+		}
+
 		// EOF Packet
 		if c.isEOFPacket(data) {
 			return fs, nil

From 0698778ae87d39a041c708a9e273e128ead011d8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B0=8F=E9=BB=91?= <zhangshuai@sudoprivacy.com>
Date: Fri, 26 Aug 2022 13:22:44 +0800
Subject: [PATCH 2/3] fix: fix client field list

---
 client/conn_test.go | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/client/conn_test.go b/client/conn_test.go
index 338bb6ae3..f09c989a0 100644
--- a/client/conn_test.go
+++ b/client/conn_test.go
@@ -82,6 +82,12 @@ func (s *connTestSuite) testExecute_DropTable(c *C) {
 	c.Assert(err, IsNil)
 }
 
+func (s *clientTestSuite) TestFieldList(c *C) {
+	fields, err := s.c.FieldList(testExecuteSelectStreamingTablename, "")
+	c.Assert(err, IsNil)
+	c.Assert(fields, HasLen, 2)
+}
+
 func (s *connTestSuite) TestExecuteMultiple(c *C) {
 	queries := []string{
 		`INSERT INTO ` + testExecuteSelectStreamingTablename + ` (id, str) VALUES (999, "executemultiple")`,

From 18d47cdb8e7e43a99d405dc7d9fd74b2da987950 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B0=8F=E9=BB=91?= <zhangshuai@sudoprivacy.com>
Date: Fri, 26 Aug 2022 13:34:51 +0800
Subject: [PATCH 3/3] fix: fix client field list

---
 client/conn_test.go | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/client/conn_test.go b/client/conn_test.go
index f09c989a0..e6979cea8 100644
--- a/client/conn_test.go
+++ b/client/conn_test.go
@@ -82,7 +82,7 @@ func (s *connTestSuite) testExecute_DropTable(c *C) {
 	c.Assert(err, IsNil)
 }
 
-func (s *clientTestSuite) TestFieldList(c *C) {
+func (s *connTestSuite) TestFieldList(c *C) {
 	fields, err := s.c.FieldList(testExecuteSelectStreamingTablename, "")
 	c.Assert(err, IsNil)
 	c.Assert(fields, HasLen, 2)