@@ -1644,7 +1644,7 @@ impl<'a> PostgresCopyInStatement<'a> {
16441644 let _ = buf. write_be_i32 ( 0 ) ;
16451645 let _ = buf. write_be_i32 ( 0 ) ;
16461646
1647- for mut row in rows {
1647+ ' l : for mut row in rows {
16481648 let _ = buf. write_be_i16 ( self . column_types . len ( ) as i16 ) ;
16491649
16501650 let mut types = self . column_types . iter ( ) ;
@@ -1662,31 +1662,30 @@ impl<'a> PostgresCopyInStatement<'a> {
16621662 }
16631663 }
16641664 ( Some ( _) , None ) | ( None , Some ( _) ) => {
1665- try_pg ! ( conn. stream. write_message(
1665+ try_pg_desync ! ( conn , conn. stream. write_message(
16661666 & CopyFail {
16671667 message: "Invalid column count" ,
16681668 } ) ) ;
1669- break ;
1669+ break ' l ;
16701670 }
16711671 ( None , None ) => break
16721672 }
16731673 }
16741674
1675- try_pg ! ( conn. stream. write_message(
1675+ try_pg_desync ! ( conn , conn. stream. write_message(
16761676 & CopyData {
16771677 data: buf. unwrap( ) . as_slice( )
16781678 } ) ) ;
16791679 buf = MemWriter :: new ( ) ;
16801680 }
16811681
16821682 let _ = buf. write_be_i16 ( -1 ) ;
1683- try_pg ! ( conn. stream . write_message (
1684- & CopyData {
1683+ try_pg ! ( conn. write_messages ( [
1684+ CopyData {
16851685 data: buf. unwrap( ) . as_slice( ) ,
1686- } ) ) ;
1687- try_pg ! ( conn. stream. write_message( & CopyDone ) ) ;
1688- try_pg ! ( conn. stream. write_message( & Sync ) ) ;
1689- try_pg ! ( conn. stream. flush( ) ) ;
1686+ } ,
1687+ CopyDone ,
1688+ Sync ] ) ) ;
16901689
16911690 let num = match try_pg ! ( conn. read_message_( ) ) {
16921691 CommandComplete { tag } => util:: parse_update_count ( tag) ,
0 commit comments