From 6796d46c3a2736edc88418f6de515c76e29f4aa9 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Thu, 3 Nov 2016 23:05:34 +0900 Subject: [PATCH] implement go18 Pinger --- sqlite3_context.go | 14 ++++++++++++++ sqlite3_test.go | 16 ++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 sqlite3_context.go diff --git a/sqlite3_context.go b/sqlite3_context.go new file mode 100644 index 0000000..26e4998 --- /dev/null +++ b/sqlite3_context.go @@ -0,0 +1,14 @@ +package sqlite3 + +import ( + "context" + "errors" +) + +// Ping implement Pinger. +func (c *SQLiteConn) Ping(ctx context.Context) error { + if c.db == nil { + return errors.New("Connection was closed") + } + return nil +} diff --git a/sqlite3_test.go b/sqlite3_test.go index cf826dd..fc5c99c 100644 --- a/sqlite3_test.go +++ b/sqlite3_test.go @@ -1315,6 +1315,22 @@ func TestDeclTypes(t *testing.T) { } } +func TestPinger(t *testing.T) { + db, err := sql.Open("sqlite3", ":memory:") + if err != nil { + t.Fatal(err) + } + err = db.Ping() + if err != nil { + t.Fatal(err) + } + db.Close() + err = db.Ping() + if err == nil { + t.Fatal("Should be closed") + } +} + var customFunctionOnce sync.Once func BenchmarkCustomFunctions(b *testing.B) {