Skip to content

Commit fdae41f

Browse files
authored
Merge pull request #3 from distributit/cleanup
Remove some old Go version specific logic
2 parents 44f026d + 54f0fda commit fdae41f

File tree

17 files changed

+253
-293
lines changed

17 files changed

+253
-293
lines changed

.github/workflows/go.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@ jobs:
3232
go-version: 1.24 # TODO: matrix
3333

3434
- name: Test
35-
run: go test -v -race ./...
35+
uses: magefile/mage-action@6f50bbb8ea47d56e62dee92392788acbc8192d0b # v3.1.0
36+
with:
37+
version: latest
38+
args: test
3639

3740
check:
3841
runs-on: ubuntu-latest

conn.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ var (
2020
_ driver.Pinger = wrappedConn{}
2121
_ driver.Queryer = wrappedConn{}
2222
_ driver.QueryerContext = wrappedConn{}
23+
_ driver.NamedValueChecker = wrappedConn{}
24+
_ driver.SessionResetter = wrappedConn{}
2325
)
2426

2527
func (c wrappedConn) Prepare(query string) (driver.Stmt, error) {
@@ -179,3 +181,35 @@ func (c wrappedParentConn) QueryContext(ctx context.Context, query string, args
179181
return c.Conn.(driver.Queryer).Query(query, dargs)
180182
}
181183
}
184+
185+
func defaultCheckNamedValue(nv *driver.NamedValue) (err error) {
186+
nv.Value, err = driver.DefaultParameterConverter.ConvertValue(nv.Value)
187+
return err
188+
}
189+
190+
func (c wrappedConn) CheckNamedValue(v *driver.NamedValue) error {
191+
if checker, ok := c.parent.(driver.NamedValueChecker); ok {
192+
return checker.CheckNamedValue(v)
193+
}
194+
195+
return defaultCheckNamedValue(v)
196+
}
197+
198+
func (c wrappedConn) ResetSession(ctx context.Context) error {
199+
conn, ok := c.parent.(driver.SessionResetter)
200+
if !ok {
201+
return nil
202+
}
203+
204+
return conn.ResetSession(ctx)
205+
}
206+
207+
func (c wrappedConn) IsValid() bool {
208+
conn, ok := c.parent.(driver.Validator)
209+
if !ok {
210+
// the default if driver.Validator is not supported
211+
return true
212+
}
213+
214+
return conn.IsValid()
215+
}

conn_go110.go

Lines changed: 0 additions & 19 deletions
This file was deleted.

conn_go115.go

Lines changed: 0 additions & 19 deletions
This file was deleted.

conn_go19.go

Lines changed: 0 additions & 22 deletions
This file was deleted.

connector.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
// +build go1.10
2-
31
package sqlmw
42

53
import (

connector_test.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
// +build go1.10
2-
31
package sqlmw
42

53
import (

driver.go

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@ package sqlmw
22

33
import "database/sql/driver"
44

5-
// driver wraps a sql.Driver with an interceptor.
5+
// wrappedDriver wraps a sql.Driver with an interceptor.
66
type wrappedDriver struct {
77
intr Interceptor
88
parent driver.Driver
99
}
1010

1111
// Compile time validation that our types implement the expected interfaces
1212
var (
13-
_ driver.Driver = wrappedDriver{}
13+
_ driver.Driver = wrappedDriver{}
14+
_ driver.DriverContext = wrappedDriver{}
1415
)
1516

1617
// WrapDriver will wrap the passed SQL driver and return a new sql driver that uses it and also logs and traces calls using the passed logger and tracer
@@ -36,3 +37,21 @@ func (d wrappedDriver) Open(name string) (driver.Conn, error) {
3637

3738
return wrappedConn{intr: d.intr, parent: conn}, nil
3839
}
40+
41+
// OpenConnector implements the database/sql/driver.Driver interface for WrappedDriver.
42+
func (d wrappedDriver) OpenConnector(name string) (driver.Connector, error) {
43+
driver, ok := d.parent.(driver.DriverContext)
44+
if !ok {
45+
return wrappedConnector{
46+
parent: dsnConnector{dsn: name, driver: d.parent},
47+
driverRef: &d,
48+
}, nil
49+
}
50+
51+
conn, err := driver.OpenConnector(name)
52+
if err != nil {
53+
return nil, err
54+
}
55+
56+
return wrappedConnector{parent: conn, driverRef: &d}, nil
57+
}

driver_go110.go

Lines changed: 0 additions & 23 deletions
This file was deleted.

fakedb_test.go

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ type fakeConn struct {
194194
called bool // nolint:structcheck // ignore unused warning, it is accessed via reflection
195195
rowsCloseCalled bool
196196
stmt driver.Stmt
197+
queryStmt driver.StmtQueryContext
197198
tx driver.Tx
198199
}
199200

@@ -221,17 +222,12 @@ func (c *fakeConn) Close() error { return nil }
221222

222223
func (c *fakeConn) Begin() (driver.Tx, error) { return c.tx, nil }
223224

224-
func (c *fakeConn) QueryContext(_ context.Context, _ string, nvs []driver.NamedValue) (driver.Rows, error) {
225-
if c.stmt == nil {
225+
func (c *fakeConn) QueryContext(ctx context.Context, _ string, nvs []driver.NamedValue) (driver.Rows, error) {
226+
if c.queryStmt == nil {
226227
return &fakeRows{con: c}, nil
227228
}
228229

229-
var args []driver.Value
230-
for _, nv := range nvs {
231-
args = append(args, nv.Value)
232-
}
233-
234-
return c.stmt.Query(args)
230+
return c.queryStmt.QueryContext(ctx, nvs)
235231
}
236232

237233
func (c *fakeConnWithCheckNamedValue) CheckNamedValue(_ *driver.NamedValue) (err error) {

0 commit comments

Comments
 (0)