Close prepared statement and fail if limit is not enforced in limit example

This commit is contained in:
Yasuhiro Matsumoto
2026-07-29 09:48:47 +09:00
parent 0cfec60306
commit 084f3d386f

View File

@@ -32,6 +32,7 @@ func bulkInsert(db *sql.DB, query string, args []any) (err error) {
if err != nil { if err != nil {
return return
} }
defer stmt.Close()
_, err = stmt.Exec(args...) _, err = stmt.Exec(args...)
if err != nil { if err != nil {
@@ -89,11 +90,10 @@ func main() {
query, args = createBulkInsertQuery(num, num) query, args = createBulkInsertQuery(num, num)
err = bulkInsert(db, query, args) err = bulkInsert(db, query, args)
if err != nil { if err == nil {
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) log.Printf("expect failed since SQLITE_LIMIT_VARIABLE_NUMBER is too small: %v", err)
}
}
bigLimitVariableNumber := 999999 bigLimitVariableNumber := 999999
sqlite3conn.SetLimit(sqlite3.SQLITE_LIMIT_VARIABLE_NUMBER, bigLimitVariableNumber) sqlite3conn.SetLimit(sqlite3.SQLITE_LIMIT_VARIABLE_NUMBER, bigLimitVariableNumber)
@@ -103,11 +103,9 @@ func main() {
query, args = createBulkInsertQuery(500, num+num) query, args = createBulkInsertQuery(500, num+num)
err = bulkInsert(db, query, args) err = bulkInsert(db, query, args)
if err != nil {
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
}
log.Println("no error if SQLITE_LIMIT_VARIABLE_NUMBER > 999") log.Println("no error if SQLITE_LIMIT_VARIABLE_NUMBER > 999")
} }