Close prepared statement and fail if limit is not enforced in limit example
This commit is contained in:
@@ -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")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user