Struct diesel::expression::array_comparison::In
source · [−]#[non_exhaustive]pub struct In<T, U> {
pub left: T,
pub values: U,
}
i-implement-a-third-party-backend-and-opt-into-breaking-changes
only.Expand description
Query dsl node that represents a left IN (values)
expression
Third party backend can customize the QueryFragment
implementation of this query dsl node via
SqlDialect::ArrayComparison
. A customized implementation
is expected to provide the same sematics as a ANSI SQL
IN
expression.
The postgres backend provided a specialized implementation
by using left = ANY(values)
as optimized variant instead.
Fields (Non-exhaustive)
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.left: T
The expression on the left side of the IN
keyword
values: U
The values clause of the IN
expression
Trait Implementations
sourceimpl<T, U> Expression for In<T, U> where
T: Expression,
U: Expression<SqlType = T::SqlType>,
impl<T, U> Expression for In<T, U> where
T: Expression,
U: Expression<SqlType = T::SqlType>,
sourceimpl<T, U, DB> QueryFragment<DB, AnsiSqlArrayComparison> for In<T, U> where
DB: Backend + SqlDialect<ArrayComparison = AnsiSqlArrayComparison>,
T: QueryFragment<DB>,
U: QueryFragment<DB> + MaybeEmpty,
impl<T, U, DB> QueryFragment<DB, AnsiSqlArrayComparison> for In<T, U> where
DB: Backend + SqlDialect<ArrayComparison = AnsiSqlArrayComparison>,
T: QueryFragment<DB>,
U: QueryFragment<DB> + MaybeEmpty,
sourcefn walk_ast<'b>(&'b self, out: AstPass<'_, 'b, DB>) -> QueryResult<()>
fn walk_ast<'b>(&'b self, out: AstPass<'_, 'b, DB>) -> QueryResult<()>
Walk over this QueryFragment
for all passes. Read more
sourcefn to_sql(&self, out: &mut DB::QueryBuilder, backend: &DB) -> QueryResult<()>
fn to_sql(&self, out: &mut DB::QueryBuilder, backend: &DB) -> QueryResult<()>
i-implement-a-third-party-backend-and-opt-into-breaking-changes
only.Converts this QueryFragment
to its SQL representation. Read more
sourcefn collect_binds<'b>(
&'b self,
out: &mut <DB as HasBindCollector<'b>>::BindCollector,
metadata_lookup: &mut DB::MetadataLookup,
backend: &'b DB
) -> QueryResult<()>
fn collect_binds<'b>(
&'b self,
out: &mut <DB as HasBindCollector<'b>>::BindCollector,
metadata_lookup: &mut DB::MetadataLookup,
backend: &'b DB
) -> QueryResult<()>
i-implement-a-third-party-backend-and-opt-into-breaking-changes
only.Serializes all bind parameters in this query. Read more
sourcefn is_safe_to_cache_prepared(&self, backend: &DB) -> QueryResult<bool>
fn is_safe_to_cache_prepared(&self, backend: &DB) -> QueryResult<bool>
i-implement-a-third-party-backend-and-opt-into-breaking-changes
only.Is this query safe to store in the prepared statement cache? Read more
sourcefn is_noop(&self, backend: &DB) -> QueryResult<bool>
fn is_noop(&self, backend: &DB) -> QueryResult<bool>
i-implement-a-third-party-backend-and-opt-into-breaking-changes
only.Does walking this AST have any effect?
sourceimpl<T: QueryId, U: QueryId> QueryId for In<T, U>
impl<T: QueryId, U: QueryId> QueryId for In<T, U>
sourceimpl<T, U, __GroupByClause> ValidGrouping<__GroupByClause> for In<T, U> where
T: ValidGrouping<__GroupByClause>,
U: ValidGrouping<__GroupByClause>,
T::IsAggregate: MixedAggregates<U::IsAggregate>,
impl<T, U, __GroupByClause> ValidGrouping<__GroupByClause> for In<T, U> where
T: ValidGrouping<__GroupByClause>,
U: ValidGrouping<__GroupByClause>,
T::IsAggregate: MixedAggregates<U::IsAggregate>,
type IsAggregate = <<T as ValidGrouping<__GroupByClause>>::IsAggregate as MixedAggregates<<U as ValidGrouping<__GroupByClause>>::IsAggregate>>::Output
type IsAggregate = <<T as ValidGrouping<__GroupByClause>>::IsAggregate as MixedAggregates<<U as ValidGrouping<__GroupByClause>>::IsAggregate>>::Output
Is this expression aggregate? Read more
impl<T, U, QS> AppearsOnTable<QS> for In<T, U> where
In<T, U>: Expression,
T: AppearsOnTable<QS>,
U: AppearsOnTable<QS>,
impl<T: Copy, U: Copy> Copy for In<T, U>
impl<T, U, QS> SelectableExpression<QS> for In<T, U> where
In<T, U>: AppearsOnTable<QS>,
T: SelectableExpression<QS>,
U: SelectableExpression<QS>,
Auto Trait Implementations
impl<T, U> RefUnwindSafe for In<T, U> where
T: RefUnwindSafe,
U: RefUnwindSafe,
impl<T, U> Send for In<T, U> where
T: Send,
U: Send,
impl<T, U> Sync for In<T, U> where
T: Sync,
U: Sync,
impl<T, U> Unpin for In<T, U> where
T: Unpin,
U: Unpin,
impl<T, U> UnwindSafe for In<T, U> where
T: UnwindSafe,
U: UnwindSafe,
Blanket Implementations
sourceimpl<T, ST> AsExpression<ST> for T where
T: Expression<SqlType = ST>,
ST: SqlType + TypedExpressionType,
impl<T, ST> AsExpression<ST> for T where
T: Expression<SqlType = ST>,
ST: SqlType + TypedExpressionType,
type Expression = T
type Expression = T
The expression being returned
sourcefn as_expression(self) -> T
fn as_expression(self) -> T
Perform the conversion
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Conn, DB, T> ExecuteDsl<Conn, DB> for T where
Conn: Connection<Backend = DB>,
DB: Backend,
T: QueryFragment<DB, NotSpecialized> + QueryId,
impl<Conn, DB, T> ExecuteDsl<Conn, DB> for T where
Conn: Connection<Backend = DB>,
DB: Backend,
T: QueryFragment<DB, NotSpecialized> + QueryId,
sourceimpl<T> IntoSql for T
impl<T> IntoSql for T
sourcefn into_sql<T>(self) -> AsExprOf<Self, T> where
Self: AsExpression<T> + Sized,
T: SqlType + TypedExpressionType,
fn into_sql<T>(self) -> AsExprOf<Self, T> where
Self: AsExpression<T> + Sized,
T: SqlType + TypedExpressionType,
Convert self
to an expression for Diesel’s query builder. Read more
sourcefn as_sql<'a, T>(&'a self) -> AsExprOf<&'a Self, T> where
&'a Self: AsExpression<T>,
T: SqlType + TypedExpressionType,
fn as_sql<'a, T>(&'a self) -> AsExprOf<&'a Self, T> where
&'a Self: AsExpression<T>,
T: SqlType + TypedExpressionType,
Convert &self
to an expression for Diesel’s query builder. Read more