Create an [`ExecutionPlan`] for scanning the table using structured arguments. This method uses [`ScanArgs`] to pass scan parameters in a structured way and returns a [`ScanResult`] containing the execution plan. Table providers can override this method to take advantage of additional parameters like the upcoming `preferred_ordering` that may not be available through other scan methods. # Argum
(
&self,
state: &dyn Session,
args: ScanArgs<'a>,
)
| 207 | /// |
| 208 | /// See [`Self::scan`] for detailed documentation about projection, filters, and limits. |
| 209 | async fn scan_with_args<'a>( |
| 210 | &self, |
| 211 | state: &dyn Session, |
| 212 | args: ScanArgs<'a>, |
| 213 | ) -> Result<ScanResult> { |
| 214 | let filters = args.filters().unwrap_or(&[]); |
| 215 | let projection = args.projection().map(|p| p.to_vec()); |
| 216 | let limit = args.limit(); |
| 217 | let plan = self |
| 218 | .scan(state, projection.as_ref(), filters, limit) |
| 219 | .await?; |
| 220 | Ok(plan.into()) |
| 221 | } |
| 222 | |
| 223 | /// Specify if DataFusion should provide filter expressions to the |
| 224 | /// TableProvider to apply *during* the scan. |
nothing calls this directly
no test coverage detected