Skip to content

Commit a4a70e4

Browse files
committed
Add condition to run again the script
1 parent f28e4a5 commit a4a70e4

File tree

1 file changed

+71
-18
lines changed

1 file changed

+71
-18
lines changed

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

Lines changed: 71 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,84 @@
44
--STEP 1: Add New Columns in osm_relation_members_boundaries and osm_admin_lines
55
-- ============================================================================
66
SELECT log_notice('STEP 1: Adding new columns in osm_relation_members_boundaries and osm_admin_lines table');
7-
ALTER TABLE osm_relation_members_boundaries
8-
ADD COLUMN start_decdate DOUBLE PRECISION,
9-
ADD COLUMN end_decdate DOUBLE PRECISION;
107

11-
ALTER TABLE osm_admin_lines
12-
ADD COLUMN start_decdate DOUBLE PRECISION,
13-
ADD COLUMN end_decdate DOUBLE PRECISION;
8+
-- osm_relation_members_boundaries
9+
DO $$
10+
BEGIN
11+
IF NOT EXISTS (
12+
SELECT 1 FROM information_schema.columns
13+
WHERE table_schema = 'public'
14+
AND table_name = 'osm_relation_members_boundaries'
15+
AND column_name = 'start_decdate'
16+
) THEN
17+
ALTER TABLE osm_relation_members_boundaries ADD COLUMN start_decdate DOUBLE PRECISION;
18+
END IF;
19+
IF NOT EXISTS (
20+
SELECT 1 FROM information_schema.columns
21+
WHERE table_schema = 'public'
22+
AND table_name = 'osm_relation_members_boundaries'
23+
AND column_name = 'end_decdate'
24+
) THEN
25+
ALTER TABLE osm_relation_members_boundaries ADD COLUMN end_decdate DOUBLE PRECISION;
26+
END IF;
27+
END $$;
28+
29+
-- osm_admin_lines
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_admin_lines'
36+
AND column_name = 'start_decdate'
37+
) THEN
38+
ALTER TABLE osm_admin_lines ADD COLUMN start_decdate DOUBLE PRECISION;
39+
END IF;
40+
IF NOT EXISTS (
41+
SELECT 1 FROM information_schema.columns
42+
WHERE table_schema = 'public'
43+
AND table_name = 'osm_admin_lines'
44+
AND column_name = 'end_decdate'
45+
) THEN
46+
ALTER TABLE osm_admin_lines ADD COLUMN end_decdate DOUBLE PRECISION;
47+
END IF;
48+
END $$;
1449

1550

1651
-- ============================================================================
1752
-- STEP 2: Create the Trigger, which will call the function above
1853
-- ============================================================================
1954
SELECT log_notice('STEP 2: Create trigger to convert date to decimal for new/updated objects in osm_relation_members_boundaries and osm_admin_lines table');
20-
CREATE TRIGGER trigger_decimal_dates_osm_relation_members_boundaries
21-
BEFORE INSERT OR UPDATE
22-
ON osm_relation_members_boundaries
23-
FOR EACH ROW
24-
EXECUTE FUNCTION convert_dates_to_decimal();
25-
26-
27-
CREATE TRIGGER trigger_decimal_dates_osm_admin_lines
28-
BEFORE INSERT OR UPDATE
29-
ON osm_admin_lines
30-
FOR EACH ROW
31-
EXECUTE FUNCTION convert_dates_to_decimal();
55+
56+
-- osm_relation_members_boundaries trigger
57+
DO $$
58+
BEGIN
59+
IF NOT EXISTS (
60+
SELECT 1 FROM pg_trigger
61+
WHERE tgname = 'trigger_decimal_dates_osm_relation_members_boundaries'
62+
) THEN
63+
CREATE TRIGGER trigger_decimal_dates_osm_relation_members_boundaries
64+
BEFORE INSERT OR UPDATE
65+
ON osm_relation_members_boundaries
66+
FOR EACH ROW
67+
EXECUTE FUNCTION convert_dates_to_decimal();
68+
END IF;
69+
END $$;
70+
71+
-- osm_admin_lines trigger
72+
DO $$
73+
BEGIN
74+
IF NOT EXISTS (
75+
SELECT 1 FROM pg_trigger
76+
WHERE tgname = 'trigger_decimal_dates_osm_admin_lines'
77+
) THEN
78+
CREATE TRIGGER trigger_decimal_dates_osm_admin_lines
79+
BEFORE INSERT OR UPDATE
80+
ON osm_admin_lines
81+
FOR EACH ROW
82+
EXECUTE FUNCTION convert_dates_to_decimal();
83+
END IF;
84+
END $$;
3285

3386
-- ============================================================================
3487
-- STEP 3: Backfill Existing Data, Set timeout to 40 minutes (2400000 milliseconds) for the current session, this takes quite a while, sincecurrnelty thrre are ~5 million rows in the table

0 commit comments

Comments
 (0)