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