Enum gluesql::core::ast_builder::ExprNode
source · pub enum ExprNode<'a> {
Show 20 variants
Expr(Cow<'a, Expr>),
SqlExpr(Cow<'a, str>),
Identifier(Cow<'a, str>),
Numeric(NumericNode<'a>),
QuotedString(Cow<'a, str>),
TypedString {
data_type: DataType,
value: Cow<'a, str>,
},
Between {
expr: Box<ExprNode<'a>>,
negated: bool,
low: Box<ExprNode<'a>>,
high: Box<ExprNode<'a>>,
},
Like {
expr: Box<ExprNode<'a>>,
negated: bool,
pattern: Box<ExprNode<'a>>,
},
ILike {
expr: Box<ExprNode<'a>>,
negated: bool,
pattern: Box<ExprNode<'a>>,
},
BinaryOp {
left: Box<ExprNode<'a>>,
op: BinaryOperator,
right: Box<ExprNode<'a>>,
},
UnaryOp {
op: UnaryOperator,
expr: Box<ExprNode<'a>>,
},
IsNull(Box<ExprNode<'a>>),
IsNotNull(Box<ExprNode<'a>>),
InList {
expr: Box<ExprNode<'a>>,
list: Box<InListNode<'a>>,
negated: bool,
},
Nested(Box<ExprNode<'a>>),
Function(Box<FunctionNode<'a>>),
Aggregate(Box<AggregateNode<'a>>),
Exists {
subquery: Box<QueryNode<'a>>,
negated: bool,
},
Subquery(Box<QueryNode<'a>>),
Case {
operand: Option<Box<ExprNode<'a>>>,
when_then: Vec<(ExprNode<'a>, ExprNode<'a>)>,
else_result: Option<Box<ExprNode<'a>>>,
},
}
Variants§
Expr(Cow<'a, Expr>)
SqlExpr(Cow<'a, str>)
Identifier(Cow<'a, str>)
Numeric(NumericNode<'a>)
QuotedString(Cow<'a, str>)
TypedString
Between
Like
ILike
BinaryOp
UnaryOp
IsNull(Box<ExprNode<'a>>)
IsNotNull(Box<ExprNode<'a>>)
InList
Nested(Box<ExprNode<'a>>)
Function(Box<FunctionNode<'a>>)
Aggregate(Box<AggregateNode<'a>>)
Exists
Subquery(Box<QueryNode<'a>>)
Case
Implementations§
source§impl<'a> ExprNode<'a>
impl<'a> ExprNode<'a>
pub fn add<T>(self, other: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn sub<T>(self, other: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn mul<T>(self, other: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn div<T>(self, other: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn modulo<T>(self, other: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn concat<T>(self, other: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn gt<T>(self, other: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn lt<T>(self, other: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn gte<T>(self, other: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn lte<T>(self, other: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn eq<T>(self, other: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn neq<T>(self, other: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn and<T>(self, other: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn or<T>(self, other: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn bitwise_and<T>(self, other: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn bitwise_shift_left<T>(self, other: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn bitwise_shift_right<T>(self, other: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
source§impl<'a> ExprNode<'a>
impl<'a> ExprNode<'a>
pub fn like<T>(self, pattern: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn ilike<T>(self, pattern: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn not_like<T>(self, pattern: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn not_ilike<T>(self, pattern: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
source§impl<'a> ExprNode<'a>
impl<'a> ExprNode<'a>
pub fn abs(self) -> ExprNode<'a>
pub fn upper(self) -> ExprNode<'a>
pub fn lower(self) -> ExprNode<'a>
pub fn initcap(self) -> ExprNode<'a>
pub fn ifnull<T>(self, another: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn ceil(self) -> ExprNode<'a>
pub fn rand(self) -> ExprNode<'a>
pub fn round(self) -> ExprNode<'a>
pub fn floor(self) -> ExprNode<'a>
pub fn asin(self) -> ExprNode<'a>
pub fn acos(self) -> ExprNode<'a>
pub fn atan(self) -> ExprNode<'a>
pub fn sin(self) -> ExprNode<'a>
pub fn cos(self) -> ExprNode<'a>
pub fn tan(self) -> ExprNode<'a>
pub fn left<T>(self, size: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn log<T>(self, base: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn log2(self) -> ExprNode<'a>
pub fn log10(self) -> ExprNode<'a>
pub fn ln(self) -> ExprNode<'a>
pub fn right<T>(self, size: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn reverse(self) -> ExprNode<'a>
pub fn sign(self) -> ExprNode<'a>
pub fn skip<T>(self, size: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn power<T>(self, pwr: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn sqrt(self) -> ExprNode<'a>
pub fn gcd<T>(self, right: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn lcm<T>(self, right: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn repeat<T>(self, num: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn replace<T, U>(self, old: T, new: U) -> ExprNode<'a>where T: Into<ExprNode<'a>>, U: Into<ExprNode<'a>>,
pub fn degrees(self) -> ExprNode<'a>
pub fn radians(self) -> ExprNode<'a>
pub fn lpad<T>(self, size: T, fill: Option<ExprNode<'a>>) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn rpad<T>(self, size: T, fill: Option<ExprNode<'a>>) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn take<T>(self, size: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn exp(self) -> ExprNode<'a>
pub fn substr<T>(self, start: T, count: Option<ExprNode<'a>>) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn rtrim(self, chars: Option<ExprNode<'a>>) -> ExprNode<'a>
pub fn ltrim(self, chars: Option<ExprNode<'a>>) -> ExprNode<'a>
pub fn format<T>(self, fmt: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn to_date<T>(self, format: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn to_timestamp<T>(self, format: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn to_time<T>(self, format: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn position<T>(self, format: T) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn find_idx<T>(self, sub: T, start: Option<ExprNode<'a>>) -> ExprNode<'a>where T: Into<ExprNode<'a>>,
pub fn cast<T>(self, data_type: T) -> ExprNode<'a>where T: Into<DataTypeNode>,
pub fn extract(self, field: DateTimeField) -> ExprNode<'a>
pub fn is_empty(self) -> ExprNode<'a>
pub fn last_day(self) -> ExprNode<'a>
pub fn entries(self) -> ExprNode<'a>
pub fn values(self) -> ExprNode<'a>
Trait Implementations§
source§impl<'a> From<ExprNode<'a>> for OrderByExprList<'a>
impl<'a> From<ExprNode<'a>> for OrderByExprList<'a>
source§fn from(expr_node: ExprNode<'a>) -> OrderByExprList<'a>
fn from(expr_node: ExprNode<'a>) -> OrderByExprList<'a>
Converts to this type from the input type.
source§impl<'a> From<ExprNode<'a>> for OrderByExprNode<'a>
impl<'a> From<ExprNode<'a>> for OrderByExprNode<'a>
source§fn from(expr_node: ExprNode<'a>) -> OrderByExprNode<'a>
fn from(expr_node: ExprNode<'a>) -> OrderByExprNode<'a>
Converts to this type from the input type.
source§impl<'a> From<ExprNode<'a>> for SelectItemList<'a>
impl<'a> From<ExprNode<'a>> for SelectItemList<'a>
source§fn from(expr_node: ExprNode<'a>) -> SelectItemList<'a>
fn from(expr_node: ExprNode<'a>) -> SelectItemList<'a>
Converts to this type from the input type.
source§impl<'a> From<ExprNode<'a>> for SelectItemNode<'a>
impl<'a> From<ExprNode<'a>> for SelectItemNode<'a>
source§fn from(expr_node: ExprNode<'a>) -> SelectItemNode<'a>
fn from(expr_node: ExprNode<'a>) -> SelectItemNode<'a>
Converts to this type from the input type.
Auto Trait Implementations§
impl<'a> RefUnwindSafe for ExprNode<'a>
impl<'a> Send for ExprNode<'a>
impl<'a> Sync for ExprNode<'a>
impl<'a> Unpin for ExprNode<'a>
impl<'a> UnwindSafe for ExprNode<'a>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more