Create a table read for consuming splits (e.g. from a scan plan).
(&self)
| 231 | |
| 232 | /// Create a table read for consuming splits (e.g. from a scan plan). |
| 233 | pub fn new_read(&self) -> Result<TableRead<'a>> { |
| 234 | let read_type = match &self.projected_fields { |
| 235 | None => self.table.schema.fields().to_vec(), |
| 236 | Some(projected) => self.resolve_projected_fields(projected)?, |
| 237 | }; |
| 238 | |
| 239 | Ok(TableRead::new( |
| 240 | self.table, |
| 241 | read_type, |
| 242 | reader_pruning_predicates(self.filter.data_predicates.clone()), |
| 243 | )) |
| 244 | } |
| 245 | |
| 246 | fn resolve_projected_fields(&self, projected_fields: &[String]) -> Result<Vec<DataField>> { |
| 247 | if projected_fields.is_empty() { |