public void RollbackPartial(Session session, int start, long timestamp) { object[] objArray = session.RowActionList.ToArray(); int count = session.RowActionList.Count; if (start != count) { for (int i = count - 1; i >= start; i--) { RowAction action = (RowAction)objArray[i]; if (((action != null) && (action.type != 0)) && (action.type != 3)) { Row memoryRow = action.MemoryRow; if (memoryRow == null) { memoryRow = (Row)action.Store.Get(action.GetPos(), false); } if (memoryRow != null) { action.Rollback(session, timestamp); int changeAction = action.MergeRollback(session, timestamp, memoryRow); action.Store.RollbackRow(session, memoryRow, changeAction, base.TxModel); } } } session.RowActionList.RemoveRange(start, session.RowActionList.Count - start); } }
public void RollbackPartial(Session session, int start, long timestamp) { object[] list = session.RowActionList.ToArray(); int count = session.RowActionList.Count; if (start != count) { for (int i = start; i < count; i++) { RowAction action = (RowAction)list[i]; if (action != null) { action.Rollback(session, timestamp); } } TransactionManagerCommon.MergeRolledBackTransaction(session, timestamp, list, start, count); base.FinaliseRows(session, list, start, count, false); session.RowActionList.RemoveRange(start, session.RowActionList.Count - start); } }