// Copyright 2023 PingCAP, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package keyspace import ( "fmt" "github.com/pingcap/kvproto/pkg/kvrpcpb" "github.com/tikv/client-go/v2/tikv" ) const ( // tidbKeyspaceEtcdPathPrefix is the keyspace prefix for etcd namespace tidbKeyspaceEtcdPathPrefix = "/keyspaces/tidb/" ) // CodecV1 represents api v1 codec. var CodecV1 = tikv.NewCodecV1(tikv.ModeTxn) // MakeKeyspaceEtcdNamespace return the keyspace prefix path for etcd namespace func MakeKeyspaceEtcdNamespace(c tikv.Codec) string { if c.GetAPIVersion() == kvrpcpb.APIVersion_V1 { return "" } return fmt.Sprintf(tidbKeyspaceEtcdPathPrefix+"%d", c.GetKeyspaceID()) }