pub enum Expr {
Show 13 variants
Star,
Named(String),
Aliased {
name: String,
alias: String,
},
Aggregate {
col: String,
func: AggregateFunc,
distinct: bool,
filter: Option<Vec<Condition>>,
alias: Option<String>,
},
Cast {
expr: Box<Expr>,
target_type: String,
alias: Option<String>,
},
Def {
name: String,
data_type: String,
constraints: Vec<Constraint>,
},
Mod {
kind: ModKind,
col: Box<Expr>,
},
Window {
name: String,
func: String,
params: Vec<Value>,
partition: Vec<String>,
order: Vec<Cage>,
frame: Option<WindowFrame>,
},
Case {
when_clauses: Vec<(Condition, Box<Expr>)>,
else_value: Option<Box<Expr>>,
alias: Option<String>,
},
JsonAccess {
column: String,
path_segments: Vec<(String, bool)>,
alias: Option<String>,
},
FunctionCall {
name: String,
args: Vec<Expr>,
alias: Option<String>,
},
SpecialFunction {
name: String,
args: Vec<(Option<String>, Box<Expr>)>,
alias: Option<String>,
},
Binary {
left: Box<Expr>,
op: BinaryOp,
right: Box<Expr>,
alias: Option<String>,
},
}Expand description
A general expression node (column, value, function, etc.).
Formerly Column.
Variants§
Star
All columns (*)
Named(String)
A named column
Aliased
An aliased expression (expr AS alias)
Aggregate
An aggregate function (COUNT(col)) with optional FILTER and DISTINCT
Fields
§
func: AggregateFuncCast
Type cast expression (expr::type)
Def
Column Definition (for Make keys)
Mod
Column Modification (for Mod keys)
Window
Window Function Definition
Fields
§
frame: Option<WindowFrame>Case
CASE WHEN expression
Fields
JsonAccess
JSON accessor (data->>‘key’ or data->‘key’ or chained data->‘a’->0->>‘b’)
Fields
FunctionCall
Function call expression (COALESCE, NULLIF, etc.)
Fields
SpecialFunction
Special SQL function with keyword arguments (SUBSTRING, EXTRACT, TRIM, etc.) e.g., SUBSTRING(expr FROM pos [FOR len]), EXTRACT(YEAR FROM date)
Fields
Binary
Binary expression (left op right)
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Expr
impl<'de> Deserialize<'de> for Expr
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<AggregateBuilder> for Expr
impl From<AggregateBuilder> for Expr
Source§fn from(builder: AggregateBuilder) -> Self
fn from(builder: AggregateBuilder) -> Self
Converts to this type from the input type.
Source§impl From<BinaryBuilder> for Expr
impl From<BinaryBuilder> for Expr
Source§fn from(builder: BinaryBuilder) -> Self
fn from(builder: BinaryBuilder) -> Self
Converts to this type from the input type.
Source§impl From<CaseBuilder> for Expr
impl From<CaseBuilder> for Expr
Source§fn from(builder: CaseBuilder) -> Self
fn from(builder: CaseBuilder) -> Self
Converts to this type from the input type.
Source§impl From<CastBuilder> for Expr
impl From<CastBuilder> for Expr
Source§fn from(builder: CastBuilder) -> Self
fn from(builder: CastBuilder) -> Self
Converts to this type from the input type.
Source§impl From<FunctionBuilder> for Expr
impl From<FunctionBuilder> for Expr
Source§fn from(builder: FunctionBuilder) -> Self
fn from(builder: FunctionBuilder) -> Self
Converts to this type from the input type.
impl StructuralPartialEq for Expr
Auto Trait Implementations§
impl Freeze for Expr
impl RefUnwindSafe for Expr
impl Send for Expr
impl Sync for Expr
impl Unpin for Expr
impl UnwindSafe for Expr
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