diff options
author | Ilia Alshanetsky <iliaa@php.net> | 2006-09-19 15:45:22 +0000 |
---|---|---|
committer | Ilia Alshanetsky <iliaa@php.net> | 2006-09-19 15:45:22 +0000 |
commit | 2332e4f9fc134b2ddec3779bcaf1ea237631b7c2 (patch) | |
tree | 8cb52e69a09ce1760b3c0e6bbf9b94022129e682 /ext/pdo_pgsql | |
parent | db5dc9d5d8f8a5047a528239703552c94c75d702 (diff) | |
download | php-git-2332e4f9fc134b2ddec3779bcaf1ea237631b7c2.tar.gz |
Fixed bug #37870 (pgo_pgsql tries to de-allocate unused statements).
Fixed bug #36681 (pdo_pgsql driver incorrectly ignored some errors).
Fixed test for bug #38253 not to use faulty SQL that generates errors in
PostgreSQL
Diffstat (limited to 'ext/pdo_pgsql')
-rw-r--r-- | ext/pdo_pgsql/pgsql_driver.c | 1 | ||||
-rw-r--r-- | ext/pdo_pgsql/pgsql_statement.c | 12 |
2 files changed, 9 insertions, 4 deletions
diff --git a/ext/pdo_pgsql/pgsql_driver.c b/ext/pdo_pgsql/pgsql_driver.c index ed28052d2c..11f320e416 100644 --- a/ext/pdo_pgsql/pgsql_driver.c +++ b/ext/pdo_pgsql/pgsql_driver.c @@ -472,6 +472,7 @@ static int pdo_pgsql_transaction_cmd(const char *cmd, pdo_dbh_t *dbh TSRMLS_DC) res = PQexec(H->server, cmd); if (PQresultStatus(res) != PGRES_COMMAND_OK) { + pdo_pgsql_error(dbh, PQresultStatus(res), pdo_pgsql_sqlstate(res)); ret = 0; } diff --git a/ext/pdo_pgsql/pgsql_statement.c b/ext/pdo_pgsql/pgsql_statement.c index a1488b5a39..2821fe880b 100644 --- a/ext/pdo_pgsql/pgsql_statement.c +++ b/ext/pdo_pgsql/pgsql_statement.c @@ -60,10 +60,14 @@ static int pgsql_stmt_dtor(pdo_stmt_t *stmt TSRMLS_DC) char *q = NULL; PGresult *res; - spprintf(&q, 0, "DEALLOCATE %s", S->stmt_name); - res = PQexec(H->server, q); - efree(q); - if (res) PQclear(res); + if (S->is_prepared) { + spprintf(&q, 0, "DEALLOCATE %s", S->stmt_name); + res = PQexec(H->server, q); + efree(q); + if (res) { + PQclear(res); + } + } efree(S->stmt_name); S->stmt_name = NULL; } |