Struct diesel::expression::exists::Exists
source · #[non_exhaustive]pub struct Exists<T> {
pub subselect: Subselect<T, Bool>,
}
Available on crate feature
i-implement-a-third-party-backend-and-opt-into-breaking-changes
only.Expand description
The query dsl node that represents a SQL EXISTS (subselect)
expression.
Third party backend can customize the QueryFragment
implementation of this query dsl node via
SqlDialect::ExistsSyntax
. A customized implementation
is expected to provide the same sematics as a ANSI SQL
EXIST (subselect)
expression.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.subselect: Subselect<T, Bool>
The inner subselect
Trait Implementations§
source§impl<T> Expression for Exists<T>where
Subselect<T, Bool>: Expression,
impl<T> Expression for Exists<T>where Subselect<T, Bool>: Expression,
source§impl<T, DB> QueryFragment<DB, AnsiSqlExistsSyntax> for Exists<T>where
DB: Backend + SqlDialect<ExistsSyntax = AnsiSqlExistsSyntax>,
T: QueryFragment<DB>,
impl<T, DB> QueryFragment<DB, AnsiSqlExistsSyntax> for Exists<T>where DB: Backend + SqlDialect<ExistsSyntax = AnsiSqlExistsSyntax>, T: QueryFragment<DB>,
source§fn 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 moresource§fn to_sql(&self, out: &mut DB::QueryBuilder, backend: &DB) -> QueryResult<()>
fn to_sql(&self, out: &mut DB::QueryBuilder, backend: &DB) -> QueryResult<()>
Converts this
QueryFragment
to its SQL representation. Read moresource§fn 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<()>
Serializes all bind parameters in this query. Read more
source§fn is_safe_to_cache_prepared(&self, backend: &DB) -> QueryResult<bool>
fn is_safe_to_cache_prepared(&self, backend: &DB) -> QueryResult<bool>
Is this query safe to store in the prepared statement cache? Read more
source§impl<T: QueryId> QueryId for Exists<T>
impl<T: QueryId> QueryId for Exists<T>
source§impl<T, GB> ValidGrouping<GB> for Exists<T>where
Subselect<T, Bool>: ValidGrouping<GB>,
impl<T, GB> ValidGrouping<GB> for Exists<T>where Subselect<T, Bool>: ValidGrouping<GB>,
§type IsAggregate = <Subselect<T, Bool> as ValidGrouping<GB>>::IsAggregate
type IsAggregate = <Subselect<T, Bool> as ValidGrouping<GB>>::IsAggregate
Is this expression aggregate? Read more
impl<T, QS> AppearsOnTable<QS> for Exists<T>where Self: Expression, Subselect<T, Bool>: AppearsOnTable<QS>,
impl<T: Copy> Copy for Exists<T>
impl<T, QS> SelectableExpression<QS> for Exists<T>where Self: AppearsOnTable<QS>, Subselect<T, Bool>: SelectableExpression<QS>,
Auto Trait Implementations§
impl<T> RefUnwindSafe for Exists<T>where T: RefUnwindSafe,
impl<T> Send for Exists<T>where T: Send,
impl<T> Sync for Exists<T>where T: Sync,
impl<T> Unpin for Exists<T>where T: Unpin,
impl<T> UnwindSafe for Exists<T>where T: UnwindSafe,
Blanket Implementations§
source§impl<T, ST> AsExpression<ST> for Twhere
T: Expression<SqlType = ST>,
ST: SqlType + TypedExpressionType,
impl<T, ST> AsExpression<ST> for Twhere T: Expression<SqlType = ST>, ST: SqlType + TypedExpressionType,
§type Expression = T
type Expression = T
The expression being returned
source§fn as_expression(self) -> T
fn as_expression(self) -> T
Perform the conversion
source§impl<Conn, DB, T> ExecuteDsl<Conn, DB> for Twhere
Conn: Connection<Backend = DB>,
DB: Backend,
T: QueryFragment<DB, NotSpecialized> + QueryId,
impl<Conn, DB, T> ExecuteDsl<Conn, DB> for Twhere Conn: Connection<Backend = DB>, DB: Backend, T: QueryFragment<DB, NotSpecialized> + QueryId,
source§impl<T> IntoSql for T
impl<T> IntoSql for T
source§fn 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 moresource§fn 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