sstable scan
--start=arm
--end=aside
../sstable/testdata/hamlet-sst/000002.sst
----
000002.sst
arm#0,SET [32]
armed#0,SET [32]
armour#0,SET [31]
arms#0,SET [32]
arrant#0,SET [31]
art#0,SET [36]
artery#0,SET [31]
article#0,SET [31]
articles#0,SET [31]
as#0,SET [3536]

sstable scan
--end=abused
../sstable/testdata/hamlet-sst/000002.sst
----
000002.sst
a-a#0,RANGEDEL
a#0,SET [3937]
aboard#0,SET [32]
about#0,SET [32]
above#0,SET [31]
abroad#0,SET [31]
absurd#0,SET [31]

sstable scan
--start=you
../sstable/testdata/hamlet-sst/000002.sst
----
000002.sst
you#0,SET [313130]
young#0,SET [36]
your#0,SET [3439]
yourself#0,SET [37]
youth#0,SET [35]

sstable scan
--key=%x
--value=null
--start=you
../sstable/testdata/hamlet-sst/000002.sst
----
000002.sst
796f75#0,SET
796f756e67#0,SET
796f7572#0,SET
796f757273656c66#0,SET
796f757468#0,SET

sstable scan
--key=%q
--value=null
--start=hex:796f75
--end=raw:yourself
../sstable/testdata/hamlet-sst/000002.sst
----
000002.sst
"you"#0,SET
"young"#0,SET
"your"#0,SET

sstable scan
--key=null
--value=[%x]
--start=hex:796f75
--end=raw:yourself
../sstable/testdata/hamlet-sst/000002.sst
----
000002.sst
[313130]
[36]
[3439]

sstable scan
--key=pretty
--value=[%x]
--start=hex:796f75
--end=raw:yourself
../sstable/testdata/hamlet-sst/000002.sst
----
000002.sst
you#0,SET [313130]
young#0,SET [36]
your#0,SET [3439]

sstable scan
--key=pretty
--value=[%x]
--start=hex:796f75
--end=raw:yourself
../sstable/testdata/hamlet-sst/000002.sst
----
000002.sst
you#0,SET [313130]
young#0,SET [36]
your#0,SET [3439]

sstable scan
--key=pretty
--value=pretty
--start=hex:796f75
--end=raw:yourself
../sstable/testdata/hamlet-sst/000002.sst
----
000002.sst
you#0,SET 110
young#0,SET 6
your#0,SET 49

sstable scan
--key=pretty:test-comparer
--value=pretty:test-comparer
--start=hex:796f75
--end=raw:yourself
../sstable/testdata/hamlet-sst/000002.sst
----
000002.sst
test formatter: you#0,SET test value formatter: 110
test formatter: young#0,SET test value formatter: 6
test formatter: your#0,SET test value formatter: 49

