mysql/core_cities_merge.sql
authorEdward <edward@roojs.com>
Fri, 27 Jun 2014 04:32:10 +0000 (12:32 +0800)
committerEdward <edward@roojs.com>
Fri, 27 Jun 2014 04:32:10 +0000 (12:32 +0800)
mysql/core_cities_merge.sql

index e62d11e..15a9b96 100644 (file)
@@ -549,12 +549,9 @@ CREATE FUNCTION core_city_blocks()  RETURNS INT DETERMINISTIC
         DECLARE v_is_anonymous_proxy INT DEFAULT 0;
         DECLARE v_is_satellite_provider INT DEFAULT 0;
 
-        DECLARE v_country_id INT DEFAULT 0;
-        DECLARE v_divison_id INT DEFAULT 0;
+        
         DECLARE v_city_id INT DEFAULT 0;
-        DECLARE v_country_iso_code TEXT DEFAULT '';
-        DECLARE v_subdivision_name TEXT DEFAULT '';
-        DECLARE v_city_name TEXT DEFAULT '';
+        DECLARE v_mapping_id INT DEFAULT 0;
 
         DECLARE csr CURSOR FOR 
         SELECT 
@@ -576,27 +573,12 @@ CREATE FUNCTION core_city_blocks()  RETURNS INT DETERMINISTIC
             
             SET v_count = v_count + 1;
             
-            SET v_country_id = 0;
-            SET v_divison_id = 0;
             SET v_city_id = 0;
+            SET v_mapping_id = 0;
 
-            SET v_country_iso_code = '';
-            SET v_subdivision_name = '';
-            SET v_city_name = '';
-
-            SELECT country_iso_code,subdivision_name,city_name INTO v_country_iso_code, v_subdivision_name, v_city_name FROM city_locations WHERE geoname_id = v_geoname_id;
-
-            IF v_country_iso_code != '' THEN
-                SELECT id INTO v_country_id FROM core_geoip_country WHERE code = v_country_iso_code;
-            END IF;
-
-            IF v_subdivision_name != '' THEN
-                SELECT id INTO v_divison_id FROM core_geoip_division WHERE name = v_subdivision_name AND country_id = v_country_id;
-            END IF;
-
-            SELECT id INTO v_city_id FROM core_geoip_city WHERE name = v_city_name AND country_id = v_country_id AND division_id = v_divison_id;
+            SELECT id, city_id INTO v_mapping_id, v_city_id FROM city_blocks_mapping WHERE geoname_id = v_geoname_id;
 
-            IF v_city_id != 0 THEN
+            IF v_mapping_id != 0 THEN
 
                 INSERT INTO core_geoip_location (latitude, longitude, city_id) VALUES (v_latitude, v_longitude, v_city_id);