Wrap place UNIONs into one SELECT to sppeed up rendering
This commit is contained in:
parent
927d3945e2
commit
8d591a59aa
@ -5,6 +5,7 @@
|
|||||||
-- etldoc: osm_city_point -> layer_city:z2_14
|
-- etldoc: osm_city_point -> layer_city:z2_14
|
||||||
CREATE OR REPLACE FUNCTION layer_city(bbox geometry, zoom_level int, pixel_width numeric)
|
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 $$
|
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,
|
SELECT osm_id, geometry, name,
|
||||||
COALESCE(NULLIF(name_en, ''), name) AS name_en,
|
COALESCE(NULLIF(name_en, ''), name) AS name_en,
|
||||||
COALESCE(NULLIF(name_de, ''), name, name_en) AS name_de,
|
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 = 9 AND (gridrank <= 8 OR "rank" IS NOT NULL))
|
||||||
OR (zoom_level = 10 AND (gridrank <= 12 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 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;
|
$$ LANGUAGE SQL IMMUTABLE;
|
||||||
|
|||||||
@ -6,6 +6,7 @@ CREATE OR REPLACE FUNCTION layer_place(bbox geometry, zoom_level int, pixel_widt
|
|||||||
RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text,
|
RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text,
|
||||||
name_de text, tags hstore, class text, "rank" int, capital INT, iso_a2
|
name_de text, tags hstore, class text, "rank" int, capital INT, iso_a2
|
||||||
TEXT) AS $$
|
TEXT) AS $$
|
||||||
|
SELECT * FROM (
|
||||||
|
|
||||||
-- etldoc: osm_continent_point -> layer_place:z0_3
|
-- etldoc: osm_continent_point -> layer_place:z0_3
|
||||||
SELECT
|
SELECT
|
||||||
@ -94,4 +95,5 @@ RETURNS TABLE(osm_id bigint, geometry geometry, name text, name_en text,
|
|||||||
NULL::text AS iso_a2
|
NULL::text AS iso_a2
|
||||||
FROM layer_city(bbox, zoom_level, pixel_width)
|
FROM layer_city(bbox, zoom_level, pixel_width)
|
||||||
ORDER BY "rank" ASC
|
ORDER BY "rank" ASC
|
||||||
|
) AS place_all
|
||||||
$$ LANGUAGE SQL IMMUTABLE;
|
$$ LANGUAGE SQL IMMUTABLE;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user