Skip to content

Commit bd6112d

Browse files
committed
Create mviews from high zoom level views
1 parent fd1b864 commit bd6112d

10 files changed

+164
-151
lines changed

images/tiler-imposm/queries/ohm_mviews/admin_boundaries_areas.sql

Lines changed: 8 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,16 @@
11
-- ============================================================================
22
-- Create materialized views for admin boundaries areas
33
-- ============================================================================
4+
DROP FUNCTION MATERIALIZED VIEW IF EXISTS mv_admin_boundaries_areas_z16_20 CASCADE;
45

5-
SELECT create_areas_mview(
6-
'osm_admin_areas',
7-
'mv_admin_boundaries_areas_z0_2',
8-
5000,
9-
0,
10-
'id, osm_id, type',
11-
'admin_level IN (1,2)'
12-
);
6+
SELECT create_areas_mview( 'osm_admin_areas', 'mv_admin_boundaries_areas_z16_20', 1, 0, 'id, osm_id, type', 'admin_level IN (1,2,3,4,5,6,7,8,9,10,11)');
7+
SELECT create_area_mview_from_mview('mv_admin_boundaries_areas_z16_20','mv_admin_boundaries_areas_z13_15', 5, 0.0, NULL);
8+
SELECT create_area_mview_from_mview('mv_admin_boundaries_areas_z13_15','mv_admin_boundaries_areas_z10_12', 20, 0.0, 'admin_level IN (1,2,3,4,5,6,7,8,9,10)');
9+
SELECT create_area_mview_from_mview('mv_admin_boundaries_areas_z10_12','mv_admin_boundaries_areas_z8_9', 100, 0.0, 'admin_level IN (1,2,3,4,5,6,7,8,9)');
10+
SELECT create_area_mview_from_mview('mv_admin_boundaries_areas_z8_9','mv_admin_boundaries_areas_z6_7', 200, 0.0, 'admin_level IN (1,2,3,4,5,6)');
11+
SELECT create_area_mview_from_mview('mv_admin_boundaries_areas_z6_7','mv_admin_boundaries_areas_z3_5', 1000, 0.0, 'admin_level IN (1,2,3,4)');
12+
SELECT create_area_mview_from_mview('mv_admin_boundaries_areas_z3_5','mv_admin_boundaries_areas_z0_2', 5000, 0.0, 'admin_level IN (1,2)');
1313

14-
SELECT create_areas_mview(
15-
'osm_admin_areas',
16-
'mv_admin_boundaries_areas_z3_5',
17-
1000,
18-
0,
19-
'id, osm_id, type',
20-
'admin_level IN (1,2,3,4)'
21-
);
22-
23-
SELECT create_areas_mview(
24-
'osm_admin_areas',
25-
'mv_admin_boundaries_areas_z6_7',
26-
200,
27-
0,
28-
'id, osm_id, type',
29-
'admin_level IN (1,2,3,4,5,6)'
30-
);
31-
32-
SELECT create_areas_mview(
33-
'osm_admin_areas',
34-
'mv_admin_boundaries_areas_z8_9',
35-
100,
36-
0,
37-
'id, osm_id, type',
38-
'admin_level IN (1,2,3,4,5,6,7,8,9)'
39-
);
40-
41-
SELECT create_areas_mview(
42-
'osm_admin_areas',
43-
'mv_admin_boundaries_areas_z10_12',
44-
20,
45-
0,
46-
'id, osm_id, type',
47-
'admin_level IN (1,2,3,4,5,6,7,8,9,10)'
48-
);
49-
50-
SELECT create_areas_mview(
51-
'osm_admin_areas',
52-
'mv_admin_boundaries_areas_z13_15',
53-
5,
54-
0,
55-
'id, osm_id, type',
56-
'admin_level IN (1,2,3,4,5,6,7,8,9,10,11)'
57-
);
58-
59-
SELECT create_areas_mview(
60-
'osm_admin_areas',
61-
'mv_admin_boundaries_areas_z16_20',
62-
1,
63-
0,
64-
'id, osm_id, type',
65-
'admin_level IN (1,2,3,4,5,6,7,8,9,10,11)'
66-
);
6714

6815
-- Refresh areas views
6916
-- REFRESH MATERIALIZED VIEW CONCURRENTLY mv_admin_boundaries_areas_z0_2;

