Changeset: e213ffb94065 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/e213ffb94065
Modified Files:
clients/Tests/exports.stable.out
sql/backends/monet5/vaults/odbc/odbc_loader.c
sql/server/rel_rel.c
sql/server/sql_parser.y
Branch: nested
Log Message:
merged with default
diffs (truncated from 4014 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
@@ -273,9 +273,9 @@ BAT *GDKanalyticalntile(BAT *b, BAT *p,
BAT *GDKanalyticalprod(BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, int tp1, int
tp2, int frame_type) __attribute__((__warn_unused_result__));
BAT *GDKanalyticalsum(BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, int tp1, int
tp2, int frame_type) __attribute__((__warn_unused_result__));
BAT *GDKanalyticalwindowbounds(BAT *b, BAT *p, BAT *l, const void *restrict
bound, int tp1, int tp2, int unit, bool preceding, oid first_half)
__attribute__((__warn_unused_result__));
-gdk_return GDKasciify(char **restrict buf, size_t *restrict buflen, const char
*restrict s);
+gdk_return GDKasciify(allocator *ma, char **restrict buf, size_t *restrict
buflen, const char *restrict s);
int GDKatomcnt;
-gdk_return GDKcasefold(char **restrict buf, size_t *restrict buflen, const
char *restrict s) __attribute__((__access__(read_write, 1)))
__attribute__((__access__(read_write, 2)));
+gdk_return GDKcasefold(allocator *ma, char **restrict buf, size_t *restrict
buflen, const char *restrict s) __attribute__((__access__(read_write, 2)))
__attribute__((__access__(read_write, 3)));
void GDKclrerr(void);
gdk_return GDKcopyenv(BAT **key, BAT **val, bool writable);
gdk_return GDKcreatedir(const char *nme);
@@ -330,8 +330,8 @@ char *GDKstrcasestr(const char *haystack
str GDKstrdup(const char *s) __attribute__((__malloc__))
__attribute__((__malloc__(GDKfree, 1))) __attribute__((__warn_unused_result__));
int GDKstrncasecmp(const char *str1, const char *str2, size_t l1, size_t l2);
str GDKstrndup(const char *s, size_t n) __attribute__((__malloc__))
__attribute__((__malloc__(GDKfree, 1))) __attribute__((__warn_unused_result__));
-gdk_return GDKtolower(char **restrict buf, size_t *restrict buflen, const char
*restrict s) __attribute__((__access__(read_write, 1)))
__attribute__((__access__(read_write, 2)));
-gdk_return GDKtoupper(char **restrict buf, size_t *restrict buflen, const char
*restrict s) __attribute__((__access__(read_write, 1)))
__attribute__((__access__(read_write, 2)));
+gdk_return GDKtolower(allocator *ma, char **restrict buf, size_t *restrict
buflen, const char *restrict s) __attribute__((__access__(read_write, 2)))
__attribute__((__access__(read_write, 3)));
+gdk_return GDKtoupper(allocator *ma, char **restrict buf, size_t *restrict
buflen, const char *restrict s) __attribute__((__access__(read_write, 2)))
__attribute__((__access__(read_write, 3)));
gdk_return GDKtracer_fill_comp_info(BAT *id, BAT *component, BAT *log_level);
gdk_return GDKtracer_flush_buffer(void);
const char *GDKtracer_get_component_level(const char *comp);
@@ -409,7 +409,7 @@ void RTREEdestroy(BAT *b);
bool RTREEexists(BAT *b);
bool RTREEexists_bid(bat bid);
void RTREEfree(BAT *b);
-BUN *RTREEsearch(BAT *b, const void *inMBR, int result_limit);
+BUN *RTREEsearch(allocator *ma, BAT *b, const void *inMBR, int result_limit);
BUN SORTfnd(BAT *b, const void *v);
BUN SORTfndfirst(BAT *b, const void *v);
BUN SORTfndlast(BAT *b, const void *v);
@@ -769,8 +769,8 @@ size_t msettings_write_url(const msettin
const char *wsaerror(int);
# monetdb5
-str AUTHGeneratePasswordHash(str *res, const char *value);
-str AUTHcypherValue(str *ret, const char *value);
+str AUTHGeneratePasswordHash(allocator *, str *res, const char *value);
+str AUTHcypherValue(allocator *, str *ret, const char *value);
str AUTHdecypherValue(allocator *, str *ret, const char *value);
str AUTHrequireAdmin(Client c);
str AUTHunlockVault(const char *password);
@@ -802,7 +802,7 @@ void MCsetClientInfo(Client c, const cha
void MCstopClients(Client c);
str MCsuspendClient(int id);
int MCvalid(Client c);
-char *MSP_locate_sqlscript(const char *mod_name, bit recurse);
+char *MSP_locate_sqlscript(allocator *ma, const char *mod_name);
str MSinitClientPrg(Client cntxt, const char *mod, const char *nme);
void MSresetInstructions(MalBlkPtr mb, int start);
void MSresetStack(Client cntxt, MalBlkPtr mb, MalStkPtr glb);
@@ -826,7 +826,7 @@ int TRACEtable(Client cntxt, BAT **r);
int TYPE_xml;
int UTF8_strlen(const char *s);
int UTF8_strwidth(const char *s);
-void addMalException(MalBlkPtr mb, str msg);
+void addMalException(MalBlkPtr mb, const char *msg);
str addOptimizerPipe(Client cntxt, MalBlkPtr mb, const char *name);
str addPipeDefinition(Client cntxt, const char *name, const char *pipe);
const char affectedRowsRef[];
@@ -888,7 +888,6 @@ void clrFunction(InstrPtr p);
void clrInstruction(InstrPtr p);
const char columnBindRef[];
const char comment_onRef[];
-str compileString(Symbol *fcn, Client c, str s);
const char compressRef[];
char *concatErrors(const char *err1, const char *err2)
__attribute__((__nonnull__(1, 2))) __attribute__((__returns_nonnull__));
const char connectRef[];
@@ -1059,7 +1058,7 @@ const char likeselectRef[];
const char likeuselectRef[];
const char lngRef[];
str loadLibrary(const char *modulename, int flag);
-char *locate_file(const char *basename, const char *ext, bit recurse);
+char *locate_file(allocator *ma, const char *basename, const char *ext);
const char lockRef[];
const char lookupRef[];
const char mainRef[];
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -44,6 +44,10 @@
#include <limits.h> /* for *_MIN and *_MAX */
#include <float.h> /* for FLT_MAX and DBL_MAX */
+#ifndef PATH_MAX
+#define PATH_MAX 1024
+#endif
+
#ifdef WIN32
#ifndef LIBGDK
#define gdk_export extern __declspec(dllimport)
@@ -1235,7 +1239,7 @@ gdk_export bool RTREEexists_bid(bat bid)
gdk_export gdk_return BATrtree(BAT *wkb, BAT* mbr);
/* inMBR is really a struct mbr * from geom module, but that is not
* available here */
-gdk_export BUN* RTREEsearch(BAT *b, const void *inMBR, int result_limit);
+gdk_export BUN* RTREEsearch(allocator *ma, BAT *b, const void *inMBR, int
result_limit);
#endif
gdk_export void RTREEdestroy(BAT *b);
@@ -1532,22 +1536,22 @@ gdk_export BAT *BATgroupedfirstn(BUN n,
__attribute__((__warn_unused_result__));
-gdk_export gdk_return GDKtoupper(char **restrict buf, size_t *restrict buflen,
const char *restrict s)
- __attribute__((__access__(read_write, 1)))
- __attribute__((__access__(read_write, 2)));
-gdk_export gdk_return GDKtolower(char **restrict buf, size_t *restrict buflen,
const char *restrict s)
- __attribute__((__access__(read_write, 1)))
- __attribute__((__access__(read_write, 2)));
-gdk_export gdk_return GDKcasefold(char **restrict buf, size_t *restrict
buflen, const char *restrict s)
- __attribute__((__access__(read_write, 1)))
- __attribute__((__access__(read_write, 2)));
+gdk_export gdk_return GDKtoupper(allocator *ma, char **restrict buf, size_t
*restrict buflen, const char *restrict s)
+ __attribute__((__access__(read_write, 2)))
+ __attribute__((__access__(read_write, 3)));
+gdk_export gdk_return GDKtolower(allocator *ma, char **restrict buf, size_t
*restrict buflen, const char *restrict s)
+ __attribute__((__access__(read_write, 2)))
+ __attribute__((__access__(read_write, 3)));
+gdk_export gdk_return GDKcasefold(allocator *ma, char **restrict buf, size_t
*restrict buflen, const char *restrict s)
+ __attribute__((__access__(read_write, 2)))
+ __attribute__((__access__(read_write, 3)));
gdk_export int GDKstrncasecmp(const char *str1, const char *str2, size_t l1,
size_t l2);
gdk_export int GDKstrcasecmp(const char *s1, const char *s2);
gdk_export char *GDKstrcasestr(const char *haystack, const char *needle);
gdk_export BAT *BATtoupper(BAT *b, BAT *s);
gdk_export BAT *BATtolower(BAT *b, BAT *s);
gdk_export BAT *BATcasefold(BAT *b, BAT *s);
-gdk_export gdk_return GDKasciify(char **restrict buf, size_t *restrict buflen,
const char *restrict s);
+gdk_export gdk_return GDKasciify(allocator *ma, char **restrict buf, size_t
*restrict buflen, const char *restrict s);
gdk_export BAT *BATasciify(BAT *b, BAT *s);
#ifdef HAVE_OPENSSL
gdk_export gdk_return BATaggrdigest(allocator *ma, BAT **bnp, char **shap,
const char *digest, BAT *b, BAT *g, BAT *e, BAT *s, bool skip_nils);
diff --git a/gdk/gdk_calc_addsub.c b/gdk/gdk_calc_addsub.c
--- a/gdk/gdk_calc_addsub.c
+++ b/gdk/gdk_calc_addsub.c
@@ -1436,9 +1436,13 @@ addstr_loop(BAT *b1, const char *l, BAT
candoff1 = b1 ? b1->hseqbase : 0;
candoff2 = b2 ? b2->hseqbase : 0;
slen = 1024;
- s = GDKmalloc(slen);
- if (s == NULL)
+ allocator *ta = MT_thread_getallocator();
+ allocator_state ta_state = ma_open(ta);
+ s = ma_alloc(ta, slen);
+ if (s == NULL) {
+ ma_close(ta, &ta_state);
return BUN_NONE;
+ }
TIMEOUT_LOOP_IDX_DECL(i, ncand, qry_ctx) {
oid x1 = canditer_next(ci1) - candoff1;
oid x2 = canditer_next(ci2) - candoff2;
@@ -1454,9 +1458,10 @@ addstr_loop(BAT *b1, const char *l, BAT
llen = strlen(l);
rlen = strlen(r);
if (llen + rlen >= slen) {
+ /* ma_close(ta, &ta_state); */
+ /* ta_state = ma_open(ta); */
slen = llen + rlen + 1024;
- GDKfree(s);
- s = GDKmalloc(slen);
+ s = ma_alloc(ta, slen);
if (s == NULL)
goto bailout;
}
@@ -1467,12 +1472,12 @@ addstr_loop(BAT *b1, const char *l, BAT
}
TIMEOUT_CHECK(qry_ctx,
GOTO_LABEL_TIMEOUT_HANDLER(bailout, qry_ctx));
- GDKfree(s);
+ ma_close(ta, &ta_state);
bn->theap->dirty = true;
return nils;
bailout:
- GDKfree(s);
+ ma_close(ta, &ta_state);
return BUN_NONE;
}
diff --git a/gdk/gdk_calc_convert.c b/gdk/gdk_calc_convert.c
--- a/gdk/gdk_calc_convert.c
+++ b/gdk/gdk_calc_convert.c
@@ -797,6 +797,8 @@ convert_str_fix(BATiter *bi, int tp, voi
const char *s = NULL;
QryCtx *qry_ctx = MT_thread_get_qry_ctx();
+ allocator *ta = MT_thread_getallocator();
+ allocator_state ta_state = ma_open(ta);
if (ATOMstorage(tp) == TYPE_msk) {
uint32_t mask = 0;
@@ -822,12 +824,11 @@ convert_str_fix(BATiter *bi, int tp, voi
TIMEOUT_CHECK(qry_ctx, TIMEOUT_HANDLER(BUN_NONE, qry_ctx));
if (j > 0)
*d = mask;
+ ma_close(ta, &ta_state);
return 0;
}
bool (*atomeq)(const void *, const void *) = ATOMequal(tp);
- allocator *ta = MT_thread_getallocator();
- allocator_state ta_state = ma_open(ta);
TIMEOUT_LOOP(ci->ncand, qry_ctx) {
oid x = canditer_next(ci) - candoff;
const char *s = BUNtvar(*bi, x);
@@ -857,19 +858,19 @@ convert_str_fix(BATiter *bi, int tp, voi
if (s) {
sz = escapedStrlen(s, NULL, NULL, '\'');
- bf = GDKmalloc(sz + 1);
+ bf = ma_alloc(ta, sz + 1);
}
if (bf) {
escapedStr(bf, s, sz + 1, NULL, NULL, '\'');
GDKerror("22018!conversion of string "
"'%s' to type %s failed.\n",
bf, ATOMname(tp));
- GDKfree(bf);
} else {
GDKerror("22018!conversion of string "
"to type %s failed.\n",
ATOMname(tp));
}
+ ma_close(ta, &ta_state);
return BUN_NONE;
}
@@ -1797,19 +1798,21 @@ VARconvert(allocator *ma, ValPtr ret, co
//if (ATOMextern(ret->vtype))
// GDKfree(p);
GDKclrerr();
+ allocator *ta = MT_thread_getallocator();
+ allocator_state ta_state = ma_open(ta);
size_t sz = escapedStrlen(v->val.sval, NULL,
NULL, '\'');
- char *bf = GDKmalloc(sz + 1);
+ char *bf = ma_alloc(ta, sz + 1);
if (bf) {
escapedStr(bf, v->val.sval, sz + 1,
NULL, NULL, '\'');
GDKerror("22018!conversion of string "
"'%s' to type %s failed.\n",
bf, ATOMname(ret->vtype));
- GDKfree(bf);
} else {
GDKerror("22018!conversion of string "
"to type %s failed.\n",
ATOMname(ret->vtype));
}
+ ma_close(ta, &ta_state);
return GDK_FAIL;
} else {
/* now give value obtained to ret */
diff --git a/gdk/gdk_firstn.c b/gdk/gdk_firstn.c
--- a/gdk/gdk_firstn.c
+++ b/gdk/gdk_firstn.c
@@ -775,9 +775,12 @@ BATfirstn_unique_with_groups(BATiter *bi
BATsetcount(bn, n);
oids = (oid *) Tloc(bn, 0);
gv = (const oid *) Tloc(g, 0);
- goids = GDKmalloc(n * sizeof(oid));
+ allocator *ta = MT_thread_getallocator();
+ allocator_state ta_state = ma_open(ta);
+ goids = ma_alloc(ta, n * sizeof(oid));
if (goids == NULL) {
BBPreclaim(bn);
+ ma_close(ta, &ta_state);
return NULL;
}
@@ -1000,7 +1003,7 @@ BATfirstn_unique_with_groups(BATiter *bi
*lastp = oids[0];
if (lastgp)
*lastgp = goids[0];
- GDKfree(goids);
+ ma_close(ta, &ta_state);
/* output must be sorted since it's a candidate list */
GDKqsort(oids, NULL, NULL, (size_t) n, sizeof(oid), 0, TYPE_oid, false,
false);
bn->tsorted = true;
@@ -1017,7 +1020,7 @@ BATfirstn_unique_with_groups(BATiter *bi
return bn;
bailout:
- GDKfree(goids);
+ ma_close(ta, &ta_state);
BBPreclaim(bn);
return NULL;
}
@@ -1382,13 +1385,17 @@ BATgroupedfirstn(BUN n, BAT *s, BAT *g,
return NULL;
}
- batinfo = GDKmalloc(nbats * sizeof(struct batinfo));
- if (batinfo == NULL)
+ allocator *ta = MT_thread_getallocator();
+ allocator_state ta_state = ma_open(ta);
+ batinfo = ma_alloc(ta, nbats * sizeof(struct batinfo));
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]