Changeset: c64b42790ce9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c64b42790ce9
Modified Files:
sql/storage/bat/bat_storage.c
Branch: copybinary
Log Message:
Also refactor update_idx
diffs (51 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
@@ -672,27 +672,31 @@ bind_idx_data(sql_trans *tr, sql_idx *i)
return LOG_OK;
}
+static void*
+update_idx_prepare(sql_trans *tr, sql_idx *i)
+{
+ if (bind_idx_data(tr, i) == LOG_ERR)
+ return NULL;
+
+ sql_delta *delta = i->data;
+ delta->wtime = i->base.wtime = i->t->base.wtime = i->t->s->base.wtime =
tr->wtime = tr->wstime;
+ assert(tr != gtrans);
+ i->base.rtime = i->t->base.rtime = i->t->s->base.rtime = tr->stime;
+
+ delta->is_new = isNew(i);
+
+ return delta;
+}
+
static int
update_idx(sql_trans *tr, sql_idx * i, void *tids, void *upd, int tpe)
{
- BAT *b = tids;
- sql_delta *bat;
-
- if (tpe == TYPE_bat && !BATcount(b))
- return LOG_OK;
-
- if (bind_idx_data(tr, i) == LOG_ERR)
+ sql_delta *delta = update_idx_prepare(tr, i);
+ if (delta == NULL)
return LOG_ERR;
- bat = i->data;
- bat->wtime = i->base.wtime = i->t->base.wtime = i->t->s->base.wtime =
tr->wtime = tr->wstime;
- assert(tr != gtrans);
- i->base.rtime = i->t->base.rtime = i->t->s->base.rtime = tr->stime;
- if (tpe == TYPE_bat)
- return delta_update_bat(bat, tids, upd, isNew(i));
- else
- assert(0);
- return LOG_OK;
+ int ok = update_col_execute(delta, tids, upd, tpe == TYPE_bat);
+ return ok;
}
static int
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list