Changeset: bb6456500919 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bb6456500919
Modified Files:
        clients/Tests/exports.stable.out
        geom/lib/libgeom.c
        geom/lib/libgeom.h
        geom/monetdb5/geom.c
        geom/monetdb5/geom.h
        monetdb5/mal/mal_atom.c
        monetdb5/modules/atoms/blob.c
        monetdb5/modules/atoms/blob.h
        monetdb5/modules/atoms/identifier.c
        monetdb5/modules/atoms/inet.c
        monetdb5/modules/atoms/json.c
        monetdb5/modules/atoms/json.h
        monetdb5/modules/atoms/url.c
        monetdb5/modules/atoms/url.h
        monetdb5/modules/atoms/uuid.c
        monetdb5/modules/atoms/xml.c
        monetdb5/modules/atoms/xml.h
        testing/malcheck.py
Branch: default
Log Message:

Added const to the atom function implementations.
I.e., null(), fromstr(), tostr(), cmp(), length(), hash(), write().


diffs (truncated from 1108 to 300 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -819,25 +819,25 @@ str BKCsetTransient(void *r, const bat *
 str BKCsetkey(bat *res, const bat *bid, const bit *param);
 str BKCshrinkBAT(bat *ret, const bat *bid, const bat *did);
 str BLOBblob_blob(blob **d, blob **s);
-str BLOBblob_fromstr(blob **b, str *d);
-int BLOBcmp(blob *l, blob *r);
+str BLOBblob_fromstr(blob **b, const char **d);
+int BLOBcmp(const blob *l, const blob *r);
 void BLOBdel(Heap *h, var_t *index);
 str BLOBfromblob(str *retval, blob **b);
 str BLOBfromidx(str *retval, blob **binp, int *index);
-int BLOBfromstr(char *instr, int *l, blob **val);
+int BLOBfromstr(const char *instr, int *l, blob **val);
 int BLOBget(Heap *h, int *bun, int *l, blob **val);
-BUN BLOBhash(blob *b);
+BUN BLOBhash(const blob *b);
 void BLOBheap(Heap *heap, size_t capacity);
-int BLOBlength(blob *p);
+int BLOBlength(const blob *p);
 str BLOBnitems(int *ret, blob *b);
-blob *BLOBnull(void);
+const blob *BLOBnull(void);
 str BLOBprelude(void *ret);
-var_t BLOBput(Heap *h, var_t *bun, blob *val);
+var_t BLOBput(Heap *h, var_t *bun, const blob *val);
 blob *BLOBread(blob *a, stream *s, size_t cnt);
-str BLOBsqlblob_fromstr(sqlblob **b, str *d);
+str BLOBsqlblob_fromstr(sqlblob **b, const char **d);
 str BLOBtoblob(blob **retval, str *s);
-int BLOBtostr(str *tostr, int *l, blob *pin);
-gdk_return BLOBwrite(blob *a, stream *s, size_t cnt);
+int BLOBtostr(str *tostr, int *l, const blob *pin);
+gdk_return BLOBwrite(const blob *a, stream *s, size_t cnt);
 str CALCmax(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
 str CALCmax_no_nil(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
 str CALCmin(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
@@ -1142,9 +1142,9 @@ str GRPsubgroup7(bat *ngid, bat *next, c
 str GRPsubgroup8(bat *ngid, bat *next, const bat *bid, const bat *gid, const 
bat *eid, const bat *hid);
 str GRPsubgroup9(bat *ngid, bat *next, const bat *bid, const bat *sid, const 
bat *gid, const bat *eid, const bat *hid);
 str IDentifier(identifier *retval, str *in);
-int IDfromString(str src, int *len, identifier *retval);
+int IDfromString(const char *src, int *len, identifier *retval);
 str IDprelude(void *ret);
-int IDtoString(str *retval, int *len, identifier handle);
+int IDtoString(str *retval, int *len, const char *handle);
 str ILIKEjoin(bat *r1, bat *r2, const bat *lid, const bat *rid, const str 
*esc, const bat *slid, const bat *srid, const bit *nil_matches, const lng 
*estimate);
 str ILIKEjoin1(bat *r1, bat *r2, const bat *lid, const bat *rid, const bat 
*slid, const bat *srid, const bit *nil_matches, const lng *estimate);
 str INET_comp_CS(bit *retval, const inet *val1, const inet *val2);
@@ -1170,7 +1170,7 @@ str INETmasklen(int *retval, const inet 
 str INETnetmask(inet *retval, const inet *val);
 str INETnetwork(inet *retval, const inet *val);
 str INETnew(inet *retval, str *in);
-inet *INETnull(void);
+const inet *INETnull(void);
 str INETsetmasklen(inet *retval, const inet *val, const int *msk);
 str INETtext(str *retval, const inet *val);
 int INETtoString(str *retval, int *len, const inet *handle);
@@ -1226,7 +1226,7 @@ str JSONfilterArray_int(json *ret, json 
 str JSONfilterArray_lng(json *ret, json *j, lng *index);
 str JSONfilterArray_sht(json *ret, json *j, sht *index);
 str JSONfold(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-int JSONfromString(str src, int *len, json *x);
+int JSONfromString(const char *src, int *len, json *x);
 str JSONgroupStr(str *ret, const bat *bid);
 str JSONisarray(bit *ret, json *j);
 str JSONisobject(bit *ret, json *j);
@@ -1248,7 +1248,7 @@ str JSONsubjson(bat *retval, bat *bid, b
 str JSONsubjsoncand(bat *retval, bat *bid, bat *gid, bat *eid, bat *id, bit 
*skip_nils);
 str JSONtextGrouped(bat *ret, bat *bid, bat *gid, bat *ext, bit *flg);
 str JSONtextString(str *ret, bat *bid);
-int JSONtoString(str *s, int *len, json src);
+int JSONtoString(str *s, int *len, const char *src);
 str JSONunfold(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str JSONvalueArray(json *ret, json *arg);
 str JSONvalueTable(bat *ret, json *j);
@@ -1713,7 +1713,7 @@ str SERVERsetAlias(void *ret, int *mid, 
 str SERVERstop(void *ret);
 str SERVERsuspend(void *ret);
 str SERVERtrace(void *ret, int *mid, int *flag);
-int SQLBLOBfromstr(char *instr, int *l, blob **val);
+int SQLBLOBfromstr(const char *instr, int *l, blob **val);
 int SQLBLOBtostr(str *tostr, int *l, const blob *pin);
 BUN SQLload_file(Client cntxt, Tablet *as, bstream *b, stream *out, const char 
*csep, const char *rsep, char quote, lng skip, lng maxrow, int best);
 str STRBytes(int *res, const str *arg1);
@@ -1845,7 +1845,7 @@ int TYPE_sqlblob;
 int TYPE_timestamp;
 int TYPE_tzone;
 int TYPE_xml;
-int URLfromString(str src, int *len, str *u);
+int URLfromString(const char *src, int *len, str *u);
 str URLgetAnchor(str *retval, url *val);
 str URLgetBasename(str *retval, url *t);
 str URLgetContent(str *retval, url *Str1);
@@ -1864,14 +1864,14 @@ str URLnew(url *u, str *val);
 str URLnew3(url *u, str *protocol, str *server, str *file);
 str URLnew4(url *u, str *protocol, str *server, int *port, str *file);
 str URLnoop(url *u, url *val);
-int URLtoString(str *s, int *len, str src);
+int URLtoString(str *s, int *len, const char *src);
 int UUIDcompare(const uuid *l, const uuid *r);
 str UUIDequal(bit *retval, uuid **l, uuid **r);
 int UUIDfromString(const char *svalue, int *len, uuid **retval);
 str UUIDgenerateUuid(uuid **retval);
 BUN UUIDhash(const void *u);
 str UUIDisaUUID(bit *retval, str *u);
-uuid *UUIDnull(void);
+const uuid *UUIDnull(void);
 str UUIDprelude(void *ret);
 uuid *UUIDread(uuid *u, stream *s, size_t cnt);
 str UUIDstr2uuid(uuid **retval, str *s);
@@ -1912,15 +1912,15 @@ str XMLdocument(xml *x, str *s);
 str XMLelement(xml *ret, str *name, xml *nspace, xml *attr, xml *val);
 str XMLelementSmall(xml *ret, str *name, xml *val);
 str XMLforest(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-int XMLfromString(str src, int *len, xml *x);
+int XMLfromString(const char *src, int *len, xml *x);
 str XMLisdocument(bit *x, str *s);
 str XMLparse(xml *x, str *doccont, str *s, str *option);
 str XMLpi(xml *x, str *target, str *s);
 str XMLprelude(void *ret);
 size_t XMLquotestring(const char *s, char *buf, size_t len);
 str XMLroot(xml *x, xml *v, str *version, str *standalone);
-str XMLstr2xml(xml *x, str *s);
-int XMLtoString(str *s, int *len, xml src);
+str XMLstr2xml(xml *x, const char **s);
+int XMLtoString(str *s, int *len, const char *src);
 size_t XMLunquotestring(const char **p, char q, char *buf);
 str XMLxml2str(str *s, xml *x);
 str XMLxml2xml(xml *x, xml *s);
diff --git a/geom/lib/libgeom.c b/geom/lib/libgeom.c
--- a/geom/lib/libgeom.c
+++ b/geom/lib/libgeom.c
@@ -34,7 +34,7 @@ libgeom_exit(void)
 }
 
 int
-wkb_isnil(wkb *w)
+wkb_isnil(const wkb *w)
 {
        if (!w || w->len == ~0)
                return 1;
@@ -106,7 +106,7 @@ getMbrGeos(mbr *res, const GEOSGeom geos
 */
 
 GEOSGeom
-wkb2geos(wkb *geomWKB)
+wkb2geos(const wkb *geomWKB)
 {
        GEOSGeom geosGeometry;
 
diff --git a/geom/lib/libgeom.h b/geom/lib/libgeom.h
--- a/geom/lib/libgeom.h
+++ b/geom/lib/libgeom.h
@@ -136,10 +136,10 @@ libgeom_export void libgeom_exit(void);
 //#define wkb2geos( geom ) wkb_isnil((geom))? NULL: 
GEOSGeomFromWKB_buf((unsigned char *)((geom)->data), (geom)->len)
 #define mbr_nil mbrFromGeos(NULL); 
 
-libgeom_export int wkb_isnil(wkb *wkbp);
+libgeom_export int wkb_isnil(const wkb *wkbp);
 libgeom_export int getMbrGeos(mbr *mbr, const GEOSGeom geosGeometry);
 libgeom_export int getMbrGeom(mbr *res, wkb *geom);
-libgeom_export GEOSGeom wkb2geos(wkb* geomWKB);
+libgeom_export GEOSGeom wkb2geos(const wkb *geomWKB);
 
 //libgeom_export str geomerty_2_geometry(wkb *res, wkb **geom, int* 
columnType, int* columnSRID, int* valueSRID);
 
diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c
--- a/geom/monetdb5/geom.c
+++ b/geom/monetdb5/geom.c
@@ -2081,7 +2081,7 @@ geom_epilogue(void *ret)
 
 /* Check if fixed-sized atom mbr is null */
 static int
-mbr_isnil(mbr *m)
+mbr_isnil(const mbr *m)
 {
        if (m == NULL || m->xmin == flt_nil || m->ymin == flt_nil || m->xmax == 
flt_nil || m->ymax == flt_nil)
                return 1;
@@ -2136,13 +2136,13 @@ strncasecmp(const char *s1, const char *
 /* Creates WKB representation (including srid) from WKT representation */
 /* return number of parsed characters. */
 static str
-wkbFROMSTR_withSRID(char *geomWKT, int *len, wkb **geomWKB, int srid, size_t 
*nread)
+wkbFROMSTR_withSRID(const char *geomWKT, int *len, wkb **geomWKB, int srid, 
size_t *nread)
 {
        GEOSGeom geosGeometry = NULL;   /* The geometry object that is parsed 
from the src string. */
        GEOSWKTReader *WKT_reader;
        const char *polyhedralSurface = "POLYHEDRALSURFACE";
        const char *multiPolygon = "MULTIPOLYGON";
-       char *geomWKT_original = NULL;
+       char *geomWKT_new = NULL;
        size_t parsedCharacters = 0;
 
        *nread = 0;
@@ -2176,34 +2176,32 @@ wkbFROMSTR_withSRID(char *geomWKT, int *
        //not work correctly.
        if (strncasecmp(geomWKT, polyhedralSurface, strlen(polyhedralSurface)) 
== 0) {
                size_t sizeOfInfo = strlen(geomWKT) - strlen(polyhedralSurface);
-               geomWKT_original = geomWKT;
-               geomWKT = GDKmalloc(sizeOfInfo + strlen(multiPolygon) + 1);
-               if (geomWKT == NULL)
+               geomWKT_new = GDKmalloc(sizeOfInfo + strlen(multiPolygon) + 1);
+               if (geomWKT_new == NULL)
                        throw(MAL, "wkb.FromText", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
-               strcpy(geomWKT, multiPolygon);
-               memcpy(geomWKT + strlen(multiPolygon), 
&geomWKT_original[strlen(polyhedralSurface)], sizeOfInfo);
-               geomWKT[sizeOfInfo + strlen(multiPolygon)] = '\0';
+               sprintf(geomWKT_new, "%s%s", multiPolygon, geomWKT + 
strlen(polyhedralSurface));
+               geomWKT = geomWKT_new;
        }
        ////////////////////////// UP TO HERE ///////////////////////////
 
        WKT_reader = GEOSWKTReader_create();
        if (WKT_reader == NULL) {
-               if (geomWKT_original)
-                       GDKfree(geomWKT);
+               if (geomWKT_new)
+                       GDKfree(geomWKT_new);
                throw(MAL, "wkb.FromText", SQLSTATE(38000) "Geos operation 
GEOSWKTReader_create failed");
        }
        geosGeometry = GEOSWKTReader_read(WKT_reader, geomWKT);
        GEOSWKTReader_destroy(WKT_reader);
 
        if (geosGeometry == NULL) {
-               if (geomWKT_original)
-                       GDKfree(geomWKT);
+               if (geomWKT_new)
+                       GDKfree(geomWKT_new);
                throw(MAL, "wkb.FromText", SQLSTATE(38000) "Geos operation 
GEOSWKTReader_read failed");
        }
 
        if (GEOSGeomTypeId(geosGeometry) == -1) {
-               if (geomWKT_original)
-                       GDKfree(geomWKT);
+               if (geomWKT_new)
+                       GDKfree(geomWKT_new);
                GEOSGeom_destroy(geosGeometry);
                throw(MAL, "wkb.FromText", SQLSTATE(38000) "Geos operation 
GEOSGeomTypeId failed");
        }
@@ -2217,26 +2215,23 @@ wkbFROMSTR_withSRID(char *geomWKT, int *
        *geomWKB = geos2wkb(geosGeometry);
        GEOSGeom_destroy(geosGeometry);
        if (*geomWKB == NULL) {
-               if (geomWKT_original)
-                       GDKfree(geomWKT);
+               if (geomWKT_new)
+                       GDKfree(geomWKT_new);
                throw(MAL, "wkb.FromText", SQLSTATE(38000) "Geos operation 
geos2wkb failed");
        }
 
        *len = (int) wkb_size((*geomWKB)->len);
-
-       if (geomWKT_original) {
-               GDKfree(geomWKT);
-               geomWKT = geomWKT_original;
-       }
-
        parsedCharacters = strlen(geomWKT);
        assert(parsedCharacters <= GDK_int_max);
+
+       GDKfree(geomWKT_new);
+
        *nread = parsedCharacters;
        return MAL_SUCCEED;
 }
 
 static int
-wkbaFROMSTR_withSRID(char *fromStr, int *len, wkba **toArray, int srid)
+wkbaFROMSTR_withSRID(const char *fromStr, int *len, wkba **toArray, int srid)
 {
        int items, i;
        size_t skipBytes = 0;
@@ -2442,7 +2437,7 @@ decit(char hex)
 }
 
 str
-wkbFromBinary(wkb **geomWKB, char **inStr)
+wkbFromBinary(wkb **geomWKB, const char **inStr)
 {
        size_t strLength, wkbLength, i;
        wkb *w;
@@ -5002,7 +4997,7 @@ wkbCoordinateFromWKB(dbl *coordinateValu
 }
 
 str
-mbrFromString(mbr **w, str *src)
+mbrFromString(mbr **w, const char **src)
 {
        int len = *w ? (int) sizeof(mbr) : 0;
        char *errbuf;
@@ -5059,7 +5054,7 @@ ordinatesMBR(mbr **res, flt *minX, flt *
 /* Creates the string representation (WKT) of a WKB */
 /* return length of resulting string. */
 int
-wkbTOSTR(char **geomWKT, int *len, wkb *geomWKB)
+wkbTOSTR(char **geomWKT, int *len, const wkb *geomWKB)
 {
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to