reset ---- # Use the key string as the value so that it's easy to tell when we surface the # wrong value. batch commit set a a set b b set c c set d d range-key-set b c @5 boop range-key-set cat dog @3 beep ---- committed 6 keys flush ---- # Scan forward combined-iter stats seek-ge a next stats next next next next stats ---- stats: (interface (dir, seek, step): (fwd, 0, 0), (rev, 0, 0)), (internal (dir, seek, step): (fwd, 0, 0), (rev, 0, 0)) a: (a, .) b: (b, [b-c) @5=boop UPDATED) stats: (interface (dir, seek, step): (fwd, 1, 1), (rev, 0, 0)), (internal (dir, seek, step): (fwd, 1, 2), (rev, 0, 0)), (internal-stats: (block-bytes: (total 89B, cached 0B, read-time 0s)), (points: (count 2, key-bytes 2B, value-bytes 2B, tombstoned 0))), (range-key-stats: (count 1), (contained points: (count 1, skipped 0))) c: (c, . UPDATED) cat: (., [cat-dog) @3=beep UPDATED) d: (d, [cat-dog) @3=beep) . stats: (interface (dir, seek, step): (fwd, 1, 5), (rev, 0, 0)), (internal (dir, seek, step): (fwd, 1, 6), (rev, 0, 0)), (internal-stats: (block-bytes: (total 89B, cached 0B, read-time 0s)), (points: (count 4, key-bytes 4B, value-bytes 4B, tombstoned 0))), (range-key-stats: (count 2), (contained points: (count 2, skipped 0))) # Do the above forward iteration but with a mask suffix. The results should be # identical despite range keys serving as masks, because none of the point keys # have suffixes. combined-iter mask-suffix=@9 seek-ge a next next next next next stats ---- a: (a, .) b: (b, [b-c) @5=boop UPDATED) c: (c, . UPDATED) cat: (., [cat-dog) @3=beep UPDATED) d: (d, [cat-dog) @3=beep) . stats: (interface (dir, seek, step): (fwd, 1, 5), (rev, 0, 0)), (internal (dir, seek, step): (fwd, 1, 6), (rev, 0, 0)), (internal-stats: (block-bytes: (total 89B, cached 89B, read-time 0s)), (points: (count 4, key-bytes 4B, value-bytes 4B, tombstoned 0))), (range-key-stats: (count 2), (contained points: (count 2, skipped 0))) # Scan backward combined-iter seek-lt z prev prev prev prev prev stats ---- d: (d, [cat-dog) @3=beep UPDATED) cat: (., [cat-dog) @3=beep) c: (c, . UPDATED) b: (b, [b-c) @5=boop UPDATED) a: (a, . UPDATED) . stats: (interface (dir, seek, step): (fwd, 0, 0), (rev, 1, 5)), (internal (dir, seek, step): (fwd, 0, 0), (rev, 1, 6)), (internal-stats: (block-bytes: (total 89B, cached 89B, read-time 0s)), (points: (count 4, key-bytes 4B, value-bytes 4B, tombstoned 0))), (range-key-stats: (count 2), (contained points: (count 2, skipped 0))) combined-iter seek-ge ace seek-ge b seek-ge c seek-ge cab seek-ge cat seek-ge d seek-ge day seek-ge dog stats ---- b: (b, [b-c) @5=boop UPDATED) b: (b, [b-c) @5=boop) c: (c, . UPDATED) cat: (., [cat-dog) @3=beep UPDATED) cat: (., [cat-dog) @3=beep) d: (d, [cat-dog) @3=beep) day: (., [cat-dog) @3=beep) . stats: (interface (dir, seek, step): (fwd, 8, 0), (rev, 0, 0)), (internal (dir, seek, step): (fwd, 6, 4), (rev, 0, 0)), (internal-stats: (block-bytes: (total 89B, cached 89B, read-time 0s)), (points: (count 4, key-bytes 4B, value-bytes 4B, tombstoned 0))), (range-key-stats: (count 2), (contained points: (count 3, skipped 0))) combined-iter seek-lt 1 seek-lt ace seek-lt b seek-lt c seek-lt cab seek-lt cat seek-lt d seek-lt day seek-lt dog seek-lt zebra stats ---- . a: (a, .) a: (a, .) b: (b, [b-c) @5=boop UPDATED) c: (c, . UPDATED) c: (c, .) cat: (., [cat-dog) @3=beep UPDATED) d: (d, [cat-dog) @3=beep) d: (d, [cat-dog) @3=beep) d: (d, [cat-dog) @3=beep) stats: (interface (dir, seek, step): (fwd, 0, 0), (rev, 10, 0)), (internal (dir, seek, step): (fwd, 0, 0), (rev, 10, 10)), (internal-stats: (block-bytes: (total 267B, cached 267B, read-time 0s)), (points: (count 15, key-bytes 15B, value-bytes 15B, tombstoned 0))), (range-key-stats: (count 2), (contained points: (count 6, skipped 0))) rangekey-iter first next next set-bounds lower=bat upper=catatonic first next next stats ---- b [b-c) @5=boop UPDATED cat [cat-dog) @3=beep UPDATED . . bat [bat-c) @5=boop UPDATED cat [cat-catatonic) @3=beep UPDATED . stats: (interface (dir, seek, step): (fwd, 2, 4), (rev, 0, 0)), (internal (dir, seek, step): (fwd, 2, 4), (rev, 0, 0)), (range-key-stats: (count 4), (contained points: (count 0, skipped 0)))