fn supports_filter_pushdown()

in src/common/schema.rs [166:181]


    fn supports_filter_pushdown(
        &self,
        filter: &Expr,
    ) -> datafusion_common::Result<TableProviderFilterPushDown> {
        let filters = split_conjunction(filter);
        if filters.iter().all(|f| is_supported_push_down_expr(f)) {
            // Push down filters to the tablescan operation if all are supported
            Ok(TableProviderFilterPushDown::Exact)
        } else if filters.iter().any(|f| is_supported_push_down_expr(f)) {
            // Partially apply the filter in the TableScan but retain
            // the Filter operator in the plan as well
            Ok(TableProviderFilterPushDown::Inexact)
        } else {
            Ok(TableProviderFilterPushDown::Unsupported)
        }
    }