RuntimeSession

Struct RuntimeSession 

Source
pub struct RuntimeSession { /* private fields */ }
Expand description

A session for executing operations with optional transaction support.

This is a high-level wrapper around the transaction machinery that provides a clean API for users. Operations can be executed directly or within a transaction.

Implementations§

Source§

impl RuntimeSession

Source

pub fn namespace_registry(&self) -> Arc<RwLock<RuntimeStorageNamespaceRegistry>>

Source

pub fn begin_transaction(&self) -> Result<RuntimeStatementResult<BoxedPager>>

Begin a transaction in this session. Creates an empty staging context for new tables created within the transaction. Existing tables are accessed via MVCC visibility filtering - NO data copying occurs.

Source

pub fn abort_transaction(&self)

Mark the current transaction as aborted due to an error. This should be called when any error occurs during a transaction.

Source

pub fn has_active_transaction(&self) -> bool

Check if this session has an active transaction.

Source

pub fn is_aborted(&self) -> bool

Check if the current transaction has been aborted due to an error.

Source

pub fn is_table_created_in_transaction(&self, table_name: &str) -> bool

Check if a table was created in the current active transaction.

Source

pub fn table_column_specs_from_transaction( &self, table_name: &str, ) -> Option<Vec<PlanColumnSpec>>

Get column specifications for a table created in the current transaction. Returns None if there’s no active transaction or the table wasn’t created in it.

Source

pub fn tables_referencing_in_transaction( &self, referenced_table: &str, ) -> Vec<String>

Get tables that reference the given table via foreign keys created in the current transaction. Returns an empty vector if there’s no active transaction or no transactional FKs reference this table.

Source

pub fn commit_transaction(&self) -> Result<RuntimeStatementResult<BoxedPager>>

Commit the current transaction and apply changes to the base context. If the transaction was aborted, this acts as a ROLLBACK instead.

Source

pub fn rollback_transaction(&self) -> Result<RuntimeStatementResult<BoxedPager>>

Rollback the current transaction, discarding all changes.

Source

pub fn execute_insert_plan( &self, plan: InsertPlan, ) -> Result<RuntimeStatementResult<BoxedPager>>

Insert rows (outside or inside transaction).

Source

pub fn execute_select_plan( &self, plan: SelectPlan, ) -> Result<RuntimeStatementResult<BoxedPager>>

Select rows (outside or inside transaction).

Source

pub fn table_rows(&self, table: &str) -> Result<Vec<Vec<PlanValue>>>

Convenience helper to fetch all rows from a table within this session.

Source

pub fn execute_update_plan( &self, plan: UpdatePlan, ) -> Result<RuntimeStatementResult<BoxedPager>>

Source

pub fn execute_delete_plan( &self, plan: DeletePlan, ) -> Result<RuntimeStatementResult<BoxedPager>>

Source

pub fn execute_truncate_plan( &self, plan: TruncatePlan, ) -> Result<RuntimeStatementResult<BoxedPager>>

Trait Implementations§

Source§

impl CatalogDdl for RuntimeSession

Implement CatalogDdl directly on the session so callers must import the trait to perform schema mutations. This keeps all runtime DDL entry points aligned with the shared contract used by contexts and storage namespaces.

Source§

type CreateTableOutput = RuntimeStatementResult<BoxedPager>

Output of executing a CREATE TABLE plan.
Source§

type DropTableOutput = RuntimeStatementResult<BoxedPager>

Output of executing a DROP TABLE plan.
Source§

type RenameTableOutput = ()

Output of executing a table rename.
Source§

type AlterTableOutput = RuntimeStatementResult<BoxedPager>

Output of executing an ALTER TABLE plan.
Source§

type CreateIndexOutput = RuntimeStatementResult<BoxedPager>

Output of executing a CREATE INDEX plan.
Source§

type DropIndexOutput = RuntimeStatementResult<BoxedPager>

Output of executing a DROP INDEX plan.
Source§

fn create_table(&self, plan: CreateTablePlan) -> Result<Self::CreateTableOutput>

Creates a table described by the given plan.
Source§

fn drop_table(&self, plan: DropTablePlan) -> Result<Self::DropTableOutput>

Drops a table identified by the given plan.
Source§

fn create_view(&self, plan: CreateViewPlan) -> Result<()>

Creates a view described by the given plan.
Source§

fn drop_view(&self, plan: DropViewPlan) -> Result<()>

Drops a view identified by the given plan.
Source§

fn rename_table(&self, plan: RenameTablePlan) -> Result<Self::RenameTableOutput>

Renames a table using the provided plan.
Source§

fn alter_table(&self, plan: AlterTablePlan) -> Result<Self::AlterTableOutput>

Alters a table using the provided plan.
Source§

fn create_index(&self, plan: CreateIndexPlan) -> Result<Self::CreateIndexOutput>

Creates an index described by the given plan.
Source§

fn drop_index(&self, plan: DropIndexPlan) -> Result<Self::DropIndexOutput>

Drops a single-column index described by the given plan, returning metadata about the index when it existed.

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.

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

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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