Make the sql rerunnable without error

This commit is contained in:
stirringhalo 2017-01-05 12:47:10 -05:00
parent c5f05e7c3a
commit 9437a1b8d6
9 changed files with 57 additions and 16 deletions

View File

@ -1,5 +1,5 @@
-- etldoc: osm_island_polygon -> osm_island_polygon -- etldoc: osm_island_polygon -> osm_island_polygon
CREATE FUNCTION convert_island_polygon_point() RETURNS VOID AS $$ CREATE OR REPLACE FUNCTION convert_island_polygon_point() RETURNS VOID AS $$
BEGIN BEGIN
UPDATE osm_island_polygon SET geometry=topoint(geometry) WHERE ST_GeometryType(geometry) <> 'ST_Point'; UPDATE osm_island_polygon SET geometry=topoint(geometry) WHERE ST_GeometryType(geometry) <> 'ST_Point';
ANALYZE osm_island_polygon; ANALYZE osm_island_polygon;
@ -10,7 +10,7 @@ SELECT convert_island_polygon_point();
-- Handle updates -- Handle updates
CREATE SCHEMA place_island; CREATE SCHEMA IF NOT EXISTS place_island;
CREATE TABLE IF NOT EXISTS place_island.updates(id serial primary key, t text, unique (t)); CREATE TABLE IF NOT EXISTS place_island.updates(id serial primary key, t text, unique (t));
CREATE OR REPLACE FUNCTION place_island.flag() RETURNS trigger AS $$ CREATE OR REPLACE FUNCTION place_island.flag() RETURNS trigger AS $$
@ -31,6 +31,9 @@ CREATE OR REPLACE FUNCTION place_island.refresh() RETURNS trigger AS
$BODY$ $BODY$
language plpgsql; language plpgsql;
DROP TRIGGER IF EXISTS trigger_flag ON osm_island_polygon;
DROP TRIGGER IF EXISTS trigger_refresh ON place_island.updates;
CREATE TRIGGER trigger_flag CREATE TRIGGER trigger_flag
AFTER INSERT OR UPDATE OR DELETE ON osm_island_polygon AFTER INSERT OR UPDATE OR DELETE ON osm_island_polygon
FOR EACH STATEMENT FOR EACH STATEMENT

View File

