Changeset: 31bde59a36c7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=31bde59a36c7
Modified Files:
        common/stream/stream.c
        gdk/gdk_logger.c
        geom/lib/libgeom.c
        geom/lib/libgeom.h
        geom/monetdb5/geom.c
        monetdb5/modules/atoms/inet.c
        monetdb5/modules/atoms/mtime.c
        monetdb5/modules/atoms/mtime.h
        monetdb5/modules/atoms/mtime_analytic.c
        monetdb5/modules/atoms/uuid.c
        sql/backends/monet5/UDF/capi/capi.c
        sql/backends/monet5/generator/generator.c
        sql/backends/monet5/sql.c
Branch: default
Log Message:

Merge with Apr2019 branch.


diffs (truncated from 1749 to 300 lines):

diff --git a/common/stream/stream.c b/common/stream/stream.c
--- a/common/stream/stream.c
+++ b/common/stream/stream.c
@@ -3763,6 +3763,7 @@ bs_write(stream *restrict ss, const void
                        if (!mnstr_writeSht(s->s, (int16_t) blksize) ||
                            s->s->write(s->s, s->buf, 1, s->nr) != (ssize_t) 
s->nr) {
                                ss->errnr = MNSTR_WRITE_ERROR;
+                               s->nr = 0; /* data is lost due to error */
                                return -1;
                        }
                        s->blks++;
@@ -3815,6 +3816,7 @@ bs_flush(stream *ss)
                     (s->nr > 0 &&
                      s->s->write(s->s, s->buf, 1, s->nr) != (ssize_t) s->nr))) 
{
                        ss->errnr = MNSTR_WRITE_ERROR;
+                       s->nr = 0; /* data is lost due to error */
                        return -1;
                }
                s->blks++;
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -2961,7 +2961,7 @@ gdk_return
 logger_add_bat(logger *lg, BAT *b, const char *name, char tpe, oid id)
 {
        log_bid bid = logger_find_bat(lg, name, tpe, id);
-       lng lid = (lng) id;
+       lng lid = tpe ? (lng) id : 0;
 
        assert(b->batRestricted != BAT_WRITE ||
               b == lg->snapshots_bid ||
@@ -3005,7 +3005,7 @@ logger_upgrade_bat(logger *lg, const cha
 
        if (bid) {
                oid p = (oid) log_find(lg->catalog_bid, lg->dcatalog, bid);
-               lng lid = (lng) id;
+               lng lid = tpe ? (lng) id : 0;
 
                if (BUNappend(lg->dcatalog, &p, false) != GDK_SUCCEED ||
                    BUNappend(lg->catalog_bid, &bid, false) != GDK_SUCCEED ||
diff --git a/geom/lib/libgeom.c b/geom/lib/libgeom.c
--- a/geom/lib/libgeom.c
+++ b/geom/lib/libgeom.c
@@ -33,8 +33,8 @@ libgeom_exit(void)
        finishGEOS();
 }
 
-int
-wkb_isnil(const wkb *w)
+bool
+is_wkb_nil(const wkb *w)
 {
        if (!w || w->len == ~0)
                return 1;
@@ -110,7 +110,7 @@ wkb2geos(const wkb *geomWKB)
 {
        GEOSGeom geosGeometry;
 
-       if (wkb_isnil(geomWKB))
+       if (is_wkb_nil(geomWKB))
                return NULL;
 
        geosGeometry = GEOSGeomFromWKB_buf((unsigned char *) geomWKB->data, 
geomWKB->len);
diff --git a/geom/lib/libgeom.h b/geom/lib/libgeom.h
--- a/geom/lib/libgeom.h
+++ b/geom/lib/libgeom.h
@@ -133,10 +133,10 @@ libgeom_export void libgeom_exit(void);
  * Returns a GEOSGeom, created from a geom_geometry.
  * On failure, returns NULL.
  */
-//#define wkb2geos( geom ) wkb_isnil((geom))? NULL: 
GEOSGeomFromWKB_buf((unsigned char *)((geom)->data), (geom)->len)
+//#define wkb2geos( geom ) is_wkb_nil((geom))? NULL: 
GEOSGeomFromWKB_buf((unsigned char *)((geom)->data), (geom)->len)
 #define mbr_nil mbrFromGeos(NULL); 
 
-libgeom_export int wkb_isnil(const wkb *wkbp);
+libgeom_export bool is_wkb_nil(const wkb *wkbp);
 libgeom_export int getMbrGeos(mbr *mbr, const GEOSGeom geosGeometry);
 libgeom_export int getMbrGeom(mbr *res, wkb *geom);
 libgeom_export GEOSGeom wkb2geos(const wkb *geomWKB);
diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c
--- a/geom/monetdb5/geom.c
+++ b/geom/monetdb5/geom.c
@@ -412,7 +412,7 @@ wkbTransform(wkb **transformedWKB, wkb *
        if (*geomWKB == NULL)
                throw(MAL, "geom.Transform", SQLSTATE(38000) "Geos wkb format 
is null");
 
-       if (wkb_isnil(*geomWKB) ||
+       if (is_wkb_nil(*geomWKB) ||
            is_int_nil(*srid_src) ||
            is_int_nil(*srid_dst) ||
            strcmp(*proj4_src_str, str_nil) == 0 ||
@@ -770,7 +770,7 @@ wkbForceDim(wkb **outWKB, wkb **geomWKB,
        GEOSGeom geosGeometry;
        str err;
 
-       if (wkb_isnil(*geomWKB) || is_int_nil(*dim)) {
+       if (is_wkb_nil(*geomWKB) || is_int_nil(*dim)) {
                if ((*outWKB = wkbNULLcopy()) == NULL)
                        throw(MAL, "geom.ForceDim", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
                return MAL_SUCCEED;
@@ -1146,7 +1146,7 @@ wkbSegmentize(wkb **outWKB, wkb **geomWK
        GEOSGeom geosGeometry;
        str err;
 
-       if (wkb_isnil(*geomWKB) || is_dbl_nil(*sz)) {
+       if (is_wkb_nil(*geomWKB) || is_dbl_nil(*sz)) {
                if ((*outWKB = wkbNULLcopy()) == NULL)
                        throw(MAL, "geom.Segmentize", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
                return MAL_SUCCEED;
@@ -1464,7 +1464,7 @@ wkbTranslate(wkb **outWKB, wkb **geomWKB
        GEOSGeom geosGeometry;
        str err;
 
-       if (wkb_isnil(*geomWKB) || is_dbl_nil(*dx) || is_dbl_nil(*dy) || 
is_dbl_nil(*dz)) {
+       if (is_wkb_nil(*geomWKB) || is_dbl_nil(*dx) || is_dbl_nil(*dy) || 
is_dbl_nil(*dz)) {
                if ((*outWKB = wkbNULLcopy()) == NULL)
                        throw(MAL, "geom.Translate", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
                return MAL_SUCCEED;
@@ -1504,7 +1504,7 @@ wkbDelaunayTriangles(wkb **outWKB, wkb *
        GEOSGeom outGeometry;
        GEOSGeom geosGeometry;
 
-       if (wkb_isnil(*geomWKB) || is_dbl_nil(*tolerance) || is_int_nil(*flag)) 
{
+       if (is_wkb_nil(*geomWKB) || is_dbl_nil(*tolerance) || 
is_int_nil(*flag)) {
                if ((*outWKB = wkbNULLcopy()) == NULL)
                        throw(MAL, "geom.DelaunayTriangles", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
                return MAL_SUCCEED;
@@ -1532,7 +1532,7 @@ wkbPointOnSurface(wkb **resWKB, wkb **ge
 {
        GEOSGeom geosGeometry, resGeosGeometry;
 
-       if (wkb_isnil(*geomWKB)) {
+       if (is_wkb_nil(*geomWKB)) {
                if ((*resWKB = wkbNULLcopy()) == NULL)
                        throw(MAL, "geom.PointOnSurface", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
                return MAL_SUCCEED;
@@ -1686,7 +1686,7 @@ wkbDump(bat *idBAT_id, bat *geomBAT_id, 
        unsigned int geometriesNum;
        str err;
 
-       if (wkb_isnil(*geomWKB)) {
+       if (is_wkb_nil(*geomWKB)) {
 
                //create new empty BAT for the output
                if ((idBAT = COLnew(0, TYPE_str, 0, TRANSIENT)) == NULL) {
@@ -1917,7 +1917,7 @@ wkbDumpPoints(bat *idBAT_id, bat *geomBA
        int pointsNum;
        str err;
 
-       if (wkb_isnil(*geomWKB)) {
+       if (is_wkb_nil(*geomWKB)) {
 
                //create new empty BAT for the output
                if ((idBAT = COLnew(0, TYPE_str, 0, TRANSIENT)) == NULL) {
@@ -1978,7 +1978,7 @@ geom_2_geom(wkb **resWKB, wkb **valueWKB
 
        int valueSRID = (*valueWKB)->srid;
 
-       if (wkb_isnil(*valueWKB) || is_int_nil(*columnType) || 
is_int_nil(*columnSRID)) {
+       if (is_wkb_nil(*valueWKB) || is_int_nil(*columnType) || 
is_int_nil(*columnSRID)) {
                *resWKB = wkbNULLcopy();
                if (*resWKB == NULL)
                        throw(MAL, "calc.wkb", SQLSTATE(HY001) MAL_MALLOC_FAIL);
@@ -2088,8 +2088,8 @@ geom_epilogue(void *ret)
 }
 
 /* Check if fixed-sized atom mbr is null */
-static int
-mbr_isnil(const mbr *m)
+static bool
+is_mbr_nil(const mbr *m)
 {
        return (m == NULL || is_flt_nil(m->xmin) || is_flt_nil(m->ymin) || 
is_flt_nil(m->xmax) || is_flt_nil(m->ymax));
 }
@@ -2376,7 +2376,7 @@ wkbAsBinary(char **toStr, wkb **geomWKB)
        char *s;
        int i;
 
-       if (wkb_isnil(*geomWKB)) {
+       if (is_wkb_nil(*geomWKB)) {
                if ((*toStr = GDKstrdup(str_nil)) == NULL)
                        throw(MAL, "geom.AsBinary", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
                return MAL_SUCCEED;
@@ -2502,7 +2502,7 @@ wkbFromWKB(wkb **w, wkb **src)
        if (*w == NULL)
                throw(MAL, "calc.wkb", SQLSTATE(HY001) MAL_MALLOC_FAIL);
 
-       if (wkb_isnil(*src)) {
+       if (is_wkb_nil(*src)) {
                **w = *wkbNULL();
        } else {
                (*w)->len = (*src)->len;
@@ -2533,7 +2533,7 @@ wkbFromText(wkb **geomWKB, str *geomWKT,
        if (err != MAL_SUCCEED)
                return err;
 
-       if (wkb_isnil(*geomWKB) || *tpe == 0 ||
+       if (is_wkb_nil(*geomWKB) || *tpe == 0 ||
            *tpe == wkbGeometryCollection_mdb ||
            ((te = *((*geomWKB)->data + 1) & 0x0f) + (*tpe > 2)) == *tpe) {
                return MAL_SUCCEED;
@@ -2556,7 +2556,7 @@ wkbAsText(char **txt, wkb **geomWKB, int
        char *wkt = NULL;
        const char *sridTxt = "SRID:";
 
-       if (wkb_isnil(*geomWKB) || (withSRID && is_int_nil(*withSRID))) {
+       if (is_wkb_nil(*geomWKB) || (withSRID && is_int_nil(*withSRID))) {
                if ((*txt = GDKstrdup(str_nil)) == NULL)
                        throw(MAL, "geom.AsText", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
                return MAL_SUCCEED;
@@ -2828,7 +2828,7 @@ wkbMakePoint(wkb **out, dbl *x, dbl *y, 
        *out = geos2wkb(geosGeometry);
        GEOSGeom_destroy(geosGeometry);
 
-       if (wkb_isnil(*out)) {
+       if (is_wkb_nil(*out)) {
                GDKfree(*out);
                *out = NULL;
                throw(MAL, "geom.MakePoint", SQLSTATE(38000) "Geos to create 
WKB from GEOSGeometry failed");
@@ -2844,7 +2844,7 @@ wkbBasicInt(int *out, wkb *geom, int (*f
        GEOSGeom geosGeometry;
        str ret = MAL_SUCCEED;
 
-       if (wkb_isnil(geom)) {
+       if (is_wkb_nil(geom)) {
                *out = int_nil;
                return MAL_SUCCEED;
        }
@@ -2910,7 +2910,7 @@ wkbSetSRID(wkb **resultGeomWKB, wkb **ge
 {
        GEOSGeom geosGeometry;
 
-       if (wkb_isnil(*geomWKB) || is_int_nil(*srid)) {
+       if (is_wkb_nil(*geomWKB) || is_int_nil(*srid)) {
                if ((*resultGeomWKB = wkbNULLcopy()) == NULL)
                        throw(MAL, "geom.setSRID", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
                return MAL_SUCCEED;
@@ -2936,7 +2936,7 @@ wkbGetCoordinate(dbl *out, wkb **geom, i
        const GEOSCoordSequence *gcs;
        str err = MAL_SUCCEED;
 
-       if (wkb_isnil(*geom) || is_int_nil(*dimNum)) {
+       if (is_wkb_nil(*geom) || is_int_nil(*dimNum)) {
                *out = dbl_nil;
                return MAL_SUCCEED;
        }
@@ -2979,7 +2979,7 @@ wkbBasic(wkb **out, wkb **geom, GEOSGeom
        GEOSGeom geosGeometry, outGeometry;
        str err = MAL_SUCCEED;
 
-       if (wkb_isnil(*geom)) {
+       if (is_wkb_nil(*geom)) {
                if ((*out = wkbNULLcopy()) == NULL)
                        throw(MAL, name, SQLSTATE(HY001) MAL_MALLOC_FAIL);
                return MAL_SUCCEED;
@@ -3079,7 +3079,7 @@ wkbMakePolygon(wkb **out, wkb **external
        GEOSCoordSeq coordSeq_copy;
        str err;
 
-       if (wkb_isnil(*external) || is_int_nil(*srid)) {
+       if (is_wkb_nil(*external) || is_int_nil(*srid)) {
                if ((*out = wkbNULLcopy()) == NULL)
                        throw(MAL, "geom.Polygon", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
                return MAL_SUCCEED;
@@ -3153,7 +3153,7 @@ wkbMakeLine(wkb **out, wkb **geom1WKB, w
        str err = MAL_SUCCEED;
 
        *out = NULL;
-       if (wkb_isnil(*geom1WKB) || wkb_isnil(*geom2WKB)) {
+       if (is_wkb_nil(*geom1WKB) || is_wkb_nil(*geom2WKB)) {
                if ((*out = wkbNULLcopy()) == NULL)
                        throw(MAL, "geom.MakeLine", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
                return MAL_SUCCEED;
@@ -3325,7 +3325,7 @@ wkbBorderPoint(wkb **out, wkb **geom, GE
        GEOSGeom new;
        str err = MAL_SUCCEED;
 
-       if (wkb_isnil(*geom)) {
+       if (is_wkb_nil(*geom)) {
                if ((*out = wkbNULLcopy()) == NULL)
                        throw(MAL, name, SQLSTATE(HY001) MAL_MALLOC_FAIL);
                return MAL_SUCCEED;
@@ -3482,7 +3482,7 @@ wkbNumPoints(int *out, wkb **geom, int *
        char *geomSTR = NULL;
        unsigned int pointsNum;
 
-       if (wkb_isnil(*geom) || is_int_nil(*check)) {
+       if (is_wkb_nil(*geom) || is_int_nil(*check)) {
                *out = int_nil;
                return MAL_SUCCEED;
        }
@@ -3533,7 +3533,7 @@ wkbPointN(wkb **out, wkb **geom, int *n)
        GEOSGeom new;
        str err = MAL_SUCCEED;
 
-       if (wkb_isnil(*geom) || is_int_nil(*n)) {
+       if (is_wkb_nil(*geom) || is_int_nil(*n)) {
                if ((*out = wkbNULLcopy()) == NULL)
                        throw(MAL, "geom.PointN", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
                return MAL_SUCCEED;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to