# Tests MVCC range key clearing, using the engine directly.
#
# Sets up following dataset, where x is tombstone, o-o is range tombstone, [] is intent.
#
#  T
#  7 [a7]        [d7]                    [j7]    [l7]
#  6                      f6
#  5          o---------------o               k5
#  4  x   x       d4      f4  g4  x
#  3      o-------o   e3  o-------oh3
#  2  a2                  f2  g2
#  1  o---------------------------------------o   o---o
#     a   b   c   d   e   f   g   h   i   j   k   l   m
#
run ok
put_rangekey k=a end=k ts=1
put_rangekey k=l end=m ts=1
put_rangekey k=b end=d ts=3
put k=a ts=2 v=a2
del k=a ts=4
del k=b ts=4
put k=d ts=4 v=d4
put k=e ts=3 v=e3
put k=f ts=2 v=f2
put k=g ts=2 v=g2
put_rangekey k=f end=h ts=3
put k=f ts=4 v=f4
put k=f ts=6 v=f6
put k=g ts=4 v=g4
put_rangekey k=c end=g ts=5
put k=h ts=3 v=h3
del k=h ts=4
put k=k ts=5 v=k5
with t=A
  txn_begin ts=7
  put k=a v=a7
  put k=d v=d7
  put k=j v=j7
  put k=l v=l7
