On Thu, Nov 02, 2023 at 03:26:22PM +0000, Alexandre Neto via postgis-users 
wrote:

> UPDATE temp.troco SET
> topo = totopogeom(geom, 'master_topology',1)

[..]

> Now I decided to remove one of the linestrings that splited two polygons.
> 
> And I rerun the updated on the topo columns:
> 
> UPDATE temp.troco SET
> topo = totopogeom(geom, 'master_topology',1)

This call does NOT remove the old TopoGeometries, which are left
orphaned (defined but not appearing in any TopoLogy Layer).

The returned text from this query should mention this problem:

  SELECT TopologySummary('master_topology')

The clearTopoGeom function can be used to destroy a TopoGeometry,
but at this point it would probably be faster for you to do the
cleanup with direct DELETE on master_topology.relation WHERE the
layer_id/topogeo_id pair are not found in their respective layers
(dangerous operation). Suggestion/patches are welcome to improve
this situation. I've also noted the example for clearTopoGeom on
the manual is misleading:

  https://postgis.net/docs/clearTopoGeom.html

> SELECT RemoveUnusedPrimitives('master_topology');
> It returned saying that no edges were removed.

It should tell you more if you:

  set client_min_messages to debug;

> My idea was to keep the topology in sync with the lines geometries by running 
> this steps in trigger functions

Maybe you can consider running the clearTopoGeom in a trigger function
too (on UPDATE...)

--strk;
_______________________________________________
postgis-users mailing list
postgis-users@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/postgis-users

Reply via email to