Skip to main content

AsyncRowset

Struct AsyncRowset 

Source
pub struct AsyncRowset<'conn> { /* private fields */ }
Expand description

A streaming result set returned from an async query.

See Rowset for the sync equivalent and the full memory-behavior contract — both use constant-memory chunked iteration.

Implementations§

Source§

impl<'conn> AsyncRowset<'conn>

Source

pub fn schema(&self) -> Option<ResultSchema>

Returns the schema (column metadata) for the result set.

For TCP this returns None until the first chunk has been fetched (the RowDescription is the first message of the stream). For Arrow it is available immediately.

Source

pub async fn next_chunk(&mut self) -> Result<Option<Vec<Row>>>

Returns the next chunk of rows, or None when the stream is exhausted.

§Errors
Source

pub async fn collect_rows(self) -> Result<Vec<Row>>

Collects every remaining row into a Vec. Consumes the rowset.

§Errors

Returns the first error produced by next_chunk while draining the stream.

Source

pub async fn collect_column<T: RowValue>(self) -> Result<Vec<Option<T>>>

Collects the first column of every row, preserving NULL as None.

§Errors

Returns the first error produced by next_chunk. SQL NULL cells yield Option::None entries, not errors.

Source

pub async fn collect_column_non_null<T: RowValue>(self) -> Result<Vec<T>>

Collects the first column of every row, dropping NULLs.

§Errors

Returns the first error produced by collect_column.

Source

pub async fn first_row(self) -> Result<Option<Row>>

Returns the first row of the result set, or None if the result is empty. Consumes the rowset.

§Errors

Returns the error from next_chunk. An empty result yields Ok(None).

Source

pub async fn require_first_row(self) -> Result<Row>

Returns the first row, or an error if the result set is empty.

§Errors
Source

pub async fn scalar<T: RowValue>(self) -> Result<Option<T>>

Returns the first column of the first row as Option<T>, or an error if the result set is empty.

§Errors

Returns the error from require_first_row. SQL NULL in the single cell yields Ok(None).

Source

pub async fn require_scalar<T: RowValue>(self) -> Result<T>

Returns the first column of the first row as T, or an error if the result set is empty or the value is NULL.

§Errors
  • Returns the error from scalar.
  • Returns crate::Error::Other with message "Scalar query returned NULL" if the single cell is SQL NULL.

Trait Implementations§

Source§

impl Debug for AsyncRowset<'_>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'conn> Freeze for AsyncRowset<'conn>

§

impl<'conn> !RefUnwindSafe for AsyncRowset<'conn>

§

impl<'conn> Send for AsyncRowset<'conn>

§

impl<'conn> !Sync for AsyncRowset<'conn>

§

impl<'conn> Unpin for AsyncRowset<'conn>

§

impl<'conn> UnsafeUnpin for AsyncRowset<'conn>

§

impl<'conn> !UnwindSafe for AsyncRowset<'conn>

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

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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