Changeset: ddc760f4fec2 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ddc760f4fec2
Added Files:
geom/sql/Tests/functions/Tests/ST_GeometryType.sql
geom/sql/Tests/functions/Tests/ST_GeometryType.stable.err
geom/sql/Tests/functions/Tests/ST_GeometryType.stable.out
Removed Files:
geom/sql/Tests/functions/Tests/geometryType.sql
geom/sql/Tests/functions/Tests/geometryType.stable.err
geom/sql/Tests/functions/Tests/geometryType.stable.out
Modified Files:
geom/monetdb5/geom.h
geom/monetdb5/geom.mal
geom/monetdb5/geomBulk.c
geom/sql/Tests/functions/Tests/All
geom/sql/Tests/functions/Tests/ST_GeomFromText.stable.err
geom/sql/Tests/functions/Tests/ST_LineFromText.stable.err
geom/sql/Tests/functions/Tests/ST_MLineFromText.stable.err
geom/sql/Tests/functions/Tests/ST_MPointFromText.stable.err
geom/sql/Tests/functions/Tests/ST_MPolygonFromText.stable.err
geom/sql/Tests/functions/Tests/ST_PointFromText.stable.err
geom/sql/Tests/functions/Tests/ST_PolygonFromText.stable.err
Branch: geo
Log Message:
ST_GeometryType : mTest + bulk
diffs (truncated from 1693 to 300 lines):
diff --git a/geom/monetdb5/geom.h b/geom/monetdb5/geom.h
--- a/geom/monetdb5/geom.h
+++ b/geom/monetdb5/geom.h
@@ -124,7 +124,10 @@ geom_export str wkbMLineStringToPolygon(
/* Basic Methods on Geometric objects (OGC) */
geom_export str wkbDimension(int*, wkb**);
+
geom_export str wkbGeometryType(char**, wkb**, int*);
+geom_export str wkbGeometryType_bat(bat *inBAT_id, bat *outBAT_id, int *flag);
+
geom_export str wkbGetSRID(int*, wkb**);
//Envelope
geom_export str wkbAsText(char **outTXT, wkb **inWKB, int *withSRID);
diff --git a/geom/monetdb5/geom.mal b/geom/monetdb5/geom.mal
--- a/geom/monetdb5/geom.mal
+++ b/geom/monetdb5/geom.mal
@@ -67,7 +67,6 @@ command getType{unsafe}(flags:int, forma
comment "returns the str representation of the geometry type";
-command GeometryType{unsafe}(w:wkb, flag:int) :str address wkbGeometryType;
command NumRings{unsafe}(w:wkb, exterior:int) :int address wkbNumRings
comment "Returns the number of interior rings+exterior on the first polygon of
the geometry";
command MLineStringToPolygon{unsafe}(wkt:str, srid:int, flag:int) :wkb address
wkbMLineStringToPolygon
@@ -196,11 +195,12 @@ command MakePointM{unsafe}(x:dbl, y:dbl,
comment "creates a point using the coordinates";
#Geometry Accessors
-function GeometryType1{unsafe}(w:wkb) :str;
+command GeometryType(w:wkb, flag:int) :str address wkbGeometryType;
+function GeometryType1(w:wkb) :str;
x := GeometryType(w, 0);
return x;
end GeometryType1;
-function GeometryType2{unsafe}(w:wkb) :str;
+function GeometryType2(w:wkb) :str;
x := GeometryType(w, 1);
return x;
end GeometryType2;
@@ -560,8 +560,6 @@ function GeomCollFromText(wkt:bat[:oid,:
return x;
end GeomCollFromText;
-
-
command ToText(w:bat[:oid,:wkb], withSRID:int) :bat[:oid,:str] address
wkbAsText_bat;
function AsText(w:bat[:oid,:wkb]) :bat[:oid,:str];
x := ToText(w,0);
@@ -572,6 +570,17 @@ function AsEWKT(w:bat[:oid,:wkb]) :bat[:
return x;
end AsEWKT;
+command GeometryType(w:bat[:oid,:wkb], flag:int) :bat[:oid,:str] address
wkbGeometryType_bat;
+function GeometryType1(w:bat[:oid,:wkb]) :bat[:oid,:str];
+ x := GeometryType(w, 0);
+ return x;
+end GeometryType1;
+function GeometryType2(w:bat[:oid,:wkb]) :bat[:oid,:str];
+ x := GeometryType(w, 1);
+ return x;
+end GeometryType2;
+
+
command Boundary(w:bat[:oid,:wkb]) :bat[:oid,:wkb] address wkbBoundary_bat;
command IsClosed(w:bat[:oid,:wkb]) :bat[:oid,:bit] address wkbIsClosed_bat;
diff --git a/geom/monetdb5/geomBulk.c b/geom/monetdb5/geomBulk.c
--- a/geom/monetdb5/geomBulk.c
+++ b/geom/monetdb5/geomBulk.c
@@ -137,8 +137,7 @@ str wkbFromText_bat(bat *outBAT_id, bat
return MAL_SUCCEED;
}
-/*create textual representation of the wkb */
-str wkbAsText_bat(bat *outBAT_id, bat *inBAT_id, int* withSRID) {
+static str wkbStrOutWithFlag_bat(bat *outBAT_id, bat *inBAT_id, int* flag, str
(*func)(char**, wkb**, int*), const char *name) {
BAT *outBAT = NULL, *inBAT = NULL;
wkb *inWKB = NULL;
BUN p =0, q =0;
@@ -146,18 +145,18 @@ str wkbAsText_bat(bat *outBAT_id, bat *i
//get the descriptor of the BAT
if ((inBAT = BATdescriptor(*inBAT_id)) == NULL) {
- throw(MAL, "batgeom.wkbAsText", RUNTIME_OBJECT_MISSING);
+ throw(MAL, name, RUNTIME_OBJECT_MISSING);
}
if ( inBAT->htype != TYPE_void ) { //header type of BAT not void
BBPreleaseref(inBAT->batCacheid);
- throw(MAL, "batgeom.wkbAsText", "the arguments must have dense
and aligned heads");
+ throw(MAL, name, "the arguments must have dense and aligned
heads");
}
//create a new for the output BAT
if ((outBAT = BATnew(TYPE_void, ATOMindex("str"), BATcount(inBAT),
TRANSIENT)) == NULL) {
BBPreleaseref(inBAT->batCacheid);
- throw(MAL, "batgeom.wkbAsText", MAL_MALLOC_FAIL);
+ throw(MAL, name, MAL_MALLOC_FAIL);
}
//set the first idx of the new BAT equal to that of the input BAT
BATseqbase(outBAT, inBAT->hseqbase);
@@ -169,8 +168,8 @@ str wkbAsText_bat(bat *outBAT_id, bat *i
char* outSingle;
inWKB = (wkb*) BUNtail(inBAT_iter, p);
- if ((err = wkbAsText(&outSingle, &inWKB, withSRID)) !=
MAL_SUCCEED) {
- str msg = createException(MAL, "batgeom.wkbAsText",
"%s", err);
+ if ((err = (*func)(&outSingle, &inWKB, flag)) != MAL_SUCCEED) {
+ str msg = createException(MAL, name, "%s", err);
GDKfree(err);
BBPreleaseref(inBAT->batCacheid);
@@ -192,6 +191,14 @@ str wkbAsText_bat(bat *outBAT_id, bat *i
return MAL_SUCCEED;
}
+/*create textual representation of the wkb */
+str wkbAsText_bat(bat *outBAT_id, bat *inBAT_id, int* withSRID) {
+ return wkbStrOutWithFlag_bat(outBAT_id, inBAT_id, withSRID, wkbAsText,
"batgeom.wkbAsText");
+}
+str wkbGeometryType_bat(bat *outBAT_id, bat *inBAT_id, int* flag) {
+ return wkbStrOutWithFlag_bat(outBAT_id, inBAT_id, flag,
wkbGeometryType, "batgeom.wkbGeometryType");
+}
+
str wkbBoundary_bat(bat *outBAT_id, bat *inBAT_id) {
BAT *outBAT = NULL, *inBAT = NULL;
wkb *inWKB = NULL;
diff --git a/geom/sql/Tests/functions/Tests/All
b/geom/sql/Tests/functions/Tests/All
--- a/geom/sql/Tests/functions/Tests/All
+++ b/geom/sql/Tests/functions/Tests/All
@@ -15,8 +15,7 @@ dropTestWKT
loadTestGeometries
-#geometryType
-
+ST_GeometryType
ST_AsText
ST_IsClosed
diff --git a/geom/sql/Tests/functions/Tests/ST_GeomFromText.stable.err
b/geom/sql/Tests/functions/Tests/ST_GeomFromText.stable.err
--- a/geom/sql/Tests/functions/Tests/ST_GeomFromText.stable.err
+++ b/geom/sql/Tests/functions/Tests/ST_GeomFromText.stable.err
@@ -29,184 +29,184 @@ stderr of test 'ST_GeomFromText` in dire
# 15:46:20 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e"
"--host=/var/tmp/mtest-9662" "--port=32350"
# 15:46:20 >
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into points_tbl values (st_geomfromtext('point(0 20)', 4326));
ERROR = !column needs geometry(4, 0) and value is geometry(4, 4326)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into points_tbl values (st_geomfromtext('linestring(10 10, 20
20, 30 40)'));
ERROR = !column needs geometry(4, 0) and value is geometry(8, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into points_tbl values (st_geomfromtext('point(0 20)'));
ERROR = !column needs geometry(4, 4326) and value is geometry(4, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into points_tbl values (st_geomfromtext('point(0 20)', 0));
ERROR = !column needs geometry(4, 4326) and value is geometry(4, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into points_tbl values (st_geomfromtext('linestring(10 10, 20
20, 30 40)', 4329));
ERROR = !column needs geometry(4, 4326) and value is geometry(8, 4329)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into points_tbl values (st_geomfromtext('point(0 20 20)',
4326));
ERROR = !column needs geometry(6, 0) and value is geometry(6, 4326)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into points_tbl values (st_geomfromtext('linestring(10 10, 20
20, 30 40)'));
ERROR = !column needs geometry(6, 0) and value is geometry(8, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into points_tbl values (st_geomfromtext('point(0 20 20)'));
ERROR = !column needs geometry(6, 4326) and value is geometry(6, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into points_tbl values (st_geomfromtext('point(0 20 20)', 0));
ERROR = !column needs geometry(6, 4326) and value is geometry(6, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into points_tbl values (st_geomfromtext('linestring(10 10, 20
20, 30 40)', 4326));
ERROR = !column needs geometry(6, 4326) and value is geometry(8, 4326)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into lines_tbl values (st_geomfromtext('linestring(20 20, 30
30, 40 40)', 4326));
ERROR = !column needs geometry(8, 0) and value is geometry(8, 4326)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into lines_tbl values (st_geomfromtext('point(0 0)'));
ERROR = !column needs geometry(8, 0) and value is geometry(4, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into lines_tbl values (st_geomfromtext('linestring(10 10, 20
20, 30 30)'));
ERROR = !column needs geometry(8, 4326) and value is geometry(8, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into lines_tbl values (st_geomfromtext('linestring(30 30, 40
40, 50 50)', 0));
ERROR = !column needs geometry(8, 4326) and value is geometry(8, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into lines_tbl values (st_geomfromtext('point(0 0)', 4326));
ERROR = !column needs geometry(8, 4326) and value is geometry(4, 4326)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into lines_tbl values (st_geomfromtext('linestring(20 20 20, 30
30 30, 40 40 40)', 4326));
ERROR = !column needs geometry(10, 0) and value is geometry(10, 4326)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into lines_tbl values (st_geomfromtext('point(0 0 0)'));
ERROR = !column needs geometry(10, 0) and value is geometry(6, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into lines_tbl values (st_geomfromtext('linestring(10 10 10, 20
20 20, 30 30 30)'));
ERROR = !column needs geometry(10, 4326) and value is geometry(10, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into lines_tbl values (st_geomfromtext('linestring(30 30 30, 40
40 40, 50 50 50)', 0));
ERROR = !column needs geometry(10, 4326) and value is geometry(10, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into lines_tbl values (st_geomfromtext('point(0 0 0)', 4326));
ERROR = !column needs geometry(10, 4326) and value is geometry(6, 4326)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into polygons_tbl values (st_geomfromtext('polygon((20 20, 30
30, 40 40, 20 20))', 4326));
ERROR = !column needs geometry(16, 0) and value is geometry(16, 4326)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into polygons_tbl values (st_geomfromtext('linestring(10 10, 20
20, 30 40)'));
ERROR = !column needs geometry(16, 0) and value is geometry(8, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into polygons_tbl values (st_geomfromtext('polygon((10 10, 20
20, 30 30, 10 10))'));
ERROR = !column needs geometry(16, 4326) and value is geometry(16, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into polygons_tbl values (st_geomfromtext('polygon((30 30, 40
40, 50 50, 30 30))', 0));
ERROR = !column needs geometry(16, 4326) and value is geometry(16, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into polygons_tbl values (st_geomfromtext('linestring(10 10, 20
20, 30 40)', 4326));
ERROR = !column needs geometry(16, 4326) and value is geometry(8, 4326)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into polygons_tbl values (st_geomfromtext('polygon((20 20 20,
30 30 30, 40 40 40, 20 20 20))', 4326));
ERROR = !column needs geometry(18, 0) and value is geometry(18, 4326)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into polygons_tbl values (st_geomfromtext('linestring(10 10 10,
20 20 20, 30 30 30)'));
ERROR = !column needs geometry(18, 0) and value is geometry(10, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into polygons_tbl values (st_geomfromtext('polygon((10 10 10,
20 20 20, 30 30 30, 10 10 10))'));
ERROR = !column needs geometry(18, 4326) and value is geometry(18, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into polygons_tbl values (st_geomfromtext('polygon((30 30 30,
40 40 40, 50 50 50, 30 30 30))', 0));
ERROR = !column needs geometry(18, 4326) and value is geometry(18, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into polygons_tbl values (st_geomfromtext('linestring(10 10 10,
20 20 20, 30 30 30)', 4326));
ERROR = !column needs geometry(18, 4326) and value is geometry(10, 4326)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into points_tbl values (st_geomfromtext('multipoint(20 20, 30
30)', 4326));
ERROR = !column needs geometry(20, 0) and value is geometry(20, 4326)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into points_tbl values (st_geomfromtext('linestring(10 10, 20
20, 30 40)'));
ERROR = !column needs geometry(20, 0) and value is geometry(8, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into points_tbl values (st_geomfromtext('multipoint(10 10, 20
20)'));
ERROR = !column needs geometry(20, 4326) and value is geometry(20, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into points_tbl values (st_geomfromtext('multipoint(30 30, 40
40)', 0));
ERROR = !column needs geometry(20, 4326) and value is geometry(20, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into points_tbl values (st_geomfromtext('linestring(10 10, 20
20, 30 40)', 4326));
ERROR = !column needs geometry(20, 4326) and value is geometry(8, 4326)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into points_tbl values (st_geomfromtext('multipoint(20 20 20,
30 30 30)', 4326));
ERROR = !column needs geometry(22, 0) and value is geometry(22, 4326)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into points_tbl values (st_geomfromtext('linestring(10 10 10,
20 20 20, 30 30 40)'));
ERROR = !column needs geometry(22, 0) and value is geometry(10, 0)
-MAPI = (monetdb) /var/tmp/mtest-27755/.s.monetdb.39580
+MAPI = (monetdb) /var/tmp/mtest-16320/.s.monetdb.39577
QUERY = insert into points_tbl values (st_geomfromtext('multipoint(10 10 10,
20 20 20)'));
ERROR = !column needs geometry(22, 4326) and value is geometry(22, 0)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list