Skip to main content

ArrayJoin

Struct ArrayJoin 

Source
pub struct ArrayJoin<T: QuerySource, Expr> { /* private fields */ }
Expand description

FROM table ARRAY JOIN expr query source wrapper.

Trait Implementations§

Source§

impl<T, Expr, QS> AppearsInFromClause<QS> for ArrayJoin<T, Expr>

Source§

type Count = <T as AppearsInFromClause<QS>>::Count

How many times does Self appear in QS?
Source§

impl<T, Expr> AsQuery for ArrayJoin<T, Expr>
where T: QuerySource + Clone, T::FromClause: Clone, Expr: Expression + Clone, Self: QuerySource, SelectStatement<FromClause<Self>>: Query,

Source§

type SqlType = <SelectStatement<FromClause<ArrayJoin<T, Expr>>> as Query>::SqlType

The SQL type of Self::Query
Source§

type Query = SelectStatement<FromClause<ArrayJoin<T, Expr>>>

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 + QuerySource, Expr: Clone> Clone for ArrayJoin<T, Expr>
where T::FromClause: Clone,

Source§

fn clone(&self) -> ArrayJoin<T, Expr>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<T: Debug + QuerySource, Expr: Debug> Debug for ArrayJoin<T, Expr>
where T::FromClause: Debug,

Source§

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

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

impl<T, Expr> QueryDsl for ArrayJoin<T, Expr>
where T: QuerySource + Clone, T::FromClause: Clone, Expr: Expression + Clone, Self: AsQuery,

Source§

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

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

fn count(self) -> Self::Output
where 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::Output
where Self: JoinWithImplicitOnClause<Rhs, Inner>,

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

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

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

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

Alias for left_outer_join.
Source§

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

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

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

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

fn find<PK>(self, id: PK) -> Self::Output
where 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::Output
where Expr: Expression, Self: OrderDsl<Expr>,

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

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

Alias for order
Source§

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

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

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

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

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

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

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

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

impl<T, Expr> QueryFragment<ClickHouse> for ArrayJoin<T, Expr>

Source§

fn walk_ast<'b>(&'b self, out: AstPass<'_, 'b, ClickHouse>) -> 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>

Converts this QueryFragment to its SQL representation. Read more
Source§

fn collect_binds<'b>( &'b self, out: &mut <DB as Backend>::BindCollector<'b>, metadata_lookup: &mut <DB as TypeMetadata>::MetadataLookup, backend: &'b DB, ) -> Result<(), Error>

Serializes all bind parameters in this query. Read more
Source§

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

Is this query safe to store in the prepared statement cache? Read more
Source§

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

Does walking this AST have any effect?
Source§

impl<T, Expr> QueryId for ArrayJoin<T, Expr>
where T: QuerySource,

Source§

const HAS_STATIC_QUERY_ID: bool = false

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

type QueryId = ()

A type which uniquely represents Self in a SQL query. 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, Expr> QuerySource for ArrayJoin<T, Expr>
where T: QuerySource + Clone, T::FromClause: Clone, Expr: Expression + Clone,

Source§

type FromClause = ArrayJoin<T, Expr>

The type returned by from_clause
Source§

type DefaultSelection = SqlLiteral<Untyped>

The type returned by default_selection
Source§

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

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, Expr, Conn> RunQueryDsl<Conn> for ArrayJoin<T, Expr>
where T: QuerySource + Clone, T::FromClause: Clone, Expr: Expression + Clone, Self: AsQuery,

Source§

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

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

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

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::RowIter<'conn>, 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>,

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

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

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

impl<T, Expr, Selection> SelectDsl<Selection> for ArrayJoin<T, Expr>
where T: QuerySource + Clone, T::FromClause: Clone, Expr: Expression + Clone, Self: AsQuery, Selection: Expression, <Self as AsQuery>::Query: SelectDsl<Selection>,

Source§

type Output = <<ArrayJoin<T, Expr> as AsQuery>::Query as SelectDsl<Selection>>::Output

The type returned by .select
Source§

fn select(self, selection: Selection) -> Self::Output

See the trait documentation

Auto Trait Implementations§

§

impl<T, Expr> Freeze for ArrayJoin<T, Expr>
where T: Freeze, <T as QuerySource>::FromClause: Freeze, Expr: Freeze,

§

impl<T, Expr> RefUnwindSafe for ArrayJoin<T, Expr>

§

impl<T, Expr> Send for ArrayJoin<T, Expr>
where T: Send, <T as QuerySource>::FromClause: Send, Expr: Send,

§

impl<T, Expr> Sync for ArrayJoin<T, Expr>
where T: Sync, <T as QuerySource>::FromClause: Sync, Expr: Sync,

§

impl<T, Expr> Unpin for ArrayJoin<T, Expr>
where T: Unpin, <T as QuerySource>::FromClause: Unpin, Expr: Unpin,

§

impl<T, Expr> UnsafeUnpin for ArrayJoin<T, Expr>

§

impl<T, Expr> UnwindSafe for ArrayJoin<T, Expr>

Blanket Implementations§

Source§

impl<T> AggregateExpressionMethods for T

Source§

fn aggregate_distinct(self) -> Self::Output
where Self: DistinctDsl,

DISTINCT modifier for aggregate functions Read more
Source§

fn aggregate_all(self) -> Self::Output
where Self: AllDsl,

ALL modifier for aggregate functions Read more
Source§

fn aggregate_filter<P>(self, f: P) -> Self::Output
where P: AsExpression<Bool>, Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,

