/** * metona-sqlark Engine Interface — 存储引擎抽象接口 * @module engine/interface */ import type { QueryPlan, TableSchema } from '../constants'; // --------------------------------------------------------------------------- // IStorageEngine — 所有存储引擎必须实现的接口 // --------------------------------------------------------------------------- export interface IStorageEngine { /** 引擎名称 */ readonly name: string; /** 打开数据库 */ open(dbName: string, version: number): Promise; /** 关闭数据库 */ close(): Promise; /** 检查数据库是否已打开 */ isOpen(): boolean; /** 创建表 */ createTable(schema: TableSchema): Promise; /** 删除表 */ dropTable(tableName: string): Promise; /** 检查表是否存在 */ hasTable(tableName: string): Promise; /** 获取所有表名 */ getTableNames(): Promise; /** 获取表结构 */ getTableSchema(tableName: string): Promise; /** 插入行,返回主键值列表 */ insert(tableName: string, rows: Record[]): Promise; /** 查询行 */ find(tableName: string, query: QueryPlan): Promise[]>; /** 更新行,返回影响行数 */ update(tableName: string, query: QueryPlan, updates: Record): Promise; /** 删除行,返回影响行数 */ delete(tableName: string, query: QueryPlan): Promise; /** 计数 */ count(tableName: string, query?: QueryPlan): Promise; /** 清空表数据(保留结构) */ clear(tableName: string): Promise; }