[postgis-tickets] [PostGIS] #5402: Add disable catch topology exceptions flag

PostGIS trac at osgeo.org
Thu Jun 15 13:16:31 PDT 2023


#5402: Add disable catch topology exceptions flag
--------------------------------+---------------------------
  Reporter:  Lars Aksel Opsahl  |      Owner:  pramsey
      Type:  enhancement        |     Status:  new
  Priority:  medium             |  Milestone:  PostGIS 3.3.4
 Component:  postgis            |    Version:  3.3.x
Resolution:                     |   Keywords:
--------------------------------+---------------------------
Comment (by pramsey):

 It's worth reading the old HeuristicOverlay class just to get a feel for
 how many permutations of geometry modification are in play.

 https://github.com/libgeos/geos/blob/3.11/src/geom/HeuristicOverlay.cpp

 If your policy is "no changes of inputs!" then you'll be chasing a lot of
 rabbits that in GEOS 3.9 are caught by one or other of the Heuristic
 policies at a relatively small tolerance.

 In GEOS 3.10 and onwards almost all geometry is process through a
 different set of fall-backs, which you can read here:
 https://github.com/libgeos/geos/blob/main/src/operation/overlayng/OverlayNGRobust.cpp#L84

 The exception, as this fun issue has shown are "mixed dimension
 collections". Because OverlayNG doesn't support those, they ended up back
 in the old HeuristicOverlay, which includes the precision reducer that
 resulted in your blocky result. So note: the code which made that blocky
 result is *not* the OverlayNG, it's the old stuff.

 With 3.12 we have added handling for mixed dimension collections and all
 the old HeuristicOverlay code has been stripped away.

 The thing to note about both the OverlayNG process and the
 HeuristicOverlay process is that it's a continuum. If you throw up a
 critical error the first time you hit an exception in the overlay process,
 you'll have a very large number of errors to look at. This is why Sandro
 built (and build (and added (and addded))) to the HeuristicOverlay in the
 first place, playing whack-a-mole which all the different inputs that
 defeated the naive overlay.
-- 
Ticket URL: <https://trac.osgeo.org/postgis/ticket/5402#comment:4>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.


More information about the postgis-tickets mailing list