File tree Expand file tree Collapse file tree 1 file changed +20
-14
lines changed
Expand file tree Collapse file tree 1 file changed +20
-14
lines changed Original file line number Diff line number Diff line change @@ -234,23 +234,29 @@ where
234234 let paginator = self . paginate ( db, 1 ) ;
235235 let builder = db. get_database_backend ( ) ;
236236 let stmt = SelectStatement :: new ( )
237- . expr ( Expr :: cust ( "1" ) )
238- . from_subquery (
239- paginator
240- . query
241- . clone ( )
242- . reset_limit ( )
243- . reset_offset ( )
244- . clear_order_by ( )
245- . limit ( 1 )
246- . to_owned ( ) ,
247- "sub_query" ,
237+ . expr_as (
238+ Expr :: exists (
239+ paginator
240+ . query
241+ . clone ( )
242+ . reset_limit ( )
243+ . reset_offset ( )
244+ . clear_order_by ( )
245+ . limit ( 1 )
246+ . to_owned ( ) ,
247+ ) ,
248+ "record_exists" ,
248249 )
249- . limit ( 1 )
250250 . to_owned ( ) ;
251251 let stmt = builder. build ( & stmt) ;
252- let result = db. query_one ( stmt) . await ?;
253- Ok ( result. is_some ( ) )
252+ let result = db. query_one ( stmt) . await ?. ok_or ( DbErr :: RecordNotFound (
253+ "EXISTS query returned no result" . to_owned ( ) ,
254+ ) ) ?;
255+ let exists = match builder {
256+ DbBackend :: Postgres => result. try_get :: < bool > ( "" , "record_exists" ) ?,
257+ _ => result. try_get :: < i32 > ( "" , "record_exists" ) ? != 0 ,
258+ } ;
259+ Ok ( exists)
254260 }
255261}
256262
You can’t perform that action at this time.
0 commit comments