Skip to content

Commit

Permalink
Merge pull request #2 from wwu/main
Browse files Browse the repository at this point in the history
- add parameter to support keyspace, which is supported in Tikv API V2
  • Loading branch information
ken8203 committed May 27, 2024
2 parents 5f3b5c6 + e4eeb1d commit 1afed46
Show file tree
Hide file tree
Showing 6 changed files with 12 additions and 8 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ Flags:
--help Help for tikv-cli
-h, --host string PD host address (default "localhost")
-m, --mode string Client mode. raw/txn (default "txn")
-k, --keyspace string Keyspace name. (default empty)
-p, --port string PD port (default "2379")
Use "tikv-cli [command] --help" for more information about a command.
Expand Down
2 changes: 1 addition & 1 deletion cmd/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ func newClient() (client.Client, error) {
v = client.APIVersion2
}

c, err := client.New([]string{addr(Host, Port)}, client.Mode(Mode), v)
c, err := client.New([]string{addr(Host, Port)}, client.Mode(Mode), v, KeySpace)
if err != nil {
return nil, err
}
Expand Down
3 changes: 3 additions & 0 deletions cmd/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ var (
Port string
// Mode is the client mode: raw/txn
Mode string
// Keyspace name for tikv V2 storage
KeySpace string
// APIVersion is the API version: v1/v1ttl/v2
APIVersion string
// Debug determines whether to enable logging in tikv/client-go.
Expand Down Expand Up @@ -52,6 +54,7 @@ func init() {
rootCmd.PersistentFlags().StringVarP(&Host, "host", "h", "localhost", "PD host address")
rootCmd.PersistentFlags().StringVarP(&Port, "port", "p", "2379", "PD port")
rootCmd.PersistentFlags().StringVarP(&Mode, "mode", "m", "txn", "Client mode. raw/txn")
rootCmd.PersistentFlags().StringVarP(&KeySpace, "keyspace", "k", "", "Tikv keyspace, default is empty")
rootCmd.PersistentFlags().StringVarP(&APIVersion, "api-version", "a", "v2", "API version. v1/v1ttl/v2")
rootCmd.PersistentFlags().Bool("help", false, "Help for tikv-cli")
rootCmd.PersistentFlags().BoolVar(&Debug, "debug", false, "Debug determines whether to enable logging in tikv/client-go")
Expand Down
6 changes: 3 additions & 3 deletions internal/client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ type Client interface {
Close(ctx context.Context) error
}

func New(addrs []string, mode Mode, apiVersion APIVersion) (Client, error) {
func New(addrs []string, mode Mode, apiVersion APIVersion, keySpace string) (Client, error) {
switch mode {
case ModeTxn:
return newTxnClient(addrs, kvrpcpb.APIVersion(apiVersion))
return newTxnClient(addrs, kvrpcpb.APIVersion(apiVersion), keySpace)
case ModeRaw:
return newRawClient(addrs, kvrpcpb.APIVersion(apiVersion))
return newRawClient(addrs, kvrpcpb.APIVersion(apiVersion), keySpace)
default:
return nil, fmt.Errorf("invalid mode: %s", mode)
}
Expand Down
4 changes: 2 additions & 2 deletions internal/client/raw.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ type rawClient struct {

var _ Client = (*rawClient)(nil)

func newRawClient(addrs []string, apiVersion kvrpcpb.APIVersion) (*rawClient, error) {
client, err := rawkv.NewClientWithOpts(context.Background(), addrs, rawkv.WithAPIVersion(apiVersion))
func newRawClient(addrs []string, apiVersion kvrpcpb.APIVersion, keySpace string) (*rawClient, error) {
client, err := rawkv.NewClientWithOpts(context.Background(), addrs, rawkv.WithAPIVersion(apiVersion), rawkv.WithKeyspace(keySpace))
if err != nil {
return nil, err
}
Expand Down
4 changes: 2 additions & 2 deletions internal/client/txn.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ type txnClient struct {

var _ Client = (*txnClient)(nil)

func newTxnClient(addrs []string, apiVersion kvrpcpb.APIVersion) (*txnClient, error) {
client, err := txnkv.NewClient(addrs, txnkv.WithAPIVersion(apiVersion))
func newTxnClient(addrs []string, apiVersion kvrpcpb.APIVersion, keySpace string) (*txnClient, error) {
client, err := txnkv.NewClient(addrs, txnkv.WithAPIVersion(apiVersion), txnkv.WithKeyspace(keySpace))
if err != nil {
return nil, err
}
Expand Down

0 comments on commit 1afed46

Please sign in to comment.