StorageEngine

Trait StorageEngine 

Source
pub trait StorageEngine: Send + Sync {
    // Required methods
    fn table_heap(
        &self,
        catalog: &Catalog,
        table: &TableReference,
    ) -> QuillSQLResult<Arc<TableHeap>>;
    fn table_indexes(
        &self,
        catalog: &Catalog,
        table: &TableReference,
    ) -> QuillSQLResult<Vec<Arc<BPlusTreeIndex>>>;
    fn mvcc_insert(
        &self,
        catalog: &Catalog,
        table: &TableReference,
        tuple: &Tuple,
        txn_id: TransactionId,
        cid: CommandId,
    ) -> QuillSQLResult<(Arc<TableHeap>, RecordId)>;
    fn mvcc_update(
        &self,
        heap: &Arc<TableHeap>,
        rid: RecordId,
        new_tuple: Tuple,
        txn_id: TransactionId,
        cid: CommandId,
    ) -> QuillSQLResult<(RecordId, TupleMeta)>;
    fn mvcc_delete(
        &self,
        heap: &Arc<TableHeap>,
        rid: RecordId,
        txn_id: TransactionId,
        cid: CommandId,
    ) -> QuillSQLResult<TupleMeta>;
}

Required Methods§

Source

fn table_heap( &self, catalog: &Catalog, table: &TableReference, ) -> QuillSQLResult<Arc<TableHeap>>

Source

fn table_indexes( &self, catalog: &Catalog, table: &TableReference, ) -> QuillSQLResult<Vec<Arc<BPlusTreeIndex>>>

Source

fn mvcc_insert( &self, catalog: &Catalog, table: &TableReference, tuple: &Tuple, txn_id: TransactionId, cid: CommandId, ) -> QuillSQLResult<(Arc<TableHeap>, RecordId)>

Source

fn mvcc_update( &self, heap: &Arc<TableHeap>, rid: RecordId, new_tuple: Tuple, txn_id: TransactionId, cid: CommandId, ) -> QuillSQLResult<(RecordId, TupleMeta)>

Source

fn mvcc_delete( &self, heap: &Arc<TableHeap>, rid: RecordId, txn_id: TransactionId, cid: CommandId, ) -> QuillSQLResult<TupleMeta>

Implementors§