Changeset: 26bb2f9f2fda for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=26bb2f9f2fda
Modified Files:
        sql/backends/monet5/sql.c
        sql/server/sql_mvc.c
        sql/server/sql_mvc.h
Branch: HTM
Log Message:

Use the transaction in the current MVC context when persisting a commit


diffs (55 lines):

diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -382,10 +382,24 @@ SQLprecommit(Client cntxt, MalBlkPtr mb,
 str
 SQLpersistcommit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
-       (void) cntxt;
-       (void) mb;
+       mvc *sql = NULL;
+       str msg;
+       sql_trans *tr = NULL;
        (void) stk;
        (void) pci;
+
+       if ((msg = getSQLContext(cntxt, mb, &sql, NULL)) != NULL)
+               return msg;
+       if ((msg = checkSQLContext(cntxt)) != NULL)
+               return msg;
+
+       if (sql->session->auto_commit != 0)
+               throw(SQL, "sql.trans", "2DM30!COMMIT: not allowed in auto 
commit mode");
+       tr = mvc_persistcommit(sql, 0, 0);
+
+       if (tr == NULL) {
+               throw(SQL, "sql.trans", "2D000!COMMIT: failed");
+       }
        return MAL_SUCCEED;
 }
 
diff --git a/sql/server/sql_mvc.c b/sql/server/sql_mvc.c
--- a/sql/server/sql_mvc.c
+++ b/sql/server/sql_mvc.c
@@ -338,7 +338,8 @@ mvc_precommit(mvc *m, int chain, char *n
 }
 
 int
-mvc_persistcommit(mvc *m, int chain, char *name, sql_trans *tr) {
+mvc_persistcommit(mvc *m, int chain, char *name) {
+       sql_trans *tr = m->session->tr;
        int ok = SQL_OK;//, wait = 0;
 
        store_lock();
diff --git a/sql/server/sql_mvc.h b/sql/server/sql_mvc.h
--- a/sql/server/sql_mvc.h
+++ b/sql/server/sql_mvc.h
@@ -156,7 +156,7 @@ extern int mvc_commit_prepare(mvc *m, in
 extern void mvc_commit_finish(mvc *m, int chain, char *name);
 extern int mvc_commit(mvc *c, int chain, char *name);
 extern sql_trans *mvc_precommit(mvc *m, int chain, char *name);
-extern int mvc_persistcommit(mvc *m, int chain, char *name, sql_trans *tr);
+extern int mvc_persistcommit(mvc *m, int chain, char *name);
 extern int mvc_rollback(mvc *c, int chain, char *name);
 extern int mvc_release(mvc *c, char *name);
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to