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]