Skip to main content

Executor

Struct Executor 

Source
pub struct Executor<'a> { /* private fields */ }

Implementations§

Source§

impl<'a> Executor<'a>

Source

pub fn new(store: &'a GraphStore) -> Self

Source

pub fn execute(&self, stmt: &Statement) -> Result<QueryResult, QueryError>

Dispatches on whether stmt ever mutates anything. A read-only statement (MATCH ... RETURN, is_read_only below) runs inside a ReadTransaction — a consistent snapshot that doesn’t contend for redb’s single-writer lock, so concurrent readers run in parallel instead of queueing behind each other. Everything else runs inside a WriteTransaction, committed or aborted as a whole — the crash-safety boundary from the plan (one statement = one commit). Every graph access below this point must go through the *_in_txn GraphStore methods, never the standalone self.store.* methods, which open (and would deadlock trying to re-open) their own transaction.

Source

pub fn execute_with_options( &self, stmt: &Statement, options: &ExecutionOptions, ) -> Result<QueryResult, QueryError>

Source

pub fn execute_in_write_transaction( &self, stmt: &Statement, write_txn: &WriteTransaction, ) -> Result<QueryResult, QueryError>

Execute without committing against a caller-owned write transaction. The caller must commit or abort the transaction. This is the low-level primitive used by marsdb::Transaction for atomic multi-statement units of work.

Source

pub fn execute_in_write_transaction_with_options( &self, stmt: &Statement, write_txn: &WriteTransaction, options: &ExecutionOptions, ) -> Result<QueryResult, QueryError>

Auto Trait Implementations§

§

impl<'a> !Freeze for Executor<'a>

§

impl<'a> !RefUnwindSafe for Executor<'a>

§

impl<'a> !Send for Executor<'a>

§

impl<'a> !Sync for Executor<'a>

§

impl<'a> !UnwindSafe for Executor<'a>

§

impl<'a> Unpin for Executor<'a>

§

impl<'a> UnsafeUnpin for Executor<'a>

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> AnyExt for T
where T: Any + ?Sized,

Source§

fn downcast_ref<T>(this: &Self) -> Option<&T>
where T: Any,

Attempts to downcast this to T behind reference
Source§

fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>
where T: Any,

Attempts to downcast this to T behind mutable reference
Source§

fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>
where T: Any,

Attempts to downcast this to T behind Rc pointer
Source§

fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>
where T: Any,

Attempts to downcast this to T behind Arc pointer
Source§

fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>
where T: Any,

Attempts to downcast this to T behind Box pointer
Source§

fn downcast_move<T>(this: Self) -> Option<T>
where T: Any, Self: Sized,

Attempts to downcast owned Self to T, useful only in generic context as a workaround for specialization
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, X> CoerceTo<T> for X
where T: CoerceFrom<X> + ?Sized,

Source§

fn coerce_rc_to(self: Rc<X>) -> Rc<T>

Source§

fn coerce_box_to(self: Box<X>) -> Box<T>

Source§

fn coerce_ref_to(&self) -> &T

Source§

fn coerce_mut_to(&mut self) -> &mut T

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