diff --git a/datafusion/core/src/datasource/physical_plan/file_scan_config.rs b/datafusion/core/src/datasource/physical_plan/file_scan_config.rs
index 27f388778be16..5b279d19bba58 100644
--- a/datafusion/core/src/datasource/physical_plan/file_scan_config.rs
+++ b/datafusion/core/src/datasource/physical_plan/file_scan_config.rs
@@ -288,7 +288,7 @@ impl FileScanConfig {
         )
     }
 
-    pub(crate) fn file_column_projection_indices(&self) -> Option<Vec<usize>> {
+    pub fn file_column_projection_indices(&self) -> Option<Vec<usize>> {
         self.projection.as_ref().map(|p| {
             p.iter()
                 .filter(|col_idx| **col_idx < self.file_schema.fields().len())
diff --git a/datafusion/core/src/datasource/physical_plan/parquet/mod.rs b/datafusion/core/src/datasource/physical_plan/parquet/mod.rs
index 54d4d7262a8e6..f26d54761c786 100644
--- a/datafusion/core/src/datasource/physical_plan/parquet/mod.rs
+++ b/datafusion/core/src/datasource/physical_plan/parquet/mod.rs
@@ -48,7 +48,7 @@ use log::debug;
 mod access_plan;
 mod metrics;
 mod opener;
-mod page_filter;
+pub mod page_filter;
 mod reader;
 mod row_filter;
 mod row_group_filter;
@@ -59,7 +59,7 @@ use crate::datasource::schema_adapter::{
 };
 pub use access_plan::{ParquetAccessPlan, RowGroupAccess};
 pub use metrics::ParquetFileMetrics;
-use opener::ParquetOpener;
+pub use opener::ParquetOpener;
 pub use reader::{DefaultParquetFileReaderFactory, ParquetFileReaderFactory};
 pub use writer::plan_to_parquet;
 
diff --git a/datafusion/core/src/datasource/physical_plan/parquet/opener.rs b/datafusion/core/src/datasource/physical_plan/parquet/opener.rs
index 3766be9f7ec28..4e207ef9183aa 100644
--- a/datafusion/core/src/datasource/physical_plan/parquet/opener.rs
+++ b/datafusion/core/src/datasource/physical_plan/parquet/opener.rs
@@ -40,7 +40,7 @@ use parquet::arrow::{ParquetRecordBatchStreamBuilder, ProjectionMask};
 use std::sync::Arc;
 
 /// Implements [`FileOpener`] for a parquet file
-pub(super) struct ParquetOpener {
+pub struct ParquetOpener {
     pub partition_index: usize,
     pub projection: Arc<[usize]>,
     pub batch_size: usize,
diff --git a/datafusion/core/src/datasource/schema_adapter.rs b/datafusion/core/src/datasource/schema_adapter.rs
index a293227237d11..f887d1a906fbf 100644
--- a/datafusion/core/src/datasource/schema_adapter.rs
+++ b/datafusion/core/src/datasource/schema_adapter.rs
@@ -173,9 +173,9 @@ impl SchemaAdapter for DefaultSchemaAdapter {
 #[derive(Debug)]
 pub struct SchemaMapping {
     /// The schema of the table. This is the expected schema after conversion and it should match the schema of the query result.
-    table_schema: SchemaRef,
+    pub table_schema: SchemaRef,
     /// Mapping from field index in `table_schema` to index in projected file_schema
-    field_mappings: Vec<Option<usize>>,
+    pub field_mappings: Vec<Option<usize>>,
 }
 
 impl SchemaMapper for SchemaMapping {