@@ -725,29 +725,30 @@ impl InnerConnection {
725725 }
726726 _ => bad_response ! ( self ) ,
727727 }
728- let ( name, elem_oid, rngsubtype, schema) : ( String , Oid , Option < Oid > , String ) =
729- match try!( self . read_message ( ) ) {
730- DataRow { row } => {
731- let ctx = SessionInfo :: new ( self ) ;
732- ( try!( FromSql :: from_sql_nullable ( & Type :: Name ,
733- row[ 0 ] . as_ref ( ) . map ( |r| & * * r) . as_mut ( ) ,
734- & ctx) ) ,
735- try!( FromSql :: from_sql_nullable ( & Type :: Oid ,
736- row[ 1 ] . as_ref ( ) . map ( |r| & * * r) . as_mut ( ) ,
737- & ctx) ) ,
738- try!( FromSql :: from_sql_nullable ( & Type :: Oid ,
739- row[ 2 ] . as_ref ( ) . map ( |r| & * * r) . as_mut ( ) ,
740- & ctx) ) ,
741- try!( FromSql :: from_sql_nullable ( & Type :: Name ,
742- row[ 3 ] . as_ref ( ) . map ( |r| & * * r) . as_mut ( ) ,
743- & ctx) ) )
744- }
745- ErrorResponse { fields } => {
746- try!( self . wait_for_ready ( ) ) ;
747- return DbError :: new ( fields) ;
748- }
749- _ => bad_response ! ( self ) ,
750- } ;
728+ let ( name, elem_oid, rngsubtype, schema) = match try!( self . read_message ( ) ) {
729+ DataRow { row } => {
730+ let ctx = SessionInfo :: new ( self ) ;
731+ let name = try!( String :: from_sql ( & Type :: Name ,
732+ & mut & * * row[ 0 ] . as_ref ( ) . unwrap ( ) ,
733+ & ctx) ) ;
734+ let elem_oid = try!( Oid :: from_sql ( & Type :: Oid ,
735+ & mut & * * row[ 1 ] . as_ref ( ) . unwrap ( ) ,
736+ & ctx) ) ;
737+ let rngsubtype = match row[ 2 ] {
738+ Some ( ref data) => try!( Option :: < Oid > :: from_sql ( & Type :: Oid , & mut & * * data, & ctx) ) ,
739+ None => try!( Option :: < Oid > :: from_sql_null ( & Type :: Oid , & ctx) ) ,
740+ } ;
741+ let schema = try!( String :: from_sql ( & Type :: Name ,
742+ & mut & * * row[ 3 ] . as_ref ( ) . unwrap ( ) ,
743+ & ctx) ) ;
744+ ( name, elem_oid, rngsubtype, schema)
745+ }
746+ ErrorResponse { fields } => {
747+ try!( self . wait_for_ready ( ) ) ;
748+ return DbError :: new ( fields) ;
749+ }
750+ _ => bad_response ! ( self )
751+ } ;
751752 match try!( self . read_message ( ) ) {
752753 CommandComplete { .. } => { }
753754 ErrorResponse { fields } => {
0 commit comments