Changeset: 777a9e49d7e3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=777a9e49d7e3
Modified Files:
        tools/monetdbe/monetdbe.c
Branch: append-optimization
Log Message:

append fixes and cleanup


diffs (70 lines):

diff --git a/tools/monetdbe/monetdbe.c b/tools/monetdbe/monetdbe.c
--- a/tools/monetdbe/monetdbe.c
+++ b/tools/monetdbe/monetdbe.c
@@ -1096,6 +1096,7 @@ GENERATE_BASE_HEADERS(monetdbe_data_time
 char*
 monetdbe_append(monetdbe_database dbhdl, const char* schema, const char* 
table, monetdbe_column **input /*bat *batids*/, size_t column_count)
 {
+
        monetdbe_database_internal *mdbe = (monetdbe_database_internal*)dbhdl;
        mvc *m = NULL;
        sql_schema *s = NULL;
@@ -1159,7 +1160,6 @@ monetdbe_append(monetdbe_database dbhdl,
                int mtype = monetdbe_type(input[i]->type);
                const void* nil = (mtype>=0)?ATOMnilptr(mtype):NULL;
                char *v = input[i]->data;
-               //int w = 1;
 
                if (mtype < 0) {
                        mdbe->msg = createException(SQL, 
"monetdbe.monetdbe_append", "Cannot find type for column %zu", i);
@@ -1174,12 +1174,13 @@ monetdbe_append(monetdbe_database dbhdl,
                ) {
                        //-------------------------------------
                        BAT *bn = NULL;
-                       if ((bn = COLnew(0, TYPE_int, 0, TRANSIENT)) == NULL) {
+                               
+                       if ((bn = COLnew(0, mtype, 0, TRANSIENT)) == NULL) {
                                BBPreclaim(bn);
                                mdbe->msg = createException(SQL, 
"monetdbe.monetdbe_append", "Cannot create append column");
                                goto cleanup;
                        }
-;
+
                        //save prev heap pointer                        
                        char *prev_base;
                        size_t prev_size;
@@ -1191,14 +1192,14 @@ monetdbe_append(monetdbe_database dbhdl,
                        bn->theap.size = tailsize(bn, cnt);
                
                        //BATsetdims(bn); called in COLnew
+                       BATsetcapacity(bn, cnt);
                        BATsetcount(bn, cnt);
-                       BATsetcapacity(bn, cnt);
-               
+                       
                        //set default flags
                        BATsettrivprop(bn);
 
                        if (store_funcs.append_col(m->session->tr, c, bn, 
TYPE_bat) != 0) {
-                               mdbe->msg = createException(SQL, 
"monetdbe.monetdbe_append", "Cannot append values");
+                               mdbe->msg = createException(SQL, 
"monetdbe.monetdbe_append", "Cannot append BAT");
                                goto cleanup;
 
                        }
@@ -1207,15 +1208,7 @@ monetdbe_append(monetdbe_database dbhdl,
                        bn->theap.size = prev_size;
                        BBPreclaim(bn);
                        
-                       //-------------------------------------
-                       /*
-                       w = ATOMsize(mtype);
-                       for (size_t j=0; j<cnt; j++, v+=w){
-                               if (store_funcs.append_col(m->session->tr, c, 
v, mtype) != 0) {
-                                       mdbe->msg = createException(SQL, 
"monetdbe.monetdbe_append", "Cannot append values");
-                                       goto cleanup;
-                               }
-                       }*/
+                       
                } else if (mtype == TYPE_str) {
                        char **d = (char**)v;
 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to