Changeset: 716c0574943a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=716c0574943a
Modified Files:
geom/monetdb5/geom.c
geom/monetdb5/geom.h
Branch: sfcgal
Log Message:
Improve error messages and make wkbNULLcopy available through the header file
diffs (112 lines):
diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c
--- a/geom/monetdb5/geom.c
+++ b/geom/monetdb5/geom.c
@@ -18,28 +18,6 @@ int TYPE_mbr;
static str BATgroupWKBWKBtoWKB(bat *outBAT_id, BAT *b, BAT *g, BAT *e, int
skip_nils, oid min, oid max, BUN ngrp, BUN start, BUN end, wkb **empty_geoms,
str (*func) (wkb **, wkb **, wkb**), char* name);
-static inline int
-geometryHasZ(int info)
-{
- return (info & 0x02);
-}
-
-static inline int
-geometryHasM(int info)
-{
- return (info & 0x01);
-}
-static wkb wkb_nil = { ~0, 0 };
-
-static wkb *
-wkbNULLcopy(void)
-{
- wkb *n = GDKmalloc(sizeof(wkb_nil));
- if (n)
- *n = wkb_nil;
- return n;
-}
-
/* the first argument in the functions is the return variable */
#ifdef HAVE_PROJ
@@ -4290,6 +4268,7 @@ wkbExteriorRing(wkb **exteriorRingWKB, w
GEOSGeom geosGeometry;
const GEOSGeometry *exteriorRingGeometry;
str err = MAL_SUCCEED;
+ int type = -1;
if (wkb_isnil(*geom)) {
if ((*exteriorRingWKB = wkbNULLcopy()) == NULL)
@@ -4303,10 +4282,10 @@ wkbExteriorRing(wkb **exteriorRingWKB, w
throw(MAL, "geom.ExteriorRing", "wkb2geos failed");
}
- if (GEOSGeomTypeId(geosGeometry) != GEOS_POLYGON) {
+ if ((type = GEOSGeomTypeId(geosGeometry)) != GEOS_POLYGON) {
*exteriorRingWKB = NULL;
GEOSGeom_destroy(geosGeometry);
- throw(MAL, "geom.ExteriorRing", "Geometry not a Polygon");
+ throw(MAL, "geom.ExteriorRing", "Geometry is not a Polygon, it
is a %s", geom_type2str(type,0));
}
/* get the exterior ring of the geometry */
@@ -10418,7 +10397,7 @@ DWithinXYZsubjoin_intern(bat *lres, bat
#ifdef GEOMBULK_DEBUG
gettimeofday(&stop, NULL);
t = 1000 * (stop.tv_sec - start.tv_sec) + (stop.tv_usec - start.tv_usec) /
1000;
- fprintf(stdout, "%s first BATloop %llu ms\n", name, t);
+ fprintf(stdout, "%s first BATloop qx %d %llu ms\n", name, qx, t);
#endif
if ( (msg ==MAL_SUCCEED) && BATcount(bx) && (outs = (bit*)
GDKzalloc(sizeof(bit)*BATcount(bx))) == NULL) {
msg = createException(MAL, name, MAL_MALLOC_FAIL);
@@ -10531,7 +10510,7 @@ DWithinXYZsubjoin_intern(bat *lres, bat
#ifdef GEOMBULK_DEBUG
gettimeofday(&stop, NULL);
t = 1000 * (stop.tv_sec - start.tv_sec) + (stop.tv_usec - start.tv_usec) /
1000;
- fprintf(stdout, "%s second BATloop %llu ms\n", name, t);
+ fprintf(stdout, "%s second BATloop ql %d %llu ms\n", name, ql, t);
#endif
#ifdef OPENMP
diff --git a/geom/monetdb5/geom.h b/geom/monetdb5/geom.h
--- a/geom/monetdb5/geom.h
+++ b/geom/monetdb5/geom.h
@@ -40,7 +40,7 @@
#define OPENCL_DYNAMIC 1
#define OPENCL_THREADS 8
-//#define OPENMP 1
+#define OPENMP 1
#ifdef OPENMP
#include <omp.h>
@@ -54,6 +54,28 @@
b->tnonil = 0; \
b->tnodense = 1;
+static inline int
+geometryHasZ(int info)
+{
+ return (info & 0x02);
+}
+
+static inline int
+geometryHasM(int info)
+{
+ return (info & 0x01);
+}
+static wkb wkb_nil = { ~0, 0 };
+
+static wkb *
+wkbNULLcopy(void)
+{
+ wkb *n = GDKmalloc(sizeof(wkb_nil));
+ if (n)
+ *n = wkb_nil;
+ return n;
+}
+
/* general functions */
geom_export str geoHasZ(int* res, int* info);
geom_export str geoHasM(int* res, int* info);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list