X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/a769fc4ff3b82e618ebd7737fa377ec53ae4fe52..a827367a2f392c9d4be0a4131bc6fd276608cf48:/utils/update.php diff --git a/utils/update.php b/utils/update.php index f5dec537..82362b31 100755 --- a/utils/update.php +++ b/utils/update.php @@ -178,33 +178,24 @@ if ($aResult['deduplicate']) { - $pgver = (float) CONST_Postgresql_Version; - if ($pgver < 9.3) { + if (getPostgresVersion() < 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 = $oDB->getCol($sSQL); - if (PEAR::isError($aPartitions)) - { - fail($aPartitions->getMessage()); - } + $aPartitions = chksql($oDB->getCol($sSQL)); $aPartitions[] = 0; $sSQL = "select word_token,count(*) from word where substr(word_token, 1, 1) = ' ' and class is null and type is null and country_code is null group by word_token having count(*) > 1 order by word_token"; - $aDuplicateTokens = $oDB->getAll($sSQL); + $aDuplicateTokens = chksql($oDB->getAll($sSQL)); foreach($aDuplicateTokens as $aToken) { if (trim($aToken['word_token']) == '' || trim($aToken['word_token']) == '-') continue; echo "Deduping ".$aToken['word_token']."\n"; $sSQL = "select word_id,(select count(*) from search_name where nameaddress_vector @> ARRAY[word_id]) as num from word where word_token = '".$aToken['word_token']."' and class is null and type is null and country_code is null order by num desc"; - $aTokenSet = $oDB->getAll($sSQL); - if (PEAR::isError($aTokenSet)) - { - var_dump($aTokenSet, $sSQL); - exit(1); - } + $aTokenSet = chksql($oDB->getAll($sSQL)); $aKeep = array_shift($aTokenSet); $iKeepID = $aKeep['word_id']; @@ -215,63 +206,33 @@ $sSQL .= " name_vector = array_replace(name_vector,".$aRemove['word_id'].",".$iKeepID."),"; $sSQL .= " nameaddress_vector = array_replace(nameaddress_vector,".$aRemove['word_id'].",".$iKeepID.")"; $sSQL .= " where name_vector @> ARRAY[".$aRemove['word_id']."]"; - $x = $oDB->query($sSQL); - if (PEAR::isError($x)) - { - var_dump($x); - exit(1); - } + chksql($oDB->query($sSQL)); $sSQL = "update search_name set"; $sSQL .= " nameaddress_vector = array_replace(nameaddress_vector,".$aRemove['word_id'].",".$iKeepID.")"; $sSQL .= " where nameaddress_vector @> ARRAY[".$aRemove['word_id']."]"; - $x = $oDB->query($sSQL); - if (PEAR::isError($x)) - { - var_dump($x); - exit(1); - } + chksql($oDB->query($sSQL)); $sSQL = "update location_area_country set"; $sSQL .= " keywords = array_replace(keywords,".$aRemove['word_id'].",".$iKeepID.")"; $sSQL .= " where keywords @> ARRAY[".$aRemove['word_id']."]"; - $x = $oDB->query($sSQL); - if (PEAR::isError($x)) - { - var_dump($x); - exit(1); - } + chksql($oDB->query($sSQL)); foreach ($aPartitions as $sPartition) { $sSQL = "update search_name_".$sPartition." set"; $sSQL .= " name_vector = array_replace(name_vector,".$aRemove['word_id'].",".$iKeepID.")"; $sSQL .= " where name_vector @> ARRAY[".$aRemove['word_id']."]"; - $x = $oDB->query($sSQL); - if (PEAR::isError($x)) - { - var_dump($x); - exit(1); - } + chksql($oDB->query($sSQL)); $sSQL = "update location_area_country set"; $sSQL .= " keywords = array_replace(keywords,".$aRemove['word_id'].",".$iKeepID.")"; $sSQL .= " where keywords @> ARRAY[".$aRemove['word_id']."]"; - $x = $oDB->query($sSQL); - if (PEAR::isError($x)) - { - var_dump($x); - exit(1); - } + chksql($oDB->query($sSQL)); } $sSQL = "delete from word where word_id = ".$aRemove['word_id']; - $x = $oDB->query($sSQL); - if (PEAR::isError($x)) - { - var_dump($x); - exit(1); - } + chksql($oDB->query($sSQL)); } } }