Skip to main content

TableHandle

Trait TableHandle 

Source
pub trait TableHandle: Send + Sync {
    // Required methods
    fn table_ref(&self) -> &TableReference;
    fn schema(&self) -> SchemaRef;
    fn full_scan(&self) -> QuillSQLResult<Box<dyn TupleStream>>;
    fn full_tuple(&self, rid: RecordId) -> QuillSQLResult<(TupleMeta, Tuple)>;
    fn insert(
        &self,
        txn: &mut TxnContext<'_>,
        tuple: &Tuple,
        indexes: &[Arc<dyn IndexHandle>],
    ) -> QuillSQLResult<()>;
    fn delete(
        &self,
        txn: &mut TxnContext<'_>,
        rid: RecordId,
        prev_meta: TupleMeta,
        prev_tuple: Tuple,
        indexes: &[Arc<dyn IndexHandle>],
    ) -> QuillSQLResult<()>;
    fn update(
        &self,
        txn: &mut TxnContext<'_>,
        rid: RecordId,
        new_tuple: Tuple,
        prev_meta: TupleMeta,
        prev_tuple: Tuple,
        indexes: &[Arc<dyn IndexHandle>],
    ) -> QuillSQLResult<RecordId>;
    fn prepare_row_for_write(
        &self,
        txn: &mut TxnContext<'_>,
        rid: RecordId,
        observed_meta: &TupleMeta,
    ) -> QuillSQLResult<Option<(TupleMeta, Tuple)>>;
    fn undo_insert(
        &self,
        rid: RecordId,
        txn_id: TransactionId,
    ) -> QuillSQLResult<()>;
    fn undo_delete(
        &self,
        rid: RecordId,
        prev_meta: TupleMeta,
        prev_tuple: Tuple,
    ) -> QuillSQLResult<()>;
}

Required Methods§

Source

fn table_ref(&self) -> &TableReference

Source

fn schema(&self) -> SchemaRef

Source

fn full_scan(&self) -> QuillSQLResult<Box<dyn TupleStream>>

Source

fn full_tuple(&self, rid: RecordId) -> QuillSQLResult<(TupleMeta, Tuple)>

Source

fn insert( &self, txn: &mut TxnContext<'_>, tuple: &Tuple, indexes: &[Arc<dyn IndexHandle>], ) -> QuillSQLResult<()>

Source

fn delete( &self, txn: &mut TxnContext<'_>, rid: RecordId, prev_meta: TupleMeta, prev_tuple: Tuple, indexes: &[Arc<dyn IndexHandle>], ) -> QuillSQLResult<()>

Source

fn update( &self, txn: &mut TxnContext<'_>, rid: RecordId, new_tuple: Tuple, prev_meta: TupleMeta, prev_tuple: Tuple, indexes: &[Arc<dyn IndexHandle>], ) -> QuillSQLResult<RecordId>

Source

fn prepare_row_for_write( &self, txn: &mut TxnContext<'_>, rid: RecordId, observed_meta: &TupleMeta, ) -> QuillSQLResult<Option<(TupleMeta, Tuple)>>

Source

fn undo_insert( &self, rid: RecordId, txn_id: TransactionId, ) -> QuillSQLResult<()>

Source

fn undo_delete( &self, rid: RecordId, prev_meta: TupleMeta, prev_tuple: Tuple, ) -> QuillSQLResult<()>

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§