mysql/core_cities_merge.sql
[Pman.Core] / mysql / core_cities_merge.sql
1
2 DROP FUNCTION IF EXISTS core_cities_merge;
3 DELIMITER $$
4 CREATE FUNCTION core_cities_merge()  RETURNS TEXT DETERMINISTIC
5     BEGIN
6         DECLARE done INT DEFAULT FALSE;
7         DECLARE v_iso TEXT DEFAULT '';
8         DECLARE v_local_name TEXT DEFAULT '';
9         DECLARE v_type TEXT DEFAULT '';
10         DECLARE v_in_location INT DEFAULT 0;
11         DECLARE v_id INT DEFAULT 0;
12
13         DECLARE csr CURSOR FOR 
14         SELECT 
15             iso,local_name,type,in_location
16         FROM 
17             meta_location
18
19         DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
20
21         OPEN csr;
22         read_loop: LOOP
23             FETCH csr INTO v_iso,v_local_name,v_type,v_in_location;
24             
25             SET v_id = 0;
26
27             IF v_type = 'CO' THEN
28                 SELECT id INTO v_id FROM core_geoip_country WHERE code = v_iso;
29                 IF(id = 0) THEN
30                     INSERT INTO core_geoip_country (code, name, continent_id) VALUES (v_iso, v_local_name, 0);
31                 END IF;
32
33                 ITERATE read_loop;
34                 
35             END IF;
36                     
37
38             IF done THEN
39               LEAVE read_loop;
40             END IF;
41
42         END LOOP;
43         CLOSE csr;
44
45         RETURN v_local_name;
46     END $$
47 DELIMITER ; 
48