]> git.openstreetmap.org Git - nominatim.git/blobdiff - nominatim/tools/postcodes.py
Always delete old placex entry for type=postcode when inserting a new one into the...
[nominatim.git] / nominatim / tools / postcodes.py
index fd35507901e1c6d123361c51263adac7c44fdab9..2be3ced6c2d299fcc063c0a9146a86f23c5488cd 100644 (file)
@@ -169,7 +169,7 @@ def update_postcodes(dsn, project_dir, tokenizer):
                     SELECT 
                         COALESCE(plx.country_code, get_country_code(ST_Centroid(pl.geometry))) as cc,
                         token_normalized_postcode(pl.address->'postcode') as pc,
                     SELECT 
                         COALESCE(plx.country_code, get_country_code(ST_Centroid(pl.geometry))) as cc,
                         token_normalized_postcode(pl.address->'postcode') as pc,
-                        ST_Centroid(ST_Collect(ST_Centroid(pl.geometry))) as centroid
+                        COALESCE(ST_Centroid(ST_Collect(plx.centroid)), ST_Centroid(ST_Collect(ST_Centroid(pl.geometry)))) as centroid
                     FROM place AS pl LEFT OUTER JOIN placex AS plx ON pl.osm_id = plx.osm_id AND pl.osm_type = plx.osm_type
                     WHERE pl.address ? 'postcode' AND pl.geometry IS NOT null
                     GROUP BY cc, pc
                     FROM place AS pl LEFT OUTER JOIN placex AS plx ON pl.osm_id = plx.osm_id AND pl.osm_type = plx.osm_type
                     WHERE pl.address ? 'postcode' AND pl.geometry IS NOT null
                     GROUP BY cc, pc
@@ -204,8 +204,4 @@ def can_compute(dsn):
         postcodes can be computed.
     """
     with connect(dsn) as conn:
         postcodes can be computed.
     """
     with connect(dsn) as conn:
-        with conn.cursor() as cur:
-            cur.execute("""
-                select exists(select 1 from information_schema.tables where table_name='place')
-            """)
-            return cur.fetchone()[0]
+        return conn.table_exists('place')