(
&self,
op: BinaryOperator,
left: Expr,
right: Expr,
schema: &DFSchema,
)
| 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, |
no test coverage detected