gis
.road_graph
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
drop_editing_session(_editing_session_id integer)
Description
Delete the given editing session and truncate all the table of the road_graph_editing schema
Parameters
Name
Type
Mode
_editing_session_id
integer
IN
Definition
DECLARE editing_session_record record; _set_config text; _set_val bigint; BEGIN -- Get editing session record -- The quoted schema name "road_graph" is not replaced by the plugin -- since we need to get information from the road_graph schema, -- not the copy SELECT INTO editing_session_record * FROM "road_graph".editing_sessions WHERE id = _editing_session_id ; -- Raise exception if no record found IF editing_session_record.id IS NULL THEN RAISE EXCEPTION 'There is no editing session in the database with given id % !', _editing_session_id; END IF; -- Truncate road_graph_editing tables TRUNCATE road_graph_editing.roads CASCADE; TRUNCATE road_graph_editing.markers CASCADE; TRUNCATE road_graph_editing.edges CASCADE; TRUNCATE road_graph_editing.nodes CASCADE; TRUNCATE road_graph_editing.editing_sessions CASCADE; -- Set the sequences back to the maximum id in the main tables SELECT INTO _set_val setval(pg_get_serial_sequence('"road_graph".roads', 'id'), (SELECT max(id) FROM "road_graph".roads)) ; SELECT INTO _set_val setval(pg_get_serial_sequence('"road_graph".markers', 'id'), (SELECT max(id) FROM "road_graph".markers)) ; SELECT INTO _set_val setval(pg_get_serial_sequence('"road_graph".edges', 'id'), (SELECT max(id) FROM "road_graph".edges)) ; SELECT INTO _set_val setval(pg_get_serial_sequence('"road_graph".nodes', 'id'), (SELECT max(id) FROM "road_graph".nodes)) ; -- Delete merged editing session DELETE FROM "road_graph".editing_sessions WHERE id = _editing_session_id ; RETURN True; END;