(
&self,
object_store: Arc<dyn ObjectStore>,
base_config: &FileScanConfig,
_partition: usize,
)
| 169 | |
| 170 | impl FileSource for JsonSource { |
| 171 | fn create_file_opener( |
| 172 | &self, |
| 173 | object_store: Arc<dyn ObjectStore>, |
| 174 | base_config: &FileScanConfig, |
| 175 | _partition: usize, |
| 176 | ) -> Result<Arc<dyn FileOpener>> { |
| 177 | // Get the projected file schema for JsonOpener |
| 178 | let file_schema = self.table_schema.file_schema(); |
| 179 | let projected_schema = |
| 180 | Arc::new(file_schema.project(&self.projection.file_indices)?); |
| 181 | |
| 182 | let mut opener = Arc::new(JsonOpener { |
| 183 | batch_size: self |
| 184 | .batch_size |
| 185 | .expect("Batch size must set before creating opener"), |
| 186 | projected_schema, |
| 187 | file_compression_type: base_config.file_compression_type, |
| 188 | object_store, |
| 189 | newline_delimited: self.newline_delimited, |
| 190 | }) as Arc<dyn FileOpener>; |
| 191 | |
| 192 | // Wrap with ProjectionOpener |
| 193 | opener = ProjectionOpener::try_new( |
| 194 | self.projection.clone(), |
| 195 | Arc::clone(&opener), |
| 196 | self.table_schema.file_schema(), |
| 197 | )?; |
| 198 | |
| 199 | Ok(opener) |
| 200 | } |
| 201 | |
| 202 | fn table_schema(&self) -> &datafusion_datasource::TableSchema { |
| 203 | &self.table_schema |
nothing calls this directly
no test coverage detected