StandardEngine

Struct StandardEngine 

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

Implementations§

Source§

impl StandardEngine

Source

pub async fn new( multi: TransactionMultiVersion, single: TransactionSingle, 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) -> &TransactionSingle

Source

pub fn single_owned(&self) -> TransactionSingle

Source

pub fn cdc(&self) -> &TransactionCdc

Source

pub fn cdc_owned(&self) -> TransactionCdc

Source

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

Source

pub fn catalog(&self) -> &MaterializedCatalog

Source

pub fn flow_operator_store(&self) -> &FlowOperatorStore

Source

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

Get the current version from the transaction manager

Source

pub async 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

Source

pub fn bulk_insert<'e>( &'e self, identity: &'e Identity, ) -> BulkInsertBuilder<'e, Validated>

Start a bulk insert operation with full validation.

This provides a fluent API for fast bulk inserts that bypasses RQL parsing. All inserts within a single builder execute in one transaction.

§Example
use reifydb_type::params;

engine.bulk_insert(&identity)
    .table("namespace.users")
        .row(params!{ id: 1, name: "Alice" })
        .row(params!{ id: 2, name: "Bob" })
        .done()
    .execute()?;
Source

pub fn bulk_insert_trusted<'e>( &'e self, identity: &'e Identity, ) -> BulkInsertBuilder<'e, Trusted>

Start a bulk insert operation with validation disabled (trusted mode).

Use this for pre-validated internal data where constraint validation can be skipped for maximum performance.

§Safety

The caller is responsible for ensuring the data conforms to the schema constraints. Invalid data may cause undefined behavior.

Trait Implementations§

Source§

impl Clone for StandardEngine

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

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<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Self::Command>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Begin a new command (write) transaction.
Source§

fn begin_query<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Self::Query>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Begin a new query (read) transaction.
Source§

fn command_as( &self, identity: &Identity, rql: &str, params: Params, ) -> SendableFrameStream

Execute a command and return a stream of result frames. Read more
Source§

fn query_as( &self, identity: &Identity, rql: &str, params: Params, ) -> SendableFrameStream

Execute a query and return a stream of result frames. Read more
Source§

impl ExecuteCommand<StandardCommandTransaction> for StandardEngine

Source§

fn execute_command<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, txn: &'life1 mut StandardCommandTransaction, cmd: Command<'life2>, ) -> Pin<Box<dyn Future<Output = Result<Vec<Frame>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source§

impl ExecuteQuery<StandardQueryTransaction> for StandardEngine

Source§

fn execute_query<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, txn: &'life1 mut StandardQueryTransaction, qry: Query<'life2>, ) -> Pin<Box<dyn Future<Output = Result<Vec<Frame>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Source§

impl WithEventBus for StandardEngine

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> CloneToUninit for T
where T: Clone,

Source§

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
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> 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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

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

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

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

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

Uses borrowed data to replace owned data, usually by cloning. 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<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