StandardEngine

Struct StandardEngine 

Source
pub struct StandardEngine(/* private fields */);

Implementations§

Source§

impl StandardEngine

Source

pub fn new( multi: TransactionMultiVersion, single: TransactionSingleVersion, cdc: TransactionCdc, event_bus: EventBus, interceptors: Box<dyn InterceptorFactory<StandardCommandTransaction>>, catalog: MaterializedCatalog, ) -> Self

Source

pub fn with_functions( multi: TransactionMultiVersion, single: TransactionSingleVersion, cdc: TransactionCdc, event_bus: EventBus, interceptors: Box<dyn InterceptorFactory<StandardCommandTransaction>>, catalog: MaterializedCatalog, custom_functions: Option<Functions>, ) -> Self

Source

pub fn multi(&self) -> &TransactionMultiVersion

Source

pub fn multi_owned(&self) -> TransactionMultiVersion

Source

pub fn single(&self) -> &TransactionSingleVersion

Source

pub fn single_owned(&self) -> TransactionSingleVersion

Source

pub fn cdc(&self) -> &TransactionCdc

Source

pub fn cdc_owned(&self) -> TransactionCdc

Source

pub fn emit<E: Event>(&self, event: E)

Source

pub fn catalog(&self) -> &MaterializedCatalog

Source

pub fn flow_operator_store(&self) -> &FlowOperatorStore

Source

pub fn current_version(&self) -> Result<CommitVersion>

Get the current version from the transaction manager

Source

pub fn try_wait_for_watermark( &self, version: CommitVersion, timeout: Duration, ) -> Result<(), AwaitWatermarkError>

Wait for the watermark to reach the specified version. Returns Ok(()) if the watermark reaches the version within the timeout, or Err(AwaitWatermarkError) if the timeout expires.

This is useful for CDC polling to ensure all in-flight commits have completed their storage writes before querying for CDC events.

Source

pub fn done_until(&self) -> CommitVersion

Returns the highest version where ALL prior versions have completed. This is useful for CDC polling to know the safe upper bound for fetching CDC events - all events up to this version are guaranteed to be in storage.

Source

pub fn watermarks(&self) -> (CommitVersion, CommitVersion)

Returns (query_done_until, command_done_until) for debugging watermark state.

Source

pub fn executor(&self) -> Executor

Source

pub fn register_virtual_table<T: TableVirtualUser + Clone>( &self, namespace: &str, name: &str, table: T, ) -> Result<TableVirtualId>

Register a user-defined virtual table.

The virtual table will be available for queries using the given namespace and name.

§Arguments
  • namespace - The namespace name (e.g., “default”, “my_namespace”)
  • name - The table name
  • table - The virtual table implementation
§Returns

The assigned TableVirtualId on success.

§Example
use reifydb_engine::table_virtual::{TableVirtualUser, TableVirtualUserColumnDef};
use reifydb_type::Type;
use reifydb_core::value::Value;

#[derive(Clone)]
struct MyTable;

impl TableVirtualUser for MyTable {
    fn columns(&self) -> Vec<TableVirtualUserColumnDef> {
        vec![TableVirtualUserColumnDef::new("id", Type::Uint8)]
    }
    fn rows(&self) -> Vec<Vec<Value>> {
        vec![vec![Value::Uint8(1)], vec![Value::Uint8(2)]]
    }
}

let id = engine.register_virtual_table("default", "my_table", MyTable)?;
Source

pub fn unregister_virtual_table( &self, namespace: &str, name: &str, ) -> Result<()>

Unregister a user-defined virtual table.

§Arguments
  • namespace - The namespace name
  • name - The table name
Source

pub fn register_virtual_table_iterator<F>( &self, namespace: &str, name: &str, creator: F, ) -> Result<TableVirtualId>
where F: Fn() -> Box<dyn TableVirtualUserIterator> + Send + Sync + 'static,

Register a user-defined virtual table using an iterator-based implementation.

This method is for tables that stream data in batches, which is more efficient for large datasets. The creator function is called once per query to create a fresh iterator instance.

§Arguments
  • namespace - The namespace to register the table in
  • name - The table name
  • creator - A function that creates a new iterator instance for each query
§Returns

The ID of the registered virtual table

Trait Implementations§

Source§

impl Clone for StandardEngine

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Deref for StandardEngine

Source§

type Target = EngineInner

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl Engine for StandardEngine

Source§

type Command = StandardCommandTransaction

Source§

type Query = StandardQueryTransaction

Source§

fn begin_command(&self) -> Result<Self::Command>

Source§

fn begin_query(&self) -> Result<Self::Query>

Source§

fn command_as( &self, identity: &Identity, rql: &str, params: Params, ) -> Result<Vec<Frame>>

Source§

fn query_as( &self, identity: &Identity, rql: &str, params: Params, ) -> Result<Vec<Frame>>

Source§

impl ExecuteCommand<StandardCommandTransaction> for StandardEngine

Source§

impl ExecuteQuery<StandardQueryTransaction> for StandardEngine

Source§

fn execute_query( &self, txn: &mut StandardQueryTransaction, qry: Query<'_>, ) -> Result<Vec<Frame>>

Source§

impl WithEventBus for StandardEngine

Auto Trait Implementations§

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> From<T> for T

§

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
§

impl<T, U> Into<U> for T
where U: From<T>,

§

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

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

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