Skip to content

Commit 55c4a66

Browse files
authored
ocConn wrapping was hiding ConnBeginTx and ConnPrepareContext interfaces (#15)
* ocConn wrapping was hiding ConnBeginTx and ConnPrepareContext interfaces
1 parent b747101 commit 55c4a66

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

driver.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,22 @@ import (
1313
"go.opencensus.io/trace"
1414
)
1515

16+
type connTx interface {
17+
driver.Conn
18+
driver.ConnBeginTx
19+
driver.ConnPrepareContext
20+
}
21+
1622
var (
1723
regMu sync.Mutex
1824
attrMissingContext = trace.StringAttribute("ocsql.warning", "missing upstream context")
1925
attrDeprecated = trace.StringAttribute("ocsql.warning", "database driver uses deprecated features")
26+
27+
// Compile time assertions
28+
_ driver.Driver = &ocDriver{}
29+
_ connTx = &ocConn{}
30+
_ driver.Result = &ocResult{}
31+
_ driver.Rows = &ocRows{}
2032
)
2133

2234
// Register initializes and registers our ocsql wrapped database driver

driver_go1.10.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ import (
1010

1111
var ErrConnDone = sql.ErrConnDone
1212

13+
// Compile time assertion
14+
var _ driver.DriverContext = &ocDriver{}
15+
1316
// ocDriver implements driver.Driver
1417
type ocDriver struct {
1518
parent driver.Driver
@@ -35,17 +38,17 @@ func wrapConn(parent driver.Conn, options TraceOptions) driver.Conn {
3538
return c
3639
case hasNameValueChecker && !hasSessionResetter:
3740
return struct {
38-
driver.Conn
41+
connTx
3942
driver.NamedValueChecker
4043
}{c, n}
4144
case !hasNameValueChecker && hasSessionResetter:
4245
return struct {
43-
driver.Conn
46+
connTx
4447
driver.SessionResetter
4548
}{c, s}
4649
case hasNameValueChecker && hasSessionResetter:
4750
return struct {
48-
driver.Conn
51+
connTx
4952
driver.NamedValueChecker
5053
driver.SessionResetter
5154
}{c, n, s}

driver_go1.9.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func wrapConn(c driver.Conn, options TraceOptions) driver.Conn {
2626
conn := &ocConn{parent: c, options: options}
2727
if hasNameValueChecker {
2828
return struct {
29-
driver.Conn
29+
connTx
3030
driver.NamedValueChecker
3131
}{conn, n}
3232
}

0 commit comments

Comments
 (0)