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

Export result set for pre/persist commit procedures
While there fix passing the global HTM id lng value


diffs (134 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
@@ -342,14 +342,13 @@ SQLabort(Client cntxt, MalBlkPtr mb, Mal
 }
 
 str
-SQLprecommit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, long id)
+SQLprecommit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        mvc *sql = NULL;
        str msg;
        int result;
-       backend *b = NULL;
-       wrd nr;
-       str *w = getArgReference_str(stk, pci, 3);
+       backend *b = cntxt->sqlcontext;
+       lng *id = getArgReference_lng(stk, pci, 1);
 
        if ((msg = getSQLContext(cntxt, mb, &sql, NULL)) != NULL)
                return msg;
@@ -360,28 +359,25 @@ SQLprecommit(Client cntxt, MalBlkPtr mb,
                throw(SQL, "sql.precommit", "precommit not allowed in auto 
commit mode");
 
        /* execute the precommit */
-       result = mvc_precommit(sql, 0, 0, id);
+       result = mvc_precommit(sql, 0, 0, *id);
        if (result < 0) {
                throw(SQL, "sql.precommit", "failed");
        }
 
        /* get the result set */
-       nr = *getArgReference_wrd(stk, pci, 2);
-       b = cntxt->sqlcontext;
-       if (mvc_export_affrows(b, b->out, nr, *w))
+       if (mvc_export_affrows(b, b->out, 1, ""))
                throw(SQL, "sql.precommit", "failed - could not get affected 
rows");
        return msg;
 }
 
 str
-SQLpersistcommit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, long 
id)
+SQLpersistcommit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        mvc *sql = NULL;
        str msg;
        int result;
-       backend *b = NULL;
-       wrd nr;
-       str *w = getArgReference_str(stk, pci, 3);
+       backend *b = cntxt->sqlcontext;
+       lng *id = getArgReference_lng(stk, pci, 1);
 
        if ((msg = getSQLContext(cntxt, mb, &sql, NULL)) != NULL)
                return msg;
@@ -392,15 +388,13 @@ SQLpersistcommit(Client cntxt, MalBlkPtr
                throw(SQL, "sql.persistcommit", "persistcommit not allowed in 
auto commit mode");
 
        /* execute the persistcommit */
-       result = mvc_persistcommit(sql, 0, 0, id);
+       result = mvc_persistcommit(sql, 0, 0, *id);
        if (result < 0) {
                throw(SQL, "sql.persistcommit", "failed");
        }
 
        /* get the result set */
-       nr = *getArgReference_wrd(stk, pci, 2);
-       b = cntxt->sqlcontext;
-       if (mvc_export_affrows(b, b->out, nr, *w))
+       if (mvc_export_affrows(b, b->out, 1, ""))
                throw(SQL, "sql.persistcommit", "failed - could not get 
affected rows");
        return msg;
 }
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
@@ -70,8 +70,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, long id);
-sql5_export str SQLpersistcommit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr p, long id);
+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/include/sql_catalog.h b/sql/include/sql_catalog.h
--- a/sql/include/sql_catalog.h
+++ b/sql/include/sql_catalog.h
@@ -211,7 +211,7 @@ typedef struct sql_trans {
        struct sql_trans *parent;       /* multilevel transaction support */
        backend_stack stk;
 
-       long htm_id;    /* global transation id provided by the CoherentPaaS 
HTM */
+       lng htm_id;     /* global transation id provided by the CoherentPaaS 
HTM */
 } sql_trans;
 
 typedef struct sql_schema {
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
@@ -302,7 +302,7 @@ mvc_commit(mvc *m, int chain, const char
 }
 
 int
-mvc_precommit(mvc *m, int chain, const char *name, long id) {
+mvc_precommit(mvc *m, int chain, const char *name, lng id) {
        int result = SQL_OK;//, wait = 0;
        sql_trans *tr = m->session->tr;
        // set CPaaS HTM id
@@ -334,7 +334,7 @@ mvc_precommit(mvc *m, int chain, const c
 }
 
 int
-mvc_persistcommit(mvc *m, int chain, const char *name, long id) {
+mvc_persistcommit(mvc *m, int chain, const char *name, lng id) {
        int result = SQL_OK;//, wait = 0;
        sql_trans *tr = m->session->tr;
        // set CPaaS HTM id
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
@@ -138,8 +138,8 @@ extern void mvc_trans(mvc *c);
 extern int mvc_commit_prepare(mvc *m, int chain, const char *name, sql_trans 
*tr);
 extern void mvc_commit_finish(mvc *m, int chain, const char *name);
 extern int mvc_commit(mvc *c, int chain, const char *name);
-extern int mvc_precommit(mvc *m, int chain, const char *name, long id);
-extern int mvc_persistcommit(mvc *m, int chain, const char *name, long id);
+extern int mvc_precommit(mvc *m, int chain, const char *name, lng id);
+extern int mvc_persistcommit(mvc *m, int chain, const char *name, lng id);
 extern int mvc_rollback(mvc *c, int chain, const char *name);
 extern int mvc_release(mvc *c, const char *name);
 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to