Trait diesel::prelude::QuerySource

source ·
pub trait QuerySource {
    type FromClause;
    type DefaultSelection: SelectableExpression<Self>;

    // Required methods
    fn from_clause(&self) -> Self::FromClause;
    fn default_selection(&self) -> Self::DefaultSelection;
Expand description

Represents a type which can appear in the FROM clause. Apps should not need to concern themselves with this trait.

Types which implement this trait include:

  • Tables generated by the table! macro
  • Internal structs which represent joins
  • A select statement which has had no query builder methods called on it, other than those which can affect the from clause.

Required Associated Types§


type FromClause

The type returned by from_clause


type DefaultSelection: SelectableExpression<Self>

The type returned by default_selection

Required Methods§


fn from_clause(&self) -> Self::FromClause

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


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

Object Safety§

This trait is not object safe.



impl<From> QuerySource for SelectStatement<From>
where From: AsQuerySource, <From::QuerySource as QuerySource>::DefaultSelection: SelectableExpression<Self>,


type FromClause = <<From as AsQuerySource>::QuerySource as QuerySource>::FromClause


type DefaultSelection = <<From as AsQuerySource>::QuerySource as QuerySource>::DefaultSelection


impl<S> QuerySource for Only<S>

Available on crate feature postgres_backend only.

impl<S> QuerySource for Alias<S>
where Self: Clone, S: AliasSource, S::Target: QuerySource, <S::Target as QuerySource>::DefaultSelection: FieldAliasMapper<S>, <<S::Target as QuerySource>::DefaultSelection as FieldAliasMapper<S>>::Out: SelectableExpression<Self>,


type FromClause = Alias<S>


type DefaultSelection = <<<S as AliasSource>::Target as QuerySource>::DefaultSelection as FieldAliasMapper<S>>::Out


impl<S, TSM> QuerySource for Tablesample<S, TSM>
where S: Table + Clone, TSM: TablesampleMethod, <S as QuerySource>::DefaultSelection: ValidGrouping<()> + SelectableExpression<Tablesample<S, TSM>>,

Available on crate feature postgres_backend only.