Struct diesel::expression::SqlLiteral [−][src]
#[must_use = "Queries are only executed when calling `load`, `get_result`, or similar."]pub struct SqlLiteral<ST, T = ()> { /* fields omitted */ }
Returned by the sql()
function.
Methods
impl<ST, T> SqlLiteral<ST, T>
[src]
impl<ST, T> SqlLiteral<ST, T>
pub fn bind<BindST, U>(
self,
bind_value: U
) -> UncheckedBind<Self, U::Expression> where
U: AsExpression<BindST>,
[src]
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);
pub fn sql(self, sql: &str) -> SqlLiteral<ST, Self>
[src]
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
impl<ST, T, __Rhs> Add<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
Self::SqlType: Add,
__Rhs: AsExpression<<Self::SqlType as Add>::Rhs>,
[src]
impl<ST, T, __Rhs> Add<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
Self::SqlType: Add,
__Rhs: AsExpression<<Self::SqlType as Add>::Rhs>,
type Output = Add<Self, __Rhs::Expression>
The resulting type after applying the +
operator.
fn add(self, rhs: __Rhs) -> Self::Output
[src]
fn add(self, rhs: __Rhs) -> Self::Output
Performs the +
operation.
impl<ST, T, __Rhs> Sub<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
Self::SqlType: Sub,
__Rhs: AsExpression<<Self::SqlType as Sub>::Rhs>,
[src]
impl<ST, T, __Rhs> Sub<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
Self::SqlType: Sub,
__Rhs: AsExpression<<Self::SqlType as Sub>::Rhs>,
type Output = Sub<Self, __Rhs::Expression>
The resulting type after applying the -
operator.
fn sub(self, rhs: __Rhs) -> Self::Output
[src]
fn sub(self, rhs: __Rhs) -> Self::Output
Performs the -
operation.
impl<ST, T, __Rhs> Mul<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
Self::SqlType: Mul,
__Rhs: AsExpression<<Self::SqlType as Mul>::Rhs>,
[src]
impl<ST, T, __Rhs> Mul<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
Self::SqlType: Mul,
__Rhs: AsExpression<<Self::SqlType as Mul>::Rhs>,
type Output = Mul<Self, __Rhs::Expression>
The resulting type after applying the *
operator.
fn mul(self, rhs: __Rhs) -> Self::Output
[src]
fn mul(self, rhs: __Rhs) -> Self::Output
Performs the *
operation.
impl<ST, T, __Rhs> Div<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
Self::SqlType: Div,
__Rhs: AsExpression<<Self::SqlType as Div>::Rhs>,
[src]
impl<ST, T, __Rhs> Div<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
Self::SqlType: Div,
__Rhs: AsExpression<<Self::SqlType as Div>::Rhs>,
type Output = Div<Self, __Rhs::Expression>
The resulting type after applying the /
operator.
fn div(self, rhs: __Rhs) -> Self::Output
[src]
fn div(self, rhs: __Rhs) -> Self::Output
Performs the /
operation.
impl<ST: Debug, T: Debug> Debug for SqlLiteral<ST, T>
[src]
impl<ST: Debug, T: Debug> Debug for SqlLiteral<ST, T>
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl<ST: Clone, T: Clone> Clone for SqlLiteral<ST, T>
[src]
impl<ST: Clone, T: Clone> Clone for SqlLiteral<ST, T>
fn clone(&self) -> SqlLiteral<ST, T>
[src]
fn clone(&self) -> SqlLiteral<ST, T>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl<ST, T> Expression for SqlLiteral<ST, T>
[src]
impl<ST, T> Expression for SqlLiteral<ST, T>
type SqlType = ST
The type that this expression represents in SQL
impl<ST, T, DB> QueryFragment<DB> for SqlLiteral<ST, T> where
DB: Backend,
T: QueryFragment<DB>,
[src]
impl<ST, T, DB> QueryFragment<DB> for SqlLiteral<ST, T> where
DB: Backend,
T: QueryFragment<DB>,
fn walk_ast(&self, out: AstPass<DB>) -> QueryResult<()>
[src]
fn walk_ast(&self, out: AstPass<DB>) -> QueryResult<()>
Walk over this QueryFragment
for all passes. Read more
fn to_sql(&self, out: &mut DB::QueryBuilder) -> QueryResult<()>
[src]
fn to_sql(&self, out: &mut DB::QueryBuilder) -> QueryResult<()>
Converts this QueryFragment
to its SQL representation. Read more
fn collect_binds(
&self,
out: &mut DB::BindCollector,
metadata_lookup: &DB::MetadataLookup
) -> QueryResult<()>
[src]
fn collect_binds(
&self,
out: &mut DB::BindCollector,
metadata_lookup: &DB::MetadataLookup
) -> QueryResult<()>
Serializes all bind parameters in this query. Read more
fn is_safe_to_cache_prepared(&self) -> QueryResult<bool>
[src]
fn is_safe_to_cache_prepared(&self) -> QueryResult<bool>
Is this query safe to store in the prepared statement cache? Read more
impl<ST, T> QueryId for SqlLiteral<ST, T>
[src]
impl<ST, T> QueryId for SqlLiteral<ST, T>
type QueryId = ()
A type which uniquely represents Self
in a SQL query. Read more
const HAS_STATIC_QUERY_ID: bool
HAS_STATIC_QUERY_ID: bool = false
Can the SQL generated by Self
be uniquely identified by its type? Read more
fn query_id() -> Option<TypeId>
[src]
fn query_id() -> Option<TypeId>
Returns the type id of Self::QueryId
if Self::HAS_STATIC_QUERY_ID
. Returns None
otherwise. Read more
impl<ST, T> Query for SqlLiteral<ST, T>
[src]
impl<ST, T> Query for SqlLiteral<ST, T>
impl<ST, T, Conn> RunQueryDsl<Conn> for SqlLiteral<ST, T>
[src]
impl<ST, T, Conn> RunQueryDsl<Conn> for SqlLiteral<ST, T>
fn execute(self, conn: &Conn) -> QueryResult<usize> where
Conn: Connection,
Self: ExecuteDsl<Conn>,
[src]
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
fn load<U>(self, conn: &Conn) -> QueryResult<Vec<U>> where
Self: LoadQuery<Conn, U>,
[src]
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 more
fn get_result<U>(self, conn: &Conn) -> QueryResult<U> where
Self: LoadQuery<Conn, U>,
[src]
fn get_result<U>(self, conn: &Conn) -> QueryResult<U> where
Self: LoadQuery<Conn, U>,
Runs the command, and returns the affected row. Read more
fn get_results<U>(self, conn: &Conn) -> QueryResult<Vec<U>> where
Self: LoadQuery<Conn, U>,
[src]
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 more
fn first<U>(self, conn: &Conn) -> QueryResult<U> where
Self: LimitDsl,
Limit<Self>: LoadQuery<Conn, U>,
[src]
fn first<U>(self, conn: &Conn) -> QueryResult<U> where
Self: LimitDsl,
Limit<Self>: LoadQuery<Conn, U>,
Attempts to load a single record. Read more
impl<QS, ST, T> SelectableExpression<QS> for SqlLiteral<ST, T>
[src]
impl<QS, ST, T> SelectableExpression<QS> for SqlLiteral<ST, T>
impl<QS, ST, T> AppearsOnTable<QS> for SqlLiteral<ST, T>
[src]
impl<QS, ST, T> AppearsOnTable<QS> for SqlLiteral<ST, T>
impl<ST, T> NonAggregate for SqlLiteral<ST, T>
[src]
impl<ST, T> NonAggregate for SqlLiteral<ST, T>
Auto Trait Implementations
impl<ST, T> Send for SqlLiteral<ST, T> where
ST: Send,
T: Send,
impl<ST, T> Send for SqlLiteral<ST, T> where
ST: Send,
T: Send,
impl<ST, T> Sync for SqlLiteral<ST, T> where
ST: Sync,
T: Sync,
impl<ST, T> Sync for SqlLiteral<ST, T> where
ST: Sync,
T: Sync,