AppearsOnTable

Trait AppearsOnTable 

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

Indicates that all elements of an expression are valid given a from clause.

This is used to ensure that users.filter(posts::id.eq(1)) fails to compile. This constraint is only used in places where the nullability of a SQL type doesn’t matter (everything except select and returning). For places where nullability is important, SelectableExpression is used instead.

Implementations on Foreign Types§

Source§

impl<'a, T, QS> AppearsOnTable<QS> for &'a T

Source§

impl<T, QS> AppearsOnTable<QS> for (T₁, T₂, …, Tₙ)

Source§

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

Implementors§

Source§

impl<L, R, QS> AppearsOnTable<QS> for Concat<L, R>
where Concat<L, R>: Expression, L: AppearsOnTable<QS>, R: AppearsOnTable<QS>,

Source§

impl<QS> AppearsOnTable<QS> for now
where now: Expression,

Source§

impl<QS> AppearsOnTable<QS> for today

Source§

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

Source§

impl<QS, S, C> AppearsOnTable<QS> for AliasedField<S, C>
where S: AliasSource, QS: AppearsInFromClause<Alias<S>, Count = Once>, C: Column<Table = S::Target>,

Source§

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

Source§

impl<ST, I, QS> AppearsOnTable<QS> for Many<ST, I>

Available on crate feature i-implement-a-third-party-backend-and-opt-into-breaking-changes only.
Source§

impl<T, QS> AppearsOnTable<QS> for Exists<T>
where Self: Expression, Subselect<T, Bool>: AppearsOnTable<QS>,

Available on crate feature i-implement-a-third-party-backend-and-opt-into-breaking-changes only.
Source§

impl<T, U, QS> AppearsOnTable<QS> for In<T, U>
where In<T, U>: Expression, T: AppearsOnTable<QS>, U: AppearsOnTable<QS>,

Available on crate feature i-implement-a-third-party-backend-and-opt-into-breaking-changes only.
Source§

impl<T, U, QS> AppearsOnTable<QS> for NotIn<T, U>
where NotIn<T, U>: Expression, T: AppearsOnTable<QS>, U: AppearsOnTable<QS>,

Available on crate feature i-implement-a-third-party-backend-and-opt-into-breaking-changes only.
Source§

impl<W, T, E, QS> AppearsOnTable<QS> for CaseWhen<CaseWhenConditionsLeaf<W, T>, ElseExpression<E>>
where CaseWhen<CaseWhenConditionsLeaf<W, T>, ElseExpression<E>>: Expression, W: AppearsOnTable<QS>, T: AppearsOnTable<QS>, E: AppearsOnTable<QS>,

Source§

impl<W, T, QS> AppearsOnTable<QS> for CaseWhen<CaseWhenConditionsLeaf<W, T>, NoElseExpression>
where CaseWhen<CaseWhenConditionsLeaf<W, T>, NoElseExpression>: Expression, W: AppearsOnTable<QS>, T: AppearsOnTable<QS>,

Source§

impl<W, T, Whens, E, QS> AppearsOnTable<QS> for CaseWhen<CaseWhenConditionsIntermediateNode<W, T, Whens>, E>
where Self: Expression, W: AppearsOnTable<QS>, T: AppearsOnTable<QS>, CaseWhen<Whens, E>: AppearsOnTable<QS>,