github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/storage/enginepb/mvcc.pb.go (about)

     1  // Code generated by protoc-gen-gogo. DO NOT EDIT.
     2  // source: storage/enginepb/mvcc.proto
     3  
     4  package enginepb
     5  
     6  import proto "github.com/gogo/protobuf/proto"
     7  import fmt "fmt"
     8  import math "math"
     9  import hlc "github.com/cockroachdb/cockroach/pkg/util/hlc"
    10  
    11  import bytes "bytes"
    12  
    13  import encoding_binary "encoding/binary"
    14  
    15  import io "io"
    16  
    17  // Reference imports to suppress errors if they are not otherwise used.
    18  var _ = proto.Marshal
    19  var _ = fmt.Errorf
    20  var _ = math.Inf
    21  
    22  // This is a compile-time assertion to ensure that this generated file
    23  // is compatible with the proto package it is being compiled against.
    24  // A compilation error at this line likely means your copy of the
    25  // proto package needs to be updated.
    26  const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
    27  
    28  // MVCCMetadata holds MVCC metadata for a key. Used by storage/mvcc.go.
    29  // An MVCCMetadata is stored for a versioned key while there is an intent on
    30  // that key.
    31  type MVCCMetadata struct {
    32  	// The transaction metadata. Present for intents, but not for inline
    33  	// values (e.g. timeseries data). Also not present for
    34  	// "reconstructed" metadata that is used during MVCC processing when
    35  	// no intent exists on disk.
    36  	Txn *TxnMeta `protobuf:"bytes,1,opt,name=txn" json:"txn,omitempty"`
    37  	// The timestamp of the most recent versioned value if this is a
    38  	// value that may have multiple versions. For values which may have
    39  	// only one version, the data is stored inline (via raw_bytes), and
    40  	// timestamp is set to zero.
    41  	Timestamp hlc.LegacyTimestamp `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp"`
    42  	// Is the most recent value a deletion tombstone?
    43  	Deleted bool `protobuf:"varint,3,opt,name=deleted" json:"deleted"`
    44  	// The size in bytes of the most recent encoded key.
    45  	KeyBytes int64 `protobuf:"varint,4,opt,name=key_bytes,json=keyBytes" json:"key_bytes"`
    46  	// The size in bytes of the most recent versioned value.
    47  	ValBytes int64 `protobuf:"varint,5,opt,name=val_bytes,json=valBytes" json:"val_bytes"`
    48  	// Inline value, used for non-versioned values with zero
    49  	// timestamp. This provides an efficient short circuit of the normal
    50  	// MVCC metadata sentinel and subsequent version rows. If timestamp
    51  	// == (0, 0), then there is only a single MVCC metadata row with
    52  	// value inlined, and with empty timestamp, key_bytes, and
    53  	// val_bytes.
    54  	RawBytes []byte `protobuf:"bytes,6,opt,name=raw_bytes,json=rawBytes" json:"raw_bytes,omitempty"`
    55  	// IntentHistory of the transaction stores the older values the txn wrote
    56  	// for the key along with each values corresponding Sequence. It doesn't
    57  	// contain the latest intent value but rather stores all the values that have
    58  	// been overwritten by the transaction.
    59  	// IntentHistory will be empty for non-transactional requests.
    60  	IntentHistory []MVCCMetadata_SequencedIntent `protobuf:"bytes,8,rep,name=intent_history,json=intentHistory" json:"intent_history"`
    61  	// This provides a measure of protection against replays caused by
    62  	// Raft duplicating merge commands.
    63  	MergeTimestamp *hlc.LegacyTimestamp `protobuf:"bytes,7,opt,name=merge_timestamp,json=mergeTimestamp" json:"merge_timestamp,omitempty"`
    64  }
    65  
    66  func (m *MVCCMetadata) Reset()      { *m = MVCCMetadata{} }
    67  func (*MVCCMetadata) ProtoMessage() {}
    68  func (*MVCCMetadata) Descriptor() ([]byte, []int) {
    69  	return fileDescriptor_mvcc_7eac2e495f55e518, []int{0}
    70  }
    71  func (m *MVCCMetadata) XXX_Unmarshal(b []byte) error {
    72  	return m.Unmarshal(b)
    73  }
    74  func (m *MVCCMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    75  	b = b[:cap(b)]
    76  	n, err := m.MarshalTo(b)
    77  	if err != nil {
    78  		return nil, err
    79  	}
    80  	return b[:n], nil
    81  }
    82  func (dst *MVCCMetadata) XXX_Merge(src proto.Message) {
    83  	xxx_messageInfo_MVCCMetadata.Merge(dst, src)
    84  }
    85  func (m *MVCCMetadata) XXX_Size() int {
    86  	return m.Size()
    87  }
    88  func (m *MVCCMetadata) XXX_DiscardUnknown() {
    89  	xxx_messageInfo_MVCCMetadata.DiscardUnknown(m)
    90  }
    91  
    92  var xxx_messageInfo_MVCCMetadata proto.InternalMessageInfo
    93  
    94  // SequencedIntent stores a value at a given key and the sequence number it was
    95  // written at - to be stored in an IntentHistory of a key during a transaction.
    96  type MVCCMetadata_SequencedIntent struct {
    97  	// Sequence is a one-indexed number which is increased on each request
    98  	// set as part of a transaction. It uniquely identifies a value from
    99  	// the IntentHistory.
   100  	Sequence TxnSeq `protobuf:"varint,1,opt,name=sequence,casttype=TxnSeq" json:"sequence"`
   101  	// Value is the value written to the key as part of the transaction at
   102  	// the above Sequence.
   103  	Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
   104  }
   105  
   106  func (m *MVCCMetadata_SequencedIntent) Reset()      { *m = MVCCMetadata_SequencedIntent{} }
   107  func (*MVCCMetadata_SequencedIntent) ProtoMessage() {}
   108  func (*MVCCMetadata_SequencedIntent) Descriptor() ([]byte, []int) {
   109  	return fileDescriptor_mvcc_7eac2e495f55e518, []int{0, 0}
   110  }
   111  func (m *MVCCMetadata_SequencedIntent) XXX_Unmarshal(b []byte) error {
   112  	return m.Unmarshal(b)
   113  }
   114  func (m *MVCCMetadata_SequencedIntent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   115  	b = b[:cap(b)]
   116  	n, err := m.MarshalTo(b)
   117  	if err != nil {
   118  		return nil, err
   119  	}
   120  	return b[:n], nil
   121  }
   122  func (dst *MVCCMetadata_SequencedIntent) XXX_Merge(src proto.Message) {
   123  	xxx_messageInfo_MVCCMetadata_SequencedIntent.Merge(dst, src)
   124  }
   125  func (m *MVCCMetadata_SequencedIntent) XXX_Size() int {
   126  	return m.Size()
   127  }
   128  func (m *MVCCMetadata_SequencedIntent) XXX_DiscardUnknown() {
   129  	xxx_messageInfo_MVCCMetadata_SequencedIntent.DiscardUnknown(m)
   130  }
   131  
   132  var xxx_messageInfo_MVCCMetadata_SequencedIntent proto.InternalMessageInfo
   133  
   134  // A mirror of MVCCMetadata intended for serializing non-MVCC data that is
   135  // merged within the RocksDB or Pebble engines. Such data only populates
   136  // raw_bytes and optionally merge_timestamp. The C++ serialization of
   137  // MVCCMetadata does not serialize any of the missing optional fields, but
   138  // the Go serialization treats the optional fields annotated with
   139  // [(gogoproto.nullable) = false] in a manner that cannot distinguish
   140  // between the default and missing value, and causes them to serialized
   141  // (e.g. fields with tag 2, 3, 4, 5). By using the following proto in the
   142  // Go merge code, the Go and C++ serialization match.
   143  type MVCCMetadataSubsetForMergeSerialization struct {
   144  	RawBytes       []byte               `protobuf:"bytes,6,opt,name=raw_bytes,json=rawBytes" json:"raw_bytes,omitempty"`
   145  	MergeTimestamp *hlc.LegacyTimestamp `protobuf:"bytes,7,opt,name=merge_timestamp,json=mergeTimestamp" json:"merge_timestamp,omitempty"`
   146  }
   147  
   148  func (m *MVCCMetadataSubsetForMergeSerialization) Reset() {
   149  	*m = MVCCMetadataSubsetForMergeSerialization{}
   150  }
   151  func (*MVCCMetadataSubsetForMergeSerialization) ProtoMessage() {}
   152  func (*MVCCMetadataSubsetForMergeSerialization) Descriptor() ([]byte, []int) {
   153  	return fileDescriptor_mvcc_7eac2e495f55e518, []int{1}
   154  }
   155  func (m *MVCCMetadataSubsetForMergeSerialization) XXX_Unmarshal(b []byte) error {
   156  	return m.Unmarshal(b)
   157  }
   158  func (m *MVCCMetadataSubsetForMergeSerialization) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   159  	b = b[:cap(b)]
   160  	n, err := m.MarshalTo(b)
   161  	if err != nil {
   162  		return nil, err
   163  	}
   164  	return b[:n], nil
   165  }
   166  func (dst *MVCCMetadataSubsetForMergeSerialization) XXX_Merge(src proto.Message) {
   167  	xxx_messageInfo_MVCCMetadataSubsetForMergeSerialization.Merge(dst, src)
   168  }
   169  func (m *MVCCMetadataSubsetForMergeSerialization) XXX_Size() int {
   170  	return m.Size()
   171  }
   172  func (m *MVCCMetadataSubsetForMergeSerialization) XXX_DiscardUnknown() {
   173  	xxx_messageInfo_MVCCMetadataSubsetForMergeSerialization.DiscardUnknown(m)
   174  }
   175  
   176  var xxx_messageInfo_MVCCMetadataSubsetForMergeSerialization proto.InternalMessageInfo
   177  
   178  // MVCCStats tracks byte and instance counts for various groups of keys,
   179  // values, or key-value pairs; see the field comments for details.
   180  //
   181  // It also tracks two cumulative ages, namely that of intents and non-live
   182  // (i.e. GC-able) bytes. This computation is intrinsically linked to
   183  // last_update_nanos and is easy to get wrong. Updates happen only once every
   184  // full second, as measured by last_update_nanos/1e9. That is, forward updates
   185  // don't change last_update_nanos until an update at a timestamp which,
   186  // truncated to the second, is ahead of last_update_nanos/1e9. Then, that
   187  // difference in seconds times the base quantity (excluding the currently
   188  // running update) is added to the age.
   189  //
   190  // To give an example, if an intent is around from `t=2.5s` to `t=4.1s` (the
   191  // current time), then it contributes an intent age of two seconds (one second
   192  // picked up when crossing `t=3s`, another one at `t=4s`). Similarly, if a
   193  // GC'able kv pair is around for this amount of time, it contributes two seconds
   194  // times its size in bytes.
   195  //
   196  // It gets more complicated when data is
   197  // accounted for with a timestamp behind last_update_nanos. In this case, if
   198  // more than a second has passed (computed via truncation above), the ages have
   199  // to be adjusted to account for this late addition. This isn't hard: add the
   200  // new data's base quantity times the (truncated) number of seconds behind.
   201  // Important to keep in mind with those computations is that (x/1e9 - y/1e9)
   202  // does not equal (x-y)/1e9 in most cases.
   203  //
   204  // Note that this struct must be kept at a fixed size by using fixed-size
   205  // encodings for all fields and by making all fields non-nullable. This is
   206  // so that it can predict its own impact on the size of the system-local
   207  // kv-pairs.
   208  type MVCCStats struct {
   209  	// contains_estimates indicates that the MVCCStats object contains values
   210  	// which have been estimated. This means that the stats should not be used
   211  	// where complete accuracy is required, and instead should be recomputed
   212  	// when necessary. See clusterversion.VersionContainsEstimatesCounter for
   213  	// details about the migration from bool to int64.
   214  	ContainsEstimates int64 `protobuf:"varint,14,opt,name=contains_estimates,json=containsEstimates" json:"contains_estimates"`
   215  	// last_update_nanos is a timestamp at which the ages were last
   216  	// updated. See the comment on MVCCStats.
   217  	LastUpdateNanos int64 `protobuf:"fixed64,1,opt,name=last_update_nanos,json=lastUpdateNanos" json:"last_update_nanos"`
   218  	// intent_age is the cumulative age of the tracked intents.
   219  	// See the comment on MVCCStats.
   220  	IntentAge int64 `protobuf:"fixed64,2,opt,name=intent_age,json=intentAge" json:"intent_age"`
   221  	// gc_bytes_age is the cumulative age of the non-live data (i.e.
   222  	// data included in key_bytes and val_bytes, but not live_bytes).
   223  	// See the comment on MVCCStats.
   224  	GCBytesAge int64 `protobuf:"fixed64,3,opt,name=gc_bytes_age,json=gcBytesAge" json:"gc_bytes_age"`
   225  	// live_bytes is the number of bytes stored in keys and values which can in
   226  	// principle be read by means of a Scan or Get in the far future, including
   227  	// intents but not deletion tombstones (or their intents). Note that the
   228  	// size of the meta kv pair (which could be explicit or implicit) is
   229  	// included in this. Only the meta kv pair counts for the actual length of
   230  	// the encoded key (regular pairs only count the timestamp suffix).
   231  	LiveBytes int64 `protobuf:"fixed64,4,opt,name=live_bytes,json=liveBytes" json:"live_bytes"`
   232  	// live_count is the number of meta keys tracked under live_bytes.
   233  	LiveCount int64 `protobuf:"fixed64,5,opt,name=live_count,json=liveCount" json:"live_count"`
   234  	// key_bytes is the number of bytes stored in all non-system
   235  	// keys, including live, meta, old, and deleted keys.
   236  	// Only meta keys really account for the "full" key; value
   237  	// keys only for the timestamp suffix.
   238  	KeyBytes int64 `protobuf:"fixed64,6,opt,name=key_bytes,json=keyBytes" json:"key_bytes"`
   239  	// key_count is the number of meta keys tracked under key_bytes.
   240  	KeyCount int64 `protobuf:"fixed64,7,opt,name=key_count,json=keyCount" json:"key_count"`
   241  	// value_bytes is the number of bytes in all non-system version
   242  	// values, including meta values.
   243  	ValBytes int64 `protobuf:"fixed64,8,opt,name=val_bytes,json=valBytes" json:"val_bytes"`
   244  	// val_count is the number of meta values tracked under val_bytes.
   245  	ValCount int64 `protobuf:"fixed64,9,opt,name=val_count,json=valCount" json:"val_count"`
   246  	// intent_bytes is the number of bytes in intent key-value
   247  	// pairs (without their meta keys).
   248  	IntentBytes int64 `protobuf:"fixed64,10,opt,name=intent_bytes,json=intentBytes" json:"intent_bytes"`
   249  	// intent_count is the number of keys tracked under intent_bytes.
   250  	// It is equal to the number of meta keys in the system with
   251  	// a non-empty Transaction proto.
   252  	IntentCount int64 `protobuf:"fixed64,11,opt,name=intent_count,json=intentCount" json:"intent_count"`
   253  	// sys_bytes is the number of bytes stored in system-local kv-pairs.
   254  	// This tracks the same quantity as (key_bytes + val_bytes), but
   255  	// for system-local metadata keys (which aren't counted in either
   256  	// key_bytes or val_bytes). Each of the keys falling into this group
   257  	// is documented in keys/constants.go under the localPrefix constant
   258  	// and is prefixed by either LocalRangeIDPrefix or LocalRangePrefix.
   259  	SysBytes int64 `protobuf:"fixed64,12,opt,name=sys_bytes,json=sysBytes" json:"sys_bytes"`
   260  	// sys_count is the number of meta keys tracked under sys_bytes.
   261  	SysCount int64 `protobuf:"fixed64,13,opt,name=sys_count,json=sysCount" json:"sys_count"`
   262  }
   263  
   264  func (m *MVCCStats) Reset()         { *m = MVCCStats{} }
   265  func (m *MVCCStats) String() string { return proto.CompactTextString(m) }
   266  func (*MVCCStats) ProtoMessage()    {}
   267  func (*MVCCStats) Descriptor() ([]byte, []int) {
   268  	return fileDescriptor_mvcc_7eac2e495f55e518, []int{2}
   269  }
   270  func (m *MVCCStats) XXX_Unmarshal(b []byte) error {
   271  	return m.Unmarshal(b)
   272  }
   273  func (m *MVCCStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   274  	b = b[:cap(b)]
   275  	n, err := m.MarshalTo(b)
   276  	if err != nil {
   277  		return nil, err
   278  	}
   279  	return b[:n], nil
   280  }
   281  func (dst *MVCCStats) XXX_Merge(src proto.Message) {
   282  	xxx_messageInfo_MVCCStats.Merge(dst, src)
   283  }
   284  func (m *MVCCStats) XXX_Size() int {
   285  	return m.Size()
   286  }
   287  func (m *MVCCStats) XXX_DiscardUnknown() {
   288  	xxx_messageInfo_MVCCStats.DiscardUnknown(m)
   289  }
   290  
   291  var xxx_messageInfo_MVCCStats proto.InternalMessageInfo
   292  
   293  func init() {
   294  	proto.RegisterType((*MVCCMetadata)(nil), "cockroach.storage.enginepb.MVCCMetadata")
   295  	proto.RegisterType((*MVCCMetadata_SequencedIntent)(nil), "cockroach.storage.enginepb.MVCCMetadata.SequencedIntent")
   296  	proto.RegisterType((*MVCCMetadataSubsetForMergeSerialization)(nil), "cockroach.storage.enginepb.MVCCMetadataSubsetForMergeSerialization")
   297  	proto.RegisterType((*MVCCStats)(nil), "cockroach.storage.enginepb.MVCCStats")
   298  }
   299  func (this *MVCCMetadata) Equal(that interface{}) bool {
   300  	if that == nil {
   301  		return this == nil
   302  	}
   303  
   304  	that1, ok := that.(*MVCCMetadata)
   305  	if !ok {
   306  		that2, ok := that.(MVCCMetadata)
   307  		if ok {
   308  			that1 = &that2
   309  		} else {
   310  			return false
   311  		}
   312  	}
   313  	if that1 == nil {
   314  		return this == nil
   315  	} else if this == nil {
   316  		return false
   317  	}
   318  	if !this.Txn.Equal(that1.Txn) {
   319  		return false
   320  	}
   321  	if !this.Timestamp.Equal(&that1.Timestamp) {
   322  		return false
   323  	}
   324  	if this.Deleted != that1.Deleted {
   325  		return false
   326  	}
   327  	if this.KeyBytes != that1.KeyBytes {
   328  		return false
   329  	}
   330  	if this.ValBytes != that1.ValBytes {
   331  		return false
   332  	}
   333  	if !bytes.Equal(this.RawBytes, that1.RawBytes) {
   334  		return false
   335  	}
   336  	if len(this.IntentHistory) != len(that1.IntentHistory) {
   337  		return false
   338  	}
   339  	for i := range this.IntentHistory {
   340  		if !this.IntentHistory[i].Equal(&that1.IntentHistory[i]) {
   341  			return false
   342  		}
   343  	}
   344  	if !this.MergeTimestamp.Equal(that1.MergeTimestamp) {
   345  		return false
   346  	}
   347  	return true
   348  }
   349  func (this *MVCCMetadata_SequencedIntent) Equal(that interface{}) bool {
   350  	if that == nil {
   351  		return this == nil
   352  	}
   353  
   354  	that1, ok := that.(*MVCCMetadata_SequencedIntent)
   355  	if !ok {
   356  		that2, ok := that.(MVCCMetadata_SequencedIntent)
   357  		if ok {
   358  			that1 = &that2
   359  		} else {
   360  			return false
   361  		}
   362  	}
   363  	if that1 == nil {
   364  		return this == nil
   365  	} else if this == nil {
   366  		return false
   367  	}
   368  	if this.Sequence != that1.Sequence {
   369  		return false
   370  	}
   371  	if !bytes.Equal(this.Value, that1.Value) {
   372  		return false
   373  	}
   374  	return true
   375  }
   376  func (this *MVCCMetadataSubsetForMergeSerialization) Equal(that interface{}) bool {
   377  	if that == nil {
   378  		return this == nil
   379  	}
   380  
   381  	that1, ok := that.(*MVCCMetadataSubsetForMergeSerialization)
   382  	if !ok {
   383  		that2, ok := that.(MVCCMetadataSubsetForMergeSerialization)
   384  		if ok {
   385  			that1 = &that2
   386  		} else {
   387  			return false
   388  		}
   389  	}
   390  	if that1 == nil {
   391  		return this == nil
   392  	} else if this == nil {
   393  		return false
   394  	}
   395  	if !bytes.Equal(this.RawBytes, that1.RawBytes) {
   396  		return false
   397  	}
   398  	if !this.MergeTimestamp.Equal(that1.MergeTimestamp) {
   399  		return false
   400  	}
   401  	return true
   402  }
   403  func (this *MVCCStats) Equal(that interface{}) bool {
   404  	if that == nil {
   405  		return this == nil
   406  	}
   407  
   408  	that1, ok := that.(*MVCCStats)
   409  	if !ok {
   410  		that2, ok := that.(MVCCStats)
   411  		if ok {
   412  			that1 = &that2
   413  		} else {
   414  			return false
   415  		}
   416  	}
   417  	if that1 == nil {
   418  		return this == nil
   419  	} else if this == nil {
   420  		return false
   421  	}
   422  	if this.ContainsEstimates != that1.ContainsEstimates {
   423  		return false
   424  	}
   425  	if this.LastUpdateNanos != that1.LastUpdateNanos {
   426  		return false
   427  	}
   428  	if this.IntentAge != that1.IntentAge {
   429  		return false
   430  	}
   431  	if this.GCBytesAge != that1.GCBytesAge {
   432  		return false
   433  	}
   434  	if this.LiveBytes != that1.LiveBytes {
   435  		return false
   436  	}
   437  	if this.LiveCount != that1.LiveCount {
   438  		return false
   439  	}
   440  	if this.KeyBytes != that1.KeyBytes {
   441  		return false
   442  	}
   443  	if this.KeyCount != that1.KeyCount {
   444  		return false
   445  	}
   446  	if this.ValBytes != that1.ValBytes {
   447  		return false
   448  	}
   449  	if this.ValCount != that1.ValCount {
   450  		return false
   451  	}
   452  	if this.IntentBytes != that1.IntentBytes {
   453  		return false
   454  	}
   455  	if this.IntentCount != that1.IntentCount {
   456  		return false
   457  	}
   458  	if this.SysBytes != that1.SysBytes {
   459  		return false
   460  	}
   461  	if this.SysCount != that1.SysCount {
   462  		return false
   463  	}
   464  	return true
   465  }
   466  func (m *MVCCMetadata) Marshal() (dAtA []byte, err error) {
   467  	size := m.Size()
   468  	dAtA = make([]byte, size)
   469  	n, err := m.MarshalTo(dAtA)
   470  	if err != nil {
   471  		return nil, err
   472  	}
   473  	return dAtA[:n], nil
   474  }
   475  
   476  func (m *MVCCMetadata) MarshalTo(dAtA []byte) (int, error) {
   477  	var i int
   478  	_ = i
   479  	var l int
   480  	_ = l
   481  	if m.Txn != nil {
   482  		dAtA[i] = 0xa
   483  		i++
   484  		i = encodeVarintMvcc(dAtA, i, uint64(m.Txn.Size()))
   485  		n1, err := m.Txn.MarshalTo(dAtA[i:])
   486  		if err != nil {
   487  			return 0, err
   488  		}
   489  		i += n1
   490  	}
   491  	dAtA[i] = 0x12
   492  	i++
   493  	i = encodeVarintMvcc(dAtA, i, uint64(m.Timestamp.Size()))
   494  	n2, err := m.Timestamp.MarshalTo(dAtA[i:])
   495  	if err != nil {
   496  		return 0, err
   497  	}
   498  	i += n2
   499  	dAtA[i] = 0x18
   500  	i++
   501  	if m.Deleted {
   502  		dAtA[i] = 1
   503  	} else {
   504  		dAtA[i] = 0
   505  	}
   506  	i++
   507  	dAtA[i] = 0x20
   508  	i++
   509  	i = encodeVarintMvcc(dAtA, i, uint64(m.KeyBytes))
   510  	dAtA[i] = 0x28
   511  	i++
   512  	i = encodeVarintMvcc(dAtA, i, uint64(m.ValBytes))
   513  	if m.RawBytes != nil {
   514  		dAtA[i] = 0x32
   515  		i++
   516  		i = encodeVarintMvcc(dAtA, i, uint64(len(m.RawBytes)))
   517  		i += copy(dAtA[i:], m.RawBytes)
   518  	}
   519  	if m.MergeTimestamp != nil {
   520  		dAtA[i] = 0x3a
   521  		i++
   522  		i = encodeVarintMvcc(dAtA, i, uint64(m.MergeTimestamp.Size()))
   523  		n3, err := m.MergeTimestamp.MarshalTo(dAtA[i:])
   524  		if err != nil {
   525  			return 0, err
   526  		}
   527  		i += n3
   528  	}
   529  	if len(m.IntentHistory) > 0 {
   530  		for _, msg := range m.IntentHistory {
   531  			dAtA[i] = 0x42
   532  			i++
   533  			i = encodeVarintMvcc(dAtA, i, uint64(msg.Size()))
   534  			n, err := msg.MarshalTo(dAtA[i:])
   535  			if err != nil {
   536  				return 0, err
   537  			}
   538  			i += n
   539  		}
   540  	}
   541  	return i, nil
   542  }
   543  
   544  func (m *MVCCMetadata_SequencedIntent) Marshal() (dAtA []byte, err error) {
   545  	size := m.Size()
   546  	dAtA = make([]byte, size)
   547  	n, err := m.MarshalTo(dAtA)
   548  	if err != nil {
   549  		return nil, err
   550  	}
   551  	return dAtA[:n], nil
   552  }
   553  
   554  func (m *MVCCMetadata_SequencedIntent) MarshalTo(dAtA []byte) (int, error) {
   555  	var i int
   556  	_ = i
   557  	var l int
   558  	_ = l
   559  	dAtA[i] = 0x8
   560  	i++
   561  	i = encodeVarintMvcc(dAtA, i, uint64(m.Sequence))
   562  	if m.Value != nil {
   563  		dAtA[i] = 0x12
   564  		i++
   565  		i = encodeVarintMvcc(dAtA, i, uint64(len(m.Value)))
   566  		i += copy(dAtA[i:], m.Value)
   567  	}
   568  	return i, nil
   569  }
   570  
   571  func (m *MVCCMetadataSubsetForMergeSerialization) Marshal() (dAtA []byte, err error) {
   572  	size := m.Size()
   573  	dAtA = make([]byte, size)
   574  	n, err := m.MarshalTo(dAtA)
   575  	if err != nil {
   576  		return nil, err
   577  	}
   578  	return dAtA[:n], nil
   579  }
   580  
   581  func (m *MVCCMetadataSubsetForMergeSerialization) MarshalTo(dAtA []byte) (int, error) {
   582  	var i int
   583  	_ = i
   584  	var l int
   585  	_ = l
   586  	if m.RawBytes != nil {
   587  		dAtA[i] = 0x32
   588  		i++
   589  		i = encodeVarintMvcc(dAtA, i, uint64(len(m.RawBytes)))
   590  		i += copy(dAtA[i:], m.RawBytes)
   591  	}
   592  	if m.MergeTimestamp != nil {
   593  		dAtA[i] = 0x3a
   594  		i++
   595  		i = encodeVarintMvcc(dAtA, i, uint64(m.MergeTimestamp.Size()))
   596  		n4, err := m.MergeTimestamp.MarshalTo(dAtA[i:])
   597  		if err != nil {
   598  			return 0, err
   599  		}
   600  		i += n4
   601  	}
   602  	return i, nil
   603  }
   604  
   605  func (m *MVCCStats) Marshal() (dAtA []byte, err error) {
   606  	size := m.Size()
   607  	dAtA = make([]byte, size)
   608  	n, err := m.MarshalTo(dAtA)
   609  	if err != nil {
   610  		return nil, err
   611  	}
   612  	return dAtA[:n], nil
   613  }
   614  
   615  func (m *MVCCStats) MarshalTo(dAtA []byte) (int, error) {
   616  	var i int
   617  	_ = i
   618  	var l int
   619  	_ = l
   620  	dAtA[i] = 0x9
   621  	i++
   622  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.LastUpdateNanos))
   623  	i += 8
   624  	dAtA[i] = 0x11
   625  	i++
   626  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.IntentAge))
   627  	i += 8
   628  	dAtA[i] = 0x19
   629  	i++
   630  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.GCBytesAge))
   631  	i += 8
   632  	dAtA[i] = 0x21
   633  	i++
   634  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.LiveBytes))
   635  	i += 8
   636  	dAtA[i] = 0x29
   637  	i++
   638  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.LiveCount))
   639  	i += 8
   640  	dAtA[i] = 0x31
   641  	i++
   642  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.KeyBytes))
   643  	i += 8
   644  	dAtA[i] = 0x39
   645  	i++
   646  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.KeyCount))
   647  	i += 8
   648  	dAtA[i] = 0x41
   649  	i++
   650  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.ValBytes))
   651  	i += 8
   652  	dAtA[i] = 0x49
   653  	i++
   654  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.ValCount))
   655  	i += 8
   656  	dAtA[i] = 0x51
   657  	i++
   658  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.IntentBytes))
   659  	i += 8
   660  	dAtA[i] = 0x59
   661  	i++
   662  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.IntentCount))
   663  	i += 8
   664  	dAtA[i] = 0x61
   665  	i++
   666  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.SysBytes))
   667  	i += 8
   668  	dAtA[i] = 0x69
   669  	i++
   670  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.SysCount))
   671  	i += 8
   672  	dAtA[i] = 0x70
   673  	i++
   674  	i = encodeVarintMvcc(dAtA, i, uint64(m.ContainsEstimates))
   675  	return i, nil
   676  }
   677  
   678  func encodeVarintMvcc(dAtA []byte, offset int, v uint64) int {
   679  	for v >= 1<<7 {
   680  		dAtA[offset] = uint8(v&0x7f | 0x80)
   681  		v >>= 7
   682  		offset++
   683  	}
   684  	dAtA[offset] = uint8(v)
   685  	return offset + 1
   686  }
   687  func NewPopulatedMVCCMetadata(r randyMvcc, easy bool) *MVCCMetadata {
   688  	this := &MVCCMetadata{}
   689  	if r.Intn(10) != 0 {
   690  		this.Txn = NewPopulatedTxnMeta(r, easy)
   691  	}
   692  	v1 := hlc.NewPopulatedLegacyTimestamp(r, easy)
   693  	this.Timestamp = *v1
   694  	this.Deleted = bool(bool(r.Intn(2) == 0))
   695  	this.KeyBytes = int64(r.Int63())
   696  	if r.Intn(2) == 0 {
   697  		this.KeyBytes *= -1
   698  	}
   699  	this.ValBytes = int64(r.Int63())
   700  	if r.Intn(2) == 0 {
   701  		this.ValBytes *= -1
   702  	}
   703  	if r.Intn(10) != 0 {
   704  		v2 := r.Intn(100)
   705  		this.RawBytes = make([]byte, v2)
   706  		for i := 0; i < v2; i++ {
   707  			this.RawBytes[i] = byte(r.Intn(256))
   708  		}
   709  	}
   710  	if r.Intn(10) != 0 {
   711  		this.MergeTimestamp = hlc.NewPopulatedLegacyTimestamp(r, easy)
   712  	}
   713  	if r.Intn(10) != 0 {
   714  		v3 := r.Intn(5)
   715  		this.IntentHistory = make([]MVCCMetadata_SequencedIntent, v3)
   716  		for i := 0; i < v3; i++ {
   717  			v4 := NewPopulatedMVCCMetadata_SequencedIntent(r, easy)
   718  			this.IntentHistory[i] = *v4
   719  		}
   720  	}
   721  	if !easy && r.Intn(10) != 0 {
   722  	}
   723  	return this
   724  }
   725  
   726  func NewPopulatedMVCCMetadata_SequencedIntent(r randyMvcc, easy bool) *MVCCMetadata_SequencedIntent {
   727  	this := &MVCCMetadata_SequencedIntent{}
   728  	this.Sequence = TxnSeq(r.Int31())
   729  	if r.Intn(2) == 0 {
   730  		this.Sequence *= -1
   731  	}
   732  	if r.Intn(10) != 0 {
   733  		v5 := r.Intn(100)
   734  		this.Value = make([]byte, v5)
   735  		for i := 0; i < v5; i++ {
   736  			this.Value[i] = byte(r.Intn(256))
   737  		}
   738  	}
   739  	if !easy && r.Intn(10) != 0 {
   740  	}
   741  	return this
   742  }
   743  
   744  func NewPopulatedMVCCMetadataSubsetForMergeSerialization(r randyMvcc, easy bool) *MVCCMetadataSubsetForMergeSerialization {
   745  	this := &MVCCMetadataSubsetForMergeSerialization{}
   746  	if r.Intn(10) != 0 {
   747  		v6 := r.Intn(100)
   748  		this.RawBytes = make([]byte, v6)
   749  		for i := 0; i < v6; i++ {
   750  			this.RawBytes[i] = byte(r.Intn(256))
   751  		}
   752  	}
   753  	if r.Intn(10) != 0 {
   754  		this.MergeTimestamp = hlc.NewPopulatedLegacyTimestamp(r, easy)
   755  	}
   756  	if !easy && r.Intn(10) != 0 {
   757  	}
   758  	return this
   759  }
   760  
   761  func NewPopulatedMVCCStats(r randyMvcc, easy bool) *MVCCStats {
   762  	this := &MVCCStats{}
   763  	this.LastUpdateNanos = int64(r.Int63())
   764  	if r.Intn(2) == 0 {
   765  		this.LastUpdateNanos *= -1
   766  	}
   767  	this.IntentAge = int64(r.Int63())
   768  	if r.Intn(2) == 0 {
   769  		this.IntentAge *= -1
   770  	}
   771  	this.GCBytesAge = int64(r.Int63())
   772  	if r.Intn(2) == 0 {
   773  		this.GCBytesAge *= -1
   774  	}
   775  	this.LiveBytes = int64(r.Int63())
   776  	if r.Intn(2) == 0 {
   777  		this.LiveBytes *= -1
   778  	}
   779  	this.LiveCount = int64(r.Int63())
   780  	if r.Intn(2) == 0 {
   781  		this.LiveCount *= -1
   782  	}
   783  	this.KeyBytes = int64(r.Int63())
   784  	if r.Intn(2) == 0 {
   785  		this.KeyBytes *= -1
   786  	}
   787  	this.KeyCount = int64(r.Int63())
   788  	if r.Intn(2) == 0 {
   789  		this.KeyCount *= -1
   790  	}
   791  	this.ValBytes = int64(r.Int63())
   792  	if r.Intn(2) == 0 {
   793  		this.ValBytes *= -1
   794  	}
   795  	this.ValCount = int64(r.Int63())
   796  	if r.Intn(2) == 0 {
   797  		this.ValCount *= -1
   798  	}
   799  	this.IntentBytes = int64(r.Int63())
   800  	if r.Intn(2) == 0 {
   801  		this.IntentBytes *= -1
   802  	}
   803  	this.IntentCount = int64(r.Int63())
   804  	if r.Intn(2) == 0 {
   805  		this.IntentCount *= -1
   806  	}
   807  	this.SysBytes = int64(r.Int63())
   808  	if r.Intn(2) == 0 {
   809  		this.SysBytes *= -1
   810  	}
   811  	this.SysCount = int64(r.Int63())
   812  	if r.Intn(2) == 0 {
   813  		this.SysCount *= -1
   814  	}
   815  	this.ContainsEstimates = int64(r.Int63())
   816  	if r.Intn(2) == 0 {
   817  		this.ContainsEstimates *= -1
   818  	}
   819  	if !easy && r.Intn(10) != 0 {
   820  	}
   821  	return this
   822  }
   823  
   824  type randyMvcc interface {
   825  	Float32() float32
   826  	Float64() float64
   827  	Int63() int64
   828  	Int31() int32
   829  	Uint32() uint32
   830  	Intn(n int) int
   831  }
   832  
   833  func randUTF8RuneMvcc(r randyMvcc) rune {
   834  	ru := r.Intn(62)
   835  	if ru < 10 {
   836  		return rune(ru + 48)
   837  	} else if ru < 36 {
   838  		return rune(ru + 55)
   839  	}
   840  	return rune(ru + 61)
   841  }
   842  func randStringMvcc(r randyMvcc) string {
   843  	v7 := r.Intn(100)
   844  	tmps := make([]rune, v7)
   845  	for i := 0; i < v7; i++ {
   846  		tmps[i] = randUTF8RuneMvcc(r)
   847  	}
   848  	return string(tmps)
   849  }
   850  func randUnrecognizedMvcc(r randyMvcc, maxFieldNumber int) (dAtA []byte) {
   851  	l := r.Intn(5)
   852  	for i := 0; i < l; i++ {
   853  		wire := r.Intn(4)
   854  		if wire == 3 {
   855  			wire = 5
   856  		}
   857  		fieldNumber := maxFieldNumber + r.Intn(100)
   858  		dAtA = randFieldMvcc(dAtA, r, fieldNumber, wire)
   859  	}
   860  	return dAtA
   861  }
   862  func randFieldMvcc(dAtA []byte, r randyMvcc, fieldNumber int, wire int) []byte {
   863  	key := uint32(fieldNumber)<<3 | uint32(wire)
   864  	switch wire {
   865  	case 0:
   866  		dAtA = encodeVarintPopulateMvcc(dAtA, uint64(key))
   867  		v8 := r.Int63()
   868  		if r.Intn(2) == 0 {
   869  			v8 *= -1
   870  		}
   871  		dAtA = encodeVarintPopulateMvcc(dAtA, uint64(v8))
   872  	case 1:
   873  		dAtA = encodeVarintPopulateMvcc(dAtA, uint64(key))
   874  		dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
   875  	case 2:
   876  		dAtA = encodeVarintPopulateMvcc(dAtA, uint64(key))
   877  		ll := r.Intn(100)
   878  		dAtA = encodeVarintPopulateMvcc(dAtA, uint64(ll))
   879  		for j := 0; j < ll; j++ {
   880  			dAtA = append(dAtA, byte(r.Intn(256)))
   881  		}
   882  	default:
   883  		dAtA = encodeVarintPopulateMvcc(dAtA, uint64(key))
   884  		dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
   885  	}
   886  	return dAtA
   887  }
   888  func encodeVarintPopulateMvcc(dAtA []byte, v uint64) []byte {
   889  	for v >= 1<<7 {
   890  		dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80))
   891  		v >>= 7
   892  	}
   893  	dAtA = append(dAtA, uint8(v))
   894  	return dAtA
   895  }
   896  func (m *MVCCMetadata) Size() (n int) {
   897  	if m == nil {
   898  		return 0
   899  	}
   900  	var l int
   901  	_ = l
   902  	if m.Txn != nil {
   903  		l = m.Txn.Size()
   904  		n += 1 + l + sovMvcc(uint64(l))
   905  	}
   906  	l = m.Timestamp.Size()
   907  	n += 1 + l + sovMvcc(uint64(l))
   908  	n += 2
   909  	n += 1 + sovMvcc(uint64(m.KeyBytes))
   910  	n += 1 + sovMvcc(uint64(m.ValBytes))
   911  	if m.RawBytes != nil {
   912  		l = len(m.RawBytes)
   913  		n += 1 + l + sovMvcc(uint64(l))
   914  	}
   915  	if m.MergeTimestamp != nil {
   916  		l = m.MergeTimestamp.Size()
   917  		n += 1 + l + sovMvcc(uint64(l))
   918  	}
   919  	if len(m.IntentHistory) > 0 {
   920  		for _, e := range m.IntentHistory {
   921  			l = e.Size()
   922  			n += 1 + l + sovMvcc(uint64(l))
   923  		}
   924  	}
   925  	return n
   926  }
   927  
   928  func (m *MVCCMetadata_SequencedIntent) Size() (n int) {
   929  	if m == nil {
   930  		return 0
   931  	}
   932  	var l int
   933  	_ = l
   934  	n += 1 + sovMvcc(uint64(m.Sequence))
   935  	if m.Value != nil {
   936  		l = len(m.Value)
   937  		n += 1 + l + sovMvcc(uint64(l))
   938  	}
   939  	return n
   940  }
   941  
   942  func (m *MVCCMetadataSubsetForMergeSerialization) Size() (n int) {
   943  	if m == nil {
   944  		return 0
   945  	}
   946  	var l int
   947  	_ = l
   948  	if m.RawBytes != nil {
   949  		l = len(m.RawBytes)
   950  		n += 1 + l + sovMvcc(uint64(l))
   951  	}
   952  	if m.MergeTimestamp != nil {
   953  		l = m.MergeTimestamp.Size()
   954  		n += 1 + l + sovMvcc(uint64(l))
   955  	}
   956  	return n
   957  }
   958  
   959  func (m *MVCCStats) Size() (n int) {
   960  	if m == nil {
   961  		return 0
   962  	}
   963  	var l int
   964  	_ = l
   965  	n += 9
   966  	n += 9
   967  	n += 9
   968  	n += 9
   969  	n += 9
   970  	n += 9
   971  	n += 9
   972  	n += 9
   973  	n += 9
   974  	n += 9
   975  	n += 9
   976  	n += 9
   977  	n += 9
   978  	n += 1 + sovMvcc(uint64(m.ContainsEstimates))
   979  	return n
   980  }
   981  
   982  func sovMvcc(x uint64) (n int) {
   983  	for {
   984  		n++
   985  		x >>= 7
   986  		if x == 0 {
   987  			break
   988  		}
   989  	}
   990  	return n
   991  }
   992  func sozMvcc(x uint64) (n int) {
   993  	return sovMvcc(uint64((x << 1) ^ uint64((int64(x) >> 63))))
   994  }
   995  func (m *MVCCMetadata) Unmarshal(dAtA []byte) error {
   996  	l := len(dAtA)
   997  	iNdEx := 0
   998  	for iNdEx < l {
   999  		preIndex := iNdEx
  1000  		var wire uint64
  1001  		for shift := uint(0); ; shift += 7 {
  1002  			if shift >= 64 {
  1003  				return ErrIntOverflowMvcc
  1004  			}
  1005  			if iNdEx >= l {
  1006  				return io.ErrUnexpectedEOF
  1007  			}
  1008  			b := dAtA[iNdEx]
  1009  			iNdEx++
  1010  			wire |= (uint64(b) & 0x7F) << shift
  1011  			if b < 0x80 {
  1012  				break
  1013  			}
  1014  		}
  1015  		fieldNum := int32(wire >> 3)
  1016  		wireType := int(wire & 0x7)
  1017  		if wireType == 4 {
  1018  			return fmt.Errorf("proto: MVCCMetadata: wiretype end group for non-group")
  1019  		}
  1020  		if fieldNum <= 0 {
  1021  			return fmt.Errorf("proto: MVCCMetadata: illegal tag %d (wire type %d)", fieldNum, wire)
  1022  		}
  1023  		switch fieldNum {
  1024  		case 1:
  1025  			if wireType != 2 {
  1026  				return fmt.Errorf("proto: wrong wireType = %d for field Txn", wireType)
  1027  			}
  1028  			var msglen int
  1029  			for shift := uint(0); ; shift += 7 {
  1030  				if shift >= 64 {
  1031  					return ErrIntOverflowMvcc
  1032  				}
  1033  				if iNdEx >= l {
  1034  					return io.ErrUnexpectedEOF
  1035  				}
  1036  				b := dAtA[iNdEx]
  1037  				iNdEx++
  1038  				msglen |= (int(b) & 0x7F) << shift
  1039  				if b < 0x80 {
  1040  					break
  1041  				}
  1042  			}
  1043  			if msglen < 0 {
  1044  				return ErrInvalidLengthMvcc
  1045  			}
  1046  			postIndex := iNdEx + msglen
  1047  			if postIndex > l {
  1048  				return io.ErrUnexpectedEOF
  1049  			}
  1050  			if m.Txn == nil {
  1051  				m.Txn = &TxnMeta{}
  1052  			}
  1053  			if err := m.Txn.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1054  				return err
  1055  			}
  1056  			iNdEx = postIndex
  1057  		case 2:
  1058  			if wireType != 2 {
  1059  				return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType)
  1060  			}
  1061  			var msglen int
  1062  			for shift := uint(0); ; shift += 7 {
  1063  				if shift >= 64 {
  1064  					return ErrIntOverflowMvcc
  1065  				}
  1066  				if iNdEx >= l {
  1067  					return io.ErrUnexpectedEOF
  1068  				}
  1069  				b := dAtA[iNdEx]
  1070  				iNdEx++
  1071  				msglen |= (int(b) & 0x7F) << shift
  1072  				if b < 0x80 {
  1073  					break
  1074  				}
  1075  			}
  1076  			if msglen < 0 {
  1077  				return ErrInvalidLengthMvcc
  1078  			}
  1079  			postIndex := iNdEx + msglen
  1080  			if postIndex > l {
  1081  				return io.ErrUnexpectedEOF
  1082  			}
  1083  			if err := m.Timestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1084  				return err
  1085  			}
  1086  			iNdEx = postIndex
  1087  		case 3:
  1088  			if wireType != 0 {
  1089  				return fmt.Errorf("proto: wrong wireType = %d for field Deleted", wireType)
  1090  			}
  1091  			var v int
  1092  			for shift := uint(0); ; shift += 7 {
  1093  				if shift >= 64 {
  1094  					return ErrIntOverflowMvcc
  1095  				}
  1096  				if iNdEx >= l {
  1097  					return io.ErrUnexpectedEOF
  1098  				}
  1099  				b := dAtA[iNdEx]
  1100  				iNdEx++
  1101  				v |= (int(b) & 0x7F) << shift
  1102  				if b < 0x80 {
  1103  					break
  1104  				}
  1105  			}
  1106  			m.Deleted = bool(v != 0)
  1107  		case 4:
  1108  			if wireType != 0 {
  1109  				return fmt.Errorf("proto: wrong wireType = %d for field KeyBytes", wireType)
  1110  			}
  1111  			m.KeyBytes = 0
  1112  			for shift := uint(0); ; shift += 7 {
  1113  				if shift >= 64 {
  1114  					return ErrIntOverflowMvcc
  1115  				}
  1116  				if iNdEx >= l {
  1117  					return io.ErrUnexpectedEOF
  1118  				}
  1119  				b := dAtA[iNdEx]
  1120  				iNdEx++
  1121  				m.KeyBytes |= (int64(b) & 0x7F) << shift
  1122  				if b < 0x80 {
  1123  					break
  1124  				}
  1125  			}
  1126  		case 5:
  1127  			if wireType != 0 {
  1128  				return fmt.Errorf("proto: wrong wireType = %d for field ValBytes", wireType)
  1129  			}
  1130  			m.ValBytes = 0
  1131  			for shift := uint(0); ; shift += 7 {
  1132  				if shift >= 64 {
  1133  					return ErrIntOverflowMvcc
  1134  				}
  1135  				if iNdEx >= l {
  1136  					return io.ErrUnexpectedEOF
  1137  				}
  1138  				b := dAtA[iNdEx]
  1139  				iNdEx++
  1140  				m.ValBytes |= (int64(b) & 0x7F) << shift
  1141  				if b < 0x80 {
  1142  					break
  1143  				}
  1144  			}
  1145  		case 6:
  1146  			if wireType != 2 {
  1147  				return fmt.Errorf("proto: wrong wireType = %d for field RawBytes", wireType)
  1148  			}
  1149  			var byteLen int
  1150  			for shift := uint(0); ; shift += 7 {
  1151  				if shift >= 64 {
  1152  					return ErrIntOverflowMvcc
  1153  				}
  1154  				if iNdEx >= l {
  1155  					return io.ErrUnexpectedEOF
  1156  				}
  1157  				b := dAtA[iNdEx]
  1158  				iNdEx++
  1159  				byteLen |= (int(b) & 0x7F) << shift
  1160  				if b < 0x80 {
  1161  					break
  1162  				}
  1163  			}
  1164  			if byteLen < 0 {
  1165  				return ErrInvalidLengthMvcc
  1166  			}
  1167  			postIndex := iNdEx + byteLen
  1168  			if postIndex > l {
  1169  				return io.ErrUnexpectedEOF
  1170  			}
  1171  			m.RawBytes = append(m.RawBytes[:0], dAtA[iNdEx:postIndex]...)
  1172  			if m.RawBytes == nil {
  1173  				m.RawBytes = []byte{}
  1174  			}
  1175  			iNdEx = postIndex
  1176  		case 7:
  1177  			if wireType != 2 {
  1178  				return fmt.Errorf("proto: wrong wireType = %d for field MergeTimestamp", wireType)
  1179  			}
  1180  			var msglen int
  1181  			for shift := uint(0); ; shift += 7 {
  1182  				if shift >= 64 {
  1183  					return ErrIntOverflowMvcc
  1184  				}
  1185  				if iNdEx >= l {
  1186  					return io.ErrUnexpectedEOF
  1187  				}
  1188  				b := dAtA[iNdEx]
  1189  				iNdEx++
  1190  				msglen |= (int(b) & 0x7F) << shift
  1191  				if b < 0x80 {
  1192  					break
  1193  				}
  1194  			}
  1195  			if msglen < 0 {
  1196  				return ErrInvalidLengthMvcc
  1197  			}
  1198  			postIndex := iNdEx + msglen
  1199  			if postIndex > l {
  1200  				return io.ErrUnexpectedEOF
  1201  			}
  1202  			if m.MergeTimestamp == nil {
  1203  				m.MergeTimestamp = &hlc.LegacyTimestamp{}
  1204  			}
  1205  			if err := m.MergeTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1206  				return err
  1207  			}
  1208  			iNdEx = postIndex
  1209  		case 8:
  1210  			if wireType != 2 {
  1211  				return fmt.Errorf("proto: wrong wireType = %d for field IntentHistory", wireType)
  1212  			}
  1213  			var msglen int
  1214  			for shift := uint(0); ; shift += 7 {
  1215  				if shift >= 64 {
  1216  					return ErrIntOverflowMvcc
  1217  				}
  1218  				if iNdEx >= l {
  1219  					return io.ErrUnexpectedEOF
  1220  				}
  1221  				b := dAtA[iNdEx]
  1222  				iNdEx++
  1223  				msglen |= (int(b) & 0x7F) << shift
  1224  				if b < 0x80 {
  1225  					break
  1226  				}
  1227  			}
  1228  			if msglen < 0 {
  1229  				return ErrInvalidLengthMvcc
  1230  			}
  1231  			postIndex := iNdEx + msglen
  1232  			if postIndex > l {
  1233  				return io.ErrUnexpectedEOF
  1234  			}
  1235  			m.IntentHistory = append(m.IntentHistory, MVCCMetadata_SequencedIntent{})
  1236  			if err := m.IntentHistory[len(m.IntentHistory)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1237  				return err
  1238  			}
  1239  			iNdEx = postIndex
  1240  		default:
  1241  			iNdEx = preIndex
  1242  			skippy, err := skipMvcc(dAtA[iNdEx:])
  1243  			if err != nil {
  1244  				return err
  1245  			}
  1246  			if skippy < 0 {
  1247  				return ErrInvalidLengthMvcc
  1248  			}
  1249  			if (iNdEx + skippy) > l {
  1250  				return io.ErrUnexpectedEOF
  1251  			}
  1252  			iNdEx += skippy
  1253  		}
  1254  	}
  1255  
  1256  	if iNdEx > l {
  1257  		return io.ErrUnexpectedEOF
  1258  	}
  1259  	return nil
  1260  }
  1261  func (m *MVCCMetadata_SequencedIntent) Unmarshal(dAtA []byte) error {
  1262  	l := len(dAtA)
  1263  	iNdEx := 0
  1264  	for iNdEx < l {
  1265  		preIndex := iNdEx
  1266  		var wire uint64
  1267  		for shift := uint(0); ; shift += 7 {
  1268  			if shift >= 64 {
  1269  				return ErrIntOverflowMvcc
  1270  			}
  1271  			if iNdEx >= l {
  1272  				return io.ErrUnexpectedEOF
  1273  			}
  1274  			b := dAtA[iNdEx]
  1275  			iNdEx++
  1276  			wire |= (uint64(b) & 0x7F) << shift
  1277  			if b < 0x80 {
  1278  				break
  1279  			}
  1280  		}
  1281  		fieldNum := int32(wire >> 3)
  1282  		wireType := int(wire & 0x7)
  1283  		if wireType == 4 {
  1284  			return fmt.Errorf("proto: SequencedIntent: wiretype end group for non-group")
  1285  		}
  1286  		if fieldNum <= 0 {
  1287  			return fmt.Errorf("proto: SequencedIntent: illegal tag %d (wire type %d)", fieldNum, wire)
  1288  		}
  1289  		switch fieldNum {
  1290  		case 1:
  1291  			if wireType != 0 {
  1292  				return fmt.Errorf("proto: wrong wireType = %d for field Sequence", wireType)
  1293  			}
  1294  			m.Sequence = 0
  1295  			for shift := uint(0); ; shift += 7 {
  1296  				if shift >= 64 {
  1297  					return ErrIntOverflowMvcc
  1298  				}
  1299  				if iNdEx >= l {
  1300  					return io.ErrUnexpectedEOF
  1301  				}
  1302  				b := dAtA[iNdEx]
  1303  				iNdEx++
  1304  				m.Sequence |= (TxnSeq(b) & 0x7F) << shift
  1305  				if b < 0x80 {
  1306  					break
  1307  				}
  1308  			}
  1309  		case 2:
  1310  			if wireType != 2 {
  1311  				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
  1312  			}
  1313  			var byteLen int
  1314  			for shift := uint(0); ; shift += 7 {
  1315  				if shift >= 64 {
  1316  					return ErrIntOverflowMvcc
  1317  				}
  1318  				if iNdEx >= l {
  1319  					return io.ErrUnexpectedEOF
  1320  				}
  1321  				b := dAtA[iNdEx]
  1322  				iNdEx++
  1323  				byteLen |= (int(b) & 0x7F) << shift
  1324  				if b < 0x80 {
  1325  					break
  1326  				}
  1327  			}
  1328  			if byteLen < 0 {
  1329  				return ErrInvalidLengthMvcc
  1330  			}
  1331  			postIndex := iNdEx + byteLen
  1332  			if postIndex > l {
  1333  				return io.ErrUnexpectedEOF
  1334  			}
  1335  			m.Value = append(m.Value[:0], dAtA[iNdEx:postIndex]...)
  1336  			if m.Value == nil {
  1337  				m.Value = []byte{}
  1338  			}
  1339  			iNdEx = postIndex
  1340  		default:
  1341  			iNdEx = preIndex
  1342  			skippy, err := skipMvcc(dAtA[iNdEx:])
  1343  			if err != nil {
  1344  				return err
  1345  			}
  1346  			if skippy < 0 {
  1347  				return ErrInvalidLengthMvcc
  1348  			}
  1349  			if (iNdEx + skippy) > l {
  1350  				return io.ErrUnexpectedEOF
  1351  			}
  1352  			iNdEx += skippy
  1353  		}
  1354  	}
  1355  
  1356  	if iNdEx > l {
  1357  		return io.ErrUnexpectedEOF
  1358  	}
  1359  	return nil
  1360  }
  1361  func (m *MVCCMetadataSubsetForMergeSerialization) Unmarshal(dAtA []byte) error {
  1362  	l := len(dAtA)
  1363  	iNdEx := 0
  1364  	for iNdEx < l {
  1365  		preIndex := iNdEx
  1366  		var wire uint64
  1367  		for shift := uint(0); ; shift += 7 {
  1368  			if shift >= 64 {
  1369  				return ErrIntOverflowMvcc
  1370  			}
  1371  			if iNdEx >= l {
  1372  				return io.ErrUnexpectedEOF
  1373  			}
  1374  			b := dAtA[iNdEx]
  1375  			iNdEx++
  1376  			wire |= (uint64(b) & 0x7F) << shift
  1377  			if b < 0x80 {
  1378  				break
  1379  			}
  1380  		}
  1381  		fieldNum := int32(wire >> 3)
  1382  		wireType := int(wire & 0x7)
  1383  		if wireType == 4 {
  1384  			return fmt.Errorf("proto: MVCCMetadataSubsetForMergeSerialization: wiretype end group for non-group")
  1385  		}
  1386  		if fieldNum <= 0 {
  1387  			return fmt.Errorf("proto: MVCCMetadataSubsetForMergeSerialization: illegal tag %d (wire type %d)", fieldNum, wire)
  1388  		}
  1389  		switch fieldNum {
  1390  		case 6:
  1391  			if wireType != 2 {
  1392  				return fmt.Errorf("proto: wrong wireType = %d for field RawBytes", wireType)
  1393  			}
  1394  			var byteLen int
  1395  			for shift := uint(0); ; shift += 7 {
  1396  				if shift >= 64 {
  1397  					return ErrIntOverflowMvcc
  1398  				}
  1399  				if iNdEx >= l {
  1400  					return io.ErrUnexpectedEOF
  1401  				}
  1402  				b := dAtA[iNdEx]
  1403  				iNdEx++
  1404  				byteLen |= (int(b) & 0x7F) << shift
  1405  				if b < 0x80 {
  1406  					break
  1407  				}
  1408  			}
  1409  			if byteLen < 0 {
  1410  				return ErrInvalidLengthMvcc
  1411  			}
  1412  			postIndex := iNdEx + byteLen
  1413  			if postIndex > l {
  1414  				return io.ErrUnexpectedEOF
  1415  			}
  1416  			m.RawBytes = append(m.RawBytes[:0], dAtA[iNdEx:postIndex]...)
  1417  			if m.RawBytes == nil {
  1418  				m.RawBytes = []byte{}
  1419  			}
  1420  			iNdEx = postIndex
  1421  		case 7:
  1422  			if wireType != 2 {
  1423  				return fmt.Errorf("proto: wrong wireType = %d for field MergeTimestamp", wireType)
  1424  			}
  1425  			var msglen int
  1426  			for shift := uint(0); ; shift += 7 {
  1427  				if shift >= 64 {
  1428  					return ErrIntOverflowMvcc
  1429  				}
  1430  				if iNdEx >= l {
  1431  					return io.ErrUnexpectedEOF
  1432  				}
  1433  				b := dAtA[iNdEx]
  1434  				iNdEx++
  1435  				msglen |= (int(b) & 0x7F) << shift
  1436  				if b < 0x80 {
  1437  					break
  1438  				}
  1439  			}
  1440  			if msglen < 0 {
  1441  				return ErrInvalidLengthMvcc
  1442  			}
  1443  			postIndex := iNdEx + msglen
  1444  			if postIndex > l {
  1445  				return io.ErrUnexpectedEOF
  1446  			}
  1447  			if m.MergeTimestamp == nil {
  1448  				m.MergeTimestamp = &hlc.LegacyTimestamp{}
  1449  			}
  1450  			if err := m.MergeTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1451  				return err
  1452  			}
  1453  			iNdEx = postIndex
  1454  		default:
  1455  			iNdEx = preIndex
  1456  			skippy, err := skipMvcc(dAtA[iNdEx:])
  1457  			if err != nil {
  1458  				return err
  1459  			}
  1460  			if skippy < 0 {
  1461  				return ErrInvalidLengthMvcc
  1462  			}
  1463  			if (iNdEx + skippy) > l {
  1464  				return io.ErrUnexpectedEOF
  1465  			}
  1466  			iNdEx += skippy
  1467  		}
  1468  	}
  1469  
  1470  	if iNdEx > l {
  1471  		return io.ErrUnexpectedEOF
  1472  	}
  1473  	return nil
  1474  }
  1475  func (m *MVCCStats) Unmarshal(dAtA []byte) error {
  1476  	l := len(dAtA)
  1477  	iNdEx := 0
  1478  	for iNdEx < l {
  1479  		preIndex := iNdEx
  1480  		var wire uint64
  1481  		for shift := uint(0); ; shift += 7 {
  1482  			if shift >= 64 {
  1483  				return ErrIntOverflowMvcc
  1484  			}
  1485  			if iNdEx >= l {
  1486  				return io.ErrUnexpectedEOF
  1487  			}
  1488  			b := dAtA[iNdEx]
  1489  			iNdEx++
  1490  			wire |= (uint64(b) & 0x7F) << shift
  1491  			if b < 0x80 {
  1492  				break
  1493  			}
  1494  		}
  1495  		fieldNum := int32(wire >> 3)
  1496  		wireType := int(wire & 0x7)
  1497  		if wireType == 4 {
  1498  			return fmt.Errorf("proto: MVCCStats: wiretype end group for non-group")
  1499  		}
  1500  		if fieldNum <= 0 {
  1501  			return fmt.Errorf("proto: MVCCStats: illegal tag %d (wire type %d)", fieldNum, wire)
  1502  		}
  1503  		switch fieldNum {
  1504  		case 1:
  1505  			if wireType != 1 {
  1506  				return fmt.Errorf("proto: wrong wireType = %d for field LastUpdateNanos", wireType)
  1507  			}
  1508  			m.LastUpdateNanos = 0
  1509  			if (iNdEx + 8) > l {
  1510  				return io.ErrUnexpectedEOF
  1511  			}
  1512  			m.LastUpdateNanos = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  1513  			iNdEx += 8
  1514  		case 2:
  1515  			if wireType != 1 {
  1516  				return fmt.Errorf("proto: wrong wireType = %d for field IntentAge", wireType)
  1517  			}
  1518  			m.IntentAge = 0
  1519  			if (iNdEx + 8) > l {
  1520  				return io.ErrUnexpectedEOF
  1521  			}
  1522  			m.IntentAge = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  1523  			iNdEx += 8
  1524  		case 3:
  1525  			if wireType != 1 {
  1526  				return fmt.Errorf("proto: wrong wireType = %d for field GCBytesAge", wireType)
  1527  			}
  1528  			m.GCBytesAge = 0
  1529  			if (iNdEx + 8) > l {
  1530  				return io.ErrUnexpectedEOF
  1531  			}
  1532  			m.GCBytesAge = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  1533  			iNdEx += 8
  1534  		case 4:
  1535  			if wireType != 1 {
  1536  				return fmt.Errorf("proto: wrong wireType = %d for field LiveBytes", wireType)
  1537  			}
  1538  			m.LiveBytes = 0
  1539  			if (iNdEx + 8) > l {
  1540  				return io.ErrUnexpectedEOF
  1541  			}
  1542  			m.LiveBytes = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  1543  			iNdEx += 8
  1544  		case 5:
  1545  			if wireType != 1 {
  1546  				return fmt.Errorf("proto: wrong wireType = %d for field LiveCount", wireType)
  1547  			}
  1548  			m.LiveCount = 0
  1549  			if (iNdEx + 8) > l {
  1550  				return io.ErrUnexpectedEOF
  1551  			}
  1552  			m.LiveCount = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  1553  			iNdEx += 8
  1554  		case 6:
  1555  			if wireType != 1 {
  1556  				return fmt.Errorf("proto: wrong wireType = %d for field KeyBytes", wireType)
  1557  			}
  1558  			m.KeyBytes = 0
  1559  			if (iNdEx + 8) > l {
  1560  				return io.ErrUnexpectedEOF
  1561  			}
  1562  			m.KeyBytes = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  1563  			iNdEx += 8
  1564  		case 7:
  1565  			if wireType != 1 {
  1566  				return fmt.Errorf("proto: wrong wireType = %d for field KeyCount", wireType)
  1567  			}
  1568  			m.KeyCount = 0
  1569  			if (iNdEx + 8) > l {
  1570  				return io.ErrUnexpectedEOF
  1571  			}
  1572  			m.KeyCount = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  1573  			iNdEx += 8
  1574  		case 8:
  1575  			if wireType != 1 {
  1576  				return fmt.Errorf("proto: wrong wireType = %d for field ValBytes", wireType)
  1577  			}
  1578  			m.ValBytes = 0
  1579  			if (iNdEx + 8) > l {
  1580  				return io.ErrUnexpectedEOF
  1581  			}
  1582  			m.ValBytes = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  1583  			iNdEx += 8
  1584  		case 9:
  1585  			if wireType != 1 {
  1586  				return fmt.Errorf("proto: wrong wireType = %d for field ValCount", wireType)
  1587  			}
  1588  			m.ValCount = 0
  1589  			if (iNdEx + 8) > l {
  1590  				return io.ErrUnexpectedEOF
  1591  			}
  1592  			m.ValCount = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  1593  			iNdEx += 8
  1594  		case 10:
  1595  			if wireType != 1 {
  1596  				return fmt.Errorf("proto: wrong wireType = %d for field IntentBytes", wireType)
  1597  			}
  1598  			m.IntentBytes = 0
  1599  			if (iNdEx + 8) > l {
  1600  				return io.ErrUnexpectedEOF
  1601  			}
  1602  			m.IntentBytes = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  1603  			iNdEx += 8
  1604  		case 11:
  1605  			if wireType != 1 {
  1606  				return fmt.Errorf("proto: wrong wireType = %d for field IntentCount", wireType)
  1607  			}
  1608  			m.IntentCount = 0
  1609  			if (iNdEx + 8) > l {
  1610  				return io.ErrUnexpectedEOF
  1611  			}
  1612  			m.IntentCount = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  1613  			iNdEx += 8
  1614  		case 12:
  1615  			if wireType != 1 {
  1616  				return fmt.Errorf("proto: wrong wireType = %d for field SysBytes", wireType)
  1617  			}
  1618  			m.SysBytes = 0
  1619  			if (iNdEx + 8) > l {
  1620  				return io.ErrUnexpectedEOF
  1621  			}
  1622  			m.SysBytes = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  1623  			iNdEx += 8
  1624  		case 13:
  1625  			if wireType != 1 {
  1626  				return fmt.Errorf("proto: wrong wireType = %d for field SysCount", wireType)
  1627  			}
  1628  			m.SysCount = 0
  1629  			if (iNdEx + 8) > l {
  1630  				return io.ErrUnexpectedEOF
  1631  			}
  1632  			m.SysCount = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  1633  			iNdEx += 8
  1634  		case 14:
  1635  			if wireType != 0 {
  1636  				return fmt.Errorf("proto: wrong wireType = %d for field ContainsEstimates", wireType)
  1637  			}
  1638  			m.ContainsEstimates = 0
  1639  			for shift := uint(0); ; shift += 7 {
  1640  				if shift >= 64 {
  1641  					return ErrIntOverflowMvcc
  1642  				}
  1643  				if iNdEx >= l {
  1644  					return io.ErrUnexpectedEOF
  1645  				}
  1646  				b := dAtA[iNdEx]
  1647  				iNdEx++
  1648  				m.ContainsEstimates |= (int64(b) & 0x7F) << shift
  1649  				if b < 0x80 {
  1650  					break
  1651  				}
  1652  			}
  1653  		default:
  1654  			iNdEx = preIndex
  1655  			skippy, err := skipMvcc(dAtA[iNdEx:])
  1656  			if err != nil {
  1657  				return err
  1658  			}
  1659  			if skippy < 0 {
  1660  				return ErrInvalidLengthMvcc
  1661  			}
  1662  			if (iNdEx + skippy) > l {
  1663  				return io.ErrUnexpectedEOF
  1664  			}
  1665  			iNdEx += skippy
  1666  		}
  1667  	}
  1668  
  1669  	if iNdEx > l {
  1670  		return io.ErrUnexpectedEOF
  1671  	}
  1672  	return nil
  1673  }
  1674  func skipMvcc(dAtA []byte) (n int, err error) {
  1675  	l := len(dAtA)
  1676  	iNdEx := 0
  1677  	for iNdEx < l {
  1678  		var wire uint64
  1679  		for shift := uint(0); ; shift += 7 {
  1680  			if shift >= 64 {
  1681  				return 0, ErrIntOverflowMvcc
  1682  			}
  1683  			if iNdEx >= l {
  1684  				return 0, io.ErrUnexpectedEOF
  1685  			}
  1686  			b := dAtA[iNdEx]
  1687  			iNdEx++
  1688  			wire |= (uint64(b) & 0x7F) << shift
  1689  			if b < 0x80 {
  1690  				break
  1691  			}
  1692  		}
  1693  		wireType := int(wire & 0x7)
  1694  		switch wireType {
  1695  		case 0:
  1696  			for shift := uint(0); ; shift += 7 {
  1697  				if shift >= 64 {
  1698  					return 0, ErrIntOverflowMvcc
  1699  				}
  1700  				if iNdEx >= l {
  1701  					return 0, io.ErrUnexpectedEOF
  1702  				}
  1703  				iNdEx++
  1704  				if dAtA[iNdEx-1] < 0x80 {
  1705  					break
  1706  				}
  1707  			}
  1708  			return iNdEx, nil
  1709  		case 1:
  1710  			iNdEx += 8
  1711  			return iNdEx, nil
  1712  		case 2:
  1713  			var length int
  1714  			for shift := uint(0); ; shift += 7 {
  1715  				if shift >= 64 {
  1716  					return 0, ErrIntOverflowMvcc
  1717  				}
  1718  				if iNdEx >= l {
  1719  					return 0, io.ErrUnexpectedEOF
  1720  				}
  1721  				b := dAtA[iNdEx]
  1722  				iNdEx++
  1723  				length |= (int(b) & 0x7F) << shift
  1724  				if b < 0x80 {
  1725  					break
  1726  				}
  1727  			}
  1728  			iNdEx += length
  1729  			if length < 0 {
  1730  				return 0, ErrInvalidLengthMvcc
  1731  			}
  1732  			return iNdEx, nil
  1733  		case 3:
  1734  			for {
  1735  				var innerWire uint64
  1736  				var start int = iNdEx
  1737  				for shift := uint(0); ; shift += 7 {
  1738  					if shift >= 64 {
  1739  						return 0, ErrIntOverflowMvcc
  1740  					}
  1741  					if iNdEx >= l {
  1742  						return 0, io.ErrUnexpectedEOF
  1743  					}
  1744  					b := dAtA[iNdEx]
  1745  					iNdEx++
  1746  					innerWire |= (uint64(b) & 0x7F) << shift
  1747  					if b < 0x80 {
  1748  						break
  1749  					}
  1750  				}
  1751  				innerWireType := int(innerWire & 0x7)
  1752  				if innerWireType == 4 {
  1753  					break
  1754  				}
  1755  				next, err := skipMvcc(dAtA[start:])
  1756  				if err != nil {
  1757  					return 0, err
  1758  				}
  1759  				iNdEx = start + next
  1760  			}
  1761  			return iNdEx, nil
  1762  		case 4:
  1763  			return iNdEx, nil
  1764  		case 5:
  1765  			iNdEx += 4
  1766  			return iNdEx, nil
  1767  		default:
  1768  			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
  1769  		}
  1770  	}
  1771  	panic("unreachable")
  1772  }
  1773  
  1774  var (
  1775  	ErrInvalidLengthMvcc = fmt.Errorf("proto: negative length found during unmarshaling")
  1776  	ErrIntOverflowMvcc   = fmt.Errorf("proto: integer overflow")
  1777  )
  1778  
  1779  func init() { proto.RegisterFile("storage/enginepb/mvcc.proto", fileDescriptor_mvcc_7eac2e495f55e518) }
  1780  
  1781  var fileDescriptor_mvcc_7eac2e495f55e518 = []byte{
  1782  	// 689 bytes of a gzipped FileDescriptorProto
  1783  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x94, 0xb1, 0x4f, 0xdb, 0x4e,
  1784  	0x14, 0xc7, 0xe3, 0x5f, 0x02, 0x38, 0x97, 0x10, 0x7e, 0x58, 0x0c, 0x51, 0xa8, 0xec, 0x14, 0x06,
  1785  	0x22, 0x06, 0xa7, 0x82, 0x56, 0xaa, 0xd8, 0x48, 0xd4, 0xd2, 0x4a, 0xd0, 0xc1, 0xa1, 0x1d, 0xba,
  1786  	0x44, 0xc7, 0xe5, 0xc9, 0xb1, 0x70, 0xce, 0xc1, 0x77, 0x09, 0xb8, 0x7f, 0x45, 0xc7, 0x8e, 0xa8,
  1787  	0xff, 0x44, 0xfb, 0x0f, 0x54, 0x62, 0x64, 0x64, 0x42, 0x6d, 0x58, 0xfa, 0x37, 0x74, 0xaa, 0xce,
  1788  	0x77, 0x76, 0x9c, 0xd0, 0x56, 0x9d, 0xba, 0xdd, 0xbd, 0xf7, 0x79, 0x5f, 0xbf, 0xfb, 0xde, 0x3d,
  1789  	0xa3, 0x75, 0xc6, 0x83, 0x10, 0xbb, 0xd0, 0x04, 0xea, 0x7a, 0x14, 0x86, 0x27, 0xcd, 0xc1, 0x98,
  1790  	0x10, 0x7b, 0x18, 0x06, 0x3c, 0x30, 0x6a, 0x24, 0x20, 0xa7, 0x61, 0x80, 0x49, 0xdf, 0x56, 0x98,
  1791  	0x9d, 0x60, 0xb5, 0x07, 0xbf, 0x2c, 0xdc, 0x95, 0x95, 0x35, 0x6b, 0xc4, 0x3d, 0xbf, 0xd9, 0xf7,
  1792  	0x49, 0xd3, 0x07, 0x17, 0x93, 0xa8, 0xcb, 0xbd, 0x01, 0x30, 0x8e, 0x07, 0x43, 0x05, 0xac, 0xb9,
  1793  	0x81, 0x1b, 0xc4, 0xcb, 0xa6, 0x58, 0xc9, 0xe8, 0xc6, 0xa7, 0x02, 0x2a, 0x1f, 0xbd, 0x69, 0xb7,
  1794  	0x8f, 0x80, 0xe3, 0x1e, 0xe6, 0xd8, 0x78, 0x82, 0xf2, 0xfc, 0x82, 0x56, 0xb5, 0xba, 0xd6, 0x28,
  1795  	0xed, 0x6c, 0xda, 0xbf, 0xef, 0xc7, 0x3e, 0xbe, 0xa0, 0xa2, 0xca, 0x11, 0xbc, 0x71, 0x80, 0x8a,
  1796  	0xe9, 0x07, 0xab, 0xff, 0xdd, 0x2b, 0x16, 0xcd, 0xd9, 0x7d, 0x9f, 0xd8, 0x87, 0x71, 0x73, 0xc7,
  1797  	0x09, 0xda, 0x2a, 0x5c, 0xdd, 0x5a, 0x39, 0x67, 0x5a, 0x6b, 0x98, 0x68, 0xa9, 0x07, 0x3e, 0x70,
  1798  	0xe8, 0x55, 0xf3, 0x75, 0xad, 0xa1, 0x2b, 0x22, 0x09, 0x1a, 0x0f, 0x51, 0xf1, 0x14, 0xa2, 0xee,
  1799  	0x49, 0xc4, 0x81, 0x55, 0x0b, 0x75, 0xad, 0x91, 0x57, 0x84, 0x7e, 0x0a, 0x51, 0x4b, 0x44, 0x05,
  1800  	0x32, 0xc6, 0xbe, 0x42, 0x16, 0xb2, 0xc8, 0x18, 0xfb, 0x12, 0x59, 0x47, 0xc5, 0x10, 0x9f, 0x2b,
  1801  	0x64, 0xb1, 0xae, 0x35, 0xca, 0x8e, 0x1e, 0xe2, 0x73, 0x99, 0x3c, 0x44, 0x2b, 0x03, 0x08, 0x5d,
  1802  	0x98, 0x5a, 0x58, 0x5d, 0xfa, 0xeb, 0x13, 0x39, 0x95, 0xb8, 0x36, 0xdd, 0x1b, 0x80, 0x2a, 0x1e,
  1803  	0xe5, 0x40, 0x79, 0xb7, 0xef, 0x09, 0x0f, 0xa3, 0xaa, 0x5e, 0xcf, 0x37, 0x4a, 0x3b, 0x4f, 0xff,
  1804  	0xe4, 0x6d, 0xf6, 0x4a, 0xec, 0x0e, 0x9c, 0x8d, 0x80, 0x12, 0xe8, 0xbd, 0x8c, 0x75, 0xd4, 0x61,
  1805  	0x96, 0xa5, 0xea, 0x0b, 0x29, 0x5a, 0xc3, 0x68, 0x65, 0x8e, 0x33, 0xb6, 0x91, 0xce, 0x54, 0x28,
  1806  	0xbe, 0xcf, 0x85, 0x56, 0x45, 0x54, 0xfe, 0xb8, 0xb5, 0x16, 0x8f, 0x2f, 0x68, 0x07, 0xce, 0x9c,
  1807  	0x34, 0x6f, 0xac, 0xa1, 0x85, 0x31, 0xf6, 0x47, 0x10, 0xdf, 0x5d, 0xd9, 0x91, 0x9b, 0xbd, 0xf2,
  1808  	0x87, 0x4b, 0x2b, 0xf7, 0xf9, 0xd2, 0xd2, 0xbe, 0x5f, 0x5a, 0xda, 0xec, 0x6e, 0xe3, 0xa3, 0x86,
  1809  	0xb6, 0xb2, 0x6d, 0x76, 0x46, 0x27, 0x0c, 0xf8, 0xf3, 0x20, 0x3c, 0x12, 0xe7, 0xef, 0x40, 0xe8,
  1810  	0x61, 0xdf, 0x7b, 0x87, 0xb9, 0x17, 0xd0, 0x7f, 0x68, 0xf7, 0x5c, 0x93, 0x5f, 0x0a, 0xa8, 0x28,
  1811  	0x9a, 0xec, 0x70, 0xcc, 0x99, 0xf1, 0x08, 0xad, 0xfa, 0x98, 0xf1, 0xee, 0x68, 0xd8, 0xc3, 0x1c,
  1812  	0xba, 0x14, 0xd3, 0x80, 0xc5, 0xce, 0xfc, 0xaf, 0x3c, 0x5d, 0x11, 0xe9, 0xd7, 0x71, 0xf6, 0x95,
  1813  	0x48, 0x1a, 0x9b, 0x08, 0xa9, 0xcb, 0xc3, 0xae, 0xf4, 0x26, 0x41, 0x8b, 0x32, 0xbe, 0xef, 0x82,
  1814  	0xf1, 0x18, 0x95, 0x5d, 0x22, 0x0f, 0x17, 0x63, 0xf9, 0x18, 0x33, 0x04, 0x36, 0xb9, 0xb5, 0xd0,
  1815  	0x41, 0x3b, 0x3e, 0xe7, 0xbe, 0x0b, 0x0e, 0x72, 0x49, 0xb2, 0x16, 0xd2, 0xbe, 0x37, 0x86, 0xcc,
  1816  	0x4b, 0x4e, 0xa5, 0x45, 0x5c, 0x7a, 0x93, 0x40, 0x24, 0x18, 0x51, 0x1e, 0xbf, 0xe5, 0x19, 0xa8,
  1817  	0x2d, 0xc2, 0xb3, 0x23, 0xb1, 0x98, 0x61, 0x66, 0x46, 0x42, 0x20, 0x52, 0x66, 0x69, 0x0e, 0x49,
  1818  	0x55, 0xa6, 0x53, 0xa3, 0x67, 0x91, 0x74, 0x6a, 0x14, 0x22, 0x55, 0x8a, 0x73, 0x88, 0x54, 0xd9,
  1819  	0x42, 0x65, 0x65, 0x98, 0x14, 0x42, 0x19, 0xaa, 0x24, 0x33, 0x52, 0x6b, 0x0a, 0x4a, 0xb9, 0xd2,
  1820  	0x7d, 0x30, 0xed, 0x8b, 0x45, 0x4c, 0xc9, 0x95, 0xb3, 0x1f, 0x65, 0x11, 0x4b, 0xfb, 0x12, 0x88,
  1821  	0x14, 0x5a, 0x9e, 0x43, 0xa4, 0xca, 0x2e, 0x32, 0x48, 0x40, 0x39, 0xf6, 0x28, 0xeb, 0x02, 0xe3,
  1822  	0xde, 0x00, 0x0b, 0xb9, 0x4a, 0xe6, 0xe7, 0xb0, 0x9a, 0xe4, 0x9f, 0x25, 0xe9, 0x3d, 0x3d, 0x79,
  1823  	0x47, 0xad, 0xed, 0xab, 0x6f, 0x66, 0xee, 0x6a, 0x62, 0x6a, 0xd7, 0x13, 0x53, 0xbb, 0x99, 0x98,
  1824  	0xda, 0xd7, 0x89, 0xa9, 0xbd, 0xbf, 0x33, 0x73, 0xd7, 0x77, 0x66, 0xee, 0xe6, 0xce, 0xcc, 0xbd,
  1825  	0xd5, 0x93, 0xd9, 0xfd, 0x19, 0x00, 0x00, 0xff, 0xff, 0x23, 0x20, 0xcf, 0xa8, 0xe1, 0x05, 0x00,
  1826  	0x00,
  1827  }