Skip to main content

Expression

Trait Expression 

Source
pub trait Expression: Sized {
    type Output: ClickHouseType;

    // Required method
    fn render(&self) -> String;

    // Provided method
    fn is_aggregate(&self) -> bool { ... }
}
Expand description

Base trait for all expressions

Required Associated Types§

Source

type Output: ClickHouseType

The output type of this expression

Required Methods§

Source

fn render(&self) -> String

Render the expression to SQL

Provided Methods§

Source

fn is_aggregate(&self) -> bool

Whether this is an aggregate expression

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl Expression for Star

Source§

impl Expression for NowExpr

Source§

impl Expression for TodayExpr

Source§

impl<A: Expression<Output = String>, B: Expression<Output = String>> Expression for ConcatExpr<A, B>

Source§

impl<A: Expression, V: Expression> Expression for ArgMaxExpr<A, V>

Source§

impl<A: Expression, V: Expression> Expression for ArgMinExpr<A, V>

Source§

impl<B: Expression, X: Expression> Expression for PowExpr<B, X>
where B::Output: Numeric, X::Output: Numeric,

Source§

impl<C, T, E> Expression for IfExpr<C, T, E>
where C: Expression<Output = bool>, T: Expression, E: Expression<Output = T::Output>,

Source§

impl<C: TypedColumn> Expression for ColumnExpr<C>

Source§

impl<C: TypedColumn> Expression for C

Source§

impl<E: Expression> Expression for QuantileExpr<E>
where E::Output: Numeric,

Source§

impl<E: Expression> Expression for ToDateExpr<E>

Source§

impl<E: Expression> Expression for ToDateTimeExpr<E>

Source§

impl<E: Expression> Expression for ToStartOfDayExpr<E>

Source§

impl<E: Expression> Expression for ToStartOfHourExpr<E>

Source§

impl<E: Expression> Expression for ToYYYYMMExpr<E>

Source§

impl<E: Expression> Expression for CityHash64Expr<E>

Source§

impl<E: Expression> Expression for XxHash64Expr<E>

Source§

impl<E: Expression> Expression for AbsExpr<E>
where E::Output: Numeric,

Source§

impl<E: Expression> Expression for CeilExpr<E>
where E::Output: Numeric,

Source§

impl<E: Expression> Expression for FloorExpr<E>
where E::Output: Numeric,

Source§

impl<E: Expression> Expression for RoundExpr<E>
where E::Output: Numeric,

Source§

impl<E: Expression> Expression for IsNotNullExpr<E>

Source§

impl<E: Expression> Expression for IsNullExpr<E>

Source§

impl<E: Expression<Output = bool>> Expression for NotExpr<E>

Source§

impl<E: Expression<Output = String>> Expression for LengthExpr<E>

Source§

impl<E: Expression<Output = String>> Expression for LowerExpr<E>

Source§

impl<E: Expression<Output = String>> Expression for SubstringExpr<E>

Source§

impl<E: Expression<Output = String>> Expression for UpperExpr<E>

Source§

impl<E: Expression<Output = String>> Expression for ILikeExpr<E>

Source§

impl<E: Expression<Output = String>> Expression for LikeExpr<E>

Source§

impl<E: Expression, C: Expression<Output = bool>> Expression for GroupArrayIfExpr<E, C>

Source§

impl<F: AggregateFn, E: Expression> Expression for AggregateExpr<F, E>

Source§

impl<L, R, Op> Expression for ArithExpr<L, R, Op>

Source§

impl<L: Expression<Output = bool>, R: Expression<Output = bool>> Expression for AndExpr<L, R>

Source§

impl<L: Expression<Output = bool>, R: Expression<Output = bool>> Expression for OrExpr<L, R>

Source§

impl<L: Expression, R: Expression, Op: ComparisonOp> Expression for CompareExpr<L, R, Op>

Source§

impl<T: ClickHouseType> Expression for Literal<T>

Source§

impl<const N: usize, E: Expression> Expression for TopKExpr<N, E>