# ChuSQL 长期路线图

交付状态和验收只以 progress.txt 为准；近期顺序见 side-branch-plan.txt。
本文件描述目标，不代表现有实现或功能承诺。

目标链路：SQL → 解析与绑定 → 类型化中间表示 → 规划与优化 → 执行 → Rust 存储。

类型化中间表示（Typed IR）是已经确定类型与引用关系的查询结构；能力（Capability）描述类型支持的运算。代数数据类型（ADT）用于表达多个可选构造分支，多版本并发控制（MVCC）用于管理数据版本和读取快照。

类型能力与权限保持独立；catalog 保存对象、依赖和语义，内核保留必要基础机制。

## 阶段目标

按以下阶段推进；括号中的编号沿用原路线图：

| 阶段 | 目标 |
| --- | --- |
| A 类型与函数基础 | 稳定 TypeId / FunctionId、注册表、逻辑/物理类型分离、版本化值；验收见 progress.txt。 |
| B 能力与运算（2–6） | 类型能力、运算符、类型转换、聚合，以及参数多态与约束解析。 |
| C 复合与自定义类型（7–12） | 代数数据类型、记录/复合类型、命名类型/领域、参数化类型、范围和用户类型。 |
| D 函数与效果（13–16） | 用户函数、效果管理、纯计算生成列和有副作用的触发器。 |
| E 权限与类型化查询（17–19） | 权限能力、类型化查询 Query a，以及查询重写与优化器的函数化。 |
| F 扩展 | 对象体系统一后实现 Extension 的版本、依赖、安装/升级/移除；其他访问方法按真实需求推进。 |

## 贯穿约束

- 现有 ColumnType / Expr / RelOp 有真实消费者；迁移时逐步收拢，不提前删除兼容桥。
- 每阶段验证持久化、升级、依赖和恢复，不能靠重新初始化掩盖不兼容。
- 内建对象可由可信 bootstrap 元数据恢复；用户对象依赖 WAL / 备份。
- catalog 版本与 bootstrap / recovery 匹配，系统目录索引可重建。
- 不提前增加孤立扩展或绕过事务、权限及依赖管理。
