From f98e8da5652d303c14e4f406a16a983feefe795f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AD=A6=E7=94=B0=20=E6=86=B2=E5=A4=AA=E9=83=8E?= Date: Sun, 8 Mar 2026 02:37:05 +0000 Subject: [PATCH] ext/pgsql, ext/pdo_pgsql: Remove preprocessor guards for symbols predating libpq 10 While working on php/doc-en#5409 to clean up outdated PostgreSQL version notes in the documentation, I noticed that the source code also retains #ifdef guards for symbols guaranteed to exist in libpq >= 10.0 (the minimum enforced in build/php.m4 via PQencryptPasswordConn). Removed guards (all confirmed in PostgreSQL 10 documentation): - `PG_DIAG_{INTERNAL_POSITION,INTERNAL_QUERY}`: libpq 8.0+ - `PG_DIAG_{SCHEMA,TABLE,COLUMN,DATATYPE,CONSTRAINT}_NAME`: libpq 9.3+ - `PG_DIAG_SEVERITY_NONLOCALIZED`: libpq 9.6+ - `CONNECTION_SSL_STARTUP`: libpq 8.0+ - `CONNECTION_CONSUME`: libpq 10.0+ Refs: - https://www.postgresql.org/docs/10/libpq-exec.html#LIBPQ-PQRESULTERRORFIELD - https://www.postgresql.org/docs/10/libpq-connect.html#LIBPQ-PQCONNECTSTARTPARAMS - https://github.com/php/php-src/blob/53e31d58834ef04375dae7bdc549d73dae371c5a/build/php.m4#L1927 --- ext/pdo_pgsql/pgsql_driver.c | 4 ---- ext/pgsql/pgsql.c | 4 ---- ext/pgsql/pgsql.stub.php | 18 ------------------ ext/pgsql/pgsql_arginfo.h | 20 +------------------- ext/pgsql/tests/03sync_query.phpt | 10 ++-------- 5 files changed, 3 insertions(+), 53 deletions(-) diff --git a/ext/pdo_pgsql/pgsql_driver.c b/ext/pdo_pgsql/pgsql_driver.c index ddc63f01059a4..be429075c51ad 100644 --- a/ext/pdo_pgsql/pgsql_driver.c +++ b/ext/pdo_pgsql/pgsql_driver.c @@ -505,20 +505,16 @@ static int pdo_pgsql_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_ case CONNECTION_AUTH_OK: ZVAL_STRINGL(return_value, "Received authentication; waiting for backend start-up to finish.", strlen("Received authentication; waiting for backend start-up to finish.")); break; -#ifdef CONNECTION_SSL_STARTUP case CONNECTION_SSL_STARTUP: ZVAL_STRINGL(return_value, "Negotiating SSL encryption.", strlen("Negotiating SSL encryption.")); break; -#endif case CONNECTION_SETENV: ZVAL_STRINGL(return_value, "Negotiating environment-driven parameter settings.", strlen("Negotiating environment-driven parameter settings.")); break; -#ifdef CONNECTION_CONSUME case CONNECTION_CONSUME: ZVAL_STRINGL(return_value, "Flushing send queue/consuming extra data.", strlen("Flushing send queue/consuming extra data.")); break; -#endif #ifdef CONNECTION_GSS_STARTUP case CONNECTION_GSS_STARTUP: ZVAL_STRINGL(return_value, "Negotiating GSSAPI.", strlen("Negotiating GSSAPI.")); diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index 03b029523553c..8cd812eb084c0 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -3790,12 +3790,8 @@ PHP_FUNCTION(pg_result_error_field) if (fieldcode & (PG_DIAG_SEVERITY|PG_DIAG_SQLSTATE|PG_DIAG_MESSAGE_PRIMARY|PG_DIAG_MESSAGE_DETAIL |PG_DIAG_MESSAGE_HINT|PG_DIAG_STATEMENT_POSITION -#ifdef PG_DIAG_INTERNAL_POSITION |PG_DIAG_INTERNAL_POSITION -#endif -#ifdef PG_DIAG_INTERNAL_QUERY |PG_DIAG_INTERNAL_QUERY -#endif |PG_DIAG_CONTEXT|PG_DIAG_SOURCE_FILE|PG_DIAG_SOURCE_LINE |PG_DIAG_SOURCE_FUNCTION)) { field = PQresultErrorField(pgsql_result, (int)fieldcode); diff --git a/ext/pgsql/pgsql.stub.php b/ext/pgsql/pgsql.stub.php index f379d115f6d45..0ce1c7d922d4a 100644 --- a/ext/pgsql/pgsql.stub.php +++ b/ext/pgsql/pgsql.stub.php @@ -98,13 +98,11 @@ * @cvalue CONNECTION_AUTH_OK */ const PGSQL_CONNECTION_AUTH_OK = UNKNOWN; -#ifdef CONNECTION_SSL_STARTUP /** * @var int * @cvalue CONNECTION_SSL_STARTUP */ const PGSQL_CONNECTION_SSL_STARTUP = UNKNOWN; -#endif /** * @var int * @cvalue CONNECTION_SETENV @@ -310,20 +308,16 @@ * @cvalue PG_DIAG_STATEMENT_POSITION */ const PGSQL_DIAG_STATEMENT_POSITION = UNKNOWN; -#ifdef PG_DIAG_INTERNAL_POSITION /** * @var int * @cvalue PG_DIAG_INTERNAL_POSITION */ const PGSQL_DIAG_INTERNAL_POSITION = UNKNOWN; -#endif -#ifdef PG_DIAG_INTERNAL_QUERY /** * @var int * @cvalue PG_DIAG_INTERNAL_QUERY */ const PGSQL_DIAG_INTERNAL_QUERY = UNKNOWN; -#endif /** * @var int * @cvalue PG_DIAG_CONTEXT @@ -344,48 +338,36 @@ * @cvalue PG_DIAG_SOURCE_FUNCTION */ const PGSQL_DIAG_SOURCE_FUNCTION = UNKNOWN; -#ifdef PG_DIAG_SCHEMA_NAME /** * @var int * @cvalue PG_DIAG_SCHEMA_NAME */ const PGSQL_DIAG_SCHEMA_NAME = UNKNOWN; -#endif -#ifdef PG_DIAG_TABLE_NAME /** * @var int * @cvalue PG_DIAG_TABLE_NAME */ const PGSQL_DIAG_TABLE_NAME = UNKNOWN; -#endif -#ifdef PG_DIAG_COLUMN_NAME /** * @var int * @cvalue PG_DIAG_COLUMN_NAME */ const PGSQL_DIAG_COLUMN_NAME = UNKNOWN; -#endif -#ifdef PG_DIAG_DATATYPE_NAME /** * @var int * @cvalue PG_DIAG_DATATYPE_NAME */ const PGSQL_DIAG_DATATYPE_NAME = UNKNOWN; -#endif -#ifdef PG_DIAG_CONSTRAINT_NAME /** * @var int * @cvalue PG_DIAG_CONSTRAINT_NAME */ const PGSQL_DIAG_CONSTRAINT_NAME = UNKNOWN; -#endif -#ifdef PG_DIAG_SEVERITY_NONLOCALIZED /** * @var int * @cvalue PG_DIAG_SEVERITY_NONLOCALIZED */ const PGSQL_DIAG_SEVERITY_NONLOCALIZED = UNKNOWN; -#endif /* pg_convert options */ diff --git a/ext/pgsql/pgsql_arginfo.h b/ext/pgsql/pgsql_arginfo.h index 0c49bcc7cfaf3..c9335741eb555 100644 --- a/ext/pgsql/pgsql_arginfo.h +++ b/ext/pgsql/pgsql_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit pgsql.stub.php instead. - * Stub hash: 7c5c32d94c0ac05313d8b19915c6318b0678b75b */ + * Stub hash: 26124c3620c00107a0a72f087ee0580fa895b659 */ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_pg_connect, 0, 1, PgSql\\Connection, MAY_BE_FALSE) ZEND_ARG_TYPE_INFO(0, connection_string, IS_STRING, 0) @@ -772,9 +772,7 @@ static void register_pgsql_symbols(int module_number) REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_MADE", CONNECTION_MADE, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_AWAITING_RESPONSE", CONNECTION_AWAITING_RESPONSE, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_AUTH_OK", CONNECTION_AUTH_OK, CONST_PERSISTENT); -#if defined(CONNECTION_SSL_STARTUP) REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_SSL_STARTUP", CONNECTION_SSL_STARTUP, CONST_PERSISTENT); -#endif REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_SETENV", CONNECTION_SETENV, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PGSQL_POLLING_FAILED", PGRES_POLLING_FAILED, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PGSQL_POLLING_READING", PGRES_POLLING_READING, CONST_PERSISTENT); @@ -817,34 +815,18 @@ static void register_pgsql_symbols(int module_number) REGISTER_LONG_CONSTANT("PGSQL_DIAG_MESSAGE_DETAIL", PG_DIAG_MESSAGE_DETAIL, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PGSQL_DIAG_MESSAGE_HINT", PG_DIAG_MESSAGE_HINT, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PGSQL_DIAG_STATEMENT_POSITION", PG_DIAG_STATEMENT_POSITION, CONST_PERSISTENT); -#if defined(PG_DIAG_INTERNAL_POSITION) REGISTER_LONG_CONSTANT("PGSQL_DIAG_INTERNAL_POSITION", PG_DIAG_INTERNAL_POSITION, CONST_PERSISTENT); -#endif -#if defined(PG_DIAG_INTERNAL_QUERY) REGISTER_LONG_CONSTANT("PGSQL_DIAG_INTERNAL_QUERY", PG_DIAG_INTERNAL_QUERY, CONST_PERSISTENT); -#endif REGISTER_LONG_CONSTANT("PGSQL_DIAG_CONTEXT", PG_DIAG_CONTEXT, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PGSQL_DIAG_SOURCE_FILE", PG_DIAG_SOURCE_FILE, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PGSQL_DIAG_SOURCE_LINE", PG_DIAG_SOURCE_LINE, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PGSQL_DIAG_SOURCE_FUNCTION", PG_DIAG_SOURCE_FUNCTION, CONST_PERSISTENT); -#if defined(PG_DIAG_SCHEMA_NAME) REGISTER_LONG_CONSTANT("PGSQL_DIAG_SCHEMA_NAME", PG_DIAG_SCHEMA_NAME, CONST_PERSISTENT); -#endif -#if defined(PG_DIAG_TABLE_NAME) REGISTER_LONG_CONSTANT("PGSQL_DIAG_TABLE_NAME", PG_DIAG_TABLE_NAME, CONST_PERSISTENT); -#endif -#if defined(PG_DIAG_COLUMN_NAME) REGISTER_LONG_CONSTANT("PGSQL_DIAG_COLUMN_NAME", PG_DIAG_COLUMN_NAME, CONST_PERSISTENT); -#endif -#if defined(PG_DIAG_DATATYPE_NAME) REGISTER_LONG_CONSTANT("PGSQL_DIAG_DATATYPE_NAME", PG_DIAG_DATATYPE_NAME, CONST_PERSISTENT); -#endif -#if defined(PG_DIAG_CONSTRAINT_NAME) REGISTER_LONG_CONSTANT("PGSQL_DIAG_CONSTRAINT_NAME", PG_DIAG_CONSTRAINT_NAME, CONST_PERSISTENT); -#endif -#if defined(PG_DIAG_SEVERITY_NONLOCALIZED) REGISTER_LONG_CONSTANT("PGSQL_DIAG_SEVERITY_NONLOCALIZED", PG_DIAG_SEVERITY_NONLOCALIZED, CONST_PERSISTENT); -#endif REGISTER_LONG_CONSTANT("PGSQL_CONV_IGNORE_DEFAULT", PGSQL_CONV_IGNORE_DEFAULT, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PGSQL_CONV_FORCE_NULL", PGSQL_CONV_FORCE_NULL, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PGSQL_CONV_IGNORE_NOT_NULL", PGSQL_CONV_IGNORE_NOT_NULL, CONST_PERSISTENT); diff --git a/ext/pgsql/tests/03sync_query.phpt b/ext/pgsql/tests/03sync_query.phpt index 36b1230f5f88f..3ecee338d22ad 100644 --- a/ext/pgsql/tests/03sync_query.phpt +++ b/ext/pgsql/tests/03sync_query.phpt @@ -70,14 +70,8 @@ pg_result_error_field($result, PGSQL_DIAG_MESSAGE_PRIMARY); pg_result_error_field($result, PGSQL_DIAG_MESSAGE_DETAIL); pg_result_error_field($result, PGSQL_DIAG_MESSAGE_HINT); pg_result_error_field($result, PGSQL_DIAG_STATEMENT_POSITION); -if (defined('PGSQL_DIAG_INTERNAL_POSITION')) -{ - pg_result_error_field($result, PGSQL_DIAG_INTERNAL_POSITION); -} -if (defined('PGSQL_DIAG_INTERNAL_QUERY')) -{ - pg_result_error_field($result, PGSQL_DIAG_INTERNAL_QUERY); -} +pg_result_error_field($result, PGSQL_DIAG_INTERNAL_POSITION); +pg_result_error_field($result, PGSQL_DIAG_INTERNAL_QUERY); pg_result_error_field($result, PGSQL_DIAG_CONTEXT); pg_result_error_field($result, PGSQL_DIAG_SOURCE_FILE); pg_result_error_field($result, PGSQL_DIAG_SOURCE_LINE);