summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorDamien Regad <dregad@mantisbt.org>2025-01-25 00:13:49 +0100
committerDamien Regad <dregad@mantisbt.org>2025-01-25 00:13:49 +0100
commit28ea66498d138615e93296acdf8c12b4ab4b86af (patch)
tree6881f41bc62fa77a59d723ee7930d63a016f46af /drivers
parentb20c936db3742e76900962017ae9c6a1156cf1bb (diff)
downloadadodb-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.php11
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,
);