@@ -31,19 +31,14 @@ use crate::sst::index::IndexBuildType;
3131use crate :: worker:: RegionWorkerLoop ;
3232
3333fn resolve_flush_reason (
34- explicit_reason : Option < FlushReason > ,
3534 request_reason : Option < RegionFlushReason > ,
3635 is_downgrading : bool ,
3736) -> FlushReason {
38- explicit_reason
39- . or_else ( || request_reason. map ( FlushReason :: from) )
40- . unwrap_or ( {
41- if is_downgrading {
42- FlushReason :: Downgrading
43- } else {
44- FlushReason :: Manual
45- }
46- } )
37+ match request_reason {
38+ Some ( reason) => FlushReason :: from ( reason) ,
39+ None if is_downgrading => FlushReason :: Downgrading ,
40+ None => FlushReason :: Manual ,
41+ }
4742}
4843
4944impl < S : LogStore > RegionWorkerLoop < S > {
@@ -181,7 +176,6 @@ impl<S: LogStore> RegionWorkerLoop<S> {
181176 & mut self ,
182177 region_id : RegionId ,
183178 request : RegionFlushRequest ,
184- reason : Option < FlushReason > ,
185179 sender : OptionOutputTx ,
186180 ) {
187181 let region = match self . regions . flushable_region ( region_id) {
@@ -197,7 +191,7 @@ impl<S: LogStore> RegionWorkerLoop<S> {
197191 // when handling flush request instead of in `schedule_flush` or `flush_finished`.
198192 self . update_topic_latest_entry_id ( & region) ;
199193
200- let reason = resolve_flush_reason ( reason , request. reason , region. is_downgrading ( ) ) ;
194+ let reason = resolve_flush_reason ( request. reason , region. is_downgrading ( ) ) ;
201195 let mut task =
202196 self . new_flush_task ( & region, reason, request. row_group_size , self . config . clone ( ) ) ;
203197 task. push_sender ( sender) ;
@@ -369,38 +363,33 @@ impl<S: LogStore> RegionWorkerLoop<S> {
369363mod tests {
370364 use super :: * ;
371365
372- #[ test]
373- fn test_resolve_flush_reason_prefers_explicit_reason ( ) {
374- let reason = resolve_flush_reason (
375- Some ( FlushReason :: Closing ) ,
376- Some ( RegionFlushReason :: RemoteWalPrune ) ,
377- true ,
378- ) ;
379- assert_eq ! ( reason, FlushReason :: Closing ) ;
380- }
381-
382366 #[ test]
383367 fn test_resolve_flush_reason_uses_request_reason ( ) {
384368 assert_eq ! (
385- resolve_flush_reason( None , Some ( RegionFlushReason :: RegionMigration ) , true ) ,
369+ resolve_flush_reason( Some ( RegionFlushReason :: RegionMigration ) , true ) ,
386370 FlushReason :: RegionMigration
387371 ) ;
388372 assert_eq ! (
389- resolve_flush_reason( None , Some ( RegionFlushReason :: Repartition ) , false ) ,
373+ resolve_flush_reason( Some ( RegionFlushReason :: Repartition ) , false ) ,
390374 FlushReason :: Repartition
391375 ) ;
392376 assert_eq ! (
393- resolve_flush_reason( None , Some ( RegionFlushReason :: RemoteWalPrune ) , false ) ,
377+ resolve_flush_reason( Some ( RegionFlushReason :: RemoteWalPrune ) , false ) ,
394378 FlushReason :: RemoteWalPrune
395379 ) ;
380+ assert_eq ! (
381+ resolve_flush_reason( Some ( RegionFlushReason :: Closing ) , false ) ,
382+ FlushReason :: Closing
383+ ) ;
384+ assert_eq ! (
385+ resolve_flush_reason( Some ( RegionFlushReason :: Downgrading ) , false ) ,
386+ FlushReason :: Downgrading
387+ ) ;
396388 }
397389
398390 #[ test]
399391 fn test_resolve_flush_reason_fallback_unchanged ( ) {
400- assert_eq ! (
401- resolve_flush_reason( None , None , true ) ,
402- FlushReason :: Downgrading
403- ) ;
404- assert_eq ! ( resolve_flush_reason( None , None , false ) , FlushReason :: Manual ) ;
392+ assert_eq ! ( resolve_flush_reason( None , true ) , FlushReason :: Downgrading ) ;
393+ assert_eq ! ( resolve_flush_reason( None , false ) , FlushReason :: Manual ) ;
405394 }
406395}
0 commit comments