Skip to main content

SqlContext

Struct SqlContext 

Source
pub struct SqlContext<'context, 'connection> { /* private fields */ }
Expand description

Host SQL inside one journaled write transaction.

The underlying transaction remains private so host SQL cannot remove Coven’s authorizer or address Coven-owned attached schemas.

Implementations§

Source§

impl<'context, 'connection> SqlContext<'context, 'connection>

Source

pub fn execute<P>(&self, sql: &str, params: P) -> Result<usize, Error>
where P: Params,

Source

pub fn execute_batch(&self, sql: &str) -> Result<(), Error>

Source

pub fn query_row<T, P, F>( &self, sql: &str, params: P, map: F, ) -> Result<T, Error>
where P: Params, F: FnOnce(&Row<'_>) -> Result<T, Error>,

Source

pub fn query<T, P, F>( &self, sql: &str, params: P, map: F, ) -> Result<Vec<T>, Error>
where P: Params, F: FnMut(&Row<'_>) -> Result<T, Error>,

Source

pub fn stamp(&self) -> String

Source

pub fn insert_external_blob( &self, table: &str, row_id: &str, prepared: PreparedExternalBlob, insert_sql: &str, params: &[(&str, &dyn ToSql)], ) -> Result<(), DbError>

Insert a user-provided blob row without exposing its content hash to the host. insert_sql names :coven_external_blob_hash where the declared hash column belongs; params supplies every other named parameter. Coven binds its private digest, verifies the inserted row and prepared file, and registers the exact source path in this transaction.

Source

pub fn register_external_blob( &self, table: &str, row_id: &str, prepared: PreparedExternalBlob, ) -> Result<(), DbError>

Source

pub fn validate_row_blob_ref( &self, reference: &RowBlobRef, ) -> Result<(), DbError>

Require an earlier blob reference to still describe this transaction’s current row and stored object. Call before changing or deleting the row; a stale reference aborts the write when the error is propagated.

Source

pub fn enqueue_blob_delete(&self, blob: &RowBlobRef) -> Result<(), DbError>

Source

pub fn clear_external_blob( &self, table: &str, row_id: &str, ) -> Result<(), DbError>

Source

pub fn materialized_sequence( &self, stream_id: &str, ) -> Result<Option<u64>, DbError>

Auto Trait Implementations§

§

impl<'context, 'connection> Freeze for SqlContext<'context, 'connection>

§

impl<'context, 'connection> !RefUnwindSafe for SqlContext<'context, 'connection>

§

impl<'context, 'connection> !Send for SqlContext<'context, 'connection>

§

impl<'context, 'connection> !Sync for SqlContext<'context, 'connection>

§

impl<'context, 'connection> Unpin for SqlContext<'context, 'connection>

§

impl<'context, 'connection> UnsafeUnpin for SqlContext<'context, 'connection>

§

impl<'context, 'connection> !UnwindSafe for SqlContext<'context, 'connection>

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

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
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.
§

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
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,