pub trait SelectableExpression<QS: ?Sized>: AppearsOnTable<QS> { }
Expand description

Indicates that an expression can be selected from a source.

Columns will implement this for their table. Certain special types, like CountStar and Bound will implement this for all sources. Most compound expressions will implement this if each of their parts implement it.

Notably, columns will not implement this trait for the right side of a left join. To select a column or expression using a column from the right side of a left join, you must call .nullable() on it.

Implementations on Foreign Types§

source§

impl<'a, T, QS> SelectableExpression<QS> for &'a Twhere T: SelectableExpression<QS> + ?Sized, &'a T: AppearsOnTable<QS>,

source§

impl<T0, QS> SelectableExpression<QS> for (T0,)where T0: SelectableExpression<QS>, (T0,): AppearsOnTable<QS>,

source§

impl<T0, T1, T2, QS> SelectableExpression<QS> for (T0, T1, T2)where T0: SelectableExpression<QS>, T1: SelectableExpression<QS>, T2: SelectableExpression<QS>, (T0, T1, T2): AppearsOnTable<QS>,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, QS> SelectableExpression<QS> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)where T0: SelectableExpression<QS>, T1: SelectableExpression<QS>, T2: SelectableExpression<QS>, T3: SelectableExpression<QS>, T4: SelectableExpression<QS>, T5: SelectableExpression<QS>, T6: SelectableExpression<QS>, T7: SelectableExpression<QS>, T8: SelectableExpression<QS>, T9: SelectableExpression<QS>, T10: SelectableExpression<QS>, T11: SelectableExpression<QS>, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11): AppearsOnTable<QS>,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, QS> SelectableExpression<QS> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)where T0: SelectableExpression<QS>, T1: SelectableExpression<QS>, T2: SelectableExpression<QS>, T3: SelectableExpression<QS>, T4: SelectableExpression<QS>, T5: SelectableExpression<QS>, T6: SelectableExpression<QS>, T7: SelectableExpression<QS>, T8: SelectableExpression<QS>, T9: SelectableExpression<QS>, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9): AppearsOnTable<QS>,

source§

impl<T0, T1, T2, T3, T4, T5, T6, QS> SelectableExpression<QS> for (T0, T1, T2, T3, T4, T5, T6)where T0: SelectableExpression<QS>, T1: SelectableExpression<QS>, T2: SelectableExpression<QS>, T3: SelectableExpression<QS>, T4: SelectableExpression<QS>, T5: SelectableExpression<QS>, T6: SelectableExpression<QS>, (T0, T1, T2, T3, T4, T5, T6): AppearsOnTable<QS>,

source§

impl<T0, T1, T2, T3, T4, T5, QS> SelectableExpression<QS> for (T0, T1, T2, T3, T4, T5)where T0: SelectableExpression<QS>, T1: SelectableExpression<QS>, T2: SelectableExpression<QS>, T3: SelectableExpression<QS>, T4: SelectableExpression<QS>, T5: SelectableExpression<QS>, (T0, T1, T2, T3, T4, T5): AppearsOnTable<QS>,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, QS> SelectableExpression<QS> for (T0, T1, T2, T3, T4, T5, T6, T7)where T0: SelectableExpression<QS>, T1: SelectableExpression<QS>, T2: SelectableExpression<QS>, T3: SelectableExpression<QS>, T4: SelectableExpression<QS>, T5: SelectableExpression<QS>, T6: SelectableExpression<QS>, T7: SelectableExpression<QS>, (T0, T1, T2, T3, T4, T5, T6, T7): AppearsOnTable<QS>,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, QS> SelectableExpression<QS> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)where T0: SelectableExpression<QS>, T1: SelectableExpression<QS>, T2: SelectableExpression<QS>, T3: SelectableExpression<QS>, T4: SelectableExpression<QS>, T5: SelectableExpression<QS>, T6: SelectableExpression<QS>, T7: SelectableExpression<QS>, T8: SelectableExpression<QS>, T9: SelectableExpression<QS>, T10: SelectableExpression<QS>, T11: SelectableExpression<QS>, T12: SelectableExpression<QS>, T13: SelectableExpression<QS>, T14: SelectableExpression<QS>, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14): AppearsOnTable<QS>,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, QS> SelectableExpression<QS> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where T0: SelectableExpression<QS>, T1: SelectableExpression<QS>, T2: SelectableExpression<QS>, T3: SelectableExpression<QS>, T4: SelectableExpression<QS>, T5: SelectableExpression<QS>, T6: SelectableExpression<QS>, T7: SelectableExpression<QS>, T8: SelectableExpression<QS>, T9: SelectableExpression<QS>, T10: SelectableExpression<QS>, T11: SelectableExpression<QS>, T12: SelectableExpression<QS>, T13: SelectableExpression<QS>, T14: SelectableExpression<QS>, T15: SelectableExpression<QS>, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15): AppearsOnTable<QS>,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, QS> SelectableExpression<QS> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)where T0: SelectableExpression<QS>, T1: SelectableExpression<QS>, T2: SelectableExpression<QS>, T3: SelectableExpression<QS>, T4: SelectableExpression<QS>, T5: SelectableExpression<QS>, T6: SelectableExpression<QS>, T7: SelectableExpression<QS>, T8: SelectableExpression<QS>, T9: SelectableExpression<QS>, T10: SelectableExpression<QS>, T11: SelectableExpression<QS>, T12: SelectableExpression<QS>, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12): AppearsOnTable<QS>,

