Structs

Functions

  • Recursively extract referenced Columns within a PhysicalExpr.
  • This function returns all Arc<dyn PhysicalExpr>s inside the given PhysicalSortExpr sequence.
  • Compare the two expr lists are equal no matter the order. For example two InListExpr can be considered to be equals no matter the order:
  • Strictly compare the two expr lists are equal in the given order.
  • Find the finer requirement among req1 and req2 If None, this means that req1 and req2 are not compatible e.g there is no requirement that satisfies both
  • This function finds the indices of targets within items, taking into account equivalences according to equal_properties.
  • This function maps back requirement after ProjectionExec to the Executor for its input.
  • Normalize the output expressions based on Columns Map.
  • Transform sort_exprs vector, to standardized version using eq_properties and ordering_eq_properties Assume eq_properties states that Column a and Column b are aliases. Also assume ordering_eq_properties states that ordering vec![d ASC] and vec![a ASC, c ASC] are ordering equivalent (in the sense that both describe the ordering of the table). If the sort_exprs input to this function were vec![b ASC, c ASC], This function converts sort_exprs vec![b ASC, c ASC] to first vec![a ASC, c ASC] after considering eq_properties Then converts vec![a ASC, c ASC] to vec![d ASC] after considering ordering_eq_properties. Standardized version vec![d ASC] is used in subsequent operations.
  • Transform sort_reqs vector, to standardized version using eq_properties and ordering_eq_properties Assume eq_properties states that Column a and Column b are aliases. Also assume ordering_eq_properties states that ordering vec![d ASC] and vec![a ASC, c ASC] are ordering equivalent (in the sense that both describe the ordering of the table). If the sort_reqs input to this function were vec![b Some(ASC), c None], This function converts sort_exprs vec![b Some(ASC), c None] to first vec![a Some(ASC), c None] after considering eq_properties Then converts vec![a Some(ASC), c None] to vec![d Some(ASC)] after considering ordering_eq_properties. Standardized version vec![d Some(ASC)] is used in subsequent operations.
  • Checks whether given ordering requirements are satisfied by provided PhysicalSortExprs.
  • Checks whether the required PhysicalSortExprs are satisfied by the provided PhysicalSortExprs.
  • Checks whether the given PhysicalSortRequirements are satisfied by the provided PhysicalSortExprs.
  • Checks whether the given PhysicalSortRequirements are satisfied by the provided PhysicalSortExprs.
  • Re-assign column indices referenced in predicate according to given schema. This may be helpful when dealing with projections.
  • Checks whether the given PhysicalSortRequirements are equal or more specific than the provided PhysicalSortRequirements.
  • Reverses the ORDER BY expression, which is useful during equivalent window expression construction. For instance, ‘ORDER BY a ASC, NULLS LAST’ turns into ‘ORDER BY a DESC, NULLS FIRST’.
  • Assume the predicate is in the form of CNF, split the predicate to a Vec of PhysicalExprs.