17
17
18
18
use datafusion:: arrow:: datatypes:: Fields ;
19
19
use datafusion:: arrow:: util:: display:: ArrayFormatter ;
20
- use datafusion:: arrow:: { array, array:: ArrayRef , datatypes:: DataType , record_batch:: RecordBatch } ;
20
+ use datafusion:: arrow:: {
21
+ array, array:: ArrayRef , datatypes:: DataType , record_batch:: RecordBatch ,
22
+ } ;
21
23
use datafusion:: common:: format:: DEFAULT_FORMAT_OPTIONS ;
22
24
use datafusion:: common:: DataFusionError ;
23
25
use std:: path:: PathBuf ;
@@ -157,7 +159,8 @@ fn workspace_root() -> &'static object_store::path::Path {
157
159
let sanitized_workplace_root = if cfg ! ( windows) {
158
160
// Object store paths are delimited with `/`, e.g. `/datafusion/datafusion/testing/data/csv/aggregate_test_100.csv`.
159
161
// The default windows delimiter is `\`, so the workplace path is `datafusion\datafusion`.
160
- workspace_root. replace ( std:: path:: MAIN_SEPARATOR , object_store:: path:: DELIMITER )
162
+ workspace_root
163
+ . replace ( std:: path:: MAIN_SEPARATOR , object_store:: path:: DELIMITER )
161
164
} else {
162
165
workspace_root. to_string ( )
163
166
} ;
@@ -204,10 +207,18 @@ pub fn cell_to_string(col: &ArrayRef, row: usize) -> Result<String> {
204
207
} else {
205
208
match col. data_type ( ) {
206
209
DataType :: Null => Ok ( NULL_STR . to_string ( ) ) ,
207
- DataType :: Boolean => Ok ( bool_to_str ( get_row_value ! ( array:: BooleanArray , col, row) ) ) ,
208
- DataType :: Float16 => Ok ( f16_to_str ( get_row_value ! ( array:: Float16Array , col, row) ) ) ,
209
- DataType :: Float32 => Ok ( f32_to_str ( get_row_value ! ( array:: Float32Array , col, row) ) ) ,
210
- DataType :: Float64 => Ok ( f64_to_str ( get_row_value ! ( array:: Float64Array , col, row) ) ) ,
210
+ DataType :: Boolean => {
211
+ Ok ( bool_to_str ( get_row_value ! ( array:: BooleanArray , col, row) ) )
212
+ }
213
+ DataType :: Float16 => {
214
+ Ok ( f16_to_str ( get_row_value ! ( array:: Float16Array , col, row) ) )
215
+ }
216
+ DataType :: Float32 => {
217
+ Ok ( f32_to_str ( get_row_value ! ( array:: Float32Array , col, row) ) )
218
+ }
219
+ DataType :: Float64 => {
220
+ Ok ( f64_to_str ( get_row_value ! ( array:: Float64Array , col, row) ) )
221
+ }
211
222
DataType :: Decimal128 ( precision, scale) => {
212
223
let value = get_row_value ! ( array:: Decimal128Array , col, row) ;
213
224
Ok ( i128_to_str ( value, precision, scale) )
@@ -221,7 +232,9 @@ pub fn cell_to_string(col: &ArrayRef, row: usize) -> Result<String> {
221
232
col,
222
233
row
223
234
) ) ) ,
224
- DataType :: Utf8 => Ok ( varchar_to_str ( get_row_value ! ( array:: StringArray , col, row) ) ) ,
235
+ DataType :: Utf8 => {
236
+ Ok ( varchar_to_str ( get_row_value ! ( array:: StringArray , col, row) ) )
237
+ }
225
238
_ => {
226
239
let f = ArrayFormatter :: try_new ( col. as_ref ( ) , & DEFAULT_FORMAT_OPTIONS ) ;
227
240
Ok ( f. unwrap ( ) . value ( row) . to_string ( ) )
@@ -252,9 +265,10 @@ pub(crate) fn convert_schema_to_types(columns: &Fields) -> Vec<DFColumnType> {
252
265
| DataType :: Decimal128 ( _, _)
253
266
| DataType :: Decimal256 ( _, _) => DFColumnType :: Float ,
254
267
DataType :: Utf8 | DataType :: LargeUtf8 => DFColumnType :: Text ,
255
- DataType :: Date32 | DataType :: Date64 | DataType :: Time32 ( _) | DataType :: Time64 ( _) => {
256
- DFColumnType :: DateTime
257
- }
268
+ DataType :: Date32
269
+ | DataType :: Date64
270
+ | DataType :: Time32 ( _)
271
+ | DataType :: Time64 ( _) => DFColumnType :: DateTime ,
258
272
DataType :: Timestamp ( _, _) => DFColumnType :: Timestamp ,
259
273
_ => DFColumnType :: Another ,
260
274
} )
0 commit comments