Opened 9 months ago

Last modified 9 months ago

#5568 closed defect

Postgis Topology "mixed face labeling in ring | -267 | [NULL]" — at Version 1

Reported by: Lars Aksel Opsahl Owned by: strk
Priority: medium Milestone: PostGIS 3.0.10
Component: topology Version: 3.0.x
Keywords: Cc:

Description (last modified by Lars Aksel Opsahl)

When running data through https://gitlab.com/nibioopensource/resolve-overlap-and-gap and checked the result by using ValidateTopology, we found error "mixed face labeling in ring" error for area that we missed data for in the result dataset.

If you run ValidateTopology after running the attached file mixed_topo_error.sql no errors are found.

SELECT * FROM topology.ValidateTopology('test_topo');
 error | id1 | id2 
-------+-----+-----
(0 rows)

Then we add a new linestring with out any error

SELECT topogeo_addlinestring FROM topology.TopoGeo_addLinestring('test_topo','0102000020A21000000200000084CBFA5C7A7824405CC705259CEE4D407A6873CA73782440DE38B01D9CEE4D40',0); 
 topogeo_addlinestring 
-----------------------
                   269

But if we now run topo validation again we see the error


SELECT * FROM topology.ValidateTopology('test_topo');
NOTICE:  00000: Checking for coincident nodes
LOCATION:  exec_stmt_raise, pl_exec.c:3862
NOTICE:  00000: Checking for edges crossing nodes
LOCATION:  exec_stmt_raise, pl_exec.c:3862
NOTICE:  00000: Checking for invalid or not-simple edges
LOCATION:  exec_stmt_raise, pl_exec.c:3862
NOTICE:  00000: Checking for crossing edges
LOCATION:  exec_stmt_raise, pl_exec.c:3862
NOTICE:  00000: Checking for edges start_node mismatch
LOCATION:  exec_stmt_raise, pl_exec.c:3862
NOTICE:  00000: Checking for edges end_node mismatch
LOCATION:  exec_stmt_raise, pl_exec.c:3862
NOTICE:  00000: Checking for faces without edges
LOCATION:  exec_stmt_raise, pl_exec.c:3862
NOTICE:  00000: Checking edge linking
LOCATION:  exec_stmt_raise, pl_exec.c:3862
NOTICE:  00000: Building edge rings
LOCATION:  exec_stmt_raise, pl_exec.c:3862
NOTICE:  00000: Found 115 rings, 108 valid shells, 6 valid holes
LOCATION:  exec_stmt_raise, pl_exec.c:3862
            error            | id1  |  id2   
-----------------------------+------+--------
 mixed face labeling in ring | -267 | [NULL]
(1 row)

Here is last server I tested on

PostgreSQL 12.6 (Ubuntu 12.6-0ubuntu0.20.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, 64-bit

POSTGIS="3.4.0 0874ea3" [EXTENSION] PGSQL="120" GEOS="3.10.1-CAPI-1.16.0" SFCGAL="1.3.7" PROJ="8.2.0 NETWORK_ENABLED=OFF URL_ENDPOINT=https://cdn.proj.org USER_WRITABLE_DIRECTORY=/tmp/proj DATABASE_PATH=/usr/share/proj/proj.db" LIBXML="2.9.10" LIBJSON="0.13.1" LIBPROTOBUF="1.3.3" WAGYU="0.5.0 (Internal)" TOPOLOGY

Change History (2)

by Lars Aksel Opsahl, 9 months ago

Attachment: mixed_topo_error.sql added

Test file with input sql

comment:1 by Lars Aksel Opsahl, 9 months ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.