@@ -47,7 +47,7 @@ type mysqlConn struct {
4747
4848// Handles parameters set in DSN after the connection is established
4949func (mc * mysqlConn ) handleParams () (err error ) {
50- var cmdSet [] byte
50+ var cmdSet strings. Builder
5151 for param , val := range mc .cfg .Params {
5252 switch param {
5353 // Charset: character_set_connection, character_set_client, character_set_results
@@ -66,21 +66,21 @@ func (mc *mysqlConn) handleParams() (err error) {
6666
6767 // Other system vars accumulated in a single SET command
6868 default :
69- if cmdSet == nil {
69+ if cmdSet . Len () == 0 {
7070 // 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 " )
7373 } else {
74- cmdSet = append ( cmdSet , ',' )
74+ cmdSet . WriteByte ( ',' )
7575 }
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 )
7979 }
8080 }
8181
82- if cmdSet != nil {
83- err = mc .exec (string ( cmdSet ))
82+ if cmdSet . Len () > 0 {
83+ err = mc .exec (cmdSet . String ( ))
8484 if err != nil {
8585 return
8686 }
0 commit comments