source§

impl<T, QS> SelectableExpression<QS> for Box<T>where T: SelectableExpression<QS> + ?Sized, Box<T>: AppearsOnTable<QS>,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, QS> SelectableExpression<QS> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)where T0: SelectableExpression<QS>, T1: SelectableExpression<QS>, T2: SelectableExpression<QS>, T3: SelectableExpression<QS>, T4: SelectableExpression<QS>, T5: SelectableExpression<QS>, T6: SelectableExpression<QS>, T7: SelectableExpression<QS>, T8: SelectableExpression<QS>, T9: SelectableExpression<QS>, T10: SelectableExpression<QS>, T11: SelectableExpression<QS>, T12: SelectableExpression<QS>, T13: SelectableExpression<QS>, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13): AppearsOnTable<QS>,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, QS> SelectableExpression<QS> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)where T0: SelectableExpression<QS>, T1: SelectableExpression<QS>, T2: SelectableExpression<QS>, T3: SelectableExpression<QS>, T4: SelectableExpression<QS>, T5: SelectableExpression<QS>, T6: SelectableExpression<QS>, T7: SelectableExpression<QS>, T8: SelectableExpression<QS>, (T0, T1, T2, T3, T4, T5, T6, T7, T8): AppearsOnTable<QS>,

source§

impl<T0, T1, T2, T3, QS> SelectableExpression<QS> for (T0, T1, T2, T3)where T0: SelectableExpression<QS>, T1: SelectableExpression<QS>, T2: SelectableExpression<QS>, T3: SelectableExpression<QS>, (T0, T1, T2, T3): AppearsOnTable<QS>,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, QS> SelectableExpression<QS> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)where T0: SelectableExpression<QS>, T1: SelectableExpression<QS>, T2: SelectableExpression<QS>, T3: SelectableExpression<QS>, T4: SelectableExpression<QS>, T5: SelectableExpression<QS>, T6: SelectableExpression<QS>, T7: SelectableExpression<QS>, T8: SelectableExpression<QS>, T9: SelectableExpression<QS>, T10: SelectableExpression<QS>, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10): AppearsOnTable<QS>,

source§

impl<T0, T1, T2, T3, T4, QS> SelectableExpression<QS> for (T0, T1, T2, T3, T4)where T0: SelectableExpression<QS>, T1: SelectableExpression<QS>, T2: SelectableExpression<QS>, T3: SelectableExpression<QS>, T4: SelectableExpression<QS>, (T0, T1, T2, T3, T4): AppearsOnTable<QS>,

source§

impl<T0, T1, QS> SelectableExpression<QS> for (T0, T1)where T0: SelectableExpression<QS>, T1: SelectableExpression<QS>, (T0, T1): AppearsOnTable<QS>,

Implementors§

source§

impl<QS> SelectableExpression<QS> for nowwhere now: AppearsOnTable<QS>,

source§

impl<QS> SelectableExpression<QS> for todaywhere today: AppearsOnTable<QS>,

source§

impl<QS, Query, Value> SelectableExpression<QS> for UncheckedBind<Query, Value>where Self: AppearsOnTable<QS>,

source§

impl<QS, ST, T> SelectableExpression<QS> for SqlLiteral<ST, T>where Self: Expression,

source§

impl<S, C> SelectableExpression<Alias<S>> for AliasedField<S, C>where S: AliasSource, C: Column<Table = S::Target>, Self: AppearsOnTable<Alias<S>>,