Adds country cleaning in extension

This commit is contained in:
Carla Iriberri
2015-11-30 15:41:42 +01:00
parent 352916d247
commit 4be28d4b9b
+8 -8
View File
@@ -4,14 +4,14 @@
CREATE OR REPLACE FUNCTION geocode_admin1_polygons(name text[]) RETURNS SETOF geocode_admin_v1 CREATE OR REPLACE FUNCTION geocode_admin1_polygons(name text[]) RETURNS SETOF geocode_admin_v1
LANGUAGE plpgsql SECURITY DEFINER LANGUAGE plpgsql SECURITY DEFINER
AS $$ AS $$
DECLARE DECLARE
ret geocode_admin_v1%rowtype; ret geocode_admin_v1%rowtype;
BEGIN BEGIN
FOR ret IN FOR ret IN
SELECT SELECT
q, geom, CASE WHEN geom IS NULL THEN FALSE ELSE TRUE END AS success q, geom, CASE WHEN geom IS NULL THEN FALSE ELSE TRUE END AS success
FROM ( FROM (
SELECT SELECT
q, ( q, (
SELECT the_geom SELECT the_geom
FROM global_province_polygons FROM global_province_polygons
@@ -20,7 +20,7 @@ CREATE OR REPLACE FUNCTION geocode_admin1_polygons(name text[]) RETURNS SETOF ge
) geom ) geom
FROM (SELECT trim(replace(lower(unnest(name)),'.',' ')) c, unnest(name) q) d FROM (SELECT trim(replace(lower(unnest(name)),'.',' ')) c, unnest(name) q) d
) v ) v
LOOP LOOP
RETURN NEXT ret; RETURN NEXT ret;
END LOOP; END LOOP;
RETURN; RETURN;
@@ -36,11 +36,11 @@ CREATE OR REPLACE FUNCTION geocode_admin1_polygons(name text[], inputcountry tex
BEGIN BEGIN
FOR ret IN WITH FOR ret IN WITH
p AS (SELECT r.c, r.q, (SELECT iso3 FROM country_decoder WHERE lower(inputcountry) = ANY (synonyms)) i FROM (SELECT trim(replace(lower(unnest(name)),'.',' ')) c, unnest(name) q) r) p AS (SELECT r.c, r.q, (SELECT iso3 FROM country_decoder WHERE lower(regexp_replace(inputcountry, '[^a-zA-Z\u00C0-\u00ff]+', '', 'g'))::text = ANY (synonyms)) i FROM (SELECT trim(replace(lower(unnest(name)),'.',' ')) c, unnest(name) q) r)
SELECT SELECT
q, geom, CASE WHEN geom IS NULL THEN FALSE ELSE TRUE END AS success q, geom, CASE WHEN geom IS NULL THEN FALSE ELSE TRUE END AS success
FROM ( FROM (
SELECT SELECT
q, ( q, (
SELECT the_geom SELECT the_geom
FROM global_province_polygons FROM global_province_polygons
@@ -79,12 +79,12 @@ CREATE OR REPLACE FUNCTION geocode_admin1_polygons(names text[], country text[])
END IF; END IF;
FOR ret IN WITH FOR ret IN WITH
p AS (SELECT r.p, r.q, c, (SELECT iso3 FROM country_decoder WHERE lower(r.c) = ANY (synonyms)) i FROM (SELECT trim(replace(lower(unnest(names)),'.',' ')) p, unnest(names) q, unnest(country) c) r) p AS (SELECT r.p, r.q, c, (SELECT iso3 FROM country_decoder WHERE lower(regexp_replace(r.c, '[^a-zA-Z\u00C0-\u00ff]+', '', 'g'))::text = ANY (synonyms)) i FROM (SELECT trim(replace(lower(unnest(names)),'.',' ')) p, unnest(names) q, unnest(country) c) r)
SELECT SELECT
q, c, geom, CASE WHEN geom IS NULL THEN FALSE ELSE TRUE END AS success q, c, geom, CASE WHEN geom IS NULL THEN FALSE ELSE TRUE END AS success
FROM ( FROM (
SELECT SELECT
q, c, ( q, c, (
SELECT the_geom SELECT the_geom
FROM global_province_polygons FROM global_province_polygons