diff options
| author | Damien Regad <dregad@mantisbt.org> | 2025-01-25 00:13:49 +0100 |
|---|---|---|
| committer | Damien Regad <dregad@mantisbt.org> | 2025-01-25 00:13:49 +0100 |
| commit | 28ea66498d138615e93296acdf8c12b4ab4b86af (patch) | |
| tree | 6881f41bc62fa77a59d723ee7930d63a016f46af /drivers | |
| parent | b20c936db3742e76900962017ae9c6a1156cf1bb (diff) | |
| download | adodb-28ea66498d138615e93296acdf8c12b4ab4b86af.tar.gz adodb-28ea66498d138615e93296acdf8c12b4ab4b86af.tar.bz2 adodb-28ea66498d138615e93296acdf8c12b4ab4b86af.zip | |
pgsql: fix serverInfo() version number
In ADOdb versions < 5.21.0-beta.1, serverInfo()['version'] returned just
the version number (e.g. `15.10`), which was extracted from the version
string using ADOConnection::_findVers().
Commit f2b88e063d61b12a1df9090b8d0c68831ed0f447 removed the _findVers()
call, so serverInfo() could potentially return additional information
depending on the actual value returned by pg_version() (e.g.
`15.10 (Debian 15.10-0+deb12u1)`.
This could cause subsequent version comparisons to fail, e.g. in
metaTables().
Fixes #1059
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/adodb-postgres64.inc.php | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/adodb-postgres64.inc.php b/drivers/adodb-postgres64.inc.php index 9bf9e713..b1d161d7 100644 --- a/drivers/adodb-postgres64.inc.php +++ b/drivers/adodb-postgres64.inc.php @@ -113,13 +113,12 @@ class ADODB_postgres64 extends ADOConnection{ } $version = pg_version($this->_connectionID); + // If PHP has been compiled with PostgreSQL 7.3 or lower, then + // server_version is not set so we use pg_parameter_status() instead. + $version_server = $version['server'] ?? pg_parameter_status($this->_connectionID, 'server_version'); + $this->version = array( - // If PHP has been compiled with PostgreSQL 7.3 or lower, then - // server version is not set so we use pg_parameter_status() - // which includes logic to obtain values server_version - 'version' => isset($version['server']) - ? $version['server'] - : pg_parameter_status($this->_connectionID, 'server_version'), + 'version' => $this->_findvers($version_server), 'client' => $version['client'], 'description' => null, ); |
