Changeset: 7bb1804abbe6 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7bb1804abbe6 Modified Files: sql/storage/objectset.c sql/storage/sql_storage.h sql/storage/store.c Branch: nospare Log Message:
small fixes diffs (96 lines): diff --git a/sql/storage/objectset.c b/sql/storage/objectset.c --- a/sql/storage/objectset.c +++ b/sql/storage/objectset.c @@ -497,9 +497,12 @@ tc_gc_objectversion(sql_store store, sql { (void) commit_ts; + assert(!change->handled); objectversion *ov = (objectversion*)change->data; - return os_cleanup( (sqlstore*) store, ov, oldest); + int res = os_cleanup( (sqlstore*) store, ov, oldest); + change->handled = (res)?true:false; + return res; } static int @@ -509,6 +512,7 @@ tc_commit_objectversion(sql_trans *tr, s if (commit_ts) { assert(ov->ts == tr->tid); ov->ts = commit_ts; + change->committed = true; (void)oldest; } else { 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 @@ -489,6 +489,8 @@ typedef struct sqlstore { typedef struct sql_change { sql_base *obj; void *data; /* data changes */ + bool committed; /* commit or rollback */ + bool handled; /* handled in commit */ tc_log_fptr log; /* callback to log changes */ tc_commit_fptr commit; /* callback to commit or rollback the changes */ tc_cleanup_fptr cleanup;/* callback to cleanup changes */ diff --git a/sql/storage/store.c b/sql/storage/store.c --- a/sql/storage/store.c +++ b/sql/storage/store.c @@ -2141,8 +2141,6 @@ store_exit(sqlstore *store) MT_lock_unset(&store->lock); if (store->changes) { ulng oldest = store_timestamp(store)+1; - if (!list_empty(store->changes)) - printf("pending changes %d\n", list_length(store->changes)); for(node *n=store->changes->h; n; n = n->next) { sql_change *c = n->data; @@ -3422,7 +3420,9 @@ sql_trans_rollback(sql_trans *tr) node *next = n->next; sql_change *c = n->data; - if (c->cleanup && c->cleanup(store, c, commit_ts, oldest)) { + if (!c->cleanup) { + _DELETE(c); + } else if (c->cleanup && c->cleanup(store, c, commit_ts, oldest)) { list_remove_node(store->changes, store, n); _DELETE(c); } @@ -3432,9 +3432,11 @@ sql_trans_rollback(sql_trans *tr) for(node *n=nl->h; n; n = n->next) { sql_change *c = n->data; - if (c->cleanup && !c->cleanup(store, c, commit_ts, oldest)) + if (!c->cleanup) { + _DELETE(c); + } else if (c->cleanup && !c->cleanup(store, c, commit_ts, oldest)) { store->changes = sa_list_append(tr->sa, store->changes, c); - else + } else _DELETE(c); } list_destroy(nl); @@ -3560,7 +3562,9 @@ sql_trans_commit(sql_trans *tr) node *next = n->next; sql_change *c = n->data; - if (c->cleanup && c->cleanup(store, c, commit_ts, oldest)) { + if (!c->cleanup) { + _DELETE(c); + } else if (c->cleanup && c->cleanup(store, c, commit_ts, oldest)) { list_remove_node(store->changes, store, n); _DELETE(c); } @@ -3600,7 +3604,9 @@ sql_trans_commit(sql_trans *tr) node *next = n->next; sql_change *c = n->data; - if (c->cleanup && c->cleanup(store, c, commit_ts, oldest)) { + if (!c->cleanup) { + _DELETE(c); + } else if (c->cleanup && c->cleanup(store, c, commit_ts, oldest)) { _DELETE(c); } else if (tr->parent) { tr->parent->changes = sa_list_append(tr->sa, tr->parent->changes, c); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list