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

Reply via email to