Skip to main content

Portal

Struct Portal 

Source
#[non_exhaustive]
pub struct Portal<S> { pub name: String, pub statement: Arc<StoredStatement<S>>, pub parameter_format: Format, pub parameters: Vec<Option<Bytes>>, pub result_column_format: Format, pub state: Arc<Mutex<PortalExecutionState>>, }
Expand description

Represent a prepared sql statement and its parameters bound by a Bind request.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§name: String§statement: Arc<StoredStatement<S>>§parameter_format: Format§parameters: Vec<Option<Bytes>>§result_column_format: Format§state: Arc<Mutex<PortalExecutionState>>

Implementations§

Source§

impl<S: Clone> Portal<S>

Source

pub fn try_new( bind: &Bind, statement: Arc<StoredStatement<S>>, ) -> PgWireResult<Self>

Try to create portal from bind command and current client state

Source

pub fn new_cursor(name: String, statement: Arc<StoredStatement<S>>) -> Self

Create a cursor-oriented portal with a stored statement.

The portal starts in Initial state. The first call to fetch() after start() will begin returning rows. Use start() to provide a QueryResponse before fetching.

Source

pub fn parameter_len(&self) -> usize

Get number of parameters

Source

pub fn parameter<'a, T>( &'a self, idx: usize, pg_type: &Type, ) -> PgWireResult<Option<T>>
where T: FromSqlOwned + FromSqlText<'a>,

Attempt to get parameter at given index as type T.

Source

pub fn state(&self) -> Arc<Mutex<PortalExecutionState>>

Get a handle to the portal’s execution state.

Source

pub async fn start(&self, response: QueryResponse)

Transition the portal from Initial to Suspended with the given query response.

This is called by the query handler after executing the portal’s statement, before calling fetch() to retrieve rows.

Source

pub async fn fetch(&self, max_rows: usize) -> PgWireResult<FetchResult>

Fetch up to max_rows from a portal’s suspended state.

Returns a FetchResult containing the rows, the row schema, and whether the portal is still suspended (has more rows). When the underlying stream is exhausted, the portal transitions to Finished. When max_rows is 0, all remaining rows are fetched.

Returns an error if the portal is in Initial state (call start() first) or if the stream yields an error.

Trait Implementations§

Source§

impl<S: Debug> Debug for Portal<S>

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<S: Default> Default for Portal<S>

Source§

fn default() -> Portal<S>

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<S> Freeze for Portal<S>

§

impl<S> !RefUnwindSafe for Portal<S>

§

impl<S> Send for Portal<S>
where S: Sync + Send,

§

impl<S> Sync for Portal<S>
where S: Sync + Send,

§

impl<S> Unpin for Portal<S>

§

impl<S> UnsafeUnpin for Portal<S>

§

impl<S> !UnwindSafe for Portal<S>

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

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.