From 084f3d386f9fbe21b85a7cd17d0744dedf9c31ae Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Wed, 29 Jul 2026 09:48:47 +0900 Subject: [PATCH 1/2] Close prepared statement and fail if limit is not enforced in limit example --- _example/limit/limit.go | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/_example/limit/limit.go b/_example/limit/limit.go index c1adfe8..16bf025 100644 --- a/_example/limit/limit.go +++ b/_example/limit/limit.go @@ -32,6 +32,7 @@ func bulkInsert(db *sql.DB, query string, args []any) (err error) { if err != nil { return } + defer stmt.Close() _, err = stmt.Exec(args...) if err != nil { @@ -89,11 +90,10 @@ func main() { query, args = createBulkInsertQuery(num, num) err = bulkInsert(db, query, args) - if err != nil { - if err != nil { - log.Printf("expect failed since SQLITE_LIMIT_VARIABLE_NUMBER is too small: %v", err) - } + if err == nil { + log.Fatal("expected failure since SQLITE_LIMIT_VARIABLE_NUMBER is too small, but insert succeeded") } + log.Printf("expect failed since SQLITE_LIMIT_VARIABLE_NUMBER is too small: %v", err) bigLimitVariableNumber := 999999 sqlite3conn.SetLimit(sqlite3.SQLITE_LIMIT_VARIABLE_NUMBER, bigLimitVariableNumber) @@ -104,9 +104,7 @@ func main() { query, args = createBulkInsertQuery(500, num+num) err = bulkInsert(db, query, args) if err != nil { - if err != nil { - log.Fatal(err) - } + log.Fatal(err) } log.Println("no error if SQLITE_LIMIT_VARIABLE_NUMBER > 999") From 18f2ec37d384d0ee65be85b3c8ae1b4aa58168b2 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Wed, 29 Jul 2026 15:50:02 +0900 Subject: [PATCH 2/2] Assert the expected too many SQL variables error --- _example/limit/limit.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/_example/limit/limit.go b/_example/limit/limit.go index 16bf025..4ac33c2 100644 --- a/_example/limit/limit.go +++ b/_example/limit/limit.go @@ -93,6 +93,9 @@ func main() { if err == nil { log.Fatal("expected failure since SQLITE_LIMIT_VARIABLE_NUMBER is too small, but insert succeeded") } + if !strings.Contains(err.Error(), "too many SQL variables") { + log.Fatalf("expected too many SQL variables error, got: %v", err) + } log.Printf("expect failed since SQLITE_LIMIT_VARIABLE_NUMBER is too small: %v", err) bigLimitVariableNumber := 999999