@@ -47,7 +47,7 @@ type mysqlConn struct {
47
47
48
48
// Handles parameters set in DSN after the connection is established
49
49
func (mc * mysqlConn ) handleParams () (err error ) {
50
- var cmdSet [] byte
50
+ var cmdSet strings. Builder
51
51
for param , val := range mc .cfg .Params {
52
52
switch param {
53
53
// Charset: character_set_connection, character_set_client, character_set_results
@@ -66,21 +66,21 @@ func (mc *mysqlConn) handleParams() (err error) {
66
66
67
67
// Other system vars accumulated in a single SET command
68
68
default :
69
- if cmdSet == nil {
69
+ if cmdSet . Len () == 0 {
70
70
// Heuristic: 29 chars for each other key=value to reduce reallocations
71
- cmdSet = make ([] byte , 0 , 4 + len (param )+ 1 + len (val )+ 30 * (len (mc .cfg .Params )- 1 ))
72
- cmdSet = append ( cmdSet , "SET " ... )
71
+ cmdSet . Grow ( 4 + len (param ) + 1 + len (val ) + 30 * (len (mc .cfg .Params )- 1 ))
72
+ cmdSet . WriteString ( "SET " )
73
73
} else {
74
- cmdSet = append ( cmdSet , ',' )
74
+ cmdSet . WriteByte ( ',' )
75
75
}
76
- cmdSet = append ( cmdSet , param ... )
77
- cmdSet = append ( cmdSet , '=' )
78
- cmdSet = append ( cmdSet , val ... )
76
+ cmdSet . WriteString ( param )
77
+ cmdSet . WriteByte ( '=' )
78
+ cmdSet . WriteString ( val )
79
79
}
80
80
}
81
81
82
- if cmdSet != nil {
83
- err = mc .exec (string ( cmdSet ))
82
+ if cmdSet . Len () > 0 {
83
+ err = mc .exec (cmdSet . String ( ))
84
84
if err != nil {
85
85
return
86
86
}
0 commit comments