Changeset: 0f46f975b395 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0f46f975b395 Modified Files: geom/monetdb5/geom.c geom/monetdb5/geom.h geom/monetdb5/geom.mal Branch: geo Log Message:
fixed converting string to mbr + mbrFromWKB returns null when wkb is null diffs (71 lines): diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c --- a/geom/monetdb5/geom.c +++ b/geom/monetdb5/geom.c @@ -4160,6 +4160,12 @@ str wkbMBR(mbr **geomMBR, wkb **geomWKB) str ret = MAL_SUCCEED; bit empty; + //check if the geometry is nill + if(wkb_isnil(*geomWKB)) { + *geomMBR = mbr_nil; + return MAL_SUCCEED; + } + //check if the geometry is empty if((ret = wkbIsEmpty(&empty, geomWKB)) != MAL_SUCCEED) { str msg = createException(MAL, "geom.wkbMBR", "%s", ret); @@ -4738,7 +4744,7 @@ str wkbCoordinateFromWKB(dbl* coordinate return ret; } -/*str +str mbrFromString(mbr **w, str *src) { size_t len = *w ? sizeof(mbr) : 0; @@ -4761,7 +4767,7 @@ mbrFromString(mbr **w, str *src) GDKerrbuf[0] = '\0'; return ex; -}*/ +} str wkbIsnil(bit *r, wkb **v) @@ -5057,10 +5063,10 @@ size_t mbrFROMSTR(char *src, size_t *len if (strcmp(src, str_nil) == 0) nil = 1; - if (!nil && strstr(src,"BOX") == src && (c = strstr(src,"(")) != NULL) { + if (!nil && (strstr(src,"mbr") == src || strstr(src,"MBR") == src) && (c = strstr(src,"(")) != NULL) { /* Parse the mbr */ if ((c - src) != 3 && (c - src) != 4) { - GDKerror("ParseException: Expected a string like 'BOX(0 0,1 1)' or 'BOX (0 0,1 1)'\n"); + GDKerror("ParseException: Expected a string like 'MBR(0 0,1 1)' or 'MBR (0 0,1 1)'\n"); return 0; } diff --git a/geom/monetdb5/geom.h b/geom/monetdb5/geom.h --- a/geom/monetdb5/geom.h +++ b/geom/monetdb5/geom.h @@ -86,7 +86,7 @@ geom_export int wkbaLENGTH(wkba *p); geom_export void wkbHEAP(Heap *heap, size_t capacity); geom_export void wkbaHEAP(Heap *heap, size_t capacity); -//geom_export str mbrFromString(mbr **w, str *src); +geom_export str mbrFromString(mbr **w, str *src); geom_export str wkbIsnil(bit *r, wkb **v); /* functions that are used when a column is added to an existing table */ diff --git a/geom/monetdb5/geom.mal b/geom/monetdb5/geom.mal --- a/geom/monetdb5/geom.mal +++ b/geom/monetdb5/geom.mal @@ -755,7 +755,7 @@ end YMaxFromMBR; module calc; -#command mbr{unsafe}(v:str) :mbr address mbrFromString; +command mbr(v:str) :mbr address mbrFromString; #It is needed to add a new mbr colum to an existing table command mbr(v:mbr) :mbr address mbrFromMBR; #command wkb{unsafe}(v:str) :wkb address wkbFromString; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list