From 8d1a7db6ea7cd4e8d9e2b38874477c12b99ffcd7 Mon Sep 17 00:00:00 2001 From: Chris Heller Date: Sun, 29 Dec 2019 08:41:18 -0800 Subject: [PATCH] Check pqntuples > 0 in getValue. Fixes #12973 (#12974) --- lib/impure/db_postgres.nim | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/impure/db_postgres.nim b/lib/impure/db_postgres.nim index fde4db1196..57c61fa23f 100644 --- a/lib/impure/db_postgres.nim +++ b/lib/impure/db_postgres.nim @@ -441,8 +441,12 @@ proc getValue*(db: DbConn, query: SqlQuery, ## executes the query and returns the first column of the first row of the ## result dataset. Returns "" if the dataset contains no rows or the database ## value is NULL. - var x = pqgetvalue(setupQuery(db, query, args), 0, 0) - result = if isNil(x): "" else: $x + var res = setupQuery(db, query, args) + if pqntuples(res) > 0: + var x = pqgetvalue(res, 0, 0) + result = if isNil(x): "" else: $x + else: + result = "" proc getValue*(db: DbConn, stmtName: SqlPrepared, args: varargs[string, `$`]): string {. @@ -450,8 +454,12 @@ proc getValue*(db: DbConn, stmtName: SqlPrepared, ## executes the query and returns the first column of the first row of the ## result dataset. Returns "" if the dataset contains no rows or the database ## value is NULL. - var x = pqgetvalue(setupQuery(db, stmtName, args), 0, 0) - result = if isNil(x): "" else: $x + var res = setupQuery(db, stmtName, args) + if pqntuples(res) > 0: + var x = pqgetvalue(res, 0, 0) + result = if isNil(x): "" else: $x + else: + result = "" proc tryInsertID*(db: DbConn, query: SqlQuery, args: varargs[string, `$`]): int64 {.