diff options
author | Evan Jones <ej@evanjones.ca> | 2020-11-16 09:42:00 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-16 23:42:00 +0900 |
commit | 4f7abea96e64314746db773531a005f945e3288a (patch) | |
tree | 9a3602e533b127f4accd44f9d64832cc3cbe54f4 /sqlite3_test.go | |
parent | Expand documentation for extension functions (#880) (diff) | |
download | golite-4f7abea96e64314746db773531a005f945e3288a.tar.gz golite-4f7abea96e64314746db773531a005f945e3288a.tar.xz |
doc.go: you can use Conn.Raw to get *SQLiteConn (#882)
This can be easier that registering a new driver, in some cases.
Add a test to verify that this works.
Diffstat (limited to 'sqlite3_test.go')
-rw-r--r-- | sqlite3_test.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/sqlite3_test.go b/sqlite3_test.go index d5b0cea..fe367cf 100644 --- a/sqlite3_test.go +++ b/sqlite3_test.go @@ -9,6 +9,7 @@ package sqlite3 import ( "bytes" + "context" "database/sql" "database/sql/driver" "errors" @@ -2352,3 +2353,32 @@ func benchmarkStmtRows(b *testing.B) { } } } + +func TestConnRawIsSQLiteConn(t *testing.T) { + db, err := sql.Open("sqlite3", ":memory:") + if err != nil { + t.Fatal("Failed to open db:", err) + } + defer db.Close() + + conn, err := db.Conn(context.Background()) + if err != nil { + t.Fatal("Failed to get conn:", err) + } + defer conn.Close() + err = conn.Raw(func(driverConn interface{}) error { + sqliteConn, ok := driverConn.(*SQLiteConn) + if !ok { + t.Errorf("driverConn type=%T; expected to be *SQLiteConn", driverConn) + return nil + } + // call a private SQLite API to confirm the raw conn "works" + if sqliteConn.AuthEnabled() { + t.Error("sqliteConn.AuthEnabled()=true; expected false") + } + return nil + }) + if err != nil { + t.Error("conn.Raw() returned err:", err) + } +} |