Changeset: 24c897fc5700 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/24c897fc5700 Modified Files: gdk/gdk.h gdk/gdk_aggr.c gdk/gdk_bat.c gdk/gdk_batop.c monetdb5/modules/atoms/batxml.c monetdb5/modules/mal/manifold.c sql/backends/monet5/sql.c Branch: Jul2021 Log Message:
A little cleanup. diffs (217 lines): diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -1079,7 +1079,6 @@ gdk_export BUN BUNfnd(BAT *b, const void (BUN) (*(const oid*)(v) - (b)->tseqbase)) #define BATttype(b) (BATtdense(b) ? TYPE_oid : (b)->ttype) -#define Tbase(b) ((b)->tvheap->base) #define Tsize(b) ((b)->twidth) @@ -1410,8 +1409,8 @@ BATsettrivprop(BAT *b) int c; if (b->tvarsized) c = ATOMcmp(b->ttype, - Tbase(b) + VarHeapVal(Tloc(b, 0), 0, b->twidth), - Tbase(b) + VarHeapVal(Tloc(b, 0), 1, b->twidth)); + b->tvheap->base + VarHeapVal(Tloc(b, 0), 0, b->twidth), + b->tvheap->base + VarHeapVal(Tloc(b, 0), 1, b->twidth)); else c = ATOMcmp(b->ttype, Tloc(b, 0), Tloc(b, 1)); b->tsorted = c <= 0; diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c --- a/gdk/gdk_aggr.c +++ b/gdk/gdk_aggr.c @@ -910,7 +910,7 @@ BATgroupsum(BAT *b, BAT *g, BAT *e, BAT } if ((e == NULL || - (BATcount(e) == BATcount(b) && e->hseqbase == b->hseqbase)) && + (BATcount(e) == ncand && e->hseqbase == ci.hseq)) && (BATtdense(g) || (g->tkey && g->tnonil))) { /* trivial: singleton groups, so all results are equal * to the inputs (but possibly a different type) */ @@ -1586,7 +1586,7 @@ BATgroupprod(BAT *b, BAT *g, BAT *e, BAT } if ((e == NULL || - (BATcount(e) == BATcount(b) && e->hseqbase == b->hseqbase)) && + (BATcount(e) == ncand && e->hseqbase == ci.hseq)) && (BATtdense(g) || (g->tkey && g->tnonil))) { /* trivial: singleton groups, so all results are equal * to the inputs (but possibly a different type) */ @@ -4583,7 +4583,7 @@ dogroupstdev(BAT **avgb, BAT *b, BAT *g, } if ((e == NULL || - (BATcount(e) == BATcount(b) && e->hseqbase == b->hseqbase)) && + (BATcount(e) == ncand && e->hseqbase == ci.hseq)) && (BATtdense(g) || (g->tkey && g->tnonil)) && (issample || b->tnonil)) { /* trivial: singleton groups, so all results are equal diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c --- a/gdk/gdk_bat.c +++ b/gdk/gdk_bat.c @@ -174,7 +174,7 @@ void BATsetdims(BAT *b) { b->twidth = b->ttype == TYPE_str ? 1 : ATOMsize(b->ttype); - b->tshift = ATOMelmshift(Tsize(b)); + b->tshift = ATOMelmshift(b->twidth); assert_shift_width(b->tshift, b->twidth); b->tvarsized = b->ttype == TYPE_void || BATatoms[b->ttype].atomPut != NULL; } @@ -602,6 +602,7 @@ BATclear(BAT *b, bool force) PROPdestroy(b); /* we must dispose of all inserted atoms */ + MT_lock_set(&b->theaplock); if (force && BATatoms[b->ttype].atomDel == NULL) { assert(b->tvheap == NULL || b->tvheap->parentid == b->batCacheid); /* no stable elements: we do a quick heap clean */ @@ -621,12 +622,10 @@ BATclear(BAT *b, bool force) if (ATOMheap(b->ttype, th, 0) != GDK_SUCCEED) return GDK_FAIL; ATOMIC_INIT(&th->refs, 1); - MT_lock_set(&b->theaplock); th->parentid = b->tvheap->parentid; th->dirty = true; HEAPdecref(b->tvheap, false); b->tvheap = th; - MT_lock_unset(&b->theaplock); } } else { /* do heap-delete of all inserted atoms */ @@ -635,15 +634,14 @@ BATclear(BAT *b, bool force) /* TYPE_str has no del method, so we shouldn't get here */ assert(tatmdel == NULL || b->twidth == sizeof(var_t)); if (tatmdel) { - MT_lock_set(&b->theaplock); BATiter bi = bat_iterator_nolock(b); for (p = b->batInserted, q = BUNlast(b); p < q; p++) (*tatmdel)(b->tvheap, (var_t*) BUNtloc(bi,p)); b->tvheap->dirty = true; - MT_lock_unset(&b->theaplock); } } + MT_lock_unset(&b->theaplock); if (force) b->batInserted = 0; diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c --- a/gdk/gdk_batop.c +++ b/gdk/gdk_batop.c @@ -409,7 +409,7 @@ insert_string_bat(BAT *b, BAT *n, struct b->theap->dirty = true; /* maintain hash */ for (r = oldcnt, cnt = BATcount(b); b->thash && r < cnt; r++) { - HASHappend(b, r, Tbase(b) + VarHeapVal(Tloc(b, 0), r, b->twidth)); + HASHappend(b, r, b->tvheap->base + VarHeapVal(Tloc(b, 0), r, b->twidth)); } return GDK_SUCCEED; } diff --git a/monetdb5/modules/atoms/batxml.c b/monetdb5/modules/atoms/batxml.c --- a/monetdb5/modules/atoms/batxml.c +++ b/monetdb5/modules/atoms/batxml.c @@ -515,7 +515,7 @@ BATXMLoptions(bat *ret, const char * con if (strNil(t)) { if (bunfastappVAR(bn, buf) != GDK_SUCCEED) - goto bunins_failed; + goto bunins_failed1; } else { if (strlen(t) > size - 2 * len - 6) { char *tmp; @@ -523,13 +523,13 @@ BATXMLoptions(bat *ret, const char * con tmp = (char *) GDKrealloc(val, size + strlen(t)); if (tmp == NULL) { err = SQLSTATE(HY013) MAL_MALLOC_FAIL; - goto bunins_failed; + goto bunins_failed1; } val = tmp; } snprintf(val + len + 2, size - len, "%s</%s>", t, *name); if (bunfastappVAR(bn, val) != GDK_SUCCEED) - goto bunins_failed; + goto bunins_failed1; } } bat_iterator_end(&bi); @@ -537,8 +537,9 @@ BATXMLoptions(bat *ret, const char * con GDKfree(buf); finalizeResult(ret, bn, b); return MAL_SUCCEED; +bunins_failed1: + bat_iterator_end(&bi); bunins_failed: - bat_iterator_end(&bi); BBPunfix(b->batCacheid); BBPunfix(bn->batCacheid); if (buf != NULL) @@ -1300,7 +1301,7 @@ BATxmlaggr(BAT **bnp, BAT *b, BAT *g, BA BBPreclaim(bn); bn = NULL; err = GDK_EXCEPTION; - goto out; + goto out1; } if (freeg) BBPunfix(g->batCacheid); @@ -1418,8 +1419,9 @@ BATxmlaggr(BAT **bnp, BAT *b, BAT *g, BA bn->trevsorted = BATcount(bn) <= 1; bn->tkey = BATcount(bn) <= 1; + out1: + bat_iterator_end(&bi); out: - bat_iterator_end(&bi); if (t2) BBPunfix(t2->batCacheid); if (freeb && b) diff --git a/monetdb5/modules/mal/manifold.c b/monetdb5/modules/mal/manifold.c --- a/monetdb5/modules/mal/manifold.c +++ b/monetdb5/modules/mal/manifold.c @@ -299,10 +299,7 @@ MANIFOLDevaluate(Client cntxt, MalBlkPtr goto wrapup; } mut.lvar = i; - if (ATOMstorage(tpe) == TYPE_str) - mat[i].size = Tsize(mat[i].b); - else - mat[i].size = ATOMsize(tpe); + mat[i].size = mat[i].bi.width; mat[i].cnt = cnt; if ( mat[i].b->ttype == TYPE_void){ o = mat[i].b->tseqbase; diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c --- a/sql/backends/monet5/sql.c +++ b/sql/backends/monet5/sql.c @@ -968,10 +968,8 @@ mvc_bat_next_get_value(Client cntxt, Mal if (!BATcount(it)) goto bailout; /* Success case */ - if (b) - bi = bat_iterator(b); - if (c) - ci = bat_iterator(c); + bi = bat_iterator(b); + ci = bat_iterator(c); BATloop(it, p, q) { str nsname, nseqname; @@ -1015,10 +1013,8 @@ mvc_bat_next_get_value(Client cntxt, Mal } } bailout1: - if (b) - bat_iterator_end(&bi); - if (c) - bat_iterator_end(&ci); + bat_iterator_end(&bi); + bat_iterator_end(&ci); bailout: if (sb) _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list