X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/b169e4c88cd99075c7e932aeb6587c97f51e7ed1..7704b3fc7b8d099ad2bea89d780723a76129095a:/lib-php/DB.php diff --git a/lib-php/DB.php b/lib-php/DB.php index abd23179..6b6326b0 100644 --- a/lib-php/DB.php +++ b/lib-php/DB.php @@ -1,4 +1,12 @@ exec("SET DateStyle TO 'sql,european'"); $conn->exec("SET client_encoding TO 'utf-8'"); + // Disable JIT and parallel workers. They interfere badly with search SQL. + $conn->exec("UPDATE pg_settings SET setting = -1 WHERE name = 'jit_above_cost'"); + $conn->exec("UPDATE pg_settings SET setting = 0 WHERE name = 'max_parallel_workers_per_gather'"); $iMaxExecution = ini_get('max_execution_time'); - if ($iMaxExecution > 0) $conn->setAttribute(\PDO::ATTR_TIMEOUT, $iMaxExecution); // seconds + if ($iMaxExecution > 0) { + $conn->setAttribute(\PDO::ATTR_TIMEOUT, $iMaxExecution); // seconds + } $this->connection = $conn; return true; @@ -95,7 +108,9 @@ class DB try { $stmt = $this->getQueryStatement($sSQL, $aInputVars, $sErrMessage); $row = $stmt->fetch(\PDO::FETCH_NUM); - if ($row === false) return false; + if ($row === false) { + return false; + } } catch (\PDOException $e) { throw new \Nominatim\DatabaseError($sErrMessage, 500, null, $e, $sSQL); } @@ -306,9 +321,13 @@ class DB if (preg_match('/^pgsql:(.+)$/', $sDSN, $aMatches)) { foreach (explode(';', $aMatches[1]) as $sKeyVal) { list($sKey, $sVal) = explode('=', $sKeyVal, 2); - if ($sKey == 'host') $sKey = 'hostspec'; - if ($sKey == 'dbname') $sKey = 'database'; - if ($sKey == 'user') $sKey = 'username'; + if ($sKey == 'host') { + $sKey = 'hostspec'; + } elseif ($sKey == 'dbname') { + $sKey = 'database'; + } elseif ($sKey == 'user') { + $sKey = 'username'; + } $aInfo[$sKey] = $sVal; } }