andygrove commented on code in PR #4227:
URL: https://github.com/apache/arrow-datafusion/pull/4227#discussion_r1024278856
##########
datafusion/core/src/datasource/listing_table_factory.rs:
##########
@@ -52,27 +58,61 @@ impl TableProviderFactory for ListingTableFactory {
state: &SessionState,
cmd: &CreateExternalTable,
) -> datafusion_common::Result<Arc<dyn TableProvider>> {
- let file_extension = self.file_type.get_ext();
+ let file_compression_type =
+ match
FileCompressionType::from_str(cmd.file_compression_type.as_str()) {
+ Ok(t) => t,
+ Err(_) => Err(DataFusionError::Execution(
+ "Only known FileCompressionTypes can be
ListingTables!".to_string(),
+ ))?,
+ };
+
+ let file_type = match FileType::from_str(cmd.file_type.as_str()) {
+ Ok(t) => t,
+ Err(_) => Err(DataFusionError::Execution(
+ "Only known FileTypes can be ListingTables!".to_string(),
+ ))?,
+ };
Review Comment:
Let's include some context in the error message so the user knows what they
used that isn't supported. Also changes to use `map_err` to remove the need to
match here.
```suggestion
let file_compression_type = FileCompressionType::from_str(
cmd.file_compression_type.as_str(),
)
.map_err(|_| {
DataFusionError::Execution(format!(
"Unknown FileCompressionType {}",
cmd.file_compression_type.as_str()
))
})?;
let file_type =
FileType::from_str(cmd.file_type.as_str()).map_err(|_| {
DataFusionError::Execution(format!("Unknown FileType {}",
cmd.file_type))
})?;
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]