Expr::Named | Expr::Named("email".into()) | email | โ |
Expr::Aliased | Expr::Aliased(name, alias) | users.email AS user_email | โ |
Expr::Aggregate | Expr::Aggregate(func, col, filter) | COUNT(*) FILTER (WHERE ...) AS cnt | โ |
Expr::Window | Expr::Window(func, partition, order, frame) | SUM(amount) OVER (PARTITION BY dept ORDER BY date) | โ |
Expr::Case | Expr::Case(when_clauses, else_value) | CASE WHEN ... THEN 'A' ELSE 'B' END | โ |
Expr::ArrayConstructor | Expr::ArrayConstructor(elements, alias) | ARRAY[col1, col2] AS arr | โ |
Expr::RowConstructor | Expr::RowConstructor(elements, alias) | ROW(id, name) AS person | โ |
Expr::Subscript | Expr::Subscript(expr, index, alias) | tags[1] AS first_tag | โ |
Expr::Collate | Expr::Collate(expr, collation) | name COLLATE "C" | โ |
Expr::FieldAccess | Expr::FieldAccess(expr, field, alias) | (address).city AS city | โ |
Expr::Cast | Expr::Cast(expr, target_type) | id::TEXT | โ |
Expr::JsonAccess | Expr::JsonAccess(column, path_segments) | data->'user'->>'name' AS name | โ |