2 Star 2 Fork 1

cockroachdb/cockroach

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
.github
build
c-deps
cloud
docs
githooks
monitoring
pkg
acceptance
base
build
ccl
cli
cmd
config
gossip
internal
keys
kv
roachpb
rpc
security
server
settings
sql
sqlmigrations
storage
engine
enginepb
mvcc.go
mvcc.pb.go
mvcc.proto
rocksdb.pb.go
rocksdb.proto
.gitignore
allocator.go
batch.go
batch_test.go
bench_rocksdb_test.go
bench_test.go
disk_map.go
disk_map_test.go
doc.go
enable_cc.cc
engine.go
engine_test.go
gc.go
gc_test.go
in_mem.go
main_test.go
merge.go
merge_test.go
mvcc.go
mvcc_test.go
rocksdb.go
rocksdb_32bit.go
rocksdb_64bit.go
rocksdb_jemalloc.go
rocksdb_test.go
temp_engine.go
temp_engine_test.go
version.go
version_test.go
storagebase
abort_cache.go
abort_cache_test.go
addressing.go
addressing_test.go
allocator.go
allocator_scorer.go
allocator_scorer_test.go
allocator_test.go
api.pb.go
api.proto
below_raft_protos_test.go
cclglue.go
client_lease_test.go
client_merge_test.go
client_metrics_test.go
client_raft_log_queue_test.go
client_raft_test.go
client_replica_gc_test.go
client_replica_test.go
client_split_test.go
client_status_test.go
client_test.go
command_queue.go
command_queue_test.go
consistency_queue.go
consistency_queue_test.go
doc.go
entry_cache.go
entry_cache_test.go
gc_queue.go
gc_queue_test.go
gossip_test.go
helpers_test.go
id_alloc.go
id_alloc_test.go
intent_resolver.go
intent_resolver_test.go
lease_history.go
lease_history_test.go
lease_status.pb.go
lease_status.proto
liveness.pb.go
liveness.proto
log.go
log.pb.go
log.proto
log_test.go
main_test.go
metrics.go
node_liveness.go
node_liveness_test.go
node_liveness_unit_test.go
push_txn_queue.go
push_txn_queue_test.go
put_test.go
queue.go
queue_test.go
quota_pool.go
quota_pool_test.go
raft.go
raft.pb.go
raft.proto
raft_log_queue.go
raft_log_queue_test.go
raft_snapshot_queue.go
raft_transport.go
raft_transport_test.go
refreshraftreason_string.go
replica.go
replica_command.go
replica_command_test.go
replica_data_iter.go
replica_data_iter_test.go
replica_gc_queue.go
replica_gc_queue_test.go
replica_placeholder.go
replica_proposal.go
replica_proposal_test.go
replica_raftstorage.go
replica_raftstorage_test.go
replica_range_lease.go
replica_sideload.go
replica_sideload_disk.go
replica_sideload_inmem.go
replica_sideload_test.go
replica_state.go
replica_state_test.go
replica_stats.go
replica_stats_test.go
replica_test.go
replicate_queue.go
replicate_queue_test.go
replicate_test.go
scanner.go
scanner_test.go
scheduler.go
scheduler_test.go
single_key_test.go
span_set.go
span_set_test.go
split_queue.go
split_queue_test.go
stats.go
stats_test.go
store.go
store_pool.go
store_pool_test.go
store_test.go
stores.go
stores_server.go
stores_test.go
timedmutex.go
timedmutex_test.go
timestamp_cache.go
timestamp_cache_test.go
track_raft_protos.go
ts_maintenance_queue.go
ts_maintenance_queue_test.go
testutils
ts
ui
util
Makefile
scripts
.codacy.yml
.editorconfig
.gitattributes
.gitignore
.gitmodules
.go-version
.mailmap
APL.txt
CONTRIBUTING.md
Gopkg.lock
Gopkg.toml
LICENSE
Makefile
README.md
STYLE.md
main.go
克隆/下载
mvcc.pb.go 49.48 KB
一键复制 编辑 原始数据 按行查看 历史
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762
// Code generated by protoc-gen-gogo.
// source: cockroach/pkg/storage/engine/enginepb/mvcc.proto
// DO NOT EDIT!
/*
Package enginepb is a generated protocol buffer package.
It is generated from these files:
cockroach/pkg/storage/engine/enginepb/mvcc.proto
cockroach/pkg/storage/engine/enginepb/rocksdb.proto
It has these top-level messages:
TxnMeta
MVCCMetadata
MVCCStats
SSTUserProperties
SSTUserPropertiesCollection
*/
package enginepb
import proto "github.com/gogo/protobuf/proto"
import fmt "fmt"
import math "math"
import cockroach_util_hlc "github.com/cockroachdb/cockroach/pkg/util/hlc"
import github_com_cockroachdb_cockroach_pkg_util_uuid "github.com/cockroachdb/cockroach/pkg/util/uuid"
import bytes "bytes"
import io "io"
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
// TODO(tschottdorf): Should not live in enginepb (but can't live in roachpb
// either).
type IsolationType int32
const (
SERIALIZABLE IsolationType = 0
SNAPSHOT IsolationType = 1
)
var IsolationType_name = map[int32]string{
0: "SERIALIZABLE",
1: "SNAPSHOT",
}
var IsolationType_value = map[string]int32{
"SERIALIZABLE": 0,
"SNAPSHOT": 1,
}
func (x IsolationType) Enum() *IsolationType {
p := new(IsolationType)
*p = x
return p
}
func (x IsolationType) String() string {
return proto.EnumName(IsolationType_name, int32(x))
}
func (x *IsolationType) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(IsolationType_value, data, "IsolationType")
if err != nil {
return err
}
*x = IsolationType(value)
return nil
}
func (IsolationType) EnumDescriptor() ([]byte, []int) { return fileDescriptorMvcc, []int{0} }
// TxnMeta is the metadata of a Transaction record.
type TxnMeta struct {
// id is a unique UUID value which identifies the transaction.
// This field is always filled in.
ID github_com_cockroachdb_cockroach_pkg_util_uuid.UUID `protobuf:"bytes,1,opt,name=id,customtype=github.com/cockroachdb/cockroach/pkg/util/uuid.UUID" json:"id"`
Isolation IsolationType `protobuf:"varint,2,opt,name=isolation,enum=cockroach.storage.engine.enginepb.IsolationType" json:"isolation"`
// key is the key which anchors the transaction. This is typically
// the first key read or written during the transaction and determines which
// range in the cluster will hold the transaction record.
Key []byte `protobuf:"bytes,3,opt,name=key" json:"key,omitempty"`
// Incremented on txn retry.
Epoch uint32 `protobuf:"varint,4,opt,name=epoch" json:"epoch"`
// The proposed timestamp for the transaction. This starts as
// the current wall time on the txn coordinator.
// This is the timestamp at which all of the transaction's writes are
// performed: even if intents have been laid down at different timestamps,
// the process of resolving them (e.g. when the txn commits) will bump them to
// this timestamp. SERIALIZABLE transactions only commit when timestamp ==
// orig_timestamp. SNAPSHOT transactions can commit even when they've
// performed their reads (at orig_timestamp) at a different timestamp than
// their writes (at timestamp).
Timestamp cockroach_util_hlc.Timestamp `protobuf:"bytes,5,opt,name=timestamp" json:"timestamp"`
Priority int32 `protobuf:"varint,6,opt,name=priority" json:"priority"`
// A one-indexed sequence number which is increased on each batch
// sent as part of the transaction. Used to prevent replay and
// out-of-order application protection (by means of a transaction
// retry).
Sequence int32 `protobuf:"varint,7,opt,name=sequence" json:"sequence"`
// A zero-indexed sequence number indicating the index of a
// command within a batch. This disambiguate Raft replays of a batch
// from multiple commands in a batch which modify the same key.
BatchIndex int32 `protobuf:"varint,8,opt,name=batch_index,json=batchIndex" json:"batch_index"`
}
func (m *TxnMeta) Reset() { *m = TxnMeta{} }
func (m *TxnMeta) String() string { return proto.CompactTextString(m) }
func (*TxnMeta) ProtoMessage() {}
func (*TxnMeta) Descriptor() ([]byte, []int) { return fileDescriptorMvcc, []int{0} }
// MVCCMetadata holds MVCC metadata for a key. Used by storage/engine/mvcc.go.
type MVCCMetadata struct {
Txn *TxnMeta `protobuf:"bytes,1,opt,name=txn" json:"txn,omitempty"`
// The timestamp of the most recent versioned value if this is a
// value that may have multiple versions. For values which may have
// only one version, the data is stored inline (via raw_bytes), and
// timestamp is set to zero.
Timestamp cockroach_util_hlc.Timestamp `protobuf:"bytes,2,opt,name=timestamp" json:"timestamp"`
// Is the most recent value a deletion tombstone?
Deleted bool `protobuf:"varint,3,opt,name=deleted" json:"deleted"`
// The size in bytes of the most recent encoded key.
KeyBytes int64 `protobuf:"varint,4,opt,name=key_bytes,json=keyBytes" json:"key_bytes"`
// The size in bytes of the most recent versioned value.
ValBytes int64 `protobuf:"varint,5,opt,name=val_bytes,json=valBytes" json:"val_bytes"`
// Inline value, used for non-versioned values with zero
// timestamp. This provides an efficient short circuit of the normal
// MVCC metadata sentinel and subsequent version rows. If timestamp
// == (0, 0), then there is only a single MVCC metadata row with
// value inlined, and with empty timestamp, key_bytes, and
// val_bytes.
RawBytes []byte `protobuf:"bytes,6,opt,name=raw_bytes,json=rawBytes" json:"raw_bytes,omitempty"`
// This provides a measure of protection against replays caused by
// Raft duplicating merge commands.
MergeTimestamp *cockroach_util_hlc.Timestamp `protobuf:"bytes,7,opt,name=merge_timestamp,json=mergeTimestamp" json:"merge_timestamp,omitempty"`
}
func (m *MVCCMetadata) Reset() { *m = MVCCMetadata{} }
func (m *MVCCMetadata) String() string { return proto.CompactTextString(m) }
func (*MVCCMetadata) ProtoMessage() {}
func (*MVCCMetadata) Descriptor() ([]byte, []int) { return fileDescriptorMvcc, []int{1} }
// MVCCStats tracks byte and instance counts for various groups of keys,
// values, or key-value pairs; see the field comments for details.
//
// It also tracks two cumulative ages, namely that of intents and non-live
// (i.e. GC-able) bytes. This computation is intrinsically linked to
// last_update_nanos and is easy to get wrong. Updates happen only once every
// full second, as measured by last_update_nanos/1e9. That is, forward updates
// don't change last_update_nanos until an update at a timestamp which,
// truncated to the second, is ahead of last_update_nanos/1e9. Then, that
// difference in seconds times the base quantity (excluding the currently
// running update) is added to the age. It gets more complicated when data is
// accounted for with a timestamp behind last_update_nanos. In this case, if
// more than a second has passed (computed via truncation above), the ages have
// to be adjusted to account for this late addition. This isn't hard: add the
// new data's base quantity times the (truncated) number of seconds behind.
// Important to keep in mind with those computations is that (x/1e9 - y/1e9)
// does not equal (x-y)/1e9 in most cases.
//
// Note that this struct must be kept at a fixed size by using fixed-size
// encodings for all fields and by making all fields non-nullable. This is
// so that it can predict its own impact on the size of the system-local
// kv-pairs.
type MVCCStats struct {
// contains_estimates indicates that the MVCCStats object contains values
// which have been estimated. This means that the stats should not be used
// where complete accuracy is required, and instead should be recomputed
// when necessary.
ContainsEstimates bool `protobuf:"varint,14,opt,name=contains_estimates,json=containsEstimates" json:"contains_estimates"`
// last_update_nanos is a timestamp at which the ages were last
// updated. See the comment on MVCCStats.
LastUpdateNanos int64 `protobuf:"fixed64,1,opt,name=last_update_nanos,json=lastUpdateNanos" json:"last_update_nanos"`
// intent_age is the cumulative age of the tracked intents.
// See the comment on MVCCStats.
IntentAge int64 `protobuf:"fixed64,2,opt,name=intent_age,json=intentAge" json:"intent_age"`
// gc_bytes_age is the cumulative age of the non-live data (i.e.
// data included in key_bytes and val_bytes, but not live_bytes).
// See the comment on MVCCStats.
GCBytesAge int64 `protobuf:"fixed64,3,opt,name=gc_bytes_age,json=gcBytesAge" json:"gc_bytes_age"`
// live_bytes is the number of bytes stored in keys and values which can in
// principle be read by means of a Scan or Get in the far future, including
// intents but not deletion tombstones (or their intents). Note that the
// size of the meta kv pair (which could be explicit or implicit) is
// included in this. Only the meta kv pair counts for the actual length of
// the encoded key (regular pairs only count the timestamp suffix).
LiveBytes int64 `protobuf:"fixed64,4,opt,name=live_bytes,json=liveBytes" json:"live_bytes"`
// live_count is the number of meta keys tracked under live_bytes.
LiveCount int64 `protobuf:"fixed64,5,opt,name=live_count,json=liveCount" json:"live_count"`
// key_bytes is the number of bytes stored in all non-system
// keys, including live, meta, old, and deleted keys.
// Only meta keys really account for the "full" key; value
// keys only for the timestamp suffix.
KeyBytes int64 `protobuf:"fixed64,6,opt,name=key_bytes,json=keyBytes" json:"key_bytes"`
// key_count is the number of meta keys tracked under key_bytes.
KeyCount int64 `protobuf:"fixed64,7,opt,name=key_count,json=keyCount" json:"key_count"`
// value_bytes is the number of bytes in all non-system version
// values, including meta values.
ValBytes int64 `protobuf:"fixed64,8,opt,name=val_bytes,json=valBytes" json:"val_bytes"`
// val_count is the number of meta values tracked under val_bytes.
ValCount int64 `protobuf:"fixed64,9,opt,name=val_count,json=valCount" json:"val_count"`
// intent_bytes is the number of bytes in intent key-value
// pairs (without their meta keys).
IntentBytes int64 `protobuf:"fixed64,10,opt,name=intent_bytes,json=intentBytes" json:"intent_bytes"`
// intent_count is the number of keys tracked under intent_bytes.
// It is equal to the number of meta keys in the system with
// a non-empty Transaction proto.
IntentCount int64 `protobuf:"fixed64,11,opt,name=intent_count,json=intentCount" json:"intent_count"`
// sys_bytes is the number of bytes stored in system-local kv-pairs.
// This tracks the same quantity as (key_bytes + val_bytes), but
// for system-local metadata keys (which aren't counted in either
// key_bytes or val_bytes). Each of the keys falling into this group
// is documented in keys/constants.go under the localPrefix constant
// and is prefixed by either LocalRangeIDPrefix or LocalRangePrefix.
SysBytes int64 `protobuf:"fixed64,12,opt,name=sys_bytes,json=sysBytes" json:"sys_bytes"`
// sys_count is the number of meta keys tracked under sys_bytes.
SysCount int64 `protobuf:"fixed64,13,opt,name=sys_count,json=sysCount" json:"sys_count"`
}
func (m *MVCCStats) Reset() { *m = MVCCStats{} }
func (m *MVCCStats) String() string { return proto.CompactTextString(m) }
func (*MVCCStats) ProtoMessage() {}
func (*MVCCStats) Descriptor() ([]byte, []int) { return fileDescriptorMvcc, []int{2} }
func init() {
proto.RegisterType((*TxnMeta)(nil), "cockroach.storage.engine.enginepb.TxnMeta")
proto.RegisterType((*MVCCMetadata)(nil), "cockroach.storage.engine.enginepb.MVCCMetadata")
proto.RegisterType((*MVCCStats)(nil), "cockroach.storage.engine.enginepb.MVCCStats")
proto.RegisterEnum("cockroach.storage.engine.enginepb.IsolationType", IsolationType_name, IsolationType_value)
}
func (this *TxnMeta) Equal(that interface{}) bool {
if that == nil {
if this == nil {
return true
}
return false
}
that1, ok := that.(*TxnMeta)
if !ok {
that2, ok := that.(TxnMeta)
if ok {
that1 = &that2
} else {
return false
}
}
if that1 == nil {
if this == nil {
return true
}
return false
} else if this == nil {
return false
}
if !this.ID.Equal(that1.ID) {
return false
}
if this.Isolation != that1.Isolation {
return false
}
if !bytes.Equal(this.Key, that1.Key) {
return false
}
if this.Epoch != that1.Epoch {
return false
}
if !this.Timestamp.Equal(&that1.Timestamp) {
return false
}
if this.Priority != that1.Priority {
return false
}
if this.Sequence != that1.Sequence {
return false
}
if this.BatchIndex != that1.BatchIndex {
return false
}
return true
}
func (this *MVCCStats) Equal(that interface{}) bool {
if that == nil {
if this == nil {
return true
}
return false
}
that1, ok := that.(*MVCCStats)
if !ok {
that2, ok := that.(MVCCStats)
if ok {
that1 = &that2
} else {
return false
}
}
if that1 == nil {
if this == nil {
return true
}
return false
} else if this == nil {
return false
}
if this.ContainsEstimates != that1.ContainsEstimates {
return false
}
if this.LastUpdateNanos != that1.LastUpdateNanos {
return false
}
if this.IntentAge != that1.IntentAge {
return false
}
if this.GCBytesAge != that1.GCBytesAge {
return false
}
if this.LiveBytes != that1.LiveBytes {
return false
}
if this.LiveCount != that1.LiveCount {
return false
}
if this.KeyBytes != that1.KeyBytes {
return false
}
if this.KeyCount != that1.KeyCount {
return false
}
if this.ValBytes != that1.ValBytes {
return false
}
if this.ValCount != that1.ValCount {
return false
}
if this.IntentBytes != that1.IntentBytes {
return false
}
if this.IntentCount != that1.IntentCount {
return false
}
if this.SysBytes != that1.SysBytes {
return false
}
if this.SysCount != that1.SysCount {
return false
}
return true
}
func (m *TxnMeta) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *TxnMeta) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
dAtA[i] = 0xa
i++
i = encodeVarintMvcc(dAtA, i, uint64(m.ID.Size()))
n1, err := m.ID.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n1
dAtA[i] = 0x10
i++
i = encodeVarintMvcc(dAtA, i, uint64(m.Isolation))
if m.Key != nil {
dAtA[i] = 0x1a
i++
i = encodeVarintMvcc(dAtA, i, uint64(len(m.Key)))
i += copy(dAtA[i:], m.Key)
}
dAtA[i] = 0x20
i++
i = encodeVarintMvcc(dAtA, i, uint64(m.Epoch))
dAtA[i] = 0x2a
i++
i = encodeVarintMvcc(dAtA, i, uint64(m.Timestamp.Size()))
n2, err := m.Timestamp.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n2
dAtA[i] = 0x30
i++
i = encodeVarintMvcc(dAtA, i, uint64(m.Priority))
dAtA[i] = 0x38
i++
i = encodeVarintMvcc(dAtA, i, uint64(m.Sequence))
dAtA[i] = 0x40
i++
i = encodeVarintMvcc(dAtA, i, uint64(m.BatchIndex))
return i, nil
}
func (m *MVCCMetadata) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *MVCCMetadata) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
if m.Txn != nil {
dAtA[i] = 0xa
i++
i = encodeVarintMvcc(dAtA, i, uint64(m.Txn.Size()))
n3, err := m.Txn.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n3
}
dAtA[i] = 0x12
i++
i = encodeVarintMvcc(dAtA, i, uint64(m.Timestamp.Size()))
n4, err := m.Timestamp.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n4
dAtA[i] = 0x18
i++
if m.Deleted {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i++
dAtA[i] = 0x20
i++
i = encodeVarintMvcc(dAtA, i, uint64(m.KeyBytes))
dAtA[i] = 0x28
i++
i = encodeVarintMvcc(dAtA, i, uint64(m.ValBytes))
if m.RawBytes != nil {
dAtA[i] = 0x32
i++
i = encodeVarintMvcc(dAtA, i, uint64(len(m.RawBytes)))
i += copy(dAtA[i:], m.RawBytes)
}
if m.MergeTimestamp != nil {
dAtA[i] = 0x3a
i++
i = encodeVarintMvcc(dAtA, i, uint64(m.MergeTimestamp.Size()))
n5, err := m.MergeTimestamp.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n5
}
return i, nil
}
func (m *MVCCStats) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *MVCCStats) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
dAtA[i] = 0x9
i++
i = encodeFixed64Mvcc(dAtA, i, uint64(m.LastUpdateNanos))
dAtA[i] = 0x11
i++
i = encodeFixed64Mvcc(dAtA, i, uint64(m.IntentAge))
dAtA[i] = 0x19
i++
i = encodeFixed64Mvcc(dAtA, i, uint64(m.GCBytesAge))
dAtA[i] = 0x21
i++
i = encodeFixed64Mvcc(dAtA, i, uint64(m.LiveBytes))
dAtA[i] = 0x29
i++
i = encodeFixed64Mvcc(dAtA, i, uint64(m.LiveCount))
dAtA[i] = 0x31
i++
i = encodeFixed64Mvcc(dAtA, i, uint64(m.KeyBytes))
dAtA[i] = 0x39
i++
i = encodeFixed64Mvcc(dAtA, i, uint64(m.KeyCount))
dAtA[i] = 0x41
i++
i = encodeFixed64Mvcc(dAtA, i, uint64(m.ValBytes))
dAtA[i] = 0x49
i++
i = encodeFixed64Mvcc(dAtA, i, uint64(m.ValCount))
dAtA[i] = 0x51
i++
i = encodeFixed64Mvcc(dAtA, i, uint64(m.IntentBytes))
dAtA[i] = 0x59
i++
i = encodeFixed64Mvcc(dAtA, i, uint64(m.IntentCount))
dAtA[i] = 0x61
i++
i = encodeFixed64Mvcc(dAtA, i, uint64(m.SysBytes))
dAtA[i] = 0x69
i++
i = encodeFixed64Mvcc(dAtA, i, uint64(m.SysCount))
dAtA[i] = 0x70
i++
if m.ContainsEstimates {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i++
return i, nil
}
func encodeFixed64Mvcc(dAtA []byte, offset int, v uint64) int {
dAtA[offset] = uint8(v)
dAtA[offset+1] = uint8(v >> 8)
dAtA[offset+2] = uint8(v >> 16)
dAtA[offset+3] = uint8(v >> 24)
dAtA[offset+4] = uint8(v >> 32)
dAtA[offset+5] = uint8(v >> 40)
dAtA[offset+6] = uint8(v >> 48)
dAtA[offset+7] = uint8(v >> 56)
return offset + 8
}
func encodeFixed32Mvcc(dAtA []byte, offset int, v uint32) int {
dAtA[offset] = uint8(v)
dAtA[offset+1] = uint8(v >> 8)
dAtA[offset+2] = uint8(v >> 16)
dAtA[offset+3] = uint8(v >> 24)
return offset + 4
}
func encodeVarintMvcc(dAtA []byte, offset int, v uint64) int {
for v >= 1<<7 {
dAtA[offset] = uint8(v&0x7f | 0x80)
v >>= 7
offset++
}
dAtA[offset] = uint8(v)
return offset + 1
}
func NewPopulatedTxnMeta(r randyMvcc, easy bool) *TxnMeta {
this := &TxnMeta{}
v1 := github_com_cockroachdb_cockroach_pkg_util_uuid.NewPopulatedUUID(r)
this.ID = *v1
this.Isolation = IsolationType([]int32{0, 1}[r.Intn(2)])
if r.Intn(10) != 0 {
v2 := r.Intn(100)
this.Key = make([]byte, v2)
for i := 0; i < v2; i++ {
this.Key[i] = byte(r.Intn(256))
}
}
this.Epoch = uint32(r.Uint32())
v3 := cockroach_util_hlc.NewPopulatedTimestamp(r, easy)
this.Timestamp = *v3
this.Priority = int32(r.Int31())
if r.Intn(2) == 0 {
this.Priority *= -1
}
this.Sequence = int32(r.Int31())
if r.Intn(2) == 0 {
this.Sequence *= -1
}
this.BatchIndex = int32(r.Int31())
if r.Intn(2) == 0 {
this.BatchIndex *= -1
}
if !easy && r.Intn(10) != 0 {
}
return this
}
func NewPopulatedMVCCMetadata(r randyMvcc, easy bool) *MVCCMetadata {
this := &MVCCMetadata{}
if r.Intn(10) != 0 {
this.Txn = NewPopulatedTxnMeta(r, easy)
}
v4 := cockroach_util_hlc.NewPopulatedTimestamp(r, easy)
this.Timestamp = *v4
this.Deleted = bool(bool(r.Intn(2) == 0))
this.KeyBytes = int64(r.Int63())
if r.Intn(2) == 0 {
this.KeyBytes *= -1
}
this.ValBytes = int64(r.Int63())
if r.Intn(2) == 0 {
this.ValBytes *= -1
}
if r.Intn(10) != 0 {
v5 := r.Intn(100)
this.RawBytes = make([]byte, v5)
for i := 0; i < v5; i++ {
this.RawBytes[i] = byte(r.Intn(256))
}
}
if r.Intn(10) != 0 {
this.MergeTimestamp = cockroach_util_hlc.NewPopulatedTimestamp(r, easy)
}
if !easy && r.Intn(10) != 0 {
}
return this
}
func NewPopulatedMVCCStats(r randyMvcc, easy bool) *MVCCStats {
this := &MVCCStats{}
this.LastUpdateNanos = int64(r.Int63())
if r.Intn(2) == 0 {
this.LastUpdateNanos *= -1
}
this.IntentAge = int64(r.Int63())
if r.Intn(2) == 0 {
this.IntentAge *= -1
}
this.GCBytesAge = int64(r.Int63())
if r.Intn(2) == 0 {
this.GCBytesAge *= -1
}
this.LiveBytes = int64(r.Int63())
if r.Intn(2) == 0 {
this.LiveBytes *= -1
}
this.LiveCount = int64(r.Int63())
if r.Intn(2) == 0 {
this.LiveCount *= -1
}
this.KeyBytes = int64(r.Int63())
if r.Intn(2) == 0 {
this.KeyBytes *= -1
}
this.KeyCount = int64(r.Int63())
if r.Intn(2) == 0 {
this.KeyCount *= -1
}
this.ValBytes = int64(r.Int63())
if r.Intn(2) == 0 {
this.ValBytes *= -1
}
this.ValCount = int64(r.Int63())
if r.Intn(2) == 0 {
this.ValCount *= -1
}
this.IntentBytes = int64(r.Int63())
if r.Intn(2) == 0 {
this.IntentBytes *= -1
}
this.IntentCount = int64(r.Int63())
if r.Intn(2) == 0 {
this.IntentCount *= -1
}
this.SysBytes = int64(r.Int63())
if r.Intn(2) == 0 {
this.SysBytes *= -1
}
this.SysCount = int64(r.Int63())
if r.Intn(2) == 0 {
this.SysCount *= -1
}
this.ContainsEstimates = bool(bool(r.Intn(2) == 0))
if !easy && r.Intn(10) != 0 {
}
return this
}
type randyMvcc interface {
Float32() float32
Float64() float64
Int63() int64
Int31() int32
Uint32() uint32
Intn(n int) int
}
func randUTF8RuneMvcc(r randyMvcc) rune {
ru := r.Intn(62)
if ru < 10 {
return rune(ru + 48)
} else if ru < 36 {
return rune(ru + 55)
}
return rune(ru + 61)
}
func randStringMvcc(r randyMvcc) string {
v6 := r.Intn(100)
tmps := make([]rune, v6)
for i := 0; i < v6; i++ {
tmps[i] = randUTF8RuneMvcc(r)
}
return string(tmps)
}
func randUnrecognizedMvcc(r randyMvcc, maxFieldNumber int) (dAtA []byte) {
l := r.Intn(5)
for i := 0; i < l; i++ {
wire := r.Intn(4)
if wire == 3 {
wire = 5
}
fieldNumber := maxFieldNumber + r.Intn(100)
dAtA = randFieldMvcc(dAtA, r, fieldNumber, wire)
}
return dAtA
}
func randFieldMvcc(dAtA []byte, r randyMvcc, fieldNumber int, wire int) []byte {
key := uint32(fieldNumber)<<3 | uint32(wire)
switch wire {
case 0:
dAtA = encodeVarintPopulateMvcc(dAtA, uint64(key))
v7 := r.Int63()
if r.Intn(2) == 0 {
v7 *= -1
}
dAtA = encodeVarintPopulateMvcc(dAtA, uint64(v7))
case 1:
dAtA = encodeVarintPopulateMvcc(dAtA, uint64(key))
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)))
case 2:
dAtA = encodeVarintPopulateMvcc(dAtA, uint64(key))
ll := r.Intn(100)
dAtA = encodeVarintPopulateMvcc(dAtA, uint64(ll))
for j := 0; j < ll; j++ {
dAtA = append(dAtA, byte(r.Intn(256)))
}
default:
dAtA = encodeVarintPopulateMvcc(dAtA, uint64(key))
dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
}
return dAtA
}
func encodeVarintPopulateMvcc(dAtA []byte, v uint64) []byte {
for v >= 1<<7 {
dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80))
v >>= 7
}
dAtA = append(dAtA, uint8(v))
return dAtA
}
func (m *TxnMeta) Size() (n int) {
var l int
_ = l
l = m.ID.Size()
n += 1 + l + sovMvcc(uint64(l))
n += 1 + sovMvcc(uint64(m.Isolation))
if m.Key != nil {
l = len(m.Key)
n += 1 + l + sovMvcc(uint64(l))
}
n += 1 + sovMvcc(uint64(m.Epoch))
l = m.Timestamp.Size()
n += 1 + l + sovMvcc(uint64(l))
n += 1 + sovMvcc(uint64(m.Priority))
n += 1 + sovMvcc(uint64(m.Sequence))
n += 1 + sovMvcc(uint64(m.BatchIndex))
return n
}
func (m *MVCCMetadata) Size() (n int) {
var l int
_ = l
if m.Txn != nil {
l = m.Txn.Size()
n += 1 + l + sovMvcc(uint64(l))
}
l = m.Timestamp.Size()
n += 1 + l + sovMvcc(uint64(l))
n += 2
n += 1 + sovMvcc(uint64(m.KeyBytes))
n += 1 + sovMvcc(uint64(m.ValBytes))
if m.RawBytes != nil {
l = len(m.RawBytes)
n += 1 + l + sovMvcc(uint64(l))
}
if m.MergeTimestamp != nil {
l = m.MergeTimestamp.Size()
n += 1 + l + sovMvcc(uint64(l))
}
return n
}
func (m *MVCCStats) Size() (n int) {
var l int
_ = l
n += 9
n += 9
n += 9
n += 9
n += 9
n += 9
n += 9
n += 9
n += 9
n += 9
n += 9
n += 9
n += 9
n += 2
return n
}
func sovMvcc(x uint64) (n int) {
for {
n++
x >>= 7
if x == 0 {
break
}
}
return n
}
func sozMvcc(x uint64) (n int) {
return sovMvcc(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (m *TxnMeta) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMvcc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: TxnMeta: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: TxnMeta: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ID", wireType)
}
var byteLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMvcc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
byteLen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if byteLen < 0 {
return ErrInvalidLengthMvcc
}
postIndex := iNdEx + byteLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := m.ID.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 2:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Isolation", wireType)
}
m.Isolation = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMvcc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Isolation |= (IsolationType(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
}
var byteLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMvcc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
byteLen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if byteLen < 0 {
return ErrInvalidLengthMvcc
}
postIndex := iNdEx + byteLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...)
if m.Key == nil {
m.Key = []byte{}
}
iNdEx = postIndex
case 4:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Epoch", wireType)
}
m.Epoch = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMvcc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Epoch |= (uint32(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
case 5:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMvcc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthMvcc
}
postIndex := iNdEx + msglen
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := m.Timestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 6:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Priority", wireType)
}
m.Priority = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMvcc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Priority |= (int32(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
case 7:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Sequence", wireType)
}
m.Sequence = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMvcc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Sequence |= (int32(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
case 8:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field BatchIndex", wireType)
}
m.BatchIndex = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMvcc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.BatchIndex |= (int32(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
default:
iNdEx = preIndex
skippy, err := skipMvcc(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthMvcc
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *MVCCMetadata) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMvcc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: MVCCMetadata: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: MVCCMetadata: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Txn", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMvcc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthMvcc
}
postIndex := iNdEx + msglen
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.Txn == nil {
m.Txn = &TxnMeta{}
}
if err := m.Txn.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMvcc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthMvcc
}
postIndex := iNdEx + msglen
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := m.Timestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 3:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Deleted", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMvcc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
m.Deleted = bool(v != 0)
case 4:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field KeyBytes", wireType)
}
m.KeyBytes = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMvcc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.KeyBytes |= (int64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
case 5:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field ValBytes", wireType)
}
m.ValBytes = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMvcc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.ValBytes |= (int64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
case 6:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field RawBytes", wireType)
}
var byteLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMvcc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
byteLen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if byteLen < 0 {
return ErrInvalidLengthMvcc
}
postIndex := iNdEx + byteLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.RawBytes = append(m.RawBytes[:0], dAtA[iNdEx:postIndex]...)
if m.RawBytes == nil {
m.RawBytes = []byte{}
}
iNdEx = postIndex
case 7:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field MergeTimestamp", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMvcc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthMvcc
}
postIndex := iNdEx + msglen
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.MergeTimestamp == nil {
m.MergeTimestamp = &cockroach_util_hlc.Timestamp{}
}
if err := m.MergeTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipMvcc(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthMvcc
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *MVCCStats) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMvcc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: MVCCStats: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: MVCCStats: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 1 {
return fmt.Errorf("proto: wrong wireType = %d for field LastUpdateNanos", wireType)
}
m.LastUpdateNanos = 0
if (iNdEx + 8) > l {
return io.ErrUnexpectedEOF
}
iNdEx += 8
m.LastUpdateNanos = int64(dAtA[iNdEx-8])
m.LastUpdateNanos |= int64(dAtA[iNdEx-7]) << 8
m.LastUpdateNanos |= int64(dAtA[iNdEx-6]) << 16
m.LastUpdateNanos |= int64(dAtA[iNdEx-5]) << 24
m.LastUpdateNanos |= int64(dAtA[iNdEx-4]) << 32
m.LastUpdateNanos |= int64(dAtA[iNdEx-3]) << 40
m.LastUpdateNanos |= int64(dAtA[iNdEx-2]) << 48
m.LastUpdateNanos |= int64(dAtA[iNdEx-1]) << 56
case 2:
if wireType != 1 {
return fmt.Errorf("proto: wrong wireType = %d for field IntentAge", wireType)
}
m.IntentAge = 0
if (iNdEx + 8) > l {
return io.ErrUnexpectedEOF
}
iNdEx += 8
m.IntentAge = int64(dAtA[iNdEx-8])
m.IntentAge |= int64(dAtA[iNdEx-7]) << 8
m.IntentAge |= int64(dAtA[iNdEx-6]) << 16
m.IntentAge |= int64(dAtA[iNdEx-5]) << 24
m.IntentAge |= int64(dAtA[iNdEx-4]) << 32
m.IntentAge |= int64(dAtA[iNdEx-3]) << 40
m.IntentAge |= int64(dAtA[iNdEx-2]) << 48
m.IntentAge |= int64(dAtA[iNdEx-1]) << 56
case 3:
if wireType != 1 {
return fmt.Errorf("proto: wrong wireType = %d for field GCBytesAge", wireType)
}
m.GCBytesAge = 0
if (iNdEx + 8) > l {
return io.ErrUnexpectedEOF
}
iNdEx += 8
m.GCBytesAge = int64(dAtA[iNdEx-8])
m.GCBytesAge |= int64(dAtA[iNdEx-7]) << 8
m.GCBytesAge |= int64(dAtA[iNdEx-6]) << 16
m.GCBytesAge |= int64(dAtA[iNdEx-5]) << 24
m.GCBytesAge |= int64(dAtA[iNdEx-4]) << 32
m.GCBytesAge |= int64(dAtA[iNdEx-3]) << 40
m.GCBytesAge |= int64(dAtA[iNdEx-2]) << 48
m.GCBytesAge |= int64(dAtA[iNdEx-1]) << 56
case 4:
if wireType != 1 {
return fmt.Errorf("proto: wrong wireType = %d for field LiveBytes", wireType)
}
m.LiveBytes = 0
if (iNdEx + 8) > l {
return io.ErrUnexpectedEOF
}
iNdEx += 8
m.LiveBytes = int64(dAtA[iNdEx-8])
m.LiveBytes |= int64(dAtA[iNdEx-7]) << 8
m.LiveBytes |= int64(dAtA[iNdEx-6]) << 16
m.LiveBytes |= int64(dAtA[iNdEx-5]) << 24
m.LiveBytes |= int64(dAtA[iNdEx-4]) << 32
m.LiveBytes |= int64(dAtA[iNdEx-3]) << 40
m.LiveBytes |= int64(dAtA[iNdEx-2]) << 48
m.LiveBytes |= int64(dAtA[iNdEx-1]) << 56
case 5:
if wireType != 1 {
return fmt.Errorf("proto: wrong wireType = %d for field LiveCount", wireType)
}
m.LiveCount = 0
if (iNdEx + 8) > l {
return io.ErrUnexpectedEOF
}
iNdEx += 8
m.LiveCount = int64(dAtA[iNdEx-8])
m.LiveCount |= int64(dAtA[iNdEx-7]) << 8
m.LiveCount |= int64(dAtA[iNdEx-6]) << 16
m.LiveCount |= int64(dAtA[iNdEx-5]) << 24
m.LiveCount |= int64(dAtA[iNdEx-4]) << 32
m.LiveCount |= int64(dAtA[iNdEx-3]) << 40
m.LiveCount |= int64(dAtA[iNdEx-2]) << 48
m.LiveCount |= int64(dAtA[iNdEx-1]) << 56
case 6:
if wireType != 1 {
return fmt.Errorf("proto: wrong wireType = %d for field KeyBytes", wireType)
}
m.KeyBytes = 0
if (iNdEx + 8) > l {
return io.ErrUnexpectedEOF
}
iNdEx += 8
m.KeyBytes = int64(dAtA[iNdEx-8])
m.KeyBytes |= int64(dAtA[iNdEx-7]) << 8
m.KeyBytes |= int64(dAtA[iNdEx-6]) << 16
m.KeyBytes |= int64(dAtA[iNdEx-5]) << 24
m.KeyBytes |= int64(dAtA[iNdEx-4]) << 32
m.KeyBytes |= int64(dAtA[iNdEx-3]) << 40
m.KeyBytes |= int64(dAtA[iNdEx-2]) << 48
m.KeyBytes |= int64(dAtA[iNdEx-1]) << 56
case 7:
if wireType != 1 {
return fmt.Errorf("proto: wrong wireType = %d for field KeyCount", wireType)
}
m.KeyCount = 0
if (iNdEx + 8) > l {
return io.ErrUnexpectedEOF
}
iNdEx += 8
m.KeyCount = int64(dAtA[iNdEx-8])
m.KeyCount |= int64(dAtA[iNdEx-7]) << 8
m.KeyCount |= int64(dAtA[iNdEx-6]) << 16
m.KeyCount |= int64(dAtA[iNdEx-5]) << 24
m.KeyCount |= int64(dAtA[iNdEx-4]) << 32
m.KeyCount |= int64(dAtA[iNdEx-3]) << 40
m.KeyCount |= int64(dAtA[iNdEx-2]) << 48
m.KeyCount |= int64(dAtA[iNdEx-1]) << 56
case 8:
if wireType != 1 {
return fmt.Errorf("proto: wrong wireType = %d for field ValBytes", wireType)
}
m.ValBytes = 0
if (iNdEx + 8) > l {
return io.ErrUnexpectedEOF
}
iNdEx += 8
m.ValBytes = int64(dAtA[iNdEx-8])
m.ValBytes |= int64(dAtA[iNdEx-7]) << 8
m.ValBytes |= int64(dAtA[iNdEx-6]) << 16
m.ValBytes |= int64(dAtA[iNdEx-5]) << 24
m.ValBytes |= int64(dAtA[iNdEx-4]) << 32
m.ValBytes |= int64(dAtA[iNdEx-3]) << 40
m.ValBytes |= int64(dAtA[iNdEx-2]) << 48
m.ValBytes |= int64(dAtA[iNdEx-1]) << 56
case 9:
if wireType != 1 {
return fmt.Errorf("proto: wrong wireType = %d for field ValCount", wireType)
}
m.ValCount = 0
if (iNdEx + 8) > l {
return io.ErrUnexpectedEOF
}
iNdEx += 8
m.ValCount = int64(dAtA[iNdEx-8])
m.ValCount |= int64(dAtA[iNdEx-7]) << 8
m.ValCount |= int64(dAtA[iNdEx-6]) << 16
m.ValCount |= int64(dAtA[iNdEx-5]) << 24
m.ValCount |= int64(dAtA[iNdEx-4]) << 32
m.ValCount |= int64(dAtA[iNdEx-3]) << 40
m.ValCount |= int64(dAtA[iNdEx-2]) << 48
m.ValCount |= int64(dAtA[iNdEx-1]) << 56
case 10:
if wireType != 1 {
return fmt.Errorf("proto: wrong wireType = %d for field IntentBytes", wireType)
}
m.IntentBytes = 0
if (iNdEx + 8) > l {
return io.ErrUnexpectedEOF
}
iNdEx += 8
m.IntentBytes = int64(dAtA[iNdEx-8])
m.IntentBytes |= int64(dAtA[iNdEx-7]) << 8
m.IntentBytes |= int64(dAtA[iNdEx-6]) << 16
m.IntentBytes |= int64(dAtA[iNdEx-5]) << 24
m.IntentBytes |= int64(dAtA[iNdEx-4]) << 32
m.IntentBytes |= int64(dAtA[iNdEx-3]) << 40
m.IntentBytes |= int64(dAtA[iNdEx-2]) << 48
m.IntentBytes |= int64(dAtA[iNdEx-1]) << 56
case 11:
if wireType != 1 {
return fmt.Errorf("proto: wrong wireType = %d for field IntentCount", wireType)
}
m.IntentCount = 0
if (iNdEx + 8) > l {
return io.ErrUnexpectedEOF
}
iNdEx += 8
m.IntentCount = int64(dAtA[iNdEx-8])
m.IntentCount |= int64(dAtA[iNdEx-7]) << 8
m.IntentCount |= int64(dAtA[iNdEx-6]) << 16
m.IntentCount |= int64(dAtA[iNdEx-5]) << 24
m.IntentCount |= int64(dAtA[iNdEx-4]) << 32
m.IntentCount |= int64(dAtA[iNdEx-3]) << 40
m.IntentCount |= int64(dAtA[iNdEx-2]) << 48
m.IntentCount |= int64(dAtA[iNdEx-1]) << 56
case 12:
if wireType != 1 {
return fmt.Errorf("proto: wrong wireType = %d for field SysBytes", wireType)
}
m.SysBytes = 0
if (iNdEx + 8) > l {
return io.ErrUnexpectedEOF
}
iNdEx += 8
m.SysBytes = int64(dAtA[iNdEx-8])
m.SysBytes |= int64(dAtA[iNdEx-7]) << 8
m.SysBytes |= int64(dAtA[iNdEx-6]) << 16
m.SysBytes |= int64(dAtA[iNdEx-5]) << 24
m.SysBytes |= int64(dAtA[iNdEx-4]) << 32
m.SysBytes |= int64(dAtA[iNdEx-3]) << 40
m.SysBytes |= int64(dAtA[iNdEx-2]) << 48
m.SysBytes |= int64(dAtA[iNdEx-1]) << 56
case 13:
if wireType != 1 {
return fmt.Errorf("proto: wrong wireType = %d for field SysCount", wireType)
}
m.SysCount = 0
if (iNdEx + 8) > l {
return io.ErrUnexpectedEOF
}
iNdEx += 8
m.SysCount = int64(dAtA[iNdEx-8])
m.SysCount |= int64(dAtA[iNdEx-7]) << 8
m.SysCount |= int64(dAtA[iNdEx-6]) << 16
m.SysCount |= int64(dAtA[iNdEx-5]) << 24
m.SysCount |= int64(dAtA[iNdEx-4]) << 32
m.SysCount |= int64(dAtA[iNdEx-3]) << 40
m.SysCount |= int64(dAtA[iNdEx-2]) << 48
m.SysCount |= int64(dAtA[iNdEx-1]) << 56
case 14:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field ContainsEstimates", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowMvcc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
m.ContainsEstimates = bool(v != 0)
default:
iNdEx = preIndex
skippy, err := skipMvcc(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthMvcc
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func skipMvcc(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return 0, ErrIntOverflowMvcc
}
if iNdEx >= l {
return 0, io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
wireType := int(wire & 0x7)
switch wireType {
case 0:
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return 0, ErrIntOverflowMvcc
}
if iNdEx >= l {
return 0, io.ErrUnexpectedEOF
}
iNdEx++
if dAtA[iNdEx-1] < 0x80 {
break
}
}
return iNdEx, nil
case 1:
iNdEx += 8
return iNdEx, nil
case 2:
var length int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return 0, ErrIntOverflowMvcc
}
if iNdEx >= l {
return 0, io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
length |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
iNdEx += length
if length < 0 {
return 0, ErrInvalidLengthMvcc
}
return iNdEx, nil
case 3:
for {
var innerWire uint64
var start int = iNdEx
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return 0, ErrIntOverflowMvcc
}
if iNdEx >= l {
return 0, io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
innerWire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
innerWireType := int(innerWire & 0x7)
if innerWireType == 4 {
break
}
next, err := skipMvcc(dAtA[start:])
if err != nil {
return 0, err
}
iNdEx = start + next
}
return iNdEx, nil
case 4:
return iNdEx, nil
case 5:
iNdEx += 4
return iNdEx, nil
default:
return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
}
}
panic("unreachable")
}
var (
ErrInvalidLengthMvcc = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowMvcc = fmt.Errorf("proto: integer overflow")
)
func init() {
proto.RegisterFile("cockroach/pkg/storage/engine/enginepb/mvcc.proto", fileDescriptorMvcc)
}
var fileDescriptorMvcc = []byte{
// 772 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0xcf, 0x6e, 0xd3, 0x4e,
0x10, 0xc7, 0xe3, 0xfc, 0x69, 0x9c, 0x4d, 0xda, 0xa6, 0xab, 0xdf, 0xc1, 0xca, 0x4f, 0x38, 0x69,
0x10, 0x10, 0xf5, 0x60, 0x57, 0x2d, 0x5c, 0x2a, 0x2e, 0x49, 0x5a, 0x20, 0x52, 0x5b, 0x20, 0x49,
0x39, 0xf4, 0x12, 0x6d, 0xec, 0x95, 0xb3, 0x8a, 0x63, 0x1b, 0x7b, 0x93, 0xd6, 0x6f, 0xc0, 0x91,
0x23, 0xc7, 0x4a, 0xbc, 0x04, 0x2f, 0x80, 0xd4, 0x23, 0x47, 0xc4, 0x21, 0x2a, 0xe1, 0xc2, 0x63,
0xa0, 0xf5, 0xda, 0x8e, 0x53, 0x90, 0xa8, 0x38, 0x65, 0x33, 0xf3, 0x99, 0xef, 0xce, 0x7c, 0xc7,
0x36, 0xd8, 0xd5, 0x6c, 0x6d, 0xec, 0xda, 0x48, 0x1b, 0xa9, 0xce, 0xd8, 0x50, 0x3d, 0x6a, 0xbb,
0xc8, 0xc0, 0x2a, 0xb6, 0x0c, 0x62, 0x45, 0x3f, 0xce, 0x50, 0x9d, 0xcc, 0x34, 0x4d, 0x71, 0x5c,
0x9b, 0xda, 0x70, 0x3b, 0xae, 0x50, 0x42, 0x5a, 0xe1, 0x98, 0x12, 0xd1, 0x95, 0x87, 0xab, 0xa2,
0x53, 0x4a, 0x4c, 0x75, 0x64, 0x6a, 0x2a, 0x25, 0x13, 0xec, 0x51, 0x34, 0x71, 0xb8, 0x54, 0xe5,
0x3f, 0xc3, 0x36, 0xec, 0xe0, 0xa8, 0xb2, 0x13, 0x8f, 0xd6, 0x3f, 0x64, 0x40, 0xbe, 0x7f, 0x69,
0x9d, 0x60, 0x8a, 0xe0, 0x6b, 0x90, 0x26, 0xba, 0x24, 0xd4, 0x84, 0x46, 0xa9, 0xd5, 0xbc, 0x9e,
0x57, 0x53, 0xdf, 0xe6, 0xd5, 0x7d, 0x83, 0xd0, 0xd1, 0x74, 0xa8, 0x68, 0xf6, 0x44, 0x8d, 0x2f,
0xd2, 0x87, 0xea, 0x1f, 0x2e, 0x9d, 0x4e, 0x89, 0xae, 0x9c, 0x9d, 0x75, 0x0e, 0x17, 0xf3, 0x6a,
0xba, 0x73, 0xd8, 0x4d, 0x13, 0x1d, 0xf6, 0x41, 0x81, 0x78, 0xb6, 0x89, 0x28, 0xb1, 0x2d, 0x29,
0x5d, 0x13, 0x1a, 0x1b, 0x7b, 0xbb, 0xca, 0x5f, 0x67, 0x52, 0x3a, 0x51, 0x4d, 0xdf, 0x77, 0x70,
0x2b, 0xcb, 0x7a, 0xe9, 0x2e, 0x85, 0x60, 0x19, 0x64, 0xc6, 0xd8, 0x97, 0x32, 0xac, 0xd3, 0x2e,
0x3b, 0xc2, 0x0a, 0xc8, 0x61, 0xc7, 0xd6, 0x46, 0x52, 0xb6, 0x26, 0x34, 0xd6, 0xc3, 0x0a, 0x1e,
0x82, 0x4d, 0x50, 0x88, 0xbd, 0x90, 0x72, 0x35, 0xa1, 0x51, 0xdc, 0xbb, 0x97, 0xe8, 0x81, 0xf5,
0xae, 0x8c, 0x4c, 0x4d, 0xe9, 0x47, 0x50, 0x74, 0x61, 0x5c, 0x05, 0x6b, 0x40, 0x74, 0x5c, 0x62,
0xbb, 0x84, 0xfa, 0xd2, 0x5a, 0x4d, 0x68, 0xe4, 0x42, 0x24, 0x8e, 0x32, 0xc2, 0xc3, 0x6f, 0xa7,
0xd8, 0xd2, 0xb0, 0x94, 0x4f, 0x12, 0x51, 0x14, 0x3e, 0x00, 0xc5, 0x21, 0xa2, 0xda, 0x68, 0x40,
0x2c, 0x1d, 0x5f, 0x4a, 0x62, 0x02, 0x02, 0x41, 0xa2, 0xc3, 0xe2, 0x07, 0xe2, 0xa7, 0xab, 0xaa,
0xf0, 0xf3, 0xaa, 0x2a, 0xd4, 0x6f, 0xd2, 0xa0, 0x74, 0xf2, 0xa6, 0xdd, 0x66, 0xbb, 0xd1, 0x11,
0x45, 0xf0, 0x29, 0xc8, 0xd0, 0x4b, 0x2b, 0x58, 0x50, 0x71, 0x6f, 0xe7, 0x0e, 0x36, 0x86, 0x8b,
0xed, 0xb2, 0xb2, 0x55, 0x1b, 0xd2, 0xff, 0x64, 0x83, 0x0c, 0xf2, 0x3a, 0x36, 0x31, 0xc5, 0x7a,
0xe0, 0xbd, 0x18, 0x12, 0x51, 0x10, 0x6e, 0x83, 0xc2, 0x18, 0xfb, 0x83, 0xa1, 0x4f, 0xb1, 0x17,
0x6c, 0x22, 0x13, 0xb9, 0x30, 0xc6, 0x7e, 0x8b, 0x45, 0x19, 0x32, 0x43, 0x66, 0x88, 0xe4, 0x92,
0xc8, 0x0c, 0x99, 0x1c, 0xf9, 0x1f, 0x14, 0x5c, 0x74, 0x11, 0x22, 0x6b, 0xc1, 0x8e, 0x45, 0x17,
0x5d, 0xf0, 0xe4, 0x33, 0xb0, 0x39, 0xc1, 0xae, 0x81, 0x07, 0xcb, 0x59, 0xf2, 0x77, 0x98, 0xa5,
0xbb, 0x11, 0x54, 0xc5, 0xff, 0x0f, 0xb2, 0xcc, 0xe6, 0xfa, 0xe7, 0x2c, 0x28, 0x30, 0x8b, 0x7b,
0x14, 0x51, 0x0f, 0xee, 0x82, 0x2d, 0x13, 0x79, 0x74, 0x30, 0x75, 0x74, 0x44, 0xf1, 0xc0, 0x42,
0x96, 0xed, 0x05, 0x6e, 0x97, 0xc3, 0x1e, 0x37, 0x59, 0xfa, 0x2c, 0xc8, 0x9e, 0xb2, 0x24, 0xbc,
0x0f, 0x00, 0xb1, 0x28, 0xb6, 0xe8, 0x00, 0x19, 0x38, 0x30, 0xb5, 0x1c, 0x3f, 0xad, 0x41, 0xbc,
0x69, 0x60, 0xf8, 0x18, 0x94, 0x0c, 0x8d, 0x8f, 0x13, 0x60, 0x99, 0x00, 0x83, 0x0c, 0x5b, 0xcc,
0xab, 0xe0, 0x79, 0x3b, 0x98, 0xac, 0x69, 0xe0, 0x2e, 0x30, 0xb4, 0xe8, 0xcc, 0xa4, 0x4d, 0x32,
0xc3, 0x09, 0x33, 0x63, 0x69, 0x16, 0xe7, 0x6e, 0x44, 0x90, 0x66, 0x4f, 0x2d, 0x1a, 0xd8, 0xb9,
0x02, 0xb5, 0x59, 0x78, 0x75, 0x2b, 0x6b, 0x09, 0x66, 0x65, 0x2b, 0x0c, 0xe1, 0x32, 0xf9, 0x5b,
0x48, 0xac, 0xb2, 0x5c, 0x9c, 0x98, 0x44, 0xe2, 0xc5, 0x85, 0x08, 0x57, 0x29, 0xdc, 0x42, 0xb8,
0xca, 0x23, 0x50, 0x0a, 0x0d, 0xe3, 0x42, 0x20, 0x41, 0x15, 0x79, 0x86, 0x6b, 0x2d, 0x41, 0x2e,
0x57, 0xfc, 0x1d, 0x8c, 0xfb, 0xf2, 0x7c, 0x2f, 0x94, 0x2b, 0x25, 0x2f, 0xf5, 0x7c, 0x2f, 0xee,
0x8b, 0x21, 0x5c, 0x68, 0xfd, 0x16, 0xc2, 0x55, 0xf6, 0x01, 0xd4, 0x6c, 0x8b, 0x22, 0x62, 0x79,
0x03, 0xec, 0x51, 0x32, 0x41, 0x4c, 0x6e, 0x23, 0xf1, 0x90, 0x6f, 0x45, 0xf9, 0xa3, 0x28, 0xbd,
0x7c, 0x55, 0x77, 0x9e, 0x80, 0xf5, 0x95, 0x4f, 0x16, 0x2c, 0x83, 0x52, 0xef, 0xa8, 0xdb, 0x69,
0x1e, 0x77, 0xce, 0x9b, 0xad, 0xe3, 0xa3, 0x72, 0x0a, 0x96, 0x80, 0xd8, 0x3b, 0x6d, 0xbe, 0xea,
0xbd, 0x78, 0xd9, 0x2f, 0x0b, 0x95, 0xec, 0xbb, 0x8f, 0x72, 0xaa, 0x55, 0xbf, 0xfe, 0x2e, 0xa7,
0xae, 0x17, 0xb2, 0xf0, 0x65, 0x21, 0x0b, 0x5f, 0x17, 0xb2, 0x70, 0xb3, 0x90, 0x85, 0xf7, 0x3f,
0xe4, 0xd4, 0xb9, 0x18, 0xbd, 0xc3, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0x1b, 0x21, 0xbb, 0x2e,
0x34, 0x06, 0x00, 0x00,
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mirrors_cockroachdb/cockroach.git
git@gitee.com:mirrors_cockroachdb/cockroach.git
mirrors_cockroachdb
cockroach
cockroach
v1.1.5

搜索帮助