Changeset: 85d5f8efd4db for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=85d5f8efd4db
Modified Files:
        monetdb5/optimizer/opt_prelude.c
        monetdb5/optimizer/opt_prelude.h
        monetdb5/optimizer/opt_support.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql.h
        sql/storage/bat/bat_storage.c
        sql/storage/sql_storage.h
Branch: default
Log Message:

Get rid of most of the {append,update}_{col,idx}_{prepare,execute} stuff


diffs (truncated from 502 to 300 lines):

diff --git a/monetdb5/optimizer/opt_prelude.c b/monetdb5/optimizer/opt_prelude.c
--- a/monetdb5/optimizer/opt_prelude.c
+++ b/monetdb5/optimizer/opt_prelude.c
@@ -42,9 +42,6 @@ const char *andRef;
 const char *appendidxRef;
 const char *appendBulkRef;
 const char *appendRef;
-const char *append_prepRef;
-const char *append_execRef;
-const char *append_finishRef;
 const char *arrayRef;
 const char *assertRef;
 const char *attachRef;
@@ -313,7 +310,6 @@ const char *transactionRef;
 const char *transaction_releaseRef;
 const char *transaction_rollbackRef;
 const char *umaskRef;
-const char *update_execRef;
 const char *uniqueRef;
 const char *unlockRef;
 const char *unpackRef;
@@ -356,9 +352,6 @@ void optimizerInit(void)
        appendidxRef = putName("append_idxbat");
        appendBulkRef = putName("appendBulk");
        appendRef = putName("append");
-       append_prepRef = putName("append_prep");
-       append_execRef = putName("append_exec");
-       append_finishRef = putName("append_finish");
        arrayRef = putName("array");
        assertRef = putName("assert");
        attachRef = putName("attach");
@@ -627,7 +620,6 @@ void optimizerInit(void)
        transaction_releaseRef= putName("transaction_release");
        transaction_rollbackRef= putName("transaction_rollback");
        umaskRef = putName("umask");
-       update_execRef = putName("update_exec");
        uniqueRef= putName("unique");
        unlockRef= putName("unlock");
        unpackRef = putName("unpack");
diff --git a/monetdb5/optimizer/opt_prelude.h b/monetdb5/optimizer/opt_prelude.h
--- a/monetdb5/optimizer/opt_prelude.h
+++ b/monetdb5/optimizer/opt_prelude.h
@@ -38,9 +38,6 @@ mal_export  const char *andRef;
 mal_export  const char *appendidxRef;
 mal_export  const char *appendBulkRef;
 mal_export  const char *appendRef;
-mal_export  const char *append_prepRef;
-mal_export  const char *append_execRef;
-mal_export  const char *append_finishRef;
 mal_export  const char *arrayRef;
 mal_export  const char *assertRef;
 mal_export  const char *attachRef;
@@ -314,7 +311,6 @@ mal_export  const char *transactionRef;
 mal_export  const char *transaction_releaseRef;
 mal_export  const char *transaction_rollbackRef;
 mal_export  const char *umaskRef;
-mal_export  const char *update_execRef;
 mal_export  const char *uniqueRef;
 mal_export  const char *unlockRef;
 mal_export  const char *unpackRef;
