From 87e6b88f3bbb64898e30033da974fcef751375c4 Mon Sep 17 00:00:00 2001 From: itsumura-h <39766805+itsumura-h@users.noreply.github.com> Date: Fri, 3 Apr 2020 16:38:05 +0900 Subject: [PATCH] fix #7241 (#13779) finalize() should run in insert() --- lib/impure/db_sqlite.nim | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/impure/db_sqlite.nim b/lib/impure/db_sqlite.nim index 74ba169aa5..810638fb8f 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].} =