Changeset: ee2dfdc96100 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ee2dfdc96100
Modified Files:
        clients/mapiclient/dump.c
        gdk/gdk_bbp.c
        gdk/gdk_logger.c
Branch: default
Log Message:

Merge with Jan2022 branch.


diffs (161 lines):

diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c
--- a/clients/mapiclient/dump.c
+++ b/clients/mapiclient/dump.c
@@ -3124,8 +3124,8 @@ dump_database(Mapi mid, stream *toConsol
                if (curschema == NULL || strcmp(schema, curschema) != 0) {
                        if (curschema)
                                free(curschema);
-                       curschema = schema ? strdup(schema) : NULL;
-                       if (schema && !curschema) {
+                       curschema = strdup(schema);
+                       if (curschema == NULL) {
                                free(id);
                                free(schema);
                                free(name);
diff --git a/common/stream/xz_stream.c b/common/stream/xz_stream.c
--- a/common/stream/xz_stream.c
+++ b/common/stream/xz_stream.c
@@ -161,9 +161,9 @@ xz_stream(stream *inner, int preset)
                ret = lzma_easy_encoder(&xz->strm, preset, LZMA_CHECK_CRC64);
        }
 
-       stream *s = pump_stream(inner, state);
+       stream *s;
 
-       if (ret != LZMA_OK || s == NULL) {
+       if (ret != LZMA_OK || (s = pump_stream(inner, state)) == NULL) {
                lzma_end(&xz->strm);
                free(xz);
                free(state);
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -1896,6 +1896,7 @@ new_bbpentry(FILE *fp, bat i, BUN size)
        }
 #endif
 
+       assert(size <= BBP_desc(i)->batCount || size == BUN_NONE);
        if (size > BBP_desc(i)->batCount)
                size = BBP_desc(i)->batCount;
        if (fprintf(fp, "%d %u %s %s %d " BUNFMT " " BUNFMT " " OIDFMT,
@@ -3927,6 +3928,7 @@ BBPsync(int cnt, bat *restrict subcommit
                                        if (lock)
                                                MT_lock_unset(&GDKswapLock(i));
                                        BATiter bi = bat_iterator(b);
+                                       assert(size <= bi.count || size == 
BUN_NONE);
                                        if (size > bi.count)
                                                size = bi.count;
                                        MT_rwlock_rdlock(&b->thashlock);
diff --git a/gdk/gdk_delta.c b/gdk/gdk_delta.c
--- a/gdk/gdk_delta.c
+++ b/gdk/gdk_delta.c
@@ -35,6 +35,7 @@ BATcommit(BAT *b, BUN size)
 {
        if (b == NULL)
                return;
+       assert(size <= BATcount(b) || size == BUN_NONE);
        TRC_DEBUG(DELTA, "BATcommit1 %s free %zu ins " BUNFMT " base %p\n",
                  BATgetId(b), b->theap->free, b->batInserted, b->theap->base);
        if (!BATdirty(b)) {
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -572,7 +572,7 @@ log_read_updates(logger *lg, trans *tr, 
 
 
 static gdk_return
-la_bat_update_count(logger *lg, log_id id, lng cnt)
+la_bat_update_count(logger *lg, log_id id, lng cnt, int tid)
 {
        BATiter cni = bat_iterator_nolock(lg->catalog_id);
 
@@ -583,7 +583,7 @@ la_bat_update_count(logger *lg, log_id i
                HASHloop_int(cni, cni.b->thash, p, &id) {
                        lng lid = *(lng *) Tloc(lg->catalog_lid, p);
 
-                       if (lid != lng_nil && lid <= lg->tid)
+                       if (lid != lng_nil && lid <= tid)
                                break;
                        cp = p;
                }
@@ -601,7 +601,7 @@ la_bat_update_count(logger *lg, log_id i
 }
 
 static gdk_return
-la_bat_updates(logger *lg, logaction *la)
+la_bat_updates(logger *lg, logaction *la, int tid)
 {
        log_bid bid = internal_find_bat(lg, la->cid);
        BAT *b = NULL;
@@ -665,7 +665,7 @@ la_bat_updates(logger *lg, logaction *la
                        }
                }
                cnt = (BUN)(la->offset + la->nr);
-               if (la_bat_update_count(lg, la->cid, cnt) != GDK_SUCCEED) {
+               if (la_bat_update_count(lg, la->cid, cnt, tid) != GDK_SUCCEED) {
                        if (b)
                                logbat_destroy(b);
                        return GDK_FAIL;
@@ -816,14 +816,14 @@ tr_create(trans *tr, int tid)
 }
 
 static gdk_return
-la_apply(logger *lg, logaction *c)
+la_apply(logger *lg, logaction *c, int tid)
 {
        gdk_return ret = GDK_SUCCEED;
 
        switch (c->type) {
        case LOG_UPDATE_BULK:
        case LOG_UPDATE:
-               ret = la_bat_updates(lg, c);
+               ret = la_bat_updates(lg, c, tid);
                break;
        case LOG_CREATE:
                if (!lg->flushing)
@@ -906,7 +906,7 @@ tr_commit(logger *lg, trans *tr)
                fprintf(stderr, "#tr_commit\n");
 
        for (i = 0; i < tr->nr; i++) {
-               if (la_apply(lg, &tr->changes[i]) != GDK_SUCCEED) {
+               if (la_apply(lg, &tr->changes[i], tr->tid) != GDK_SUCCEED) {
                        do {
                                tr = tr_abort_(lg, tr, i);
                        } while (tr != NULL);
@@ -1421,7 +1421,8 @@ bm_get_counts(logger *lg)
 static int
 subcommit_list_add(int next, bat *n, BUN *sizes, bat bid, BUN sz)
 {
-       for(int i=0; i<next; i++) {
+       assert(sz <= BBP_desc(bid)->batCount || sz == BUN_NONE);
+       for (int i=0; i<next; i++) {
                if (n[i] == bid) {
                        sizes[i] = sz;
                        return next;
@@ -2322,7 +2323,7 @@ log_constant(logger *lg, int type, ptr v
                /* logging is switched off */
                if (nr) {
                        logger_lock(lg);
-                       ok = la_bat_update_count(lg, id, offset+cnt);
+                       ok = la_bat_update_count(lg, id, offset+cnt, lg->tid);
                        logger_unlock(lg);
                }
                return ok;
@@ -2421,7 +2422,7 @@ internal_log_bat(logger *lg, BAT *b, log
                /* logging is switched off */
                lg->end += nr;
                if (nr)
-                       return la_bat_update_count(lg, id, offset+cnt);
+                       return la_bat_update_count(lg, id, offset+cnt, lg->tid);
                return GDK_SUCCEED;
        }
 
@@ -2643,7 +2644,7 @@ log_bat_clear(logger *lg, int id)
        lg->end++;
        if (LOG_DISABLED(lg)) {
                logger_lock(lg);
-               gdk_return res = la_bat_update_count(lg, id, 0);
+               gdk_return res = la_bat_update_count(lg, id, 0, lg->tid);
                logger_unlock(lg);
                return res;
        }
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to