1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--
-- PostGIS - Spatial Types for PostgreSQL
-- http://postgis.net
--
-- Copyright (C) 2012 Sandro Santilli <strk@kbt.io>
--
-- This is free software; you can redistribute and/or modify it under
-- the terms of the GNU General Public Licence. See the COPYING file.
--
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-- {
-- Clear the contents of a TopoGeometry
--
-- }{
CREATE OR REPLACE FUNCTION topology.clearTopoGeom(tg topology.TopoGeometry)
RETURNS topology.TopoGeometry
AS
$$
DECLARE
topology_info RECORD;
sql TEXT;
BEGIN
-- Get topology information
SELECT id, name FROM topology.topology
INTO topology_info
WHERE id = topology_id(tg);
IF NOT FOUND THEN
RAISE EXCEPTION 'No topology with id "%" in topology.topology', topology_id(tg);
END IF;
-- Clear the TopoGeometry contents
sql := 'DELETE FROM ' || quote_ident(topology_info.name)
|| '.relation WHERE layer_id = '
|| layer_id(tg)
|| ' AND topogeo_id = '
|| id(tg);
#ifdef POSTGIS_TOPOLOGY_DEBUG
RAISE DEBUG '%', sql;
#endif
EXECUTE sql;
RETURN tg;
END
$$
LANGUAGE 'plpgsql' VOLATILE STRICT;
-- }
|