Skip to content

Commit

Permalink
Support underlying NamedValueChecker implementation for Conn
Browse files Browse the repository at this point in the history
  • Loading branch information
ikesyo committed Aug 17, 2020
1 parent 90b15af commit c0f89b5
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 3 deletions.
13 changes: 10 additions & 3 deletions db.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,9 +106,10 @@ type conn struct {

type txDriver struct {
sync.Mutex
db *sql.DB
conns map[string]*conn
options []func(*conn) error
db *sql.DB
realConn driver.Conn // Meant to be used as NamedValueChecker
conns map[string]*conn
options []func(*conn) error

drv string
dsn string
Expand All @@ -124,6 +125,12 @@ func (d *txDriver) Open(dsn string) (driver.Conn, error) {
return nil, err
}
d.db = db

realConn, err := db.Driver().Open(d.dsn)
if err != nil {
return nil, err
}
d.realConn = realConn
}
c, ok := d.conns[dsn]
if !ok {
Expand Down
4 changes: 4 additions & 0 deletions db_go19.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ import (

// Implement the NamedValueChecker interface
func (c *conn) CheckNamedValue(nv *driver.NamedValue) error {
if nvc, ok := c.drv.realConn.(driver.NamedValueChecker); ok {
return nvc.CheckNamedValue(nv)
}

switch nv.Value.(type) {
case sql.Out:
return nil
Expand Down

0 comments on commit c0f89b5

Please sign in to comment.