Enum sql_parse::Expression 
source · 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: BinaryOperatorThe 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: UnaryOperatorThe 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