Changeset: 2001897e1b1b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2001897e1b1b
Modified Files:
        sql/backends/monet5/rel_bin.c
        sql/storage/store.c
Branch: nospare
Log Message:

also for triggers, first create a new table (version).

(some more cleanup)


diffs (67 lines):

diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -1324,11 +1324,10 @@ exp_bin(backend *be, sql_exp *e, stmt *l
 static stmt *
 stmt_col( backend *be, sql_column *c, stmt *del, int part)
 {
-       //sql_trans *tr = be->mvc->session->tr;
        stmt *sc = stmt_bat(be, c, RDONLY, part);
 
        if (isTable(c->t) && c->t->access != TABLE_READONLY &&
-          (!isNew(c) /*|| (c->t->s && !inTransaction(tr, c->t))*/ || 
!isNew(c->t) /* alter */) &&
+          (!isNew(c) || !isNew(c->t) /* alter */) &&
           (c->t->persistence == SQL_PERSIST || c->t->s) /*&& 
!c->t->commit_action*/) {
                stmt *i = stmt_bat(be, c, RD_INS, 0);
                stmt *u = stmt_bat(be, c, RD_UPD_ID, part);
@@ -1344,11 +1343,10 @@ stmt_col( backend *be, sql_column *c, st
 static stmt *
 stmt_idx( backend *be, sql_idx *i, stmt *del, int part)
 {
-       //sql_trans *tr = be->mvc->session->tr;
        stmt *sc = stmt_idxbat(be, i, RDONLY, part);
 
        if (isTable(i->t) && i->t->access != TABLE_READONLY &&
-          (!isNew(i) /*|| (i->t->s && !inTransaction(tr, i->t))*/ || 
!isNew(i->t)/* alter */) &&
+          (!isNew(i) || !isNew(i->t) /* alter */) &&
           (i->t->persistence == SQL_PERSIST || i->t->s) /*&& 
!i->t->commit_action*/) {
                stmt *ic = stmt_idxbat(be, i, RD_INS, 0);
                stmt *u = stmt_idxbat(be, i, RD_UPD_ID, part);
@@ -4052,7 +4050,6 @@ static stmt *
 update_check_ukey(backend *be, stmt **updates, sql_key *k, stmt *tids, stmt 
*idx_updates, int updcol)
 {
        mvc *sql = be->mvc;
-       //sql_trans *tr = sql->session->tr;
        char *msg = NULL;
        stmt *res = NULL;
 
@@ -4073,7 +4070,7 @@ update_check_ukey(backend *be, stmt **up
                        This is done using a relation join and a count (which
                        should be zero)
                */
-               if (!isNew(k) /*|| !inTransaction(tr, k)*/) {
+               if (!isNew(k)) {
                        stmt *nu_tids = stmt_tdiff(be, dels, tids, NULL); /* 
not updated ids */
                        list *lje = sa_list(sql->sa);
                        list *rje = sa_list(sql->sa);
@@ -4186,7 +4183,7 @@ update_check_ukey(backend *be, stmt **up
                stmt *s = NULL, *h = NULL, *o;
 
                /* s should be empty */
-               if (!isNew(k) /*|| !inTransaction(tr, k)*/) {
+               if (!isNew(k)) {
                        stmt *nu_tids = stmt_tdiff(be, dels, tids, NULL); /* 
not updated ids */
                        assert (updates);
 
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -5519,6 +5519,8 @@ sql_trans_create_trigger(sql_trans *tr, 
        const char *nilptr = ATOMnilptr(TYPE_str);
 
        assert(name);
+
+       t = new_table(tr, t);
        base_init(tr->sa, &nt->base, next_oid(tr->store), TR_NEW, name);
        nt->columns = list_new(tr->sa, (fdestroy) NULL);
        nt->t = t;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to