[PostGIS] #4793: ST_IsSolid returns false after using ST_MakeSolid with a closed polyhedral surface

PostGIS trac at osgeo.org
Thu Apr 24 21:52:56 PDT 2025


#4793: ST_IsSolid returns false after using ST_MakeSolid with a closed polyhedral
surface
------------------------+----------------------------
  Reporter:  basilrabi  |      Owner:  colivier
      Type:  defect     |     Status:  closed
  Priority:  medium     |  Milestone:  PostGIS SFCGAL
 Component:  sfcgal     |    Version:  3.0.x
Resolution:  fixed      |   Keywords:
------------------------+----------------------------
Changes (by Loïc Bartoletti):

 * resolution:   => fixed
 * status:  new => closed


Old description:

> {{{
> # POSTGIS="3.0.2 2fb2a18" [EXTENSION] PGSQL="130" GEOS="3.7.1-CAPI-1.11.1
> 27a5e771" SFCGAL="1.3.6" PROJ="Rel. 5.2.0, September 15th, 2018"
> GDAL="GDAL 2.4.0, released 2018/12/14" LIBXML="2.9.4" LIBJSON="0.12.1"
> LIBPROTOBUF="1.3.1" WAGYU="0.4.3 (Internal)" TOPOLOGY RASTER
>
> WITH cte AS (
>     SELECT ST_MakeSolid(
>         ST_Extrude(
>             ST_Translate(
>                 ST_Force3D(
>                     ST_GeomFromText('POLYGON ((-1 1,1 1,1 -1,-1 -1,-1
> 1))')
>                 ),
>                 0, 0, -1
>             ),
>             0, 0, 2
>         )
>     ) geom
> )
> SELECT
>     ST_IsSolid(geom),
>     ST_IsClosed(geom),
>     ST_Volume(geom)
> FROM cte
> }}}
>
> The code above returns false, true, 8. I could be wrong but based on my
> understanding in the manual, this should return true, true, 8.

New description:

 {{{
 # POSTGIS="3.0.2 2fb2a18" [EXTENSION] PGSQL="130" GEOS="3.7.1-CAPI-1.11.1
 27a5e771" SFCGAL="1.3.6" PROJ="Rel. 5.2.0, September 15th, 2018"
 GDAL="GDAL 2.4.0, released 2018/12/14" LIBXML="2.9.4" LIBJSON="0.12.1"
 LIBPROTOBUF="1.3.1" WAGYU="0.4.3 (Internal)" TOPOLOGY RASTER

 WITH cte AS (
     SELECT ST_MakeSolid(
         ST_Extrude(
             ST_Translate(
                 ST_Force3D(
                     ST_GeomFromText('POLYGON ((-1 1,1 1,1 -1,-1 -1,-1
 1))')
                 ),
                 0, 0, -1
             ),
             0, 0, 2
         )
     ) geom
 )
 SELECT
     ST_IsSolid(geom),
     ST_IsClosed(geom),
     ST_Volume(geom)
 FROM cte
 }}}

 The code above returns false, true, 8. I could be wrong but based on my
 understanding in the manual, this should return true, true, 8.

--
Comment:

 Fixed, cf ticket:5818
-- 
Ticket URL: <https://trac.osgeo.org/postgis/ticket/4793#comment:1>
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