aboutsummaryrefslogtreecommitdiff
path: root/sqlite3_go18.go
diff options
context:
space:
mode:
authormattn <mattn.jp@gmail.com>2016-11-04 23:24:02 +0900
committerGitHub <noreply@github.com>2016-11-04 23:24:02 +0900
commitf4e49e6484de6dd3ffaf25eb103de03118732782 (patch)
tree8b893ca791939e310bd0eb741efbc55654ac9c50 /sqlite3_go18.go
parentremove -Wno-c99-extension (diff)
parentseparate test (diff)
downloadgolite-f4e49e6484de6dd3ffaf25eb103de03118732782.tar.gz
golite-f4e49e6484de6dd3ffaf25eb103de03118732782.tar.xz
Merge pull request #348 from mattn/ping
new go1.8 feature
Diffstat (limited to 'sqlite3_go18.go')
-rw-r--r--sqlite3_go18.go58
1 files changed, 58 insertions, 0 deletions
diff --git a/sqlite3_go18.go b/sqlite3_go18.go
new file mode 100644
index 0000000..7109d58
--- /dev/null
+++ b/sqlite3_go18.go
@@ -0,0 +1,58 @@
+// +build go1.8
+
+package sqlite3
+
+import (
+ "database/sql/driver"
+ "errors"
+
+ "golang.org/x/net/context"
+)
+
+// Ping implement Pinger.
+func (c *SQLiteConn) Ping(ctx context.Context) error {
+ if c.db == nil {
+ return errors.New("Connection was closed")
+ }
+ return nil
+}
+
+func (c *SQLiteConn) QueryContext(ctx context.Context, query string, args []driver.NamedValue) (driver.Rows, error) {
+ list := make([]namedValue, len(args))
+ for i, nv := range args {
+ list[i] = namedValue(nv)
+ }
+ return c.query(ctx, query, list)
+}
+
+func (c *SQLiteConn) ExecContext(ctx context.Context, query string, args []driver.NamedValue) (driver.Result, error) {
+ list := make([]namedValue, len(args))
+ for i, nv := range args {
+ list[i] = namedValue(nv)
+ }
+ return c.exec(ctx, query, list)
+}
+
+func (c *SQLiteConn) PrepareContext(ctx context.Context, query string) (driver.Stmt, error) {
+ return c.prepare(ctx, query)
+}
+
+func (c *SQLiteConn) BeginContext(ctx context.Context) (driver.Tx, error) {
+ return c.begin(ctx)
+}
+
+func (s *SQLiteStmt) QueryContext(ctx context.Context, args []driver.NamedValue) (driver.Rows, error) {
+ list := make([]namedValue, len(args))
+ for i, nv := range args {
+ list[i] = namedValue(nv)
+ }
+ return s.query(ctx, list)
+}
+
+func (s *SQLiteStmt) ExecContext(ctx context.Context, args []driver.NamedValue) (driver.Result, error) {
+ list := make([]namedValue, len(args))
+ for i, nv := range args {
+ list[i] = namedValue(nv)
+ }
+ return s.exec(ctx, list)
+}