Changeset: a7c33b12d6ca for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a7c33b12d6ca
Modified Files:
        sql/backends/monet5/sql.c
        sql/storage/bat/bat_storage.c
        sql/storage/sql_storage.h
Branch: copybinary
Log Message:

Prepare bat_storage for single value append_exec's


diffs (69 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
@@ -1793,7 +1793,7 @@ mvc_append_exec_wrap(Client cntxt, MalBl
        if( b && BATcount(b) > 4096 && !b->batTransient)
                BATmsync(b);
 
-       int ret = store_funcs.append_col_exec(cookie, b);
+       int ret = store_funcs.append_col_exec(cookie, b, true);
 
        BBPunfix(b->batCacheid);
 
diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -866,14 +866,21 @@ append_col_prepare(sql_trans *tr, sql_co
 }
 
 static int
-append_col_execute(void *incoming_delta, void *incoming_bat)
+append_col_execute(void *incoming_delta, void *incoming_data, bool is_bat)
 {
        sql_delta *delta = incoming_delta;
-       BAT *bat = incoming_bat;
-
-       if (!BATcount(bat))
-               return LOG_OK;
-       int ok = delta_append_bat(delta, bat);
+       int ok;
+
+       if (is_bat) {
+               BAT *bat = incoming_data;
+
+               if (!BATcount(bat))
+                       return LOG_OK;
+               ok = delta_append_bat(delta, bat);
+       } else {
+               ok = delta_append_val(delta, incoming_data);
+       }
+
        return ok;
 }
 
@@ -884,12 +891,7 @@ append_col(sql_trans *tr, sql_column *c,
        if (delta == NULL)
                return LOG_ERR;
 
-       int ok;
-       if (tpe == TYPE_bat) {
-               ok = append_col_execute(delta, i);
-       } else {
-               ok = delta_append_val(delta, i);
-       }
+       int ok = append_col_execute(delta, i, tpe == TYPE_bat);
 
        return ok;
 }
diff --git a/sql/storage/sql_storage.h b/sql/storage/sql_storage.h
--- a/sql/storage/sql_storage.h
+++ b/sql/storage/sql_storage.h
@@ -137,7 +137,7 @@ typedef void *(*bind_del_data_fptr) (sql
 */
 typedef int (*append_col_fptr) (sql_trans *tr, sql_column *c, void *d, int t);
 typedef void *(*append_col_prep_fptr) (sql_trans *tr, sql_column *c);
-typedef int (*append_col_exec_fptr) (void *dlt, void *b);
+typedef int (*append_col_exec_fptr) (void *dlt, void *b, bool is_bat);
 typedef int (*append_idx_fptr) (sql_trans *tr, sql_idx *i, void *d, int t);
 typedef int (*update_col_fptr) (sql_trans *tr, sql_column *c, void *tids, void 
*d, int t);
 typedef int (*update_idx_fptr) (sql_trans *tr, sql_idx *i, void *tids, void 
*d, int t);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to