From fe7379f102c350962f0918bc499b8f52dfbcff76 Mon Sep 17 00:00:00 2001 From: Gyu-Ho Lee Date: Fri, 7 Oct 2016 10:51:01 -0700 Subject: [PATCH] clientv3: add Op.prevKV --- clientv3/kv.go | 2 +- clientv3/op.go | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/clientv3/kv.go b/clientv3/kv.go index 93d68e570..584912985 100644 --- a/clientv3/kv.go +++ b/clientv3/kv.go @@ -164,7 +164,7 @@ func (kv *kv) do(ctx context.Context, op Op) (OpResponse, error) { } case tDeleteRange: var resp *pb.DeleteRangeResponse - r := &pb.DeleteRangeRequest{Key: op.key, RangeEnd: op.end} + r := &pb.DeleteRangeRequest{Key: op.key, RangeEnd: op.end, PrevKv: op.prevKV} resp, err = kv.remote.DeleteRange(ctx, r) if err == nil { return OpResponse{del: (*DeleteResponse)(resp)}, nil diff --git a/clientv3/op.go b/clientv3/op.go index 106fb2b9f..8d7f24c8a 100644 --- a/clientv3/op.go +++ b/clientv3/op.go @@ -47,6 +47,9 @@ type Op struct { // for range, watch rev int64 + // for watch, put, delete + prevKV bool + // progressNotify is for progress updates. progressNotify bool @@ -76,7 +79,7 @@ func (op Op) toRequestOp() *pb.RequestOp { r := &pb.PutRequest{Key: op.key, Value: op.val, Lease: int64(op.leaseID), PrevKv: op.prevKV} return &pb.RequestOp{Request: &pb.RequestOp_RequestPut{RequestPut: r}} case tDeleteRange: - r := &pb.DeleteRangeRequest{Key: op.key, RangeEnd: op.end} + r := &pb.DeleteRangeRequest{Key: op.key, RangeEnd: op.end, PrevKv: op.prevKV} return &pb.RequestOp{Request: &pb.RequestOp_RequestDeleteRange{RequestDeleteRange: r}} default: panic("Unknown Op")