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

Add boilerplate SQLprecommit and SQLpersistcommit
- Add MAL reference and export
- Add boilerplate function definition


diffs (72 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
@@ -356,6 +356,40 @@ SQLabort(Client cntxt, MalBlkPtr mb, Mal
 }
 
 str
+SQLprecommit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+{
+       return MAL_SUCCEED;
+}
+
+str
+SQLpersistcommit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+{
+       return MAL_SUCCEED;
+}
+
+str
+SQLcommit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+{
+       int ret;
+       mvc *sql = NULL;
+       str msg;
+       (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");
+       ret = mvc_commit(sql, 0, 0);
+       if (ret < 0)
+               throw(SQL, "sql.trans", "2D000!COMMIT: failed");
+       return msg;
+}
+
+str
 SQLshutdown_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        str answ = *(str *) getArgReference(stk, pci, 0);
diff --git a/sql/backends/monet5/sql.h b/sql/backends/monet5/sql.h
--- a/sql/backends/monet5/sql.h
+++ b/sql/backends/monet5/sql.h
@@ -81,6 +81,8 @@ sql5_export str SQLmvc(Client cntxt, Mal
 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 SQLabort(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
+sql5_export str SQLprecommit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
+sql5_export str SQLpersistcommit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p);
 sql5_export str SQLshutdown_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 sql5_export str SQLtransaction2(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 sql5_export str SQLcatalog(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
diff --git a/sql/backends/monet5/sql.mal b/sql/backends/monet5/sql.mal
--- a/sql/backends/monet5/sql.mal
+++ b/sql/backends/monet5/sql.mal
@@ -66,6 +66,12 @@ pattern abort()
 address SQLabort
 comment "Trigger the abort operation for a MAL block";
 
+address SQLprecommit()
+comment "Pre-commit changes, writing them only to the WAL.";
+pattern persistcommit(c:any...)
+address SQLpersistcommit()
+comment "Persists per-commited changes, writing them to certain BATs.";
+
 pattern catalog(type:int,sname:str,name:str,action:int):void
 address SQLcatalog
 comment "a catalog statement";
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to