Changeset: c442c0021171 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c442c0021171
Modified Files:
        sql/backends/monet5/sql_statement.c
        sql/server/rel_select.c
        sql/server/rel_updates.c
Branch: default
Log Message:

Merge resource_management branch into default.


diffs (truncated from 50136 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
@@ -3,13 +3,13 @@ int ALIGNsynced(BAT *b1, BAT *b2);
 int ATOMallocate(const char *nme);
 void *ATOMdup(int id, const void *val);
 uint8_t ATOMelmshift(int sz) __attribute__((__const__));
-char *ATOMformat(int id, const void *val) 
__attribute__((__warn_unused_result__));
+char *ATOMformat(allocator *ma, int id, const void *val) 
__attribute__((__warn_unused_result__));
 gdk_return ATOMheap(int id, Heap *hp, size_t cap) 
__attribute__((__warn_unused_result__));
 int ATOMindex(const char *nme);
 size_t ATOMlen(int id, const void *v);
 const char *ATOMname(int id);
 void *ATOMnil(int id) __attribute__((__malloc__));
-int ATOMprint(int id, const void *val, stream *fd);
+int ATOMprint(allocator *ma, int id, const void *val, stream *fd);
 BAT *BATall_grp(BAT *l, BAT *g, BAT *e, BAT *s);
 BAT *BATallnotequal_grp(BAT *l, BAT *r, BAT *g, BAT *e, BAT *s);
 BAT *BATallnotequal_grp2(BAT *l, BAT *r, BAT *rid, BAT *g, BAT *e, BAT *s);
@@ -161,10 +161,10 @@ gdk_return BATleftjoin(BAT **r1p, BAT **
 gdk_return BATmarkjoin(BAT **r1p, BAT **r2p, BAT **r3p, BAT *l, BAT *r, BAT 
*sl, BAT *sr, bool nil_matches, BUN estimate) 
__attribute__((__access__(write_only, 1))) 
__attribute__((__access__(write_only, 2))) 
__attribute__((__access__(write_only, 3))) 
__attribute__((__warn_unused_result__));
 BAT *BATmaskedcands(oid hseq, BUN nr, BAT *masked, bool selected);
 void *BATmax(BAT *b, void *aggr);
-void *BATmax_skipnil(BAT *b, void *aggr, bit skipnil);
+void *BATmax_skipnil(allocator *alloc, BAT *b, void *aggr, bit skipnil);
 BAT *BATmergecand(BAT *a, BAT *b);
 void *BATmin(BAT *b, void *aggr);
-void *BATmin_skipnil(BAT *b, void *aggr, bit skipnil);
+void *BATmin_skipnil(allocator *alloc, BAT *b, void *aggr, bit skipnil);
 gdk_return BATmode(BAT *b, bool transient);
 BAT *BATnegcands(oid tseq, BUN nr, BAT *odels);
 BAT *BATnil_grp(BAT *l, BAT *g, BAT *e, BAT *s);
@@ -173,8 +173,8 @@ bool BATordered_rev(BAT *b);
 gdk_return BATorderidx(BAT *b, bool stable);
 gdk_return BAToutercross(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT 
*sr, bool max_one) __attribute__((__access__(write_only, 1))) 
__attribute__((__access__(write_only, 2))) 
__attribute__((__warn_unused_result__));
 gdk_return BATouterjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT 
*sr, bool nil_matches, bool match_one, BUN estimate) 
__attribute__((__access__(write_only, 1))) 
__attribute__((__access__(write_only, 2))) 
__attribute__((__warn_unused_result__));
-gdk_return BATprint(stream *s, BAT *b);
-gdk_return BATprintcolumns(stream *s, int argc, BAT *argv[]);
+gdk_return BATprint(allocator *ma, stream *s, BAT *b);
+gdk_return BATprintcolumns(allocator *ma, stream *s, int argc, BAT *argv[]);
 gdk_return BATprod(void *res, int tp, BAT *b, BAT *s, bool skip_nils, bool 
nil_if_empty);
 BAT *BATproject(BAT *restrict l, BAT *restrict r);
 BAT *BATproject2(BAT *restrict l, BAT *restrict r1, BAT *restrict r2);
@@ -197,7 +197,7 @@ ValPtr BATsetprop_nolock(BAT *b, enum pr
 gdk_return BATsetstrimps(BAT *b);
 BAT *BATslice(BAT *b, BUN low, BUN high);
 gdk_return BATsort(BAT **sorted, BAT **order, BAT **groups, BAT *b, BAT *o, 
BAT *g, bool reverse, bool nilslast, bool stable) 
__attribute__((__access__(write_only, 1))) 
__attribute__((__access__(write_only, 2))) 
__attribute__((__access__(write_only, 3))) 
__attribute__((__warn_unused_result__));
-gdk_return BATstr_group_concat(ValPtr res, BAT *b, BAT *s, BAT *sep, bool 
skip_nils, bool nil_if_empty, const char *restrict separator);
+gdk_return BATstr_group_concat(allocator *ma, ValPtr res, BAT *b, BAT *s, BAT 
*sep, bool skip_nils, bool nil_if_empty, const char *restrict separator);
 gdk_return BATsubcross(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, 
bool max_one) __attribute__((__access__(write_only, 1))) 
__attribute__((__access__(write_only, 2))) 
__attribute__((__warn_unused_result__));
 BAT *BATsubexist(BAT *l, BAT *g, BAT *e, BAT *s);
 BAT *BATsubnot_exist(BAT *l, BAT *g, BAT *e, BAT *s);
@@ -383,6 +383,7 @@ void MT_sleep_ms(unsigned int ms);
 void MT_thread_deregister(void);
 QryCtx *MT_thread_get_qry_ctx(void);
 const char *MT_thread_getalgorithm(void);
+allocator *MT_thread_getallocator(void);
 void *MT_thread_getdata(void);
 const char *MT_thread_getname(void);
 bool MT_thread_init(void);
@@ -390,6 +391,7 @@ gdk_return MT_thread_init_add_callback(v
 bool MT_thread_register(void);
 void MT_thread_set_qry_ctx(QryCtx *ctx);
 void MT_thread_setalgorithm(const char *algo);
+void MT_thread_setallocator(allocator *ma);
 void MT_thread_setdata(void *data);
 void MT_thread_setlockwait(MT_Lock *lock);
 void MT_thread_setsemawait(MT_Sema *sema);
@@ -397,8 +399,8 @@ void MT_thread_setworking(const char *wo
 void *MT_tls_get(MT_TLS_t key);
 void MT_tls_set(MT_TLS_t key, void *val);
 void OIDXdestroy(BAT *b);
-ssize_t OIDfromStr(const char *src, size_t *len, oid **dst, bool external);
-ssize_t OIDtoStr(str *dst, size_t *len, const oid *src, bool external);
+ssize_t OIDfromStr(allocator *ma, const char *src, size_t *len, oid **dst, 
bool external);
+ssize_t OIDtoStr(allocator *ma, str *dst, size_t *len, const oid *src, bool 
external);
 BUN ORDERfnd(BAT *b, Heap *oidxh, const void *v);
 BUN ORDERfndfirst(BAT *b, Heap *oidxh, const void *v);
 BUN ORDERfndlast(BAT *b, Heap *oidxh, const void *v);
@@ -417,12 +419,12 @@ bool THRhighwater(void);
 gdk_return TMsubcommit_list(bat *restrict subcommit, BUN *restrict sizes, int 
cnt, lng logno) __attribute__((__warn_unused_result__));
 void VALclear(ValPtr v);
 int VALcmp(const ValRecord *p, const ValRecord *q);
-void *VALconvert(int typ, ValPtr t);
-ValPtr VALcopy(ValPtr dst, const ValRecord *src) 
__attribute__((__access__(write_only, 1)));
+void *VALconvert(allocator *ma, int typ, ValPtr t);
+ValPtr VALcopy(allocator *va, ValPtr dst, const ValRecord *src) 
__attribute__((__access__(write_only, 1)));
 void VALempty(ValPtr v) __attribute__((__access__(write_only, 1)));
-char *VALformat(const ValRecord *res) __attribute__((__warn_unused_result__));
+char *VALformat(allocator *ma, const ValRecord *res) 
__attribute__((__warn_unused_result__));
 void *VALget(ValPtr v);
-ValPtr VALinit(ValPtr d, int tpe, const void *s) 
__attribute__((__access__(write_only, 1)));
+ValPtr VALinit(allocator *va, ValPtr d, int tpe, const void *s) 
__attribute__((__access__(write_only, 1)));
 bool VALisnil(const ValRecord *v);
 ValPtr VALset(ValPtr v, int t, void *p);
 gdk_return VARcalcabsolute(ValPtr ret, const ValRecord *v);
@@ -452,7 +454,7 @@ gdk_return VARcalcrsh(ValPtr ret, const 
 gdk_return VARcalcsign(ValPtr ret, const ValRecord *v);
 gdk_return VARcalcsub(ValPtr ret, const ValRecord *lft, const ValRecord *rgt);
 gdk_return VARcalcxor(ValPtr ret, const ValRecord *lft, const ValRecord *rgt);
-gdk_return VARconvert(ValPtr ret, const ValRecord *v, uint8_t scale1, uint8_t 
scale2, uint8_t precision);
+gdk_return VARconvert(allocator *ma, ValPtr ret, const ValRecord *v, uint8_t 
scale1, uint8_t scale2, uint8_t precision);
 void VIEWbounds(BAT *b, BAT *view, BUN l, BUN h);
 BAT *VIEWcreate(oid seq, BAT *b, BUN l, BUN h);
 size_t _MT_npages;
@@ -460,11 +462,11 @@ size_t _MT_pagesize;
 const union _dbl_nil_t _dbl_nil_;
 const union _flt_nil_t _flt_nil_;
 char *asctime_r(const struct tm *restrict, char *restrict);
-ssize_t bitFromStr(const char *src, size_t *len, bit **dst, bool external);
-ssize_t bitToStr(str *dst, size_t *len, const bit *src, bool external);
+ssize_t bitFromStr(allocator *ma, const char *src, size_t *len, bit **dst, 
bool external);
+ssize_t bitToStr(allocator *ma, str *dst, size_t *len, const bit *src, bool 
external);
 size_t blobsize(size_t nitems) __attribute__((__const__));
-ssize_t bteFromStr(const char *src, size_t *len, bte **dst, bool external);
-ssize_t bteToStr(str *dst, size_t *len, const bte *src, bool external);
+ssize_t bteFromStr(allocator *ma, const char *src, size_t *len, bte **dst, 
bool external);
+ssize_t bteToStr(allocator *ma, str *dst, size_t *len, const bte *src, bool 
external);
 const bte bte_nil;
 oid canditer_idx(const struct canditer *ci, BUN p) __attribute__((__pure__));
 void canditer_init(struct canditer *ci, BAT *b, BAT *s) 
__attribute__((__access__(write_only, 1)));
@@ -480,6 +482,7 @@ BAT *canditer_slice(const struct candite
 BAT *canditer_slice2(const struct canditer *ci, BUN lo1, BUN hi1, BUN lo2, BUN 
hi2);
 BAT *canditer_slice2val(const struct canditer *ci, oid lo1, oid hi1, oid lo2, 
oid hi2);
 BAT *canditer_sliceval(const struct canditer *ci, oid lo, oid hi);
+allocator *create_allocator(allocator *pa, const char *, bool use_lock);
 char *ctime_r(const time_t *restrict, char *restrict);
 date date_add_day(date dt, int days) __attribute__((__const__));
 date date_add_month(date dt, int months) __attribute__((__const__));
@@ -490,10 +493,10 @@ bte date_dayofweek(date dt) __attribute_
 sht date_dayofyear(date dt) __attribute__((__const__));
 int date_decade(date dt) __attribute__((__const__));
 int date_diff(date d1, date d2) __attribute__((__const__));
-ssize_t date_fromstr(const char *buf, size_t *len, date **d, bool external);
+ssize_t date_fromstr(allocator *ma, const char *buf, size_t *len, date **d, 
bool external);
 bte date_month(date dt) __attribute__((__const__));
 bte date_quarter(date dt) __attribute__((__const__));
-ssize_t date_tostr(str *buf, size_t *len, const date *val, bool external);
+ssize_t date_tostr(allocator *ma, str *buf, size_t *len, const date *val, bool 
external);
 bte date_usweekofyear(date dt) __attribute__((__const__));
 bte date_weekofyear(date dt) __attribute__((__const__));
 int date_year(date dt) __attribute__((__const__));
@@ -501,17 +504,17 @@ daytime daytime_add_usec(daytime tm, lng
 daytime daytime_add_usec_modulo(daytime tm, lng usec) 
__attribute__((__const__));
 daytime daytime_create(int hour, int minute, int second, int usec) 
__attribute__((__const__));
 lng daytime_diff(daytime d1, daytime d2) __attribute__((__const__));
-ssize_t daytime_fromstr(const char *buf, size_t *len, daytime **d, bool 
external);
+ssize_t daytime_fromstr(allocator *ma, const char *buf, size_t *len, daytime 
**d, bool external);
 bte daytime_hour(daytime tm) __attribute__((__const__));
 bte daytime_min(daytime tm) __attribute__((__const__));
-ssize_t daytime_precision_tostr(str *buf, size_t *len, const daytime dt, int 
precision, bool external);
+ssize_t daytime_precision_tostr(allocator *ma, str *buf, size_t *len, const 
daytime dt, int precision, bool external);
 int daytime_sec(daytime tm) __attribute__((__const__));
 int daytime_sec_usec(daytime tm) __attribute__((__const__));
-ssize_t daytime_tostr(str *buf, size_t *len, const daytime *val, bool 
external);
-ssize_t daytime_tz_fromstr(const char *buf, size_t *len, daytime **d, bool 
external);
+ssize_t daytime_tostr(allocator *ma, str *buf, size_t *len, const daytime 
*val, bool external);
+ssize_t daytime_tz_fromstr(allocator *ma, const char *buf, size_t *len, 
daytime **d, bool external);
 int daytime_usec(daytime tm) __attribute__((__const__));
-ssize_t dblFromStr(const char *src, size_t *len, dbl **dst, bool external);
-ssize_t dblToStr(str *dst, size_t *len, const dbl *src, bool external);
+ssize_t dblFromStr(allocator *ma, const char *src, size_t *len, dbl **dst, 
bool external);
+ssize_t dblToStr(allocator *ma, str *dst, size_t *len, const dbl *src, bool 
external);
 const dbl dbl_nil;
 int dlclose(void *handle);
 char *dlerror(void);
@@ -521,24 +524,25 @@ void *dlsym(void *handle, const char *na
 exception_buffer *eb_init(exception_buffer *eb) 
__attribute__((__access__(write_only, 1)));
 size_t escapedStr(char *restrict dst, const char *restrict src, size_t dstlen, 
const char *sep1, const char *sep2, int quote);
 size_t escapedStrlen(const char *restrict src, const char *sep1, const char 
*sep2, int quote);
-ssize_t fltFromStr(const char *src, size_t *len, flt **dst, bool external);
-ssize_t fltToStr(str *dst, size_t *len, const flt *src, bool external);
+ssize_t fltFromStr(allocator *ma, const char *src, size_t *len, flt **dst, 
bool external);
+ssize_t fltToStr(allocator *ma, str *dst, size_t *len, const flt *src, bool 
external);
 const flt flt_nil;
 gdk_return gdk_add_callback(const char *name, gdk_callback_func *f, int argc, 
void *argv[], int interval);
 gdk_return gdk_remove_callback(const char *, gdk_callback_func *f);
 bat getBBPsize(void);
 int gettimeofday(struct timeval *tv, int *ignore_zone);
 struct tm *gmtime_r(const time_t *restrict, struct tm *restrict);
-ssize_t hgeFromStr(const char *src, size_t *len, hge **dst, bool external);
-ssize_t hgeToStr(str *dst, size_t *len, const hge *src, bool external);
+ssize_t hgeFromStr(allocator *ma, const char *src, size_t *len, hge **dst, 
bool external);
+ssize_t hgeToStr(allocator *ma, str *dst, size_t *len, const hge *src, bool 
external);
 const hge hge_nil;
+char *humansize(size_t val, char *buf, size_t buflen) 
__attribute__((__access__(write_only, 2, 3)));
 const inet4 inet4_nil;
 const inet6 inet6_nil;
-ssize_t intFromStr(const char *src, size_t *len, int **dst, bool external);
-ssize_t intToStr(str *dst, size_t *len, const int *src, bool external);
+ssize_t intFromStr(allocator *ma, const char *src, size_t *len, int **dst, 
bool external);
+ssize_t intToStr(allocator *ma, str *dst, size_t *len, const int *src, bool 
external);
 const int int_nil;
-ssize_t lngFromStr(const char *src, size_t *len, lng **dst, bool external);
-ssize_t lngToStr(str *dst, size_t *len, const lng *src, bool external);
+ssize_t lngFromStr(allocator *ma, const char *src, size_t *len, lng **dst, 
bool external);
+ssize_t lngToStr(allocator *ma, str *dst, size_t *len, const lng *src, bool 
external);
 const lng lng_nil;
 struct tm *localtime_r(const time_t *restrict, struct tm *restrict);
 gdk_return log_activate(logger *lg);
@@ -561,6 +565,23 @@ gdk_return log_tflush(logger *lg, ulng l
 gdk_return log_tsequence(logger *lg, int seq, lng id);
 gdk_return log_tstart(logger *lg, bool flushnow, ulng *log_file_id);
 ATOMIC_TYPE lvl_per_component[];
+void *ma_alloc(allocator *sa, size_t sz);
+void ma_close(allocator *sa, const allocator_state *);
+void ma_destroy(allocator *sa);
+void ma_free(allocator *sa, void *);
+exception_buffer *ma_get_eb(allocator *sa) __attribute__((__pure__));
+allocator *ma_get_parent(const allocator *sa);
+void ma_info(const allocator *sa, char *buf, size_t buflen);
+const char *ma_name(allocator *sa);
+allocator_state ma_open(allocator *sa);
+void *ma_realloc(allocator *sa, void *ptr, size_t sz, size_t osz);
+allocator *ma_reset(allocator *sa);
+size_t ma_size(allocator *sa);
+char *ma_strconcat(allocator *sa, const char *s1, const char *s2);
+char *ma_strdup(allocator *sa, const char *s);
+char *ma_strndup(allocator *sa, const char *s, size_t l);
+bool ma_tmp_active(const allocator *sa);
+void *ma_zalloc(allocator *sa, size_t sz);
 void *mdlopen(const char *library, int mode);
 int mo_add_option(opt **Set, int setlen, opt_kind kind, const char *name, 
const char *value);
 int mo_builtin_settings(opt **Set);
@@ -569,26 +590,15 @@ void mo_free_options(opt *set, int setle
 void mo_print_options(opt *set, int setlen);
 int mo_system_config(opt **Set, int setlen);
 const oid oid_nil;
-ssize_t ptrFromStr(const char *src, size_t *len, ptr **dst, bool external);
-ssize_t ptrToStr(str *dst, size_t *len, const ptr *src, bool external);
+ssize_t ptrFromStr(allocator *ma, const char *src, size_t *len, ptr **dst, 
bool external);
+ssize_t ptrToStr(allocator *ma, str *dst, size_t *len, const ptr *src, bool 
external);
 const ptr ptr_nil;
-void *sa_alloc(allocator *sa, size_t sz);
-allocator *sa_create(allocator *pa);
-void sa_destroy(allocator *sa);
-exception_buffer *sa_get_eb(allocator *sa) __attribute__((__pure__));
-void *sa_realloc(allocator *sa, void *ptr, size_t sz, size_t osz);
-allocator *sa_reset(allocator *sa);
-size_t sa_size(allocator *sa);
-char *sa_strconcat(allocator *sa, const char *s1, const char *s2);
-char *sa_strdup(allocator *sa, const char *s);
-char *sa_strndup(allocator *sa, const char *s, size_t l);
-void *sa_zalloc(allocator *sa, size_t sz);
-ssize_t shtFromStr(const char *src, size_t *len, sht **dst, bool external);
-ssize_t shtToStr(str *dst, size_t *len, const sht *src, bool external);
+ssize_t shtFromStr(allocator *ma, const char *src, size_t *len, sht **dst, 
bool external);
+ssize_t shtToStr(allocator *ma, str *dst, size_t *len, const sht *src, bool 
external);
 const sht sht_nil;
-ssize_t sql_daytime_fromstr(const char *buf, daytime *d, long tz_sec, bool 
tzlocal);
-ssize_t sql_timestamp_fromstr(const char *buf, timestamp *d, long tz_sec, bool 
tzlocal);
-ssize_t strFromStr(const char *restrict src, size_t *restrict len, str 
*restrict dst, bool external);
+ssize_t sql_daytime_fromstr(allocator *ma, const char *buf, daytime *d, long 
tz_sec, bool tzlocal);
+ssize_t sql_timestamp_fromstr(allocator *ma, const char *buf, timestamp *d, 
long tz_sec, bool tzlocal);
+ssize_t strFromStr(allocator *ma, const char *restrict src, size_t *restrict 
len, str *restrict dst, bool external);
 const char str_nil[2];
 int strerror_r(int errnum, char *buf, size_t buflen);
 timestamp timestamp_add_month(timestamp t, int m) __attribute__((__const__));
@@ -599,12 +609,12 @@ date timestamp_date(timestamp t) __attri
 daytime timestamp_daytime(timestamp t) __attribute__((__const__));
 lng timestamp_diff(timestamp t1, timestamp t2) __attribute__((__const__));
 timestamp timestamp_fromdate(date dt) __attribute__((__const__));
-ssize_t timestamp_fromstr(const char *buf, size_t *len, timestamp **d, bool 
external);
+ssize_t timestamp_fromstr(allocator *ma, const char *buf, size_t *len, 
timestamp **d, bool external);
 timestamp timestamp_fromtime(time_t timeval) __attribute__((__const__));
 timestamp timestamp_fromusec(lng usec) __attribute__((__const__));
-ssize_t timestamp_precision_tostr(str *buf, size_t *len, timestamp val, int 
precision, bool external);
-ssize_t timestamp_tostr(str *buf, size_t *len, const timestamp *val, bool 
external);
-ssize_t timestamp_tz_fromstr(const char *buf, size_t *len, timestamp **ret, 
bool external);
+ssize_t timestamp_precision_tostr(allocator *ma, str *buf, size_t *len, 
timestamp val, int precision, bool external);
+ssize_t timestamp_tostr(allocator *ma, str *buf, size_t *len, const timestamp 
*val, bool external);
+ssize_t timestamp_tz_fromstr(allocator *ma, const char *buf, size_t *len, 
timestamp **ret, bool external);
 const timestamp unixepoch;
 const uuid uuid_nil;
 gdk_return void_inplace(BAT *b, oid id, const void *val, bool force) 
__attribute__((__warn_unused_result__));
@@ -760,17 +770,17 @@ const char *wsaerror(int);
 # monetdb5
 str AUTHGeneratePasswordHash(str *res, const char *value);
 str AUTHcypherValue(str *ret, const char *value);
-str AUTHdecypherValue(str *ret, const char *value);
+str AUTHdecypherValue(allocator *, str *ret, const char *value);
 str AUTHrequireAdmin(Client c);
 str AUTHunlockVault(const char *password);
 str AUTHverifyPassword(const char *passwd);
-str BKCmirror(bat *ret, const bat *bid);
+str BKCmirror(Client ctx, bat *ret, const bat *bid);
 str BKCnewBAT(bat *res, const int *tt, const BUN *cap, role_t role);
 str CLTshutdown(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str COPYrejects(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
 str COPYrejects_clear(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
-str GRPgroup1(bat *ngid, bat *next, bat *nhis, const bat *bid);
-str GRPsubgroup5(bat *ngid, bat *next, bat *nhis, const bat *bid, const bat 
*sid, const bat *gid, const bat *eid, const bat *hid);
+str GRPgroup1(Client ctx, bat *ngid, bat *next, bat *nhis, const bat *bid);
+str GRPsubgroup5(Client ctx, bat *ngid, bat *next, bat *nhis, const bat *bid, 
const bat *sid, const bat *gid, const bat *eid, const bat *hid);
 int MAL_MAXCLIENTS;
 int MALcommentsOnly(MalBlkPtr mb);
 lng MALdebug;
@@ -801,14 +811,14 @@ str QLOGcatalog(BAT **r);
 str QLOGdisable(void *ret);
 str QLOGempty(void *ret);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to