Skip to content

Commit 4a32ba5

Browse files
committed
Implement driver.Pinger
The Pinger interface was added in Go 1.8. This implementation ignores the context parameter to Ping.
1 parent 9dee4ca commit 4a32ba5

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

connection_go18.go

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// +build go1.8
2+
3+
package mysql
4+
5+
import (
6+
"context"
7+
)
8+
9+
func (mc *mysqlConn) Ping(ctx context.Context) error {
10+
return mc.writeCommandPacket(comPing)
11+
}

driver_go18_test.go

+17
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
package mysql
44

55
import (
6+
"context"
67
"database/sql"
8+
"database/sql/driver"
79
"fmt"
810
"reflect"
911
"testing"
@@ -188,3 +190,18 @@ func TestSkipResults(t *testing.T) {
188190
}
189191
})
190192
}
193+
194+
func TestPing(t *testing.T) {
195+
runTests(t, dsn, func(dbt *DBTest) {
196+
mysqlDriver := dbt.db.Driver().(driver.Driver)
197+
conn, err := mysqlDriver.Open(dsn)
198+
if err != nil {
199+
dbt.Fatalf("error opening conn: %s", err)
200+
}
201+
pinger := conn.(driver.Pinger)
202+
err = pinger.Ping(context.Background())
203+
if err != nil {
204+
dbt.Fatalf("error on ping: %s", err)
205+
}
206+
})
207+
}

0 commit comments

Comments
 (0)