Changeset: 29e0af6d139c for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=29e0af6d139c Modified Files: sql/storage/store.c Branch: nospare Log Message:
split transaction rollback/reset code diffs (44 lines): diff --git a/sql/storage/store.c b/sql/storage/store.c --- a/sql/storage/store.c +++ b/sql/storage/store.c @@ -3793,8 +3793,8 @@ schema_dup(sql_trans *tr, int flags, sql return s; } -static sql_catalog * -sql_catalog_reset(sql_trans *tr, sql_catalog *ocat) +static void +sql_trans_rollback(sql_trans *tr) { for (node *n = tr->cat->schemas.set->h; n; ) { node *nxt = n->next; @@ -3814,6 +3814,12 @@ sql_catalog_reset(sql_trans *tr, sql_cat list_destroy(tr->moved_tables); tr->moved_tables = NULL; } +} + +static sql_catalog * +sql_trans_reset(sql_trans *tr, sql_catalog *ocat) +{ + assert(list_empty(tr->cat->schemas.set)); if (ocat->schemas.set) { for (node *n = ocat->schemas.set->h; n; n = n->next) { sql_schema *s = n->data; @@ -7455,7 +7461,7 @@ sql_trans_begin(sql_session *s) if (tr->parent && tr->parent == gtrans && (tr->stime < gtrans->wstime || tr->wtime || store_schema_number() != snr)) { - s->tr->cat = sql_catalog_reset(tr, gtrans->cat); + s->tr->cat = sql_trans_reset(tr, gtrans->cat); sql_trans_reset_tmp(s->tr); } if (tr->parent == gtrans) @@ -7477,6 +7483,7 @@ sql_trans_end(sql_session *s, int commit { TRC_DEBUG(SQL_STORE, "End of transaction: %d\n", s->tr->schema_number); sql_trans_rollback_tmp(s->tr, commit); + sql_trans_rollback(s->tr); s->tr->active = 0; s->auto_commit = s->ac_on_commit; if (s->tr->parent == gtrans) { _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list