pub struct Statement { /* private fields */ }
Expand description

A builder for a prepared statement (created by SnowflakeClient)

Implementations§

source§

impl Statement

source

pub fn new(sql: &str, config: &SnowflakeClient) -> Statement

Create a new statement from a SQL string and a SnowflakeClient

Usually you will want to use SnowflakeClient::prepare instead of this method but the difference is merely ergonomic.

source

pub async fn query(&self) -> Result<QueryResponse, SnowflakeError>

Execute SQL that returns a result set

This supports multiple partitions, which are streamed lazily but the first partition is buffered immediately.

For a single partition, consider using QueryResponse::only_partition.

source

pub async fn manipulate(&self) -> Result<Changes, SnowflakeError>

Execute SQL that does not return a result set

This is useful for DML statements like INSERT, UPDATE, and DELETE

source

pub fn with_timeout(self, timeout_seconds: u64) -> Statement

Set the Snowflake-side timeout for the statement

The client-side timeout will automatically be set to this value plus 15 seconds

The default server side timeout is 172800 seconds (2 days), which is far too long for the use cases this library is targeting, so this library defaults to 30 seconds on the server side if not specified, implying a client-side timeout of 45 seconds.

source

pub fn add_binding<T: Into<Binding>>(self, value: T) -> Statement

Add a binding to the statement

Several types are supported:

  • All integers are converted to i128 and bound as NUMBER
  • f64 and f32 are bound as REAL
  • bool, &str, String, chrono::NaiveDate, chrono::NaiveDateTime, and chrono::NaiveTime are bound as TEXT

More types may be supported in the future.

Text is the most flexible type, and for additional types you can usually workaround by converting to text before binding. Or, you could contribute to this library and add support

Trait Implementations§

source§

impl Clone for Statement

source§

fn clone(&self) -> Statement

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for Statement

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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.

§

impl<T> Instrument for T

§

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

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

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

§

type Output = T

Should always be Self
source§

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

§

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>,

§

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>,

§

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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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