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§
Sourcefn create_table(&mut self, schema: TableSchema) -> DbResult<()>
fn create_table(&mut self, schema: TableSchema) -> DbResult<()>
创建表
Sourcefn drop_table(&mut self, name: &str) -> DbResult<()>
fn drop_table(&mut self, name: &str) -> DbResult<()>
删除表
Sourcefn get_schema(&self, name: &str) -> DbResult<TableSchema>
fn get_schema(&self, name: &str) -> DbResult<TableSchema>
获取表 schema(返回克隆,支持锁守卫场景)