committedRecords method
Implementation
Future<List<WalRecord>> committedRecords() async {
final all = await readAll();
if (all.isEmpty) return [];
final committed = <int>{0};
final rolledBack = <int>{};
for (final r in all) {
if (r.op == WalOp.commitTxn) committed.add(r.txnId);
if (r.op == WalOp.rollbackTxn) rolledBack.add(r.txnId);
}
final result = all.where((r) {
if (r.op == WalOp.beginTxn ||
r.op == WalOp.commitTxn ||
r.op == WalOp.rollbackTxn ||
r.op == WalOp.checkpoint) return false;
if (rolledBack.contains(r.txnId)) return false;
return committed.contains(r.txnId);
}).toList();
result.sort((a, b) => a.lsn.compareTo(b.lsn));
return result;
}