diff options
author | bojan <bojan@13f79535-47bb-0310-9956-ffa450edef68> | 2006-04-25 08:26:09 +0000 |
---|---|---|
committer | bojan <bojan@13f79535-47bb-0310-9956-ffa450edef68> | 2006-04-25 08:26:09 +0000 |
commit | 886c61de7c535082a8e2911ce898bca6e02ac4c4 (patch) | |
tree | 61f7909ff5dee98e61cc76c21b34362df2aaa0e4 /dbd | |
parent | bbaa3bc7ea38bb29c1939e1a9fc5dc8d2c93db5e (diff) | |
download | libapr-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.c | 10 |
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, |