@@ -298,7 +298,6 @@ try_getable_all!(i32);
298
298
try_getable_all ! ( i64 ) ;
299
299
try_getable_unsigned ! ( u8 ) ;
300
300
try_getable_unsigned ! ( u16 ) ;
301
- try_getable_all ! ( u32 ) ;
302
301
try_getable_mysql ! ( u64 ) ;
303
302
try_getable_all ! ( f32 ) ;
304
303
try_getable_all ! ( f64 ) ;
@@ -391,6 +390,47 @@ impl TryGetable for Decimal {
391
390
#[ cfg( feature = "with-uuid" ) ]
392
391
try_getable_all ! ( uuid:: Uuid ) ;
393
392
393
+ impl TryGetable for u32 {
394
+ fn try_get ( res : & QueryResult , pre : & str , col : & str ) -> Result < Self , TryGetError > {
395
+ let _column = format ! ( "{}{}" , pre, col) ;
396
+ match & res. row {
397
+ #[ cfg( feature = "sqlx-mysql" ) ]
398
+ QueryResultRow :: SqlxMySql ( row) => {
399
+ use sqlx:: Row ;
400
+ row. try_get :: < Option < u32 > , _ > ( _column. as_str ( ) )
401
+ . map_err ( |e| TryGetError :: DbErr ( crate :: sqlx_error_to_query_err ( e) ) )
402
+ . and_then ( |opt| opt. ok_or ( TryGetError :: Null ) )
403
+ }
404
+ #[ cfg( feature = "sqlx-postgres" ) ]
405
+ QueryResultRow :: SqlxPostgres ( row) => {
406
+ use sqlx:: postgres:: types:: Oid ;
407
+ // Since 0.6.0, SQLx has dropped direct mapping from PostgreSQL's OID to Rust's `u32`;
408
+ // Instead, `u32` was wrapped by a `sqlx::Oid`.
409
+ use sqlx:: Row ;
410
+ row. try_get :: < Option < Oid > , _ > ( _column. as_str ( ) )
411
+ . map_err ( |e| TryGetError :: DbErr ( crate :: sqlx_error_to_query_err ( e) ) )
412
+ . and_then ( |opt| opt. ok_or ( TryGetError :: Null ) )
413
+ . map ( |oid| oid. 0 )
414
+ }
415
+ #[ cfg( feature = "sqlx-sqlite" ) ]
416
+ QueryResultRow :: SqlxSqlite ( row) => {
417
+ use sqlx:: Row ;
418
+ row. try_get :: < Option < u32 > , _ > ( _column. as_str ( ) )
419
+ . map_err ( |e| TryGetError :: DbErr ( crate :: sqlx_error_to_query_err ( e) ) )
420
+ . and_then ( |opt| opt. ok_or ( TryGetError :: Null ) )
421
+ }
422
+ #[ cfg( feature = "mock" ) ]
423
+ #[ allow( unused_variables) ]
424
+ QueryResultRow :: Mock ( row) => row. try_get ( _column. as_str ( ) ) . map_err ( |e| {
425
+ debug_print ! ( "{:#?}" , e. to_string( ) ) ;
426
+ TryGetError :: Null
427
+ } ) ,
428
+ #[ allow( unreachable_patterns) ]
429
+ _ => unreachable ! ( ) ,
430
+ }
431
+ }
432
+ }
433
+
394
434
// TryGetableMany //
395
435
396
436
/// Perform a query on multiple columns
0 commit comments