func applyDeleteRange(txnID int64, kv dstorage.KV, dr *pb.DeleteRangeRequest) (*pb.DeleteRangeResponse, error) { resp := &pb.DeleteRangeResponse{} resp.Header = &pb.ResponseHeader{} var ( n int64 rev int64 err error ) if isGteRange(dr.RangeEnd) { dr.RangeEnd = []byte{} } if txnID != noTxn { n, rev, err = kv.TxnDeleteRange(txnID, dr.Key, dr.RangeEnd) if err != nil { return nil, err } } else { n, rev = kv.DeleteRange(dr.Key, dr.RangeEnd) } resp.Deleted = n resp.Header.Revision = rev return resp, nil }
func (a *applierV3backend) DeleteRange(txnID int64, dr *pb.DeleteRangeRequest) (*pb.DeleteRangeResponse, error) { resp := &pb.DeleteRangeResponse{} resp.Header = &pb.ResponseHeader{} var ( n int64 rev int64 err error ) if isGteRange(dr.RangeEnd) { dr.RangeEnd = []byte{} } if txnID != noTxn { n, rev, err = a.s.KV().TxnDeleteRange(txnID, dr.Key, dr.RangeEnd) if err != nil { return nil, err } } else { n, rev = a.s.KV().DeleteRange(dr.Key, dr.RangeEnd) } resp.Deleted = n resp.Header.Revision = rev return resp, nil }
func applyDeleteRange(txnID int64, kv mvcc.KV, req *etcdserverpb.DeleteRangeRequest) (*etcdserverpb.DeleteRangeResponse, error) { resp := &etcdserverpb.DeleteRangeResponse{} resp.Header = &etcdserverpb.ResponseHeader{} var ( n int64 rev int64 err error ) if isGteRange(req.RangeEnd) { req.RangeEnd = []byte{} } if txnID != noTxn { n, rev, err = kv.TxnDeleteRange(txnID, req.Key, req.RangeEnd) if err != nil { return nil, err } } else { n, rev = kv.DeleteRange(req.Key, req.RangeEnd) } resp.Deleted = n resp.Header.Revision = rev return resp, nil }
func (a *applierV3backend) DeleteRange(txnID int64, dr *pb.DeleteRangeRequest) (*pb.DeleteRangeResponse, error) { resp := &pb.DeleteRangeResponse{} resp.Header = &pb.ResponseHeader{} var ( n int64 rev int64 err error ) if isGteRange(dr.RangeEnd) { dr.RangeEnd = []byte{} } var rr *mvcc.RangeResult if dr.PrevKv { if txnID != noTxn { rr, err = a.s.KV().TxnRange(txnID, dr.Key, dr.RangeEnd, mvcc.RangeOptions{}) if err != nil { return nil, err } } else { rr, err = a.s.KV().Range(dr.Key, dr.RangeEnd, mvcc.RangeOptions{}) if err != nil { return nil, err } } } if txnID != noTxn { n, rev, err = a.s.KV().TxnDeleteRange(txnID, dr.Key, dr.RangeEnd) if err != nil { return nil, err } } else { n, rev = a.s.KV().DeleteRange(dr.Key, dr.RangeEnd) } resp.Deleted = n if rr != nil { for i := range rr.KVs { resp.PrevKvs = append(resp.PrevKvs, &rr.KVs[i]) } } resp.Header.Revision = rev return resp, nil }