mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-16 15:47:58 +00:00
@@ -38,23 +38,25 @@ class DB
|
|||||||
|
|
||||||
// https://secure.php.net/manual/en/ref.pdo-pgsql.connection.php
|
// https://secure.php.net/manual/en/ref.pdo-pgsql.connection.php
|
||||||
try {
|
try {
|
||||||
$conn = new \PDO($this->sDSN, null, null, $aConnOptions);
|
$this->connection = new \PDO($this->sDSN, null, null, $aConnOptions);
|
||||||
} catch (\PDOException $e) {
|
} catch (\PDOException $e) {
|
||||||
$sMsg = 'Failed to establish database connection:' . $e->getMessage();
|
$sMsg = 'Failed to establish database connection:' . $e->getMessage();
|
||||||
throw new \Nominatim\DatabaseError($sMsg, 500, null, $e->getMessage());
|
throw new \Nominatim\DatabaseError($sMsg, 500, null, $e->getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
$conn->exec("SET DateStyle TO 'sql,european'");
|
$this->connection->exec("SET DateStyle TO 'sql,european'");
|
||||||
$conn->exec("SET client_encoding TO 'utf-8'");
|
$this->connection->exec("SET client_encoding TO 'utf-8'");
|
||||||
// Disable JIT and parallel workers. They interfere badly with search SQL.
|
// Disable JIT and parallel workers. They interfere badly with search SQL.
|
||||||
$conn->exec("UPDATE pg_settings SET setting = -1 WHERE name = 'jit_above_cost'");
|
$this->connection->exec('SET max_parallel_workers_per_gather TO 0');
|
||||||
$conn->exec("UPDATE pg_settings SET setting = 0 WHERE name = 'max_parallel_workers_per_gather'");
|
if ($this->getPostgresVersion() >= 11) {
|
||||||
|
$this->connection->exec('SET jit_above_cost TO -1');
|
||||||
|
}
|
||||||
|
|
||||||
$iMaxExecution = ini_get('max_execution_time');
|
$iMaxExecution = ini_get('max_execution_time');
|
||||||
if ($iMaxExecution > 0) {
|
if ($iMaxExecution > 0) {
|
||||||
$conn->setAttribute(\PDO::ATTR_TIMEOUT, $iMaxExecution); // seconds
|
$this->connection->setAttribute(\PDO::ATTR_TIMEOUT, $iMaxExecution); // seconds
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->connection = $conn;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user