X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/90a2a5605ee856fe6da06c46924558de94b37355..9f417d5f64aecf72d4a3bd22d6e9d6c8fac76a51:/lib-sql/tables.sql diff --git a/lib-sql/tables.sql b/lib-sql/tables.sql index 7ef74349..d3bc972a 100644 --- a/lib-sql/tables.sql +++ b/lib-sql/tables.sql @@ -190,7 +190,6 @@ CREATE INDEX idx_placex_geometry_buildings ON placex -- Usage: - linking of similar named places to boundaries -- - linking of place nodes with same type to boundaries --- - lookupPolygon() CREATE INDEX idx_placex_geometry_placenode ON placex USING {{postgres.spgist_geom}} (geometry) {{db.tablespace.address_index}} WHERE osm_type = 'N' and rank_search < 26 @@ -274,35 +273,27 @@ GRANT SELECT ON import_polygon_delete TO "{{config.DATABASE_WEBUSER}}"; DROP SEQUENCE IF EXISTS file; CREATE SEQUENCE file start 1; --- null table so it won't error --- deliberately no drop - importing the table is expensive and static, if it is already there better to avoid removing it -CREATE TABLE wikipedia_article ( - language text NOT NULL, - title text NOT NULL, - langcount integer, - othercount integer, - totalcount integer, - lat double precision, - lon double precision, - importance double precision, - osm_type character(1), - osm_id bigint, - wd_page_title text, - instance_of text -); -ALTER TABLE ONLY wikipedia_article ADD CONSTRAINT wikipedia_article_pkey PRIMARY KEY (language, title); -CREATE INDEX idx_wikipedia_article_osm_id ON wikipedia_article USING btree (osm_type, osm_id); - -CREATE TABLE wikipedia_redirect ( - language text, - from_title text, - to_title text -); -ALTER TABLE ONLY wikipedia_redirect ADD CONSTRAINT wikipedia_redirect_pkey PRIMARY KEY (language, from_title); +{% if 'wikimedia_importance' not in db.tables and 'wikipedia_article' not in db.tables %} +-- create dummy tables here, if nothing was imported +CREATE TABLE wikimedia_importance ( + language TEXT NOT NULL, + title TEXT NOT NULL, + importance double precision NOT NULL, + wikidata TEXT +) {{db.tablespace.address_data}}; +{% endif %} -- osm2pgsql does not create indexes on the middle tables for Nominatim -- Add one for lookup of associated street relations. -CREATE INDEX planet_osm_rels_parts_associated_idx ON planet_osm_rels USING gin(parts) WHERE tags @> ARRAY['associatedStreet']; +{% if db.middle_db_format == '1' %} +CREATE INDEX planet_osm_rels_parts_associated_idx ON planet_osm_rels USING gin(parts) + {{db.tablespace.address_index}} + WHERE tags @> ARRAY['associatedStreet']; +{% else %} +CREATE INDEX planet_osm_rels_relation_members_idx ON planet_osm_rels USING gin(planet_osm_member_ids(members, 'R'::character(1))) + WITH (fastupdate=off) + {{db.tablespace.address_index}}; +{% endif %} -- Needed for lookups if a node is part of an interpolation. CREATE INDEX IF NOT EXISTS idx_place_interpolations