echo
----
db0.Put(ctx, tk(1), sv(1)) // @0.000000001,0 <nil>
db0.Put(ctx, tk(2), sv(2)) // @0.000000002,0 <nil>
db0.Put(ctx, tk(3), sv(3)) // @0.000000003,0 <nil>
db0.Txn(ctx, func(ctx context.Context, txn *kv.Txn) error {
  txn.SetIsoLevel(isolation.Serializable)
  txn.DelRange(ctx, tk(1), tk(3), true /* @s4 */) // (/Table/100/"0000000000000001", /Table/100/"0000000000000002", <nil>)
  return nil
}) // @0.000000004,0 <nil>
db0.Scan(ctx, tk(1), tk(4), 0) // @0.000000005,0 (/Table/100/"0000000000000003":v3, <nil>)
/Table/100/"0000000000000001"/0.000000001,0 @ s1 v1
/Table/100/"0000000000000002"/0.000000002,0 @ s2 v2
/Table/100/"0000000000000003"/0.000000003,0 @ s3 v3
/Table/100/"0000000000000001"/0.000000004,0 @ s4 <nil>
committed serializable txn missing write at seq s4: [dr.d]/Table/100/"0000000000000001":0.000000004,0-><nil>@s4 [dr.d]/Table/100/"0000000000000002":missing-><nil>@s4 [dr.s]/Table/100/"000000000000000{1"-3"}:{gap:[<min>, 0.000000001,0),[0.000000004,0, <max>)}->[]
committed scan non-atomic timestamps: [s]/Table/100/"000000000000000{1"-4"}:{0:[0.000000003,0, <max>), gap:[<min>, 0.000000001,0)}->[/Table/100/"0000000000000003":v3]
