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

Reply via email to