Move where condition from osm_transportation_name_linestring to materialized view osm_transportation_name_network (fix) (#993)

On PR #991 the differential update was not updated like the main code.

Make similar change to the update code.
This commit is contained in:
Frédéric Rodrigo 2020-09-23 10:10:59 +02:00 committed by GitHub
parent d8b5e8e82d
commit 47cdfc2c8b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -250,31 +250,51 @@ BEGIN
WHERE n.osm_id = c.osm_id; WHERE n.osm_id = c.osm_id;
INSERT INTO osm_transportation_name_network INSERT INTO osm_transportation_name_network
SELECT hl.geometry, SELECT
hl.osm_id, geometry,
CASE WHEN length(hl.name) > 15 THEN osml10n_street_abbrev_all(hl.name) ELSE NULLIF(hl.name, '') END AS "name", osm_id,
CASE WHEN length(hl.name_en) > 15 THEN osml10n_street_abbrev_en(hl.name_en) ELSE NULLIF(hl.name_en, '') END AS "name_en", name,
CASE WHEN length(hl.name_de) > 15 THEN osml10n_street_abbrev_de(hl.name_de) ELSE NULLIF(hl.name_de, '') END AS "name_de", name_en,
slice_language_tags(hl.tags) AS tags, name_de,
rm.network_type, tags,
CASE ref,
WHEN rm.network_type IS NOT NULL AND NULLIF(rm.ref::text, '') IS NOT NULL highway,
THEN rm.ref::text construction,
ELSE NULLIF(hl.ref, '') level,
END AS ref, layer,
hl.highway, indoor,
hl.construction, network_type,
CASE WHEN highway IN ('footway', 'steps') THEN layer END AS layer, z_order
CASE WHEN highway IN ('footway', 'steps') THEN "level" END AS "level", FROM (
CASE WHEN highway IN ('footway', 'steps') THEN indoor END AS indoor, SELECT hl.geometry,
ROW_NUMBER() OVER (PARTITION BY hl.osm_id hl.osm_id,
ORDER BY rm.network_type) AS "rank", CASE WHEN length(hl.name) > 15 THEN osml10n_street_abbrev_all(hl.name) ELSE NULLIF(hl.name, '') END AS name,
hl.z_order CASE WHEN length(hl.name_en) > 15 THEN osml10n_street_abbrev_en(hl.name_en) ELSE NULLIF(hl.name_en, '') END AS name_en,
FROM osm_highway_linestring hl CASE WHEN length(hl.name_de) > 15 THEN osml10n_street_abbrev_de(hl.name_de) ELSE NULLIF(hl.name_de, '') END AS name_de,
JOIN transportation_name.network_changes AS c ON slice_language_tags(hl.tags) AS tags,
hl.osm_id = c.osm_id rm.network_type,
LEFT JOIN osm_route_member rm ON CASE
rm.member = hl.osm_id; WHEN rm.network_type IS NOT NULL AND NULLIF(rm.ref::text, '') IS NOT NULL
THEN rm.ref::text
ELSE NULLIF(hl.ref, '')
END AS ref,
hl.highway,
hl.construction,
CASE WHEN highway IN ('footway', 'steps') THEN layer END AS layer,
CASE WHEN highway IN ('footway', 'steps') THEN level END AS level,
CASE WHEN highway IN ('footway', 'steps') THEN indoor END AS indoor,
ROW_NUMBER() OVER (PARTITION BY hl.osm_id
ORDER BY rm.network_type) AS "rank",
hl.z_order
FROM osm_highway_linestring hl
JOIN transportation_name.network_changes AS c ON
hl.osm_id = c.osm_id
LEFT JOIN osm_route_member rm ON
rm.member = hl.osm_id
WHERE (hl.name <> '' OR hl.ref <> '')
AND NULLIF(hl.highway, '') IS NOT NULL
) AS t
WHERE ("rank" = 1 OR "rank" IS NULL);
REFRESH MATERIALIZED VIEW osm_transportation_name_linestring; REFRESH MATERIALIZED VIEW osm_transportation_name_linestring;
REFRESH MATERIALIZED VIEW osm_transportation_name_linestring_gen1; REFRESH MATERIALIZED VIEW osm_transportation_name_linestring_gen1;