@@ -24,11 +24,8 @@ async fn write_basic() {
24
24
25
25
let stream = BinaryCopyStream :: new ( & [ Type :: INT4 , Type :: TEXT ] , |mut w| {
26
26
async move {
27
- w. write ( & 1i32 ) . await ?;
28
- w. write ( & "foobar" ) . await ?;
29
-
30
- w. write ( & 2i32 ) . await ?;
31
- w. write ( & None :: < & str > ) . await ?;
27
+ w. write ( & [ & 1i32 , & "foobar" ] ) . await ?;
28
+ w. write ( & [ & 2i32 , & None :: < & str > ] ) . await ?;
32
29
33
30
Ok ( ( ) )
34
31
}
@@ -39,7 +36,10 @@ async fn write_basic() {
39
36
. await
40
37
. unwrap ( ) ;
41
38
42
- let rows = client. query ( "SELECT id, bar FROM foo ORDER BY id" , & [ ] ) . await . unwrap ( ) ;
39
+ let rows = client
40
+ . query ( "SELECT id, bar FROM foo ORDER BY id" , & [ ] )
41
+ . await
42
+ . unwrap ( ) ;
43
43
assert_eq ! ( rows. len( ) , 2 ) ;
44
44
assert_eq ! ( rows[ 0 ] . get:: <_, i32 >( 0 ) , 1 ) ;
45
45
assert_eq ! ( rows[ 0 ] . get:: <_, Option <& str >>( 1 ) , Some ( "foobar" ) ) ;
@@ -56,18 +56,25 @@ async fn write_many_rows() {
56
56
. await
57
57
. unwrap ( ) ;
58
58
59
- let stream = BinaryCopyStream :: new ( & [ Type :: INT4 , Type :: TEXT ] , |mut w| async move {
60
- for i in 0 .. 10_000i32 {
61
- w . write ( & i ) . await ? ;
62
- w. write ( & format ! ( "the value for {}" , i) ) . await ?;
63
- }
59
+ let stream = BinaryCopyStream :: new ( & [ Type :: INT4 , Type :: TEXT ] , |mut w| {
60
+ async move {
61
+ for i in 0 .. 10_000i32 {
62
+ w. write ( & [ & i , & format ! ( "the value for {}" , i) ] ) . await ?;
63
+ }
64
64
65
- Ok ( ( ) )
65
+ Ok ( ( ) )
66
+ }
66
67
} ) ;
67
68
68
- client. copy_in ( "COPY foo (id, bar) FROM STDIN BINARY" , & [ ] , stream) . await . unwrap ( ) ;
69
+ client
70
+ . copy_in ( "COPY foo (id, bar) FROM STDIN BINARY" , & [ ] , stream)
71
+ . await
72
+ . unwrap ( ) ;
69
73
70
- let rows = client. query ( "SELECT id, bar FROM foo ORDER BY id" , & [ ] ) . await . unwrap ( ) ;
74
+ let rows = client
75
+ . query ( "SELECT id, bar FROM foo ORDER BY id" , & [ ] )
76
+ . await
77
+ . unwrap ( ) ;
71
78
for ( i, row) in rows. iter ( ) . enumerate ( ) {
72
79
assert_eq ! ( row. get:: <_, i32 >( 0 ) , i as i32 ) ;
73
80
assert_eq ! ( row. get:: <_, & str >( 1 ) , format!( "the value for {}" , i) ) ;
@@ -78,22 +85,30 @@ async fn write_many_rows() {
78
85
async fn write_big_rows ( ) {
79
86
let client = connect ( ) . await ;
80
87
81
- client. batch_execute ( "CREATE TEMPORARY TABLE foo (id INT, bar BYTEA)" ) . await . unwrap ( ) ;
88
+ client
89
+ . batch_execute ( "CREATE TEMPORARY TABLE foo (id INT, bar BYTEA)" )
90
+ . await
91
+ . unwrap ( ) ;
82
92
83
93
let stream = BinaryCopyStream :: new ( & [ Type :: INT4 , Type :: BYTEA ] , |mut w| {
84
94
async move {
85
95
for i in 0 ..2i32 {
86
- w. write ( & i) . await . unwrap ( ) ;
87
- w. write ( & vec ! [ i as u8 ; 128 * 1024 ] ) . await . unwrap ( ) ;
96
+ w. write ( & [ & i, & vec ! [ i as u8 ; 128 * 1024 ] ] ) . await ?;
88
97
}
89
98
90
99
Ok ( ( ) )
91
100
}
92
101
} ) ;
93
102
94
- client. copy_in ( "COPY foo (id, bar) FROM STDIN BINARY" , & [ ] , stream) . await . unwrap ( ) ;
103
+ client
104
+ . copy_in ( "COPY foo (id, bar) FROM STDIN BINARY" , & [ ] , stream)
105
+ . await
106
+ . unwrap ( ) ;
95
107
96
- let rows = client. query ( "SELECT id, bar FROM foo ORDER BY id" , & [ ] ) . await . unwrap ( ) ;
108
+ let rows = client
109
+ . query ( "SELECT id, bar FROM foo ORDER BY id" , & [ ] )
110
+ . await
111
+ . unwrap ( ) ;
97
112
for ( i, row) in rows. iter ( ) . enumerate ( ) {
98
113
assert_eq ! ( row. get:: <_, i32 >( 0 ) , i as i32 ) ;
99
114
assert_eq ! ( row. get:: <_, & [ u8 ] >( 1 ) , & * vec![ i as u8 ; 128 * 1024 ] ) ;
0 commit comments