@@ -19,7 +19,9 @@ use futures::StreamExt;
1919use snafu:: prelude:: * ;
2020
2121use crate :: util:: {
22- constraints, on_conflict:: OnConflict , retriable_error:: check_and_mark_retriable_error,
22+ constraints,
23+ on_conflict:: OnConflict ,
24+ retriable_error:: { check_and_mark_retriable_error, to_retriable_data_write_error} ,
2325} ;
2426
2527use super :: { to_datafusion_error, Sqlite } ;
@@ -126,8 +128,13 @@ impl DataSink for SqliteDataSink {
126128 let ( notify_commit_transaction, mut on_commit_transaction) =
127129 tokio:: sync:: oneshot:: channel ( ) ;
128130
129- let mut db_conn = self . sqlite . connect ( ) . await . map_err ( to_datafusion_error) ?;
130- let sqlite_conn = Sqlite :: sqlite_conn ( & mut db_conn) . map_err ( to_datafusion_error) ?;
131+ let mut db_conn = self
132+ . sqlite
133+ . connect ( )
134+ . await
135+ . map_err ( to_retriable_data_write_error) ?;
136+ let sqlite_conn =
137+ Sqlite :: sqlite_conn ( & mut db_conn) . map_err ( to_retriable_data_write_error) ?;
131138
132139 let constraints = self . sqlite . constraints ( ) . clone ( ) ;
133140 let mut data = data;
@@ -191,11 +198,9 @@ impl DataSink for SqliteDataSink {
191198 } )
192199 . await
193200 . context ( super :: UnableToInsertIntoTableAsyncSnafu )
194- . map_err ( to_datafusion_error ) ?;
201+ . map_err ( to_retriable_data_write_error ) ?;
195202
196- let num_rows = task. await . map_err ( |err| {
197- DataFusionError :: Execution ( format ! ( "Error sending data batch: {err}" ) )
198- } ) ??;
203+ let num_rows = task. await . map_err ( to_retriable_data_write_error) ??;
199204
200205 Ok ( num_rows)
201206 }
0 commit comments