@@ -784,54 +784,18 @@ where
784784 type Result = P :: Result ;
785785
786786 async fn execute ( & self ) -> Result < Self :: Result > {
787- let result = self . inner . execute ( ) . await ;
788- let mut errors = Vec :: new ( ) ;
789- match result {
790- Ok ( mut resp) => {
791- if let Some ( e) = resp. key_errors ( ) {
792- errors. extend ( e) ;
793- }
794- if let Some ( e) = resp. region_errors ( ) {
795- errors. extend ( e. into_iter ( ) . map ( |e| Error :: RegionError ( Box :: new ( e) ) ) ) ;
796- }
797-
798- if errors. is_empty ( ) {
799- return Ok ( resp) ;
800- }
801- }
802- Err ( Error :: MultipleKeyErrors ( e) ) => errors. extend ( e) ,
803- Err ( e) => errors. push ( e) ,
804- } ;
805- for error in & mut errors {
806- match error {
807- Error :: KvError { message }
808- if message
809- . contains ( "Api version in request does not match with TiKV storage" )
810- && message. contains ( "storage: V1, request: V2" ) =>
811- {
812- * error = Error :: ServerKeyspaceNotEnabled
813- }
814- Error :: KvError { message }
815- if message
816- . contains ( "Api version in request does not match with TiKV storage" )
817- && message. contains ( "storage: V1ttl, request: V2" ) =>
818- {
819- * error = Error :: ServerKeyspaceNotEnabled
820- }
821- Error :: KvError { message }
822- if message
823- . contains ( "Api version in request does not match with TiKV storage" )
824- && message. contains ( "storage: V2, request: V1" ) =>
825- {
826- * error = Error :: ClientKeyspaceNotEnabled
827- }
828- _ => ( ) ,
829- }
830- }
831- match errors. len ( ) {
832- 0 => unreachable ! ( ) ,
833- 1 => Err ( errors. pop ( ) . unwrap ( ) ) ,
834- _ => Err ( Error :: ExtractedErrors ( errors) ) ,
787+ let result = self . inner . execute ( ) . await ?;
788+ if let Some ( errors) = result. key_errors ( ) {
789+ Err ( Error :: ExtractedErrors ( errors) )
790+ } else if let Some ( errors) = result. region_errors ( ) {
791+ Err ( Error :: ExtractedErrors (
792+ errors
793+ . into_iter ( )
794+ . map ( |e| Error :: RegionError ( Box :: new ( e) ) )
795+ . collect ( ) ,
796+ ) )
797+ } else {
798+ Ok ( result)
835799 }
836800 }
837801}
0 commit comments