Module datafusion_optimizer::utils

source ·
Expand description

Utility functions leveraged by the query optimizer rules

Structs§

  • Handles ensuring the name of rewritten expressions is not changed.
  • If the name of an expression is remembered, it will be preserved when rewriting the expression

Functions§

  • add_filterDeprecated
    returns a new LogicalPlan that wraps plan in a LogicalPlan::Filter with its predicate be all predicates ANDed.
  • conjunctionDeprecated
    Combines an array of filter expressions into a single filter expression consisting of the input filter expressions joined with logical AND.
  • disjunctionDeprecated
    Combines an array of filter expressions into a single filter expression consisting of the input filter expressions joined with logical OR.
  • find_join_exprsDeprecated
    Looks for correlating expressions: for example, a binary expression with one field from the subquery, and one not in the subquery (closed upon from outer scope)
  • Log the plan in debug/tracing mode after some part of the optimizer runs
  • merge_schemaDeprecated
    merge inputs schema into a single schema.
  • only_or_errDeprecated
    Returns the first (and only) element in a slice, or an error
  • Convenience rule for writing optimizers: recursively invoke optimize on plan’s children and then return a node of the same type. Useful for optimizer rules which want to leave the type of plan unchanged but still apply to the children. This also handles the case when the plan is a LogicalPlan::Explain.
  • split_binaryDeprecated
    Splits an binary operator tree Expr such as A <OP> B <OP> C => [A, B, C]
  • Splits an owned binary operator tree Expr such as A <OP> B <OP> C => [A, B, C]
  • Splits a conjunctive Expr such as A AND B AND C => [A, B, C]
  • Splits an owned conjunctive Expr such as A AND B AND C => [A, B, C]