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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list