Changeset: 69092fc4cf47 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=69092fc4cf47
Modified Files:
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql.mx
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/sql_statement.c
        sql/backends/monet5/sql_statement.h
Branch: newstorage
Log Message:

introduced new sql statement type "st_claim"


diffs (123 lines):

diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -3068,6 +3068,7 @@ rel2bin_insert( mvc *sql, sql_rel *rel, 
        } else {
                s = stmt_aggr(sql->sa, insert->op1, NULL, NULL, 
sql_bind_aggr(sql->sa, sql->session->schema, "count", NULL), 1, 0);
        }
+       list_prepend(l, stmt_claim(sql->sa, s));
        if (ddl)
                list_prepend(l, ddl);
        else
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
@@ -262,6 +262,10 @@ command getVersion(clientid:int):lng
 address mvc_getVersion
 comment "Return the database version identifier for a client";
 
+pattern append(mvc:int, cnt:wrd):int
+address mvc_claim
+comment "Claim number of buns.";
+
 pattern append(mvc:int, sname:str, tname:str, cname:str, ins:any):int
 address mvc_append_wrap
 comment "Append b to the column tname.cname (possibly optimized to replace the 
insert bat of tname.cname (returns sequence number for order dependence)";
@@ -1365,6 +1369,7 @@ sql5_export str SQLabort(Client cntxt, M
 sql5_export str SQLtransaction2(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 sql5_export str SQLcatalog(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 
+sql5_export str mvc_claim(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci);
 sql5_export str mvc_append_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 sql5_export str mvc_update_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
 sql5_export str mvc_bind_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
@@ -3280,6 +3285,23 @@ mvc_bind_idxbat_wrap(Client cntxt, MalBl
        throw(SQL, "sql.idxbind", "unable to find index %s for %s.%s", *iname, 
*sname, *tname);
 }
 
+//sql5_export str mvc_claim(Client cntxt, MalBlkPtr mb, MalStkPtr stk, 
InstrPtr pci);
+str
+mvc_claim(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
+{
+       int *res = (int*)getArgReference(stk, pci, 0);
+       mvc *m = NULL;
+       str msg = getSQLContext(cntxt,mb, &m, NULL);
+       //wrd cnt = *(wrd *)getArgReference(stk, pci, 2);
+
+       *res = 0;
+       if ((msg = checkSQLContext(cntxt)) != NULL)
+               return msg;
+
+       /* implementation here */
+       return MAL_SUCCEED;
+}
+
 /*mvc_append_wrap(int *bid, str *sname, str *tname, str *cname, ptr d) */
 str
 mvc_append_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
diff --git a/sql/backends/monet5/sql_gencode.c 
b/sql/backends/monet5/sql_gencode.c
--- a/sql/backends/monet5/sql_gencode.c
+++ b/sql/backends/monet5/sql_gencode.c
@@ -1808,6 +1808,15 @@ static int
                        s->nr = getDestVar(q);
                }
                        break;
+               case st_claim : {
+                       int c = _dumpstmt(sql, mb, s->op1);
+
+                       q = newStmt1(mb, sqlRef, "claim");
+                       q = pushArgument(mb, q, sql->mvc_var);
+                       /* ToDo add table */
+                       q = pushArgument(mb, q, c);
+                       sql->mvc_var = s->nr = getDestVar(q);
+               } break;
                case st_append:{
                        int l = 0;
                        int r = _dumpstmt(sql, mb, s->op2);
diff --git a/sql/backends/monet5/sql_statement.c 
b/sql/backends/monet5/sql_statement.c
--- a/sql/backends/monet5/sql_statement.c
+++ b/sql/backends/monet5/sql_statement.c
@@ -329,6 +329,7 @@ stmt_deps(list *dep_list, stmt *s, int d
                case st_joinN:
                case st_unique:
                case st_append:
+               case st_claim:
                case st_rs_column:
 
                case st_cond:
@@ -540,6 +541,16 @@ stmt_append_col(sql_allocator *sa, sql_c
 }
 
 stmt *
+stmt_claim(sql_allocator *sa, stmt *b) {
+
+       stmt *s = stmt_create(sa, st_claim);
+
+       s->op1 = b;
+
+       return s;
+}
+
+stmt *
 stmt_append_idx(sql_allocator *sa, sql_idx *i, stmt *b)
 {
        stmt *s = stmt_create(sa, st_append_idx);
diff --git a/sql/backends/monet5/sql_statement.h 
b/sql/backends/monet5/sql_statement.h
--- a/sql/backends/monet5/sql_statement.h
+++ b/sql/backends/monet5/sql_statement.h
@@ -93,6 +93,7 @@ typedef enum stmt_type {
        st_update_col,
        st_update_idx,
        st_delete,
+       st_claim,
 
        st_group,
        st_unique,
@@ -168,6 +169,7 @@ extern stmt *stmt_append_idx(sql_allocat
 extern stmt *stmt_update_col(sql_allocator *sa, sql_column *c, stmt *tids, 
stmt *upd);
 extern stmt *stmt_update_idx(sql_allocator *sa, sql_idx *i, stmt *tids, stmt 
*upd);
 extern stmt *stmt_delete(sql_allocator *sa, sql_table *t, stmt *b);
+extern stmt *stmt_claim(sql_allocator *sa, stmt *b);
 
 extern stmt *stmt_append(sql_allocator *sa, stmt *c, stmt *values);
 extern stmt *stmt_table_clear(sql_allocator *sa, sql_table *t);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to