images/tiler-imposm/queries/ohm_mviews/admin_boundaries_centroids.sql

Lines changed: 41 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22
-- Function: create_admin_boundaries_centroids_mview
33
-- Description:
44
-- Creates a materialized view of admin boundary centroids using
5-
-- ST_MaximumInscribedCircle from polygons in the input table.
5+
-- ST_MaximumInscribedCircle from polygons in the input materialized view.
6+
-- Extracts all columns dynamically from the source materialized view and
7+
-- converts the geometry to a centroid point.
68
--
79
-- Parameters:
8-
-- input_table TEXT - Source table name (e.g., osm_admin_areas).
10+
-- source_mview TEXT - Source materialized view name (e.g., mv_admin_boundaries_areas_z16_20).
911
-- mview_name TEXT - Name of the final materialized view to create.
1012
-- unique_columns TEXT - Comma-separated list of columns for uniqueness
1113
-- (default: 'id, osm_id, type').
@@ -14,16 +16,16 @@
1416
--
1517
-- Notes:
1618
-- - Excludes boundaries with role='label' from centroid calculation.
17-
-- - Area is stored in square kilometers as integer.
19+
-- - Extracts all columns dynamically from the source materialized view.
20+
-- - Converts geometry to centroid using ST_MaximumInscribedCircle.
1821
-- - Geometry is indexed using GiST.
1922
-- - Uniqueness is enforced on the specified unique_columns.
20-
-- - Includes multilingual name columns via get_language_columns().
2123
-- - Uses finalize_materialized_view() for atomic creation and renaming.
2224
-- ============================================================================
2325

2426
DROP FUNCTION IF EXISTS create_admin_boundaries_centroids_mview;
2527
CREATE OR REPLACE FUNCTION create_admin_boundaries_centroids_mview(
26-
input_table TEXT,
28+
source_mview TEXT,
2729
mview_name TEXT,
2830
unique_columns TEXT DEFAULT 'id, osm_id, type',
2931
where_filter TEXT DEFAULT NULL
@@ -32,7 +34,7 @@ RETURNS void AS $$
3234
DECLARE
3335
tmp_mview_name TEXT := mview_name || '_tmp';
3436
sql_create TEXT;
35-
lang_columns TEXT := get_language_columns();
37+
all_cols TEXT;
3638
custom_filter TEXT;
3739
BEGIN
3840
-- Build custom WHERE filter (if provided)
@@ -43,27 +45,37 @@ BEGIN
4345
custom_filter := '';
4446
END IF;
4547

48+
-- Get all columns from the source materialized view, replacing geometry with centroid
49+
SELECT COALESCE(string_agg(
50+
CASE
51+
WHEN a.attname = 'geometry' THEN '(ST_MaximumInscribedCircle(geometry)).center AS geometry'
52+
ELSE quote_ident(a.attname)
53+
END,
54+
', ' ORDER BY a.attnum
55+
), '')
56+
INTO all_cols
57+
FROM pg_attribute a
58+
JOIN pg_class c ON a.attrelid = c.oid
59+
JOIN pg_namespace n ON c.relnamespace = n.oid
60+
WHERE n.nspname = 'public'
61+
AND c.relname = source_mview
62+
AND a.attnum > 0
63+
AND NOT a.attisdropped;
64+
65+
IF all_cols IS NULL THEN
66+
RAISE EXCEPTION 'No columns found for %. Make sure the materialized view exists.', source_mview;
67+
END IF;
68+
4669
sql_create := format($sql$
4770
CREATE MATERIALIZED VIEW %I AS
4871
SELECT
49-
ABS(osm_id) AS id,
50-
osm_id,
51-
NULLIF(name, '') AS name,
52-
admin_level,
53-
NULLIF(type, '') AS type,
54-
(ST_MaximumInscribedCircle(geometry)).center AS geometry,
55-
NULLIF(start_date, '') AS start_date,
56-
NULLIF(end_date, '') AS end_date,
57-
isodatetodecimaldate(pad_date(start_date, 'start'), FALSE) AS start_decdate,
58-
isodatetodecimaldate(pad_date(end_date, 'end'), FALSE) AS end_decdate,
59-
ROUND(CAST(area AS numeric) / 1000000)::integer AS area_km2,
6072
%s
6173
FROM %I
6274
WHERE name IS NOT NULL AND name <> ''
6375
AND osm_id NOT IN (
6476
SELECT osm_id FROM osm_relation_members WHERE role = 'label'
6577
)%s;
66-
$sql$, tmp_mview_name, lang_columns, input_table, custom_filter);
78+
$sql$, tmp_mview_name, all_cols, source_mview, custom_filter);
6779

