define
a.SET.1:1
a.SET.2:2
b.SET.1:1
b.DEL.2:
c.SET.1:1
c.MERGE.2:2
1.RANGEDEL.3:
2.RANGEKEYSET.4:
1.RANGEKEYDEL.3:
2.RANGEKEYUNSET.3:
----

# NB: The range keys get fragmented.

dump seq=0
----
a#1,SET:2
a#0,SET:1
b#3,DEL:
b#2,SET:1
c#5,MERGE:2
c#4,SET:1
1-3:{(#6,RANGEDEL)}
1-2:{(#8,RANGEKEYDEL)}
2-3:{(#9,RANGEKEYUNSET,3) (#8,RANGEKEYDEL) (#7,RANGEKEYSET,4,4)}
3-4:{(#7,RANGEKEYSET,4,4)}

dump seq=100
----
a#101,SET:2
a#100,SET:1
b#103,DEL:
b#102,SET:1
c#105,MERGE:2
c#104,SET:1
1-3:{(#106,RANGEDEL)}
1-2:{(#108,RANGEKEYDEL)}
2-3:{(#109,RANGEKEYUNSET,3) (#108,RANGEKEYDEL) (#107,RANGEKEYSET,4,4)}
3-4:{(#107,RANGEKEYSET,4,4)}

define
c.SET.1:1
b.SET.1:1
a.SET.1:1
----

dump seq=1000
----
a#1002,SET:1
b#1001,SET:1
c#1000,SET:1

iter
first
next
next
next
----
a:1
b:1
c:1
.

iter
last
prev
prev
prev
----
c:1
b:1
a:1
.

iter lower=b
seek-ge b
prev
----
b:1
.

iter lower=c
seek-lt b
----
.

iter lower=e
last
----
.

iter upper=1
first
----
.

iter upper=b
first
next
----
a:1
.

iter upper=b
seek-ge b
----
.

iter
set-bounds lower=b
seek-ge b
prev
----
b:1
.

iter
set-bounds lower=c
seek-lt b
----
.

iter
set-bounds lower=e
last
----
.

iter
set-bounds upper=1
first
----
.

iter
set-bounds upper=b
first
next
----
a:1
.

iter
set-bounds upper=b
seek-ge b
----
.

iter
first
set-bounds upper=b
seek-ge b
----
a:1
.

# Test a LogData interleaved among batch data. The LogData entry should not be
# assigned a sequence number or appear within the iterator output.

define
b.SET.1:
a.SET.1:
c.SET.1:
b.LOGDATA.2:
1.RANGEDEL.3:
a.SET.2:
2.RANGEKEYSET.4:
1.RANGEKEYDEL.3:
c.MERGE.2:
b.DEL.3:
2.RANGEKEYUNSET.3:
----

dump seq=0
----
a#4,SET:2
a#1,SET:1
b#8,DEL:
b#0,SET:1
c#7,MERGE:2
c#2,SET:1
1-3:{(#3,RANGEDEL)}
1-2:{(#6,RANGEKEYDEL)}
2-3:{(#9,RANGEKEYUNSET,3) (#6,RANGEKEYDEL) (#5,RANGEKEYSET,4,4)}
3-4:{(#5,RANGEKEYSET,4,4)}
