summary refs log tree commit diff stats
path: root/lib/impure/db_sqlite.nim
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2022-04-25 11:59:37 +0200
committerGitHub <noreply@github.com>2022-04-25 11:59:37 +0200
commitee0a47029443e6d717ed4a85825b7dcf971dbdf8 (patch)
tree9ef5edb1b28a5367b698855475abe5bb30711df8 /lib/impure/db_sqlite.nim
parent15ae9323e8f1e045bdd68e16231528f8c08fb611 (diff)
downloadNim-ee0a47029443e6d717ed4a85825b7dcf971dbdf8.tar.gz
Revert "fix db_sqlite.tryInsertID does raise exceptions in 1.6.0 #19743 (#19744)" (#19745)
This reverts commit b10f0e7bca43761316f6424786a771af33254e19.
Diffstat (limited to 'lib/impure/db_sqlite.nim')
-rw-r--r--lib/impure/db_sqlite.nim25
1 files changed, 11 insertions, 14 deletions
diff --git a/lib/impure/db_sqlite.nim b/lib/impure/db_sqlite.nim
index db40dddd8..1638d38c6 100644
--- a/lib/impure/db_sqlite.nim
+++ b/lib/impure/db_sqlite.nim
@@ -635,7 +635,7 @@ proc getValue*(db: DbConn,  stmtName: SqlPrepared): string
 
 proc tryInsertID*(db: DbConn, query: SqlQuery,
                   args: varargs[string, `$`]): int64
-                  {.tags: [WriteDbEffect], raises: [].} =
+                  {.tags: [WriteDbEffect], raises: [DbError].} =
   ## Executes the query (typically "INSERT") and returns the
   ## generated ID for the row or -1 in case of an error.
   ##
@@ -650,19 +650,16 @@ proc tryInsertID*(db: DbConn, query: SqlQuery,
   ##                            1, "item#1") == -1
   ##    db.close()
   assert(not db.isNil, "Database not connected.")
+  var q = dbFormat(query, args)
+  var stmt: sqlite3.PStmt
   result = -1
-  try:
-    var q = dbFormat(query, args)
-    var stmt: sqlite3.PStmt
-    if prepare_v2(db, q, q.len.cint, stmt, nil) == SQLITE_OK:
-      if step(stmt) == SQLITE_DONE:
-        result = last_insert_rowid(db)
-      if finalize(stmt) != SQLITE_OK:
-        result = -1
-    else:
-      discard finalize(stmt)
-  except DbError:
-    discard
+  if prepare_v2(db, q, q.len.cint, stmt, nil) == SQLITE_OK:
+    if step(stmt) == SQLITE_DONE:
+      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].} =
@@ -695,7 +692,7 @@ proc insertID*(db: DbConn, query: SqlQuery,
 
 proc tryInsert*(db: DbConn, query: SqlQuery, pkName: string,
                 args: varargs[string, `$`]): int64
-               {.tags: [WriteDbEffect], raises: [], since: (1, 3).} =
+               {.tags: [WriteDbEffect], raises: [DbError], since: (1, 3).} =
   ## same as tryInsertID
   tryInsertID(db, query, args)