]> git.openstreetmap.org Git - nominatim.git/commitdiff
Merge branch 'continent' of https://github.com/datendelphin/Nominatim
authorSarah Hoffmann <lonvia@denofr.de>
Fri, 20 Apr 2012 21:19:52 +0000 (23:19 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Fri, 20 Apr 2012 21:19:52 +0000 (23:19 +0200)
1  2 
sql/functions.sql

diff --combined sql/functions.sql
index d10439dfc3e7e6863740603da47c733ecc3e0fc0,7a68718ea9c517480b99aa2ffd1f59c4aea7f853..b248a46d104601337458832a17e35e20845dd702
@@@ -909,7 -909,12 +909,12 @@@ BEGI
    NEW.place_id := nextval('seq_place');
    NEW.indexed_status := 1; --STATUS_NEW
  
-   NEW.country_code := lower(get_country_code(NEW.geometry, NEW.country_code));
+   IF NEW.rank_search >= 4 THEN
+     NEW.country_code := lower(get_country_code(NEW.geometry, NEW.country_code));
+   ELSE
+     NEW.country_code := NULL;
+   END IF;
    NEW.partition := get_partition(NEW.geometry, NEW.country_code);
    NEW.geometry_sector := geometry_sector(NEW.partition, NEW.geometry);
  
        ELSEIF NEW.type in ('farm','locality','islet','isolated_dwelling','mountain_pass') THEN
          NEW.rank_search := 20;
          NEW.rank_address := 0;
 +        -- Irish townlands, tagged as place=locality and locality=townland
 +        IF (NEW.extratags -> 'locality') = 'townland' THEN
 +          NEW.rank_address := 20;
 +        END IF;
        ELSEIF NEW.type in ('hall_of_residence','neighbourhood','housing_estate','nature_reserve') THEN
          NEW.rank_search := 22;
          NEW.rank_address := 22;
@@@ -1256,8 -1257,12 +1261,12 @@@ BEGI
      END IF;
  
      -- reclaculate country and partition (should probably have a country_code and calculated_country_code as seperate fields)
-     SELECT country_code from place where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type = NEW.type INTO NEW.country_code;
-     NEW.country_code := lower(get_country_code(NEW.geometry, NEW.country_code));
+     IF NEW.rank_search >= 4 THEN
+       SELECT country_code from place where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type = NEW.type INTO NEW.country_code;
+       NEW.country_code := lower(get_country_code(NEW.geometry, NEW.country_code));
+     ELSE
+       NEW.country_code := NULL;
+     END IF;
      NEW.partition := get_partition(NEW.geometry, NEW.country_code);
      NEW.geometry_sector := geometry_sector(NEW.partition, NEW.geometry);