feat: v0.1.13 — 事务回滚 + 子查询 + 外键级联 + 连接池
This commit is contained in:
@@ -2,6 +2,38 @@
|
||||
|
||||
All notable changes to MetonaSqlark will be documented in this file.
|
||||
|
||||
## [0.1.13] - 2026-07-26
|
||||
|
||||
### Added
|
||||
- **事务回滚机制**: `IStorageEngine` 新增 `beginTransaction/commitTransaction/rollbackTransaction` 接口
|
||||
- MemoryEngine: 快照式回滚(深拷贝 tables/schemas/indexes)
|
||||
- IndexedDBEngine: 延迟写入策略(事务中仅写内存,commit 批量刷 IDB)
|
||||
- OPFSEngine: 快照式回滚(commit 批量写文件)
|
||||
- HybridEngine: 同时代理内存+磁盘引擎事务
|
||||
- **子查询支持**: SQL Parser + Executor 支持 `IN (SELECT ...)` 和 `op (SELECT ...)` 子查询
|
||||
- AST 新增 `SubqueryExpression` 类型
|
||||
- Parser 在 IN 和比较运算符后检测子查询
|
||||
- Executor 新增 `resolveSubqueries()` 递归解析,自动执行子查询并替换为具体值
|
||||
- **外键级联操作**: ColumnDef 新增 `onDelete/onUpdate` 选项
|
||||
- 支持 `CASCADE`(递归级联删除)、`SET NULL`、`RESTRICT`
|
||||
- SQL Parser 解析 `REFERENCES table(col) ON DELETE CASCADE ON UPDATE CASCADE`
|
||||
- MemoryEngine 内置 `cascadeDelete()` 递归级联逻辑
|
||||
- **连接池管理**: `MetonaSqlark.connect()` 静态方法
|
||||
- 同名数据库复用已打开实例,引用计数管理
|
||||
- `db.disconnect()` 释放连接,归零自动 close
|
||||
- `MetonaSqlark.disconnectAll()` 强制关闭所有连接
|
||||
|
||||
### Changed
|
||||
- `TransactionManager.execute()` 调用引擎层 begin/commit/rollback 实现真正原子性
|
||||
- IndexedDBEngine CRUD 事务感知:活跃事务中延迟 IDB 写入
|
||||
- ASTColumnDef / astColumnToColumnDef 支持 references/onDelete/onUpdate 透传
|
||||
|
||||
### Fixed
|
||||
- IndexedDBEngine 事务中 find/count 从内存缓存读取(保证读到未提交变更)
|
||||
- SQL Parser parseColumnDef 循环条件扩展,避免 REFERENCES 语法解析中断
|
||||
|
||||
---
|
||||
|
||||
## [0.1.12] - 2026-07-26
|
||||
|
||||
### Added
|
||||
|
||||
Reference in New Issue
Block a user