pub struct Table<T, U = T> { /* private fields */ }
Expand description

A database table. A database table. This type is created by the table function.

Implementations§

source§

impl<T, U> Table<T, U>

source

pub fn column<ST, V>(&self, name: V) -> Column<Self, V, ST>where Self: Clone,

Create a column with this table.

source

pub fn name(&self) -> &T

Gets the name of the table, as especified on creation.

Trait Implementations§

source§

impl<T, U> AsQuery for Table<T, U>where T: Clone, U: Clone, SelectStatement<FromClause<Self>>: Query<SqlType = NotSelectable>,

§

type SqlType = NotSelectable

The SQL type of Self::Query
§

type Query = SelectStatement<FromClause<Table<T, U>>, DefaultSelectClause<FromClause<Table<T, U>>>, NoDistinctClause, NoWhereClause, NoOrderClause, LimitOffsetClause<NoLimitClause, NoOffsetClause>, NoGroupByClause, NoHavingClause, NoLockingClause>

What kind of query does this type represent?
source§

fn as_query(self) -> Self::Query

Converts a type which semantically represents a SQL query into the actual query being executed. See the trait level docs for more.
source§

impl<T: Clone, U: Clone> Clone for Table<T, U>

source§

fn clone(&self) -> Table<T, U>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T: Debug, U: Debug> Debug for Table<T, U>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T: Hash, U: Hash> Hash for Table<T, U>

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<T: PartialEq, U: PartialEq> PartialEq<Table<T, U>> for Table<T, U>

source§

fn eq(&self, other: &Table<T, U>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<T, U, DB> QueryFragment<DB, NotSpecialized> for Table<T, U>where DB: Backend, T: Borrow<str>, U: Borrow<str>,

source§

fn walk_ast<'b>(&'b self, out: AstPass<'_, 'b, DB>) -> QueryResult<()>

Walk over this QueryFragment for all passes. Read more
source§

fn to_sql( &self, out: &mut <DB as Backend>::QueryBuilder, backend: &DB ) -> Result<(), Error>

Available on crate feature i-implement-a-third-party-backend-and-opt-into-breaking-changes only.
Converts this QueryFragment to its SQL representation. Read more
source§

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>

Available on crate feature i-implement-a-third-party-backend-and-opt-into-breaking-changes only.
Serializes all bind parameters in this query. Read more
source§

fn is_safe_to_cache_prepared(&self, backend: &DB) -> Result<bool, Error>

Available on crate feature 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
source§

fn is_noop(&self, backend: &DB) -> Result<bool, Error>

Available on crate feature i-implement-a-third-party-backend-and-opt-into-breaking-changes only.
Does walking this AST have any effect?
source§

impl<T, U> QueryId for Table<T, U>

§

type QueryId = ()

A type which uniquely represents Self in a SQL query. Read more
source§

const HAS_STATIC_QUERY_ID: bool = false

Can the SQL generated by Self be uniquely identified by its type? Read more
source§

fn query_id() -> Option<TypeId>

Returns the type id of Self::QueryId if Self::HAS_STATIC_QUERY_ID. Returns None otherwise. Read more
source§

impl<T, U> QuerySource for Table<T, U>where Self: Clone,

§

type FromClause = Table<T, U>

The type returned by from_clause
§

type DefaultSelection = DummyExpression

The type returned by default_selection
source§

fn from_clause(&self) -> Self

The actual FROM clause of this type. This is typically only called in QueryFragment implementations.
source§

fn default_selection(&self) -> Self::DefaultSelection

The default select clause of this type, which should be used if no select clause was explicitly specified. This should always be a tuple of all the desired columns, not star
source§

impl<T, U> Table for Table<T, U>where Self: QuerySource + AsQuery,

§

type PrimaryKey = DummyExpression

The type returned by primary_key
§

type AllColumns = DummyExpression

The type returned by all_columns
source§

fn primary_key(&self) -> Self::PrimaryKey

Returns the primary key of this table. Read more
source§

fn all_columns() -> Self::AllColumns

Returns a tuple of all columns belonging to this table.
source§

impl<T: Copy, U: Copy> Copy for Table<T, U>

source§

impl<T: Eq, U: Eq> Eq for Table<T, U>

source§

impl<T, U> StructuralEq for Table<T, U>

source§

impl<T, U> StructuralPartialEq for Table<T, U>

Auto Trait Implementations§

§

impl<T, U> RefUnwindSafe for Table<T, U>where T: RefUnwindSafe, U: RefUnwindSafe,

§

impl<T, U> Send for Table<T, U>where T: Send, U: Send,

§

impl<T, U> Sync for Table<T, U>where T: Sync, U: Sync,

§

impl<T, U> Unpin for Table<T, U>where T: Unpin, U: Unpin,

§

impl<T, U> UnwindSafe for Table<T, U>where T: UnwindSafe, U: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CombineDsl for Twhere T: Table,

