Changeset: 4983b0100804 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/4983b0100804
Modified Files:
sql/storage/bat/bat_storage.c
Branch: Jan2022
Log Message:
If there are no rows to append, don't add transaction change
diffs (50 lines):
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
@@ -2168,11 +2168,17 @@ append_col_execute(sql_trans *tr, sql_de
}
static int
-append_col(sql_trans *tr, sql_column *c, BUN offset, BAT *offsets, void *i,
BUN cnt, int tpe)
+append_col(sql_trans *tr, sql_column *c, BUN offset, BAT *offsets, void *data,
BUN cnt, int tpe)
{
int res = LOG_OK;
sql_delta *delta, *odelta = ATOMIC_PTR_GET(&c->data);
+ if (tpe == TYPE_bat) {
+ BAT *t = data;
+ if (!BATcount(t))
+ return LOG_OK;
+ }
+
if ((delta = bind_col_data(tr, c, NULL)) == NULL)
return LOG_ERR;
@@ -2183,7 +2189,7 @@ append_col(sql_trans *tr, sql_column *c,
trans_add(tr, &c->base, delta, &tc_gc_col, &commit_update_col,
isTempTable(c->t)?NULL:&log_update_col);
odelta = delta;
- if ((res = append_col_execute(tr, &delta, c->base.id, offset, offsets,
i, cnt, tpe, c->storage_type)) != LOG_OK)
+ if ((res = append_col_execute(tr, &delta, c->base.id, offset, offsets,
data, cnt, tpe, c->storage_type)) != LOG_OK)
return res;
if (odelta != delta) {
delta->next = odelta;
@@ -2199,11 +2205,17 @@ append_col(sql_trans *tr, sql_column *c,
}
static int
-append_idx(sql_trans *tr, sql_idx * i, BUN offset, BAT *offsets, void *data,
BUN cnt, int tpe)
+append_idx(sql_trans *tr, sql_idx *i, BUN offset, BAT *offsets, void *data,
BUN cnt, int tpe)
{
int res = LOG_OK;
sql_delta *delta, *odelta = ATOMIC_PTR_GET(&i->data);
+ if (tpe == TYPE_bat) {
+ BAT *t = data;
+ if (!BATcount(t))
+ return LOG_OK;
+ }
+
if ((delta = bind_idx_data(tr, i, NULL)) == NULL)
return LOG_ERR;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list