Changeset: 5e6dc65965d2 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5e6dc65965d2
Modified Files:
        sql/backends/monet5/sql.mx
Branch: default
Log Message:

Introduce the explicit sql.commit operation


diffs (46 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
@@ -50,6 +50,10 @@
 address SQLtransaction
 comment "a transaction statement (type can be commit,release,rollback or 
start)";
 
+pattern commit()
+address SQLcommit
+comment "Trigger the commit operation for a MAL block";
+
 pattern catalog(type:int,sname:str,name:str,action:int):void
 address SQLcatalog
 comment "a catalog statement";
@@ -1168,6 +1172,7 @@
 
 sql5_export str SQLmvc(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 sql5_export str SQLtransaction(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
+sql5_export str SQLcommit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 sql5_export str SQLcatalog(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 
 sql5_export str mvc_append_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
@@ -1725,6 +1730,23 @@
        return MAL_SUCCEED;
 }
 
+str
+SQLcommit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+{
+       int ret;
+       mvc *sql = NULL;
+       str msg = getContext(cntxt, mb, &sql, NULL);
+
+       (void) stk;
+       (void) pci;
+       if (sql->session->auto_commit != 1) 
+               throw(SQL,"sql.trans", "COMMIT: not allowed in auto commit 
mode");
+       ret = mvc_commit(sql, 0, 0);
+       if (ret < 0 ) 
+               throw(SQL, "sql.trans", "COMMIT: failed");
+       return msg;
+}
+
 static str
 create_table_or_view( mvc *sql, char *sname, sql_table *t, int temp)
 {
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to