build_row_filter

Function build_row_filter 

Source
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 RowFilter
  • Ok(None) if the expression cannot be used as an RowFilter
  • Err(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.