]> git.openstreetmap.org Git - nominatim.git/commitdiff
move adding postcodes to word table to calculation step
authorSarah Hoffmann <lonvia@denofr.de>
Sun, 16 Jul 2017 18:32:21 +0000 (20:32 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Sat, 19 Aug 2017 17:37:06 +0000 (19:37 +0200)
data/words.sql
utils/setup.php

index b1aa6677748785d30c352050583c1a45564de7a3..85578f203c03a75d07010e2f2711c063f592536d 100644 (file)
@@ -29787,7 +29787,6 @@ st      5557484
 -- prefill word table
 
 select count(make_keywords(v)) from (select distinct svals(name) as v from place) as w where v is not null;
-select count(getorcreate_postcode_id(v)) from (select distinct address->'postcode' as v from place where address ? 'postcode' and address->'postcode' not similar to '%(,|;)%') as w where v is not null;
 select count(getorcreate_housenumber_id(make_standard_name(v))) from (select distinct address->'housenumber' as v from place where address ? 'housenumber') as w;
 
 -- copy the word frequencies
index 238612014c1281166a479424d9cd350cccac2fdf..5236a8270f02c32be7401b99d66efe38037c9dd7 100755 (executable)
@@ -522,9 +522,6 @@ if ($aCMDResult['calculate-postcodes'] || $aCMDResult['all']) {
         $sSQL .= "          WHERE country_code = 'us')";
 
         if (!pg_query($oDB->connection, $sSQL)) fail(pg_last_error($oDB->connection));
-
-        $sSQL = "SELECT count(getorcreate_postcode_id(postcode))  FROM us_postcode";
-        if (!pg_query($oDB->connection, $sSQL)) fail(pg_last_error($oDB->connection));
     }
 
     // add missing postcodes for GB (if available)
@@ -536,8 +533,19 @@ if ($aCMDResult['calculate-postcodes'] || $aCMDResult['all']) {
     $sSQL .= "             WHERE country_code = 'gb')";
     if (!pg_query($oDB->connection, $sSQL)) fail(pg_last_error($oDB->connection));
 
-        $sSQL = "SELECT count(getorcreate_postcode_id(postcode))  FROM gb_postcode";
-        if (!pg_query($oDB->connection, $sSQL)) fail(pg_last_error($oDB->connection));
+    if (!$aCMDResult['all']) {
+        $sSQL = "DELETE FROM word WHERE class='place' and type='postcode'";
+        $sSQL .= "and word NOT IN (SELECT postcode FROM location_postcode)";
+        if (!pg_query($oDB->connection, $sSQL)) {
+            fail(pg_last_error($oDB->connection));
+        }
+    }
+    $sSQL = "SELECT count(getorcreate_postcode_id(v)) FROM ";
+    $sSQL .= "(SELECT distinct(postcode) FROM location_postcode) p";
+
+    if (!pg_query($oDB->connection, $sSQL)) {
+        fail(pg_last_error($oDB->connection));
+    }
 }
 
 if ($aCMDResult['osmosis-init']) {