RawSql

Struct RawSql 

Source
pub struct RawSql(/* private fields */);
Expand description

One or more raw SQL statements, separated by semicolons (;).

See raw_sql() for details.

Implementations§

Source§

impl RawSql

Source

pub async fn execute<'e, E, DB>(self, executor: E) -> Result<DB::QueryResult>
where DB: Database, E: Executor<'e, Database = DB>,

Execute the SQL string and return the total number of rows affected.

Source

pub fn execute_many<'e, E, DB>( self, executor: E, ) -> BoxStream<'e, Result<DB::QueryResult>>
where DB: Database, E: Executor<'e, Database = DB>,

Execute the SQL string. Returns a stream which gives the number of rows affected for each statement in the string.

Source

pub fn fetch<'e, E, DB>( self, executor: E, ) -> BoxStream<'e, Result<DB::Row, Error>>
where DB: Database, E: Executor<'e, Database = DB>,

Execute the SQL string and return the generated results as a stream.

If the string contains multiple statements, their results will be concatenated together.

Source

pub fn fetch_many<'e, E, DB>( self, executor: E, ) -> BoxStream<'e, Result<Either<DB::QueryResult, DB::Row>, Error>>
where DB: Database, E: Executor<'e, Database = DB>,

Execute the SQL string and return the generated results as a stream.

For each query in the stream, any generated rows are returned first, then the QueryResult with the number of rows affected.

Source

pub fn fetch_all<'e, E, DB>( self, executor: E, ) -> BoxFuture<'e, Result<Vec<DB::Row>>>
where DB: Database, E: Executor<'e, Database = DB>,

Execute the SQL string and return all the resulting rows collected into a Vec.

§Note: beware result set size.

This will attempt to collect the full result set of the query into memory.

To avoid exhausting available memory, ensure the result set has a known upper bound, e.g. using LIMIT.

Source

pub fn fetch_one<'e, E, DB>(self, executor: E) -> BoxFuture<'e, Result<DB::Row>>
where DB: Database, E: Executor<'e, Database = DB>,

Execute the SQL string, returning the first row or Error::RowNotFound otherwise.

§Note: for best performance, ensure the query returns at most one row.

Depending on the driver implementation, if your query can return more than one row, it may lead to wasted CPU time and bandwidth on the database server.

Even when the driver implementation takes this into account, ensuring the query returns at most one row can result in a more optimal query plan.

If your query has a WHERE clause filtering a unique column by a single value, you’re good.

Otherwise, you might want to add LIMIT 1 to your query.

Source

pub async fn fetch_optional<'e, E, DB>( self, executor: E, ) -> Result<Option<DB::Row>>
where DB: Database, E: Executor<'e, Database = DB>,

Execute the SQL string, returning the first row or None otherwise.

§Note: for best performance, ensure the query returns at most one row.

Depending on the driver implementation, if your query can return more than one row, it may lead to wasted CPU time and bandwidth on the database server.

Even when the driver implementation takes this into account, ensuring the query returns at most one row can result in a more optimal query plan.

If your query has a WHERE clause filtering a unique column by a single value, you’re good.

Otherwise, you might want to add LIMIT 1 to your query.

Trait Implementations§

Source§

impl<DB: Database> Execute<'_, DB> for RawSql

Source§

fn sql(self) -> SqlStr

Gets the SQL that will be executed.
Source§

fn statement(&self) -> Option<&<DB as Database>::Statement>

Gets the previously cached statement, if available.
Source§

fn take_arguments( &mut self, ) -> Result<Option<<DB as Database>::Arguments>, BoxDynError>

Returns the arguments to be bound against the query string. Read more
Source§

fn persistent(&self) -> bool

Returns true if the statement should be cached.

Auto Trait Implementations§

§

impl Freeze for RawSql

§

impl RefUnwindSafe for RawSql

§

impl Send for RawSql

§

impl Sync for RawSql

§

impl Unpin for RawSql

§

impl UnwindSafe for RawSql

Blanket Implementations§

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> 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. 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> 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
Source§

impl<T> ErasedDestructor for T
where T: 'static,