6880
-- Finalize the materialized view and its indexes
6981
PERFORM finalize_materialized_view(
@@ -78,13 +90,15 @@ $$ LANGUAGE plpgsql;
7890
-- ============================================================================
7991
-- Execute force creation of all admin boundaries centroids materialized views
8092
-- ============================================================================
81-
SELECT create_admin_boundaries_centroids_mview('osm_admin_areas', 'mv_admin_boundaries_centroids_z0_2', 'id, osm_id, type', 'admin_level IN (1,2)');
82-
SELECT create_admin_boundaries_centroids_mview('osm_admin_areas', 'mv_admin_boundaries_centroids_z3_5', 'id, osm_id, type', 'admin_level IN (1,2,3,4)');
83-
SELECT create_admin_boundaries_centroids_mview('osm_admin_areas', 'mv_admin_boundaries_centroids_z6_7', 'id, osm_id, type', 'admin_level IN (1,2,3,4,5,6)');
84-
SELECT create_admin_boundaries_centroids_mview('osm_admin_areas', 'mv_admin_boundaries_centroids_z8_9', 'id, osm_id, type', 'admin_level IN (1,2,3,4,5,6,7,8,9)');
85-
SELECT create_admin_boundaries_centroids_mview('osm_admin_areas', 'mv_admin_boundaries_centroids_z10_12', 'id, osm_id, type', 'admin_level IN (1,2,3,4,5,6,7,8,9,10)');
86-
SELECT create_admin_boundaries_centroids_mview('osm_admin_areas', 'mv_admin_boundaries_centroids_z13_15', 'id, osm_id, type', 'admin_level IN (1,2,3,4,5,6,7,8,9,10,11)');
87-
SELECT create_admin_boundaries_centroids_mview('osm_admin_areas', 'mv_admin_boundaries_centroids_z16_20', 'id, osm_id, type', 'admin_level IN (1,2,3,4,5,6,7,8,9,10,11)');
93+
-- Create centroids from corresponding area materialized views
94+
-- The where_filter is no longer needed as the area views already have the appropriate filters
95+
SELECT create_admin_boundaries_centroids_mview('mv_admin_boundaries_areas_z0_2', 'mv_admin_boundaries_centroids_z0_2', 'id, osm_id, type', NULL);
96+
SELECT create_admin_boundaries_centroids_mview('mv_admin_boundaries_areas_z3_5', 'mv_admin_boundaries_centroids_z3_5', 'id, osm_id, type', NULL);
97+
SELECT create_admin_boundaries_centroids_mview('mv_admin_boundaries_areas_z6_7', 'mv_admin_boundaries_centroids_z6_7', 'id, osm_id, type', NULL);
98+
SELECT create_admin_boundaries_centroids_mview('mv_admin_boundaries_areas_z8_9', 'mv_admin_boundaries_centroids_z8_9', 'id, osm_id, type', NULL);
99+
SELECT create_admin_boundaries_centroids_mview('mv_admin_boundaries_areas_z10_12', 'mv_admin_boundaries_centroids_z10_12', 'id, osm_id, type', NULL);
100+
SELECT create_admin_boundaries_centroids_mview('mv_admin_boundaries_areas_z13_15', 'mv_admin_boundaries_centroids_z13_15', 'id, osm_id, type', NULL);
101+
SELECT create_admin_boundaries_centroids_mview('mv_admin_boundaries_areas_z16_20', 'mv_admin_boundaries_centroids_z16_20', 'id, osm_id, type', NULL);
88102

89103
-- Refresh centroids views
90104
-- REFRESH MATERIALIZED VIEW CONCURRENTLY mv_admin_boundaries_centroids_z0_2;
@@ -94,3 +108,5 @@ SELECT create_admin_boundaries_centroids_mview('osm_admin_areas', 'mv_admin_boun
94108
-- REFRESH MATERIALIZED VIEW CONCURRENTLY mv_admin_boundaries_centroids_z10_12;
95109
-- REFRESH MATERIALIZED VIEW CONCURRENTLY mv_admin_boundaries_centroids_z13_15;
96110
-- REFRESH MATERIALIZED VIEW CONCURRENTLY mv_admin_boundaries_centroids_z16_20;
111+
112+

images/tiler-imposm/queries/ohm_mviews/admin_boundaries_maritime.sql

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ SELECT create_lines_mview(
1010
'maritime = ''yes'''
1111
);
1212

13-
1413
SELECT create_lines_mview(
1514
'osm_admin_lines',
1615
'mv_admin_maritime_lines_z6_9',

images/tiler-imposm/queries/ohm_mviews/routes_01_merge_by_date.sql

Lines changed: 67 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,52 @@
11
-- ============================================================================
2-
-- STEP 1: Add New Columns
2+
-- STEP 1: Add New Columns (only if they don't exist)
33
-- ============================================================================
44

55
--- osm_route_multilines
66
SELECT log_notice('STEP 1: Adding new columns in osm_route_multilines table');
7-
ALTER TABLE osm_route_multilines
8-
ADD COLUMN start_decdate DOUBLE PRECISION,
9-
ADD COLUMN end_decdate DOUBLE PRECISION;
7+
DO $$
8+
BEGIN
9+
IF NOT EXISTS (
10+
SELECT 1 FROM information_schema.columns
11+
WHERE table_schema = 'public'
12+
AND table_name = 'osm_route_multilines'
13+
AND column_name = 'start_decdate'
14+
) THEN
15+
ALTER TABLE osm_route_multilines ADD COLUMN start_decdate DOUBLE PRECISION;
16+
END IF;
17+
18+
IF NOT EXISTS (
19+
SELECT 1 FROM information_schema.columns
20+
WHERE table_schema = 'public'
21+
AND table_name = 'osm_route_multilines'
22+
AND column_name = 'end_decdate'
23+
) THEN
24+
ALTER TABLE osm_route_multilines ADD COLUMN end_decdate DOUBLE PRECISION;
25+
END IF;
26+
END $$;
1027

1128
--- osm_route_lines
1229
SELECT log_notice('STEP 1: Adding new columns in osm_route_lines table');
13-
ALTER TABLE osm_route_lines
14-
ADD COLUMN start_decdate DOUBLE PRECISION,
15-
ADD COLUMN end_decdate DOUBLE PRECISION;
30+
DO $$
31+
BEGIN
32+
IF NOT EXISTS (
33+
SELECT 1 FROM information_schema.columns
34+
WHERE table_schema = 'public'
35+
AND table_name = 'osm_route_lines'
36+
AND column_name = 'start_decdate'
37+
) THEN
38+
ALTER TABLE osm_route_lines ADD COLUMN start_decdate DOUBLE PRECISION;
39+
END IF;
40+
41+
IF NOT EXISTS (
42+
SELECT 1 FROM information_schema.columns
43+
WHERE table_schema = 'public'
44+
AND table_name = 'osm_route_lines'
45+
AND column_name = 'end_decdate'
46+
) THEN
47+
ALTER TABLE osm_route_lines ADD COLUMN end_decdate DOUBLE PRECISION;
48+
END IF;
49+
END $$;
1650

1751

1852
-- ============================================================================
@@ -21,18 +55,34 @@ ADD COLUMN end_decdate DOUBLE PRECISION;
2155
-- ============================================================================
2256

2357
--- osm_route_multilines
24-
CREATE TRIGGER trigger_decimal_dates_osm_route_multilines
25-
BEFORE INSERT OR UPDATE
26-
ON osm_route_multilines
27-
FOR EACH ROW
28-
EXECUTE FUNCTION convert_dates_to_decimal();
58+
DO $$
59+
BEGIN
60+
IF NOT EXISTS (
61+
SELECT 1 FROM pg_trigger
62+
WHERE tgname = 'trigger_decimal_dates_osm_route_multilines'
63+
) THEN
64+
CREATE TRIGGER trigger_decimal_dates_osm_route_multilines
65+
BEFORE INSERT OR UPDATE
66+
ON osm_route_multilines
67+
FOR EACH ROW
68+
EXECUTE FUNCTION convert_dates_to_decimal();
69+
END IF;
70+
END $$;
2971

3072
--- osm_route_lines
31-
CREATE TRIGGER trigger_decimal_dates_osm_route_lines
32-
BEFORE INSERT OR UPDATE
33-
ON osm_route_lines
34-
FOR EACH ROW
35-
EXECUTE FUNCTION convert_dates_to_decimal();
73+
DO $$
74+
BEGIN
75+
IF NOT EXISTS (
76+
SELECT 1 FROM pg_trigger
77+
WHERE tgname = 'trigger_decimal_dates_osm_route_lines'
78+
) THEN
79+
CREATE TRIGGER trigger_decimal_dates_osm_route_lines
80+
BEFORE INSERT OR UPDATE
81+
ON osm_route_lines
82+
FOR EACH ROW
83+
EXECUTE FUNCTION convert_dates_to_decimal();
84+
END IF;
85+
END $$;
3686

3787

3888
-- ============================================================================

images/tiler-imposm/queries/ohm_mviews/routes_03_mv.sql

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
-- applying NULLIF(..., '') to avoid empty string values.
1111
--
1212
-- Automatically creates:
13+
-- - Sequential ID column (ROW_NUMBER)
1314
-- - Unique index on (osm_id, start_decdate, end_decdate)
1415
-- - Spatial GIST index on the geometry column
1516
--
@@ -40,6 +41,7 @@ BEGIN
4041

4142
CREATE MATERIALIZED VIEW %I AS
4243
SELECT
44+
ROW_NUMBER() OVER (ORDER BY way_id, min_start_decdate, max_end_decdate) AS id,
4345
way_id AS osm_id,
4446
min_start_decdate AS start_decdate,
4547
max_end_decdate AS end_decdate,
@@ -388,13 +390,21 @@ BEGIN
388390
END;
389391
$$ LANGUAGE plpgsql;
390392

391-
SELECT create_mv_routes_by_length('mv_routes_indexed_z5', 1000);
392-
SELECT create_mv_routes_by_length('mv_routes_indexed_z6_7', 200);
393-
SELECT create_mv_routes_by_length('mv_routes_indexed_z8_9', 100);
394-
SELECT create_mv_routes_by_length('mv_routes_indexed_z10_12', 20);
395-
SELECT create_mv_routes_by_length('mv_routes_indexed_z13_15', 5);
396393
SELECT create_mv_routes_by_length('mv_routes_indexed_z16_20', 0);
397394

395+
SELECT create_mview_line_from_mview('mv_routes_indexed_z16_20', 'mv_routes_indexed_z13_15', 5, NULL);
396+
SELECT create_mview_line_from_mview('mv_routes_indexed_z13_15', 'mv_routes_indexed_z10_12', 20, NULL);
397+
SELECT create_mview_line_from_mview('mv_routes_indexed_z10_12', 'mv_routes_indexed_z8_9', 100, NULL);
398+
SELECT create_mview_line_from_mview('mv_routes_indexed_z8_9', 'mv_routes_indexed_z6_7', 200, NULL);
399+
SELECT create_mview_line_from_mview('mv_routes_indexed_z6_7', 'mv_routes_indexed_z5', 1000, NULL);
400+
401+
-- SELECT create_mv_routes_by_length('mv_routes_indexed_z5', 1000);
402+
-- SELECT create_mv_routes_by_length('mv_routes_indexed_z6_7', 200);
403+
-- SELECT create_mv_routes_by_length('mv_routes_indexed_z8_9', 100);
404+
-- SELECT create_mv_routes_by_length('mv_routes_indexed_z10_12', 20);
405+
-- SELECT create_mv_routes_by_length('mv_routes_indexed_z13_15', 5);
406+
-- SELECT create_mv_routes_by_length('mv_routes_indexed_z16_20', 0);
407+
398408
-- Refresh routes views
399409
-- REFRESH MATERIALIZED VIEW CONCURRENTLY mv_routes_indexed_z5;
400410
-- REFRESH MATERIALIZED VIEW CONCURRENTLY mv_routes_indexed_z6_7;

images/tiler-imposm/queries/ohm_mviews/transport_lines.sql

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -164,12 +164,14 @@ $$ LANGUAGE plpgsql;
164164
-- ============================================================================
165165
-- Create materialized views for transport lines
166166
-- ============================================================================
167-
SELECT create_transport_lines_mview('mv_transport_lines_z5', 1000, ARRAY['motorway', 'motorway_link', 'trunk', 'trunk_link', 'construction', 'primary', 'primary_link', 'rail', 'secondary', 'secondary_link'], ARRAY['railway']);
168-
SELECT create_transport_lines_mview('mv_transport_lines_z6_7', 200, ARRAY['motorway', 'motorway_link', 'trunk', 'trunk_link', 'construction', 'primary', 'primary_link', 'rail', 'secondary', 'secondary_link'], ARRAY['railway']);
169-
SELECT create_transport_lines_mview('mv_transport_lines_z8_9', 100, ARRAY['motorway', 'motorway_link', 'trunk', 'trunk_link', 'construction', 'primary', 'primary_link', 'rail', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'taxiway', 'runway'], ARRAY['railway']);
170-
SELECT create_transport_lines_mview('mv_transport_lines_z10_12', 20, ARRAY['motorway', 'motorway_link', 'trunk', 'trunk_link', 'construction', 'primary', 'primary_link', 'rail', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'taxiway', 'runway'], ARRAY['railway']);
171-
SELECT create_transport_lines_mview('mv_transport_lines_z13_15', 5, ARRAY['motorway', 'motorway_link', 'trunk', 'trunk_link', 'construction', 'primary', 'primary_link', 'rail', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'miniature', 'narrow_gauge', 'dismantled', 'abandoned', 'disused', 'razed', 'light_rail', 'preserved', 'proposed', 'tram', 'funicular', 'monorail', 'taxiway', 'runway', 'raceway', 'residential', 'service', 'unclassified'], ARRAY['railway']);
167+
DROP FUNCTION IF EXISTS mv_transport_lines_z16_20;
172168
SELECT create_transport_lines_mview('mv_transport_lines_z16_20', 0, ARRAY['*'], ARRAY['railway','route']);
169+
SELECT create_mview_line_from_mview('mv_transport_lines_z16_20', 'mv_transport_lines_z13_15', 5, 'type IN (''motorway'', ''motorway_link'', ''trunk'', ''trunk_link'', ''construction'', ''primary'', ''primary_link'', ''rail'', ''secondary'', ''secondary_link'', ''tertiary'', ''tertiary_link'', ''miniature'', ''narrow_gauge'', ''dismantled'', ''abandoned'', ''disused'', ''razed'', ''light_rail'', ''preserved'', ''proposed'', ''tram'', ''funicular'', ''monorail'', ''taxiway'', ''runway'', ''raceway'', ''residential'', ''service'', ''unclassified'') AND class IN (''railway'')');
170+
SELECT create_mview_line_from_mview('mv_transport_lines_z13_15', 'mv_transport_lines_z10_12', 20, 'type IN (''motorway'', ''motorway_link'', ''trunk'', ''trunk_link'', ''construction'', ''primary'', ''primary_link'', ''rail'', ''secondary'', ''secondary_link'', ''tertiary'', ''tertiary_link'', ''miniature'', ''narrow_gauge'', ''dismantled'', ''abandoned'', ''disused'', ''razed'', ''light_rail'', ''preserved'', ''proposed'', ''tram'', ''funicular'', ''monorail'', ''taxiway'', ''runway'') AND class IN (''railway'')')
171+
SELECT create_mview_line_from_mview('mv_transport_lines_z10_12', 'mv_transport_lines_z8_9', 100, NULL)
172+
SELECT create_mview_line_from_mview('mv_transport_lines_z8_9', 'mv_transport_lines_z6_7', 200 , 'type IN (''motorway'', ''motorway_link'', ''trunk'', ''trunk_link'', ''construction'', ''primary'', ''primary_link'', ''rail'', ''secondary'', ''secondary_link'') AND class IN (''railway'')')
173+
SELECT create_mview_line_from_mview('mv_transport_lines_z6_7', 'mv_transport_lines_z5', 1000 , NULL)
174+
173175

174176
-- Refresh lines views
175177
-- REFRESH MATERIALIZED VIEW CONCURRENTLY mv_transport_lines_z5;

0 commit comments

Comments
 (0)