Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
68 lines (59 sloc) 2.27 KB
// Copyright 2014 The Cockroach Authors.
// Use of this software is governed by the Business Source License
// included in the file licenses/BSL.txt.
// As of the Change Date specified in that file, in accordance with
// the Business Source License, use of this software will be governed
// by the Apache License, Version 2.0, included in the file
// licenses/APL.txt.
package batcheval
import (
// DefaultDeclareKeys is the default implementation of Command.DeclareKeys.
func DefaultDeclareKeys(
desc *roachpb.RangeDescriptor, header roachpb.Header, req roachpb.Request, spans *spanset.SpanSet,
) {
if roachpb.IsReadOnly(req) {
spans.Add(spanset.SpanReadOnly, req.Header().Span())
} else {
spans.Add(spanset.SpanReadWrite, req.Header().Span())
// DeclareKeysForBatch adds all keys that the batch with the provided header
// touches to the given SpanSet. This does not include keys touched during the
// processing of the batch's individual commands.
func DeclareKeysForBatch(
desc *roachpb.RangeDescriptor, header roachpb.Header, spans *spanset.SpanSet,
) {
if header.Txn != nil {
spans.Add(spanset.SpanReadOnly, roachpb.Span{
Key: keys.AbortSpanKey(header.RangeID, header.Txn.ID),
if header.ReturnRangeInfo {
spans.Add(spanset.SpanReadOnly, roachpb.Span{Key: keys.RangeLeaseKey(header.RangeID)})
spans.Add(spanset.SpanReadOnly, roachpb.Span{Key: keys.RangeDescriptorKey(desc.StartKey)})
// CommandArgs contains all the arguments to a command.
// TODO(bdarnell): consider merging with storagebase.FilterArgs (which
// would probably require removing the EvalCtx field due to import order
// constraints).
type CommandArgs struct {
EvalCtx EvalContext
Header roachpb.Header
Args roachpb.Request
// If MaxKeys is non-zero, span requests should limit themselves to
// that many keys. Commands using this feature should also set
// NumKeys and ResumeSpan in their responses.
MaxKeys int64
// *Stats should be mutated to reflect any writes made by the command.
Stats *enginepb.MVCCStats
You can’t perform that action at this time.