Skip to content

Commit 95f829d

Browse files
authored
ext/pdo_pgsql: cleanup the 3rd protocol is supported since circa 2010. (#12464)
1 parent 045dc10 commit 95f829d

File tree

2 files changed

+3
-19
lines changed

2 files changed

+3
-19
lines changed

ext/pdo_pgsql/pgsql_driver.c

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -278,10 +278,6 @@ static bool pgsql_handle_preparer(pdo_dbh_t *dbh, zend_string *sql, pdo_stmt_t *
278278
execute_only = H->disable_prepares;
279279
}
280280

281-
if (!emulate && PQprotocolVersion(H->server) <= 2) {
282-
emulate = 1;
283-
}
284-
285281
if (emulate) {
286282
stmt->supports_placeholders = PDO_PLACEHOLDER_NONE;
287283
} else {
@@ -445,19 +441,7 @@ static int pdo_pgsql_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_
445441
}
446442

447443
case PDO_ATTR_SERVER_VERSION:
448-
if (PQprotocolVersion(H->server) >= 3) { /* PostgreSQL 7.4 or later */
449-
ZVAL_STRING(return_value, (char*)PQparameterStatus(H->server, "server_version"));
450-
} else /* emulate above via a query */
451-
{
452-
PGresult *res = PQexec(H->server, "SELECT VERSION()");
453-
if (res && PQresultStatus(res) == PGRES_TUPLES_OK) {
454-
ZVAL_STRING(return_value, (char *)PQgetvalue(res, 0, 0));
455-
}
456-
457-
if (res) {
458-
PQclear(res);
459-
}
460-
}
444+
ZVAL_STRING(return_value, (char*)PQparameterStatus(H->server, "server_version"));
461445
break;
462446

463447
case PDO_ATTR_CONNECTION_STATUS:
@@ -675,8 +659,8 @@ PHP_METHOD(PDO_PGSql_Ext, pgsqlCopyFromArray)
675659
buffer_len = Z_STRLEN_P(tmp);
676660
query = erealloc(query, buffer_len + 2); /* room for \n\0 */
677661
}
678-
memcpy(query, Z_STRVAL_P(tmp), Z_STRLEN_P(tmp));
679662
query_len = Z_STRLEN_P(tmp);
663+
memcpy(query, Z_STRVAL_P(tmp), query_len);
680664
if (query[query_len - 1] != '\n') {
681665
query[query_len++] = '\n';
682666
}

ext/pdo_pgsql/tests/bug48764.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ $db = PDOTest::factory();
1414
$client_version = $db->getAttribute(PDO::ATTR_CLIENT_VERSION);
1515
$server_version = $db->getAttribute(PDO::ATTR_SERVER_VERSION);
1616

17-
if (version_compare($server_version, '7.4', '<') || version_compare($client_version, '7.4', '<') || version_compare($server_version, '10', '>=')) {
17+
if (version_compare($server_version, '10', '>=')) {
1818
die('skip');
1919
}
2020

0 commit comments

Comments
 (0)