delete method

int delete(
  1. TxnContext ctx,
  2. bool predicate(
    1. Map<String, dynamic>
    ),
  3. Set<int> activeTransactions
)

Delete rows matching predicate under ctx. Returns count of deleted rows.

Implementation

int delete(
  TxnContext ctx,
  bool Function(Map<String, dynamic>) predicate,
  Set<int> activeTransactions,
) {
  int count = 0;
  for (final chain in _chains.values) {
    final visible = chain.visibleVersion(ctx);
    if (visible == null) continue;
    if (!predicate(visible.values)) continue;

    _checkWriteConflict(chain.head, activeTransactions, ctx.txnId);

    chain.head.deletedByTxn = ctx.txnId;
    count++;
  }
  return count;
}