summary refs log tree commit diff stats
diff options
context:
space:
mode:
authoritsumura-h <39766805+itsumura-h@users.noreply.github.com>2020-04-03 16:38:05 +0900
committerGitHub <noreply@github.com>2020-04-03 09:38:05 +0200
commit87e6b88f3bbb64898e30033da974fcef751375c4 (patch)
treebc7561cfb299d608232a60f28a70e049a08170c8
parent93cd98dd143d45a31a7fd90ad8f0b3d3c4c7798f (diff)
downloadNim-87e6b88f3bbb64898e30033da974fcef751375c4.tar.gz
fix #7241 (#13779)
finalize() should run in insert()
-rw-r--r--lib/impure/db_sqlite.nim5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/impure/db_sqlite.nim b/lib/impure/db_sqlite.nim
index 74ba169aa..810638fb8 100644
--- a/lib/impure/db_sqlite.nim
+++ b/lib/impure/db_sqlite.nim
@@ -184,6 +184,9 @@ proc tryExec*(db: DbConn, query: SqlQuery,
     let x = step(stmt)
     if x in {SQLITE_DONE, SQLITE_ROW}:
       result = finalize(stmt) == SQLITE_OK
+    else:
+      discard finalize(stmt)
+      result = false
 
 proc exec*(db: DbConn, query: SqlQuery, args: varargs[string, `$`])  {.
   tags: [ReadDbEffect, WriteDbEffect].} =
@@ -531,6 +534,8 @@ proc tryInsertID*(db: DbConn, query: SqlQuery,
       result = last_insert_rowid(db)
     if finalize(stmt) != SQLITE_OK:
       result = -1
+  else:
+    discard finalize(stmt)
 
 proc insertID*(db: DbConn, query: SqlQuery,
                args: varargs[string, `$`]): int64 {.tags: [WriteDbEffect].} =