33 lines
923 B
PL/PgSQL
33 lines
923 B
PL/PgSQL
DROP TRIGGER IF EXISTS trigger_update_point ON osm_peak_point;
|
|
|
|
-- etldoc: osm_peak_point -> osm_peak_point
|
|
CREATE OR REPLACE FUNCTION update_osm_peak_point(new_osm_id bigint) RETURNS void AS
|
|
$$
|
|
UPDATE osm_peak_point
|
|
SET tags = update_tags(tags, geometry)
|
|
WHERE (new_osm_id IS NULL OR osm_id = new_osm_id)
|
|
AND COALESCE(tags -> 'name:latin', tags -> 'name:nonlatin', tags -> 'name_int') IS NULL
|
|
AND tags != update_tags(tags, geometry)
|
|
$$ LANGUAGE SQL;
|
|
|
|
SELECT update_osm_peak_point(NULL);
|
|
|
|
-- Handle updates
|
|
|
|
CREATE SCHEMA IF NOT EXISTS mountain_peak_point;
|
|
|
|
CREATE OR REPLACE FUNCTION mountain_peak_point.update() RETURNS trigger AS
|
|
$$
|
|
BEGIN
|
|
PERFORM update_osm_peak_point(new.osm_id);
|
|
RETURN NULL;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
CREATE CONSTRAINT TRIGGER trigger_update_point
|
|
AFTER INSERT OR UPDATE
|
|
ON osm_peak_point
|
|
INITIALLY DEFERRED
|
|
FOR EACH ROW
|
|
EXECUTE PROCEDURE mountain_peak_point.update();
|