Skip to content

Commit a1748a3

Browse files
authored
Merge pull request jmoiron#287 from nussjustin/perf-in-slice
Use []byte instead of bytes.Buffer in In
2 parents 7b3aef7 + eae9517 commit a1748a3

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

bind.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ func In(query string, args ...interface{}) (string, []interface{}, error) {
145145
}
146146

147147
newArgs := make([]interface{}, 0, flatArgsCount)
148-
buf := bytes.NewBuffer(make([]byte, 0, len(query)+len(", ?")*flatArgsCount))
148+
buf := make([]byte, 0, len(query)+len(", ?")*flatArgsCount)
149149

150150
var arg, offset int
151151

@@ -171,10 +171,10 @@ func In(query string, args ...interface{}) (string, []interface{}, error) {
171171
}
172172

173173
// write everything up to and including our ? character
174-
buf.WriteString(query[:offset+i+1])
174+
buf = append(buf, query[:offset+i+1]...)
175175

176176
for si := 1; si < argMeta.length; si++ {
177-
buf.WriteString(", ?")
177+
buf = append(buf, ", ?"...)
178178
}
179179

180180
newArgs = appendReflectSlice(newArgs, argMeta.v, argMeta.length)
@@ -185,13 +185,13 @@ func In(query string, args ...interface{}) (string, []interface{}, error) {
185185
offset = 0
186186
}
187187

188-
buf.WriteString(query)
188+
buf = append(buf, query...)
189189

190190
if arg < len(meta) {
191191
return "", nil, errors.New("number of bindVars less than number arguments")
192192
}
193193

194-
return buf.String(), newArgs, nil
194+
return string(buf), newArgs, nil
195195
}
196196

197197
func appendReflectSlice(args []interface{}, v reflect.Value, vlen int) []interface{} {

0 commit comments

Comments
 (0)