diff --git a/monetdb5/optimizer/opt_support.c b/monetdb5/optimizer/opt_support.c
--- a/monetdb5/optimizer/opt_support.c
+++ b/monetdb5/optimizer/opt_support.c
@@ -440,8 +440,6 @@ hasSideEffects(MalBlkPtr mb, InstrPtr p,
                if (getFunctionId(p) == mvcRef) return FALSE;
                if (getFunctionId(p) == singleRef) return FALSE;
                if (getFunctionId(p) == importColumnRef) return FALSE;
-               if (getFunctionId(p) == append_execRef) return FALSE;
-               if (getFunctionId(p) == update_execRef) return FALSE;
                return TRUE;
        }
        if( getModuleId(p) == mapiRef){
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
@@ -1775,208 +1775,6 @@ mvc_append_wrap(Client cntxt, MalBlkPtr 
        return MAL_SUCCEED;
 }
 
-static str mvc_modify_prep(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci, modify_col_prep_fptr colprep, modify_idx_prep_fptr idxprep);
-
-// chain_out, cookie_1, ..., cookie_N := sql.append_prep(chain_in, s, t, c_1, 
... c_N);
-str
-mvc_append_prep_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
-{
-       mvc *m = NULL;
-       str msg;
-       if ((msg = getSQLContext(cntxt, mb, &m, NULL)) != NULL)
-               return msg;
-       sqlstore *store = m->session->tr->store;
-       return mvc_modify_prep(cntxt, mb, stk, pci, 
store->storage_api.append_col_prep, store->storage_api.append_idx_prep);
-}
-
-// chain_out, cookie_1, ..., cookie_N := sql.update_prep(chain_in, s, t, c_1, 
... c_N);
-str
-mvc_update_prep_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
-{
-       mvc *m = NULL;
-       str msg;
-       if ((msg = getSQLContext(cntxt, mb, &m, NULL)) != NULL)
-               return msg;
-       sqlstore *store = m->session->tr->store;
-       return mvc_modify_prep(cntxt, mb, stk, pci, 
store->storage_api.update_col_prep, store->storage_api.update_idx_prep);
-}
-
-// chain_out, cookie_1, ..., cookie_N := sql.{update,modify}_prep(chain_in, s, 
t, c_1, ... c_N);
-static str
-mvc_modify_prep(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, 
modify_col_prep_fptr colprep, modify_idx_prep_fptr idxprep)
-{
-       int *chain_out = getArgReference_int(stk, pci, 0);
-       int chain_in = *getArgReference_int(stk, pci, pci->retc);
-       mvc *m = NULL;
-       str msg;
-       const char *sname = *getArgReference_str(stk, pci, pci->retc + 1);
-       const char *tname = *getArgReference_str(stk, pci, pci->retc + 2);
-       sql_schema *s;
-       sql_table *t;
-
-       // for N columns, we ought to have N + 1 return values and N + 3 
parameters.
-       int first_col = pci->retc + 3;
-       int first_ret = 1;
-       int ncolumns = pci->retc - first_ret;
-       if (pci->argc - first_col != ncolumns)
-               throw(SQL, "sql.append_prep",
-                       SQLSTATE(42000) "sql.append_prep inconsistent argument 
count argc=%d retc=%d", pci->argc, pci->retc);
-
-       *chain_out = chain_in;
-
-       if (strNil(sname))
-               throw(SQL, "sql.modify_prep", SQLSTATE(42000) "schema name is 
nil");
-       if (strNil(tname))
-               throw(SQL, "sql.modify_prep", SQLSTATE(42000) "table name is 
nil");
-
-       if ((msg = getSQLContext(cntxt, mb, &m, NULL)) != NULL)
-               return msg;
-       if ((msg = checkSQLContext(cntxt)) != NULL)
-               return msg;
-       s = mvc_bind_schema(m, sname);
-       if (s == NULL)
-               throw(SQL, "sql.modify_prep", SQLSTATE(3F000) "Schema missing 
%s", sname);
-       t = mvc_bind_table(m, s, tname);
-       if (t == NULL)
-               throw(SQL, "sql.modify_prep", SQLSTATE(42S02) "Table missing 
%s.%s", sname, tname);
-
-       for (int i = 0; i < ncolumns; i++) {
-               const char *cname = *getArgReference_str(stk, pci, first_col + 
i);
-               ptr *cookie_out = getArgReference_ptr(stk, pci, first_ret + i);
-
-               if (strNil(cname))
-                       throw(SQL, "sql.modify_prep", SQLSTATE(42000) "column 
name %d is nil", i);
-
-               bool is_column = cname[0] != '%';
-               if (is_column) {
-                       sql_column *c = mvc_bind_column(m, t, cname);
-                       if (c == NULL)
-                               throw(SQL, "sql.modify_prep", SQLSTATE(42S02) 
"Column missing %s.%s.%s", sname, tname, cname);
-                       *cookie_out = colprep(m->session->tr, m->sa, c);
-                       if (!(*cookie_out))
-                               throw(SQL, "sql.modify_prep", SQLSTATE(42000) 
"Transaction conflict on %s.%s.%s", sname, tname, cname);
-               } else {
-                       sql_idx *i = mvc_bind_idx(m, s, cname + 1);
-                       if (i == NULL)
-                               throw(SQL, "sql.modify_prep", SQLSTATE(42S02) 
"Index missing %s.%s.%s", sname, tname, cname);
-                       *cookie_out = idxprep(m->session->tr, m->sa, i);
-                       if (!(*cookie_out))
-                               throw(SQL, "sql.modify_prep", SQLSTATE(42000) 
"Transaction conflict on %s.%s.%s", sname, tname, cname);
-               }
-       }
-
-       return MAL_SUCCEED;
-}
-
-// sql.append_exec(cookie_1, bat_1);
-str
-mvc_append_exec_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
-{
-       mvc *m = NULL;
-       str msg;
-       if ((msg = getSQLContext(cntxt, mb, &m, NULL)) != NULL)
-               return msg;
-       sqlstore *store = m->session->tr->store;
-
-       int ret;
-       ptr *res_cookie = getArgReference_ptr(stk, pci, 0);
-       ptr cookie = *getArgReference_ptr(stk, pci, 1);
-       lng pos = *(lng*)getArgReference_lng(stk, pci, 2);
-       ptr incoming = getArgReference(stk, pci, 3);
-       int incoming_type = getArgType(mb, pci, 3);
-
-       *res_cookie = cookie;
-       if (incoming_type > GDKatomcnt)
-               incoming_type = TYPE_bat;
-
-       if (incoming_type == TYPE_bat) {
-               bat batid = *(bat*)incoming;
-               BAT *b = BATdescriptor(batid);
-               if (b == NULL)
-                       throw(SQL, "sql.append_exec", SQLSTATE(HY005) "Cannot 
access column descriptor");
-               if (BATcount(b) > 4096 && !b->batTransient)
-                       BATmsync(b);
-
-               ret = store->storage_api.append_col_exec(cookie, (size_t) pos, 
b, true);
-               BBPunfix(b->batCacheid);
-       } else {
-               if (ATOMextern(incoming_type))
-                       incoming = *(ptr*)incoming;
-
-               ret = store->storage_api.append_col_exec(cookie, (size_t) pos, 
incoming, false);
-       }
-
-       if (ret != LOG_OK)
-               throw(SQL, "sql_append_exec", GDK_EXCEPTION);
-
-       return MAL_SUCCEED;
-}
-
-// sql.update_exec(cookie_1, cand_1, bat_1);
-str
-mvc_update_exec_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
-{
-       mvc *m = NULL;
-       str msg;
-       if ((msg = getSQLContext(cntxt, mb, &m, NULL)) != NULL)
-               return msg;
-       sqlstore *store = m->session->tr->store;
-       (void) mb;
-       int ret;
-       ptr *res_cookie = getArgReference_ptr(stk, pci, 0);
-       ptr cookie = *getArgReference_ptr(stk, pci, 1);
-       bat tids_bat = *getArgReference_bat(stk, pci, 2);
-       bat incoming_bat = *getArgReference_bat(stk, pci, 3);
-
-       *res_cookie = cookie;
-       BAT *data = BATdescriptor(incoming_bat);
-       if (data == NULL)
-               throw(SQL, "sql.update_exec", SQLSTATE(HY005) "Cannot access 
column descriptor");
-       if (BATcount(data) > 4096 && !data->batTransient)
-               BATmsync(data);
-
-       BAT *tids = BATdescriptor(tids_bat);
-       if (tids == NULL) {
-               BBPunfix(data->batCacheid);
-               throw(SQL, "sql.update_exec", SQLSTATE(HY005) "Cannot access 
column descriptor");
-       }
-       if (BATcount(tids) > 4096 && !tids->batTransient)
-               BATmsync(tids);
-
-       ret = store->storage_api.update_col_exec(cookie, tids, data, true);
-       BBPunfix(data->batCacheid);
-       BBPunfix(tids->batCacheid);
-
-       if (ret != LOG_OK)
-               throw(SQL, "sql_update_exec", GDK_EXCEPTION);
-
-       return MAL_SUCCEED;
-}
-
-
-// chain_out := sql.append_prep(chain_in, cookie_1, ... cookie_N);
-str
-mvc_append_finish_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
-{
-       int *chain_out = getArgReference_int(stk, pci, 0);
-       int chain_in = *getArgReference_int(stk, pci, 1);
-
-       *chain_out = chain_in;
-
-       /* cleanup */
-       /*
-       for( int i = 2; i < pci->argc; i++){
-               ptr p = *getArgReference_ptr(stk, pci, i);
-
-               _DELETE(p);
-       }
-       */
-       (void)cntxt;
-       (void)mb;
-       return MAL_SUCCEED;
-}
-
-
 /*mvc_update_wrap(int *bid, str *sname, str *tname, str *cname, ptr d) */
 str
 mvc_update_wrap(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
@@ -5106,49 +4904,8 @@ static mel_func sql_init_funcs[] = {
  command("sql", "getVersion", mvc_getVersion, false, "Return the database 
version identifier for a client.", args(1,2, arg("",lng),arg("clientid",int))),
  pattern("sql", "grow", mvc_grow_wrap, false, "Resize the tid column of a 
declared table.", args(1,3, arg("",int),batarg("tid",oid),argany("",1))),
  pattern("sql", "claim", mvc_claim_wrap, true, "Claims slots for appending 
rows.", args(1,5, 
arg("",lng),arg("mvc",int),arg("sname",str),arg("tname",str),arg("cnt",lng))),
- pattern("sql", "append", mvc_append_wrap, false,
-       "Append to the column tname.cname (possibly optimized to replace the 
insert bat of tname.cname. Returns sequence number for order dependence.",
-       args(1,7,
-               arg("",int),
-               
arg("mvc",int),arg("sname",str),arg("tname",str),arg("cname",str),arg("offset",lng),argany("ins",0))),
-
- pattern("sql", "append_prep", mvc_append_prep_wrap, false,
-       "Prepare to append to the column. Return new mvc state and cookie to 
pass to append_exec",
-    args(2,6,
-               arg("",int),vararg("",ptr),
-               
arg("mvc",int),arg("sname",str),arg("tname",str),vararg("cname",str))),
-
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to