nodedb_sql/resolver/expr/
binary_ops.rs1use sqlparser::ast::{self, UnaryOperator};
4
5use crate::error::{Result, SqlError};
6use crate::types::*;
7
8pub(super) fn convert_binary_op(op: &ast::BinaryOperator) -> Result<BinaryOp> {
9 match op {
10 ast::BinaryOperator::Plus => Ok(BinaryOp::Add),
11 ast::BinaryOperator::Minus => Ok(BinaryOp::Sub),
12 ast::BinaryOperator::Multiply => Ok(BinaryOp::Mul),
13 ast::BinaryOperator::Divide => Ok(BinaryOp::Div),
14 ast::BinaryOperator::Modulo => Ok(BinaryOp::Mod),
15 ast::BinaryOperator::Eq => Ok(BinaryOp::Eq),
16 ast::BinaryOperator::NotEq => Ok(BinaryOp::Ne),
17 ast::BinaryOperator::Gt => Ok(BinaryOp::Gt),
18 ast::BinaryOperator::GtEq => Ok(BinaryOp::Ge),
19 ast::BinaryOperator::Lt => Ok(BinaryOp::Lt),
20 ast::BinaryOperator::LtEq => Ok(BinaryOp::Le),
21 ast::BinaryOperator::And => Ok(BinaryOp::And),
22 ast::BinaryOperator::Or => Ok(BinaryOp::Or),
23 ast::BinaryOperator::StringConcat => Ok(BinaryOp::Concat),
24 _ => Err(SqlError::Unsupported {
25 detail: format!("binary operator: {op}"),
26 }),
27 }
28}
29
30pub(super) fn convert_unary_op(op: &UnaryOperator) -> Result<UnaryOp> {
31 match op {
32 UnaryOperator::Minus => Ok(UnaryOp::Neg),
33 UnaryOperator::Not => Ok(UnaryOp::Not),
34 _ => Err(SqlError::Unsupported {
35 detail: format!("unary operator: {op}"),
36 }),
37 }
38}