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

handle alter's better in concurrent cases.


diffs (43 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
@@ -1569,6 +1569,7 @@ create_col(sql_trans *tr, sql_column *c)
                                if(bat->uvbid == BID_NIL)
                                        ok = LOG_ERR;
                        }
+                       bat->alter = 1;
                } else {
                        BAT *b = bat_new(type, c->t->sz, PERSISTENT);
                        if (!b) {
@@ -1619,7 +1620,9 @@ commit_create_col_( sql_trans *tr, sql_c
                delta->ts = commit_ts;
 
                assert(delta->next == NULL);
-               ok = tr_merge_delta(tr, delta);
+               if (!delta->alter)
+                       ok = tr_merge_delta(tr, delta);
+               delta->alter = 0;
                c->base.flags = 0;
        }
        return ok;
@@ -1684,6 +1687,7 @@ create_idx(sql_trans *tr, sql_idx *ni)
                bat->ibase = d->ibase;
                bat->cnt = d->cnt;
                bat->ucnt = 0;
+               bat->alter = 1;
 
                if (d->uibid) {
                        bat->uibid = e_bat(TYPE_oid);
diff --git a/sql/storage/bat/bat_storage.h b/sql/storage/bat/bat_storage.h
--- a/sql/storage/bat/bat_storage.h
+++ b/sql/storage/bat/bat_storage.h
@@ -20,7 +20,8 @@ typedef struct sql_delta {
        int ibid;               /* bat with inserts */
        int uibid;              /* bat with positions of updates */
        int uvbid;              /* bat with values of updates */
-       int cleared;
+       bool cleared;
+       bool alter;             /* set when the delta is created for an alter 
statement */
        size_t cnt;             /* number of tuples (excluding the deletes) */
        size_t ucnt;            /* number of updates */
        BAT *cached;            /* cached copy, used for schema bats only */
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to