alamb commented on code in PR #7680:
URL: https://github.com/apache/arrow-datafusion/pull/7680#discussion_r1340522395
##########
docs/source/library-user-guide/custom-table-providers.md:
##########
@@ -121,6 +121,22 @@ impl TableProvider for CustomDataSource {
With this, and the implementation of the omitted methods, we can now use the
`CustomDataSource` as a `TableProvider` in DataFusion.
+##### Additional `TableProvider` Methods
+
+`scan` has no default implementation, so it needed to be written. There are
other methods on the `TableProvider` that have default implementations, but can
be overridden if needed to provide additional functionality.
+
+###### `supports_filters_pushdown`
+
+The `supports_filters_pushdown` method can be overridden to indicate which
filter expressions support being pushed down to the data source and within that
the specificity of the pushdown.
+
+This returns a `Vec` of `TableProviderFilterPushDown` enums where each enum
represents a filter that can be pushed down. The `TableProviderFilterPushDown`
enum has three variants:
+
+- `TableProviderFilterPushDown::Unsupported` - the filter cannot be pushed down
+- `TableProviderFilterPushDown::Exact` - the filter can be pushed down and the
data source can guarantee that the filter will be applied exactly as specified
+- `TableProviderFilterPushDown::Inexact` - the filter can be pushed down, but
the data source cannot guarantee that the filter will be applied exactly as
specified
Review Comment:
```suggestion
- `TableProviderFilterPushDown::Exact` - the filter can be pushed down and
the data source can guarantee that the filter will be applied completely to all
rows. This is the highest performance option.
- `TableProviderFilterPushDown::Inexact` - the filter can be pushed down,
but the data source cannot guarantee that the filter will be applied to all
rows. DataFusion will apply `Inexact` filters again after the scan to ensure
correctness.
```
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]