Changeset: 632e89aff149 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/632e89aff149
Modified Files:
sql/storage/bat/bat_storage.c
Branch: Jul2021
Log Message:
also set heap as dirty
small cleanup
diffs (83 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
@@ -240,11 +240,9 @@ rollback_segments(segments *segs, sql_tr
}
static size_t
-segs_end_include_deleted( segments *segs, sql_trans *tr, sql_table *table)
+segs_end_include_deleted( segments *segs, sql_trans *tr)
{
size_t cnt = 0;
-(void)table;
-// lock_table(tr->store, table->base.id);
segment *s = segs->h, *l = NULL;
for(;s; s = s->next) {
@@ -253,12 +251,11 @@ segs_end_include_deleted( segments *segs
}
if (l)
cnt = l->end;
-// unlock_table(tr->store, table->base.id);
return cnt;
}
static int
-segments2cs(sql_trans *tr, segments *segs, column_storage *cs, sql_table *t)
+segments2cs(sql_trans *tr, segments *segs, column_storage *cs)
{
/* set bits correctly */
BAT *b = temp_descriptor(cs->bid);
@@ -267,7 +264,7 @@ segments2cs(sql_trans *tr, segments *seg
return LOG_ERR;
segment *s = segs->h;
- size_t nr = segs_end_include_deleted(segs, tr, t);
+ size_t nr = segs_end_include_deleted(segs, tr);
size_t rounded_nr = ((nr+31)&~31);
if (rounded_nr > BATcapacity(b) && BATextend(b, rounded_nr) !=
GDK_SUCCEED) {
bat_destroy(b);
@@ -290,6 +287,7 @@ segments2cs(sql_trans *tr, segments *seg
break;
if (s->ts == tr->tid && s->end != s->start) {
b->batDirtydesc = true;
+ b->theap->dirty = true;
size_t lnr = s->end-s->start;
size_t pos = s->start;
dst = (uint32_t *) Tloc(b, 0) + (s->start/32);
@@ -2591,7 +2589,7 @@ static int
log_create_storage(sql_trans *tr, storage *bat, sql_table *t)
{
BAT *b;
- int ok;
+ int ok = LOG_OK;
if (GDKinmemory(0))
return LOG_OK;
@@ -2602,8 +2600,6 @@ log_create_storage(sql_trans *tr, storag
sqlstore *store = tr->store;
bat_set_access(b, BAT_READ);
- /* set bits correctly */
- ok = segments2cs(tr, bat->segs, &bat->cs, t);
if (ok == LOG_OK)
ok = (log_bat_persists(store->logger, b, t->base.id) ==
GDK_SUCCEED)?LOG_OK:LOG_ERR;
if (ok == LOG_OK)
@@ -2650,7 +2646,7 @@ commit_create_del( sql_trans *tr, sql_ch
return ok;
if(!isTempTable(t)) {
storage *dbat = ATOMIC_PTR_GET(&t->data);
- ok = segments2cs(tr, dbat->segs, &dbat->cs, t);
+ ok = segments2cs(tr, dbat->segs, &dbat->cs);
assert(ok == LOG_OK);
if (ok != LOG_OK)
return ok;
@@ -3488,7 +3484,7 @@ commit_update_del( sql_trans *tr, sql_ch
if (dbat->cs.ts == tr->tid) /* cleared table */
dbat->cs.ts = commit_ts;
- ok = segments2cs(tr, dbat->segs, &dbat->cs, t);
+ ok = segments2cs(tr, dbat->segs, &dbat->cs);
assert(ok == LOG_OK);
if (ok == LOG_OK)
merge_segments(dbat, tr, change, commit_ts, oldest);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list