Skip to content

Commit 9b979f2

Browse files
committed
set rows.finish directly.
1 parent 1fdad70 commit 9b979f2

File tree

4 files changed

+12
-20
lines changed

4 files changed

+12
-20
lines changed

connection.go

+4
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,10 @@ func (mc *mysqlConn) exec(query string) error {
354354
}
355355

356356
func (mc *mysqlConn) Query(query string, args []driver.Value) (driver.Rows, error) {
357+
return mc.query(query, args)
358+
}
359+
360+
func (mc *mysqlConn) query(query string, args []driver.Value) (*textRows, error) {
357361
if mc.isBroken() {
358362
errLog.Print(ErrInvalidConn)
359363
return nil, driver.ErrBadConn

connection_go18.go

+4-16
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,6 @@ import (
1717
"errors"
1818
)
1919

20-
type setfinish interface {
21-
setFinish(f func())
22-
}
23-
2420
// Ping implements driver.Pinger interface
2521
func (mc *mysqlConn) Ping(ctx context.Context) error {
2622
if mc.isBroken() {
@@ -81,16 +77,12 @@ func (mc *mysqlConn) QueryContext(ctx context.Context, query string, args []driv
8177
return nil, err
8278
}
8379

84-
rows, err := mc.Query(query, dargs)
80+
rows, err := mc.query(query, dargs)
8581
if err != nil {
8682
mc.finish()
8783
return nil, err
8884
}
89-
if set, ok := rows.(setfinish); ok {
90-
set.setFinish(mc.finish)
91-
} else {
92-
mc.finish()
93-
}
85+
rows.finish = mc.finish
9486
return rows, err
9587
}
9688

@@ -138,16 +130,12 @@ func (stmt *mysqlStmt) QueryContext(ctx context.Context, args []driver.NamedValu
138130
return nil, err
139131
}
140132

141-
rows, err := stmt.Query(dargs)
133+
rows, err := stmt.query(dargs)
142134
if err != nil {
143135
stmt.mc.finish()
144136
return nil, err
145137
}
146-
if set, ok := rows.(setfinish); ok {
147-
set.setFinish(stmt.mc.finish)
148-
} else {
149-
stmt.mc.finish()
150-
}
138+
rows.finish = stmt.mc.finish
151139
return rows, err
152140
}
153141

rows.go

-4
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,6 @@ func (rows *mysqlRows) Columns() []string {
6565
return columns
6666
}
6767

68-
func (rows *mysqlRows) setFinish(f func()) {
69-
rows.finish = f
70-
}
71-
7268
func (rows *mysqlRows) Close() (err error) {
7369
if f := rows.finish; f != nil {
7470
f()

statement.go

+4
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,10 @@ func (stmt *mysqlStmt) Exec(args []driver.Value) (driver.Result, error) {
8989
}
9090

9191
func (stmt *mysqlStmt) Query(args []driver.Value) (driver.Rows, error) {
92+
return stmt.query(args)
93+
}
94+
95+
func (stmt *mysqlStmt) query(args []driver.Value) (*binaryRows, error) {
9296
if stmt.mc.isBroken() {
9397
errLog.Print(ErrInvalidConn)
9498
return nil, driver.ErrBadConn

0 commit comments

Comments
 (0)