File tree 1 file changed +8
-3
lines changed
backend/windmill-worker/src
1 file changed +8
-3
lines changed Original file line number Diff line number Diff line change @@ -117,24 +117,29 @@ fn do_postgresql_inner<'a>(
117
117
. await
118
118
. map_err ( to_anyhow) ?;
119
119
} else if let Some ( ref s3) = s3 {
120
- let rows = client
120
+ let rows_stream = client
121
121
. query_raw ( & query, query_params)
122
122
. await ?
123
123
. map_err ( to_anyhow)
124
- . map ( |row_result| {
124
+ . enumerate ( )
125
+ . map ( |( i, row_result) | {
125
126
row_result. and_then ( |row| {
126
127
postgres_row_to_json_value ( row)
127
128
. map_err ( to_anyhow)
128
129
. and_then ( |ref v| serde_json:: to_string ( v) . map_err ( to_anyhow) )
130
+ . map ( |s| if i == 0 { s } else { format ! ( ",\n {}" , s) } )
129
131
} )
130
132
} ) ;
133
+ let start_bracket = futures:: stream:: once ( async { Ok ( "{ rows: [\n " . to_string ( ) ) } ) ;
134
+ let end_bracket = futures:: stream:: once ( async { Ok ( "\n ]}" . to_string ( ) ) } ) ;
135
+ let rows_stream = start_bracket. chain ( rows_stream) . chain ( end_bracket) ;
131
136
132
137
s3. client
133
138
. upload_s3_file (
134
139
s3. workspace_id . as_str ( ) ,
135
140
s3. object_key . clone ( ) ,
136
141
s3. storage . clone ( ) ,
137
- rows ,
142
+ rows_stream ,
138
143
)
139
144
. await ?;
140
145
You can’t perform that action at this time.
0 commit comments