TableHandle

Trait TableHandle 

Source
pub trait TableHandle: Send + Sync {
    // Required methods
    fn table_ref(&self) -> &TableReference;
    fn schema(&self) -> SchemaRef;
    fn table_heap(&self) -> Arc<TableHeap>;
    fn full_scan(&self) -> QuillSQLResult<Box<dyn TupleStream>>;
    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)>>;
}

Required Methods§

Source

fn table_ref(&self) -> &TableReference

Source

fn schema(&self) -> SchemaRef

Source

fn table_heap(&self) -> Arc<TableHeap>

Source

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

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

Implementors§