pub trait ToSQL<'a, V>where
V: SQLParam,{
// Required method
fn to_sql(&self) -> SQL<'a, V>;
// Provided methods
fn into_sql(self) -> SQL<'a, V>
where Self: Sized { ... }
fn alias(&self, alias: &'static str) -> SQL<'a, V> { ... }
}Expand description
Trait for types that can be converted to SQL fragments.
The 'a lifetime ties any borrowed parameter values to the resulting SQL
fragment, allowing zero-copy SQL construction when inputs are already
borrowed.
Required Methods§
Provided Methods§
Sourcefn into_sql(self) -> SQL<'a, V>where
Self: Sized,
fn into_sql(self) -> SQL<'a, V>where
Self: Sized,
Consume self and return SQL without cloning.
Default delegates to to_sql() (which clones). Types that own their SQL
(like SQL and SQLExpr) override this to avoid the clone.
fn alias(&self, alias: &'static str) -> SQL<'a, V>
Implementations on Foreign Types§
Source§impl<'a, V, T0, T1, T2> ToSQL<'a, V> for (T0, T1, T2)
impl<'a, V, T0, T1, T2> ToSQL<'a, V> for (T0, T1, T2)
Source§impl<'a, V, T0, T1, T2, T3> ToSQL<'a, V> for (T0, T1, T2, T3)
impl<'a, V, T0, T1, T2, T3> ToSQL<'a, V> for (T0, T1, T2, T3)
Source§impl<'a, V, T0, T1, T2, T3, T4> ToSQL<'a, V> for (T0, T1, T2, T3, T4)
impl<'a, V, T0, T1, T2, T3, T4> ToSQL<'a, V> for (T0, T1, T2, T3, T4)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5)
impl<'a, V, T0, T1, T2, T3, T4, T5> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6)
impl<'a, V, T0, T1, T2, T3, T4, T5, T6> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7)
impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
V: SQLParam,
T0: ToSQL<'a, V>,
T1: ToSQL<'a, V>,
T2: ToSQL<'a, V>,
T3: ToSQL<'a, V>,
T4: ToSQL<'a, V>,
T5: ToSQL<'a, V>,
T6: ToSQL<'a, V>,
T7: ToSQL<'a, V>,
T8: ToSQL<'a, V>,
T9: ToSQL<'a, V>,
T10: ToSQL<'a, V>,
T11: ToSQL<'a, V>,
T12: ToSQL<'a, V>,
T13: ToSQL<'a, V>,
T14: ToSQL<'a, V>,
T15: ToSQL<'a, V>,
impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
V: SQLParam,
T0: ToSQL<'a, V>,
T1: ToSQL<'a, V>,
T2: ToSQL<'a, V>,
T3: ToSQL<'a, V>,
T4: ToSQL<'a, V>,
T5: ToSQL<'a, V>,
T6: ToSQL<'a, V>,
T7: ToSQL<'a, V>,
T8: ToSQL<'a, V>,
T9: ToSQL<'a, V>,
T10: ToSQL<'a, V>,
T11: ToSQL<'a, V>,
T12: ToSQL<'a, V>,
T13: ToSQL<'a, V>,
T14: ToSQL<'a, V>,
T15: ToSQL<'a, V>,
Implementors§
impl<'a, Schema, State, Table> ToSQL<'a, PostgresValue<'a>> for QueryBuilder<'a, Schema, State, Table>
impl<'a, State> ToSQL<'a, PostgresValue<'a>> for RefreshMaterializedView<'a, State>
impl<'a, T> ToSQL<'a, PostgresValue<'a>> for PgArray<T>
impl<'a, Table, Query> ToSQL<'a, PostgresValue<'a>> for CTEView<'a, Table, Query>where
Query: ToSQL<'a, PostgresValue<'a>>,
ToSQL implementation renders just the CTE name for use in FROM clauses. Unlike aliased tables (which render as “original” AS “alias”), CTEs should just render as their name since they’re already defined in the WITH clause.