Skip to content

ext/pgsql: Update outdated PostgreSQL version requirements#5409

Open
KentarouTakeda wants to merge 1 commit intophp:masterfrom
KentarouTakeda:fix/pgsql-outdated-version-requirements
Open

ext/pgsql: Update outdated PostgreSQL version requirements#5409
KentarouTakeda wants to merge 1 commit intophp:masterfrom
KentarouTakeda:fix/pgsql-outdated-version-requirements

Conversation

@KentarouTakeda
Copy link
Contributor

Summary

The pgsql extension documentation references PostgreSQL versions that have been outdated for years. The requirements page (reference/pgsql/setup.xml) states:

https://www.php.net/manual/en/pgsql.requirements.php

To use PostgreSQL support, you need PostgreSQL 6.5 or later,
PostgreSQL 8.0 or later to enable all PostgreSQL module features.

However, the actual minimum libpq versions enforced by php-src are:

PHP version Minimum libpq Commit
PHP 8.0+ libpq 9.1 php/php-src@ce668c0ec6
PHP 8.4+ libpq 10.0 php/php-src#14628

The "PostgreSQL 6.5" requirement has been incorrect since at least PHP 8.0.0 (released 2020-11-26), which requires libpq 9.1 via PQlibVersion check in ext/pgsql/config.m4. As of PHP 8.4, the minimum was further raised to libpq 10.0 via PQencryptPasswordConn check in build/php.m4.

Changes

  • setup.xml: Update requirements to match php-src, following the same pattern used by ext/curl and ext/openssl (per-PHP-version listing).
  • 14 function pages: Remove notes referencing PostgreSQL versions 6.3–9.0 that are no longer relevant given the libpq 10.0 minimum. These include version-gated notes for pg_prepare, pg_query_params, pg_execute, pg_escape_string, pg_escape_identifier, pg_escape_literal, pg_client_encoding, pg_unescape_bytea, pg_result_error_field, pg_parameter_status, pg_lo_create, pg_version, pg_affected_rows, and the general reference.xml.

## Summary

The pgsql extension documentation references PostgreSQL versions that have been
outdated for years. The requirements page (`reference/pgsql/setup.xml`) states:

https://www.php.net/manual/en/pgsql.requirements.php

> To use PostgreSQL support, you need PostgreSQL 6.5 or later,
> PostgreSQL 8.0 or later to enable all PostgreSQL module features.

However, the actual minimum libpq versions enforced by php-src are:

| PHP version | Minimum libpq | Commit |
|---|---|---|
| PHP 8.0+ | libpq 9.1 | php/php-src@ce668c0ec6 |
| PHP 8.4+ | libpq 10.0 | php/php-src#14628 |

The "PostgreSQL 6.5" requirement has been incorrect since at least PHP 8.0.0
(released 2020-11-26), which requires libpq 9.1 via `PQlibVersion` check in
`ext/pgsql/config.m4`. As of PHP 8.4, the minimum was further raised to libpq
10.0 via `PQencryptPasswordConn` check in `build/php.m4`.

## Changes

- **setup.xml**: Update requirements to match php-src, following the same
  pattern used by ext/curl and ext/openssl (per-PHP-version listing).
- **14 function pages**: Remove notes referencing PostgreSQL versions 6.3–9.0
  that are no longer relevant given the libpq 10.0 minimum. These include
  version-gated notes for `pg_prepare`, `pg_query_params`, `pg_execute`,
  `pg_escape_string`, `pg_escape_identifier`, `pg_escape_literal`,
  `pg_client_encoding`, `pg_unescape_bytea`, `pg_result_error_field`,
  `pg_parameter_status`, `pg_lo_create`, `pg_version`, `pg_affected_rows`,
  and the general `reference.xml`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant