Changeset: 36ea4421b969 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=36ea4421b969
Modified Files:
sql/storage/bat/bat_storage.c
sql/storage/store.c
Branch: nospare
Log Message:
fixed problem with savepoints (rollback/commit)
diffs (52 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
@@ -2539,8 +2539,7 @@ commit_update_col( sql_trans *tr, sql_ch
}
if (ok == LOG_OK && delta == d && oldest == commit_ts)
ok = tr_merge_delta(tr, delta);
- }
- if (ok == LOG_OK && tr->parent) /* move delta into older and cleanup
current save points */
+ } else if (ok == LOG_OK && tr->parent) /* move delta into older and
cleanup current save points */
c->data = savepoint_commit_delta(delta, commit_ts);
return ok;
}
@@ -2618,8 +2617,7 @@ commit_update_idx( sql_trans *tr, sql_ch
}
if (ok == LOG_OK && delta == d && oldest == commit_ts)
ok = tr_merge_delta(tr, delta);
- }
- if (ok == LOG_OK && tr->parent) /* cleanup older save points */
+ } else if (ok == LOG_OK && tr->parent) /* cleanup older save points */
i->data = savepoint_commit_delta(delta, commit_ts);
return ok;
}
@@ -2719,8 +2717,7 @@ commit_update_del( sql_trans *tr, sql_ch
}
if (ok == LOG_OK && dbat == d && oldest == commit_ts)
ok = tr_merge_dbat(tr, dbat);
- }
- if (ok == LOG_OK && tr->parent) {/* cleanup older save points */
+ } else if (ok == LOG_OK && tr->parent) {/* cleanup older save points */
t->data = savepoint_commit_dbat(dbat, commit_ts);
}
return ok;
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -3146,7 +3146,6 @@ sql_trans_rollback(sql_trans *tr)
{
sqlstore *store = tr->store;
ulng commit_ts = 0; /* invalid ts, ie rollback */
- ulng oldest = commit_ts;
/* global's are done via changes ?
if (0 && commit == 0) {
@@ -3220,6 +3219,7 @@ sql_trans_rollback(sql_trans *tr)
list_prepend(nl, n->data);
/* rollback */
+ ulng oldest = store_oldest(store, TRANSACTION_ID_BASE);
for(node *n=nl->h; n; n = n->next) {
sql_change *c = n->data;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list