From 7d2ac9e525c92876d6c27c2b2883424b8b74d7ca Mon Sep 17 00:00:00 2001 From: Peter Nguyen Date: Sun, 9 Nov 2025 15:04:02 -0800 Subject: [PATCH] Use file_metadata_cache in geoparquet --- rust/sedona-geoparquet/src/format.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/rust/sedona-geoparquet/src/format.rs b/rust/sedona-geoparquet/src/format.rs index 75eafb9d7..455b4aa5b 100644 --- a/rust/sedona-geoparquet/src/format.rs +++ b/rust/sedona-geoparquet/src/format.rs @@ -183,11 +183,16 @@ impl FileFormat for GeoParquetFormat { // copy more ParquetFormat code. It may be that caching at the object // store level is the way to go here. let metadatas: Vec<_> = futures::stream::iter(objects) - .map(|object| async move { - DFParquetMetadata::new(store.as_ref(), object) - .with_metadata_size_hint(self.inner().metadata_size_hint()) - .fetch_metadata() - .await + .map(|object| { + let file_metadata_cache = + state.runtime_env().cache_manager.get_file_metadata_cache(); + async move { + DFParquetMetadata::new(store.as_ref(), object) + .with_metadata_size_hint(self.inner().metadata_size_hint()) + .with_file_metadata_cache(Some(file_metadata_cache)) + .fetch_metadata() + .await + } }) .boxed() // Workaround https://github.com/rust-lang/rust/issues/64552 .buffered(state.config_options().execution.meta_fetch_concurrency)