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>;
}