diff --git a/PLAN-v0.7.5.md b/PLAN-v0.7.5.md index 445c23d..a43ad1a 100644 --- a/PLAN-v0.7.5.md +++ b/PLAN-v0.7.5.md @@ -762,7 +762,7 @@ connection-manager/integrations/migration)两份完整报告,以及测试质 **验证**:新增 `tests/v080-sql-three-valued.test.ts` —— 26 条 SQL 语义矩阵 × 4 引擎(memory/disk/hybrid/aria)+ UPDATE/DELETE 写路径,共 **104 断言**。 -**测试规模**:1304 → **1742 通过 / 89 套件**(另 e2e 14 项)。新增: +**测试规模**:1304 → **1872 通过 / 90 套件**(另 4 个重型套件与 e2e 14 项)。新增: `tests/v080-savepoint.test.ts`、`v080-atomicity.test.ts`、`v080-subscribe.test.ts`、 `v080-correlated.test.ts`、`v080-sql-three-valued.test.ts`、 `v080-unified-validation.test.ts`、`v080-query-layer.test.ts`、 @@ -803,17 +803,26 @@ connection-manager/integrations/migration)两份完整报告,以及测试质 | ~~P1~~ | ~~A35 JOIN NULL 键~~ | ✅ `841db2e`(JOIN 的 NULL 键不成立,且与右表有无索引无关) | | ~~P1~~ | ~~A37 未限定列名 / WHERE 列存在性~~ | ✅ `567d150` | | ~~P1~~ | ~~A38/A39 压缩被遮蔽 / O(n²)~~ | ✅ `97b9fa4` | -| P1 | A40/A41 Aria `close()` 活跃事务守卫、`dropTable` DDL 原子性 | 待做 | -| P0 | **B-6 存储单一提交点(manifest)** | 部分(KVStore 三处止血已完成;Aria 见 A40/A41) | -| P1 | **B-4 统一表达式求值器**(CASE 正则切分、聚合表达式、列引用) | 部分(聚合与列引用已统一,见文末说明) | -| P1 | **B-5 结构化 AST 表达式节点 + 输出列序号** | 待做 | +| ~~P1~~ | ~~A41 DDL 原子性~~ | ✅ `bf93ec5`(A40 经探针未复现,已固化为护栏) | +| ~~P0~~ | ~~**B-6 存储单一提交点(manifest)**~~ | ✅ KVStore 三处止血(`edd9f1d`/`68e4731`)+ Aria DDL WAL 意图(`bf93ec5`) | +| ~~P1~~ | ~~**B-4 统一表达式求值器**~~ | ✅ `3983aae`(CASE 结构化解析 + 列引用/聚合统一) | +| ~~P1~~ | ~~**B-5 输出列序号 + 分隔标识符**~~ | ✅ `2c945ee` | | ~~—~~ | ~~PC-2 e2e 真崩溃注入(CDP `Page.crash`)~~ | ✅ `6a0cfeb`(14 项 e2e,含两个 OPFS 写入窗口) | | — | PC-4/PC-5 契约测试 + 属性测试 | 部分(跨引擎参数化已用于 A1/A2/A15/B-1/B-3) | | — | PG 文档与站点全量同步 | 待做 | -**下一步建议**:A40/A41(Aria `close()` 活跃事务守卫、`dropTable` DDL 原子性) -→ B-4 统一表达式求值(CASE 的正则切分整类)→ B-5 结构化 AST + 输出列序号 -→ PG 文档与站点同步。 +**下一步建议**:v0.8.0 的三条工作流(A 全部缺陷 / B-1~B-6 结构根治 / C 验证 +基础设施)与 G1~G6 门禁均已完成(见附录 G)。后续版本方向: + +1. **真跨表快照** — `backup()` 目前是逐表读取(已如实写进已知限制)。真快照需要 + 行所有权改为 COW(引擎内所有写入路径统一"新对象替换"而非就地修改), + 改动面较大但路径清晰; +2. **MVCC 真快照隔离** — `snapshotLsn`/`prevVersion` 目前只写不读,事务串行。 + 若确有多事务并发需求,需让读路径走版本链而不是 `txnSnapshot`; +3. **简单 CASE 形式** — `CASE <表达式> WHEN <值> THEN ...`(当前仅搜索式); +4. **复合主键** — 存储布局与外键引用目前假设单主键; +5. **B-1 遗留** — `AriaEngine` 的 compaction / merge 写入路径尚未过 + `validatePayload`(数据来自本引擎内部生成的 SSTable,非用户输入)。 **已完成的验证基础设施(本轮重点)**: - PC-2 真崩溃注入(CDP `Page.crash`)+ OPFS `createWritable` 的两个写入窗口;