-$sOsm2pgsqlCmd = CONST_Osm2pgsql_Binary.' -klas --number-processes 1 -C '.$iCacheMemory.' -O gazetteer -d '.$aDSNInfo['database'].' -P '.$aDSNInfo['port'];
-if (!is_null(CONST_Osm2pgsql_Flatnode_File)) {
- $sOsm2pgsqlCmd .= ' --flat-nodes '.CONST_Osm2pgsql_Flatnode_File;
+
+$oOsm2pgsqlCmd = (new \Nominatim\Shell(CONST_Osm2pgsql_Binary))
+ ->addParams('--hstore')
+ ->addParams('--latlong')
+ ->addParams('--append')
+ ->addParams('--slim')
+ ->addParams('--number-processes', 1)
+ ->addParams('--cache', $iCacheMemory)
+ ->addParams('--output', 'gazetteer')
+ ->addParams('--style', CONST_Import_Style)
+ ->addParams('--database', $aDSNInfo['database'])
+ ->addParams('--port', $aDSNInfo['port']);
+
+if (isset($aDSNInfo['hostspec']) && $aDSNInfo['hostspec']) {
+ $oOsm2pgsqlCmd->addParams('--host', $aDSNInfo['hostspec']);
+}
+if (isset($aDSNInfo['username']) && $aDSNInfo['username']) {
+ $oOsm2pgsqlCmd->addParams('--user', $aDSNInfo['username']);
+}
+if (isset($aDSNInfo['password']) && $aDSNInfo['password']) {
+ $oOsm2pgsqlCmd->addEnvPair('PGPASSWORD', $aDSNInfo['password']);
+}
+if (!is_null(CONST_Osm2pgsql_Flatnode_File) && CONST_Osm2pgsql_Flatnode_File) {
+ $oOsm2pgsqlCmd->addParams('--flat-nodes', CONST_Osm2pgsql_Flatnode_File);
+}
+if ($fPostgresVersion >= 11.0) {
+ $oOsm2pgsqlCmd->addEnvPair(
+ 'PGOPTIONS',
+ '-c jit=off -c max_parallel_workers_per_gather=0'
+ );