Changeset: c0693cc3768d for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/c0693cc3768d Modified Files: ChangeLog gdk/gdk.h gdk/gdk_bat.c gdk/gdk_logger.c geom/monetdb5/geomBulk.c monetdb5/extras/rapi/rapi.c monetdb5/modules/atoms/batxml.c monetdb5/modules/atoms/str.c monetdb5/modules/atoms/url.c monetdb5/modules/mal/pcre.c monetdb5/modules/mal/remote.c monetdb5/modules/mal/txtsim.c sql/backends/monet5/UDF/capi/capi.c sql/backends/monet5/UDF/pyapi3/conversion3.c sql/backends/monet5/dict.c sql/backends/monet5/sql.c sql/backends/monet5/sql_result.c sql/backends/monet5/sql_round_impl.h sql/storage/bat/bat_logger.c tools/monetdbe/monetdbe.c Branch: default Log Message:
Changed the BATloop macro to having a BAT iterator first argument. diffs (truncated from 913 to 300 lines): diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ # ChangeLog file for devel # This file is updated with Maddlog +* Thu Feb 19 2026 Sjoerd Mullender <[email protected]> +- Changed the BATloop macro so that it now has a BATiter pointer as + first argument. + diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -1502,8 +1502,8 @@ gdk_export void VIEWbounds(BAT *b, BAT * } \ } while (false) -#define BATloop(r, p, q) \ - for (q = BATcount(r), p = 0; p < q; p++) +#define BATloop(bi, p, q) \ + for (q = (bi)->count, p = 0; p < q; p++) enum prop_t { GDK_MIN_BOUND, /* MINimum allowed value for range partitions [min, max> */ diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c --- a/gdk/gdk_bat.c +++ b/gdk/gdk_bat.c @@ -1838,7 +1838,7 @@ slowfnd(BAT *b, const void *v) BUN p, q; bool (*atomeq)(const void *, const void *) = ATOMequal(bi.type); - BATloop(b, p, q) { + BATloop(&bi, p, q) { if ((*atomeq)(v, BUNtail(&bi, p))) { bat_iterator_end(&bi); return p; @@ -2858,7 +2858,7 @@ BATassertProps(BAT *b) /* only call compare function if we have to */ bool cmpprv = b->tsorted | b->trevsorted | b->tkey; - BATloop(b, p, q) { + BATloop(&bi, p, q) { valp = BUNtail(&bi, p); bool isnil = eqf(valp, nilp); assert(!isnil || !notnull); @@ -2939,7 +2939,7 @@ BATassertProps(BAT *b) TRC_WARNING(BAT, "Cannot allocate hash table\n"); goto abort_check; } - BATloop(b, p, q) { + BATloop(&bi, p, q) { BUN hb; BUN prb; valp = BUNtail(&bi, p); diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c --- a/gdk/gdk_logger.c +++ b/gdk/gdk_logger.c @@ -1822,10 +1822,9 @@ log_switch_bat(BAT *old, BAT *new, const static gdk_return bm_get_counts(logger *lg) { - BUN p, q; const log_bid *bids = (const log_bid *) Tloc(lg->catalog_bid, 0); - BATloop(lg->catalog_bid, p, q) { + for (BUN p = 0, q = lg->catalog_bid->batCount; p < q; p++) { oid pos = p; lng cnt = 0; lng lid = lng_nil; @@ -1885,7 +1884,7 @@ cleanup_and_swap(logger *lg, int *r, con } oid *poss = Tloc(dcatalog, 0); - BATloop(dcatalog, p, q) { + for (p = 0, q = dcatalog->batCount; p < q; p++) { oid pos = poss[p]; if (lids[pos] == lng_nil || lids[pos] > lg->saved_tid) @@ -1997,7 +1996,6 @@ bm_subcommit(logger *lg, logged_range *p allocator_state ta_state = ma_open(ta); BUN cnt = pending ? pending->cnt : BATcount(lg->catalog_bid); BUN dcnt = BATcount(lg->dcatalog); - BUN p, q; BAT *catalog_bid = lg->catalog_bid; BAT *catalog_id = lg->catalog_id; BAT *dcatalog = lg->dcatalog; @@ -2025,7 +2023,7 @@ bm_subcommit(logger *lg, logged_range *p cnts = (lng *) Tloc(lg->catalog_cnt, 0); if (lg->catalog_lid) lids = (lng *) Tloc(lg->catalog_lid, 0); - BATloop(catalog_bid, p, q) { + for (BUN p = 0, q = lg->catalog_bid->batCount; p < q; p++) { if (lids && lids[p] != lng_nil && lids[p] <= lg->saved_tid) { cleanup++; if (lids[p] == -1) @@ -2377,7 +2375,6 @@ log_load(const char *fn, logger *lg, cha /* find the persistent catalog. As non persistent bats * require a logical reference we also add a logical * reference for the persistent bats */ - BUN p, q; BAT *b, *o, *d; assert(!lg->inmemory); @@ -2427,7 +2424,7 @@ log_load(const char *fn, logger *lg, cha lg->catalog_id = o; lg->dcatalog = d; const log_bid *bids = (const log_bid *) Tloc(lg->catalog_bid, 0); - BATloop(lg->catalog_bid, p, q) { + for (BUN p = 0, q = lg->catalog_bid->batCount; p < q; p++) { bat bid = bids[p]; oid pos = p; @@ -2741,12 +2738,11 @@ log_destroy(logger *lg) } if (lg->catalog_bid) { log_lock(lg); - BUN p, q; BAT *b = lg->catalog_bid; /* free resources */ const log_bid *bids = (const log_bid *) Tloc(b, 0); - BATloop(b, p, q) { + for (BUN p = 0, q = b->batCount; p < q; p++) { bat bid = bids[p]; BBPrelease(bid); diff --git a/geom/monetdb5/geomBulk.c b/geom/monetdb5/geomBulk.c --- a/geom/monetdb5/geomBulk.c +++ b/geom/monetdb5/geomBulk.c @@ -685,7 +685,7 @@ wkbMBR_bat(Client ctx, bat *outBAT_id, b } inBAT_iter = bat_iterator(inBAT); - BATloop(inBAT, p, q) { + BATloop(&inBAT_iter, p, q) { str err = NULL; inWKB = (wkb *) BUNtvar(&inBAT_iter, p); @@ -1154,7 +1154,7 @@ wkbCoordinateFromMBR_bat(Client ctx, bat //iterator over the BAT inBAT_iter = bat_iterator(inBAT); - BATloop(inBAT, p, q) { //iterate over all valid elements + BATloop(&inBAT_iter, p, q) { //iterate over all valid elements str err = NULL; inMBR = (mbr *) BUNtloc(&inBAT_iter, p); @@ -1204,7 +1204,7 @@ WKBtoSTRflagINT_bat(Client ctx, bat *out //iterator over the input BAT inBAT_iter = bat_iterator(inBAT); - BATloop(inBAT, p, q) { //iterate over all valid elements + BATloop(&inBAT_iter, p, q) { //iterate over all valid elements str err = NULL; char *outSingle; @@ -1275,7 +1275,7 @@ WKBtoWKB_bat(Client ctx, bat *outBAT_id, //iterator over the input BAT inBAT_iter = bat_iterator(inBAT); - BATloop(inBAT, p, q) { //iterate over all valid elements + BATloop(&inBAT_iter, p, q) { //iterate over all valid elements str err = NULL; wkb *outSingle; @@ -1339,7 +1339,7 @@ WKBtoWKBflagINT_bat(Client ctx, bat *out //iterator over the input BAT inBAT_iter = bat_iterator(inBAT); - BATloop(inBAT, p, q) { //iterate over all valid elements + BATloop(&inBAT_iter, p, q) { //iterate over all valid elements str err = NULL; wkb *outSingle; @@ -1402,7 +1402,7 @@ WKBtoBIT_bat(Client ctx, bat *outBAT_id, //iterator over the input BAT inBAT_iter = bat_iterator(inBAT); - BATloop(inBAT, p, q) { //iterate over all valid elements + BATloop(&inBAT_iter, p, q) { //iterate over all valid elements str err = NULL; bit outSingle; @@ -1494,7 +1494,7 @@ WKBtoINT_bat(Client ctx, bat *outBAT_id, //iterator over the input BAT inBAT_iter = bat_iterator(inBAT); - BATloop(inBAT, p, q) { //iterate over all valid elements + BATloop(&inBAT_iter, p, q) { //iterate over all valid elements str err = NULL; int outSingle; @@ -1564,7 +1564,7 @@ WKBtoINTflagINT_bat(Client ctx, bat *out //iterator over the input BAT inBAT_iter = bat_iterator(inBAT); - BATloop(inBAT, p, q) { //iterate over all valid elements + BATloop(&inBAT_iter, p, q) { //iterate over all valid elements str err = NULL; int outSingle; @@ -1635,7 +1635,7 @@ wkbGetCoordinate_bat(Client ctx, bat *ou //iterator over the input BAT inBAT_iter = bat_iterator(inBAT); - BATloop(inBAT, p, q) { //iterate over all valid elements + BATloop(&inBAT_iter, p, q) { //iterate over all valid elements str err = NULL; double outSingle; @@ -1810,7 +1810,7 @@ wkbContains_geom_bat(Client ctx, bat *ou //iterator over the BATs inBAT_iter = bat_iterator(inBAT); - BATloop(inBAT, p, q) { + BATloop(&inBAT_iter, p, q) { str err = NULL; bit outBIT; @@ -1860,7 +1860,7 @@ wkbContains_bat_geom(Client ctx, bat *ou //iterator over the BATs inBAT_iter = bat_iterator(inBAT); - BATloop(inBAT, p, q) { + BATloop(&inBAT_iter, p, q) { str err = NULL; bit outBIT; @@ -2047,7 +2047,7 @@ wkbSetSRID_bat(Client ctx, bat *outBAT_i //iterator over the BATs inBAT_iter = bat_iterator(inBAT); - BATloop(inBAT, p, q) { + BATloop(&inBAT_iter, p, q) { str err = NULL; wkb *outWKB = NULL; @@ -2158,7 +2158,7 @@ wkbDistance_geom_bat(Client ctx, bat *ou //iterator over the BAT inBAT_iter = bat_iterator(inBAT); - BATloop(inBAT, p, q) { + BATloop(&inBAT_iter, p, q) { str err = NULL; double distanceVal = 0; diff --git a/monetdb5/extras/rapi/rapi.c b/monetdb5/extras/rapi/rapi.c --- a/monetdb5/extras/rapi/rapi.c +++ b/monetdb5/extras/rapi/rapi.c @@ -222,7 +222,7 @@ bat_to_sexp(BAT* b, int type) bat_iterator_end(&bi); return NULL; } - BATloop(b, p, q) { + BATloop(&bi, p, q) { const char *t = (const char *) BUNtvar(&bi, p); ptrdiff_t offset = t - b->tvheap->base; if (!sexp_ptrs[offset]) { @@ -238,13 +238,13 @@ bat_to_sexp(BAT* b, int type) } else { if (bi.nonil) { - BATloop(b, p, q) { + BATloop(&bi, p, q) { SET_STRING_ELT(varvalue, j++, RSTR( (const char *) BUNtvar(&bi, p))); } } else { - BATloop(b, p, q) { + BATloop(&bi, p, q) { const char *t = (const char *) BUNtvar(&bi, p); if (strNil(t)) { SET_STRING_ELT(varvalue, j++, NA_STRING); 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 @@ -73,7 +73,7 @@ BATXMLxml2str(Client ctx, bat *ret, cons throw(MAL, "xml.str", INTERNAL_BAT_ACCESS); prepareResult(bn, b, TYPE_str, "str", (void) 0); bi = bat_iterator(b); - BATloop(b, p, q) { + BATloop(&bi, p, q) { const char *t = (const char *) BUNtvar(&bi, p); if (strNil(t)) { @@ -114,7 +114,7 @@ BATXMLxmltext(Client ctx, bat *ret, cons throw(MAL, "xml.text", INTERNAL_BAT_ACCESS); prepareResult(bn, b, TYPE_str, "text", (void) 0); bi = bat_iterator(b); - BATloop(b, p, q) { + BATloop(&bi, p, q) { const char *t = (const char *) BUNtvar(&bi, p); size_t len; @@ -244,7 +244,7 @@ BATXMLstr2xml(Client ctx, bat *ret, cons } prepareResult(bn, b, TYPE_xml, "xml", GDKfree(buf)); bi = bat_iterator(b); _______________________________________________ checkin-list mailing list -- [email protected] To unsubscribe send an email to [email protected]
