Skip to content

Commit cbbf7bd

Browse files
author
Reinier Schoof
committed
reuse existing buffer
1 parent 9db4d69 commit cbbf7bd

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

server/resp.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ func (c *Conn) writeResultset(r *Resultset) error {
125125
return err
126126
}
127127

128-
if err := c.writeFieldList(r.Fields); err != nil {
128+
if err := c.writeFieldList(r.Fields, data); err != nil {
129129
return err
130130
}
131131

@@ -144,8 +144,10 @@ func (c *Conn) writeResultset(r *Resultset) error {
144144
return nil
145145
}
146146

147-
func (c *Conn) writeFieldList(fs []*Field) error {
148-
data := make([]byte, 4, 1024)
147+
func (c *Conn) writeFieldList(fs []*Field, data []byte) error {
148+
if data == nil {
149+
data = make([]byte, 4, 1024)
150+
}
149151

150152
for _, v := range fs {
151153
data = data[0:4]
@@ -181,7 +183,7 @@ func (c *Conn) writeValue(value interface{}) error {
181183
return c.writeOK(v)
182184
}
183185
case []*Field:
184-
return c.writeFieldList(v)
186+
return c.writeFieldList(v, nil)
185187
case *Stmt:
186188
return c.writePrepare(v)
187189
default:

server/resp_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ func (t *respConnTestSuite) TestConnWriteFieldList(c *check.C) {
182182

183183
r, err := mysql.BuildSimpleTextResultset([]string{"c"}, [][]interface{}{{"d"}})
184184
c.Assert(err, check.IsNil)
185-
err = conn.writeFieldList(r.Fields)
185+
err = conn.writeFieldList(r.Fields, nil)
186186
c.Assert(err, check.IsNil)
187187

188188
// column length 1

0 commit comments

Comments
 (0)