----
del: "a": found key true
del: "b": found key false
del: "h": found key true
put: lock acquisition = {a id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0 Replicated Intent []}
put: lock acquisition = {d id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0 Replicated Intent []}
put: lock acquisition = {j id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0 Replicated Intent []}
put: lock acquisition = {l id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0 Replicated Intent []}
>> at end:
txn: "A" meta={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} lock=true stat=PENDING rts=7.000000000,0 wto=false gul=0,0
rangekey: {a-b}/[1.000000000,0=/<empty>]
rangekey: {b-c}/[3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {c-d}/[5.000000000,0=/<empty> 3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {d-f}/[5.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {f-g}/[5.000000000,0=/<empty> 3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {g-h}/[3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {h-k}/[1.000000000,0=/<empty>]
rangekey: {l-m}/[1.000000000,0=/<empty>]
meta: "a"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "a"/7.000000000,0 -> /BYTES/a7
data: "a"/4.000000000,0 -> /<empty>
data: "a"/2.000000000,0 -> /BYTES/a2
data: "b"/4.000000000,0 -> /<empty>
meta: "d"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "d"/7.000000000,0 -> /BYTES/d7
data: "d"/4.000000000,0 -> /BYTES/d4
data: "e"/3.000000000,0 -> /BYTES/e3
data: "f"/6.000000000,0 -> /BYTES/f6
data: "f"/4.000000000,0 -> /BYTES/f4
data: "f"/2.000000000,0 -> /BYTES/f2
data: "g"/4.000000000,0 -> /BYTES/g4
data: "g"/2.000000000,0 -> /BYTES/g2
data: "h"/4.000000000,0 -> /<empty>
data: "h"/3.000000000,0 -> /BYTES/h3
meta: "j"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "j"/7.000000000,0 -> /BYTES/j7
data: "k"/5.000000000,0 -> /BYTES/k5
meta: "l"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "l"/7.000000000,0 -> /BYTES/l7

# Clear a few range key segments.
# After (removes the range key span [f-g)@3):
#  T
#  7 [a7]        [d7]                    [j7]    [l7]
#  6                      f6
#  5          o---------------o               k5
#  4  x   x       d4      f4  g4  x
#  3      o-------o   e3      o---oh3
#  2  a2                  f2  g2
#  1  o---------------------------------------o   o---o
#     a   b   c   d   e   f   g   h   i   j   k   l   m
run ok
clear_rangekey k=f end=g ts=3
----
>> at end:
rangekey: {a-b}/[1.000000000,0=/<empty>]
rangekey: {b-c}/[3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {c-d}/[5.000000000,0=/<empty> 3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {d-g}/[5.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {g-h}/[3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {h-k}/[1.000000000,0=/<empty>]
rangekey: {l-m}/[1.000000000,0=/<empty>]
meta: "a"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "a"/7.000000000,0 -> /BYTES/a7
data: "a"/4.000000000,0 -> /<empty>
data: "a"/2.000000000,0 -> /BYTES/a2
data: "b"/4.000000000,0 -> /<empty>
meta: "d"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "d"/7.000000000,0 -> /BYTES/d7
data: "d"/4.000000000,0 -> /BYTES/d4
data: "e"/3.000000000,0 -> /BYTES/e3
data: "f"/6.000000000,0 -> /BYTES/f6
data: "f"/4.000000000,0 -> /BYTES/f4
data: "f"/2.000000000,0 -> /BYTES/f2
data: "g"/4.000000000,0 -> /BYTES/g4
data: "g"/2.000000000,0 -> /BYTES/g2
data: "h"/4.000000000,0 -> /<empty>
data: "h"/3.000000000,0 -> /BYTES/h3
meta: "j"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "j"/7.000000000,0 -> /BYTES/j7
data: "k"/5.000000000,0 -> /BYTES/k5
meta: "l"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "l"/7.000000000,0 -> /BYTES/l7

# After (removes the range key span [e-f)@1):
#  T
#  7 [a7]        [d7]                    [j7]    [l7]
#  6                      f6
#  5          o---------------o               k5
#  4  x   x       d4      f4  g4  x
#  3      o-------o   e3      o---oh3
#  2  a2                  f2  g2
#  1  o---------------o   o-------------------o   o---o
#     a   b   c   d   e   f   g   h   i   j   k   l   m
run ok
clear_rangekey k=e end=f ts=1
----
>> at end:
rangekey: {a-b}/[1.000000000,0=/<empty>]
rangekey: {b-c}/[3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {c-d}/[5.000000000,0=/<empty> 3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {d-e}/[5.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {e-f}/[5.000000000,0=/<empty>]
rangekey: {f-g}/[5.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {g-h}/[3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {h-k}/[1.000000000,0=/<empty>]
rangekey: {l-m}/[1.000000000,0=/<empty>]
meta: "a"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "a"/7.000000000,0 -> /BYTES/a7
data: "a"/4.000000000,0 -> /<empty>
data: "a"/2.000000000,0 -> /BYTES/a2
data: "b"/4.000000000,0 -> /<empty>
meta: "d"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "d"/7.000000000,0 -> /BYTES/d7
data: "d"/4.000000000,0 -> /BYTES/d4
data: "e"/3.000000000,0 -> /BYTES/e3
data: "f"/6.000000000,0 -> /BYTES/f6
data: "f"/4.000000000,0 -> /BYTES/f4
data: "f"/2.000000000,0 -> /BYTES/f2
data: "g"/4.000000000,0 -> /BYTES/g4
data: "g"/2.000000000,0 -> /BYTES/g2
data: "h"/4.000000000,0 -> /<empty>
data: "h"/3.000000000,0 -> /BYTES/h3
meta: "j"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "j"/7.000000000,0 -> /BYTES/j7
data: "k"/5.000000000,0 -> /BYTES/k5
meta: "l"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "l"/7.000000000,0 -> /BYTES/l7

# Clearing segments is idempotent.
# After (no change):
#  T
#  7 [a7]        [d7]                    [j7]    [l7]
#  6                      f6
#  5          o---------------o               k5
#  4  x   x       d4      f4  g4  x
#  3      o-------o   e3      o---oh3
#  2  a2                  f2  g2
#  1  o---------------o   o-------------------o   o---o
#     a   b   c   d   e   f   g   h   i   j   k   l   m
run ok
clear_rangekey k=f end=g ts=3
----
>> at end:
rangekey: {a-b}/[1.000000000,0=/<empty>]
rangekey: {b-c}/[3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {c-d}/[5.000000000,0=/<empty> 3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {d-e}/[5.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {e-f}/[5.000000000,0=/<empty>]
rangekey: {f-g}/[5.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {g-h}/[3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {h-k}/[1.000000000,0=/<empty>]
rangekey: {l-m}/[1.000000000,0=/<empty>]
meta: "a"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "a"/7.000000000,0 -> /BYTES/a7
data: "a"/4.000000000,0 -> /<empty>
data: "a"/2.000000000,0 -> /BYTES/a2
data: "b"/4.000000000,0 -> /<empty>
meta: "d"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "d"/7.000000000,0 -> /BYTES/d7
data: "d"/4.000000000,0 -> /BYTES/d4
data: "e"/3.000000000,0 -> /BYTES/e3
data: "f"/6.000000000,0 -> /BYTES/f6
data: "f"/4.000000000,0 -> /BYTES/f4
data: "f"/2.000000000,0 -> /BYTES/f2
data: "g"/4.000000000,0 -> /BYTES/g4
data: "g"/2.000000000,0 -> /BYTES/g2
data: "h"/4.000000000,0 -> /<empty>
data: "h"/3.000000000,0 -> /BYTES/h3
meta: "j"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "j"/7.000000000,0 -> /BYTES/j7
data: "k"/5.000000000,0 -> /BYTES/k5
meta: "l"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "l"/7.000000000,0 -> /BYTES/l7

# Clearing segments works on missing segments.
# After (no change):
#  T
#  7 [a7]        [d7]                    [j7]    [l7]
#  6                      f6
#  5          o---------------o               k5
#  4  x   x       d4      f4  g4  x
#  3      o-------o   e3      o---oh3
#  2  a2                  f2  g2
#  1  o---------------o   o-------------------o   o---o
#     a   b   c   d   e   f   g   h   i   j   k   l   m
run ok
clear_rangekey k=a end=z ts=10
----
>> at end:
rangekey: {a-b}/[1.000000000,0=/<empty>]
rangekey: {b-c}/[3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {c-d}/[5.000000000,0=/<empty> 3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {d-e}/[5.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {e-f}/[5.000000000,0=/<empty>]
rangekey: {f-g}/[5.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {g-h}/[3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {h-k}/[1.000000000,0=/<empty>]
rangekey: {l-m}/[1.000000000,0=/<empty>]
meta: "a"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "a"/7.000000000,0 -> /BYTES/a7
data: "a"/4.000000000,0 -> /<empty>
data: "a"/2.000000000,0 -> /BYTES/a2
data: "b"/4.000000000,0 -> /<empty>
meta: "d"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "d"/7.000000000,0 -> /BYTES/d7
data: "d"/4.000000000,0 -> /BYTES/d4
data: "e"/3.000000000,0 -> /BYTES/e3
data: "f"/6.000000000,0 -> /BYTES/f6
data: "f"/4.000000000,0 -> /BYTES/f4
data: "f"/2.000000000,0 -> /BYTES/f2
data: "g"/4.000000000,0 -> /BYTES/g4
data: "g"/2.000000000,0 -> /BYTES/g2
data: "h"/4.000000000,0 -> /<empty>
data: "h"/3.000000000,0 -> /BYTES/h3
meta: "j"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "j"/7.000000000,0 -> /BYTES/j7
data: "k"/5.000000000,0 -> /BYTES/k5
meta: "l"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "l"/7.000000000,0 -> /BYTES/l7

# Now clear a few spans.
#
# After (wipes out [c-d)):
#  T
#  7 [a7]        [d7]                    [j7]    [l7]
#  6                      f6
#  5              o-----------o               k5
#  4  x   x       d4      f4  g4  x
#  3      o---o       e3      o---oh3
#  2  a2                  f2  g2
#  1  o-------o   o---o   o-------------------o   o---o
#     a   b   c   d   e   f   g   h   i   j   k   l   m
run ok
clear_range k=c end=d
----
>> at end:
rangekey: {a-b}/[1.000000000,0=/<empty>]
rangekey: {b-c}/[3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {d-e}/[5.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {e-f}/[5.000000000,0=/<empty>]
rangekey: {f-g}/[5.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {g-h}/[3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {h-k}/[1.000000000,0=/<empty>]
rangekey: {l-m}/[1.000000000,0=/<empty>]
meta: "a"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "a"/7.000000000,0 -> /BYTES/a7
data: "a"/4.000000000,0 -> /<empty>
data: "a"/2.000000000,0 -> /BYTES/a2
data: "b"/4.000000000,0 -> /<empty>
meta: "d"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "d"/7.000000000,0 -> /BYTES/d7
data: "d"/4.000000000,0 -> /BYTES/d4
data: "e"/3.000000000,0 -> /BYTES/e3
data: "f"/6.000000000,0 -> /BYTES/f6
data: "f"/4.000000000,0 -> /BYTES/f4
data: "f"/2.000000000,0 -> /BYTES/f2
data: "g"/4.000000000,0 -> /BYTES/g4
data: "g"/2.000000000,0 -> /BYTES/g2
data: "h"/4.000000000,0 -> /<empty>
data: "h"/3.000000000,0 -> /BYTES/h3
meta: "j"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "j"/7.000000000,0 -> /BYTES/j7
data: "k"/5.000000000,0 -> /BYTES/k5
meta: "l"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "l"/7.000000000,0 -> /BYTES/l7

# After (wipes out [f-g)):
#  T
#  7 [a7]        [d7]                    [j7]    [l7]
#  6
#  5              o-------o                   k5
#  4  x   x       d4          g4  x
#  3      o---o       e3      o---oh3
#  2  a2                      g2
#  1  o-------o   o---o       o---------------o   o---o
#     a   b   c   d   e   f   g   h   i   j   k   l   m
run ok
clear_range k=f end=g
----
>> at end:
rangekey: {a-b}/[1.000000000,0=/<empty>]
rangekey: {b-c}/[3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {d-e}/[5.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {e-f}/[5.000000000,0=/<empty>]
rangekey: {g-h}/[3.000000000,0=/<empty> 1.000000000,0=/<empty>]
rangekey: {h-k}/[1.000000000,0=/<empty>]
rangekey: {l-m}/[1.000000000,0=/<empty>]
meta: "a"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "a"/7.000000000,0 -> /BYTES/a7
data: "a"/4.000000000,0 -> /<empty>
data: "a"/2.000000000,0 -> /BYTES/a2
data: "b"/4.000000000,0 -> /<empty>
meta: "d"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "d"/7.000000000,0 -> /BYTES/d7
data: "d"/4.000000000,0 -> /BYTES/d4
data: "e"/3.000000000,0 -> /BYTES/e3
data: "g"/4.000000000,0 -> /BYTES/g4
data: "g"/2.000000000,0 -> /BYTES/g2
data: "h"/4.000000000,0 -> /<empty>
data: "h"/3.000000000,0 -> /BYTES/h3
meta: "j"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "j"/7.000000000,0 -> /BYTES/j7
data: "k"/5.000000000,0 -> /BYTES/k5
meta: "l"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=7.000000000,0 min=0,0 seq=0} ts=7.000000000,0 del=false klen=12 vlen=7 mergeTs=<nil> txnDidNotUpdateMeta=true
data: "l"/7.000000000,0 -> /BYTES/l7

# Clear the entire span.
run ok
clear_range k=a end=z
----
>> at end:
<no data>

# Error conditions. We don't check clear_range, because it uses a metamorphic
# bool to switch between ClearMVCCRange and ClearMVCCIteratorRange, and these
# fail in different ways.
run error
clear_rangekey k=c end=a ts=1
----
>> at end:
<no data>
error: (*withstack.withStack:) invalid range key {c-a}/1.000000000,0: start key "c" is at or after end key "a"
