# Perform some writes at various sequence numbers with local timestamps.

run ok
with t=A
  txn_begin ts=50
  txn_step  seq=15
  put       k=k v=a localTs=15,0
  txn_step  seq=20
  put       k=k v=b localTs=20,0
  txn_step  seq=25
  put       k=k v=c localTs=25,0
----
put: lock acquisition = {k id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=50.000000000,0 min=0,0 seq=15 Replicated Intent []}
put: lock acquisition = {k id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=50.000000000,0 min=0,0 seq=20 Replicated Intent []}
put: lock acquisition = {k id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=50.000000000,0 min=0,0 seq=25 Replicated Intent []}
>> at end:
txn: "A" meta={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=50.000000000,0 min=0,0 seq=25} lock=true stat=PENDING rts=50.000000000,0 wto=false gul=0,0
meta: "k"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=50.000000000,0 min=0,0 seq=25} ts=50.000000000,0 del=false klen=12 vlen=19 ih={{15 {localTs=15.000000000,0}/BYTES/a}{20 {localTs=20.000000000,0}/BYTES/b}} mergeTs=<nil> txnDidNotUpdateMeta=false
data: "k"/50.000000000,0 -> {localTs=25.000000000,0}/BYTES/c

# Rollback to a previous sequence number. Should be able to read before and
# after resolving the intent.

run ok
with t=A
  txn_ignore_seqs seqs=(25-25)
  get             k=k
  resolve_intent  k=k status=PENDING
  get             k=k
----
get: "k" -> /BYTES/b @50.000000000,0
resolve_intent: "k" -> resolved key = true
get: "k" -> /BYTES/b @50.000000000,0
>> at end:
txn: "A" meta={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=50.000000000,0 min=0,0 seq=25} lock=true stat=PENDING rts=50.000000000,0 wto=false gul=0,0 isn=1
meta: "k"/0,0 -> txn={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=50.000000000,0 min=0,0 seq=20} ts=50.000000000,0 del=false klen=12 vlen=19 ih={{15 {localTs=15.000000000,0}/BYTES/a}} mergeTs=<nil> txnDidNotUpdateMeta=false
data: "k"/50.000000000,0 -> {localTs=20.000000000,0}/BYTES/b

# Rollback and commit at a previous sequence number. Committed value should have
# original local timestamp. This is important to avoid losing the local timestamp
# of values in a key's intent history.

run ok
with t=A
  txn_ignore_seqs seqs=(20-20)
  resolve_intent k=k status=COMMITTED
----
resolve_intent: "k" -> resolved key = true
>> at end:
txn: "A" meta={id=00000001 key=/Min iso=Serializable pri=0.00000000 epo=0 ts=50.000000000,0 min=0,0 seq=25} lock=true stat=PENDING rts=50.000000000,0 wto=false gul=0,0 isn=1
data: "k"/50.000000000,0 -> {localTs=15.000000000,0}/BYTES/a
