def compact

mylsm-lsm-store@0.6.0.1 · src/ByteDurableDb.bend:1036

import mylsm-lsm-store@0.6.0.1/src/ByteDurableDb.bend as ByteDurableDb
import Base
import mylsm-lsm-store@0.6.0.1/src/scan/VisibleStats.bend as VisibleStats

1036# Publishes a canonical byte table with tombstones removed.
1037def compact(handle: Handle) -> IO(Handle & Result<&1, &1, Error, Unit>):
1038  match handle:
1039    case Handle{path, lock, table, Open{}, base_stats}:
1040      compact.pathcopies(path.clone.pair(path), lock, table)
1041    case Handle{path, lock, table, Poisoned{}, base_stats}:
1042      IO.pure(Handle & Result<&1, &1, Error, Unit>,
1043        (Handle{path, lock, table, Poisoned{}, VisibleStats.Stats{0n, 0n}}, Fail{CommitUnknown{0, "database handle requires reopen"}}))

Uses (12)

Used by (1)