Add an aggregate function filter Read more
Source§

fn aggregate_order<O>(self, o: O) -> Self::Output
where Self: OrderAggregateDsl<O>,

Add an aggregate function order Read more
Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> ClickHouseJoinDsl for T

Source§

fn clickhouse_join<Right>( self, right: Right, ) -> ClickHouseJoinBuilder<Self, Right>
where Self: QuerySource, Right: QuerySource,

Start building a ClickHouse-specific join between self and right.
Source§

impl<T> ClickHouseQueryDsl for T

Source§

fn format(self, format: Format) -> FormattedQuery<Self>

Append FORMAT <format>.
Source§

fn into_outfile(self, file_name: impl Into<String>) -> IntoOutfileQuery<Self>

Append INTO OUTFILE file_name.
Source§

fn settings<I>(self, settings: I) -> SettingsQuery<Self>
where I: IntoIterator<Item = Setting>,

Append SETTINGS ....
Source§

fn limit_by_col(self, limit: i64, column: impl Into<String>) -> LimitBy<Self>

Append LIMIT n BY column.
Source§

fn limit_by_col_offset( self, offset: i64, limit: i64, column: impl Into<String>, ) -> LimitBy<Self>

Append LIMIT offset, n BY column.
Source§

fn limit_by_cols<I, S>(self, limit: i64, columns: I) -> LimitBy<Self>
where I: IntoIterator<Item = S>, S: Into<String>,

Append LIMIT n BY col1, col2, ....
Source§

fn with_ties(self) -> LimitWithTies<Self>

Append WITH TIES after a ClickHouse LIMIT clause.
Source§

fn with_alias<Expr>( self, expr: Expr, alias: impl Into<String>, ) -> WithQuery<Self, WithBinding<NoWithBindings, Expr>>
where Expr: Expression,

Prepend a scalar WITH expr AS alias binding to this query.
Source§

fn with_cte<Cte>( self, alias: impl Into<String>, cte: Cte, ) -> WithQuery<Self, WithCteBinding<NoWithBindings, Cte>>

Prepend a common table expression binding to this query.
Source§

fn with_materialized_cte<Cte>( self, alias: impl Into<String>, cte: Cte, ) -> WithQuery<Self, WithCteBinding<NoWithBindings, Cte>>

Prepend a materialized common table expression binding to this query.
Source§

fn window<Spec>( self, name: impl Into<String>, spec: Spec, ) -> WindowQuery<Self, WindowBinding<NoWindowBindings, Spec>>

Append WINDOW name AS (spec).
Source§

fn qualify<Predicate>( self, predicate: Predicate, ) -> QualifyQuery<Self, Predicate>
where Predicate: Expression,

Append QUALIFY predicate.
Source§

fn array_join<Expr>(self, expr: Expr) -> ArrayJoin<Self, Expr>
where Self: QuerySource, Expr: Expression,

Treat this query source as source ARRAY JOIN expr.
Source§

fn array_join_as<Expr>( self, expr: Expr, alias: impl Into<String>, ) -> ArrayJoin<Self, Expr>
where Self: QuerySource, Expr: Expression,

Treat this query source as source ARRAY JOIN expr AS alias.
Source§

fn left_array_join<Expr>(self, expr: Expr) -> ArrayJoin<Self, Expr>
where Self: QuerySource, Expr: Expression,

Treat this query source as source LEFT ARRAY JOIN expr.
Source§

fn left_array_join_as<Expr>( self, expr: Expr, alias: impl Into<String>, ) -> ArrayJoin<Self, Expr>
where Self: QuerySource, Expr: Expression,

Treat this query source as source LEFT ARRAY JOIN expr AS alias.
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_sync(self: Box<T>) -> Box<dyn Any + Sync + Send>

Converts Box<Trait> (where Trait: DowncastSync) to Box<dyn Any + Send + Sync>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Converts Arc<Trait> (where Trait: DowncastSync) to Arc<Any>, which can then be downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

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

Source§

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

Execute this command
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

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

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::Expression

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>>::Expression
where &'a Self: AsExpression<T>, T: SqlType + TypedExpressionType,

Convert &self to an expression for Diesel’s query builder. Read more
Source§

impl<T> JoinOnDsl for T
where T: QuerySource,

Source§

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

See the trait documentation.
Source§

impl<T, DB> QueryFragmentForCachedStatement<DB> for T
where DB: Backend, <DB as Backend>::QueryBuilder: Default, T: QueryFragment<DB>,

Source§

fn construct_sql(&self, backend: &DB) -> Result<String, Error>

Convert the query fragment into a SQL string for the given backend
Source§

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

Check whether it’s safe to cache the query
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

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 T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

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

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<T> WindowExpressionMethods for T

Source§

fn over(self) -> Self::Output
where Self: OverDsl,

Turn a function call into a window function call Read more
Source§

fn window_filter<P>(self, f: P) -> Self::Output
where P: AsExpression<Bool>, Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,

Add a filter to the current window function Read more
Source§

fn partition_by<E>(self, expr: E) -> Self::Output
where Self: PartitionByDsl<E>,

Add a partition clause to the current window function Read more
Source§

fn window_order<E>(self, expr: E) -> Self::Output
where Self: OrderWindowDsl<E>,

Add a order clause to the current window function Read more
Source§

fn frame_by<E>(self, expr: E) -> Self::Output
where Self: FrameDsl<E>,

Add a frame clause to the current window function Read more
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more