MCPcopy Create free account
hub / github.com/apache/datafusion / create_file_opener

Method create_file_opener

datafusion/datasource-arrow/src/source.rs:291–314  ·  view source on GitHub ↗
(
        &self,
        object_store: Arc<dyn ObjectStore>,
        _base_config: &FileScanConfig,
        _partition: usize,
    )

Source from the content-addressed store, hash-verified

289
290impl FileSource for ArrowSource {
291 fn create_file_opener(
292 &self,
293 object_store: Arc<dyn ObjectStore>,
294 _base_config: &FileScanConfig,
295 _partition: usize,
296 ) -> Result<Arc<dyn FileOpener>> {
297 let split_projection = self.projection.clone();
298
299 let opener: Arc<dyn FileOpener> = match self.format {
300 ArrowFormat::File => Arc::new(ArrowFileOpener {
301 object_store,
302 projection: Some(split_projection.file_indices.clone()),
303 }),
304 ArrowFormat::Stream => Arc::new(ArrowStreamFileOpener {
305 object_store,
306 projection: Some(split_projection.file_indices.clone()),
307 }),
308 };
309 ProjectionOpener::try_new(
310 split_projection,
311 opener,
312 self.table_schema.file_schema(),
313 )
314 }
315
316 fn with_batch_size(&self, _batch_size: usize) -> Arc<dyn FileSource> {
317 Arc::new(Self { ..self.clone() })

Calls 3

newFunction · 0.85
cloneMethod · 0.45
file_schemaMethod · 0.45