Skip to content

Commit 0c5e07e

Browse files
committed
dsn: make Config.TimeTrancate private
1 parent 097fe6e commit 0c5e07e

File tree

4 files changed

+15
-8
lines changed

4 files changed

+15
-8
lines changed

connection.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ func (mc *mysqlConn) interpolateParams(query string, args []driver.Value) (strin
251251
buf = append(buf, "'0000-00-00'"...)
252252
} else {
253253
buf = append(buf, '\'')
254-
buf, err = appendDateTime(buf, v.In(mc.cfg.Loc), mc.cfg.TimeTruncate)
254+
buf, err = appendDateTime(buf, v.In(mc.cfg.Loc), mc.cfg.timeTruncate)
255255
if err != nil {
256256
return "", err
257257
}

dsn.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ var (
3434
// If a new Config is created instead of being parsed from a DSN string,
3535
// the NewConfig function should be used, which sets default values.
3636
type Config struct {
37+
// non boolean fields
38+
3739
User string // Username
3840
Passwd string // Password (requires User)
3941
Net string // Network (e.g. "tcp", "tcp6", "unix". default: "tcp")
@@ -45,15 +47,15 @@ type Config struct {
4547
Loc *time.Location // Location for time.Time values
4648
MaxAllowedPacket int // Max packet size allowed
4749
ServerPubKey string // Server public key name
48-
pubKey *rsa.PublicKey // Server public key
4950
TLSConfig string // TLS configuration name
5051
TLS *tls.Config // TLS configuration, its priority is higher than TLSConfig
51-
TimeTruncate time.Duration // Truncate time.Time values to the specified duration
5252
Timeout time.Duration // Dial timeout
5353
ReadTimeout time.Duration // I/O read timeout
5454
WriteTimeout time.Duration // I/O write timeout
5555
Logger Logger // Logger
5656

57+
// boolean fields
58+
5759
AllowAllFiles bool // Allow all files to be used with LOAD DATA LOCAL INFILE
5860
AllowCleartextPasswords bool // Allows the cleartext client side plugin
5961
AllowFallbackToPlaintext bool // Allows fallback to unencrypted connection if server does not support TLS
@@ -66,6 +68,11 @@ type Config struct {
6668
MultiStatements bool // Allow multiple statements in one query
6769
ParseTime bool // Parse time values to time.Time
6870
RejectReadOnly bool // Reject read-only connections
71+
72+
// private fields. new options should be come here
73+
74+
pubKey *rsa.PublicKey // Server public key
75+
timeTruncate time.Duration // Truncate time.Time values to the specified duration
6976
}
7077

7178
// NewConfig creates a new Config and sets default values.
@@ -263,8 +270,8 @@ func (cfg *Config) FormatDSN() string {
263270
writeDSNParam(&buf, &hasParam, "parseTime", "true")
264271
}
265272

266-
if cfg.TimeTruncate > 0 {
267-
writeDSNParam(&buf, &hasParam, "timeTruncate", cfg.TimeTruncate.String())
273+
if cfg.timeTruncate > 0 {
274+
writeDSNParam(&buf, &hasParam, "timeTruncate", cfg.timeTruncate.String())
268275
}
269276

270277
if cfg.ReadTimeout > 0 {
@@ -509,7 +516,7 @@ func parseDSNParams(cfg *Config, params string) (err error) {
509516

510517
// time.Time truncation
511518
case "timeTruncate":
512-
cfg.TimeTruncate, err = time.ParseDuration(value)
519+
cfg.timeTruncate, err = time.ParseDuration(value)
513520
if err != nil {
514521
return
515522
}

dsn_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ var testDSNs = []struct {
7676
&Config{Net: "tcp", Addr: "[de:ad:be:ef::ca:fe]:3306", DBName: "dbname", Loc: time.UTC, MaxAllowedPacket: defaultMaxAllowedPacket, Logger: defaultLogger, AllowNativePasswords: true, CheckConnLiveness: true},
7777
}, {
7878
"user:password@/dbname?loc=UTC&timeout=30s&parseTime=true&timeTruncate=1h",
79-
&Config{User: "user", Passwd: "password", Net: "tcp", Addr: "127.0.0.1:3306", DBName: "dbname", Loc: time.UTC, Timeout: 30 * time.Second, ParseTime: true, MaxAllowedPacket: defaultMaxAllowedPacket, Logger: defaultLogger, AllowNativePasswords: true, CheckConnLiveness: true, TimeTruncate: time.Hour},
79+
&Config{User: "user", Passwd: "password", Net: "tcp", Addr: "127.0.0.1:3306", DBName: "dbname", Loc: time.UTC, Timeout: 30 * time.Second, ParseTime: true, MaxAllowedPacket: defaultMaxAllowedPacket, Logger: defaultLogger, AllowNativePasswords: true, CheckConnLiveness: true, timeTruncate: time.Hour},
8080
},
8181
}
8282

packets.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1172,7 +1172,7 @@ func (stmt *mysqlStmt) writeExecutePacket(args []driver.Value) error {
11721172
if v.IsZero() {
11731173
b = append(b, "0000-00-00"...)
11741174
} else {
1175-
b, err = appendDateTime(b, v.In(mc.cfg.Loc), mc.cfg.TimeTruncate)
1175+
b, err = appendDateTime(b, v.In(mc.cfg.Loc), mc.cfg.timeTruncate)
11761176
if err != nil {
11771177
return err
11781178
}

0 commit comments

Comments
 (0)