[postgis-tickets] [PostGIS] #3764: PostGIS topology failures on PostgreSQL 10

PostGIS trac at osgeo.org
Mon Jun 19 18:11:07 PDT 2017


#3764: PostGIS topology failures on PostgreSQL 10
-----------------------+---------------------------
  Reporter:  robe      |      Owner:  robe
      Type:  defect    |     Status:  reopened
  Priority:  blocker   |  Milestone:  PostGIS 2.4.0
 Component:  topology  |    Version:  trunk
Resolution:            |   Keywords:
-----------------------+---------------------------

Comment (by robe):

 okay this is proving to be trickier than I thought.
 I tried changing:


 {{{
    FOR rec2 IN SELECT CASE rec.dims
        WHEN 0 THEN
          topology.topogeo_addPoint(atopology, rec.geom, tolerance)
        WHEN 1 THEN
          topology.topogeo_addLineString(atopology, rec.geom, tolerance)
        WHEN 2 THEN
          topology.topogeo_addPolygon(atopology, rec.geom, tolerance)
        END as primitive
     LOOP
 }}}


 To:


 {{{
    FOR rec2 IN SELECT CASE rec.dims
        WHEN 0 THEN
          (SELECT poi FROM topology.topogeo_addPoint(atopology, rec.geom,
 tolerance) AS poi LIMIT 1 )
        WHEN 1 THEN
          (SELECT li FROM topology.topogeo_addLineString(atopology,
 rec.geom, tolerance) AS li LIMIT 1)
        WHEN 2 THEN
          (SELECT poly FROM topology.topogeo_addPolygon(atopology,
 rec.geom, tolerance) AS poly LIMIT 1)
        END as primitive
     LOOP
 }}}


 and while that fixed st_simplify and  topogeom_edit regress,
 it broke both my 9.6 and 10 in a consistent way on the totopogeom test.

 I'm not sure what is the difference between the two constructs above.  I
 would expect them to be equivalent.


 {{{
  regress/legacy_validate .. ok
  regress/legacy_predicate .. ok
  regress/legacy_invalid .. ok
  regress/sqlmm .. ok
  regress/legacy_query .. ok
  regress/addnode .. ok
  regress/addedge .. ok
  regress/addface .. ok
  regress/addface2.5d .. ok
  regress/addtopogeometrycolumn .. ok
  regress/polygonize .. ok
  regress/st_addisoedge .. ok
  regress/st_addisonode .. ok
  regress/st_addedgemodface .. ok
  regress/st_addedgenewfaces .. ok
  regress/st_changeedgegeom .. ok
  regress/st_createtopogeo .. ok
  regress/st_getfacegeometry .. ok
  regress/st_getfaceedges .. ok
  regress/st_modedgeheal .. ok
  regress/st_modedgesplit .. ok
  regress/st_newedgeheal .. ok
  regress/st_newedgessplit .. ok
  regress/st_remedgenewface .. ok
  regress/st_remedgemodface .. ok
  regress/st_simplify .. ok
  regress/topoelement .. ok
  regress/topoelementarray_agg .. ok
  regress/topogeo_addlinestring .. ok
  regress/topogeo_addpoint .. ok
  regress/topogeo_addpolygon .. ok
  regress/topogeom_edit .. ok
  regress/topogeometry_type .. ok
  regress/topojson .. ok
  regress/topologysummary .. ok
  regress/topo2.5d .. ok
  regress/totopogeom .. failed (diff expected obtained:
 /projects/postgis/tmp/2.4_pg9.6w64/test_37_diff)
  regress/droptopology .. ok
  regress/droptopogeometrycolumn .. ok
  regress/copytopology .. ok
  regress/createtopogeom .. ok
  regress/createtopology .. ok
  regress/gml .. ok
  regress/getnodebypoint .. ok
  regress/getedgebypoint .. ok
  regress/getfacebypoint .. ok
  regress/getringedges .. ok
  regress/gettopogeomelements .. ok
  regress/layertrigger .. ok
  regress/validatetopology .. ok
  uninstall .. ok (4581)

 }}}



 {{{
 --- regress/totopogeom_expected 2016-04-27 10:57:37.107702900 -0400
 +++ /projects/postgis/tmp/2.4_pg9.6w64/test_37_out      2017-06-19
 21:07:59.909850400 -0400
 @@ -32,9 +32,9 @@
  MULTIPOLYGON EMPTY
  MULTIPOLYGON EMPTY
  GEOMETRYCOLLECTION EMPTY
 -tolerance_1|0.5
 -tolerance_topo_1|0.5
 -tolerance_0|0
 +tolerance_1|8.04984471899924
 +tolerance_topo_1|8.04984471899924
 +tolerance_0|8.04984471899924
  custom_search_path|0
  #1790.1|0|0
  #1790.2|0|0
 @@ -46,7 +46,7 @@
  tgup1.3|5|200|4
  #3359.setval|1|2|1
  #3359.line.1|1
 -#3359.line.2|2
 +#3359.line.2|1
  #3359.area.1|1
 -#3359.area.2|2
 +#3359.area.2|1
  Topology 'tt' dropped

 }}}

--
Ticket URL: <https://trac.osgeo.org/postgis/ticket/3764#comment:9>
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