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]

Reply via email to