9
9
package mysql
10
10
11
11
import (
12
- "crypto/tls"
13
12
"database/sql/driver"
14
- "errors"
15
13
"net"
16
14
"strconv"
17
15
"strings"
@@ -23,7 +21,7 @@ type mysqlConn struct {
23
21
netConn net.Conn
24
22
affectedRows uint64
25
23
insertId uint64
26
- cfg * config
24
+ cfg * Config
27
25
maxPacketAllowed int
28
26
maxWriteSize int
29
27
flags clientFlag
@@ -33,28 +31,9 @@ type mysqlConn struct {
33
31
strict bool
34
32
}
35
33
36
- type config struct {
37
- user string
38
- passwd string
39
- net string
40
- addr string
41
- dbname string
42
- params map [string ]string
43
- loc * time.Location
44
- tls * tls.Config
45
- timeout time.Duration
46
- collation uint8
47
- allowAllFiles bool
48
- allowOldPasswords bool
49
- allowCleartextPasswords bool
50
- clientFoundRows bool
51
- columnsWithAlias bool
52
- interpolateParams bool
53
- }
54
-
55
34
// Handles parameters set in DSN after the connection is established
56
35
func (mc * mysqlConn ) handleParams () (err error ) {
57
- for param , val := range mc .cfg .params {
36
+ for param , val := range mc .cfg .Params {
58
37
switch param {
59
38
// Charset
60
39
case "charset" :
@@ -70,27 +49,6 @@ func (mc *mysqlConn) handleParams() (err error) {
70
49
return
71
50
}
72
51
73
- // time.Time parsing
74
- case "parseTime" :
75
- var isBool bool
76
- mc .parseTime , isBool = readBool (val )
77
- if ! isBool {
78
- return errors .New ("Invalid Bool value: " + val )
79
- }
80
-
81
- // Strict mode
82
- case "strict" :
83
- var isBool bool
84
- mc .strict , isBool = readBool (val )
85
- if ! isBool {
86
- return errors .New ("Invalid Bool value: " + val )
87
- }
88
-
89
- // Compression
90
- case "compress" :
91
- err = errors .New ("Compression not implemented yet" )
92
- return
93
-
94
52
// System Vars
95
53
default :
96
54
err = mc .exec ("SET " + param + "=" + val + "" )
@@ -217,7 +175,7 @@ func (mc *mysqlConn) interpolateParams(query string, args []driver.Value) (strin
217
175
if v .IsZero () {
218
176
buf = append (buf , "'0000-00-00'" ... )
219
177
} else {
220
- v := v .In (mc .cfg .loc )
178
+ v := v .In (mc .cfg .Loc )
221
179
v = v .Add (time .Nanosecond * 500 ) // To round under microsecond
222
180
year := v .Year ()
223
181
year100 := year / 100
@@ -298,7 +256,7 @@ func (mc *mysqlConn) Exec(query string, args []driver.Value) (driver.Result, err
298
256
return nil , driver .ErrBadConn
299
257
}
300
258
if len (args ) != 0 {
301
- if ! mc .cfg .interpolateParams {
259
+ if ! mc .cfg .InterpolateParams {
302
260
return nil , driver .ErrSkip
303
261
}
304
262
// try to interpolate the parameters to save extra roundtrips for preparing and closing a statement
@@ -349,7 +307,7 @@ func (mc *mysqlConn) Query(query string, args []driver.Value) (driver.Rows, erro
349
307
return nil , driver .ErrBadConn
350
308
}
351
309
if len (args ) != 0 {
352
- if ! mc .cfg .interpolateParams {
310
+ if ! mc .cfg .InterpolateParams {
353
311
return nil , driver .ErrSkip
354
312
}
355
313
// try client-side prepare to reduce roundtrip
0 commit comments