This is an automated email from the ASF dual-hosted git repository.
comphead pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion.git
The following commit(s) were added to refs/heads/main by this push:
new 88b5970094 Minor: add `ListingOptions::with_file_extension_opt`
(#12461)
88b5970094 is described below
commit 88b5970094d70be547247d4126cf06aa4d55b8ab
Author: Andrew Lamb <[email protected]>
AuthorDate: Fri Sep 13 20:26:24 2024 -0400
Minor: add `ListingOptions::with_file_extension_opt` (#12461)
* Minor: add `ListingOptions::with_file_extension_opt`
* fmt
---
datafusion/core/src/datasource/listing/table.rs | 28 +++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/datafusion/core/src/datasource/listing/table.rs
b/datafusion/core/src/datasource/listing/table.rs
index 9246226d43..225995ca4f 100644
--- a/datafusion/core/src/datasource/listing/table.rs
+++ b/datafusion/core/src/datasource/listing/table.rs
@@ -245,6 +245,7 @@ impl ListingOptions {
/// Set file extension on [`ListingOptions`] and returns self.
///
+ /// # Example
/// ```
/// # use std::sync::Arc;
/// # use datafusion::prelude::SessionContext;
@@ -262,6 +263,33 @@ impl ListingOptions {
self
}
+ /// Optionally set file extension on [`ListingOptions`] and returns self.
+ ///
+ /// If `file_extension` is `None`, the file extension will not be changed
+ ///
+ /// # Example
+ /// ```
+ /// # use std::sync::Arc;
+ /// # use datafusion::prelude::SessionContext;
+ /// # use datafusion::datasource::{listing::ListingOptions,
file_format::parquet::ParquetFormat};
+ /// let extension = Some(".parquet");
+ /// let listing_options = ListingOptions::new(Arc::new(
+ /// ParquetFormat::default()
+ /// ))
+ /// .with_file_extension_opt(extension);
+ ///
+ /// assert_eq!(listing_options.file_extension, ".parquet");
+ /// ```
+ pub fn with_file_extension_opt<S>(mut self, file_extension: Option<S>) ->
Self
+ where
+ S: Into<String>,
+ {
+ if let Some(file_extension) = file_extension {
+ self.file_extension = file_extension.into();
+ }
+ self
+ }
+
/// Set `table partition columns` on [`ListingOptions`] and returns self.
///
/// "partition columns," used to support [Hive Partitioning], are
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]