Changeset: 39d6231c976f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=39d6231c976f
Modified Files:
        sql/storage/bat/bat_storage.c
        sql/storage/store.c
Branch: Jun2020
Log Message:

active initial transaction (to make sure the timestamps are set correctly)
reactivated asserts, on alters we expect equal wtimes (is dup of the new column)
cleanup some more old code


diffs (82 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
@@ -1071,7 +1071,7 @@ count_col(sql_trans *tr, sql_column *c, 
 {
        sql_delta *b;
 
-//     assert(tr->active || tr == gtrans);
+       assert(tr->active || tr == gtrans);
        if (!isTable(c->t))
                return 0;
        if (!c->data) {
@@ -1470,7 +1470,6 @@ create_col(sql_trans *tr, sql_column *c)
        }
 
        if (!isNew(c) && !isTempTable(c->t)){
-               //c->base.wtime = 0;
                return load_bat(bat, type, c->t->bootstrap?0:LOG_COL, 
c->base.id);
        } else if (bat && bat->ibid && !isTempTable(c->t)) {
                return new_persistent_bat(tr, c->data, c->t->sz);
@@ -1570,7 +1569,6 @@ create_idx(sql_trans *tr, sql_idx *ni)
        }
 
        if (!isNew(ni) && !isTempTable(ni->t)){
-               //ni->base.wtime = 0;
                return load_bat(bat, type, ni->t->bootstrap?0:LOG_IDX, 
ni->base.id);
        } else if (bat && bat->ibid && !isTempTable(ni->t)) {
                return new_persistent_bat( tr, ni->data, ni->t->sz);
@@ -1677,7 +1675,6 @@ create_del(sql_trans *tr, sql_table *t)
                log_bid bid = logger_find_bat(bat_logger, bat->dname, 
t->bootstrap?0:LOG_TAB, t->base.id);
 
                if (bid) {
-                       //t->base.wtime = 0;
                        return load_dbat(bat, bid);
                }
                ok = LOG_ERR;
@@ -2721,7 +2718,7 @@ update_table(sql_trans *tr, sql_table *f
                sql_column *oc = m->data;
 
                if (ATOMIC_GET(&store_nr_active) == 1 || (cc->base.wtime && 
cc->base.allocated)) {
-//                     assert(!cc->base.wtime || oc->base.wtime < 
cc->base.wtime);
+                       assert(!cc->base.wtime || oc->base.wtime < 
cc->base.wtime || (oc->base.wtime == cc->base.wtime && oc->base.allocated /* 
alter */));
                        if (ATOMIC_GET(&store_nr_active) > 1 && cc->data) { /* 
move delta */
                                sql_delta *b = cc->data;
                                sql_column *oldc = NULL;
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -213,6 +213,7 @@ table_reset_parent(sql_table *t, sql_tra
                        if (i->po)
                                idx_destroy(i->po);
                        i->po = NULL;
+                       i->base.wtime = 1;
                }
        }
        assert(t->idxs.dset == NULL);
@@ -225,13 +226,16 @@ table_reset_parent(sql_table *t, sql_tra
                        if (c->po)
                                column_destroy(c->po);
                        c->po = NULL;
+                       c->base.wtime = 1;
                }
        }
        assert(t->columns.dset == NULL);
        if (p)
                table_destroy(p);
-       if (isTable(t))
+       if (isTable(t)) {
                assert(t->base.allocated);
+           t->base.wtime = 1;
+       }
 }
 
 void
@@ -1851,6 +1855,7 @@ store_load(backend_stack stk) {
                if (store_readonly)
                        return -1;
                tr = sql_trans_create(stk, NULL, NULL, true);
+               tr->active = 1;
                if (!tr) {
                        TRC_CRITICAL(SQL_STORE, "Failed to start a transaction 
while loading the storage\n");
                        return -1;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to