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