# Start and end scan keys lie within range tombstones.
sstable scan
--start=beards
--end=carrying
../sstable/testdata/hamlet-sst/000002.sst
----
000002.sst
beard-bearers#0,RANGEDEL
bearers#0,SET [31]
bears#0,SET [31]
beast#0,SET [32]
beating#0,SET [31]
beauty#0,SET [31]
beaver#0,SET [31]
beckons#0,SET [32]
bed#0,SET [34]
been#0,SET [34]
beetles#0,SET [31]
befitted#0,SET [31]
before#0,SET [36]
beg#0,SET [31]
beguile#0,SET [31]
behold#0,SET [31]
behoves#0,SET [31]
being#0,SET [34]
belief#0,SET [31]
believe#0,SET [36]
bell#0,SET [31]
bend#0,SET [32]
beneath#0,SET [35]
benefit#0,SET [31]
bernardo#0,SET [3330]
beseech#0,SET [32]
besmirch#0,SET [31]
best#0,SET [35]
beteem#0,SET [31]
bethought#0,SET [31]
better#0,SET [32]
between#0,SET [32]
beware#0,SET [32]
beyond#0,SET [31]
bid#0,SET [32]
bird#0,SET [32]
birth#0,SET [33]
bites#0,SET [31]
bitter#0,SET [31]
black#0,SET [31]
blast#0,SET [31]
blastments#0,SET [31]
blasts#0,SET [31]
blazes#0,SET [31]
blazon#0,SET [31]
blessing#0,SET [33]
blood#0,SET [37]
blossoms#0,SET [31]
blows#0,SET [31]
bodes#0,SET [31]
body#0,SET [35]
bonds#0,SET [31]
bones#0,SET [31]
book#0,SET [31]
books#0,SET [31]
born#0,SET [32]
borrower#0,SET [31]
borrowing#0,SET [31]
bosom#0,SET [31]
both#0,SET [33]
bound#0,SET [32]
bounteous#0,SET [31]
bow#0,SET [31]
boy#0,SET [32]
brain#0,SET [32]
bray#0,SET [31]
brazen#0,SET [31]
breach#0,SET [31]
break#0,SET [33]
breaking#0,SET [31]
breath#0,SET [31]
breathing#0,SET [31]
brief#0,SET [31]
bring#0,SET [31]
brokers#0,SET [31]
brother#0,SET [36]
brow#0,SET [31]
bruit#0,SET [31]
bulk#0,SET [31]
buried#0,SET [31]
burns#0,SET [32]
burnt#0,SET [31]
burst#0,SET [32]
business#0,SET [34]
but#0,SET [3538]
buttons#0,SET [31]
buy#0,SET [31]
by#0,SET [3331]
call#0,SET [34]
calumnious#0,SET [31]
came#0,SET [32]
can#0,SET [35]
canker#0,SET [31]
cannon#0,SET [32]
cannot#0,SET [33]
canon#0,SET [31]
canonized#0,SET [31]
canst#0,SET [32]
cap#0,SET [31]
carefully#0,SET [31]
carriage-carve#0,RANGEDEL
carriage#0,SET [31]

# Start scan key lies on range tombstone end key.
sstable scan
--start=bearers
--end=bears
../sstable/testdata/hamlet-sst/000002.sst
----
000002.sst
bearers#0,SET [31]

# End scan key lies on range tombstone start key.
sstable scan
--start=bear
--end=beard
../sstable/testdata/hamlet-sst/000002.sst
----
000002.sst
bear#0,SET [35]

# Count that only includes point records.
sstable scan
--start=armed
--count=3
../sstable/testdata/hamlet-sst/000002.sst
----
000002.sst
armed#0,SET [32]
armour#0,SET [31]
arms#0,SET [32]

# Count that includes point records and range tombstones.
sstable scan
--start=beards
--count=2
../sstable/testdata/hamlet-sst/000002.sst
----
000002.sst
beard-bearers#0,RANGEDEL
bearers#0,SET [31]

sstable scan
--filter=arms
../sstable/testdata/hamlet-sst/000002.sst
----
000002.sst: arms#0,SET [32]

sstable scan
--filter=bear
../sstable/testdata/hamlet-sst/000002.sst
----
000002.sst: bear#0,SET [35]
000002.sst: beard-bearers#0,RANGEDEL
000002.sst: beard#0,SET [31]
000002.sst: bearers#0,SET [31]
000002.sst: bears#0,SET [31]

sstable scan
--filter=beards
../sstable/testdata/hamlet-sst/000002.sst
----
000002.sst: beard-bearers#0,RANGEDEL

sstable scan
--filter=beard
../sstable/testdata/
----
testdata/h-no-compression-sst/000012.sst: beard-bearers#0,RANGEDEL
testdata/h-no-compression-sst/000012.sst: beard#0,SET [31]
testdata/h-no-compression-two-level-index-sst/000003.sst: beard-bearers#0,RANGEDEL
testdata/h-no-compression-two-level-index-sst/000003.sst: beard#0,SET [31]
testdata/h-table-bloom-no-compression-prefix-extractor-no-whole-key-filter-sst/000013.sst: beard-bearers#0,RANGEDEL
testdata/h-table-bloom-no-compression-prefix-extractor-no-whole-key-filter-sst/000013.sst: beard#0,SET [31]
testdata/h-table-bloom-no-compression-sst/000011.sst: beard-bearers#0,RANGEDEL
testdata/h-table-bloom-no-compression-sst/000011.sst: beard#0,SET [31]
testdata/h-table-bloom-sst/000010.sst: beard-bearers#0,RANGEDEL
testdata/h-table-bloom-sst/000010.sst: beard#0,SET [31]
testdata/h-zstd-compression-sst/000004.sst: beard-bearers#0,RANGEDEL
testdata/h-zstd-compression-sst/000004.sst: beard#0,SET [31]
testdata/hamlet-sst/000002.sst: beard-bearers#0,RANGEDEL
testdata/hamlet-sst/000002.sst: beard#0,SET [31]

