src/MergeIter.bend fails
raw source on the hub · import mylsm-lsm-store@0.2.0.0/src/MergeIter.bend as MergeIter
5 imports
import Base import ./Keys.bend as Keys import ./MemTable.bend as MemTable import ./Sstable.bend as Sstable import ./SortedRun.bend as SortedRun
Definitions
def scan_put2 source · line 14 · raw
@pair:Pair(Pair(String, String), Cmp) -> @+val:String -> @acc:List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry> -> List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry>
def scan_put source · line 25 · raw
@pair:Pair(Pair(String, String), Cmp) -> @+hi:String -> @+val:String -> @acc:List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry> -> List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry>
def scan_go source · line 36 · raw
@fuel:Nat -> @+lo:String -> @+hi:String -> @acc:List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry> -> @xs:List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry> -> List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry>
def flatten source · line 52 · raw
@mem:List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry> -> @levels:List<&2, List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry>> -> List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry>
Newest-first concat: memtable entries, then each level's tables in order.
def merge source · line 60 · raw
@mem:List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry> -> @levels:List<&2, List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry>> -> List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry>
Full merge: sorted, unique, newest version wins each key.
def scan source · line 64 · raw
@+merged:List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry> -> @lo:String -> @hi:String -> List<&2, 0x7279d7e59732e720723bbd4a452d447a/src/MemTable.Entry>
Range scan over a merged run: lo <= key < hi, tombstones dropped.