pub fn build_row_filter(
expr: &Arc<dyn PhysicalExpr>,
physical_file_schema: &Arc<Schema>,
predicate_file_schema: &Arc<Schema>,
metadata: &ParquetMetaData,
reorder_predicates: bool,
file_metrics: &ParquetFileMetrics,
schema_adapter_factory: &Arc<dyn SchemaAdapterFactory>,
) -> Result<Option<RowFilter>, DataFusionError>Expand description
Build a [RowFilter] from the given predicate Expr if possible
ยงreturns
Ok(Some(row_filter))if the expression can be used as RowFilterOk(None)if the expression cannot be used as an RowFilterErr(e)if an error occurs while building the filter
Note that the returned RowFilter may not contains all conjuncts in the
original expression. This is because some conjuncts may not be able to be
evaluated as an ArrowPredicate and will be ignored.
For example, if the expression is a = 1 AND b = 2 AND c = 3 and b = 2
can not be evaluated for some reason, the returned RowFilter will contain
a = 1 and c = 3.