@ -2,7 +2,7 @@
CREATE EXTENSION IF NOT EXISTS unaccent; CREATE EXTENSION IF NOT EXISTS unaccent;
CREATE FUNCTION update_osm_city_point() RETURNS VOID AS $$ CREATE OR REPLACE FUNCTION update_osm_city_point() RETURNS VOID AS $$
BEGIN BEGIN
-- Clear OSM key:rank ( https://github.com/openmaptiles/openmaptiles/issues/108 ) -- Clear OSM key:rank ( https://github.com/openmaptiles/openmaptiles/issues/108 )
@ -48,7 +48,7 @@ CREATE INDEX IF NOT EXISTS osm_city_point_rank_idx ON osm_city_point("rank");
-- Handle updates -- Handle updates
CREATE SCHEMA place_city; CREATE SCHEMA IF NOT EXISTS place_city;
CREATE TABLE IF NOT EXISTS place_city.updates(id serial primary key, t text, unique (t)); CREATE TABLE IF NOT EXISTS place_city.updates(id serial primary key, t text, unique (t));
CREATE OR REPLACE FUNCTION place_city.flag() RETURNS trigger AS $$ CREATE OR REPLACE FUNCTION place_city.flag() RETURNS trigger AS $$
@ -69,6 +69,9 @@ CREATE OR REPLACE FUNCTION place_city.refresh() RETURNS trigger AS
$BODY$ $BODY$
language plpgsql; language plpgsql;
DROP TRIGGER IF EXISTS trigger_flag ON osm_city_point;
DROP TRIGGER IF EXISTS trigger_refresh ON place_city.updates;
CREATE TRIGGER trigger_flag CREATE TRIGGER trigger_flag
AFTER INSERT OR UPDATE OR DELETE ON osm_city_point AFTER INSERT OR UPDATE OR DELETE ON osm_city_point
FOR EACH STATEMENT FOR EACH STATEMENT

View File

@ -3,7 +3,7 @@ ALTER TABLE osm_country_point DROP CONSTRAINT IF EXISTS osm_country_point_rank_c
-- etldoc: ne_10m_admin_0_countries -> osm_country_point -- etldoc: ne_10m_admin_0_countries -> osm_country_point
-- etldoc: osm_country_point -> osm_country_point -- etldoc: osm_country_point -> osm_country_point
CREATE FUNCTION update_osm_country_point() RETURNS VOID AS $$ CREATE OR REPLACE FUNCTION update_osm_country_point() RETURNS VOID AS $$
BEGIN BEGIN
WITH important_country_point AS ( WITH important_country_point AS (
@ -43,7 +43,7 @@ CREATE INDEX IF NOT EXISTS osm_country_point_rank_idx ON osm_country_point("rank
-- Handle updates -- Handle updates
CREATE SCHEMA place_country; CREATE SCHEMA IF NOT EXISTS place_country;
CREATE TABLE IF NOT EXISTS place_country.updates(id serial primary key, t text, unique (t)); CREATE TABLE IF NOT EXISTS place_country.updates(id serial primary key, t text, unique (t));
CREATE OR REPLACE FUNCTION place_country.flag() RETURNS trigger AS $$ CREATE OR REPLACE FUNCTION place_country.flag() RETURNS trigger AS $$
@ -64,6 +64,9 @@ CREATE OR REPLACE FUNCTION place_country.refresh() RETURNS trigger AS
$BODY$ $BODY$
language plpgsql; language plpgsql;
DROP TRIGGER IF EXISTS trigger_flag ON osm_country_point;
DROP TRIGGER IF EXISTS trigger_refresh ON place_country.updates;
CREATE TRIGGER trigger_flag CREATE TRIGGER trigger_flag
AFTER INSERT OR UPDATE OR DELETE ON osm_country_point AFTER INSERT OR UPDATE OR DELETE ON osm_country_point
FOR EACH STATEMENT FOR EACH STATEMENT

View File

@ -3,7 +3,7 @@ ALTER TABLE osm_state_point DROP CONSTRAINT IF EXISTS osm_state_point_rank_const
-- etldoc: ne_10m_admin_1_states_provinces_shp -> osm_state_point -- etldoc: ne_10m_admin_1_states_provinces_shp -> osm_state_point
-- etldoc: osm_state_point -> osm_state_point -- etldoc: osm_state_point -> osm_state_point
CREATE FUNCTION update_osm_state_point() RETURNS VOID AS $$ CREATE OR REPLACE FUNCTION update_osm_state_point() RETURNS VOID AS $$
BEGIN BEGIN
WITH important_state_point AS ( WITH important_state_point AS (
@ -39,7 +39,7 @@ CREATE INDEX IF NOT EXISTS osm_state_point_rank_idx ON osm_state_point("rank");
-- Handle updates -- Handle updates
CREATE SCHEMA place_state; CREATE SCHEMA IF NOT EXISTS place_state;
CREATE TABLE IF NOT EXISTS place_state.updates(id serial primary key, t text, unique (t)); CREATE TABLE IF NOT EXISTS place_state.updates(id serial primary key, t text, unique (t));
CREATE OR REPLACE FUNCTION place_state.flag() RETURNS trigger AS $$ CREATE OR REPLACE FUNCTION place_state.flag() RETURNS trigger AS $$
@ -60,6 +60,9 @@ CREATE OR REPLACE FUNCTION place_state.refresh() RETURNS trigger AS
$BODY$ $BODY$
language plpgsql; language plpgsql;
DROP TRIGGER IF EXISTS trigger_flag ON osm_state_point;
DROP TRIGGER IF EXISTS trigger_refresh ON place_state.updates;
CREATE TRIGGER trigger_flag CREATE TRIGGER trigger_flag
AFTER INSERT OR UPDATE OR DELETE ON osm_state_point AFTER INSERT OR UPDATE OR DELETE ON osm_state_point
FOR EACH STATEMENT FOR EACH STATEMENT

View File

@ -1,6 +1,6 @@
-- etldoc: osm_poi_polygon -> osm_poi_polygon -- etldoc: osm_poi_polygon -> osm_poi_polygon
CREATE FUNCTION convert_poi_point() RETURNS VOID AS $$ CREATE OR REPLACE FUNCTION convert_poi_point() RETURNS VOID AS $$
BEGIN BEGIN
UPDATE osm_poi_polygon SET geometry=topoint(geometry) WHERE ST_GeometryType(geometry) <> 'ST_Point'; UPDATE osm_poi_polygon SET geometry=topoint(geometry) WHERE ST_GeometryType(geometry) <> 'ST_Point';
ANALYZE osm_poi_polygon; ANALYZE osm_poi_polygon;
@ -11,7 +11,7 @@ SELECT convert_poi_point();
-- Handle updates -- Handle updates
CREATE SCHEMA poi; CREATE SCHEMA IF NOT EXISTS poi;
CREATE TABLE IF NOT EXISTS poi.updates(id serial primary key, t text, unique (t)); CREATE TABLE IF NOT EXISTS poi.updates(id serial primary key, t text, unique (t));
CREATE OR REPLACE FUNCTION poi.flag() RETURNS trigger AS $$ CREATE OR REPLACE FUNCTION poi.flag() RETURNS trigger AS $$
@ -32,6 +32,9 @@ CREATE OR REPLACE FUNCTION poi.refresh() RETURNS trigger AS
$BODY$ $BODY$
language plpgsql; language plpgsql;
DROP TRIGGER IF EXISTS trigger_flag ON osm_poi_polygon;
DROP TRIGGER IF EXISTS trigger_refresh ON poi.updates;
CREATE TRIGGER trigger_flag CREATE TRIGGER trigger_flag
AFTER INSERT OR UPDATE OR DELETE ON osm_poi_polygon AFTER INSERT OR UPDATE OR DELETE ON osm_poi_polygon
FOR EACH STATEMENT FOR EACH STATEMENT

View File

@ -4,6 +4,11 @@
-- to allow for nice label rendering -- to allow for nice label rendering
-- Because this works well for roads that do not have relations as well -- Because this works well for roads that do not have relations as well
DROP MATERIALIZED VIEW IF EXISTS osm_transportation_name_linestring CASCADE;
DROP MATERIALIZED VIEW IF EXISTS osm_transportation_name_linestring_gen1 CASCADE;
DROP MATERIALIZED VIEW IF EXISTS osm_transportation_name_linestring_gen2 CASCADE;
DROP MATERIALIZED VIEW IF EXISTS osm_transportation_name_linestring_gen3 CASCADE;
-- etldoc: osm_highway_linestring -> osm_transportation_name_linestring -- etldoc: osm_highway_linestring -> osm_transportation_name_linestring
CREATE MATERIALIZED VIEW osm_transportation_name_linestring AS ( CREATE MATERIALIZED VIEW osm_transportation_name_linestring AS (
SELECT SELECT
@ -58,7 +63,7 @@ CREATE INDEX IF NOT EXISTS osm_transportation_name_linestring_gen3_geometry_idx
-- Handle updates -- Handle updates
CREATE SCHEMA transportation_name; CREATE SCHEMA IF NOT EXISTS transportation_name;
CREATE TABLE IF NOT EXISTS transportation_name.updates(id serial primary key, t text, unique (t)); CREATE TABLE IF NOT EXISTS transportation_name.updates(id serial primary key, t text, unique (t));
CREATE OR REPLACE FUNCTION transportation_name.flag() RETURNS trigger AS $$ CREATE OR REPLACE FUNCTION transportation_name.flag() RETURNS trigger AS $$
@ -82,6 +87,9 @@ CREATE OR REPLACE FUNCTION transportation_name.refresh() RETURNS trigger AS
$BODY$ $BODY$
language plpgsql; language plpgsql;
DROP TRIGGER IF EXISTS trigger_flag ON osm_highway_linestring;
DROP TRIGGER IF EXISTS trigger_refresh ON transportation_name.updates;
CREATE TRIGGER trigger_flag CREATE TRIGGER trigger_flag
AFTER INSERT OR UPDATE OR DELETE ON osm_highway_linestring AFTER INSERT OR UPDATE OR DELETE ON osm_highway_linestring
FOR EACH STATEMENT FOR EACH STATEMENT

View File

@ -1,6 +1,8 @@
-- etldoc: osm_water_polygon -> osm_water_lakeline -- etldoc: osm_water_polygon -> osm_water_lakeline
-- etldoc: lake_centerline -> osm_water_lakeline -- etldoc: lake_centerline -> osm_water_lakeline
DROP MATERIALIZED VIEW IF EXISTS osm_water_lakeline CASCADE;
CREATE MATERIALIZED VIEW osm_water_lakeline AS ( CREATE MATERIALIZED VIEW osm_water_lakeline AS (
SELECT wp.osm_id, SELECT wp.osm_id,
ll.wkb_geometry AS geometry, ll.wkb_geometry AS geometry,
@ -13,7 +15,7 @@ CREATE INDEX IF NOT EXISTS osm_water_lakeline_geometry_idx ON osm_water_lakeline
-- Handle updates -- Handle updates
CREATE SCHEMA water_lakeline; CREATE SCHEMA IF NOT EXISTS water_lakeline;
CREATE TABLE IF NOT EXISTS water_lakeline.updates(id serial primary key, t text, unique (t)); CREATE TABLE IF NOT EXISTS water_lakeline.updates(id serial primary key, t text, unique (t));
CREATE OR REPLACE FUNCTION water_lakeline.flag() RETURNS trigger AS $$ CREATE OR REPLACE FUNCTION water_lakeline.flag() RETURNS trigger AS $$
@ -34,6 +36,9 @@ CREATE OR REPLACE FUNCTION water_lakeline.refresh() RETURNS trigger AS
$BODY$ $BODY$
language plpgsql; language plpgsql;
DROP TRIGGER IF EXISTS trigger_flag ON osm_water_polygon;
DROP TRIGGER IF EXISTS trigger_refresh ON water_lakeline.updates;
CREATE TRIGGER trigger_flag CREATE TRIGGER trigger_flag
AFTER INSERT OR UPDATE OR DELETE ON osm_water_polygon AFTER INSERT OR UPDATE OR DELETE ON osm_water_polygon
FOR EACH STATEMENT FOR EACH STATEMENT

View File

@ -1,6 +1,8 @@
-- etldoc: osm_water_polygon -> osm_water_point -- etldoc: osm_water_polygon -> osm_water_point
-- etldoc: lake_centerline -> osm_water_point -- etldoc: lake_centerline -> osm_water_point
DROP MATERIALIZED VIEW IF EXISTS osm_water_point CASCADE;
CREATE MATERIALIZED VIEW osm_water_point AS ( CREATE MATERIALIZED VIEW osm_water_point AS (
SELECT SELECT
wp.osm_id, topoint(wp.geometry) AS geometry, wp.osm_id, topoint(wp.geometry) AS geometry,
@ -13,7 +15,7 @@ CREATE INDEX IF NOT EXISTS osm_water_point_geometry_idx ON osm_water_point USING
-- Handle updates -- Handle updates
CREATE SCHEMA water_name; CREATE SCHEMA IF NOT EXISTS water_name;
CREATE TABLE IF NOT EXISTS water_name.updates(id serial primary key, t text, unique (t)); CREATE TABLE IF NOT EXISTS water_name.updates(id serial primary key, t text, unique (t));
CREATE OR REPLACE FUNCTION water_name.flag() RETURNS trigger AS $$ CREATE OR REPLACE FUNCTION water_name.flag() RETURNS trigger AS $$
@ -34,6 +36,9 @@ CREATE OR REPLACE FUNCTION water_name.refresh() RETURNS trigger AS
$BODY$ $BODY$
language plpgsql; language plpgsql;
DROP TRIGGER IF EXISTS trigger_flag ON osm_water_polygon;
DROP TRIGGER IF EXISTS trigger_refresh ON water_name.updates;
CREATE TRIGGER trigger_flag CREATE TRIGGER trigger_flag
AFTER INSERT OR UPDATE OR DELETE ON osm_water_polygon AFTER INSERT OR UPDATE OR DELETE ON osm_water_polygon
FOR EACH STATEMENT FOR EACH STATEMENT

View File

@ -4,6 +4,11 @@
-- and also makes it possible to filter out too short rivers -- and also makes it possible to filter out too short rivers
-- etldoc: osm_waterway_linestring -> osm_important_waterway_linestring -- etldoc: osm_waterway_linestring -> osm_important_waterway_linestring
DROP MATERIALIZED VIEW IF EXISTS osm_important_waterway_linestring CASCADE;
DROP MATERIALIZED VIEW IF EXISTS osm_important_waterway_linestring_gen1 CASCADE;
DROP MATERIALIZED VIEW IF EXISTS osm_important_waterway_linestring_gen2 CASCADE;
DROP MATERIALIZED VIEW IF EXISTS osm_important_waterway_linestring_gen3 CASCADE;
CREATE MATERIALIZED VIEW osm_important_waterway_linestring AS ( CREATE MATERIALIZED VIEW osm_important_waterway_linestring AS (
SELECT SELECT
(ST_Dump(geometry)).geom AS geometry, (ST_Dump(geometry)).geom AS geometry,
@ -45,7 +50,7 @@ CREATE INDEX IF NOT EXISTS osm_important_waterway_linestring_gen3_geometry_idx O
-- Handle updates -- Handle updates
CREATE SCHEMA waterway; CREATE SCHEMA IF NOT EXISTS waterway;
CREATE TABLE IF NOT EXISTS waterway.updates(id serial primary key, t text, unique (t)); CREATE TABLE IF NOT EXISTS waterway.updates(id serial primary key, t text, unique (t));
CREATE OR REPLACE FUNCTION waterway.flag() RETURNS trigger AS $$ CREATE OR REPLACE FUNCTION waterway.flag() RETURNS trigger AS $$
@ -69,6 +74,9 @@ CREATE OR REPLACE FUNCTION waterway.refresh() RETURNS trigger AS
$BODY$ $BODY$
language plpgsql; language plpgsql;
DROP TRIGGER IF EXISTS trigger_flag ON osm_waterway_linestring;
DROP TRIGGER IF EXISTS trigger_refresh ON waterway.updates;
CREATE TRIGGER trigger_flag CREATE TRIGGER trigger_flag
AFTER INSERT OR UPDATE OR DELETE ON osm_waterway_linestring AFTER INSERT OR UPDATE OR DELETE ON osm_waterway_linestring
FOR EACH STATEMENT FOR EACH STATEMENT