Wrap place UNIONs into one SELECT to sppeed up rendering

This commit is contained in:
jirik
2018-11-27 22:20:44 +01:00
committed by Jiri Kozel
parent 927d3945e2
commit 8d591a59aa
2 changed files with 5 additions and 1 deletions

View File

@@ -5,6 +5,7 @@
-- etldoc: osm_city_point -> layer_city:z2_14
CREATE OR REPLACE FUNCTION layer_city(bbox geometry, zoom_level int, pixel_width numeric)
RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de text, tags hstore, place city_place, "rank" int, capital int) AS $$
SELECT * FROM (
SELECT osm_id, geometry, name,
COALESCE(NULLIF(name_en, ''), name) AS name_en,
COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de,
@@ -49,5 +50,6 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text, name_de
OR (zoom_level = 9 AND (gridrank <= 8 OR "rank" IS NOT NULL))
OR (zoom_level = 10 AND (gridrank <= 12 OR "rank" IS NOT NULL))
OR (zoom_level BETWEEN 11 AND 12 AND (gridrank <= 14 OR "rank" IS NOT NULL))
OR (zoom_level >= 13);
OR (zoom_level >= 13)
) as city_all;
$$ LANGUAGE SQL IMMUTABLE;