X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/ab6a99677293c9ddb96a717f03b8a009e98ab955..131527bdab6738baff679171c421ea7fa863e100:/lib/db.php diff --git a/lib/db.php b/lib/db.php index 4f7336c1..ab578e4b 100644 --- a/lib/db.php +++ b/lib/db.php @@ -1,18 +1,39 @@ getMessage(), 'Unable to connect to the database'); + // Get the database object + $oDB =& DB::connect(CONST_Database_DSN.($bNew?'?new_link=true':''), $bPersistent); + if (PEAR::IsError($oDB)) + { + var_dump(CONST_Database_DSN); + var_Dump($oDB); + fail($oDB->getMessage()); + } + $oDB->setFetchMode(DB_FETCHMODE_ASSOC); + $oDB->query("SET DateStyle TO 'sql,european'"); + $oDB->query("SET client_encoding TO 'utf-8'"); + $iMaxExecution = ini_get('max_execution_time') * 1000; + if ($iMaxExecution > 0) $oDB->query("SET statement_timeout TO $iMaxExecution"); + return $oDB; } - $oDB->setFetchMode(DB_FETCHMODE_ASSOC); - $oDB->query("SET DateStyle TO 'sql,european'"); - $oDB->query("SET client_encoding TO 'utf-8'"); function getDBQuoted($s) { return "'".pg_escape_string($s)."'"; } + function getPostgresVersion(&$oDB) + { + $sVersionString = $oDB->getOne('select version()'); + preg_match('#PostgreSQL ([0-9]+)[.]([0-9]+)[^0-9]#', $sVersionString, $aMatches); + return (float) ($aMatches[1].'.'.$aMatches[2]); + } + + function getPostgisVersion(&$oDB) + { + $sVersionString = $oDB->getOne('select postgis_full_version()'); + preg_match('#POSTGIS="([0-9]+)[.]([0-9]+)[.]([0-9]+)( r([0-9]+))?"#', $sVersionString, $aMatches); + return (float) ($aMatches[1].'.'.$aMatches[2]); + }