ext/pgsql: cleanup the 3rd protocol is supported since circa 2010. (#12465)

This commit is contained in:
David CARLIER 2023-10-18 05:28:47 +01:00 committed by GitHub
parent 6518feced0
commit 045dc10b1b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 222 additions and 260 deletions

View file

@ -362,7 +362,7 @@ static int _rollback_transactions(zval *el)
while ((res = PQgetResult(link))) { while ((res = PQgetResult(link))) {
PQclear(res); PQclear(res);
} }
if ((PQprotocolVersion(link) >= 3 && PQtransactionStatus(link) != PQTRANS_IDLE) || PQprotocolVersion(link) < 3) { if (PQtransactionStatus(link) != PQTRANS_IDLE) {
int orig = PGG(ignore_notices); int orig = PGG(ignore_notices);
PGG(ignore_notices) = 1; PGG(ignore_notices) = 1;
res = PQexec(link,"ROLLBACK;"); res = PQexec(link,"ROLLBACK;");
@ -614,7 +614,7 @@ static void php_pgsql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
} }
pgsql = (PGconn *) le->ptr; pgsql = (PGconn *) le->ptr;
/* consider to use php_version_compare() here */ /* consider to use php_version_compare() here */
if (PQprotocolVersion(pgsql) >= 3 && zend_strtod(PQparameterStatus(pgsql, "server_version"), NULL) >= 7.2) { if (zend_strtod(PQparameterStatus(pgsql, "server_version"), NULL) >= 7.2) {
pg_result = PQexec(pgsql, "RESET ALL;"); pg_result = PQexec(pgsql, "RESET ALL;");
PQclear(pg_result); PQclear(pg_result);
} }
@ -815,13 +815,11 @@ static void php_pgsql_get_link_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type
case PHP_PG_HOST: case PHP_PG_HOST:
result = PQhost(pgsql); result = PQhost(pgsql);
break; break;
case PHP_PG_VERSION: case PHP_PG_VERSION: {
array_init(return_value); array_init(return_value);
char *tmp;
add_assoc_string(return_value, "client", pgsql_libpq_version); add_assoc_string(return_value, "client", pgsql_libpq_version);
add_assoc_long(return_value, "protocol", PQprotocolVersion(pgsql)); add_assoc_long(return_value, "protocol", PQprotocolVersion(pgsql));
if (PQprotocolVersion(pgsql) >= 3) {
/* 8.0 or grater supports protorol version 3 */
char *tmp;
add_assoc_string(return_value, "server", (char*)PQparameterStatus(pgsql, "server_version")); add_assoc_string(return_value, "server", (char*)PQparameterStatus(pgsql, "server_version"));
#define PHP_PQ_COPY_PARAM(_x) tmp = (char*)PQparameterStatus(pgsql, _x); \ #define PHP_PQ_COPY_PARAM(_x) tmp = (char*)PQparameterStatus(pgsql, _x); \
@ -838,8 +836,8 @@ static void php_pgsql_get_link_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type
PHP_PQ_COPY_PARAM("integer_datetimes"); PHP_PQ_COPY_PARAM("integer_datetimes");
PHP_PQ_COPY_PARAM("standard_conforming_strings"); PHP_PQ_COPY_PARAM("standard_conforming_strings");
PHP_PQ_COPY_PARAM("application_name"); PHP_PQ_COPY_PARAM("application_name");
}
return; return;
}
EMPTY_SWITCH_DEFAULT_CASE() EMPTY_SWITCH_DEFAULT_CASE()
} }
if (result) { if (result) {
@ -4015,7 +4013,7 @@ PHP_FUNCTION(pg_get_notify)
add_index_string(return_value, 0, pgsql_notify->relname); add_index_string(return_value, 0, pgsql_notify->relname);
add_index_long(return_value, 1, pgsql_notify->be_pid); add_index_long(return_value, 1, pgsql_notify->be_pid);
/* consider to use php_version_compare() here */ /* consider to use php_version_compare() here */
if (PQprotocolVersion(pgsql) >= 3 && zend_strtod(PQparameterStatus(pgsql, "server_version"), NULL) >= 9.0) { if (zend_strtod(PQparameterStatus(pgsql, "server_version"), NULL) >= 9.0) {
add_index_string(return_value, 2, pgsql_notify->extra); add_index_string(return_value, 2, pgsql_notify->extra);
} }
} }
@ -4023,7 +4021,7 @@ PHP_FUNCTION(pg_get_notify)
add_assoc_string(return_value, "message", pgsql_notify->relname); add_assoc_string(return_value, "message", pgsql_notify->relname);
add_assoc_long(return_value, "pid", pgsql_notify->be_pid); add_assoc_long(return_value, "pid", pgsql_notify->be_pid);
/* consider to use php_version_compare() here */ /* consider to use php_version_compare() here */
if (PQprotocolVersion(pgsql) >= 3 && zend_strtod(PQparameterStatus(pgsql, "server_version"), NULL) >= 9.0) { if (zend_strtod(PQparameterStatus(pgsql, "server_version"), NULL) >= 9.0) {
add_assoc_string(return_value, "payload", pgsql_notify->extra); add_assoc_string(return_value, "payload", pgsql_notify->extra);
} }
} }