§

type Query = <T as AsQuery>::Query

What kind of query does this type represent?
source§

fn union<Rhs>( self, rhs: Rhs ) -> CombinationClause<Union, Distinct, <T as CombineDsl>::Query, <Rhs as AsQuery>::Query>where Rhs: AsQuery<SqlType = <<T as CombineDsl>::Query as Query>::SqlType>,

Combine two queries using a SQL UNION Read more
source§

fn union_all<Rhs>( self, rhs: Rhs ) -> CombinationClause<Union, All, <T as CombineDsl>::Query, <Rhs as AsQuery>::Query>where Rhs: AsQuery<SqlType = <<T as CombineDsl>::Query as Query>::SqlType>,

Combine two queries using a SQL UNION ALL
source§

fn intersect<Rhs>( self, rhs: Rhs ) -> CombinationClause<Intersect, Distinct, <T as CombineDsl>::Query, <Rhs as AsQuery>::Query>where Rhs: AsQuery<SqlType = <<T as CombineDsl>::Query as Query>::SqlType>,

Combine two queries using a SQL INTERSECT
source§

fn intersect_all<Rhs>( self, rhs: Rhs ) -> CombinationClause<Intersect, All, <T as CombineDsl>::Query, <Rhs as AsQuery>::Query>where Rhs: AsQuery<SqlType = <<T as CombineDsl>::Query as Query>::SqlType>,

Combine two queries using a SQL INTERSECT ALL
source§

fn except<Rhs>( self, rhs: Rhs ) -> CombinationClause<Except, Distinct, <T as CombineDsl>::Query, <Rhs as AsQuery>::Query>where Rhs: AsQuery<SqlType = <<T as CombineDsl>::Query as Query>::SqlType>,

Combine two queries using a SQL EXCEPT
source§

fn except_all<Rhs>( self, rhs: Rhs ) -> CombinationClause<Except, All, <T as CombineDsl>::Query, <Rhs as AsQuery>::Query>where Rhs: AsQuery<SqlType = <<T as CombineDsl>::Query as Query>::SqlType>,

Combine two queries using a SQL EXCEPT ALL
source§

impl<Conn, DB, T> ExecuteDsl<Conn, DB> for Twhere Conn: Connection<Backend = DB>, DB: Backend, T: QueryFragment<DB, NotSpecialized> + QueryId,

source§

fn execute(query: T, conn: &mut Conn) -> Result<usize, Error>

Execute this command
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoSql for T

source§

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 more
source§

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 more
source§

impl<T> JoinOnDsl for Twhere T: QuerySource,

source§

fn on<On>(self, on: On) -> OnClauseWrapper<Self, On>

See the trait documentation.
source§

impl<Lhs, Rhs, On> JoinTo<OnClauseWrapper<Rhs, On>> for Lhswhere Lhs: Table,

§

type FromClause = Rhs

§

type OnClause = On

source§

fn join_target( rhs: OnClauseWrapper<Rhs, On> ) -> (<Lhs as JoinTo<OnClauseWrapper<Rhs, On>>>::FromClause, <Lhs as JoinTo<OnClauseWrapper<Rhs, On>>>::OnClause)

source§

impl<T> OnlyDsl for Twhere T: Table,

source§

fn only(self) -> Only<Self>

See the trait-level docs.
source§

impl<T> QueryDsl for Twhere T: Table,

source§

fn distinct(self) -> Self::Outputwhere Self: DistinctDsl,

Adds the DISTINCT keyword to a query. Read more
source§

fn distinct_on<Expr>(self, expr: Expr) -> Self::Outputwhere Self: DistinctOnDsl<Expr>,

Adds the DISTINCT ON clause to a query. Read more
source§

fn select<Selection>(self, selection: Selection) -> Self::Outputwhere Selection: Expression, Self: SelectDsl<Selection>,

Adds a SELECT clause to the query. Read more
source§

fn count(self) -> Self::Outputwhere Self: SelectDsl<CountStar>,

Get the count of a query. This is equivalent to .select(count_star()) Read more
source§

fn inner_join<Rhs>(self, rhs: Rhs) -> Self::Outputwhere Self: JoinWithImplicitOnClause<Rhs, Inner>,

Join two tables using a SQL INNER JOIN. Read more
source§

fn left_outer_join<Rhs>(self, rhs: Rhs) -> Self::Outputwhere Self: JoinWithImplicitOnClause<Rhs, LeftOuter>,

Join two tables using a SQL LEFT OUTER JOIN. Read more
source§

fn left_join<Rhs>(self, rhs: Rhs) -> Self::Outputwhere Self: JoinWithImplicitOnClause<Rhs, LeftOuter>,

Alias for left_outer_join.
source§

fn filter<Predicate>(self, predicate: Predicate) -> Self::Outputwhere Self: FilterDsl<Predicate>,

