@@ -70,7 +70,7 @@ pub trait PdClient: Send + Sync + 'static {
70
70
fn group_keys_by_region < K , K2 > (
71
71
self : Arc < Self > ,
72
72
keys : impl Iterator < Item = K > + Send + Sync + ' static ,
73
- ) -> BoxStream < ' static , Result < ( RegionId , Vec < K2 > ) > >
73
+ ) -> BoxStream < ' static , Result < ( RegionWithLeader , Vec < K2 > ) > >
74
74
where
75
75
K : AsRef < Key > + Into < K2 > + Send + Sync + ' static ,
76
76
K2 : Send + Sync + ' static ,
@@ -81,15 +81,14 @@ pub trait PdClient: Send + Sync + 'static {
81
81
async move {
82
82
if let Some ( key) = keys. next ( ) {
83
83
let region = this. region_for_key ( key. as_ref ( ) ) . await ?;
84
- let id = region. id ( ) ;
85
84
let mut grouped = vec ! [ key. into( ) ] ;
86
85
while let Some ( key) = keys. peek ( ) {
87
86
if !region. contains ( key. as_ref ( ) ) {
88
87
break ;
89
88
}
90
89
grouped. push ( keys. next ( ) . unwrap ( ) . into ( ) ) ;
91
90
}
92
- Ok ( Some ( ( keys, ( id , grouped) ) ) )
91
+ Ok ( Some ( ( keys, ( region , grouped) ) ) )
93
92
} else {
94
93
Ok ( None )
95
94
}
@@ -133,7 +132,7 @@ pub trait PdClient: Send + Sync + 'static {
133
132
fn group_ranges_by_region (
134
133
self : Arc < Self > ,
135
134
mut ranges : Vec < kvrpcpb:: KeyRange > ,
136
- ) -> BoxStream < ' static , Result < ( RegionId , Vec < kvrpcpb:: KeyRange > ) > > {
135
+ ) -> BoxStream < ' static , Result < ( RegionWithLeader , Vec < kvrpcpb:: KeyRange > ) > > {
137
136
ranges. reverse ( ) ;
138
137
stream_fn ( Some ( ranges) , move |ranges| {
139
138
let this = self . clone ( ) ;
@@ -147,7 +146,6 @@ pub trait PdClient: Send + Sync + 'static {
147
146
let start_key: Key = range. start_key . clone ( ) . into ( ) ;
148
147
let end_key: Key = range. end_key . clone ( ) . into ( ) ;
149
148
let region = this. region_for_key ( & start_key) . await ?;
150
- let id = region. id ( ) ;
151
149
let region_start = region. start_key ( ) ;
152
150
let region_end = region. end_key ( ) ;
153
151
let mut grouped = vec ! [ ] ;
@@ -160,7 +158,7 @@ pub trait PdClient: Send + Sync + 'static {
160
158
start_key : region_end. into ( ) ,
161
159
end_key : end_key. into ( ) ,
162
160
} ) ;
163
- return Ok ( Some ( ( Some ( ranges) , ( id , grouped) ) ) ) ;
161
+ return Ok ( Some ( ( Some ( ranges) , ( region , grouped) ) ) ) ;
164
162
}
165
163
grouped. push ( range) ;
166
164
@@ -180,11 +178,11 @@ pub trait PdClient: Send + Sync + 'static {
180
178
start_key : region_end. into ( ) ,
181
179
end_key : end_key. into ( ) ,
182
180
} ) ;
183
- return Ok ( Some ( ( Some ( ranges) , ( id , grouped) ) ) ) ;
181
+ return Ok ( Some ( ( Some ( ranges) , ( region , grouped) ) ) ) ;
184
182
}
185
183
grouped. push ( range) ;
186
184
}
187
- Ok ( Some ( ( Some ( ranges) , ( id , grouped) ) ) )
185
+ Ok ( Some ( ( Some ( ranges) , ( region , grouped) ) ) )
188
186
} else {
189
187
Ok ( None )
190
188
}
@@ -452,7 +450,7 @@ pub mod test {
452
450
let ranges3 = stream. next ( ) . unwrap ( ) . unwrap ( ) ;
453
451
let ranges4 = stream. next ( ) . unwrap ( ) . unwrap ( ) ;
454
452
455
- assert_eq ! ( ranges1. 0 , 1 ) ;
453
+ assert_eq ! ( ranges1. 0 . id ( ) , 1 ) ;
456
454
assert_eq ! (
457
455
ranges1. 1 ,
458
456
vec![
@@ -466,23 +464,23 @@ pub mod test {
466
464
}
467
465
]
468
466
) ;
469
- assert_eq ! ( ranges2. 0 , 2 ) ;
467
+ assert_eq ! ( ranges2. 0 . id ( ) , 2 ) ;
470
468
assert_eq ! (
471
469
ranges2. 1 ,
472
470
vec![ kvrpcpb:: KeyRange {
473
471
start_key: k_split. clone( ) ,
474
472
end_key: k3
475
473
} ]
476
474
) ;
477
- assert_eq ! ( ranges3. 0 , 1 ) ;
475
+ assert_eq ! ( ranges3. 0 . id ( ) , 1 ) ;
478
476
assert_eq ! (
479
477
ranges3. 1 ,
480
478
vec![ kvrpcpb:: KeyRange {
481
479
start_key: k2,
482
480
end_key: k_split. clone( )
483
481
} ]
484
482
) ;
485
- assert_eq ! ( ranges4. 0 , 2 ) ;
483
+ assert_eq ! ( ranges4. 0 . id ( ) , 2 ) ;
486
484
assert_eq ! (
487
485
ranges4. 1 ,
488
486
vec![ kvrpcpb:: KeyRange {
0 commit comments