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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list