Skip to main content

StorageEngine

Trait StorageEngine 

Source
pub trait StorageEngine {
    // Required methods
    fn create_table(&mut self, schema: TableSchema) -> DbResult<()>;
    fn drop_table(&mut self, name: &str) -> DbResult<()>;
    fn has_table(&self, name: &str) -> bool;
    fn get_schema(&self, name: &str) -> DbResult<TableSchema>;
    fn insert(&mut self, table: &str, row: Row) -> DbResult<RowId>;
    fn get(&self, table: &str, row_id: RowId) -> DbResult<Option<Row>>;
    fn update(
        &mut self,
        table: &str,
        row_id: RowId,
        values: Row,
    ) -> DbResult<()>;
    fn delete(&mut self, table: &str, row_id: RowId) -> DbResult<Option<Row>>;
    fn scan(&self, table: &str) -> DbResult<Vec<(RowId, Row)>>;
}
Expand description

存储引擎 trait

Required Methods§

Source

fn create_table(&mut self, schema: TableSchema) -> DbResult<()>

创建表

Source

fn drop_table(&mut self, name: &str) -> DbResult<()>

删除表

Source

fn has_table(&self, name: &str) -> bool

检查表是否存在

Source

fn get_schema(&self, name: &str) -> DbResult<TableSchema>

获取表 schema(返回克隆,支持锁守卫场景)

Source

fn insert(&mut self, table: &str, row: Row) -> DbResult<RowId>

插入行

Source

fn get(&self, table: &str, row_id: RowId) -> DbResult<Option<Row>>

获取行(返回克隆,支持锁守卫场景)

Source

fn update(&mut self, table: &str, row_id: RowId, values: Row) -> DbResult<()>

更新行

Source

fn delete(&mut self, table: &str, row_id: RowId) -> DbResult<Option<Row>>

删除行

Source

fn scan(&self, table: &str) -> DbResult<Vec<(RowId, Row)>>

扫描全表(返回克隆,支持锁守卫场景)

Implementors§