Skip to content

Commit 7647464

Browse files
committed
rows: cache parseTime in resultSet instead of mysqlConn
1 parent c4063e5 commit 7647464

File tree

4 files changed

+6
-4
lines changed

4 files changed

+6
-4
lines changed

connection.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ type mysqlConn struct {
3939
flags clientFlag
4040
status statusFlag
4141
sequence uint8
42-
parseTime bool
4342

4443
// for context support (Go 1.8+)
4544
watching bool
@@ -403,6 +402,9 @@ func (mc *mysqlConn) query(query string, args []driver.Value) (*textRows, error)
403402
return nil, err
404403
}
405404
}
405+
406+
rows.rs.parseTime = mc.cfg.ParseTime
407+
406408
// Columns
407409
rows.rs.columns, err = mc.readColumns(resLen)
408410
return rows, err

driver.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ func (d MySQLDriver) Open(dsn string) (driver.Conn, error) {
6363
if err != nil {
6464
return nil, err
6565
}
66-
mc.parseTime = mc.cfg.ParseTime
6766

6867
// Connect to Server
6968
if dial, ok := dials[mc.cfg.Net]; ok {

packets.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -761,7 +761,7 @@ func (rows *textRows) readRow(dest []driver.Value) error {
761761
pos += n
762762
if err == nil {
763763
if !isNull {
764-
if !mc.parseTime {
764+
if !rows.rs.parseTime {
765765
continue
766766
} else {
767767
switch rows.rs.columns[i].fieldType {
@@ -1265,7 +1265,7 @@ func (rows *binaryRows) readRow(dest []driver.Value) error {
12651265
)
12661266
}
12671267
dest[i], err = formatBinaryDateTime(data[pos:pos+int(num)], dstlen, true)
1268-
case rows.mc.parseTime:
1268+
case rows.rs.parseTime:
12691269
dest[i], err = parseBinaryDateTime(num, data[pos:], rows.mc.cfg.Loc)
12701270
default:
12711271
var dstlen uint8

rows.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ type resultSet struct {
1818
columns []mysqlField
1919
columnNames []string
2020
done bool
21+
parseTime bool // cached from cfg
2122
}
2223

2324
type mysqlRows struct {

0 commit comments

Comments
 (0)