summaryrefslogtreecommitdiff
path: root/dbd
diff options
context:
space:
mode:
authorbojan <bojan@13f79535-47bb-0310-9956-ffa450edef68>2006-04-25 08:26:09 +0000
committerbojan <bojan@13f79535-47bb-0310-9956-ffa450edef68>2006-04-25 08:26:09 +0000
commit886c61de7c535082a8e2911ce898bca6e02ac4c4 (patch)
tree61f7909ff5dee98e61cc76c21b34362df2aaa0e4 /dbd
parentbbaa3bc7ea38bb29c1939e1a9fc5dc8d2c93db5e (diff)
downloadlibapr-util-886c61de7c535082a8e2911ce898bca6e02ac4c4.tar.gz
Check bad transaction state in dbd_pgsql_pquery()/dbd_pgsql_pselect()
git-svn-id: http://svn.apache.org/repos/asf/apr/apr-util/trunk@396811 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'dbd')
-rw-r--r--dbd/apr_dbd_pgsql.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/dbd/apr_dbd_pgsql.c b/dbd/apr_dbd_pgsql.c
index 1d09f5e3..032ec7f1 100644
--- a/dbd/apr_dbd_pgsql.c
+++ b/dbd/apr_dbd_pgsql.c
@@ -358,6 +358,11 @@ static int dbd_pgsql_pquery(apr_pool_t *pool, apr_dbd_t *sql,
{
int ret;
PGresult *res;
+
+ if (sql->trans && sql->trans->errnum) {
+ return sql->trans->errnum;
+ }
+
if (statement->prepared) {
res = PQexecPrepared(sql->conn, statement->name, nargs, values, 0, 0,
0);
@@ -414,6 +419,11 @@ static int dbd_pgsql_pselect(apr_pool_t *pool, apr_dbd_t *sql,
PGresult *res;
int rv;
int ret = 0;
+
+ if (sql->trans && sql->trans->errnum) {
+ return sql->trans->errnum;
+ }
+
if (seek) { /* synchronous query */
if (statement->prepared) {
res = PQexecPrepared(sql->conn, statement->name, nargs, values, 0,