Simplify update_gbr_route_members() (#870)

Code cleaning.

The function `update_gbr_route_members()` use two sub queries, but only one is relay needed.
pull/872/head
Frédéric Rodrigo 2020-05-15 17:24:57 +02:00 zatwierdzone przez GitHub
rodzic aea7d73ece
commit dcee493da6
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
1 zmienionych plików z 11 dodań i 15 usunięć

Wyświetl plik

@ -5,21 +5,17 @@ DROP TRIGGER IF EXISTS trigger_flag_transportation_name ON osm_route_member;
CREATE OR REPLACE FUNCTION update_gbr_route_members() RETURNS VOID AS $$ CREATE OR REPLACE FUNCTION update_gbr_route_members() RETURNS VOID AS $$
DECLARE gbr_geom geometry; DECLARE gbr_geom geometry;
BEGIN BEGIN
select st_buffer(geometry, 10000) into gbr_geom from ne_10m_admin_0_countries where iso_a2 = 'GB'; SELECT st_buffer(geometry, 10000) INTO gbr_geom FROM ne_10m_admin_0_countries where iso_a2 = 'GB';
delete from osm_route_member where network IN('omt-gb-motorway', 'omt-gb-trunk'); DELETE FROM osm_route_member WHERE network IN ('omt-gb-motorway', 'omt-gb-trunk');
insert into osm_route_member (osm_id, member, ref, network) INSERT INTO osm_route_member (osm_id, member, ref, network)
( SELECT 0, osm_id, substring(ref FROM E'^[AM][0-9AM()]+'),
SELECT 0, hw.osm_id, substring(hw.ref from E'^[AM][0-9AM()]+'), 'omt-gb-motorway' CASE WHEN highway = 'motorway' THEN 'omt-gb-motorway' ELSE 'omt-gb-trunk' END
from osm_highway_linestring hw FROM osm_highway_linestring
where length(hw.ref)>0 and ST_Intersects(hw.geometry, gbr_geom) WHERE
and hw.highway IN ('motorway') length(ref)>0 AND
) UNION ( ST_Intersects(geometry, gbr_geom) AND
SELECT 0, hw.osm_id, substring(hw.ref from E'^[AM][0-9AM()]+'), 'omt-gb-trunk' highway IN ('motorway', 'trunk')
from osm_highway_linestring hw
where length(hw.ref)>0 and ST_Intersects(hw.geometry, gbr_geom)
and hw.highway IN ('trunk')
)
; ;
END; END;
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;