pub struct SqlLiteral<ST, T = ()> { /* private fields */ }
Expand description
Returned by the sql()
function.
Implementations§
Source§impl<ST, T> SqlLiteral<ST, T>
impl<ST, T> SqlLiteral<ST, T>
Sourcepub fn bind<BindST, U>(
self,
bind_value: U,
) -> UncheckedBind<Self, U::Expression>where
U: AsExpression<BindST>,
pub fn bind<BindST, U>(
self,
bind_value: U,
) -> UncheckedBind<Self, U::Expression>where
U: AsExpression<BindST>,
Bind a value for use with this SQL query.
§Safety
This function should be used with care, as Diesel cannot validate that the value is of the right type nor can it validate that you have passed the correct number of parameters.
§Examples
let seans_id = users
.select(id)
.filter(sql("name = ").bind::<Text, _>("Sean"))
.get_result(&connection);
assert_eq!(Ok(1), seans_id);
let tess_id = sql::<Integer>("SELECT id FROM users WHERE name = ")
.bind::<Text, _>("Tess")
.get_result(&connection);
assert_eq!(Ok(2), tess_id);
§Multiple Bind Params
let query = users
.select(name)
.filter(
sql("id > ")
.bind::<Integer,_>(1)
.sql(" AND name <> ")
.bind::<Text, _>("Ryan")
)
.get_results(&connection);
let expected = vec!["Tess".to_string()];
assert_eq!(Ok(expected), query);
Sourcepub fn sql(self, sql: &str) -> SqlLiteral<ST, Self>
pub fn sql(self, sql: &str) -> SqlLiteral<ST, Self>
Use literal SQL in the query builder
This function is intended for use when you need a small bit of raw SQL in
your query. If you want to write the entire query using raw SQL, use
sql_query
instead.
§Safety
This function should be used with care, as Diesel cannot validate that the value is of the right type nor can it validate that you have passed the correct number of parameters.
§Examples
let query = users
.select(name)
.filter(
sql("id > 1")
.sql(" AND name <> 'Ryan'")
)
.get_results(&connection);
let expected = vec!["Tess".to_string()];
assert_eq!(Ok(expected), query);
Trait Implementations§
Source§impl<ST, T, __Rhs> Add<__Rhs> for SqlLiteral<ST, T>where
Self: Expression,
<Self as Expression>::SqlType: Add,
__Rhs: AsExpression<<<Self as Expression>::SqlType as Add>::Rhs>,
impl<ST, T, __Rhs> Add<__Rhs> for SqlLiteral<ST, T>where
Self: Expression,
<Self as Expression>::SqlType: Add,
__Rhs: AsExpression<<<Self as Expression>::SqlType as Add>::Rhs>,
Source§type Output = Add<SqlLiteral<ST, T>, <__Rhs as AsExpression<<<SqlLiteral<ST, T> as Expression>::SqlType as Add>::Rhs>>::Expression>
type Output = Add<SqlLiteral<ST, T>, <__Rhs as AsExpression<<<SqlLiteral<ST, T> as Expression>::SqlType as Add>::Rhs>>::Expression>
The resulting type after applying the
+
operator.Source§impl<ST: Clone, T: Clone> Clone for SqlLiteral<ST, T>
impl<ST: Clone, T: Clone> Clone for SqlLiteral<ST, T>
Source§fn clone(&self) -> SqlLiteral<ST, T>
fn clone(&self) -> SqlLiteral<ST, T>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<ST, T, __Rhs> Div<__Rhs> for SqlLiteral<ST, T>where
Self: Expression,
<Self as Expression>::SqlType: Div,
__Rhs: AsExpression<<<Self as Expression>::SqlType as Div>::Rhs>,
impl<ST, T, __Rhs> Div<__Rhs> for SqlLiteral<ST, T>where
Self: Expression,
<Self as Expression>::SqlType: Div,
__Rhs: AsExpression<<<Self as Expression>::SqlType as Div>::Rhs>,
Source§type Output = Div<SqlLiteral<ST, T>, <__Rhs as AsExpression<<<SqlLiteral<ST, T> as Expression>::SqlType as Div>::Rhs>>::Expression>
type Output = Div<SqlLiteral<ST, T>, <__Rhs as AsExpression<<<SqlLiteral<ST, T> as Expression>::SqlType as Div>::Rhs>>::Expression>
The resulting type after applying the
/
operator.Source§impl<ST, T> Expression for SqlLiteral<ST, T>
impl<ST, T> Expression for SqlLiteral<ST, T>
Source§impl<ST, T, __Rhs> Mul<__Rhs> for SqlLiteral<ST, T>where
Self: Expression,
<Self as Expression>::SqlType: Mul,
__Rhs: AsExpression<<<Self as Expression>::SqlType as Mul>::Rhs>,
impl<ST, T, __Rhs> Mul<__Rhs> for SqlLiteral<ST, T>where
Self: Expression,
<Self as Expression>::SqlType: Mul,
__Rhs: AsExpression<<<Self as Expression>::SqlType as Mul>::Rhs>,
Source§type Output = Mul<SqlLiteral<ST, T>, <__Rhs as AsExpression<<<SqlLiteral<ST, T> as Expression>::SqlType as Mul>::Rhs>>::Expression>
type Output = Mul<SqlLiteral<ST, T>, <__Rhs as AsExpression<<<SqlLiteral<ST, T> as Expression>::SqlType as Mul>::Rhs>>::Expression>
The resulting type after applying the
*
operator.Source§impl<ST, T> Query for SqlLiteral<ST, T>
impl<ST, T> Query for SqlLiteral<ST, T>
Source§impl<ST, T, DB> QueryFragment<DB> for SqlLiteral<ST, T>where
DB: Backend,
T: QueryFragment<DB>,
impl<ST, T, DB> QueryFragment<DB> for SqlLiteral<ST, T>where
DB: Backend,
T: QueryFragment<DB>,
Source§fn walk_ast(&self, out: AstPass<'_, DB>) -> QueryResult<()>
fn walk_ast(&self, out: AstPass<'_, DB>) -> QueryResult<()>
Walk over this
QueryFragment
for all passes. Read moreSource§fn to_sql(&self, out: &mut DB::QueryBuilder) -> QueryResult<()>
fn to_sql(&self, out: &mut DB::QueryBuilder) -> QueryResult<()>
Converts this
QueryFragment
to its SQL representation. Read moreSource§fn collect_binds(
&self,
out: &mut DB::BindCollector,
metadata_lookup: &DB::MetadataLookup,
) -> QueryResult<()>
fn collect_binds( &self, out: &mut DB::BindCollector, metadata_lookup: &DB::MetadataLookup, ) -> QueryResult<()>
Serializes all bind parameters in this query. Read more
Source§fn is_safe_to_cache_prepared(&self) -> QueryResult<bool>
fn is_safe_to_cache_prepared(&self) -> QueryResult<bool>
Is this query safe to store in the prepared statement cache? Read more
Source§impl<ST, T> QueryId for SqlLiteral<ST, T>
impl<ST, T> QueryId for SqlLiteral<ST, T>
Source§const HAS_STATIC_QUERY_ID: bool = false
const HAS_STATIC_QUERY_ID: bool = false
Can the SQL generated by
Self
be uniquely identified by its type? Read moreSource§impl<ST, T, Conn> RunQueryDsl<Conn> for SqlLiteral<ST, T>
impl<ST, T, Conn> RunQueryDsl<Conn> for SqlLiteral<ST, T>
Source§fn execute(self, conn: &Conn) -> QueryResult<usize>where
Conn: Connection,
Self: ExecuteDsl<Conn>,
fn execute(self, conn: &Conn) -> QueryResult<usize>where
Conn: Connection,
Self: ExecuteDsl<Conn>,
Executes the given command, returning the number of rows affected. Read more
Source§fn load<U>(self, conn: &Conn) -> QueryResult<Vec<U>>where
Self: LoadQuery<Conn, U>,
fn load<U>(self, conn: &Conn) -> QueryResult<Vec<U>>where
Self: LoadQuery<Conn, U>,
Executes the given query, returning a
Vec
with the returned rows. Read moreSource§fn get_result<U>(self, conn: &Conn) -> QueryResult<U>where
Self: LoadQuery<Conn, U>,
fn get_result<U>(self, conn: &Conn) -> QueryResult<U>where
Self: LoadQuery<Conn, U>,
Runs the command, and returns the affected row. Read more
Source§fn get_results<U>(self, conn: &Conn) -> QueryResult<Vec<U>>where
Self: LoadQuery<Conn, U>,
fn get_results<U>(self, conn: &Conn) -> QueryResult<Vec<U>>where
Self: LoadQuery<Conn, U>,
Runs the command, returning an
Vec
with the affected rows. Read moreSource§impl<ST, T, __Rhs> Sub<__Rhs> for SqlLiteral<ST, T>where
Self: Expression,
<Self as Expression>::SqlType: Sub,
__Rhs: AsExpression<<<Self as Expression>::SqlType as Sub>::Rhs>,
impl<ST, T, __Rhs> Sub<__Rhs> for SqlLiteral<ST, T>where
Self: Expression,
<Self as Expression>::SqlType: Sub,
__Rhs: AsExpression<<<Self as Expression>::SqlType as Sub>::Rhs>,
Source§type Output = Sub<SqlLiteral<ST, T>, <__Rhs as AsExpression<<<SqlLiteral<ST, T> as Expression>::SqlType as Sub>::Rhs>>::Expression>
type Output = Sub<SqlLiteral<ST, T>, <__Rhs as AsExpression<<<SqlLiteral<ST, T> as Expression>::SqlType as Sub>::Rhs>>::Expression>
The resulting type after applying the
-
operator.impl<QS, ST, T> AppearsOnTable<QS> for SqlLiteral<ST, T>
impl<ST, T> NonAggregate for SqlLiteral<ST, T>
impl<QS, ST, T> SelectableExpression<QS> for SqlLiteral<ST, T>
Auto Trait Implementations§
impl<ST, T> Freeze for SqlLiteral<ST, T>where
T: Freeze,
impl<ST, T> RefUnwindSafe for SqlLiteral<ST, T>where
T: RefUnwindSafe,
ST: RefUnwindSafe,
impl<ST, T> Send for SqlLiteral<ST, T>
impl<ST, T> Sync for SqlLiteral<ST, T>
impl<ST, T> Unpin for SqlLiteral<ST, T>
impl<ST, T> UnwindSafe for SqlLiteral<ST, T>where
T: UnwindSafe,
ST: UnwindSafe,
Blanket Implementations§
Source§impl<T> AsExpression<<T as Expression>::SqlType> for Twhere
T: Expression,
impl<T> AsExpression<<T as Expression>::SqlType> for Twhere
T: Expression,
Source§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> BoolExpressionMethods for Twhere
T: Expression<SqlType = Bool>,
impl<T> BoolExpressionMethods for Twhere
T: Expression<SqlType = Bool>,
Source§fn and<T: AsExpression<Bool>>(self, other: T) -> And<Self, T::Expression>
fn and<T: AsExpression<Bool>>(self, other: T) -> And<Self, T::Expression>
Creates a SQL
AND
expression Read moreSource§fn or<T: AsExpression<Bool>>(self, other: T) -> Grouped<Or<Self, T::Expression>>
fn or<T: AsExpression<Bool>>(self, other: T) -> Grouped<Or<Self, T::Expression>>
Creates a SQL
OR
expression Read moreSource§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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Conn, DB, T> ExecuteDsl<Conn, DB> for T
impl<Conn, DB, T> ExecuteDsl<Conn, DB> for T
Source§impl<T> IntoSql for T
impl<T> IntoSql for T
Source§impl<T> NullableExpressionMethods for Twhere
T: Expression,
impl<T> NullableExpressionMethods for Twhere
T: Expression,
Source§impl<T, ST> PgArrayExpressionMethods<ST> for Twhere
T: Expression<SqlType = Array<ST>>,
impl<T, ST> PgArrayExpressionMethods<ST> for Twhere
T: Expression<SqlType = Array<ST>>,
Source§fn overlaps_with<T>(self, other: T) -> OverlapsWith<Self, T::Expression>where
T: AsExpression<Self::SqlType>,
fn overlaps_with<T>(self, other: T) -> OverlapsWith<Self, T::Expression>where
T: AsExpression<Self::SqlType>,
Creates a PostgreSQL
&&
expression. Read moreSource§fn contains<T>(self, other: T) -> Contains<Self, T::Expression>where
T: AsExpression<Self::SqlType>,
fn contains<T>(self, other: T) -> Contains<Self, T::Expression>where
T: AsExpression<Self::SqlType>,
Creates a PostgreSQL
@>
expression. Read moreSource§fn is_contained_by<T>(self, other: T) -> IsContainedBy<Self, T::Expression>where
T: AsExpression<Self::SqlType>,
fn is_contained_by<T>(self, other: T) -> IsContainedBy<Self, T::Expression>where
T: AsExpression<Self::SqlType>,
Creates a PostgreSQL
<@
expression. 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,
) -> IsNotDistinctFrom<Self, T::Expression>where
T: AsExpression<Self::SqlType>,
fn is_not_distinct_from<T>(
self,
other: T,
) -> IsNotDistinctFrom<Self, T::Expression>where
T: AsExpression<Self::SqlType>,
Creates a PostgreSQL
IS NOT DISTINCT FROM
expression. Read moreSource§fn is_distinct_from<T>(self, other: T) -> IsDistinctFrom<Self, T::Expression>where
T: AsExpression<Self::SqlType>,
fn is_distinct_from<T>(self, other: T) -> IsDistinctFrom<Self, T::Expression>where
T: AsExpression<Self::SqlType>,
Creates a PostgreSQL
IS DISTINCT FROM
expression. Read more