Adds to the WHERE clause of a query. Read more
source§

fn or_filter<Predicate>(self, predicate: Predicate) -> Self::Outputwhere Self: OrFilterDsl<Predicate>,

Adds to the WHERE clause of a query using OR Read more
source§

fn find<PK>(self, id: PK) -> Self::Outputwhere Self: FindDsl<PK>,

Attempts to find a single record from the given table by primary key. Read more
source§

fn order<Expr>(self, expr: Expr) -> Self::Outputwhere Expr: Expression, Self: OrderDsl<Expr>,

Sets the order clause of a query. Read more
source§

fn order_by<Expr>(self, expr: Expr) -> Self::Outputwhere Expr: Expression, Self: OrderDsl<Expr>,

Alias for order
source§

fn then_order_by<Order>(self, order: Order) -> Self::Outputwhere Self: ThenOrderDsl<Order>,

Appends to the ORDER BY clause of this SQL query. Read more
source§

fn limit(self, limit: i64) -> Self::Outputwhere Self: LimitDsl,

Sets the limit clause of the query. Read more
source§

fn offset(self, offset: i64) -> Self::Outputwhere Self: OffsetDsl,

Sets the offset clause of the query. Read more
source§

fn group_by<GB>(self, group_by: GB) -> Self::Outputwhere GB: Expression, Self: GroupByDsl<GB>,

Sets the group by clause of a query. Read more
source§

fn having<Predicate>(self, predicate: Predicate) -> Self::Outputwhere Self: HavingDsl<Predicate>,

Adds to the HAVING clause of a query. Read more
source§

fn for_update(self) -> Self::Outputwhere Self: LockingDsl<ForUpdate>,

Adds FOR UPDATE to the end of the select statement. Read more
source§

fn for_no_key_update(self) -> Self::Outputwhere Self: LockingDsl<ForNoKeyUpdate>,

Adds FOR NO KEY UPDATE to the end of the select statement. Read more
source§

fn for_share(self) -> Self::Outputwhere Self: LockingDsl<ForShare>,

Adds FOR SHARE to the end of the select statement. Read more
source§

fn for_key_share(self) -> Self::Outputwhere Self: LockingDsl<ForKeyShare>,

Adds FOR KEY SHARE to the end of the select statement. Read more
source§

fn skip_locked(self) -> Self::Outputwhere Self: ModifyLockDsl<SkipLocked>,

Adds SKIP LOCKED to the end of a FOR UPDATE clause. Read more
source§

fn no_wait(self) -> Self::Outputwhere Self: ModifyLockDsl<NoWait>,

Adds NOWAIT to the end of a FOR UPDATE clause. Read more
source§

fn into_boxed<'a, DB>(self) -> Self::Outputwhere DB: Backend, Self: BoxedDsl<'a, DB>,

Boxes the pieces of a query into a single type. Read more
source§

fn single_value(self) -> Self::Outputwhere Self: SingleValueDsl,

Wraps this select statement in parenthesis, allowing it to be used as an expression. Read more
source§

fn nullable(self) -> Self::Outputwhere Self: SelectNullableDsl,

Coerce the SQL type of the select clause to it’s nullable equivalent. Read more
source§

impl<T, Conn> RunQueryDsl<Conn> for Twhere T: Table,

source§

fn execute(self, conn: &mut Conn) -> Result<usize, Error>where Conn: Connection, Self: ExecuteDsl<Conn, <Conn as Connection>::Backend>,

Executes the given command, returning the number of rows affected. Read more
source§

fn load<'query, U>(self, conn: &mut Conn) -> Result<Vec<U, Global>, Error>where Self: LoadQuery<'query, Conn, U, DefaultLoadingMode>,

Executes the given query, returning a Vec with the returned rows. Read more
source§

fn load_iter<'conn, 'query, U, B>( self, conn: &'conn mut Conn ) -> Result<Self::Ret, Error>where 'query: 'conn, U: 'conn, Self: LoadQuery<'query, Conn, U, B> + 'conn,

Executes the given query, returning an Iterator with the returned rows. Read more
source§

fn get_result<'query, U>(self, conn: &mut Conn) -> Result<U, Error>where Self: LoadQuery<'query, Conn, U, DefaultLoadingMode>,

Runs the command, and returns the affected row. Read more
source§

fn get_results<'query, U>( self, conn: &mut Conn ) -> Result<Vec<U, Global>, Error>where Self: LoadQuery<'query, Conn, U, DefaultLoadingMode>,

Runs the command, returning an Vec with the affected rows. Read more
source§

fn first<'query, U>(self, conn: &mut Conn) -> Result<U, Error>where Self: LimitDsl, Self::Output: LoadQuery<'query, Conn, U, DefaultLoadingMode>,

Attempts to load a single record. Read more
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

source§

fn vzip(self) -> V