alamb commented on code in PR #17336:
URL: https://github.com/apache/datafusion/pull/17336#discussion_r2345346409


##########
datafusion/catalog/src/table.rs:
##########
@@ -171,6 +171,38 @@ pub trait TableProvider: Debug + Sync + Send {
         limit: Option<usize>,
     ) -> Result<Arc<dyn ExecutionPlan>>;
 
+    /// 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. This 
approach
+    /// allows for extensible parameter passing and result handling.

Review Comment:
   x
   ```suggestion
       /// and returns a [`ScanResult`] containing the execution plan. 
   ```



##########
datafusion/catalog/src/table.rs:
##########
@@ -171,6 +171,38 @@ pub trait TableProvider: Debug + Sync + Send {
         limit: Option<usize>,
     ) -> Result<Arc<dyn ExecutionPlan>>;
 
+    /// 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. This 
approach
+    /// allows for extensible parameter passing and result handling.
+    ///
+    /// Table providers can override this method to take advantage of 
additional
+    /// parameters like `preferred_ordering` that may not be available through

Review Comment:
   ```suggestion
       /// parameters like the upcoming `preferred_ordering` that may not be 
available through
   ```



##########
datafusion/core/src/datasource/listing/table.rs:
##########
@@ -1169,6 +1169,24 @@ impl TableProvider for ListingTable {
         filters: &[Expr],
         limit: Option<usize>,
     ) -> Result<Arc<dyn ExecutionPlan>> {
+        let options = ScanArgs::default()
+            .with_projection(projection.map(|p| p.as_slice()))
+            .with_filters(Some(filters))
+            .with_limit(limit);
+        Ok(Arc::clone(
+            self.scan_with_args(state, options).await?.plan(),
+        ))

Review Comment:
   ```suggestion
           Ok(self.scan_with_args(state, options).await?.into_inner())
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org
For additional commands, e-mail: github-h...@datafusion.apache.org

Reply via email to