Changeset: a591f9210b69 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a591f9210b69 Modified Files: sql/backends/monet5/sql.mx sql/backends/monet5/sql_scenario.c sql/backends/monet5/sql_user.c Branch: default Log Message:
Drop the recycle cache upon rollback diffs (109 lines): diff --git a/sql/backends/monet5/sql.mx b/sql/backends/monet5/sql.mx --- a/sql/backends/monet5/sql.mx +++ b/sql/backends/monet5/sql.mx @@ -1921,6 +1921,7 @@ SQLtransaction(Client cntxt, MalBlkPtr m case DDL_ROLLBACK: if (sql->session->auto_commit == 1) throw(SQL, "sql.trans", "2DM30!ROLLBACK: not allowed in auto commit mode"); + RECYCLEdrop(0); ret = mvc_rollback(sql, chain, name); if (ret < 0 && name) { snprintf(buf, BUFSIZ, "3B000!ROLLBACK TO SAVEPOINT: (%s) failed", name); @@ -1930,8 +1931,10 @@ SQLtransaction(Client cntxt, MalBlkPtr m case DDL_TRANS: if (sql->session->auto_commit == 0) throw(SQL, "sql.trans", "25001!START TRANSACTION: cannot start a transaction within a transaction"); - if (sql->session->active) + if (sql->session->active){ + RECYCLEdrop(0); mvc_rollback(sql, 0, NULL); + } sql->session->auto_commit = 0; sql->session->ac_on_commit = 1; sql->session->level = chain; @@ -1968,8 +1971,10 @@ SQLabort(Client cntxt, MalBlkPtr mb, Mal (void) stk; (void) pci; - if (sql->session->active) + if (sql->session->active){ + RECYCLEdrop(0); mvc_rollback(sql, 0, NULL); + } return msg; } @@ -1983,8 +1988,10 @@ SQLtransaction2(Client cntxt, MalBlkPtr (void) pci; if (sql->session->auto_commit == 0) throw(SQL, "sql.trans", "25001!START TRANSACTION: cannot start a transaction within a transaction"); - if (sql->session->active) + if (sql->session->active){ + RECYCLEdrop(0); mvc_rollback(sql, 0, NULL); + } sql->session->auto_commit = 0; sql->session->ac_on_commit = 1; sql->session->level = 0; diff --git a/sql/backends/monet5/sql_scenario.c b/sql/backends/monet5/sql_scenario.c --- a/sql/backends/monet5/sql_scenario.c +++ b/sql/backends/monet5/sql_scenario.c @@ -975,8 +975,10 @@ SQLexitClient(Client c) if (mvc_status(m) >= 0 && mvc_commit(m, 0, NULL) < 0) (void) handle_error(m, c->fdout, 0); } - if (m->session->active) + if (m->session->active){ + RECYCLEdrop(0); mvc_rollback(m, 0, NULL); + } res_tables_destroy(m->results); m->results= NULL; @@ -1329,6 +1331,7 @@ SQLinclude(Client cntxt, MalBlkPtr mb, M static int SQLautocommit(Client c, mvc *m){ if (m->session->auto_commit && m->session->active) { if (mvc_status(m) < 0) { + RECYCLEdrop(0); mvc_rollback(m, 0, NULL); } else if (mvc_commit(m, 0, NULL) < 0) { return handle_error(m, c->fdout, 0); @@ -1723,6 +1726,7 @@ SQLparser(Client c) msg = createException(SQL, "SQLparser", "Xauto_commit (commit) failed"); } else if (!commit && mvc_rollback(m, 0, NULL) < 0) { + RECYCLEdrop(0); mnstr_printf(out, "!COMMIT: rollback failed while " "disabling auto_commit\n"); msg = createException(SQL, "SQLparser", diff --git a/sql/backends/monet5/sql_user.c b/sql/backends/monet5/sql_user.c --- a/sql/backends/monet5/sql_user.c +++ b/sql/backends/monet5/sql_user.c @@ -31,6 +31,7 @@ #include "sql_mvc.h" #include "bat5.h" #include "mal_authorize.h" +#include "mal_recycle.h" #include "mcrypt.h" #if 0 @@ -490,8 +491,10 @@ monet5_user_get_def_schema(mvc *m, oid u } if (!schema || !mvc_set_schema(m, schema)) { - if (m->session->active) + if (m->session->active){ + RECYCLEdrop(0); mvc_rollback(m, 0, NULL); + } return NULL; } /* reset the user and schema names */ @@ -499,6 +502,7 @@ monet5_user_get_def_schema(mvc *m, oid u stack_set_string(m, "current_user", username); stack_set_string(m, "current_role", username); GDKfree(username); + RECYCLEdrop(0); mvc_rollback(m, 0, NULL); return schema; } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list