Changeset: 11aee40252d3 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/11aee40252d3 Modified Files: sql/storage/bat/bat_storage.c Branch: Aug2024 Log Message:
Partial backou of ed08ba0b1ffa: don't reuse bat for empty temp tables. This fixes #7569. diffs (63 lines): diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c --- a/sql/storage/bat/bat_storage.c +++ b/sql/storage/bat/bat_storage.c @@ -2107,7 +2107,7 @@ update_idx(sql_trans *tr, sql_idx * i, v } static int -delta_append_bat(sql_trans *tr, sql_delta **batp, sqlid id, BUN offset, BAT *offsets, BAT *i, char *storage_type, bool istemp) +delta_append_bat(sql_trans *tr, sql_delta **batp, sqlid id, BUN offset, BAT *offsets, BAT *i, char *storage_type) { BAT *b, *oi = i; int err = 0; @@ -2150,13 +2150,7 @@ delta_append_bat(sql_trans *tr, sql_delt bat_destroy(oi); return LOG_ERR; } - if (istemp && !offsets && offset == 0 && BATcount(b) == 0 && bat->cs.ucnt == 0) { - bat_set_access(i, BAT_READ); - if (bat->cs.bid) - temp_destroy(bat->cs.bid); - i = transfer_to_systrans(i); - bat->cs.bid = temp_create(i); - } else if (!offsets && offset == b->hseqbase+BATcount(b)) { + if (!offsets && offset == b->hseqbase+BATcount(b)) { if (BATappend(b, oi, NULL, true) != GDK_SUCCEED) err = 1; } else if (!offsets) { @@ -2306,7 +2300,7 @@ dup_storage( sql_trans *tr, storage *oba } static int -append_col_execute(sql_trans *tr, sql_delta **delta, sqlid id, BUN offset, BAT *offsets, void *incoming_data, BUN cnt, bool isbat, int tt, char *storage_type, bool isnew) +append_col_execute(sql_trans *tr, sql_delta **delta, sqlid id, BUN offset, BAT *offsets, void *incoming_data, BUN cnt, bool isbat, int tt, char *storage_type) { int ok = LOG_OK; @@ -2316,7 +2310,7 @@ append_col_execute(sql_trans *tr, sql_de BAT *bat = incoming_data; if (BATcount(bat)) - ok = delta_append_bat(tr, delta, id, offset, offsets, bat, storage_type, isnew); + ok = delta_append_bat(tr, delta, id, offset, offsets, bat, storage_type); } else { ok = delta_append_val(tr, delta, id, offset, offsets, incoming_data, cnt, storage_type, tt); } @@ -2341,7 +2335,7 @@ append_col(sql_trans *tr, sql_column *c, assert(delta->cs.st == ST_DEFAULT || delta->cs.st == ST_DICT || delta->cs.st == ST_FOR); odelta = delta; - if ((res = append_col_execute(tr, &delta, c->base.id, offset, offsets, data, cnt, isbat, tpe, c->storage_type, isTempTable(c->t))) != LOG_OK) + if ((res = append_col_execute(tr, &delta, c->base.id, offset, offsets, data, cnt, isbat, tpe, c->storage_type)) != LOG_OK) return res; if (odelta != delta) { delta->next = odelta; @@ -2373,7 +2367,7 @@ append_idx(sql_trans *tr, sql_idx *i, BU assert(delta->cs.st == ST_DEFAULT); - res = append_col_execute(tr, &delta, i->base.id, offset, offsets, data, cnt, isbat, tpe, NULL, isTempTable(i->t)); + res = append_col_execute(tr, &delta, i->base.id, offset, offsets, data, cnt, isbat, tpe, NULL); return res; } _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org