View file

@ -13,9 +13,6 @@ if (!function_exists('pg_query_params')) die('skip function pg_query_params() do
include('config.inc'); include('config.inc');
$db = pg_connect($conn_str); $db = pg_connect($conn_str);
$version = pg_version($db);
if ($version['protocol'] >= 3) {
$result = pg_query_params($db, "SELECT * FROM ".$table_name." WHERE num > \$1;", array(100)); $result = pg_query_params($db, "SELECT * FROM ".$table_name." WHERE num > \$1;", array(100));
if (!($rows = pg_num_rows($result))) if (!($rows = pg_num_rows($result)))
{ {
@ -52,7 +49,6 @@ if ($version['protocol'] >= 3) {
pg_last_oid($result); pg_last_oid($result);
pg_free_result($result); pg_free_result($result);
}
pg_close($db); pg_close($db);
echo "OK"; echo "OK";

View file

@ -14,8 +14,6 @@ include('config.inc');
$db = pg_connect($conn_str); $db = pg_connect($conn_str);
$version = pg_version($db);
if ($version['protocol'] >= 3) {
$result = pg_prepare($db, "php_test", "SELECT * FROM ".$table_name." WHERE num > \$1;"); $result = pg_prepare($db, "php_test", "SELECT * FROM ".$table_name." WHERE num > \$1;");
pg_result_error($result); pg_result_error($result);
pg_free_result($result); pg_free_result($result);
@ -58,7 +56,6 @@ if ($version['protocol'] >= 3) {
pg_last_oid($result); pg_last_oid($result);
pg_free_result($result); pg_free_result($result);
}
pg_close($db); pg_close($db);
echo "OK"; echo "OK";

View file

@ -13,9 +13,6 @@ if (!function_exists('pg_send_query_params')) die('skip function pg_send_query_p
include('config.inc'); include('config.inc');
$db = pg_connect($conn_str); $db = pg_connect($conn_str);
$version = pg_version($db);
if ($version['protocol'] >= 3) {
if (!pg_send_query_params($db, "SELECT * FROM ".$table_name." WHERE num > \$1;", array(100))) { if (!pg_send_query_params($db, "SELECT * FROM ".$table_name." WHERE num > \$1;", array(100))) {
echo "pg_send_query_params() error\n"; echo "pg_send_query_params() error\n";
} }
@ -63,7 +60,6 @@ if ($version['protocol'] >= 3) {
pg_last_oid($result); pg_last_oid($result);
pg_free_result($result); pg_free_result($result);
}
pg_close($db); pg_close($db);
echo "OK"; echo "OK";

View file

@ -13,9 +13,6 @@ if (!function_exists('pg_send_prepare')) die('skip function pg_send_prepare() do
include('config.inc'); include('config.inc');
$db = pg_connect($conn_str); $db = pg_connect($conn_str);
$version = pg_version($db);
if ($version['protocol'] >= 3) {
if (!pg_send_prepare($db, 'php_test', "SELECT * FROM ".$table_name." WHERE num > \$1;")) { if (!pg_send_prepare($db, 'php_test', "SELECT * FROM ".$table_name." WHERE num > \$1;")) {
echo "pg_send_prepare() error\n"; echo "pg_send_prepare() error\n";
} }
@ -99,7 +96,6 @@ if ($version['protocol'] >= 3) {
pg_last_oid($result); pg_last_oid($result);
pg_free_result($result); pg_free_result($result);
}
pg_close($db); pg_close($db);
echo "OK"; echo "OK";

View file

@ -14,13 +14,6 @@ include('config.inc');
include('nonblocking.inc'); include('nonblocking.inc');
$db = pg_connect($conn_str); $db = pg_connect($conn_str);
$version = pg_version($db);
if ($version['protocol'] < 3) {
echo "OK";
exit(0);
}
$db_socket = pg_socket($db); $db_socket = pg_socket($db);
stream_set_blocking($db_socket, false); stream_set_blocking($db_socket, false);

View file

@ -14,13 +14,6 @@ include('config.inc');
include('nonblocking.inc'); include('nonblocking.inc');
$db = pg_connect($conn_str); $db = pg_connect($conn_str);
$version = pg_version($db);
if ($version['protocol'] < 3) {
echo "OK";
exit(0);
}
$db_socket = pg_socket($db); $db_socket = pg_socket($db);
stream_set_blocking($db_socket, false); stream_set_blocking($db_socket, false);

View file

@ -14,13 +14,6 @@ include('config.inc');
include('nonblocking.inc'); include('nonblocking.inc');
$db = pg_connect($conn_str); $db = pg_connect($conn_str);
$version = pg_version($db);
if ($version['protocol'] < 3) {
echo "OK";
exit(0);
}
$db_socket = pg_socket($db); $db_socket = pg_socket($db);
stream_set_blocking($db_socket, false); stream_set_blocking($db_socket, false);