Changeset: 486003e3a10e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=486003e3a10e
Modified Files:
        geom/monetdb5/geom.c
Branch: geo
Log Message:

ST_IsClosed : empty geometries are never closed


diffs (33 lines):

diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c
--- a/geom/monetdb5/geom.c
+++ b/geom/monetdb5/geom.c
@@ -3451,13 +3451,27 @@ static str geosIsClosed(bit *out, const 
        return MAL_SUCCEED;
 }
 
-str wkbIsClosed(bit *out, wkb **geom) {
+str wkbIsClosed(bit *out, wkb **geomWKB) {
        str err;
 
-       GEOSGeom geosGeometry = wkb2geos(*geom);
+       GEOSGeom geosGeometry = wkb2geos(*geomWKB);
        if (!geosGeometry)
                throw(MAL, "geom.IsClosed", "wkb2geos failed");
 
+       //if empty geometry return false
+       if((err = wkbIsEmpty(out, geomWKB)) != MAL_SUCCEED) {
+               str msg = createException(MAL, "geom.IsEmpty", "%s", err);
+               GDKfree(err);
+               GEOSGeom_destroy(geosGeometry);
+
+               return msg;
+       }
+       if(*out) {
+               *out = 0;
+               GEOSGeom_destroy(geosGeometry);
+               return MAL_SUCCEED;
+       }
+
        if((err = geosIsClosed(out, geosGeometry)) != MAL_SUCCEED) {
                str msg = createException(MAL, "geom.IsClosed", "%s", err);
                GDKfree(err);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to