sstable scan
--filter=beard
--start=boar
../sstable/testdata/hamlet-sst/000002.sst
----

sstable scan
./testdata/mixed/000005.sst
----
000005.sst
a@1#10,SET []
b@1#11,SET []
c@1#12,SET []
d@1#13,SET []
e@1#14,SET []
f@1#15,SET []
g@1#16,SET []
h@1#17,SET []
i@1#18,SET []
j@1#19,SET []
k@1#20,SET []
l@1#21,SET []
m@1#22,SET []
n@1#23,SET []
o@1#24,SET []
p@1#25,SET []
q@1#26,SET []
r@1#27,SET []
s@1#28,SET []
t@1#29,SET []
u@1#30,SET []
v@1#31,SET []
w@1#32,SET []
x@1#33,SET []
y@1#34,SET []
z@1#35,SET []
[a-b):
  #38,RANGEKEYDEL
[b-z):
  #37,RANGEKEYUNSET: @2
  #36,RANGEKEYSET: @1 []

sstable scan
--start=b
--end=e
./testdata/mixed/000005.sst
----
000005.sst
b@1#11,SET []
c@1#12,SET []
d@1#13,SET []
[b-z):
  #37,RANGEKEYUNSET: @2
  #36,RANGEKEYSET: @1 []

sstable scan
--filter=a
./testdata/mixed/000005.sst
----
000005.sst: a@1#10,SET []
000005.sst: [a-b):
  #38,RANGEKEYDEL

sstable scan
--filter=b
--start=b
--end=d
./testdata/mixed/000005.sst
----
000005.sst: b@1#11,SET []
000005.sst: [b-z):
  #37,RANGEKEYUNSET: @2
  #36,RANGEKEYSET: @1 []

sstable scan
./testdata/cr-schema-sst/000014.sst
----
000014.sst
tcestilr@3176.073933065,0#0,SET [b67f9deccb5f22c70c23575ae00e9156]
tcestilr@3155.610170870,0#0,SET [d8094571a876976dd01ba2a5026a898e]
tcestilr@2257.175610483,0#0,SET [9e3a0669c89f7d96c254f7571dca3d61]
tcestilr@2027.979535545,0#0,SET [db22bfa0566709c2cf6488e4376e89a7]
tcestilr@1999.232216345,0#0,SET [4e224bcbe873fe8810f9cf81873ba504]
tcestilr@1961.730565157,0#0,SET [c0a4b04a2bbf7fbad03d82eaa070366f]
tcestilr@112.569705592,0#0,SET [9b9fefa63bd80a0a8bf551d6133358bf]
tcfrjshd@552.255371146,0#0,SET [88d54ae6ffa7def957dcadc876befd26]
tchgdrgj#0,SET [4f4d615f39482fcf4ae7d15890e1611e]
tchiarcd@999.614877036,0#0,SET [395ad94a5a629f21bd826f0b61a0626d]
tcjmfhds@155.282098007,0#0,SET [e859c0e60dbfef6c88f329765525d7a5]
tclaldso@2918.844225402,0#0,SET [53114b04080ac9bf8ab0c9e4dbb0eb7f]
tcnnriss@3485.299789445,0#0,SET [e6339c44d0d9daeea35c04449f3081a9]
tcnnriss@335.378301115,0#0,SET [3a6feab777e1d9d0e0e73c5b6126ec11]
tcpchosd#0,SET [95f99384c24d1320f03f33d58f54c6b7]
tcpchosd@2786.903868370,0#0,SET [4a3ba1f63afdf06e061257f2a2277b66]
tcpchosd@2210.960065030,0#0,SET [0d945d694573ff74244235cc405d3bde]
tcpchosd@2073.542476344,0#0,SET [c3009bd907c208e4b2f8a721403502ee]
tcpchosd@82.858934535,594919620#0,SET [0bac1470fab6a1e270410dda5f39f31d]
tcrsfsqc@1366.233420574,0#0,SET [1b22f2128e75f0433e8eda52c41872e6]

