@@ -15,13 +15,13 @@ use crate::pd::PdClient;
15
15
use crate :: pd:: PdRpcClient ;
16
16
use crate :: proto:: metapb;
17
17
use crate :: raw:: lowering:: * ;
18
- use crate :: request:: APIVersion ;
19
18
use crate :: request:: Collect ;
20
19
use crate :: request:: CollectSingle ;
21
- use crate :: request:: EncodeVersion ;
20
+ use crate :: request:: EncodeKeyspace ;
22
21
use crate :: request:: KeyMode ;
22
+ use crate :: request:: Keyspace ;
23
23
use crate :: request:: Plan ;
24
- use crate :: request:: TruncateVersion ;
24
+ use crate :: request:: TruncateKeyspace ;
25
25
use crate :: Backoff ;
26
26
use crate :: BoundRange ;
27
27
use crate :: ColumnFamily ;
@@ -45,7 +45,7 @@ pub struct Client<PdC: PdClient = PdRpcClient> {
45
45
backoff : Backoff ,
46
46
/// Whether to use the [`atomic mode`](Client::with_atomic_for_cas).
47
47
atomic : bool ,
48
- api_version : APIVersion ,
48
+ keyspace : Keyspace ,
49
49
}
50
50
51
51
impl Clone for Client {
@@ -55,7 +55,7 @@ impl Clone for Client {
55
55
cf : self . cf . clone ( ) ,
56
56
backoff : self . backoff . clone ( ) ,
57
57
atomic : self . atomic ,
58
- api_version : self . api_version ,
58
+ keyspace : self . keyspace ,
59
59
}
60
60
}
61
61
}
@@ -109,19 +109,19 @@ impl Client<PdRpcClient> {
109
109
let pd_endpoints: Vec < String > = pd_endpoints. into_iter ( ) . map ( Into :: into) . collect ( ) ;
110
110
let rpc =
111
111
Arc :: new ( PdRpcClient :: connect ( & pd_endpoints, config. clone ( ) , enable_codec) . await ?) ;
112
- let api_version = match config. keyspace {
112
+ let keyspace = match config. keyspace {
113
113
Some ( keyspace) => {
114
114
let keyspace_id = rpc. get_keyspace_id ( & keyspace) . await ?;
115
- APIVersion :: V2 { keyspace_id }
115
+ Keyspace :: Enable { keyspace_id }
116
116
}
117
- None => APIVersion :: V1 ,
117
+ None => Keyspace :: Disable ,
118
118
} ;
119
119
Ok ( Client {
120
120
rpc,
121
121
cf : None ,
122
122
backoff : DEFAULT_REGION_BACKOFF ,
123
123
atomic : false ,
124
- api_version ,
124
+ keyspace ,
125
125
} )
126
126
}
127
127
@@ -156,7 +156,7 @@ impl Client<PdRpcClient> {
156
156
cf : Some ( cf) ,
157
157
backoff : self . backoff . clone ( ) ,
158
158
atomic : self . atomic ,
159
- api_version : self . api_version ,
159
+ keyspace : self . keyspace ,
160
160
}
161
161
}
162
162
@@ -185,7 +185,7 @@ impl Client<PdRpcClient> {
185
185
cf : self . cf . clone ( ) ,
186
186
backoff,
187
187
atomic : self . atomic ,
188
- api_version : self . api_version ,
188
+ keyspace : self . keyspace ,
189
189
}
190
190
}
191
191
@@ -203,7 +203,7 @@ impl Client<PdRpcClient> {
203
203
cf : self . cf . clone ( ) ,
204
204
backoff : self . backoff . clone ( ) ,
205
205
atomic : true ,
206
- api_version : self . api_version ,
206
+ keyspace : self . keyspace ,
207
207
}
208
208
}
209
209
}
@@ -229,9 +229,9 @@ impl<PdC: PdClient> Client<PdC> {
229
229
/// ```
230
230
pub async fn get ( & self , key : impl Into < Key > ) -> Result < Option < Value > > {
231
231
debug ! ( "invoking raw get request" ) ;
232
- let key = key. into ( ) . encode_version ( self . api_version , KeyMode :: Raw ) ;
232
+ let key = key. into ( ) . encode_keyspace ( self . keyspace , KeyMode :: Raw ) ;
233
233
let request = new_raw_get_request ( key, self . cf . clone ( ) ) ;
234
- let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . api_version , request)
234
+ let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . keyspace , request)
235
235
. retry_multi_region ( self . backoff . clone ( ) )
236
236
. merge ( CollectSingle )
237
237
. post_process_default ( )
@@ -264,15 +264,15 @@ impl<PdC: PdClient> Client<PdC> {
264
264
debug ! ( "invoking raw batch_get request" ) ;
265
265
let keys = keys
266
266
. into_iter ( )
267
- . map ( |k| k. into ( ) . encode_version ( self . api_version , KeyMode :: Raw ) ) ;
267
+ . map ( |k| k. into ( ) . encode_keyspace ( self . keyspace , KeyMode :: Raw ) ) ;
268
268
let request = new_raw_batch_get_request ( keys, self . cf . clone ( ) ) ;
269
- let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . api_version , request)
269
+ let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . keyspace , request)
270
270
. retry_multi_region ( self . backoff . clone ( ) )
271
271
. merge ( Collect )
272
272
. plan ( ) ;
273
273
plan. execute ( ) . await . map ( |r| {
274
274
r. into_iter ( )
275
- . map ( |pair| pair. truncate_version ( self . api_version ) )
275
+ . map ( |pair| pair. truncate_keyspace ( self . keyspace ) )
276
276
. collect ( )
277
277
} )
278
278
}
@@ -295,9 +295,9 @@ impl<PdC: PdClient> Client<PdC> {
295
295
/// ```
296
296
pub async fn put ( & self , key : impl Into < Key > , value : impl Into < Value > ) -> Result < ( ) > {
297
297
debug ! ( "invoking raw put request" ) ;
298
- let key = key. into ( ) . encode_version ( self . api_version , KeyMode :: Raw ) ;
298
+ let key = key. into ( ) . encode_keyspace ( self . keyspace , KeyMode :: Raw ) ;
299
299
let request = new_raw_put_request ( key, value. into ( ) , self . cf . clone ( ) , self . atomic ) ;
300
- let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . api_version , request)
300
+ let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . keyspace , request)
301
301
. retry_multi_region ( self . backoff . clone ( ) )
302
302
. merge ( CollectSingle )
303
303
. extract_error ( )
@@ -330,9 +330,9 @@ impl<PdC: PdClient> Client<PdC> {
330
330
debug ! ( "invoking raw batch_put request" ) ;
331
331
let pairs = pairs
332
332
. into_iter ( )
333
- . map ( |pair| pair. into ( ) . encode_version ( self . api_version , KeyMode :: Raw ) ) ;
333
+ . map ( |pair| pair. into ( ) . encode_keyspace ( self . keyspace , KeyMode :: Raw ) ) ;
334
334
let request = new_raw_batch_put_request ( pairs, self . cf . clone ( ) , self . atomic ) ;
335
- let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . api_version , request)
335
+ let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . keyspace , request)
336
336
. retry_multi_region ( self . backoff . clone ( ) )
337
337
. extract_error ( )
338
338
. plan ( ) ;
@@ -359,9 +359,9 @@ impl<PdC: PdClient> Client<PdC> {
359
359
/// ```
360
360
pub async fn delete ( & self , key : impl Into < Key > ) -> Result < ( ) > {
361
361
debug ! ( "invoking raw delete request" ) ;
362
- let key = key. into ( ) . encode_version ( self . api_version , KeyMode :: Raw ) ;
362
+ let key = key. into ( ) . encode_keyspace ( self . keyspace , KeyMode :: Raw ) ;
363
363
let request = new_raw_delete_request ( key, self . cf . clone ( ) , self . atomic ) ;
364
- let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . api_version , request)
364
+ let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . keyspace , request)
365
365
. retry_multi_region ( self . backoff . clone ( ) )
366
366
. merge ( CollectSingle )
367
367
. extract_error ( )
@@ -392,9 +392,9 @@ impl<PdC: PdClient> Client<PdC> {
392
392
self . assert_non_atomic ( ) ?;
393
393
let keys = keys
394
394
. into_iter ( )
395
- . map ( |k| k. into ( ) . encode_version ( self . api_version , KeyMode :: Raw ) ) ;
395
+ . map ( |k| k. into ( ) . encode_keyspace ( self . keyspace , KeyMode :: Raw ) ) ;
396
396
let request = new_raw_batch_delete_request ( keys, self . cf . clone ( ) ) ;
397
- let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . api_version , request)
397
+ let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . keyspace , request)
398
398
. retry_multi_region ( self . backoff . clone ( ) )
399
399
. extract_error ( )
400
400
. plan ( ) ;
@@ -420,9 +420,9 @@ impl<PdC: PdClient> Client<PdC> {
420
420
pub async fn delete_range ( & self , range : impl Into < BoundRange > ) -> Result < ( ) > {
421
421
debug ! ( "invoking raw delete_range request" ) ;
422
422
self . assert_non_atomic ( ) ?;
423
- let range = range. into ( ) . encode_version ( self . api_version , KeyMode :: Raw ) ;
423
+ let range = range. into ( ) . encode_keyspace ( self . keyspace , KeyMode :: Raw ) ;
424
424
let request = new_raw_delete_range_request ( range, self . cf . clone ( ) ) ;
425
- let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . api_version , request)
425
+ let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . keyspace , request)
426
426
. retry_multi_region ( self . backoff . clone ( ) )
427
427
. extract_error ( )
428
428
. plan ( ) ;
@@ -572,14 +572,14 @@ impl<PdC: PdClient> Client<PdC> {
572
572
) -> Result < ( Option < Value > , bool ) > {
573
573
debug ! ( "invoking raw compare_and_swap request" ) ;
574
574
self . assert_atomic ( ) ?;
575
- let key = key. into ( ) . encode_version ( self . api_version , KeyMode :: Raw ) ;
575
+ let key = key. into ( ) . encode_keyspace ( self . keyspace , KeyMode :: Raw ) ;
576
576
let req = new_cas_request (
577
577
key,
578
578
new_value. into ( ) ,
579
579
previous_value. into ( ) ,
580
580
self . cf . clone ( ) ,
581
581
) ;
582
- let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . api_version , req)
582
+ let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . keyspace , req)
583
583
. retry_multi_region ( self . backoff . clone ( ) )
584
584
. merge ( CollectSingle )
585
585
. post_process_default ( )
@@ -598,14 +598,14 @@ impl<PdC: PdClient> Client<PdC> {
598
598
semver:: VersionReq :: from_str ( & copr_version_req) ?;
599
599
let ranges = ranges
600
600
. into_iter ( )
601
- . map ( |range| range. into ( ) . encode_version ( self . api_version , KeyMode :: Raw ) ) ;
602
- let api_version = self . api_version ;
601
+ . map ( |range| range. into ( ) . encode_keyspace ( self . keyspace , KeyMode :: Raw ) ) ;
602
+ let keyspace = self . keyspace ;
603
603
let request_builder = move |region, ranges : Vec < Range < Key > > | {
604
604
request_builder (
605
605
region,
606
606
ranges
607
607
. into_iter ( )
608
- . map ( |range| range. truncate_version ( api_version ) )
608
+ . map ( |range| range. truncate_keyspace ( keyspace ) )
609
609
. collect ( ) ,
610
610
)
611
611
} ;
@@ -615,7 +615,7 @@ impl<PdC: PdClient> Client<PdC> {
615
615
ranges,
616
616
request_builder,
617
617
) ;
618
- let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . api_version , req)
618
+ let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . keyspace , req)
619
619
. preserve_shard ( )
620
620
. retry_multi_region ( self . backoff . clone ( ) )
621
621
. post_process_default ( )
@@ -624,7 +624,7 @@ impl<PdC: PdClient> Client<PdC> {
624
624
. execute ( )
625
625
. await ?
626
626
. into_iter ( )
627
- . map ( |( ranges, data) | ( ranges. truncate_version ( api_version ) , data) )
627
+ . map ( |( ranges, data) | ( ranges. truncate_keyspace ( keyspace ) , data) )
628
628
. collect ( ) )
629
629
}
630
630
@@ -641,7 +641,7 @@ impl<PdC: PdClient> Client<PdC> {
641
641
} ) ;
642
642
}
643
643
644
- let mut cur_range = range. into ( ) . encode_version ( self . api_version , KeyMode :: Raw ) ;
644
+ let mut cur_range = range. into ( ) . encode_keyspace ( self . keyspace , KeyMode :: Raw ) ;
645
645
let mut result = Vec :: new ( ) ;
646
646
let mut scan_regions = self . rpc . clone ( ) . stores_for_range ( cur_range. clone ( ) ) . boxed ( ) ;
647
647
let mut region_store =
@@ -656,13 +656,12 @@ impl<PdC: PdClient> Client<PdC> {
656
656
while cur_limit > 0 {
657
657
let request =
658
658
new_raw_scan_request ( cur_range. clone ( ) , cur_limit, key_only, self . cf . clone ( ) ) ;
659
- let resp =
660
- crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . api_version , request)
661
- . single_region_with_store ( region_store. clone ( ) )
662
- . await ?
663
- . plan ( )
664
- . execute ( )
665
- . await ?;
659
+ let resp = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . keyspace , request)
660
+ . single_region_with_store ( region_store. clone ( ) )
661
+ . await ?
662
+ . plan ( )
663
+ . execute ( )
664
+ . await ?;
666
665
let mut region_scan_res = resp
667
666
. kvs
668
667
. into_iter ( )
@@ -694,7 +693,7 @@ impl<PdC: PdClient> Client<PdC> {
694
693
result. truncate ( limit as usize ) ;
695
694
696
695
// truncate the version of keys
697
- let result = result. truncate_version ( self . api_version ) ;
696
+ let result = result. truncate_keyspace ( self . keyspace ) ;
698
697
699
698
Ok ( result)
700
699
}
@@ -714,16 +713,16 @@ impl<PdC: PdClient> Client<PdC> {
714
713
715
714
let ranges = ranges
716
715
. into_iter ( )
717
- . map ( |range| range. into ( ) . encode_version ( self . api_version , KeyMode :: Raw ) ) ;
716
+ . map ( |range| range. into ( ) . encode_keyspace ( self . keyspace , KeyMode :: Raw ) ) ;
718
717
719
718
let request = new_raw_batch_scan_request ( ranges, each_limit, key_only, self . cf . clone ( ) ) ;
720
- let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . api_version , request)
719
+ let plan = crate :: request:: PlanBuilder :: new ( self . rpc . clone ( ) , self . keyspace , request)
721
720
. retry_multi_region ( self . backoff . clone ( ) )
722
721
. merge ( Collect )
723
722
. plan ( ) ;
724
723
plan. execute ( ) . await . map ( |r| {
725
724
r. into_iter ( )
726
- . map ( |pair| pair. truncate_version ( self . api_version ) )
725
+ . map ( |pair| pair. truncate_keyspace ( self . keyspace ) )
727
726
. collect ( )
728
727
} )
729
728
}
@@ -778,7 +777,7 @@ mod tests {
778
777
cf : Some ( ColumnFamily :: Default ) ,
779
778
backoff : DEFAULT_REGION_BACKOFF ,
780
779
atomic : false ,
781
- api_version : APIVersion :: V2 { keyspace_id : 0 } ,
780
+ keyspace : Keyspace :: Enable { keyspace_id : 0 } ,
782
781
} ;
783
782
let resps = client
784
783
. coprocessor (
0 commit comments