X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/cfb0f3f94ced30b8b44390367e07bc9b0cec787d..a83424fee50c6837bcadad44ae374de98e4bb1f1:/utils/update.php diff --git a/utils/update.php b/utils/update.php index 232a23c9..475e5836 100755 --- a/utils/update.php +++ b/utils/update.php @@ -156,16 +156,25 @@ if ($bHaveDiff) { } if ($aResult['deduplicate']) { - // - if (getPostgresVersion() < 9.3) { + $oDB =& getDB(); + + if (getPostgresVersion($oDB) < 9.3) { fail("ERROR: deduplicate is only currently supported in postgresql 9.3"); } - $oDB =& getDB(); $sSQL = 'select partition from country_name order by country_code'; $aPartitions = chksql($oDB->getCol($sSQL)); $aPartitions[] = 0; + // we don't care about empty search_name_* artitions, they can't contain mentions of duplicates + foreach ($aPartitions as $i => $sPartition) { + $sSQL = "select count(*) from search_name_".$sPartition; + $nEntries = chksql($oDB->getOne($sSQL)); + if ($nEntries == 0) { + unset($aPartitions[$i]); + } + } + $sSQL = "select word_token,count(*) from word where substr(word_token, 1, 1) = ' '"; $sSQL .= " and class is null and type is null and country_code is null"; $sSQL .= " group by word_token having count(*) > 1 order by word_token"; @@ -298,6 +307,15 @@ if ($aResult['import-osmosis'] || $aResult['import-osmosis-all']) { // Index file $sThisIndexCmd = $sCMDIndex; + if (!isset($aResult['index-instances'])) { + if (getLoadAverage() < 24) + $iIndexInstances = 2; + else + $iIndexInstances = 1; + } else + $iIndexInstances = $aResult['index-instances']; + + $sThisIndexCmd = $sCMDIndex.' -t '.$iIndexInstances; $fCMDStartTime = time(); if (!$aResult['no-index']) {