sstable scan
./testdata/find-val-sep-db
----
find-val-sep-db/000005.sst
aaa\x00#10,SET [(f0,blk0,id0,len5)]
bbb\x00#11,SET [(f0,blk0,id1,len3)]
ccc\x00#12,SET [(f0,blk0,id2,len10)]
ddd\x00#13,SET [36]
find-val-sep-db/000008.sst
eee\x00#14,SET [(f0,blk0,id0,len6)]
fff\x00#15,SET [(f0,blk0,id1,len7)]
find-val-sep-db/000011.sst
ggg0\x00#16,SET [(f0,blk0,id0,len8)]
ggg1\x00#17,SET [(f0,blk0,id1,len8)]
ggg10\x00#26,SET [(f0,blk0,id2,len9)]
ggg11\x00#27,SET [(f0,blk0,id3,len9)]
ggg12\x00#28,SET [(f0,blk0,id4,len9)]
ggg13\x00#29,SET [(f0,blk0,id5,len9)]
ggg14\x00#30,SET [(f0,blk0,id6,len9)]
ggg15\x00#31,SET [(f0,blk0,id7,len9)]
ggg16\x00#32,SET [(f0,blk1,id0,len9)]
ggg17\x00#33,SET [(f0,blk1,id1,len9)]
ggg18\x00#34,SET [(f0,blk1,id2,len9)]
ggg19\x00#35,SET [(f0,blk1,id3,len9)]
ggg2\x00#18,SET [(f0,blk1,id4,len8)]
ggg20\x00#36,SET [(f0,blk1,id5,len9)]
ggg21\x00#37,SET [(f0,blk1,id6,len9)]
ggg22\x00#38,SET [(f0,blk1,id7,len9)]
ggg23\x00#39,SET [(f0,blk2,id0,len9)]
ggg24\x00#40,SET [(f0,blk2,id1,len9)]
ggg25\x00#41,SET [(f0,blk2,id2,len9)]
ggg26\x00#42,SET [(f0,blk2,id3,len9)]
ggg27\x00#43,SET [(f0,blk2,id4,len9)]
ggg28\x00#44,SET [(f0,blk2,id5,len9)]
ggg29\x00#45,SET [(f0,blk2,id6,len9)]
ggg3\x00#19,SET [(f0,blk2,id7,len8)]
ggg4\x00#20,SET [(f0,blk3,id0,len8)]
ggg5\x00#21,SET [(f0,blk3,id1,len8)]
ggg6\x00#22,SET [(f0,blk3,id2,len8)]
ggg7\x00#23,SET [(f0,blk3,id3,len8)]
ggg8\x00#24,SET [(f0,blk3,id4,len8)]
ggg9\x00#25,SET [(f0,blk3,id5,len8)]

sstable scan
./testdata/find-val-sep-db/000005.sst
--load-blobs-from
----
flag needs an argument: --load-blobs-from

sstable scan
./testdata/find-val-sep-db/000005.sst
--load-blobs-from=find-val-sep-db
----
000005.sst
aaa\x00#10,SET [7975756d69]
bbb\x00#11,SET [6d6169]
ccc\x00#12,SET [706f69616e6479617961]
ddd\x00#13,SET [36]

sstable scan
./testdata/find-val-sep-db/000008.sst
--load-blobs-from=find-val-sep-db
----
000008.sst
eee\x00#14,SET [706967656f6e]
fff\x00#15,SET [636869636b656e]
