2.8 KiB
2.8 KiB
Changelog
All notable changes to MetonaSqlark will be documented in this file.
[0.1.12] - 2026-07-26
Added
MeSqlark别名导出,与MetonaSqlark完全等价metona-sqlark.cjs.jsCommonJS 构建产物- 完善的
where-matcher.ts消除 220+ 行重复代码 $col列引用支持 JOIN ON 条件$and/$or嵌套支持(字段级 + 顶层)$not逻辑非操作符$like正则缓存加速projectColumns列投影支持table.column格式DISTINCT去重支持(O(n) 时间,列值拼接优化)- 测试覆盖率提升至 93.46%(264 测试/15 套件)
Changed
where-matcher统一 MemoryEngine / IndexedDBEngine / Executor 的 WHERE 逻辑- JOIN ON 匹配支持
$col语法 - LIKE 正则改为缓存式编译
- Executor DISTINCT 用列值拼接代替 JSON.stringify
- JOIN 嵌套循环连接优化:避免 ON 时对象扩散
Fixed
- IndexedDBEngine
update/delete方法正确同步内存缓存 - OPFSEngine
getTableNames兼容entries()返回值 - SQL Parser 正确处理字符串转义字符
- SQL Parser 正确处理表别名(无 AS 关键字)
- SQL Parser 解析
IS NULL/IS NOT NULL/NOT LIKE peekTokenIs方法正确暴露给语法分析- 多处边界条件空值/假值处理
[0.1.11] - 2026-07-25
Added
- React 集成 hooks:
useQuery,useTable,useDatabase - Vue 集成 composables:
useSqlarkQuery,useSqlarkTable,useSqlarkDatabase - 发布订阅系统:
subscribe(),emit() - 数据迁移系统:
addMigration(),migrateTo() - 导入导出:
exportTable(),exportAll(),importTable() - 完整 SQL 解析器:
Lexer+Parser(递归下降) - SQL 支持: SELECT, INSERT, UPDATE, DELETE, CREATE TABLE, DROP TABLE
- JOIN 支持: INNER, LEFT, RIGHT, CROSS
- GROUP BY + HAVING + 聚合函数 (COUNT, SUM, AVG, MIN, MAX)
- DISTINCT, ORDER BY, LIMIT, OFFSET
- WHERE 条件: AND, OR, NOT, IN, LIKE, IS NULL
- Query Builder 链式 API:
select().where().orderBy().limit().execute() - 插件系统: 14 种生命周期钩子 + PluginManager
- Metadata 系统: ColumnDef 完整约束 (type/primaryKey/required/unique/index/default/references/maxLength/min/max)
Changed
- 架构重构为分层设计:Engine → QueryExecutor → Table/QueryBuilder → SQL Parser → Public API
- AST 作为统一中间表示,SQL 和 QueryBuilder 行为完全一致
- 测试框架完善:core / edge / groupby / join / query-system / sql / table / engine / transaction / plugin / hybrid 全覆盖
[0.0.1] - 2026-07-24
Added
- 初始项目骨架
- TypeScript 配置(严格模式)
- Rollup 构建(UMD / ESM / CJS / min / .d.ts)
- Jest + jsdom 测试环境
- ESLint + @typescript-eslint
- Gitea Actions CI 工作流
- 示例站点(index / demo / docs)
- 构建脚本 build.sh