From a851f2c9e9a624aabc6ba11d160ac4ce54c4366b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Rodrigo?= Date: Fri, 9 Jul 2021 09:35:46 +0200 Subject: [PATCH] Review index on osm_waterway_linestring on osm_important_waterway_linestring_gen_z* (#1130) Review index waterway. * Remove not used index * Fit index `osm_waterway_linestring_waterway_partial_idx` to query --- layers/waterway/update_important_waterway.sql | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/layers/waterway/update_important_waterway.sql b/layers/waterway/update_important_waterway.sql index ae044cdb..e0758a1b 100644 --- a/layers/waterway/update_important_waterway.sql +++ b/layers/waterway/update_important_waterway.sql @@ -7,12 +7,10 @@ DROP TRIGGER IF EXISTS trigger_refresh ON waterway_important.updates; -- and also makes it possible to filter out too short rivers CREATE INDEX IF NOT EXISTS osm_waterway_linestring_waterway_partial_idx - ON osm_waterway_linestring (waterway) - WHERE waterway = 'river'; - -CREATE INDEX IF NOT EXISTS osm_waterway_linestring_name_partial_idx - ON osm_waterway_linestring (name) - WHERE name <> ''; + ON osm_waterway_linestring ((true)) + WHERE name <> '' + AND waterway = 'river' + AND ST_IsValid(geometry); -- etldoc: osm_waterway_linestring -> osm_important_waterway_linestring CREATE TABLE IF NOT EXISTS osm_important_waterway_linestring AS @@ -33,7 +31,6 @@ FROM ( AND ST_IsValid(geometry) GROUP BY name, name_en, name_de, slice_language_tags(tags) ) AS waterway_union; -CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_names ON osm_important_waterway_linestring (name); CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_geometry_idx ON osm_important_waterway_linestring USING gist (geometry); -- etldoc: osm_important_waterway_linestring -> osm_important_waterway_linestring_gen_z11 @@ -48,7 +45,6 @@ SELECT ST_Simplify(geometry, ZRes(12)) AS geometry, FROM osm_important_waterway_linestring WHERE ST_Length(geometry) > 1000 ); -CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_gen_z11_name_idx ON osm_important_waterway_linestring_gen_z11 (name); CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_gen_z11_geometry_idx ON osm_important_waterway_linestring_gen_z11 USING gist (geometry); -- etldoc: osm_important_waterway_linestring_gen_z11 -> osm_important_waterway_linestring_gen_z10 @@ -63,7 +59,6 @@ SELECT ST_Simplify(geometry, ZRes(11)) AS geometry, FROM osm_important_waterway_linestring_gen_z11 WHERE ST_Length(geometry) > 4000 ); -CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_gen_z10_name_idx ON osm_important_waterway_linestring_gen_z10 (name); CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_gen_z10_geometry_idx ON osm_important_waterway_linestring_gen_z10 USING gist (geometry); -- etldoc: osm_important_waterway_linestring_gen_z10 -> osm_important_waterway_linestring_gen_z9 @@ -78,7 +73,6 @@ SELECT ST_Simplify(geometry, ZRes(10)) AS geometry, FROM osm_important_waterway_linestring_gen_z10 WHERE ST_Length(geometry) > 8000 ); -CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_gen_z9_name_idx ON osm_important_waterway_linestring_gen_z9 (name); CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_gen_z9_geometry_idx ON osm_important_waterway_linestring_gen_z9 USING gist (geometry); -- Handle updates