only calculate country for search ranks country and below

This commit is contained in:
Datendelphin 2012-04-15 23:05:31 +02:00
parent 653c05329d
commit 5e6a9638a8

View File

@ -909,7 +909,12 @@ BEGIN
NEW.place_id := nextval('seq_place'); NEW.place_id := nextval('seq_place');
NEW.indexed_status := 1; --STATUS_NEW 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.partition := get_partition(NEW.geometry, NEW.country_code);
NEW.geometry_sector := geometry_sector(NEW.partition, NEW.geometry); NEW.geometry_sector := geometry_sector(NEW.partition, NEW.geometry);
@ -1252,8 +1257,12 @@ BEGIN
END IF; END IF;
-- reclaculate country and partition (should probably have a country_code and calculated_country_code as seperate fields) -- 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; IF NEW.rank_search >= 4 THEN
NEW.country_code := lower(get_country_code(NEW.geometry, NEW.country_code)); 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.partition := get_partition(NEW.geometry, NEW.country_code);
NEW.geometry_sector := geometry_sector(NEW.partition, NEW.geometry); NEW.geometry_sector := geometry_sector(NEW.partition, NEW.geometry);