mirror of
https://github.com/php/php-src.git
synced 2024-09-23 19:07:26 +00:00
MFB:
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
This commit is contained in:
parent
19ac74fd23
commit
8690a5a2d9
@ -15,7 +15,7 @@ require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
|
||||
$pdo = PDOTest::factory();
|
||||
|
||||
$pdo->exec ("create table test (id integer primary key, n text)");
|
||||
$pdo->exec ("INSERT INTO test (n) VALUES ('hi')");
|
||||
$pdo->exec ("INSERT INTO test (id, n) VALUES (1, 'hi')");
|
||||
|
||||
$pdo->setAttribute (PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_CLASS);
|
||||
$stmt = $pdo->prepare ("SELECT * FROM test");
|
||||
@ -25,7 +25,7 @@ var_dump($stmt->fetchAll());
|
||||
$pdo = PDOTest::factory();
|
||||
|
||||
$pdo->exec ("create table test2 (id integer primary key, n text)");
|
||||
$pdo->exec ("INSERT INTO test2 (n) VALUES ('hi')");
|
||||
$pdo->exec ("INSERT INTO test2 (id, n) VALUES (1,'hi')");
|
||||
|
||||
$pdo->setAttribute (PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_FUNC);
|
||||
$stmt = $pdo->prepare ("SELECT * FROM test2");
|
||||
|
@ -414,6 +414,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;
|
||||
}
|
||||
|
||||
|
@ -55,10 +55,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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user