New files for setup

This commit is contained in:
Carla Iriberri
2015-10-19 14:45:43 +02:00
parent 85c19d0e8f
commit 59c7d6b6eb
11 changed files with 51 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
-- create indexes on synonyms table
CREATE INDEX idx_admin0_synonyms_name_patt ON admin0_synonyms (name_ text_pattern_ops);
--CREATE INDEX idx_admin0_synonyms_name ON admin0_synonyms (lower(regexp_replace(name, '\W+'::text, ''::text)));
CREATE INDEX idx_admin0_synonyms_name_ ON admin0_synonyms (name_);
--CREATE INDEX idx_admin0_synonyms_nam ON admin0_synonyms (name);
CREATE INDEX idx_admin0_synonyms_rank ON admin0_synonyms (rank);
CREATE INDEX idx_admin0_synonyms_name_rank ON admin0_synonyms (name_, rank);
-- create indexes on polygon table
CREATE UNIQUE INDEX idx_ne_admin0_v3_adm0_a3 ON ne_admin0_v3 (adm0_a3);

View File

@@ -0,0 +1,4 @@
-- Response types for admin0 geocoder
CREATE TYPE geocode_admin_v1 AS (q TEXT, geom GEOMETRY, success BOOLEAN);
CREATE TYPE synonym_lookup_v1 AS (q TEXT, s TEXT);
--CREATE TYPE synonym_lookup_v1 AS (q TEXT, adm0_a3 TEXT);

View File

@@ -0,0 +1,12 @@
-- create trigger function. used in both admin0 and admin1 synonym tables
CREATE OR REPLACE FUNCTION alpha_numeric_identifiers() RETURNS trigger AS $alpha_numeric_identifiers$
BEGIN
NEW.name_ := lower(regexp_replace(NEW.name, '[^a-zA-Z\u00C0-\u00ff]+', '', 'g'));
RETURN NEW;
END;
$alpha_numeric_identifiers$ LANGUAGE plpgsql;
-- add trigger on admin0 synonym table name_ column
CREATE TRIGGER admin0_synonyms_name_update
BEFORE INSERT OR UPDATE OF name ON admin0_synonyms
FOR EACH ROW EXECUTE PROCEDURE alpha_numeric_identifiers()

View File

@@ -0,0 +1,3 @@
-- Index on admin1 id
CREATE UNIQUE INDEX idx_qs_adm1_global_id ON qs_adm1 (global_id)
CREATE INDEX idx_admin1_synonyms_name_adm0 ON admin1_synonyms (name_, adm0_a3)

View File

@@ -0,0 +1,12 @@
-- create trigger function. used in both admin0 and admin1 synonym tables
CREATE OR REPLACE FUNCTION alpha_numeric_identifiers() RETURNS trigger AS $alpha_numeric_identifiers$
BEGIN
NEW.name_ := lower(regexp_replace(NEW.name, '[^a-zA-Z\u00C0-\u00ff]+', '', 'g'));
RETURN NEW;
END;
$alpha_numeric_identifiers$ LANGUAGE plpgsql;
-- add trigger on admin1 synonym table name_ column
CREATE TRIGGER admin1_synonyms_name_update
BEFORE INSERT OR UPDATE OF name ON admin1_synonyms
FOR EACH ROW EXECUTE PROCEDURE alpha_numeric_identifiers()

View File

View File

View File

@@ -0,0 +1,8 @@
-- create indexes on named places table
CREATE INDEX idx_global_cities_points_limited_a ON global_cities_points_limited (lowername, iso2)
CREATE INDEX idx_global_cities_points_limited_admin1 ON global_cities_points_limited (admin1)
CREATE INDEX idx_global_cities_points_limited_geoname_id ON global_cities_points_limited (geoname_id)
CREATE INDEX idx_global_cities_alternates_limited_admin1 ON global_cities_alternates_limited (admin1)
CREATE INDEX idx_global_cities_alternates_limited_admin1_geonameid ON global_cities_alternates_limited (admin1_geonameid)
CREATE INDEX idx_global_cities_alternates_limited_lowername ON global_cities_alternates_limited (lowername)

View File

View File

@@ -0,0 +1,2 @@
-- create indexes on postal code polygon table
CREATE UNIQUE INDEX idx_postal_code_polygons_a3_code ON postal_code_polygons (adm0_a3, postal_code)

View File