From 3900dc318797f0c829deb42ed9d723a30e3f60b0 Mon Sep 17 00:00:00 2001 From: Aviv Klasquin Komissar Date: Tue, 19 Oct 2021 12:18:21 +0300 Subject: return non-nil result when calling exec with empty query (#973) fixes #963 --- sqlite3_test.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'sqlite3_test.go') diff --git a/sqlite3_test.go b/sqlite3_test.go index 878ec49..5eddae9 100644 --- a/sqlite3_test.go +++ b/sqlite3_test.go @@ -1943,6 +1943,7 @@ var tests = []testing.InternalTest{ {Name: "TestManyQueryRow", F: testManyQueryRow}, {Name: "TestTxQuery", F: testTxQuery}, {Name: "TestPreparedStmt", F: testPreparedStmt}, + {Name: "TestExecEmptyQuery", F: testExecEmptyQuery}, } var benchmarks = []testing.InternalBenchmark{ @@ -2273,6 +2274,25 @@ func testPreparedStmt(t *testing.T) { wg.Wait() } +// testEmptyQuery is test for validating the API in case of empty query +func testExecEmptyQuery(t *testing.T) { + db.tearDown() + res, err := db.Exec(" -- this is just a comment ") + if err != nil { + t.Fatalf("empty query err: %v", err) + } + + _, err = res.LastInsertId() + if err != nil { + t.Fatalf("LastInsertId returned an error: %v", err) + } + + _, err = res.RowsAffected() + if err != nil { + t.Fatalf("RowsAffected returned an error: %v", err) + } +} + // Benchmarks need to use panic() since b.Error errors are lost when // running via testing.Benchmark() I would like to run these via go // test -bench but calling Benchmark() from a benchmark test -- cgit v1.2.3