From dd1b2d3b15732f9b4b0bd3144dc57b18a07f0406 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Rodrigo?= Date: Tue, 21 Jul 2020 17:35:49 +0200 Subject: [PATCH] More fail safe incremental update on water_lakeline and water_point (#949) Improve 97216c5c191bf0df3705134cff234ed980f8ac78 and #853 In case of replay update it may fails because of already existing primary key on osm_id. Add a on conflict clause to make it fail safe. --- layers/water_name/update_water_lakeline.sql | 5 ++++- layers/water_name/update_water_point.sql | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/layers/water_name/update_water_lakeline.sql b/layers/water_name/update_water_lakeline.sql index 3c58e435..cb62bb2a 100644 --- a/layers/water_name/update_water_lakeline.sql +++ b/layers/water_name/update_water_lakeline.sql @@ -66,7 +66,10 @@ BEGIN INSERT INTO osm_water_lakeline SELECT * FROM osm_water_lakeline_view - WHERE osm_water_lakeline_view.osm_id = NEW.osm_id; + WHERE osm_water_lakeline_view.osm_id = NEW.osm_id + -- May happen in case we replay update + ON CONFLICT ON CONSTRAINT osm_water_point_pk + DO NOTHING; RETURN NULL; END; diff --git a/layers/water_name/update_water_point.sql b/layers/water_name/update_water_point.sql index b954bfce..cfa48614 100644 --- a/layers/water_name/update_water_point.sql +++ b/layers/water_name/update_water_point.sql @@ -66,7 +66,10 @@ BEGIN INSERT INTO osm_water_point SELECT * FROM osm_water_point_view - WHERE osm_water_point_view.osm_id = NEW.osm_id; + WHERE osm_water_point_view.osm_id = NEW.osm_id + -- May happen in case we replay update + ON CONFLICT ON CONSTRAINT osm_water_point_pk + DO NOTHING; RETURN NULL; END;