Changeset: be7584332785 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/be7584332785 Modified Files: gdk/gdk_bbp.c gdk/gdk_logger.c gdk/gdk_select.c monetdb5/mal/mal_interpreter.c monetdb5/modules/atoms/json.c Branch: Jul2021 Log Message:
Merge with Oct2020 branch. diffs (77 lines): diff --git a/clients/odbc/ChangeLog.Oct2020 b/clients/odbc/ChangeLog.Oct2020 --- a/clients/odbc/ChangeLog.Oct2020 +++ b/clients/odbc/ChangeLog.Oct2020 @@ -1,3 +1,6 @@ # ChangeLog file for odbc # This file is updated with Maddlog +* Fri May 7 2021 Sjoerd Mullender <sjo...@acm.org> +- A typo that made the SQLSpecialColumns function unusable was fixed. + diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c --- a/gdk/gdk_bbp.c +++ b/gdk/gdk_bbp.c @@ -2275,7 +2275,12 @@ decref(bat i, bool logical, bool release if (lock) MT_lock_set(&GDKswapLock(i)); if (releaseShare) { - --BBP_desc(i)->batSharecnt; + if (BBP_desc(i)->batSharecnt == 0) { + GDKerror("%s: %s does not have any shares.\n", func, BBPname(i)); + assert(0); + } else { + --BBP_desc(i)->batSharecnt; + } if (lock) MT_lock_unset(&GDKswapLock(i)); return refs; @@ -3012,7 +3017,7 @@ do_backup(const char *srcdir, const char /* there is a situation where the move may fail, * namely if this heap was not supposed to be existing * before, i.e. after a BATmaterialize on a persistent - * bat as a workaround, do not complain about move + * bat; as a workaround, do not complain about move * failure if the source file is nonexistent */ if (mvret != GDK_SUCCEED && file_exists(h->farmid, srcdir, nme, ext)) { diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c --- a/gdk/gdk_select.c +++ b/gdk/gdk_select.c @@ -42,6 +42,8 @@ virtualize(BAT *bn) (((bn->ttype == TYPE_void && !is_oid_nil(bn->tseqbase)) || bn->ttype == TYPE_oid) && bn->tkey && bn->tsorted)); + assert(BBP_refs(bn->batCacheid) == 1); + assert(BBP_lrefs(bn->batCacheid) == 0); /* since bn has unique and strictly ascending values, we can * easily check whether the column is dense */ if (bn && bn->ttype == TYPE_oid && diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c --- a/monetdb5/mal/mal_interpreter.c +++ b/monetdb5/mal/mal_interpreter.c @@ -766,10 +766,7 @@ str runMALsequence(Client cntxt, MalBlkP } if (ret == MAL_SUCCEED && ii == pci->argc) { ret = runMALsequence(cntxt, pci->blk, 1, pci->blk->stop, nstk, stk, pci); - //garbageCollector(cntxt, pci->blk, nstk, 0); - for (ii = 0; ii < nstk->stktop; ii++) - if (ATOMextern(nstk->stk[ii].vtype)) - GDKfree(nstk->stk[ii].val.pval); + garbageCollector(cntxt, pci->blk, nstk, 0); arg = q->retc; for (ii = pci->retc; ii < pci->argc; ii++,arg++) { lhs = &nstk->stk[q->argv[arg]]; diff --git a/monetdb5/modules/atoms/json.c b/monetdb5/modules/atoms/json.c --- a/monetdb5/modules/atoms/json.c +++ b/monetdb5/modules/atoms/json.c @@ -982,6 +982,10 @@ JSONtoken(JSON *jt, const char *j, const if (jt->error) return idx; + if (THRhighwater()) { + jt->error = createException(MAL, "json.parser", "expression too complex to parse"); + return idx; + } skipblancs(j); switch (*j) { case '{': _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list