[prev in list] [next in list] [prev in thread] [next in thread] 

List:       monetdb-checkins
Subject:    MonetDB: default - Merge with Apr2019 branch.
From:       Sjoerd Mullender <commits+sjoerd=acm.org () monetdb ! org>
Date:       2019-01-31 16:06:59
Message-ID: hg.31bde59a36c7.1548950819.6315528441665844383 () monetdb-vm0 ! spin-off ! cwi ! nl
[Download RAW message or body]

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
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic