pub struct relation;
Trait Implementations§
source§impl Expression for relation
impl Expression for relation
§type SqlType = RelationType
type SqlType = RelationType
The type that this expression represents in SQL
source§impl<DB> QueryFragment<DB, NotSpecialized> for relationwhere
DB: Backend,
StaticQueryFragmentInstance<table>: QueryFragment<DB>,
impl<DB> QueryFragment<DB, NotSpecialized> for relationwhere DB: Backend, StaticQueryFragmentInstance<table>: QueryFragment<DB>,
source§fn walk_ast<'b>(
&'b self,
__diesel_internal_out: AstPass<'_, 'b, DB>
) -> QueryResult<()>
fn walk_ast<'b>( &'b self, __diesel_internal_out: AstPass<'_, 'b, DB> ) -> QueryResult<()>
Walk over this
QueryFragment
for all passes. Read moresource§fn to_sql(
&self,
out: &mut <DB as Backend>::QueryBuilder,
backend: &DB
) -> Result<(), Error>
fn to_sql( &self, out: &mut <DB as Backend>::QueryBuilder, backend: &DB ) -> Result<(), Error>
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 as TypeMetadata>::MetadataLookup,
backend: &'b DB
) -> Result<(), Error>
fn collect_binds<'b>( &'b self, out: &mut <DB as HasBindCollector<'b>>::BindCollector, metadata_lookup: &mut <DB as TypeMetadata>::MetadataLookup, backend: &'b DB ) -> Result<(), Error>
Serializes all bind parameters in this query. Read more
source§impl QueryId for relation
impl QueryId for relation
source§const HAS_STATIC_QUERY_ID: bool = true
const HAS_STATIC_QUERY_ID: bool = true
Can the SQL generated by
Self
be uniquely identified by its type? Read moresource§impl ValidGrouping<()> for relation
impl ValidGrouping<()> for relation
§type IsAggregate = No
type IsAggregate = No
Is this expression aggregate? Read more
source§impl<__GB> ValidGrouping<__GB> for relationwhere
__GB: IsContainedInGroupBy<relation, Output = Yes>,
impl<__GB> ValidGrouping<__GB> for relationwhere __GB: IsContainedInGroupBy<relation, Output = Yes>,
§type IsAggregate = Yes
type IsAggregate = Yes
Is this expression aggregate? Read more
impl<QS> AppearsOnTable<QS> for relationwhere QS: AppearsInFromClause<table, Count = Once>,
impl Copy for relation
impl SelectableExpression<Only<table>> for relation
impl SelectableExpression<table> for relation
Auto Trait Implementations§
impl RefUnwindSafe for relation
impl Send for relation
impl Sync for relation
impl Unpin for relation
impl UnwindSafe for relation
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<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<Conn, DB, T> ExecuteDsl<Conn, DB> for Twhere
Conn: AsyncConnection<Backend = DB>,
DB: Backend,
T: QueryFragment<DB, NotSpecialized> + QueryId + Send,
impl<Conn, DB, T> ExecuteDsl<Conn, DB> for Twhere Conn: AsyncConnection<Backend = DB>, DB: Backend, T: QueryFragment<DB, NotSpecialized> + QueryId + Send,
source§fn execute<'query, 'conn>(
query: T,
conn: &'conn mut Conn
) -> <Conn as AsyncConnection>::ExecuteFuture<'conn, 'query>where
T: 'query,
fn execute<'query, 'conn>( query: T, conn: &'conn mut Conn ) -> <Conn as AsyncConnection>::ExecuteFuture<'conn, 'query>where T: 'query,
Execute this command
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> ExpressionMethods for Twhere
T: Expression,
<T as Expression>::SqlType: SingleValue,
impl<T> ExpressionMethods for Twhere T: Expression, <T as Expression>::SqlType: SingleValue,
source§fn eq<T>(
self,
other: T
) -> Grouped<Eq<Self, <T as AsExpression<Self::SqlType>>::Expression>>where
Self::SqlType: SqlType,
T: AsExpression<Self::SqlType>,
fn eq<T>( self, other: T ) -> Grouped<Eq<Self, <T as AsExpression<Self::SqlType>>::Expression>>where Self::SqlType: SqlType, T: AsExpression<Self::SqlType>,
Creates a SQL
=
expression. Read moresource§fn ne<T>(
self,
other: T
) -> Grouped<NotEq<Self, <T as AsExpression<Self::SqlType>>::Expression>>where
Self::SqlType: SqlType,
T: AsExpression<Self::SqlType>,
fn ne<T>( self, other: T ) -> Grouped<NotEq<Self, <T as AsExpression<Self::SqlType>>::Expression>>where Self::SqlType: SqlType, T: AsExpression<Self::SqlType>,
Creates a SQL
!=
expression. Read moresource§fn eq_any<T>(
self,
values: T
) -> Grouped<In<Self, <T as AsInExpression<Self::SqlType>>::InExpression>>where
Self::SqlType: SqlType,
T: AsInExpression<Self::SqlType>,
fn eq_any<T>( self, values: T ) -> Grouped<In<Self, <T as AsInExpression<Self::SqlType>>::InExpression>>where Self::SqlType: SqlType, T: AsInExpression<Self::SqlType>,
Creates a SQL
IN
statement. Read moresource§fn ne_all<T>(
self,
values: T
) -> Grouped<NotIn<Self, <T as AsInExpression<Self::SqlType>>::InExpression>>where
Self::SqlType: SqlType,
T: AsInExpression<Self::SqlType>,
fn ne_all<T>( self, values: T ) -> Grouped<NotIn<Self, <T as AsInExpression<Self::SqlType>>::InExpression>>where Self::SqlType: SqlType, T: AsInExpression<Self::SqlType>,
Creates a SQL
NOT IN
statement. Read moresource§fn is_not_null(self) -> Grouped<IsNotNull<Self>>
fn is_not_null(self) -> Grouped<IsNotNull<Self>>
Creates a SQL
IS NOT NULL
expression. Read moresource§fn gt<T>(
self,
other: T
) -> Grouped<Gt<Self, <T as AsExpression<Self::SqlType>>::Expression>>where
Self::SqlType: SqlType,
T: AsExpression<Self::SqlType>,
fn gt<T>( self, other: T ) -> Grouped<Gt<Self, <T as AsExpression<Self::SqlType>>::Expression>>where Self::SqlType: SqlType, T: AsExpression<Self::SqlType>,
Creates a SQL
>
expression. Read moresource§fn ge<T>(
self,
other: T
) -> Grouped<GtEq<Self, <T as AsExpression<Self::SqlType>>::Expression>>where
Self::SqlType: SqlType,
T: AsExpression<Self::SqlType>,
fn ge<T>( self, other: T ) -> Grouped<GtEq<Self, <T as AsExpression<Self::SqlType>>::Expression>>where Self::SqlType: SqlType, T: AsExpression<Self::SqlType>,
Creates a SQL
>=
expression. Read moresource§fn lt<T>(
self,
other: T
) -> Grouped<Lt<Self, <T as AsExpression<Self::SqlType>>::Expression>>where
Self::SqlType: SqlType,
T: AsExpression<Self::SqlType>,
fn lt<T>( self, other: T ) -> Grouped<Lt<Self, <T as AsExpression<Self::SqlType>>::Expression>>where Self::SqlType: SqlType, T: AsExpression<Self::SqlType>,
Creates a SQL
<
expression. Read moresource§fn le<T>(
self,
other: T
) -> Grouped<LtEq<Self, <T as AsExpression<Self::SqlType>>::Expression>>where
Self::SqlType: SqlType,
T: AsExpression<Self::SqlType>,
fn le<T>( self, other: T ) -> Grouped<LtEq<Self, <T as AsExpression<Self::SqlType>>::Expression>>where Self::SqlType: SqlType, T: AsExpression<Self::SqlType>,
Creates a SQL
<=
expression. Read moresource§fn between<T, U>(
self,
lower: T,
upper: U
) -> Grouped<Between<Self, And<<T as AsExpression<Self::SqlType>>::Expression, <U as AsExpression<Self::SqlType>>::Expression>>>where
Self::SqlType: SqlType,
T: AsExpression<Self::SqlType>,
U: AsExpression<Self::SqlType>,
fn between<T, U>( self, lower: T, upper: U ) -> Grouped<Between<Self, And<<T as AsExpression<Self::SqlType>>::Expression, <U as AsExpression<Self::SqlType>>::Expression>>>where Self::SqlType: SqlType, T: AsExpression<Self::SqlType>, U: AsExpression<Self::SqlType>,
Creates a SQL
BETWEEN
expression using the given lower and upper
bounds. Read moresource§fn not_between<T, U>(
self,
lower: T,
upper: U
) -> Grouped<NotBetween<Self, And<<T as AsExpression<Self::SqlType>>::Expression, <U as AsExpression<Self::SqlType>>::Expression>>>where
Self::SqlType: SqlType,
T: AsExpression<Self::SqlType>,
U: AsExpression<Self::SqlType>,
fn not_between<T, U>( self, lower: T, upper: U ) -> Grouped<NotBetween<Self, And<<T as AsExpression<Self::SqlType>>::Expression, <U as AsExpression<Self::SqlType>>::Expression>>>where Self::SqlType: SqlType, T: AsExpression<Self::SqlType>, U: AsExpression<Self::SqlType>,
Creates a SQL
NOT BETWEEN
expression using the given lower and upper
bounds. Read moresource§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoSql for T
impl<T> IntoSql for T
source§fn into_sql<T>(self) -> Self::Expressionwhere
Self: AsExpression<T> + Sized,
T: SqlType + TypedExpressionType,
fn into_sql<T>(self) -> Self::Expressionwhere 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) -> <&'a Self as AsExpression<T>>::Expressionwhere
&'a Self: AsExpression<T>,
T: SqlType + TypedExpressionType,
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expressionwhere &'a Self: AsExpression<T>, T: SqlType + TypedExpressionType,
Convert
&self
to an expression for Diesel’s query builder. Read moresource§impl<T> NullableExpressionMethods for Twhere
T: Expression,
impl<T> NullableExpressionMethods for Twhere T: Expression,
source§fn nullable(self) -> Nullable<Self>
fn nullable(self) -> Nullable<Self>
Converts this potentially non-null expression into one which is treated
as nullable. This method has no impact on the generated SQL, and is only
used to allow certain comparisons that would otherwise fail to compile. Read more
source§fn assume_not_null(self) -> AssumeNotNull<Self>
fn assume_not_null(self) -> AssumeNotNull<Self>
Converts this potentially nullable expression into one which will be assumed
to be not-null. This method has no impact on the generated SQL, however it will
enable you to attempt deserialization of the returned value in a non-
Option
. Read moresource§impl<T> PgExpressionMethods for Twhere
T: Expression,
impl<T> PgExpressionMethods for Twhere T: Expression,
source§fn is_not_distinct_from<T>(
self,
other: T
) -> Grouped<IsNotDistinctFrom<Self, <T as AsExpression<Self::SqlType>>::Expression>>where
Self::SqlType: SqlType,
T: AsExpression<Self::SqlType>,
fn is_not_distinct_from<T>( self, other: T ) -> Grouped<IsNotDistinctFrom<Self, <T as AsExpression<Self::SqlType>>::Expression>>where Self::SqlType: SqlType, T: AsExpression<Self::SqlType>,
Creates a PostgreSQL
IS NOT DISTINCT FROM
expression. Read moresource§fn is_distinct_from<T>(
self,
other: T
) -> Grouped<IsDistinctFrom<Self, <T as AsExpression<Self::SqlType>>::Expression>>where
Self::SqlType: SqlType,
T: AsExpression<Self::SqlType>,
fn is_distinct_from<T>( self, other: T ) -> Grouped<IsDistinctFrom<Self, <T as AsExpression<Self::SqlType>>::Expression>>where Self::SqlType: SqlType, T: AsExpression<Self::SqlType>,
Creates a PostgreSQL
IS DISTINCT FROM
expression. Read moresource§impl<T> PgTrgmExpressionMethods for Twhere
T: Expression,
impl<T> PgTrgmExpressionMethods for Twhere T: Expression,
source§fn fuzzy<U>(self, right: U) -> PgTrgmFuzzy<Self, U::Expression>where
Self::SqlType: SqlType,
U: AsExpression<Self::SqlType>,
fn fuzzy<U>(self, right: U) -> PgTrgmFuzzy<Self, U::Expression>where Self::SqlType: SqlType, U: AsExpression<Self::SqlType>,
source§impl<T, Conn> RunQueryDsl<Conn> for T
impl<T, Conn> RunQueryDsl<Conn> for T
source§fn execute<'query, 'conn>(
self,
conn: &'conn mut Conn
) -> <Conn as AsyncConnection>::ExecuteFuture<'conn, 'query>where
Conn: AsyncConnection + Send,
Self: ExecuteDsl<Conn, <Conn as AsyncConnection>::Backend> + 'query,
fn execute<'query, 'conn>( self, conn: &'conn mut Conn ) -> <Conn as AsyncConnection>::ExecuteFuture<'conn, 'query>where Conn: AsyncConnection + Send, Self: ExecuteDsl<Conn, <Conn as AsyncConnection>::Backend> + 'query,
Executes the given command, returning the number of rows affected. Read more
source§fn load<'query, U, 'conn>(
self,
conn: &'conn mut Conn
) -> AndThen<Self::LoadFuture<'conn>, TryCollect<Self::Stream<'conn>, Vec<U, Global>>, fn(_: Self::Stream<'conn>) -> TryCollect<Self::Stream<'conn>, Vec<U, Global>>>where
U: Send,
Conn: AsyncConnection,
Self: LoadQuery<'query, Conn, U> + 'query,
fn load<'query, U, 'conn>( self, conn: &'conn mut Conn ) -> AndThen<Self::LoadFuture<'conn>, TryCollect<Self::Stream<'conn>, Vec<U, Global>>, fn(_: Self::Stream<'conn>) -> TryCollect<Self::Stream<'conn>, Vec<U, Global>>>where U: Send, Conn: AsyncConnection, Self: LoadQuery<'query, Conn, U> + 'query,
source§fn load_stream<'conn, 'query, U>(
self,
conn: &'conn mut Conn
) -> Self::LoadFuture<'conn>where
Conn: AsyncConnection,
U: 'conn,
Self: LoadQuery<'query, Conn, U> + 'query,
fn load_stream<'conn, 'query, U>( self, conn: &'conn mut Conn ) -> Self::LoadFuture<'conn>where Conn: AsyncConnection, U: 'conn, Self: LoadQuery<'query, Conn, U> + 'query,
source§fn get_result<'query, 'conn, U>(
self,
conn: &'conn mut Conn
) -> AndThen<Self::LoadFuture<'conn>, Map<StreamFuture<Pin<Box<Self::Stream<'conn>, Global>>>, fn(_: (Option<Result<U, Error>>, Pin<Box<Self::Stream<'conn>, Global>>)) -> Result<U, Error>>, fn(_: Self::Stream<'conn>) -> Map<StreamFuture<Pin<Box<Self::Stream<'conn>, Global>>>, fn(_: (Option<Result<U, Error>>, Pin<Box<Self::Stream<'conn>, Global>>)) -> Result<U, Error>>>where
U: Send + 'conn,
Conn: AsyncConnection,
Self: LoadQuery<'query, Conn, U> + 'query,
fn get_result<'query, 'conn, U>( self, conn: &'conn mut Conn ) -> AndThen<Self::LoadFuture<'conn>, Map<StreamFuture<Pin<Box<Self::Stream<'conn>, Global>>>, fn(_: (Option<Result<U, Error>>, Pin<Box<Self::Stream<'conn>, Global>>)) -> Result<U, Error>>, fn(_: Self::Stream<'conn>) -> Map<StreamFuture<Pin<Box<Self::Stream<'conn>, Global>>>, fn(_: (Option<Result<U, Error>>, Pin<Box<Self::Stream<'conn>, Global>>)) -> Result<U, Error>>>where U: Send + 'conn, Conn: AsyncConnection, Self: LoadQuery<'query, Conn, U> + 'query,
Runs the command, and returns the affected row. Read more
source§fn get_results<'query, U, 'conn>(
self,
conn: &'conn mut Conn
) -> AndThen<Self::LoadFuture<'conn>, TryCollect<Self::Stream<'conn>, Vec<U, Global>>, fn(_: Self::Stream<'conn>) -> TryCollect<Self::Stream<'conn>, Vec<U, Global>>>where
U: Send,
Conn: AsyncConnection,
Self: LoadQuery<'query, Conn, U> + 'query,
fn get_results<'query, U, 'conn>( self, conn: &'conn mut Conn ) -> AndThen<Self::LoadFuture<'conn>, TryCollect<Self::Stream<'conn>, Vec<U, Global>>, fn(_: Self::Stream<'conn>) -> TryCollect<Self::Stream<'conn>, Vec<U, Global>>>where U: Send, Conn: AsyncConnection, Self: LoadQuery<'query, Conn, U> + 'query,
Runs the command, returning an
Vec
with the affected rows. Read moresource§fn first<'query, 'conn, U>(
self,
conn: &'conn mut Conn
) -> AndThen<<Self::Output as LoadQuery<'query, Conn, U>>::LoadFuture<'conn>, Map<StreamFuture<Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>, Global>>>, fn(_: (Option<Result<U, Error>>, Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>, Global>>)) -> Result<U, Error>>, fn(_: <Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>) -> Map<StreamFuture<Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>, Global>>>, fn(_: (Option<Result<U, Error>>, Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>, Global>>)) -> Result<U, Error>>>where
U: Send + 'conn,
Conn: AsyncConnection,
Self: LimitDsl,
Self::Output: LoadQuery<'query, Conn, U> + Send + 'query,
fn first<'query, 'conn, U>( self, conn: &'conn mut Conn ) -> AndThen<<Self::Output as LoadQuery<'query, Conn, U>>::LoadFuture<'conn>, Map<StreamFuture<Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>, Global>>>, fn(_: (Option<Result<U, Error>>, Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>, Global>>)) -> Result<U, Error>>, fn(_: <Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>) -> Map<StreamFuture<Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>, Global>>>, fn(_: (Option<Result<U, Error>>, Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>, Global>>)) -> Result<U, Error>>>where U: Send + 'conn, Conn: AsyncConnection, Self: LimitDsl, Self::Output: LoadQuery<'query, Conn, U> + Send + 'query,
Attempts to load a single record. Read more