pub enum Expression<'a> {
Show 22 variants
Binary {
op: BinaryOperator,
op_span: Span,
lhs: Box<Expression<'a>>,
rhs: Box<Expression<'a>>,
},
Unary {
op: UnaryOperator,
op_span: Span,
operand: Box<Expression<'a>>,
},
Subquery(Box<Statement<'a>>),
Null(Span),
Bool(bool, Span),
String(SString<'a>),
Integer((u64, Span)),
ListHack((usize, Span)),
Float((f64, Span)),
Function(Function<'a>, Vec<Expression<'a>>, Span),
WindowFunction {
function: Function<'a>,
args: Vec<Expression<'a>>,
function_span: Span,
over_span: Span,
window_spec: WindowSpec<'a>,
},
Identifier(Vec<IdentifierPart<'a>>),
Arg((usize, Span)),
Exists(Box<Statement<'a>>),
In {
lhs: Box<Expression<'a>>,
rhs: Vec<Expression<'a>>,
in_span: Span,
not_in: bool,
},
Is(Box<Expression<'a>>, Is, Span),
Invalid(Span),
Case {
case_span: Span,
value: Option<Box<Expression<'a>>>,
whens: Vec<When<'a>>,
else_: Option<(Span, Box<Expression<'a>>)>,
end_span: Span,
},
Cast {
cast_span: Span,
expr: Box<Expression<'a>>,
as_span: Span,
type_: DataType<'a>,
},
Count {
count_span: Span,
distinct_span: Option<Span>,
expr: Box<Expression<'a>>,
},
GroupConcat {
group_concat_span: Span,
distinct_span: Option<Span>,
expr: Box<Expression<'a>>,
},
Variable {
global: Option<Span>,
session: Option<Span>,
dot: Option<Span>,
variable: Variable<'a>,
variable_span: Span,
},
}
Expand description
Representation of an expression
Variants§
Binary
Expression with binary operator
Fields
op: BinaryOperator
The operator to apply
lhs: Box<Expression<'a>>
Expression on the left hand side
rhs: Box<Expression<'a>>
Expression on the right hand side
Unary
Expression with a unary (prefix) operator
Fields
op: UnaryOperator
The operator to apply
operand: Box<Expression<'a>>
The expression on the right hand side
Subquery(Box<Statement<'a>>)
Subquery expression
Null(Span)
Literal NULL expression
Bool(bool, Span)
Literal bool expression “TRUE” or “FALSE”
String(SString<'a>)
Literal string expression, the SString contains the represented string with escaping removed
Integer((u64, Span))
Literal integer expression
ListHack((usize, Span))
Literal LIST
Float((f64, Span))
Literal floating point expression
Function(Function<'a>, Vec<Expression<'a>>, Span)
Function call expression,
WindowFunction
A window function call expression
Identifier(Vec<IdentifierPart<'a>>)
Identifier pointing to column
Arg((usize, Span))
Input argument to query, the first argument is the occurrence number of the argumnet
Exists(Box<Statement<'a>>)
Exists expression
In
In expression
Fields
lhs: Box<Expression<'a>>
Left hand side expression
rhs: Vec<Expression<'a>>
Right hand side expression
Is(Box<Expression<'a>>, Is, Span)
Is expression
Invalid(Span)
Invalid expression, returned on recovery of a parse error
Case
Case expression
Fields
value: Option<Box<Expression<'a>>>
Optional value to switch over
else_: Option<(Span, Box<Expression<'a>>)>
Span of “ELSE” and else value if specified
Cast
Cast expression
Fields
expr: Box<Expression<'a>>
Value to cast
Count
Count expression
Fields
expr: Box<Expression<'a>>
Expression to count
GroupConcat
Group contat expression
Fields
expr: Box<Expression<'a>>
Expression to count
Variable
Variable expression
Trait Implementations§
Source§impl<'a> Clone for Expression<'a>
impl<'a> Clone for Expression<'a>
Source§fn clone(&self) -> Expression<'a>
fn clone(&self) -> Expression<'a>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more