From 108b4e30c99c3e3d692b3d58e035333820f408c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Eeden?= Date: Fri, 7 Feb 2025 11:58:40 +0100 Subject: [PATCH] server: Correct the check for Resultset --- mysql/result.go | 7 +++++++ mysql/result_test.go | 19 +++++++++++++++++++ server/resp.go | 2 +- 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 mysql/result_test.go diff --git a/mysql/result.go b/mysql/result.go index 71011c772..d55cb0e27 100644 --- a/mysql/result.go +++ b/mysql/result.go @@ -34,3 +34,10 @@ func (r *Result) Close() { r.Resultset = nil } } + +func (r *Result) HasResultset() bool { + if r.Resultset != nil && len(r.Resultset.Fields) > 0 { + return true + } + return false +} diff --git a/mysql/result_test.go b/mysql/result_test.go new file mode 100644 index 000000000..0c9344f03 --- /dev/null +++ b/mysql/result_test.go @@ -0,0 +1,19 @@ +package mysql + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestHasResultset_false(t *testing.T) { + r := NewResultReserveResultset(0) + b := r.HasResultset() + require.Equal(t, false, b) +} + +func TestHasResultset_true(t *testing.T) { + r := NewResultReserveResultset(1) + b := r.HasResultset() + require.Equal(t, true, b) +} diff --git a/server/resp.go b/server/resp.go index fd14ee54d..12892a6d0 100644 --- a/server/resp.go +++ b/server/resp.go @@ -230,7 +230,7 @@ func (c *Conn) WriteValue(value interface{}) error { case nil: return c.writeOK(nil) case *Result: - if v != nil && v.Resultset != nil { + if v != nil && v.HasResultset() { return c.writeResultset(v.Resultset) } else { return c.writeOK(v)