pub enum Expr {
Show 14 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>,
},
Literal(Value),
}Variants§
Star
All columns (*)
Named(String)
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
Mod
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)
Literal(Value)
Literal value (string, number) for use in expressions e.g., ‘62’, 0, ‘active’
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 ExprExt for Expr
impl ExprExt for Expr
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<ConcatBuilder> for Expr
impl From<ConcatBuilder> for Expr
Source§fn from(builder: ConcatBuilder) -> Self
fn from(builder: ConcatBuilder) -> 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.
Source§impl From<JsonBuilder> for Expr
impl From<JsonBuilder> for Expr
Source§fn from(builder: JsonBuilder) -> Self
fn from(builder: JsonBuilder) -> 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