Changeset: 517091bd0c08 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=517091bd0c08 Modified Files: sql/storage/store.c Branch: Jun2020 Log Message:
fix small regression, ie all rollforward_update_* need to use the new function definition diffs (125 lines): diff --git a/sql/storage/store.c b/sql/storage/store.c --- a/sql/storage/store.c +++ b/sql/storage/store.c @@ -68,7 +68,7 @@ static int map_timestamp[MAX_MAP]; static lng map_log_saved_id[MAX_MAP]; static void -map_add(int ts, lng saved_id) +map_add(int ts, lng saved_id) { if (map_first != map_last) { int p = map_last-1; @@ -82,16 +82,16 @@ map_add(int ts, lng saved_id) map_timestamp[map_last] = ts; map_log_saved_id[map_last] = saved_id; map_last++; - if (map_last==MAX_MAP) + if (map_last==MAX_MAP) map_last = 0; if (map_last == map_first) { map_first++; - if (map_first==MAX_MAP) + if (map_first==MAX_MAP) map_first = 0; } } -static int +static int oldest_active_tid(void) { if (active_sessions && active_sessions->h) { @@ -101,8 +101,8 @@ oldest_active_tid(void) return -1; } -static lng -map_find_oldest_saved_id(int oldest_active_ts) +static lng +map_find_oldest_saved_id(int oldest_active_ts) { int i; lng saved_id = 0; @@ -2338,11 +2338,11 @@ store_exit(void) } static void -cleanup_table(sql_table *t) +cleanup_table(sql_table *t) { for (node *n = passive_sessions->h; n; n=n->next) { sql_session *s = n->data; - + for (node *m = s->tr->schemas.set->h; m; m = m->next) { sql_schema * schema = m->data; node *o = find_sql_table_node(schema, t->base.id); @@ -2392,7 +2392,7 @@ store_apply_deltas(bool not_locked) o = n->next; sql_table *b = n->data; if (b->base.wtime < tid || tid < 0) { /* deleted before the oldest transaction, time to remove */ - if (b->base.refcnt > 1) + if (b->base.refcnt > 1) cleanup_table(b); assert(b->base.refcnt == 1); list_remove_node(s->tables.dset, n); @@ -4072,7 +4072,7 @@ rollforward_changeset_updates(sql_trans ts->nelm = tbn->next; if (!ts->dset) ts->dset = list_new(tr->parent->sa, ts->destroy); - tb->wtime = fb->wtime; + tb->wtime = fb->wtime; list_move_data(ts->set, ts->dset, tb); } } @@ -4089,7 +4089,10 @@ rollforward_changeset_updates(sql_trans ok = rollforward_deletes(tr, tb, mode); } } - if (apply && ts->dset && oldest) { + if (apply && ts->dset && !cf) { + list_destroy(ts->dset); + ts->dset = NULL; + } else if (apply && ts->dset && oldest && cf) { for (node *o, *n = ts->dset->h; n; n = o) { o = n->next; sql_base *b = n->data; @@ -4195,6 +4198,13 @@ rollforward_changeset_deletes(sql_trans if (!cs) return ok; if (cs->dset) { + node *n; + + for (n = cs->dset->h; ok == LOG_OK && n; n = n->next) { + sql_base *b = n->data; + + ok = rf(tr, b, mode); + } if (apply) { list_destroy(cs->dset); cs->dset = NULL; @@ -4505,8 +4515,9 @@ rollforward_create_schema(sql_trans *tr, } static int -rollforward_update_part(sql_trans *tr, sql_base *fpt, sql_base *tpt, int mode) -{ +rollforward_update_part(sql_trans *tr, int oldest, sql_base *fpt, sql_base *tpt, int mode) +{ + (void)oldest; if (mode == R_APPLY) { sql_part *pt = (sql_part *) tpt; sql_part *opt = (sql_part *) fpt; @@ -4587,9 +4598,10 @@ rollforward_update_table(sql_trans *tr, } static int -rollforward_update_seq(sql_trans *tr, sql_sequence *ft, sql_sequence *tt, int mode) +rollforward_update_seq(sql_trans *tr, int oldest, sql_sequence *ft, sql_sequence *tt, int mode) { (void)tr; + (void)oldest; if (mode != R_APPLY) return LOG_OK; if (ft->start != tt->start) _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list