MonetDB: no_type_bat - merged with default
Changeset: 51041ada91fa for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/51041ada91fa Modified Files: sql/server/rel_dump.c sql/server/rel_exp.c sql/server/rel_rel.c sql/server/rel_select.c Branch: no_type_bat Log Message: merged with default diffs (80 lines): diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c --- a/sql/server/rel_dump.c +++ b/sql/server/rel_dump.c @@ -1639,7 +1639,7 @@ exp_read(mvc *sql, sql_rel *lrel, sql_re if (r[*pos] != '.') { cname = tname; tname = NULL; - exp_setname(sql->sa, exp, NULL, cname); + exp_setname(sql->sa, exp, NULL, sa_strdup(sql->sa, cname)); skipWS(r, pos); } else { (*pos)++; @@ -1648,7 +1648,7 @@ exp_read(mvc *sql, sql_rel *lrel, sql_re convertIdent(cname); (*pos)++; skipWS(r, pos); - exp_setname(sql->sa, exp, tname, cname); + exp_setname(sql->sa, exp, sa_strdup(sql->sa, tname), sa_strdup(sql->sa, cname)); } rlabel = try_update_label_count(sql, tname); nlabel = try_update_label_count(sql, cname); diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c --- a/sql/server/rel_exp.c +++ b/sql/server/rel_exp.c @@ -951,10 +951,11 @@ exp_exception(allocator *sa, sql_exp *co void exp_setname(allocator *sa, sql_exp *e, const char *rname, const char *name ) { + (void)sa; e->alias.label = 0; if (name) - e->alias.name = sa_strdup(sa, name); - e->alias.rname = (rname)?sa_strdup(sa, rname):NULL; + e->alias.name = name; + e->alias.rname = (rname); } void diff --git a/sql/server/rel_rel.c b/sql/server/rel_rel.c --- a/sql/server/rel_rel.c +++ b/sql/server/rel_rel.c @@ -793,7 +793,7 @@ rel_label( mvc *sql, sql_rel *r, int all char tname[16], *tnme; char cname[16], *cnme = NULL; - tnme = number2name(tname, sizeof(tname), nr); + tnme = sa_strdup(sql->sa, number2name(tname, sizeof(tname), nr)); if (!is_simple_project(r->op)) r = rel_project(sql->sa, r, rel_projections(sql, r, NULL, 1, 1)); if (!list_empty(r->exps)) { @@ -804,7 +804,7 @@ rel_label( mvc *sql, sql_rel *r, int all if (!is_freevar(e)) { if (all) { nr = ++sql->label; - cnme = number2name(cname, sizeof(cname), nr); + cnme = sa_strdup(sql->sa, number2name(cname, sizeof(cname), nr)); } exp_setname(sql->sa, e, tnme, cnme ); } @@ -815,7 +815,7 @@ rel_label( mvc *sql, sql_rel *r, int all for (node *ne = ((list*)r->r)->h; ne; ne = ne->next) { if (all) { nr = ++sql->label; - cnme = number2name(cname, sizeof(cname), nr); + cnme = sa_strdup(sql->sa, number2name(cname, sizeof(cname), nr)); } exp_setname(sql->sa, ne->data, tnme, cnme ); } diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c --- a/sql/server/rel_select.c +++ b/sql/server/rel_select.c @@ -5870,7 +5870,7 @@ rel_joinquery_(sql_query *query, symbol list *outexps = new_exp_list(sql->sa), *exps; node *m; - rnme = number2name(rname, sizeof(rname), ++sql->label); + rnme = sa_strdup(sql->sa, number2name(rname, sizeof(rname), ++sql->label)); for (; n; n = n->next) { char *nm = n->data.sval; sql_exp *cond, *ls, *rs; ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: no_type_bat - merged with default
Changeset: 15c345a6b882 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/15c345a6b882 Modified Files: clients/Tests/exports.stable.out Branch: no_type_bat Log Message: merged with default diffs (12 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 @@ -404,7 +404,7 @@ void RTREEdestroy(BAT *b); bool RTREEexists(BAT *b); bool RTREEexists_bid(bat bid); void RTREEfree(BAT *b); -BUN *RTREEsearch(BAT *b, mbr_t *inMBR, int result_limit); +BUN *RTREEsearch(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); ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: no_type_bat - merged with default
Changeset: 73cdbbcb3a7c for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/73cdbbcb3a7c Modified Files: clients/Tests/exports.stable.out gdk/gdk.h gdk/gdk_batop.c gdk/gdk_tm.c sql/server/rel_optimize_sel.c Branch: no_type_bat Log Message: merged with default diffs (truncated from 486 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 @@ -181,7 +181,6 @@ BAT *BATproject2(BAT *restrict l, BAT *r BAT *BATprojectchain(BAT **bats); gdk_return BATrangejoin(BAT **r1p, BAT **r2p, BAT *l, BAT *rl, BAT *rh, BAT *sl, BAT *sr, bool li, bool hi, bool anti, bool symmetric, BUN estimate) __attribute__((__warn_unused_result__)); gdk_return BATreplace(BAT *b, BAT *p, BAT *n, bool force) __attribute__((__warn_unused_result__)); -gdk_return BATreplacepos(BAT *b, const oid *positions, BAT *n, bool autoincr, bool force) __attribute__((__warn_unused_result__)); void BATrmprop(BAT *b, enum prop_t idx); void BATrmprop_nolock(BAT *b, enum prop_t idx); gdk_return BATrtree(BAT *wkb, BAT *mbr); @@ -401,12 +400,10 @@ ssize_t OIDtoStr(str *dst, size_t *len, 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); -void RTREEdecref(BAT *b); void RTREEdestroy(BAT *b); bool RTREEexists(BAT *b); -bool RTREEexists_bid(bat *bid); +bool RTREEexists_bid(bat bid); void RTREEfree(BAT *b); -void RTREEincref(BAT *b); BUN *RTREEsearch(BAT *b, mbr_t *inMBR, int result_limit); BUN SORTfnd(BAT *b, const void *v); BUN SORTfndfirst(BAT *b, const void *v); @@ -415,7 +412,6 @@ gdk_return STRMPcreate(BAT *b, BAT *s); void STRMPdestroy(BAT *b); BAT *STRMPfilter(BAT *b, BAT *s, const char *q, const bool keep_nils); bool THRhighwater(void); -gdk_return TMsubcommit(BAT *bl) __attribute__((__warn_unused_result__)); 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); diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -357,13 +357,6 @@ gdk_export _Noreturn void GDKfatal(_In_z #include "stream.h" #include "mstring.h" -#ifdef HAVE_RTREE -#ifndef SIZEOF_RTREE_COORD_T -#define SIZEOF_RTREE_COORD_T 4 -#endif -#include -#endif - #undef MIN #undef MAX #define MAX(A,B) ((A)<(B)?(B):(A)) @@ -1314,8 +1307,6 @@ gdk_export gdk_return BATreplace(BAT *b, __attribute__((__warn_unused_result__)); gdk_export gdk_return BATupdate(BAT *b, BAT *p, BAT *n, bool force) __attribute__((__warn_unused_result__)); -gdk_export gdk_return BATreplacepos(BAT *b, const oid *positions, BAT *n, bool autoincr, bool force) - __attribute__((__warn_unused_result__)); gdk_export gdk_return BATupdatepos(BAT *b, const oid *positions, BAT *n, bool autoincr, bool force) __attribute__((__warn_unused_result__)); @@ -1904,21 +1895,12 @@ gdk_export gdk_return BATsetstrimps(BAT /* Rtree structure functions */ #ifdef HAVE_RTREE -//TODO REMOVE -typedef struct mbr_t { - float xmin; - float ymin; - float xmax; - float ymax; - -} mbr_t; - gdk_export bool RTREEexists(BAT *b); -gdk_export bool RTREEexists_bid(bat *bid); +gdk_export bool RTREEexists_bid(bat bid); gdk_export gdk_return BATrtree(BAT *wkb, BAT* mbr); -gdk_export BUN* RTREEsearch(BAT *b, mbr_t *inMBR, int result_limit); -gdk_export void RTREEdecref(BAT *b); -gdk_export void RTREEincref(BAT *b); +/* 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); #endif gdk_export void RTREEdestroy(BAT *b); @@ -2100,8 +2082,6 @@ BUNtoid(BAT *b, BUN p) /* * @+ Transaction Management */ -gdk_export gdk_return TMsubcommit(BAT *bl) - __attribute__((__warn_unused_result__)); gdk_export gdk_return TMsubcommit_list(bat *restrict subcommit, BUN *restrict sizes, int cnt, lng logno) __attribute__((__warn_unused_result__)); diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c --- a/gdk/gdk_batop.c +++ b/gdk/gdk_batop.c @@ -1783,12 +1783,14 @@ BATupdate(BAT *b, BAT *p, BAT *n, bool f return BATappend_or_update(b, p, NULL, n, true, false, force); } +#if 0 /* not used */ /* like BATreplace, but the positions are given by an array of oid values */ gdk_return BATreplacepos(BAT *b, const oid *positions, BAT *n, bool autoincr, bool force) { return BATappend_or_update(b, NULL, positions, n, false, autoincr, force); } +#endif /* like BATreplace, but the positions are given by an array of oid * values, and they may specify locations beyond the end of b */ diff --git a/gdk/gdk_private.h b/gdk/gdk_private.h --- a/gdk/gdk_private.h +++ b/gdk/gdk_private.h @@
MonetDB: no_type_bat - merged with default
Changeset: 64766f88abc0 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/64766f88abc0 Modified Files: clients/Tests/exports.stable.out gdk/gdk_bbp.c sql/common/sql_types.c sql/include/sql_catalog.h sql/server/rel_select.c sql/storage/bat/bat_storage.c sql/storage/objectset.c sql/storage/sql_storage.h sql/storage/store.c Branch: no_type_bat Log Message: merged with default diffs (truncated from 1065 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 @@ -224,6 +224,7 @@ void BBPlock(void); BAT *BBPquickdesc(bat b); int BBPreadBBPline(FILE *fp, unsigned bbpversion, int *lineno, BAT *bn, int *hashash, char *batname, char *filename, char **options); int BBPrelease(bat b); +void BBPrelinquishbats(void); int BBPrename(BAT *b, const char *nme); int BBPretain(bat b); gdk_return BBPsave(BAT *b); diff --git a/documentation/monetdbe/monetdbe_api.rst b/documentation/monetdbe/monetdbe_api.rst --- a/documentation/monetdbe/monetdbe_api.rst +++ b/documentation/monetdbe/monetdbe_api.rst @@ -167,7 +167,7 @@ Miscellaneous Return the internal NULL representation for the specific monetdbe type or NULL when the type is not found/supported. -.. c:function:: const char* monetdbe_get_mapi_port(void) +.. c:function:: const char * monetdbe_get_mapi_port(void) Return the mapi port or NULL if not used. @@ -175,6 +175,10 @@ Miscellaneous Return the MonetDBe version. +.. c:function:: const char * monetdbe_load_extension(monetdbe_database dbhdl, char *module_name) + +Load the module with name, module_name. The lib_module_name.so (or ddl) should be in the applications current working directory. + Caveats and errors -- diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c --- a/gdk/gdk_bbp.c +++ b/gdk/gdk_bbp.c @@ -120,6 +120,7 @@ static MT_Lock BBPnameLock = MT_LOCK_INI static bat BBP_hash[BBP_mask+1]; /* BBP logical name hash buckets */ static MT_Lock GDKcacheLock = MT_LOCK_INITIALIZER(GDKcacheLock); static bat BBP_free; +static uint32_t BBP_nfree; #define BBP_FREE_LOWATER 10 #define BBP_FREE_HIWATER 50 @@ -2003,6 +2004,7 @@ BBPinit(bool allow_hge_upgrade) if (BBP_desc(i)->batCacheid == 0) { BBP_next(i) = BBP_free; BBP_free = i; + BBP_nfree++; } } @@ -2693,6 +2695,7 @@ maybeextend(void) BBP_next(sz) = ++size; } BBP_next(size) = 0; + BBP_nfree += BBP_FREE_LOWATER; return GDK_SUCCEED; } @@ -2731,6 +2734,7 @@ BBPallocbat(int tt) for (int x = 0; x < BBP_FREE_LOWATER && i; x++) { assert(BBP_next(i) == 0 || BBP_next(i) > i); t->nfreebats++; + BBP_nfree--; l = i; i = BBP_next(i); } @@ -2845,6 +2849,7 @@ BBPhandover(struct freebats *t, uint32_t if (n >= t->nfreebats) { bid = t->freebats; t->freebats = 0; + BBP_nfree += t->nfreebats; t->nfreebats = 0; } else { p = >freebats; @@ -2852,6 +2857,7 @@ BBPhandover(struct freebats *t, uint32_t p = _next(*p); bid = *p; *p = 0; + BBP_nfree += n; t->nfreebats -= n; } p = _free; @@ -2934,9 +2940,10 @@ BBPclear(bat i) } void -BBPrelinquish(struct freebats *t) +BBPrelinquishbats(void) { - if (t->nfreebats == 0) + struct freebats *t = MT_thread_getfreebats(); + if (t == NULL || t->nfreebats == 0) return; MT_lock_set(); while (t->nfreebats > 0) { @@ -4659,6 +4666,7 @@ gdk_bbp_reset(void) int i; BBP_free = 0; + BBP_nfree = 0; while (BBPlimit > BBPINIT) { BBPlimit -= BBPINIT; assert(BBPlimit >= 0); @@ -4892,4 +4900,5 @@ BBPprintinfo(void) printf("%d persistent bats using %zu virtual memory (%zu malloced)\n", pn, pvm, pmem); printf("%d transient bats using %zu virtual memory (%zu malloced)\n", tn, tvm, tmem); printf("%d bats are \"hot\" (i.e. currently or recently used)\n", nh); + printf("%"PRIu32" bats are in global free list\n", BBP_nfree); } diff --git a/gdk/gdk_bbp.h b/gdk/gdk_bbp.h --- a/gdk/gdk_bbp.h +++ b/gdk/gdk_bbp.h @@ -92,6 +92,7 @@ gdk_export int BBPrelease(bat b); gdk_export void BBPkeepref(BAT *b) __attribute__((__nonnull__(1))); gdk_export void BBPcold(bat i); +gdk_export void BBPrelinquishbats(void); #ifdef GDKLIBRARY_JSON typedef gdk_return ((*json_storage_conversion)(char **, const char **)); gdk_export gdk_return BBPjson_upgrade(json_storage_conversion); diff
MonetDB: no_type_bat - merged with default
Changeset: 7f39648eece5 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/7f39648eece5 Modified Files: clients/Tests/exports.stable.out monetdb5/mal/mal.c monetdb5/mal/mal_prelude.c sql/server/rel_updates.c sql/server/sql_mvc.c sql/server/sql_mvc.h tools/monetdbe/monetdbe.c Branch: no_type_bat Log Message: merged with default diffs (truncated from 342 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 @@ -1320,6 +1320,7 @@ char *monetdbe_get_autocommit(monetdbe_d char *monetdbe_get_columns(monetdbe_database dbhdl, const char *schema_name, const char *table_name, size_t *column_count, monetdbe_column **columns); const char *monetdbe_get_mapi_port(void); int monetdbe_in_transaction(monetdbe_database dbhdl); +char *monetdbe_load_extension(monetdbe_database dbhdl, const char *file); const void *monetdbe_null(monetdbe_database dbhdl, monetdbe_types t); int monetdbe_open(monetdbe_database *db, char *url, monetdbe_options *opts); char *monetdbe_prepare(monetdbe_database dbhdl, char *query, monetdbe_statement **stmt, monetdbe_result **result); diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c --- a/monetdb5/mal/mal.c +++ b/monetdb5/mal/mal.c @@ -72,6 +72,7 @@ mal_init(char *modules[], bool embedded, */ str err; + mal_startup(); /* check that library that we're linked against is compatible with * the one we were compiled with */ int maj, min, patch; diff --git a/monetdb5/mal/mal_embedded.c b/monetdb5/mal/mal_embedded.c --- a/monetdb5/mal/mal_embedded.c +++ b/monetdb5/mal/mal_embedded.c @@ -56,6 +56,7 @@ malEmbeddedBoot(int workerlimit, int mem if (embeddedinitialized) return MAL_SUCCEED; + mal_startup(); { /* unlock the vault, first see if we can find the file which * holds the secret */ diff --git a/monetdb5/mal/mal_linker.c b/monetdb5/mal/mal_linker.c --- a/monetdb5/mal/mal_linker.c +++ b/monetdb5/mal/mal_linker.c @@ -155,7 +155,7 @@ loadLibrary(const char *filename, int fl is_mod = (!is_monetdb5 && strcmp(filename, "embedded") != 0); if (lastfile == 0 && is_mod) { /* first load reference to local functions */ - str msg = loadLibrary("monetdb5", flag); + str msg = loadLibrary("monetdb5", flag>=0?flag:0); if (msg != MAL_SUCCEED) return msg; } @@ -184,7 +184,9 @@ loadLibrary(const char *filename, int fl if (mod_path == NULL) { int len; - if (is_mod) + if (is_mod && flag < 0) + len = snprintf(nme, FILENAME_MAX, ".%c%s_%s%s", DIR_SEP, SO_PREFIX, s, SO_EXT); + else if (is_mod) len = snprintf(nme, FILENAME_MAX, "%s_%s%s", SO_PREFIX, s, SO_EXT); else len = snprintf(nme, FILENAME_MAX, "%s%s%s", SO_PREFIX, s, SO_EXT); @@ -198,7 +200,7 @@ loadLibrary(const char *filename, int fl handle = dlopen(is_monetdb5 ? NULL : nme, RTLD_NOW | RTLD_GLOBAL); #endif if (!handle) { - if (flag) + if (flag>0) throw(LOADER, "loadLibrary", RUNTIME_FILE_NOT_FOUND ":%s", s); return MAL_SUCCEED; } diff --git a/monetdb5/mal/mal_prelude.c b/monetdb5/mal/mal_prelude.c --- a/monetdb5/mal/mal_prelude.c +++ b/monetdb5/mal/mal_prelude.c @@ -29,7 +29,7 @@ #include "mal_prelude.h" #define MAX_MAL_MODULES 128 -static int mel_modules = 0; +static int mel_modules = 0, mel_modules_loaded = 0; static struct mel_module { const char *name; mel_atom *atoms; @@ -42,6 +42,7 @@ int mal_startup(void) { /* clean up the MAL internal structures before restart */ + mel_modules_loaded = 0; return 0; } @@ -390,7 +391,7 @@ malPrelude(Client c, int listing, int *s (void) listing; /* Add all atom definitions */ - for (i = 0; i < mel_modules; i++) { + for (i = mel_modules_loaded; i < mel_modules; i++) { if (mel_module[i].atoms) { msg = addAtom(mel_module[i].atoms); if (msg) @@ -399,7 +400,7 @@ malPrelude(Client c, int listing, int *s } /* Add the signatures, where we now have access to all atoms */ - for (i = 0; i < mel_modules; i++) { + for (i = mel_modules_loaded; i < mel_modules; i++) { const char *name = putName(mel_module[i].name); if (!malLibraryEnabled(name)) continue; @@ -434,6 +435,7 @@ malPrelude(Client c, int listing, int *s return msg; } } + mel_modules_loaded =
MonetDB: no_type_bat - merged with default
Changeset: 833c074e4e33 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/833c074e4e33 Modified Files: sql/server/rel_dump.c sql/server/rel_rewriter.c Branch: no_type_bat Log Message: merged with default diffs (34 lines): diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c --- a/sql/server/rel_dump.c +++ b/sql/server/rel_dump.c @@ -610,6 +610,13 @@ rel_print_refs(mvc *sql, stream* fout, s switch (rel->op) { case op_basetable: case op_table: + if (rel->op == op_table && rel->l) { + rel_print_refs(sql, fout, rel->l, depth, refs, decorate); + if (rel_is_ref(rel->l) && !find_ref(refs, rel->l)) { + rel_print_rel(sql, fout, rel->l, depth, refs, decorate); + list_append(refs, rel->l); + } + } break; case op_ddl: if (rel->flag == ddl_list || rel->flag == ddl_exception) { diff --git a/sql/server/rel_rewriter.c b/sql/server/rel_rewriter.c --- a/sql/server/rel_rewriter.c +++ b/sql/server/rel_rewriter.c @@ -33,10 +33,10 @@ exps_simplify_exp(visitor *v, list *exps needed = (exp_is_true(e) || exp_is_false(e) || (is_compare(e->type) && e->flag == cmp_or)); } - /* if there's only one expression and it is false, we have to keep it */ - if (list_length(exps) == 1 && exp_is_false(exps->h->data)) - return exps; if (needed) { + /* if there's only one expression and it is false, we have to keep it */ + if (list_length(exps) == 1 && exp_is_false(exps->h->data)) + return exps; list *nexps = sa_list(v->sql->sa); for (node *n=exps->h; n; n = n->next) { sql_exp *e = n->data; ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: no_type_bat - merged with default
Changeset: 92d5b3119299 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/92d5b3119299 Modified Files: sql/server/rel_optimize_sel.c Branch: no_type_bat Log Message: merged with default diffs (34 lines): diff --git a/sql/server/rel_optimize_sel.c b/sql/server/rel_optimize_sel.c --- a/sql/server/rel_optimize_sel.c +++ b/sql/server/rel_optimize_sel.c @@ -2110,15 +2110,15 @@ order_joins(visitor *v, list *rels, list r1[ci] = rels_find_one_rel(rels_a, nr_rels, cje->l); r2[ci] = rels_find_one_rel(rels_a, nr_rels, cje->r); if (r1[ci]) - h[ci] |= 1L<<((r1[ci]-1)%64); + h[ci] |= LL_CONSTANT(1)<<((r1[ci]-1)%64); if (r2[ci]) - h[ci] |= 1L<<((r2[ci]-1)%64); + h[ci] |= LL_CONSTANT(1)<<((r2[ci]-1)%64); if (cje->f) { r3[ci] = rels_find_one_rel(rels_a, nr_rels, cje->f); if (r3[ci] == r2[ci]) r3[ci] = 0; if (r3[ci]) - h[ci] |= 1L<<((r3[ci]-1)%64); + h[ci] |= LL_CONSTANT(1)<<((r3[ci]-1)%64); } } } @@ -2188,9 +2188,9 @@ order_joins(visitor *v, list *rels, list cje = djn->data; if ((h[cje->tmp] & rel_mask) > 0) { - if (rel_mask & (1L<<((r1[cje->tmp]-1)%64))) + if (rel_mask & (LL_CONSTANT(1)<<((r1[cje->tmp]-1)%64))) l = rels_a[r1[cje->tmp]]; - if (rel_mask & (1L<<((r2[cje->tmp]-1)%64))) + if (rel_mask & (LL_CONSTANT(1)<<((r2[cje->tmp]-1)%64))) r = rels_a[r2[cje->tmp]]; } if (!direct) { /* check if atleast one side in n_rels */ ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: no_type_bat - merged with default
Changeset: ce333a3dce58 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/ce333a3dce58 Modified Files: MonetDB.spec gdk/gdk.h gdk/gdk_bat.c gdk/gdk_batop.c gdk/gdk_bbp.c gdk/gdk_tm.c gdk/gdk_utils.c monetdb5/mal/mal_interpreter.c monetdb5/mal/mal_profiler.c monetdb5/mal/mal_resource.c monetdb5/modules/kernel/bat5.c monetdb5/modules/mal/bbp.c sql/backends/monet5/rel_bin.c sql/backends/monet5/sql.c sql/backends/monet5/sql_cat.c sql/server/rel_optimize_sel.c sql/server/rel_select.c sql/server/rel_unnest.c sql/server/sql_mvc.c sql/server/sql_mvc.h sql/server/sql_parser.y sql/storage/bat/bat_storage.c sql/storage/store.c Branch: no_type_bat Log Message: merged with default diffs (truncated from 6146 to 300 lines): diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -807,9 +807,7 @@ do /usr/sbin/semodule -s ${selinuxvariant} -i \ %{_datadir}/selinux/${selinuxvariant}/monetdb.pp &> /dev/null || : done -# use /var/run/monetdb since that's what it says in the monetdb.fc file -# it says that because /run/monetdb for some reason doesn't work -/sbin/restorecon -R %{_localstatedir}/monetdb5 %{_localstatedir}/log/monetdb /var/run/monetdb %{_bindir}/monetdbd %{_bindir}/mserver5 %{_unitdir}/monetdbd.service &> /dev/null || : +/sbin/restorecon -R %{_localstatedir}/monetdb5 %{_localstatedir}/log/monetdb %{_rundir}/monetdb %{_bindir}/monetdbd %{_bindir}/mserver5 %{_unitdir}/monetdbd.service &> /dev/null || : /usr/bin/systemctl try-restart monetdbd.service %postun selinux @@ -838,6 +836,13 @@ fi %setup -q %build +# from Fedora 40, selinux uses /run where before it used /var/run +# the code is now for Fedora 40 but needs a patch for older versions +%if (0%{?fedora} < 40) +sed -i 's;@CMAKE_INSTALL_FULL_RUNSTATEDIR@/monetdb;@CMAKE_INSTALL_FULL_LOCALSTATEDIR@/run/monetdb;' misc/selinux/monetdb.fc.in +sed -i 's/1\.2/1.1/' misc/selinux/monetdb.te +%endif + %cmake3 \ -DCMAKE_INSTALL_RUNSTATEDIR=/run \ -DRELEASE_VERSION=ON \ diff --git a/gdk/ChangeLog b/gdk/ChangeLog --- a/gdk/ChangeLog +++ b/gdk/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog file for GDK # This file is updated with Maddlog +* Tue Mar 26 2024 Sjoerd Mullender +- Made some changes to how BAT descriptors are allocated. They are now + allocated in bulk, meaning fewer malloc/free calls during processing. +- Removed macro BBP_cache and its associated code. Checking whether a + BAT is cached (loaded in memory) can be done by checking the BBPLOADED + bit in the BBP_status value. Getting a pointer to the BAT descriptor + can be done by using BBP_desc. + * Tue Feb 6 2024 Sjoerd Mullender - The SQL transaction ID is no longer saved in the BBP.dir file. diff --git a/gdk/ChangeLog.Dec2023 b/gdk/ChangeLog.Dec2023 --- a/gdk/ChangeLog.Dec2023 +++ b/gdk/ChangeLog.Dec2023 @@ -1,6 +1,12 @@ # ChangeLog file for GDK # This file is updated with Maddlog +* Thu Mar 28 2024 Sjoerd Mullender +- Threads have their own list of free bats. The list was not returned + to the system when a thread exited, meaning that the free bats that + were in the list would not be reused by any thread. This has been + fixed. + * Mon Mar 18 2024 Sjoerd Mullender - Fixed a couple of deadlock situations, one actually observed, one never observed. diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -956,10 +956,9 @@ gdk_export void HEAPincref(Heap *h); * field. */ typedef struct { - BAT *cache; /* if loaded: BAT* handle */ char *logical; /* logical name (may point at bak) */ char bak[16]; /* logical name backup (tmp_%o) */ - BAT *desc; /* the BAT descriptor */ + BAT descr; /* the BAT descriptor */ char *options; /* A string list of options */ #if SIZEOF_VOID_P == 4 char physical[20]; /* dir + basename for storage */ @@ -993,19 +992,18 @@ gdk_export BBPrec *BBP[N_BBPINIT]; /* fast defines without checks; internal use only */ #define BBP_record(i) BBP[(i)>>BBPINITLOG][(i)&(BBPINIT-1)] -#define BBP_cache(i) BBP_record(i).cache #define BBP_logical(i) BBP_record(i).logical #define BBP_bak(i) BBP_record(i).bak #define BBP_next(i)BBP_record(i).next #define BBP_physical(i)BBP_record(i).physical #define BBP_options(i) BBP_record(i).options -#define BBP_desc(i)BBP_record(i).desc +#define BBP_desc(i)(_record(i).descr) #define BBP_refs(i)BBP_record(i).refs #define BBP_lrefs(i) BBP_record(i).lrefs #define BBP_status(i) ((unsigned) ATOMIC_GET(_record(i).status)) #define BBP_pid(i) BBP_record(i).pid #define BATgetId(b)BBP_logical((b)->batCacheid) -#define BBPvalid(i)(BBP_logical(i) != NULL && *BBP_logical(i) != '.') +#define BBPvalid(i)
MonetDB: no_type_bat - merged with default
Changeset: eb85d2d0b45e for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/eb85d2d0b45e Removed Files: monetdb5/optimizer/opt_macro.c Modified Files: MonetDB.spec clients/Tests/MAL-signatures-hge.test clients/Tests/MAL-signatures.test clients/Tests/exports.stable.out clients/mapilib/mapi.c gdk/gdk.h gdk/gdk_atoms.c gdk/gdk_atoms.h gdk/gdk_bat.c gdk/gdk_batop.c gdk/gdk_bbp.c gdk/gdk_calc_convert.c gdk/gdk_tm.c gdk/gdk_utils.c gdk/gdk_value.c monetdb5/mal/mal.c monetdb5/mal/mal.h monetdb5/mal/mal_atom.c monetdb5/mal/mal_builder.c monetdb5/mal/mal_builder.h monetdb5/mal/mal_client.h monetdb5/mal/mal_function.c monetdb5/mal/mal_function.h monetdb5/mal/mal_instruction.c monetdb5/mal/mal_instruction.h monetdb5/mal/mal_interpreter.c monetdb5/mal/mal_interpreter.h monetdb5/mal/mal_listing.c monetdb5/mal/mal_listing.h monetdb5/mal/mal_module.c monetdb5/mal/mal_parser.c monetdb5/mal/mal_prelude.c monetdb5/mal/mal_private.h monetdb5/mal/mal_profiler.c monetdb5/mal/mal_resolve.c monetdb5/mal/mal_resolve.h monetdb5/mal/mal_resource.c monetdb5/mal/mal_runtime.c monetdb5/mal/mal_session.c monetdb5/mal/mal_stack.c monetdb5/mal/mal_type.c monetdb5/mal/mal_type.h monetdb5/mal/mel.h monetdb5/modules/kernel/algebra.c monetdb5/modules/kernel/bat5.c monetdb5/modules/kernel/batmmath.c monetdb5/modules/kernel/batstr.c monetdb5/modules/mal/batcalc.c monetdb5/modules/mal/bbp.c monetdb5/modules/mal/inspect.c monetdb5/modules/mal/iterator.c monetdb5/modules/mal/mal_io.c monetdb5/modules/mal/mal_mapi.c monetdb5/modules/mal/manual.c monetdb5/modules/mal/mat.c monetdb5/modules/mal/mdb.c monetdb5/modules/mal/mkey.c monetdb5/modules/mal/orderidx.c monetdb5/modules/mal/profiler.c monetdb5/modules/mal/remote.c monetdb5/optimizer/opt_coercion.c monetdb5/optimizer/opt_constants.c monetdb5/optimizer/opt_dict.c monetdb5/optimizer/opt_emptybind.c monetdb5/optimizer/opt_evaluate.c monetdb5/optimizer/opt_garbageCollector.c monetdb5/optimizer/opt_generator.c monetdb5/optimizer/opt_inline.c monetdb5/optimizer/opt_mergetable.c monetdb5/optimizer/opt_multiplex.c monetdb5/optimizer/opt_projectionpath.c monetdb5/optimizer/opt_pushselect.c monetdb5/optimizer/opt_remap.c monetdb5/optimizer/opt_remoteQueries.c monetdb5/optimizer/opt_support.c sql/backends/monet5/CMakeLists.txt sql/backends/monet5/mal_backend.h sql/backends/monet5/rel_bin.c sql/backends/monet5/sql.c sql/backends/monet5/sql.h sql/backends/monet5/sql_cast_impl_int.h sql/backends/monet5/sql_cat.c sql/backends/monet5/sql_execute.c sql/backends/monet5/sql_gencode.c sql/backends/monet5/sql_result.c sql/backends/monet5/sql_scenario.c sql/backends/monet5/sql_statement.c sql/backends/monet5/sql_statement.h sql/backends/monet5/sql_subquery.c sql/backends/monet5/sql_upgrades.c sql/backends/monet5/vaults/csv/csv.c sql/backends/monet5/vaults/fits/fits.c sql/backends/monet5/vaults/netcdf/netcdf.c sql/backends/monet5/vaults/shp/shp.c sql/common/CMakeLists.txt sql/common/sql_changeset.c sql/common/sql_hash.c sql/common/sql_list.c sql/common/sql_stack.c sql/common/sql_string.c sql/common/sql_string.h sql/common/sql_types.c sql/common/sql_types.h sql/include/CMakeLists.txt sql/include/sql_catalog.h sql/include/sql_hash.h sql/include/sql_list.h sql/include/sql_mem.h sql/include/sql_stack.h sql/server/rel_basetable.c sql/server/rel_dump.c sql/server/rel_exp.c sql/server/rel_exp.h sql/server/rel_optimize_others.c sql/server/rel_optimize_sel.c sql/server/rel_planner.c sql/server/rel_prop.c sql/server/rel_prop.h sql/server/rel_propagate.c sql/server/rel_psm.c sql/server/rel_psm.h sql/server/rel_rel.c sql/server/rel_rel.h sql/server/rel_remote.c sql/server/rel_remote.h sql/server/rel_rewriter.c sql/server/rel_rewriter.h sql/server/rel_schema.c sql/server/rel_schema.h sql/server/rel_select.c sql/server/rel_sequence.c sql/server/rel_statistics.c sql/server/rel_statistics.h sql/server/rel_statistics_functions.c sql/server/rel_unnest.c
MonetDB: no_type_bat - merged with default
Changeset: 8a457c94e289 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/8a457c94e289 Modified Files: MonetDB.spec clients/Tests/MAL-signatures-hge.test clients/Tests/MAL-signatures.test clients/Tests/exports.stable.out gdk/gdk.h gdk/gdk_bat.c gdk/gdk_batop.c gdk/gdk_bbp.c monetdb5/mal/mal_interpreter.c monetdb5/mal/mal_profiler.c monetdb5/modules/kernel/algebra.c monetdb5/modules/mal/mal_io.c sql/backends/monet5/sql.c sql/backends/monet5/sql_gencode.c sql/backends/monet5/sql_result.c sql/backends/monet5/sql_statement.c sql/backends/monet5/sql_upgrades.c sql/server/rel_select.c sql/server/sql_partition.c sql/storage/bat/bat_storage.c sql/storage/bat/bat_table.c Branch: no_type_bat Log Message: merged with default diffs (truncated from 5442 to 300 lines): diff --git a/ChangeLog.Dec2023 b/ChangeLog.Dec2023 --- a/ChangeLog.Dec2023 +++ b/ChangeLog.Dec2023 @@ -1,6 +1,10 @@ # ChangeLog file for devel # This file is updated with Maddlog +* Fri Dec 1 2023 Sjoerd Mullender +- All binary packages are now signed with a new key with key fingerprint + DBCE 5625 94D7 1959 7B54 CE85 3F1A D47F 5521 A603. + * Mon Oct 30 2023 Sjoerd Mullender - The ranges of merge partitions are now pushed down into the low level GDK operations, giving them a handle to sometimes execute more diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -96,7 +96,11 @@ Source: https://www.monetdb.org/download # that doesn't exist and we need systemd, so instead we just require # the macro file that contains the definitions. # We need checkpolicy and selinux-policy-devel for the SELinux policy. -BuildRequires: /usr/lib/rpm/macros.d/macros.systemd +%if 0%{?rhel} != 7 +BuildRequires: systemd-rpm-macros +%else +BuildRequires: systemd +%endif BuildRequires: checkpolicy BuildRequires: selinux-policy-devel BuildRequires: hardlink @@ -220,6 +224,8 @@ accelerators. It also has an SQL front This package contains a shared library (libstream) which is needed by various other components. +%ldconfig_scriptlets stream + %files stream %license COPYING %defattr(-,root,root) @@ -250,9 +256,35 @@ library. %{_includedir}/monetdb/stream_socket.h %{_libdir}/pkgconfig/monetdb-stream.pc +%package client-lib +Summary: MonetDB - Monet Database Management System Client Programs +Group: Applications/Databases +%if (0%{?fedora} >= 22) +Recommends: %{name}-SQL-server5%{?_isa} = %{version}-%{release} +Recommends: MonetDB5-server%{?_isa} = %{version}-%{release} +%endif + +%description client-lib +MonetDB is a database management system that is developed from a +main-memory perspective with use of a fully decomposed storage model, +automatic index management, extensibility of data types and search +accelerators. It also has an SQL front end. + +This package contains libmapi.so, the main client library used by both +mclient, msqldump and by the ODBC driver. If you want to use MonetDB, +you will very likely need this package. + +%ldconfig_scriptlets client-lib + +%files client-lib +%license COPYING +%defattr(-,root,root) +%{_libdir}/libmapi.so.* + %package client Summary: MonetDB - Monet Database Management System Client Programs Group: Applications/Databases +Requires: %{name}-client-lib%{?_isa} = %{version}-%{release} %if (0%{?fedora} >= 22) Recommends: %{name}-SQL-server5%{?_isa} = %{version}-%{release} Recommends: MonetDB5-server%{?_isa} = %{version}-%{release} @@ -274,14 +306,13 @@ MonetDB, you will very likely need this %defattr(-,root,root) %{_bindir}/mclient %{_bindir}/msqldump -%{_libdir}/libmapi.so.* -%doc %{_mandir}/man1/mclient.1.gz -%doc %{_mandir}/man1/msqldump.1.gz +%{_mandir}/man1/mclient.1* +%{_mandir}/man1/msqldump.1* %package client-devel Summary: MonetDB - Monet Database Management System Client Programs Group: Applications/Databases -Requires: %{name}-client%{?_isa} = %{version}-%{release} +Requires: %{name}-client-lib%{?_isa} = %{version}-%{release} Requires: %{name}-stream-devel%{?_isa} = %{version}-%{release} %description client-devel @@ -303,7 +334,7 @@ This package contains the files needed t %package client-odbc Summary: MonetDB ODBC driver Group: Applications/Databases -Requires: %{name}-client%{?_isa} = %{version}-%{release} +Requires: %{name}-client-lib%{?_isa} = %{version}-%{release} Requires(post): %{_bindir}/odbcinst Requires(postun): %{_bindir}/odbcinst @@ -477,11 +508,40 @@ format. %{_libdir}/monetdb5/lib_fits.so %endif +%package -n MonetDB5-libs +Summary: MonetDB - Monet Database Main Libraries +Group: Applications/Databases + +%description -n MonetDB5-libs +MonetDB is a database management system that is developed from a +main-memory perspective with use of a fully decomposed storage model, +automatic index management, extensibility of data types and search +accelerators. It
MonetDB: no_type_bat - merged with default
Changeset: 592651b9c139 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/592651b9c139 Branch: no_type_bat Log Message: merged with default diffs (truncated from 3932 to 300 lines): diff --git a/debian/control b/debian/control --- a/debian/control +++ b/debian/control @@ -1,10 +1,10 @@ Source: monetdb -Section: misc +Section: database Priority: optional Maintainer: MonetDB BV Homepage: https://www.monetdb.org/ Vcs-Browser: https://dev.monetdb.org/hg/MonetDB/ -Vcs-Hg: https://dev.monetdb.org/hg/MonetDB/ +Vcs-Hg: https://dev.monetdb.org/hg/MonetDB/ -b default Build-Depends: debhelper (>= 12), cmake (>= 3.12), bison, libbz2-dev, libcurl4-gnutls-dev, libgeos-dev (>= 3.10.0), libpcre3-dev, libreadline-dev, liblzma-dev, liblz4-dev (>= 1.8.0), diff --git a/geom/ChangeLog.Dec2023 b/geom/ChangeLog.Dec2023 --- a/geom/ChangeLog.Dec2023 +++ b/geom/ChangeLog.Dec2023 @@ -1,3 +1,23 @@ # ChangeLog file for geom # This file is updated with Maddlog +* Thu Nov 23 2023 Sjoerd Mullender +- Because recent changes to the geom module require the use of geos + 3.10, the geom module is no longer available in older versions of + Debian and Ubuntu. Specifically, Debian 10 and 11 (buster and + bullseye) and Ubuntu 20.04 (Focal Fossa) are affected. There is no + automatic upgrade available for databases that were geom enabled to + databases that are not, so dump + restore is the only option (if no + geom types are actually used). + +* Thu Nov 23 2023 stefanos mavros +- Implements Rtree index in GDK layer based on librtree. The index is + used in the implementation of the filter functions ST_Intersects and + ST_Dwithin for geometric points. +- Improves shapefile support by replacing functions SHPattach, + SHPpartialimport, ahd SHPimport with SHPload. +- Introduces functions ST_DistanceGeographic, ST_DwithinGeographic, + ST_IntersectsGeographic, ST_CoversGeographic, ST_Collects with geodesic + semantics. ST_Transform can be used to convert geodetic into geographic + data using libPROJ. + diff --git a/sql/ChangeLog.Dec2023 b/sql/ChangeLog.Dec2023 --- a/sql/ChangeLog.Dec2023 +++ b/sql/ChangeLog.Dec2023 @@ -14,6 +14,8 @@ information_schema.routines information_schema.parameters information_schema.sequences + For details see + https://www.monetdb.org/documentation/user-guide/sql-catalog/information_schema/ Most views have been extended (after the standard columns) with MonetDB specific information columns such as schema_id, table_id, column_id, etc. diff --git a/sql/backends/monet5/sql_upgrades.c b/sql/backends/monet5/sql_upgrades.c --- a/sql/backends/monet5/sql_upgrades.c +++ b/sql/backends/monet5/sql_upgrades.c @@ -6044,6 +6044,93 @@ sql_update_dec2023(Client c, mvc *sql, s output = NULL; } + /* 52_describe.sql New function sys.sql_datatype(mtype varchar(999), digits integer, tscale integer, nameonly boolean, shortname boolean) */ + sql_allocator *old_sa = sql->sa; + if ((sql->sa = sa_create(sql->pa)) != NULL) { + list *l; + if ((l = sa_list(sql->sa)) != NULL) { + sql_subtype t1, t2; + sql_find_subtype(, "int", 0, 0); + sql_find_subtype(, "boolean", 0, 0); + list_append(l, ); + list_append(l, ); + list_append(l, ); + list_append(l, ); + list_append(l, ); + if (!sql_bind_func_(sql, s->base.name, "sql_datatype", l, F_FUNC, true)) { + const char *cmds = + "CREATE FUNCTION sys.sql_datatype(mtype varchar(999), digits integer, tscale integer, nameonly boolean, shortname boolean)\n" + " RETURNS varchar(1024)\n" + "BEGIN\n" + " RETURN\n" + "CASE mtype\n" + "WHEN 'char' THEN sys.ifthenelse(nameonly OR digits <= 1, sys.ifthenelse(shortname, 'CHAR', 'CHARACTER'), sys.ifthenelse(shortname, 'CHAR(', 'CHARACTER(') || digits || ')')\n" + "WHEN 'varchar' THEN sys.ifthenelse(nameonly OR digits = 0, sys.ifthenelse(shortname, 'VARCHAR', 'CHARACTER VARYING'), sys.ifthenelse(shortname, 'VARCHAR(', 'CHARACTER VARYING(') || digits || ')')\n" + "WHEN 'clob' THEN sys.ifthenelse(nameonly OR digits = 0, sys.ifthenelse(shortname, 'CLOB', 'CHARACTER LARGE OBJECT'), sys.ifthenelse(shortname, 'CLOB(', 'CHARACTER LARGE OBJECT(') || digits || ')')\n" + "WHEN 'blob' THEN sys.ifthenelse(nameonly OR digits = 0, sys.ifthenelse(shortname, 'BLOB', 'BINARY LARGE OBJECT'), sys.ifthenelse(shortname, 'BLOB(', 'BINARY LARGE OBJECT(') || digits || ')')\n" + "WHEN 'int' THEN 'INTEGER'\n" +
MonetDB: no_type_bat - merged with default
Changeset: 82ec1059fb20 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/82ec1059fb20 Modified Files: clients/Tests/MAL-signatures-hge.test clients/Tests/MAL-signatures.test clients/Tests/exports.stable.out gdk/gdk.h gdk/gdk_bat.c gdk/gdk_batop.c gdk/gdk_bbp.c monetdb5/mal/mal.h monetdb5/mal/mal_instruction.c monetdb5/mal/mal_listing.c monetdb5/mal/mal_listing.h monetdb5/mal/mal_session.c monetdb5/modules/kernel/bat5.c monetdb5/modules/mal/bbp.c monetdb5/modules/mal/mdb.c sql/backends/monet5/sql_gencode.c Branch: no_type_bat Log Message: merged with default diffs (truncated from 2368 to 300 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -817,3 +817,4 @@ e6eb06773c17035954ac5d001cfe1f09ff3425cc 5683fd900f28d65ad7c98d1ed1efd992023a7fa4 Jun2023_15 c5b17681b55e6ca155db28be59913699e561502a Dec2023_root c9e6096e7519636a4e840c7a0c2e27cccb7dc0fe Jun2023_17 +c9e6096e7519636a4e840c7a0c2e27cccb7dc0fe Jun2023_SP3_release diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -490,8 +490,6 @@ Provides: MonetDB5-server-hugeint%{?_isa Recommends: %{name}-SQL-server5%{?_isa} = %{version}-%{release} Suggests: %{name}-client%{?_isa} = %{version}-%{release} %endif -# versions up to 1.0.5 don't accept the queryid field in the result set -Conflicts: python-pymonetdb < 1.0.6 Requires(pre): systemd %description -n MonetDB5-server @@ -700,7 +698,7 @@ package. You probably don't need this, Summary: MonetDB - Monet Database Management System Group: Applications/Databases Requires: %{name}-client-tests = %{version}-%{release} -Requires: python3dist(pymonetdb) >= 1.0.6 +Requires: python3dist(pymonetdb) BuildArch: noarch %description testing-python diff --git a/clients/Tests/MAL-signatures.test b/clients/Tests/MAL-signatures.test --- a/clients/Tests/MAL-signatures.test +++ b/clients/Tests/MAL-signatures.test @@ -3219,11 +3219,6 @@ command bat.getName(X_0:bat[:any_1]):str BKCgetBBPname; Gives back the logical name of a BAT. bat -getRole -command bat.getRole(X_0:bat[:any_1]):str -BKCgetRole; -Returns the rolename of the head column of a BAT. -bat getSequenceBase command bat.getSequenceBase(X_0:bat[:any_1]):oid BKCgetSequenceBase; @@ -3464,11 +3459,6 @@ command bat.setAccess(X_0:bat[:any_1], X BKCsetAccess; Try to change the update access privileges @to this BAT. Mode:@r[ead-only] - allow only read access.@a[append-only] - allow reads and update.@w[riteable] - allow all operations.@BATs are updatable by default. On making a BAT read-only, @all subsequent updates fail with an error message.@Returns the BAT itself. bat -setColumn -command bat.setColumn(X_0:bat[:any_1], X_1:str):void -BKCsetColumn; -Give a logical name to the tail column of a BAT. -bat setHash command bat.setHash(X_0:bat[:any_1]):bit BKCsetHash; 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 @@ -187,7 +187,6 @@ gdk_return BATreplace(BAT *b, BAT *p, BA gdk_return BATreplacepos(BAT *b, const oid *positions, BAT *n, bool autoincr, bool force) __attribute__((__warn_unused_result__)); void BATrmprop(BAT *b, enum prop_t idx); void BATrmprop_nolock(BAT *b, enum prop_t idx); -gdk_return BATroles(BAT *b, const char *tnme); gdk_return BATrtree(BAT *wkb, BAT *mbr); BAT *BATsample(BAT *b, BUN n); BAT *BATsample_with_seed(BAT *b, BUN n, uint64_t seed); @@ -570,7 +569,7 @@ void *mdlopen(const char *library, int m const char *mercurial_revision(void) __attribute__((__const__)); int mo_add_option(opt **Set, int setlen, opt_kind kind, const char *name, const char *value); int mo_builtin_settings(opt **Set); -char *mo_find_option(opt *set, int setlen, const char *name); +const char *mo_find_option(opt *set, int setlen, const char *name); void mo_free_options(opt *set, int setlen); void mo_print_options(opt *set, int setlen); int mo_system_config(opt **Set, int setlen); @@ -720,7 +719,7 @@ const char *mcrypt_getHashAlgorithms(voi char *mcrypt_hashPassword(const char *algo, const char *password, const char *challenge); int mo_add_option(opt **Set, int setlen, opt_kind kind, const char *name, const char *value); int mo_builtin_settings(opt **Set); -char *mo_find_option(opt *set, int setlen, const char *name); +const char *mo_find_option(opt *set, int setlen, const char *name); void mo_free_options(opt *set, int setlen); void mo_print_options(opt *set, int setlen); int mo_system_config(opt **Set, int setlen); @@ -810,7 +809,6 @@ int UTF8_strwidth(const char *restrict s void addMalException(MalBlkPtr mb, str msg); str addOptimizerPipe(Client cntxt, MalBlkPtr mb, const char *name); str addPipeDefinition(Client cntxt, const char *name, const char *pipe); -void addtoMalBlkHistory(MalBlkPtr mb); const char *affectedRowsRef;
MonetDB: no_type_bat - merged with default
Changeset: 6f839fbeb93c for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/6f839fbeb93c Modified Files: gdk/gdk_bat.c monetdb5/mal/mal_listing.c monetdb5/mal/mal_private.h monetdb5/modules/kernel/algebra.c monetdb5/modules/mal/mal_mapi.c Branch: no_type_bat Log Message: merged with default diffs (truncated from 2582 to 300 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -816,3 +816,4 @@ 6f88424ebfd9d82c072cf21d89070e04321983da e6eb06773c17035954ac5d001cfe1f09ff3425cc Jun2023_13 5683fd900f28d65ad7c98d1ed1efd992023a7fa4 Jun2023_15 c5b17681b55e6ca155db28be59913699e561502a Dec2023_root +c9e6096e7519636a4e840c7a0c2e27cccb7dc0fe Jun2023_17 diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -867,6 +867,14 @@ fi %endif %changelog +* Thu Nov 16 2023 Sjoerd Mullender - 11.47.17-20231116 +- Rebuilt. + +* Thu Nov 16 2023 Sjoerd Mullender - 11.47.17-20231116 +- gdk: Fixed a regression where after a while the write-ahead log files + weren't being rotated, meaning from some point onwards, the newest + file just kept on growing. + * Thu Nov 09 2023 Sjoerd Mullender - 11.47.15-20231109 - Rebuilt. - GH#7410: SIGSEGV cause database corruption diff --git a/clients/mapilib/connect.c b/clients/mapilib/connect.c --- a/clients/mapilib/connect.c +++ b/clients/mapilib/connect.c @@ -111,7 +111,9 @@ scan_sockets(Mapi mid) errmsg = allocated_errmsg; } if (errmsg) { - return mapi_setError(mid, errmsg, __func__, MERROR); + MapiMsg err = mapi_setError(mid, errmsg, __func__, MERROR); + free(allocated_errmsg); + return err; } return establish_connection(mid); } @@ -697,11 +699,13 @@ mapi_handshake(Mapi mid) ) { mapi_close_handle(hdl); close_connection(mid); - return mapi_printError( + MapiMsg err = mapi_printError( mid, __func__, MERROR, "%s: %s", error_message ? error_message : "invalid redirect", red); + free(error_message); + return err; } if (strncmp("mapi:merovingian", red, 16) == 0) { diff --git a/clients/mapilib/connect_openssl.c b/clients/mapilib/connect_openssl.c --- a/clients/mapilib/connect_openssl.c +++ b/clients/mapilib/connect_openssl.c @@ -342,21 +342,25 @@ wrap_tls(Mapi mid, SOCKET sock) BIO_free_all(bio); // drops first ref BIO_free_all(bio); // drops second ref free(hostcolonport); - return croak_openssl(mid, __func__, "openssl_rstream: %s", mnstr_peek_error(rstream)); + msg = croak_openssl(mid, __func__, "openssl_rstream: %s", mnstr_peek_error(rstream)); + close_stream(rstream); + return msg; } // On error: free 'bio' and close 'rstream'. stream *wstream = openssl_wstream(hostcolonport ? hostcolonport : "ssl wstream", bio); free(hostcolonport); if (wstream == NULL || mnstr_errnr(wstream) != MNSTR_NO__ERROR) { BIO_free_all(bio); - mnstr_close(rstream); - return croak_openssl(mid, __func__, "openssl_wstream: %s", mnstr_peek_error(wstream)); + close_stream(rstream); + msg = croak_openssl(mid, __func__, "openssl_wstream: %s", mnstr_peek_error(wstream)); + close_stream(wstream); + return msg; } // On error: free 'rstream' and 'wstream'. msg = mapi_wrap_streams(mid, rstream, wstream); if (msg != MOK) { - mnstr_close(rstream); - mnstr_close(wstream); + close_stream(rstream); + close_stream(wstream); return msg; } // 'rstream' and 'wstream' are part of 'mid' now. diff --git a/clients/mapilib/connect_unix.c b/clients/mapilib/connect_unix.c --- a/clients/mapilib/connect_unix.c +++ b/clients/mapilib/connect_unix.c @@ -70,6 +70,7 @@ scan_unix_sockets(Mapi mid) candidates[ncandidates].port = port; candidates[ncandidates++].priority = st.st_uid == me ? 0 : 1; } + closedir(dir); } mapi_log_record(mid, "CONN", "Found %d Unix domain sockets", ncandidates); @@ -180,5 +181,3 @@ connect_socket_unix(Mapi mid) return wrap_socket(mid, s); } - - diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c --- a/clients/mapilib/mapi.c +++ b/clients/mapilib/mapi.c @@ -1847,7 +1847,7 @@ set_uri(Mapi mid) const char *host =
MonetDB: no_type_bat - merged with default
Changeset: 627199b5968f for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/627199b5968f Modified Files: clients/Tests/exports.stable.out gdk/gdk.h gdk/gdk_atoms.h gdk/gdk_bbp.c monetdb5/mal/mal_instruction.c sql/backends/monet5/sql_scenario.c sql/storage/sql_storage.h Branch: no_type_bat Log Message: merged with default diffs (truncated from 1043 to 300 lines): diff --git a/.bumpversion.cfg b/.bumpversion.cfg --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 11.48.0 +current_version = 11.50.0 commit = False tag = False diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -815,3 +815,4 @@ 6f88424ebfd9d82c072cf21d89070e04321983da 6f88424ebfd9d82c072cf21d89070e04321983da Jun2023_SP2_release e6eb06773c17035954ac5d001cfe1f09ff3425cc Jun2023_13 5683fd900f28d65ad7c98d1ed1efd992023a7fa4 Jun2023_15 +c5b17681b55e6ca155db28be59913699e561502a Dec2023_root diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,20 +1,3 @@ # ChangeLog file for devel # This file is updated with Maddlog -* Mon Oct 30 2023 Sjoerd Mullender -- The ranges of merge partitions are now pushed down into the low - level GDK operations, giving them a handle to sometimes execute more - efficiently. - -* Thu Jul 27 2023 Niels Nes -- Removed the PYTHON MAP external language option, as after a fork the - synchronization primitives could be in any state, leading to deadlocks. - During the upgrade function definitions will fallback to the normal - PYTHON language option. - -* Mon Jul 17 2023 Panagiotis Koutsourakis -- Implemented direct masking for strimp construction. The strimps - datastructure now keeps an array of 65K 64-bit integers that is zero - everywhere except at the indexes that correspond to header pairs. The - entry for the nth pair in order has the nth bit of the bitstring - on. These can be used to quickly construct bitstrings. diff --git a/ChangeLog b/ChangeLog.Dec2023 copy from ChangeLog copy to ChangeLog.Dec2023 diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -7,7 +7,7 @@ # Copyright 1997 - July 2008 CWI, August 2008 - 2023 MonetDB B.V. %global name MonetDB -%global version 11.48.0 +%global version 11.50.0 %{!?buildno: %global buildno %(date +%Y%m%d)} # Use bcond_with to add a --with option; i.e., "without" is default. diff --git a/clients/ChangeLog b/clients/ChangeLog.Dec2023 copy from clients/ChangeLog copy to clients/ChangeLog.Dec2023 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,7 +3,7 @@ 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); +char *ATOMformat(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); @@ -310,6 +310,7 @@ gdk_return GDKmunmap(void *addr, int mod int GDKnr_threads; void GDKprepareExit(void); void GDKprintinfo(void); +void GDKprintinforegister(void (*func)(void)); void GDKqsort(void *restrict h, void *restrict t, const void *restrict base, size_t n, int hs, int ts, int tpe, bool reverse, bool nilslast); void *GDKrealloc(void *pold, size_t size) __attribute__((__alloc_size__(2))) __attribute__((__warn_unused_result__)); gdk_return GDKrebuild_segment_tree(oid ncount, oid data_size, BAT *st, void **segment_tree, oid **levels_offset, oid *nlevels); @@ -423,7 +424,7 @@ int VALcmp(const ValRecord *p, const Val void *VALconvert(int typ, ValPtr t); ValPtr VALcopy(ValPtr dst, const ValRecord *src); void VALempty(ValPtr v); -char *VALformat(const ValRecord *res); +char *VALformat(const ValRecord *res) __attribute__((__warn_unused_result__)); void *VALget(ValPtr v); ValPtr VALinit(ValPtr d, int tpe, const void *s); bool VALisnil(const ValRecord *v); @@ -558,6 +559,7 @@ gdk_return log_delta(logger *lg, BAT *ui void log_destroy(logger *lg); log_bid log_find_bat(logger *lg, log_id id); gdk_return log_flush(logger *lg, ulng saved_id); +void log_printinfo(logger *lg); int log_sequence(logger *lg, int seq, lng *id); gdk_return log_tend(logger *lg); gdk_return log_tflush(logger *lg, ulng log_file_id, ulng commit_ts); @@ -873,8 +875,8 @@ char *concatErrors(char *err1, const cha const char *connectRef; const char *containsRef; str convertConstant(malType type, ValPtr vr); -InstrPtr copyInstruction(InstrPtr p); -InstrPtr copyInstructionArgs(InstrPtr p, int args); +InstrPtr copyInstruction(const InstrRecord *p); +InstrPtr copyInstructionArgs(const InstrRecord *p, int args); MalBlkPtr copyMalBlk(MalBlkPtr mb); const char *copy_fromRef; const char
MonetDB: no_type_bat - merged with default
Changeset: 1f0ae05c8581 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/1f0ae05c8581 Branch: no_type_bat Log Message: merged with default diffs (53 lines): diff --git a/sql/test/BugTracker-2023/Tests/union-query-7401.test b/sql/test/BugTracker-2023/Tests/union-query-7401.test --- a/sql/test/BugTracker-2023/Tests/union-query-7401.test +++ b/sql/test/BugTracker-2023/Tests/union-query-7401.test @@ -15,31 +15,31 @@ 1 20 2 -query II rowsort +query II rowsort gb-over-bt select a as a, b as b from t7401 UNION select b as a, a as b from t7401 1 10 +10 +1 2 20 -10 -1 20 2 -query II rowsort +query II rowsort gb-over-bt select a as a, b as b from t7401 UNION ALL select b as a, a as b from t7401 1 10 +10 +1 2 20 -10 -1 20 2 diff --git a/sql/test/prepare/Tests/limit_in_prepare.Bug-2552.stable.out b/sql/test/prepare/Tests/limit_in_prepare.Bug-2552.stable.out --- a/sql/test/prepare/Tests/limit_in_prepare.Bug-2552.stable.out +++ b/sql/test/prepare/Tests/limit_in_prepare.Bug-2552.stable.out @@ -45,7 +45,7 @@ stdout of test 'limit_in_prepare.Bug-255 [ "int", 32, 0, "", "rr", "id"] [ "bigint",64, 0, NULL, NULL, NULL] #exec 5 (1); -% sys.rr # table_name +% .rr # table_name % id # name % int # type % 1 # length ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: no_type_bat - merged with default
Changeset: d9f74d6e37de for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/d9f74d6e37de Modified Files: clients/Tests/exports.stable.out sql/backends/monet5/sql_gencode.c Branch: no_type_bat Log Message: merged with default diffs (truncated from 12953 to 300 lines): diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -16,51 +16,120 @@ jobs: strategy: fail-fast: false # don't stop other jobs matrix: -branch: [ master ] -os: [ ubuntu-latest, macos-latest ] +os: [ ubuntu-latest, macos-latest, windows-latest ] +c_compiler: [ gcc, clang, cl ] +include: + - os: windows-latest +c_compiler: cl + - os: macos-latest +c_compiler: clang + - os: macos-latest +c_compiler: gcc-12 + - os: ubuntu-latest +c_compiler: gcc + - os: ubuntu-latest +c_compiler: clang +exclude: + - os: windows-latest +c_compiler: gcc + - os: windows-latest +c_compiler: clang + - os: macos-latest +c_compiler: cl + - os: macos-latest +c_compiler: gcc + - os: ubuntu-latest +c_compiler: cl runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v3 with: - ref: ${{ matrix.branch }} + ref: ${{ github.ref }} + + - name: install pymonetdb cryptography +run: pip3 install pymonetdb cryptography - name: make MonetDB on linux run: | mkdir build cd build - cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/${{ matrix.branch }} -DPY3INTEGRATION=OFF -DCMAKE_BUILD_TYPE=Release -DASSERT=OFF -DRINTEGRATION=OFF \ + cmake .. \ +-DCMAKE_INSTALL_PREFIX=$HOME/MDB \ +-DPY3INTEGRATION=OFF \ +-DRINTEGRATION=OFF \ +-DCMAKE_BUILD_TYPE=Release \ +-DASSERT=OFF \ +-DCMAKE_C_COMPILER=${{ matrix.c_compiler }} \ -DCMAKE_SUMMARY=ON make install -j3 if: runner.os == 'Linux' - - -name: brew packages + + - name: brew packages run: brew install bison if: runner.os == 'macOS' + - name: make MonetDB on macos run: | mkdir build cd build - cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/${{ matrix.branch }} -DPY3INTEGRATION=OFF -DCMAKE_BUILD_TYPE=Release -DASSERT=OFF -DRINTEGRATION=OFF \ --DBISON_EXECUTABLE=/usr/local/opt/bison/bin/bison -DCMAKE_SUMMARY=ON + cmake .. \ +-DCMAKE_INSTALL_PREFIX=$HOME/MDB \ +-DPY3INTEGRATION=OFF \ +-DRINTEGRATION=OFF \ +-DCMAKE_BUILD_TYPE=Release \ +-DASSERT=OFF \ +-DCMAKE_C_COMPILER=${{ matrix.c_compiler }} \ +-DBISON_EXECUTABLE=/usr/local/opt/bison/bin/bison \ +-DCMAKE_SUMMARY=ON make install -j3 if: runner.os == 'macOS' + + - name: choco packages +run: | + choco install winflexbison3 + vcpkg install libiconv bzip2 libxml2 pcre zlib getopt +if: runner.os == 'Windows' + + - name: make MonetDB on Windows +shell: pwsh +run: | + mkdir build + cd build + cmake .. -DCMAKE_INSTALL_PREFIX=C:\MDB -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DPY3INTEGRATION=OFF -DRINTEGRATION=OFF -DCMAKE_BUILD_TYPE=Release -DASSERT=OFF -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DCMAKE_SUMMARY=ON + cmake --build . --target install +if: runner.os == 'Windows' + - name: ctest run: | cd build - cmake --build . --target test - - name: install pymonetdb -run: pip3 install pymonetdb - - name: which python -run: - head -n 1 $HOME/${{ matrix.branch }}/bin/Mtest.py + cmake --build . --target ${{ runner.os == 'Windows' && 'RUN_TESTS' || 'test' }} +if: runner.os != 'Windows' + - name: mtest run: | - #cd build - #cmake --build . --target mtest - PATH=$HOME/${{ matrix.branch }}/bin:$PATH $HOME/${{ matrix.branch }}/bin/Mtest.py -r --debug=0 --ci --no-html + PATH=$HOME/MDB/bin:$PATH $HOME/MDB/bin/Mtest.py -r --debug=0 --ci --no-html --TSTTRGBASE=. +if: runner.os != 'Windows' + + - name: ctest +shell: pwsh +run: | + $env:PATH = 'C:\MDB\lib;C:\MDB\lib\monetdb5;C:\MDB\bin;C:\vcpkg\installed\x64-windows\bin;C:\vcpkg\installed\x64-windows\debug\bin;' + $env:PATH + cd build + cmake --build . --target ${{ runner.os == 'Windows' && 'RUN_TESTS' || 'test' }} +if: runner.os == 'Windows' + + - name: mtest +shell: pwsh
MonetDB: no_type_bat - merged with default
Changeset: b2126d0be2c7 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/b2126d0be2c7 Branch: no_type_bat Log Message: merged with default ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: no_type_bat - merged with default
Changeset: fc00ecc1e42f for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/fc00ecc1e42f Modified Files: gdk/gdk.h monetdb5/mal/mal_runtime.c monetdb5/modules/mal/bbp.c monetdb5/modules/mal/mal_mapi.c monetdb5/modules/mal/remote.c monetdb5/optimizer/opt_mergetable.c monetdb5/optimizer/opt_remap.c sql/backends/monet5/sql.c Branch: no_type_bat Log Message: merged with default diffs (truncated from 877 to 300 lines): diff --git a/clients/Tests/MAL-signatures-hge.test b/clients/Tests/MAL-signatures-hge.test --- a/clients/Tests/MAL-signatures-hge.test +++ b/clients/Tests/MAL-signatures-hge.test @@ -30330,11 +30330,6 @@ nil_2time_timestamp; cast to timestamp and check for overflow batcalc timestamp -pattern batcalc.timestamp(X_0:bat[:oid], X_1:int, X_2:bat[:BAT]):bat[:timestamp] -nil_2time_timestamp; -cast to timestamp and check for overflow -batcalc -timestamp pattern batcalc.timestamp(X_0:bat[:timestamp], X_1:bat[:oid], X_2:int):bat[:timestamp] timestamp_2time_timestamp; cast timestamp to timestamp and check for overflow diff --git a/clients/Tests/MAL-signatures.test b/clients/Tests/MAL-signatures.test --- a/clients/Tests/MAL-signatures.test +++ b/clients/Tests/MAL-signatures.test @@ -21555,11 +21555,6 @@ nil_2time_timestamp; cast to timestamp and check for overflow batcalc timestamp -pattern batcalc.timestamp(X_0:bat[:oid], X_1:int, X_2:bat[:BAT]):bat[:timestamp] -nil_2time_timestamp; -cast to timestamp and check for overflow -batcalc -timestamp pattern batcalc.timestamp(X_0:bat[:timestamp], X_1:bat[:oid], X_2:int):bat[:timestamp] timestamp_2time_timestamp; cast timestamp to timestamp and check for overflow diff --git a/gdk/ChangeLog b/gdk/ChangeLog --- a/gdk/ChangeLog +++ b/gdk/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog file for GDK # This file is updated with Maddlog +* Thu Nov 2 2023 Sjoerd Mullender +- Removed the compiled-in limit on the number of threads that can be used. + The number of threads are still limited, but the limit is dictated + solely by the operating system and the availability of enough memory. + * Thu Sep 28 2023 Sjoerd Mullender - We now prevent accidental upgrades from a database without 128 bit integers to one with 128 bit integers (also known as HUGEINT) from diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -1971,18 +1971,7 @@ VALptr(const ValRecord *v) } } -/* - * The kernel maintains a central table of all active threads. They - * are indexed by their tid. The structure contains information on the - * input/output file descriptors, which should be set before a - * database operation is started. It ensures that output is delivered - * to the proper client. - * - * The Thread structure should be ideally made directly accessible to - * each thread. This speeds up access to tid and file descriptors. - */ -#define THREADS1024 -#define THREADDATA 3 +#define THREADS1024/* maximum value for gdk_nr_threads */ typedef struct threadStruct *Thread; diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c --- a/gdk/gdk_logger.c +++ b/gdk/gdk_logger.c @@ -2773,8 +2773,7 @@ internal_log_bat(logger *lg, BAT *b, log if (b->ttype == TYPE_msk) { BATiter bi = bat_iterator(b); if (offset % 32 == 0) { - if (!mnstr_writeIntArray - (lg->current->output_log, (int *) ((char *) bi.base + offset / 32), + if (!mnstr_writeIntArray(lg->current->output_log, (int *) ((char *) bi.base + offset / 32), (size_t) ((nr + 31) / 32))) ok = GDK_FAIL; } else { diff --git a/gdk/gdk_system.c b/gdk/gdk_system.c --- a/gdk/gdk_system.c +++ b/gdk/gdk_system.c @@ -262,36 +262,6 @@ THRhighwater(void) return false; } -static uint32_t allocated[THREADS / 32]; -static MT_Lock alloclock = MT_LOCK_INITIALIZER(alloclock); - -static MT_Id -alloc_thread(void) -{ - MT_Id mtid = 0; - MT_lock_set(); - for (int i = 0; i < THREADS / 32; i++) { - if (allocated[i] != ~UINT32_C(0)) { - int x = candmask_lobit(~allocated[i]); - allocated[i] |= UINT32_C(1) << x; - mtid = (MT_Id) (i * 32 + x + 1); - break; - } - } - MT_lock_unset(); - return mtid; -} - -static void -dealloc_thread(MT_Id mtid) -{ - assert(mtid > 0 && mtid <= THREADS); - mtid--; - MT_lock_set(); - allocated[mtid / 32] &= ~(UINT32_C(1) << (mtid % 32)); - MT_lock_unset(); -} - void dump_threads(void) { @@ -329,7 +299,6 @@ static void rm_mtthread(struct mtthread *t) { struct mtthread **pt; - MT_Id mtid = t->tid; assert(t != ); thread_lock(); @@ -340,7 +309,6 @@ rm_mtthread(struct mtthread *t)