MCPcopy Create free account
hub / github.com/apache/datafusion / build_logical_expr

Method build_logical_expr

datafusion/sql/src/expr/mod.rs:124–150  ·  view source on GitHub ↗
(
        &self,
        op: BinaryOperator,
        left: Expr,
        right: Expr,
        schema: &DFSchema,
    )

Source from the content-addressed store, hash-verified

122 }
123
124 fn build_logical_expr(
125 &self,
126 op: BinaryOperator,
127 left: Expr,
128 right: Expr,
129 schema: &DFSchema,
130 ) -> Result<Expr> {
131 // try extension planers
132 let mut binary_expr = RawBinaryExpr { op, left, right };
133 for planner in self.context_provider.get_expr_planners() {
134 match planner.plan_binary_op(binary_expr, schema)? {
135 PlannerResult::Planned(expr) => {
136 return Ok(expr);
137 }
138 PlannerResult::Original(expr) => {
139 binary_expr = expr;
140 }
141 }
142 }
143
144 let RawBinaryExpr { op, left, right } = binary_expr;
145 Ok(Expr::BinaryExpr(BinaryExpr::new(
146 Box::new(left),
147 self.parse_sql_binary_op(&op)?,
148 Box::new(right),
149 )))
150 }
151
152 pub fn sql_to_expr_with_alias(
153 &self,

Callers 2

parse_json_accessMethod · 0.80

Calls 5

newFunction · 0.85
parse_sql_binary_opMethod · 0.80
BinaryExprClass · 0.50
get_expr_plannersMethod · 0.45
plan_binary_opMethod · 0.45

Tested by

no test coverage detected