diff --git a/CHANGELOG.md b/CHANGELOG.md index 1bf923b..b014a08 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,57 @@ All notable changes to MetonaSqlark will be documented in this file. +## [0.4.2] - 2026-08-09 + +### Fixed + +- **AriaEngine 残缺 SSTable 导致打开崩溃(P0)** — 异常退出后下次打开抛原生 `RangeError: offset is out of bounds`,库打不开只能删库重建。三处根治: + - `SSTableReader` 读路径防御:块偏移/大小越界时跳过该块(get/rangeScan/scanAll 返回空或继续),索引块/块内条目解析全程边界检查,不再抛 RangeError + - 打开时完整性校验:`LSM.init()` 校验 meta 引用的文件存在、长度 ≥ 头、可解析,残缺的忽略并清理 meta/文件(自愈,不阻塞打开) + - WAL 原子写入:`IndexedDBBackend` 新增 `writeMany`/`deleteMany`(单事务批量写删),WAL 记录与 count 计数同事务提交,中断整体回滚不留半写 +- **IndexedDB 版本管理缺陷导致重启必报 VersionError(P0)** — 建表每张版本号 +1 而 `open()` 用 `config.version`,重启后版本过低直接失败。`open()` 遇 VersionError 自动用无版本参数探测库当前实际版本并以该版本重开 +- **`create({ version: 0 })` 抛原生 TypeError(P0)** — 版本 < 1 统一归一化为 1,不再直接炸 `indexedDB.open(name, 0)` +- **WAL 写丢失(P1)** — 连续快速写入 200 条 close+重开实测丢 4 条。WAL 恢复不再依赖 count 计数,改为扫描全部 `__wal_*` 键(数值排序拼接),count 键只作序号分配器;配合原子写入彻底消除 count/记录竞态 +- **AriaEngine.close() 不 checkpoint,WAL 无限重放(P1)** — close 前补 `wal.checkpoint()` 截断,下次打开不再重放已落盘的历史记录 +- **引擎内部错误不包装 DatabaseError(P1)** — AriaEngine `open()` 整体 try/catch 包装为 `ARIA_OPEN_ERROR`;IndexedDBEngine 打开路径统一 `IDB_OPEN_ERROR`/`IDB_VERSION_ERROR`/`IDB_BLOCKED`,应用层可拿 code 分类处理 +- **`migrateTo` 版本门槛与引擎版本脱节(P2)** — 迁移版本持久化到库内(`IStorageEngine.getMeta/setMeta` 可选接口,Aria 存 backend、IndexedDB 复用 `__metona_schema` store、OPFS 存元数据文件、Hybrid 委托磁盘引擎),重启后从持久化版本继续执行,不重跑不跳跑 +- **IndexedDB `onblocked` 直接 reject(P2)** — 改为等待后重试(阻塞解除后 success 仍触发,仅超时判失败,并防止连接泄漏),多次重试仍阻塞才抛 `IDB_BLOCKED` +- **缺少官方崩溃恢复/自愈接口(P2)** — 新增 `db.repair()`(校验清理损坏数据并恢复一致性)与 `db.clearAll()`(清空全部数据与表结构,保留库),全部引擎(Aria/IndexedDB/OPFS/Memory/Hybrid)实现,无需删库重建 +- **IndexedDB `__metona_schema` store 缺失时元数据无法落盘** — `open()` 时确保 schema/meta store 存在(缺失则一次版本升级创建) + +### Fixed(深度审计第二轮) + +- **AriaEngine 二级索引跨重启丢失(严重)** — 重开只恢复 schema 不恢复索引 LSM:索引查询静默回退全表、`createIndex` 因 schema 标记已存在而直接 return → 索引永久缺失;且 WAL 崩溃恢复只回放主 LSM,最后一批写入的索引缺失 → 索引查询丢行。三处根治:open 时按 schema 标记重建索引 LSM(数据已持久化直接加载)、close 时同步落盘全部索引 LSM、WAL 恢复完成后全量重建索引 +- **AriaEngine Compaction 依赖缓存丢数据(严重)** — `compactLevelAsync` 仅从 LRU 缓存读 SSTable,缓存未命中(单文件超缓存上限被驱逐、频繁 flush)时跳过全部文件并从 levels 移除 → 运行中数据全部不可见(重启才恢复)。改为从存储兜底加载;无有效数据时将文件放回 levels 不删除 +- **AriaEngine flush/compaction 失败卡死写路径(严重)** — flushChain 链上任务抛错后永久 rejected,后续所有 flush/compaction 挂起。链上任务统一吞错恢复(记录告警,链继续) +- **ALTER TABLE 在 IndexedDB/Hybrid/OPFS 引擎不持久化** — v0.4.1 只给 Aria 加了引擎级 `alterTable`,其余引擎走通用路径只改内存 schema 引用:重启后 ADD/DROP 全部回退,DROP 的行数据也残留。为 IndexedDB(持久化 schema + 重写存储行)/ Hybrid(双引擎)/ OPFS / Memory 统一实现引擎级 `alterTable` +- **IndexedDB 事务内 DDL 崩溃(严重)** — 事务内建表 commit 时 IDB 无对应 store 报错;事务内删表 IDB store 残留 → 重启幽灵表。`flushToIDB` 提交时 diff 内存表与 IDB store:缺失的创建(含 schema 持久化)、多余的删除(含 schema 记录清理);commit 顺序调整为"先刷盘后提交内存快照",失败可回滚 +- **Hybrid 内存/磁盘引擎共享 schema 引用污染** — `reloadMemoryFromDisk` 把磁盘引擎的 schema 对象直接存入内存引擎,任一引擎 ALTER 都改到对方。`MemoryEngine.createTable` 深拷贝 schema(全引擎受益) +- **Hybrid commit 失败路径错误掩盖** — 磁盘已提交后内存提交失败时调 `diskEngine.rollbackTransaction()` 抛 TX_NONE 掩盖原错误;如实上报磁盘已提交状态 +- **AriaEngine.close 运行期状态残留** — close 后 MVCC/事务快照/savepoint 残留,重开后 `beginTransaction` 报 TX_ACTIVE。close 统一清理 +- **VACUUM 对 2-3 个文件层级不压缩** — `compactLevel` public 门槛与内部自动调度门槛混用(内部 4 / VACUUM 期望 2)。分离参数化 + +### Fixed(生产就绪审计第三轮) + +- **Aria 事务进行中 checkpoint 截断 WAL(严重,P0)** — checkpoint(tick/forceCheckpoint)在活跃事务中途执行时 truncate WAL,BEGIN/INSERT 记录被截断,事务 COMMIT 后崩溃恢复丢失整个事务数据。CheckpointManager 包装 WAL:事务活跃时跳过截断(close/repair/clearAll 仍正常截断) +- **Aria dropTable / DROP_TABLE 恢复不清理二级索引(P1)** — 索引 LSM 孤儿残留,重建同名表后旧索引数据污染新表(按旧值索引查询返回不匹配行)。新增 `cleanupTableIndexes`:dropTable、崩溃恢复、ALTER DROP 索引列统一清理 +- **Aria ALTER TABLE DROP 索引列残留(P1)** — 删列但索引 LSM 保留,后续同名列索引数据脏 +- **Aria freezeMemtable 阈值逐次衰减(P2)** — 新 memtable 用旧表已用大小当阈值,手动 flush 后阈值塌缩 → 频繁小文件。改回配置阈值 +- **Aria 事务中 DDL 静默不一致(P2)** — 事务快照只覆盖行数据,createTable/dropTable/alterTable 无法回滚;与 Memory/IndexedDB 可回滚行为不一致 → 显式抛 `NOT_SUPPORTED`(不再静默) +- **ON UPDATE 外键级联未实现(P2,声称支持但静默忽略)** — 实现 `ON UPDATE CASCADE/SET NULL/RESTRICT`(Memory + Aria 双引擎):更新主键时级联更新/拒绝,含二级索引与 WAL 记录,先全量 RESTRICT 检查再执行防部分修改;update 同时支持主键变更(旧键删除 + 新键落表) +- **MVCC commit/rollback 全库版本遍历(P2 性能)** — 大表事务 commit O(全库版本数)。按事务记录写入的 key 精准清理(O(写入数)) +- **OPFS 空表重启消失 + schema/索引丢失(P1)** — 表 schema 持久化到元数据文件:createTable/dropTable/alterTable/createIndex 同步;重启从 schema 恢复(空表保留、主键/索引标记/约束完整),无 schema 的旧库回退数据推断(兼容) +- **OPFS dropTable 不清理 schema 记录(P1)** — 重启恢复幽灵表;删表同步清理 +- **OPFS 并发写验证** — 审计确认内存写同步、持久化快照总是最新(单标签页无丢更新竞态),新增并发写回归测试锁定行为 +- **VACUUM 返回值语义** — `gcVersions` 返回活跃事务数改为全局提交序列号 + +### Changed + +- 测试 894 → **944**(50 套件),新增 `tests/v042-fixes.test.ts`(23 条问题清单回归)、`tests/v042-hardening.test.ts`(12 条深度审计回归)与 `tests/v043-hardening.test.ts`(15 条生产就绪回归:事务×checkpoint、DDL 索引清理、OPFS 持久化、memtable 阈值、红黑树 5000 次随机压力、onUpdate 级联) +- 版本号升至 v0.4.2 + +--- + ## [0.4.1] - 2026-08-08 ### Added diff --git a/README.md b/README.md index 98fb1cd..417597e 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # MetonaSqlark

- version + version license - coverage - tests + coverage + tests

> 基于 TypeScript 的**前端关系型数据库**,支持完整 SQL 查询、Query Builder 链式 API、与 **AriaEngine 自研页面式存储引擎**。 @@ -14,19 +14,21 @@ ## ✨ 特性 - 🚀 **AriaEngine 自研存储引擎** — LSM-Tree 页面式存储,4KB Slotted Page、WAL 崩溃恢复(full 模式真正同步)、LZ4 压缩 -- 💾 **OPFS 自研存储后端** — 纯浏览器文件系统,零 IndexedDB 依赖,二进制页面文件 -- 🔒 **生产级数据安全** — WAL CRC 完整性校验、`RESTRICT` 外键约束、Hybrid 提交原子性、SQL 注入防护 +- 💾 **OPFS 自研存储后端** — 纯浏览器文件系统,零 IndexedDB 依赖,二进制页面文件,schema 持久化(空表/索引跨重启完整保留) +- 🔒 **生产级数据安全** — WAL 原子写入 + CRC 完整性校验、`RESTRICT` 外键约束、崩溃恢复自愈(`repair()` 无需删库重建)、SQL 注入防护 - 🛡 **输入校验全覆盖** — `maxLength`/`min`/`max` 约束、类型检查、必填验证 - 💾 **多引擎架构** — Memory / IndexedDB / OPFS / Hybrid(write-through) / Aria 五种模式 - 📝 **完整 SQL 支持** — SELECT/JOIN/子查询/GROUP BY/HAVING/ORDER BY/LIMIT/BETWEEN/IF NOT EXISTS/ALTER TABLE/TRUNCATE TABLE/UNION/INSERT...SELECT/事务语句/CREATE INDEX/EXISTS(v0.3.0)+ CASE WHEN/哈希连接/组提交(v0.3.1)+ 多标签页同步(v0.3.2) -- 🚰 **流式查询** — `queryStream`/`stream()` 逐行回调,Aria LSM 惰性扫描不物化结果集(v0.4.1) -- 🧩 **派生表** — `FROM (SELECT ...)` 子查询作为行源,多列 ON 哈希连接,COUNT(DISTINCT),NULLS FIRST/LAST(v0.4.1) +- 🚰 **流式查询** — `queryStream`/`stream()` 逐行回调,Aria LSM 惰性扫描不物化结果集(v0.4.0) +- 🧩 **派生表** — `FROM (SELECT ...)` 子查询作为行源,多列 ON 哈希连接,COUNT(DISTINCT),NULLS FIRST/LAST(v0.4.0) - 🔗 **Query Builder API** — 链式 `.select().where().orderBy().limit().execute()` - 🔄 **事务回滚** — Memory/IndexedDB/Hybrid/Aria 四引擎事务原子性,自动回滚,MVCC 版本链接入读写路径 +- 🔗 **外键级联** — ON DELETE + ON UPDATE(CASCADE / SET NULL / RESTRICT)全引擎支持,支持更新主键(v0.4.2) +- 🛡 **崩溃恢复自愈** — 残缺 SSTable 打开自动跳过、`db.repair()` 自愈、`db.clearAll()` 重置、迁移版本持久化(v0.4.2) - 🌲 **RB-Tree 完整实现** — 标准红黑树插入+删除修复,O(log n) 保证 - ⚡ **性能优化** — SSTableReader 二分查找统一、IndexedDB 索引利用、crypto 实例化避免全局状态 - 🌐 **浏览器兼容** — Chrome 80+ / Firefox 80+ / Safari 14+ / Edge 80+ / Node.js 16+ -- 🧪 **894 测试 · 81.5% 覆盖率** — 47 套件,生产级质量保证 +- 🧪 **944 测试 · 84.2% 覆盖率** — 50 套件,生产级质量保证 --- @@ -167,17 +169,24 @@ const hasOrders = await db.query('SELECT * FROM users u WHERE EXISTS (SELECT 1 F const labeled = await db.query("SELECT name, CASE WHEN age >= 18 THEN 'adult' ELSE 'minor' END AS status FROM users"); const joinExists = await db.query('SELECT u.name FROM users u JOIN orders o ON u.id = o.user_id WHERE EXISTS (SELECT 1 FROM orders o2 WHERE o2.user_id = u.id AND o2.amount > 150)'); -// v0.4.1 — 流式查询(大表逐行回调,不物化全部结果) +// v0.4.0 — 流式查询(大表逐行回调,不物化全部结果) let count = 0; await db.queryStream('SELECT * FROM logs WHERE level = \'error\'', (row) => { count++; processRow(row); }); -// v0.4.1 — 派生表 / 多列哈希连接 / COUNT(DISTINCT) / NULLS 排序 +// v0.4.0 — 派生表 / 多列哈希连接 / COUNT(DISTINCT) / NULLS 排序 const top = await db.query('SELECT dept, total FROM (SELECT dept, SUM(salary) AS total FROM emp GROUP BY dept) AS t WHERE total > 100 ORDER BY total DESC'); await db.query('SELECT COUNT(DISTINCT city) AS n FROM users'); await db.query('SELECT name FROM users ORDER BY age ASC NULLS FIRST'); +// v0.4.2 — 崩溃恢复自愈(无需删库重建) +await db.repair(); // 校验清理损坏数据,恢复一致性 +await db.clearAll(); // 清空全部数据与表结构(保留库本身) +// v0.4.2 — 迁移版本持久化(重启后从持久化版本继续,不重跑不跳跑) +db.addMigration(1, async (d) => { /* ... */ }); +await db.migrateTo(1); + // 事务 — 自动回滚 v0.1.13 await db.transaction(async (trx) => { await trx.table('users').insert({ id: '3', name: 'Charlie' }); @@ -218,8 +227,8 @@ await db2.disconnect(); // 引用计数 -1 | `index` | `boolean` | 创建哈希索引 | | `default` | `unknown` | 默认值 | | `references` | `string` | 外键引用 `'table.column'` | -| `onDelete` | `'CASCADE'\|'SET NULL'\|'RESTRICT'` | 删除级联 🆕 | -| `onUpdate` | `'CASCADE'\|'SET NULL'\|'RESTRICT'` | 更新级联 🆕 | +| `onDelete` | `'CASCADE'\|'SET NULL'\|'RESTRICT'` | 删除级联 ✅ v0.4.1 | +| `onUpdate` | `'CASCADE'\|'SET NULL'\|'RESTRICT'` | 更新级联(更新主键时触发)✅ v0.4.2 | ### WHERE 操作符 @@ -239,9 +248,11 @@ await db2.disconnect(); // 引用计数 -1 | `db.table(name)` | 获取表操作对象 | | `db.defineTable(name, cols)` | 定义表结构 | | `db.transaction(fn)` | 执行事务(自动回滚)🆕 | +| `db.repair()` | 崩溃恢复自愈:校验清理损坏数据、恢复索引一致性(无需删库重建)🆕 v0.4.2 | +| `db.clearAll()` | 清空全部数据与表结构(保留库本身,实例可继续使用)🆕 v0.4.2 | | `db.exportTable(name)` / `db.exportAll()` | 导出数据 JSON | | `db.importTable(name, data)` | 导入数据 | -| `db.addMigration(v, fn)` / `db.migrateTo(v)` | 数据迁移 | +| `db.addMigration(v, fn)` / `db.migrateTo(v)` | 数据迁移(版本持久化到库内,重启不重跑)🆕 v0.4.2 | | `db.subscribe(table, fn)` | 订阅表变更 | | `db.on(hook, fn)` | 注册钩子 (14 种) | @@ -272,14 +283,14 @@ const { data, loading, refresh } = useSqlarkQuery(db, 'SELECT * FROM users'); | 特性 | Memory | Disk (IndexedDB) | Disk (OPFS) | Hybrid | Aria | |------|--------|------------------|-------------|--------|------| -| **持久化** | ❌ 重启丢失 | ✅ IndexedDB | ✅ OPFS文件系统 | ✅ 内存+磁盘 | ✅ 后端决定 | +| **持久化** | ❌ 重启丢失 | ✅ IndexedDB | ✅ OPFS(schema 持久化) | ✅ 内存+磁盘 | ✅ 后端决定 | | **事务回滚** | ✅ 快照 | ✅ 原子flush | ✅ 快照 | ✅ 双引擎 | ✅ MVCC | -| **二级索引** | ✅ Hash | ✅ Hash | ✅ Hash | ✅ Hash | ✅ LSM | +| **二级索引** | ✅ Hash | ✅ Hash | ✅ Hash(重启恢复) | ✅ Hash | ✅ LSM(重启恢复) | | **查询性能** | ⚡ O(1) PK | 🟡 O(1) PK | 🟡 O(1) PK | ⚡ O(1) PK | ⚡ O(log n) | -| **数据上限** | 内存限制 | ~2GB(IDB限制) | ~磁盘可用 | ~2GB(IDB) | 内存限制 | +| **数据上限** | 内存限制 | ~2GB(IDB限制) | ~磁盘可用(整表重写,≤1000行/表为宜) | ~2GB(IDB) | 内存限制 | | **浏览器** | 全部 | 全部 | Chrome/Edge 102+ | 全部 | 全部 | | **适用场景** | 缓存/测试 | 标准持久化 | Chromium专有 | 速度+持久化 | 大规模/分析 | -| **测试覆盖** | 30+ | 30+ | 12 | 15+ | 200+ | +| **测试覆盖** | 30+ | 30+ | 15 | 15+ | 200+ | ### Memory 模式 - **环境**: 所有浏览器、Node.js @@ -296,7 +307,7 @@ const { data, loading, refresh } = useSqlarkQuery(db, 'SELECT * FROM users'); ### Disk (OPFS) 模式 - **环境**: **仅限** Chrome 102+ / Edge 102+(Origin Private File System) - **限制**: Firefox/Safari 不支持 OPFS API;每次写入重写整表 JSON 文件(大表性能差,不建议 >1000 行) -- **能力**: 完整 CRUD、重启自动加载数据、事务回滚 +- **能力**: 完整 CRUD、重启自动加载数据(空表/索引/schema 完整保留,v0.4.2)、事务回滚、并发写安全(内存快照一致) - **适用**: Chromium 独占场景、小数据集持久化 ### Hybrid 模式 @@ -308,7 +319,7 @@ const { data, loading, refresh } = useSqlarkQuery(db, 'SELECT * FROM users'); ### Aria 模式 - **环境**: 所有浏览器(后端可选 IndexedDB / OPFS / Memory) - **限制**: Memory 后端重启丢失;IndexedDB 后端受配额限制;OPFS 后端仅 Chromium -- **能力**: LSM-Tree 存储引擎、二级索引、MVCC 事务、WAL 崩溃恢复、Bloom Filter、AES-GCM 加密、Savepoint、EXPLAIN、ANALYZE、REINDEX、VACUUM +- **能力**: LSM-Tree 存储引擎、二级索引(跨重启恢复)、MVCC 事务、WAL 原子写入崩溃恢复(残缺 SSTable 打开自动跳过)、ON UPDATE/DELETE 外键级联、Bloom Filter、AES-GCM 加密、Savepoint、EXPLAIN、ANALYZE、REINDEX、VACUUM、`repair()` 自愈 - **适用**: 大规模数据分析、需要自研引擎可控性的高级场景 --- @@ -358,12 +369,13 @@ const rows = await db.query('SELECT * FROM users'); | 特性 | 说明 | |------|------| -| **LSM-Tree** | MemTable (红黑树) → SSTable 多级索引,异步 Compaction,写背压 | -| **WAL** | Write-Ahead Log 二进制格式,CRC 校验,full/batch/none 三种模式(full 模式真正同步 ✅ v0.2.5),16MB 阈值自动 checkpoint | -| **MVCC** | 版本链 + 快照隔离,事务读写不互斥,自动 GC(每10次检查点),读写路径接入版本链 ✅ v0.2.5 | +| **LSM-Tree** | MemTable (红黑树) → SSTable 多级索引,异步 Compaction(从存储兜底加载,不依赖缓存),写背压 | +| **WAL** | Write-Ahead Log 二进制格式,CRC 校验,记录与计数单事务原子写入,full/batch/none 三种模式(full 模式真正同步 ✅ v0.2.5),16MB 阈值自动 checkpoint(活跃事务期间不截断 ✅ v0.4.2) | +| **崩溃恢复** | 打开时完整性校验(残缺 SSTable 自动跳过并清理)、WAL 按 key 扫描恢复(不丢记录)、恢复后自动重建二级索引 ✅ v0.4.2 | +| **MVCC** | 版本链 + 快照隔离,事务读写不互斥,提交/回滚按事务写入 key 精准清理,自动 GC | | **Buffer Pool** | SSTable 缓存 LRU 上限(`bufferPoolPages` × `pageSize`,默认 256 页 ≈ 1MB 可控内存)✅ v0.2.6 生效,查询前异步预加载兜底,缓存驱逐不丢数据 | | **Bloom Filter** | FNV-1a + Murmur 双哈希,SSTable footer 序列化,查询时 probe | -| **二级索引** | 每列独立 LSM Tree,支持 $eq/$in/$gt/$lt 范围扫描,SSTableReader 二分查找统一 ✅ v0.2.5 | +| **二级索引** | 每列独立 LSM Tree,支持 $eq/$in/$gt/$lt 范围扫描,跨重启自动恢复,WAL 恢复后自动重建 ✅ v0.4.2 | | **AES-GCM** | PBKDF2 密钥派生 + AES-256-GCM 页面级加密,CryptoManager 实例化 ✅ v0.2.5 | | **Compaction** | 异步 Leveled Compaction,Level 0 > 8 触发同步背压,compactLevel public 接口 ✅ v0.2.5 | | **OPFS Backend** | 纯浏览器文件系统,Promise 队列串行写,零外部依赖 | @@ -387,9 +399,9 @@ npm run typecheck # 类型检查 | 指标 | 数值 | |------|------| -| 测试用例 | 894 | -| 测试套件 | 47 | -| 行覆盖率 | 81.5% | +| 测试用例 | 944 | +| 测试套件 | 51 | +| 行覆盖率 | 84.2% | | SQL 关键字 | 36 | | 存储引擎 | 5(Memory / IndexedDB / OPFS / Hybrid / **Aria**) | diff --git a/dist/metona-sqlark.cjs b/dist/metona-sqlark.cjs index d697c0e..67123fd 100644 --- a/dist/metona-sqlark.cjs +++ b/dist/metona-sqlark.cjs @@ -34,7 +34,7 @@ class DatabaseError extends Error { // --------------------------------------------------------------------------- // 版本 // --------------------------------------------------------------------------- -const VERSION = '0.4.1'; +const VERSION = '0.4.2'; /** * metona-sqlark Shared WHERE Matcher — 统一的条件匹配逻辑 @@ -230,6 +230,8 @@ class MemoryEngine { this.schemas = new Map(); this.indexes = new Map(); this.opened = false; + /** v0.4.2-fix: 库内元数据(迁移版本持久化用) */ + this.metaStore = new Map(); // ---- 事务快照 ---- this.snapshot = null; } @@ -245,17 +247,41 @@ class MemoryEngine { this.tables.clear(); this.schemas.clear(); this.indexes.clear(); + this.metaStore.clear(); this.opened = false; } isOpen() { return this.opened; } + // ---- v0.4.2-fix: 自愈 / 重置 / 元数据 ---- + /** 内存引擎无需修复(无持久化损坏概念) */ + async repair() { return; } + /** 清空全部数据与表结构 */ + async clearAll() { + const names = Array.from(this.schemas.keys()); + for (const name of names) { + await this.dropTable(name); + } + this.metaStore.clear(); + } + async getMeta(key) { + return this.metaStore.get(key) ?? null; + } + async setMeta(key, value) { + this.metaStore.set(key, value); + } // ---- 表管理 ---- async createTable(schema) { if (this.schemas.has(schema.name)) throw new DatabaseError(`Table "${schema.name}" already exists`, 'TABLE_EXISTS'); - this.schemas.set(schema.name, schema); + // v0.4.2-fix: 存储 schema 深拷贝 — 此前 Hybrid.reloadMemoryFromDisk 直接存入 + // disk 引擎的 schema 引用,内存/磁盘引擎共享同一对象,任一引擎 ALTER 都会污染对方 + const copy = { name: schema.name, columns: {} }; + for (const [colName, colDef] of Object.entries(schema.columns)) { + copy.columns[colName] = { ...colDef }; + } + this.schemas.set(schema.name, copy); this.tables.set(schema.name, new Map()); const tableIndexes = new Map(); - for (const [colName, colDef] of Object.entries(schema.columns)) { + for (const [colName, colDef] of Object.entries(copy.columns)) { if (colDef.index || colDef.unique) tableIndexes.set(colName, new Map()); } @@ -270,6 +296,31 @@ class MemoryEngine { async hasTable(tableName) { return this.schemas.has(tableName); } async getTableNames() { return Array.from(this.schemas.keys()); } async getTableSchema(tableName) { return this.schemas.get(tableName) ?? null; } + /** + * v0.4.2-fix: 引擎级 ALTER TABLE — 直接修改内存 schema 引用并清理行数据。 + * (此前走 executor 通用路径,行为相同;统一到引擎层保证 Hybrid/IndexedDB 委托一致性) + */ + async alterTable(tableName, action, column) { + this.ensureTable(tableName); + const schema = this.schemas.get(tableName); + if (action === 'ADD') { + if (schema.columns[column.name]) { + throw new DatabaseError(`Column "${column.name}" already exists in table "${tableName}"`, 'COLUMN_EXISTS'); + } + schema.columns[column.name] = column; + return; + } + if (!schema.columns[column.name]) { + throw new DatabaseError(`Column "${column.name}" does not exist in table "${tableName}"`, 'COLUMN_NOT_FOUND'); + } + delete schema.columns[column.name]; + // 清理已有行中该列的值(find 返回行引用,直接删除生效) + const table = this.tables.get(tableName); + for (const row of table.values()) { + if (column.name in row) + delete row[column.name]; + } + } // ---- CRUD ---- async insert(tableName, rows) { this.ensureTable(tableName); @@ -337,21 +388,80 @@ class MemoryEngine { this.ensureTable(tableName); const schema = this.schemas.get(tableName); const table = this.tables.get(tableName); + const pkCol = this.getPrimaryKey(schema); let count = 0; - for (const [pk, row] of table) { + // v0.4.2-fix: 迭代期间会 delete/set 同一 Map(主键变更)→ 拷贝快照避免跳过/重复 + for (const [pk, row] of [...table]) { if (!query.where || Object.keys(query.where).length === 0 || matchWhere(row, query.where)) { // v0.3.3: 先移除旧值索引条目(修复 update 后唯一约束被绕过、按新值查索引丢行) this.removeIndexEntries(tableName, row, pk); const updated = { ...row, ...updates }; this.validateRow(schema, updated); this.checkUniqueness(schema, updated); - table.set(pk, updated); - this.updateIndexes(tableName, updated, pk); + const newPk = String(updated[pkCol]); + // v0.4.2-fix: 主键变更 — 删除旧键 + 级联更新引用表 + 新键落表 + if (newPk !== pk) { + await this.applyUpdateCascade(tableName, pk, newPk); + } + table.delete(pk); + table.set(newPk, updated); + this.updateIndexes(tableName, updated, newPk); count++; } } return count; } + /** + * v0.4.2-fix: ON UPDATE 外键级联 — 被引用表主键变更时处理引用表: + * RESTRICT 抛错 / CASCADE 更新 FK 值 / SET NULL 置空。 + * 分两阶段:先全量 RESTRICT 检查(任何修改前),再执行级联(防部分修改)。 + */ + async applyUpdateCascade(tableName, oldPk, newPk) { + // 阶段 1: RESTRICT 检查(引用旧主键的行存在即拒绝) + for (const [refTableName, refSchema] of this.schemas) { + if (refTableName === tableName) + continue; + for (const [colName, colDef] of Object.entries(refSchema.columns)) { + if (!colDef.references || !colDef.onUpdate) + continue; + const [refTable] = colDef.references.split('.'); + if (refTable !== tableName) + continue; + const refTableData = this.tables.get(refTableName); + if (!refTableData) + continue; + for (const [, refRow] of refTableData) { + if (String(refRow[colName]) === oldPk && colDef.onUpdate === 'RESTRICT') { + throw new DatabaseError(`Cannot update "${tableName}" key "${oldPk}": foreign key "${colName}" in "${refTableName}" has dependent rows`, 'FOREIGN_KEY_VIOLATION'); + } + } + } + } + // 阶段 2: CASCADE / SET NULL + for (const [refTableName, refSchema] of this.schemas) { + if (refTableName === tableName) + continue; + for (const [colName, colDef] of Object.entries(refSchema.columns)) { + if (!colDef.references || !colDef.onUpdate) + continue; + const [refTable] = colDef.references.split('.'); + if (refTable !== tableName) + continue; + const refTableData = this.tables.get(refTableName); + if (!refTableData) + continue; + if (colDef.onUpdate !== 'CASCADE' && colDef.onUpdate !== 'SET NULL') + continue; + for (const [refPk, refRow] of refTableData) { + if (String(refRow[colName]) !== oldPk) + continue; + this.removeIndexEntries(refTableName, refRow, refPk); + refRow[colName] = colDef.onUpdate === 'CASCADE' ? newPk : null; + this.updateIndexes(refTableName, refRow, refPk); + } + } + } + } async delete(tableName, query) { this.ensureTable(tableName); const table = this.tables.get(tableName); @@ -697,33 +807,153 @@ class IndexedDBEngine { this.txActive = false; } async open(dbName, version) { + // v0.4.2-fix (P0-3): version < 1 归一化为 1(indexedDB.open(name, 0) 抛原生 TypeError) + const normalizedVersion = version >= 1 ? Math.floor(version) : 1; this.dbName = dbName; - this.version = version; - await this.memoryCache.open(dbName, version); + this.version = normalizedVersion; + await this.memoryCache.open(dbName, normalizedVersion); + // v0.4.2-fix (P0-2/P2-8): 版本自适应打开 + blocked 重试 + this.db = await this.openDatabaseWithRetry(dbName, normalizedVersion); + this.setupVersionChangeHandler(); + // v0.4.2-fix (P2-7): 确保 schema/meta 持久化 store 存在(新库或旧库升级时创建), + // 否则迁移版本等库内元数据无处落盘 + await this.ensureSchemaStore(); + try { + // v0.3.2: reopen 后从 IDB 重建 schema(schema 此前只存内存缓存,重开连接即丢失) + await this.rebuildSchemaFromIDB(); + } + catch (error) { + throw new DatabaseError(`Failed to restore schema for "${dbName}"`, 'IDB_SCHEMA_RESTORE_ERROR', error); + } + } + /** v0.4.2-fix: 多标签页冲突处理 — 其他标签页升级版本时自动关闭当前连接 */ + setupVersionChangeHandler() { + if (!this.db) + return; + this.db.onversionchange = () => { + if (this.db) { + this.db.close(); + this.db = null; + // eslint-disable-next-line no-console + console.warn(`[metona-sqlark] Database "${this.dbName}" was upgraded in another tab. Connection closed. Please re-open.`); + } + }; + } + /** + * v0.4.2-fix: 打开 IndexedDB 连接。 + * - P0-2: 请求版本低于库实际版本(VersionError)时,先无版本参数探测库当前版本, + * 再以实际版本重开(建表每张表版本号 +1,config.version 会过期) + * - P2-8: onblocked 为瞬时状态(另一连接短暂持有),等待后重试多次,超时才抛 IDB_BLOCKED + */ + async openDatabaseWithRetry(dbName, requestedVersion) { + const BLOCKED_RETRIES = 10; + let effectiveVersion = requestedVersion; + for (let attempt = 0; attempt < BLOCKED_RETRIES; attempt++) { + try { + return await this.openRequest(dbName, effectiveVersion, 200 + attempt * 150); + } + catch (error) { + const err = error; + if (err && err.name === 'VersionError') { + const currentVersion = await this.resolveCurrentVersion(dbName); + if (currentVersion >= 1 && currentVersion !== effectiveVersion) { + effectiveVersion = currentVersion; + this.version = currentVersion; + continue; + } + throw new DatabaseError(`Failed to open IndexedDB "${dbName}": version mismatch`, 'IDB_VERSION_ERROR', error); + } + if (err && err.name === 'BlockedError') { + // 另一连接短暂持有 → 等待后重试 + await new Promise((resolve) => setTimeout(resolve, 50 * (attempt + 1))); + continue; + } + throw new DatabaseError(`Failed to open IndexedDB "${dbName}"`, 'IDB_OPEN_ERROR', error); + } + } + throw new DatabaseError(`IndexedDB "${dbName}" is blocked`, 'IDB_BLOCKED'); + } + /** + * 发起一次 indexedDB.open 请求(success/error/blocked 三态收敛)。 + * onblocked 不立即失败:阻塞解除后 success 仍会触发,仅超时兜底判失败, + * 避免"拒绝后连接迟到成功"泄漏未关闭的数据库连接。 + */ + openRequest(dbName, version, timeoutMs) { return new Promise((resolve, reject) => { const request = indexedDB.open(dbName, version); - request.onsuccess = async () => { - this.db = request.result; - // 多标签页冲突处理:其他标签页升级版本时自动关闭当前连接 - this.db.onversionchange = () => { - if (this.db) { - this.db.close(); - this.db = null; - // eslint-disable-next-line no-console - console.warn(`[metona-sqlark] Database "${dbName}" was upgraded in another tab. Connection closed. Please re-open.`); - } - }; - try { - // v0.3.2: reopen 后从 IDB 重建 schema(schema 此前只存内存缓存,重开连接即丢失) - await this.rebuildSchemaFromIDB(); - resolve(); + let settled = false; + const timeout = setTimeout(() => { + if (settled) + return; + settled = true; + // 兼容无 DOMException 构造环境 + const blockedError = typeof DOMException !== 'undefined' + ? new DOMException('IndexedDB open is blocked', 'BlockedError') + : Object.assign(new Error('IndexedDB open is blocked'), { name: 'BlockedError' }); + reject(blockedError); + }, timeoutMs); + request.onsuccess = () => { + if (settled) { + // 超时判失败后连接迟到成功:立即关闭,避免阻塞后续版本升级 + request.result.close(); + return; } - catch (error) { - reject(new DatabaseError(`Failed to restore schema for "${dbName}"`, 'IDB_SCHEMA_RESTORE_ERROR', error)); + settled = true; + clearTimeout(timeout); + resolve(request.result); + }; + request.onerror = () => { + if (settled) + return; + settled = true; + clearTimeout(timeout); + reject(request.error ?? new Error('Unknown IndexedDB open error')); + }; + request.onblocked = () => { + // 保持等待,不拒绝(阻塞解除后 success 会触发;超时由 timer 兜底) + }; + }); + } + /** 无版本参数打开库,解析其当前实际版本号(随后立即关闭) */ + resolveCurrentVersion(dbName) { + return new Promise((resolve, reject) => { + const request = indexedDB.open(dbName); + request.onsuccess = () => { + const actualVersion = request.result.version; + request.result.close(); + resolve(actualVersion); + }; + request.onerror = () => { + reject(request.error ?? new Error('Failed to resolve IndexedDB version')); + }; + }); + } + /** + * v0.4.2-fix (P2-7): 确保 __metona_schema store 存在。 + * 新库(或版本升级前创建的旧库)没有该 store 时,通过一次版本升级创建, + * 使 getMeta/setMeta(迁移版本持久化)始终可用。 + */ + async ensureSchemaStore() { + if (!this.db) + return; + if (this.db.objectStoreNames.contains('__metona_schema')) + return; + const newVersion = this.db.version + 1; + this.db.close(); + this.db = await new Promise((resolve, reject) => { + const request = indexedDB.open(this.dbName, newVersion); + request.onupgradeneeded = () => { + const idb = request.result; + if (!idb.objectStoreNames.contains('__metona_schema')) { + idb.createObjectStore('__metona_schema', { keyPath: 'name' }); } }; - request.onerror = () => reject(new DatabaseError(`Failed to open IndexedDB "${dbName}"`, 'IDB_OPEN_ERROR', request.error)); - request.onblocked = () => reject(new DatabaseError(`IndexedDB "${dbName}" is blocked`, 'IDB_BLOCKED')); + request.onsuccess = () => { + this.db = request.result; + this.setupVersionChangeHandler(); + resolve(request.result); + }; + request.onerror = () => reject(new DatabaseError('Failed to create schema store', 'IDB_UPGRADE_ERROR', request.error)); }); } /** @@ -798,6 +1028,83 @@ class IndexedDBEngine { } await this.memoryCache.close(); } + /** + * v0.4.2-fix: 自愈 — 从磁盘重建内存 schema 与数据(schema 丢失/内存不一致时调用)。 + * 无删库需求即可恢复可用的库。 + */ + async repair() { + if (!this.db) + throw new DatabaseError('Database not opened', 'DB_NOT_OPEN'); + await this.memoryCache.close(); + await this.memoryCache.open(this.dbName, this.version); + await this.rebuildSchemaFromIDB(); + } + /** + * v0.4.2-fix: 清空全部数据与表结构(含持久化 schema 记录),保留库本身。 + * 单个版本升级事务内原子完成。 + */ + async clearAll() { + const db = this.ensureDB(); + // 先清内存缓存 + const tableNames = await this.memoryCache.getTableNames(); + for (const name of tableNames) { + await this.memoryCache.dropTable(name); + } + // 重置 IDB:删除所有表 store + 清空 schema/meta store + const newVersion = db.version + 1; + db.close(); + await new Promise((resolve, reject) => { + const request = indexedDB.open(this.dbName, newVersion); + request.onupgradeneeded = (event) => { + const idb = event.target.result; + const toDelete = Array.from(idb.objectStoreNames).filter((n) => n !== '__metona_schema'); + for (const name of toDelete) { + idb.deleteObjectStore(name); + } + if (!idb.objectStoreNames.contains('__metona_schema')) { + idb.createObjectStore('__metona_schema', { keyPath: 'name' }); + } + else { + // 保留 store 但清空内容(含持久化 schema 与 meta 记录) + const tx = event.target.transaction; + tx.objectStore('__metona_schema').clear(); + } + }; + request.onsuccess = () => { + this.db = request.result; + this.setupVersionChangeHandler(); + resolve(); + }; + request.onerror = () => reject(new DatabaseError('Failed to clear database', 'IDB_CLEAR_ERROR', request.error)); + request.onblocked = () => reject(new DatabaseError(`IndexedDB "${this.dbName}" is blocked`, 'IDB_BLOCKED')); + }); + } + // ---- 库内元数据(v0.4.2-fix:迁移版本持久化用,复用 __metona_schema store) ---- + async getMeta(key) { + const db = this.ensureDB(); + if (!db.objectStoreNames.contains('__metona_schema')) + return null; + return new Promise((resolve, reject) => { + const req = db.transaction('__metona_schema', 'readonly') + .objectStore('__metona_schema').get(`__meta:${key}`); + req.onsuccess = () => { + const rec = req.result; + resolve(rec && typeof rec.schema === 'string' ? rec.schema : null); + }; + req.onerror = () => reject(req.error); + }); + } + async setMeta(key, value) { + const db = this.ensureDB(); + if (!db.objectStoreNames.contains('__metona_schema')) + return; + await new Promise((resolve, reject) => { + const tx = db.transaction('__metona_schema', 'readwrite'); + tx.objectStore('__metona_schema').put({ name: `__meta:${key}`, schema: value }); + tx.oncomplete = () => resolve(); + tx.onerror = () => reject(new DatabaseError(`Failed to persist meta "${key}"`, 'IDB_META_ERROR', tx.error)); + }); + } isOpen() { return this.db !== null; } // ---- 表管理 ---- async createTable(schema) { @@ -815,6 +1122,43 @@ class IndexedDBEngine { async hasTable(tableName) { return this.ensureDB().objectStoreNames.contains(tableName); } async getTableNames() { return Array.from(this.ensureDB().objectStoreNames); } async getTableSchema(tableName) { return this.memoryCache.getTableSchema(tableName); } + /** + * v0.4.2-fix: 引擎级 ALTER TABLE — schema 持久化到 __metona_schema store, + * 重启后 ALTER 不丢失(此前通用路径只改内存引用,重启回退;DROP 的行数据也没真正删)。 + */ + async alterTable(tableName, action, column) { + await this.memoryCache.alterTable(tableName, action, column); + if (this.txActive) + return; // 事务中:commit 时统一 flushToIDB 同步 + const schema = await this.memoryCache.getTableSchema(tableName); + if (schema) { + await this.persistSchema(schema); + } + if (action === 'DROP') { + // 重写 IDB 存储行:移除该列键(store.put 经 keyPath 自动覆盖原行) + const db = this.ensureDB(); + const rows = await this.idbFind(tableName, { table: tableName }); + const rewritten = rows.map((row) => { + if (column.name in row) { + const copy = { ...row }; + delete copy[column.name]; + return copy; + } + return row; + }); + if (rewritten.length > 0) { + await new Promise((resolve, reject) => { + const tx = db.transaction(tableName, 'readwrite'); + const store = tx.objectStore(tableName); + for (const row of rewritten) { + store.put(row); + } + tx.oncomplete = () => resolve(); + tx.onerror = () => reject(new DatabaseError(`Failed to rewrite "${tableName}" after DROP COLUMN`, 'IDB_TX_ERROR', tx.error)); + }); + } + } + } // ---- CRUD ---- async insert(tableName, rows) { const pks = await this.memoryCache.insert(tableName, rows); @@ -922,10 +1266,10 @@ class IndexedDBEngine { async commitTransaction() { if (!this.txActive) throw new DatabaseError('No active transaction', 'TX_NONE'); - // 确认内存层的变更 - await this.memoryCache.commitTransaction(); - // 批量将内存数据刷到 IndexedDB + // v0.4.2-fix: 先刷盘后提交内存快照 — 此前先 memoryCache.commitTransaction() + // 再 flushToIDB,flush 失败时 snapshot 已丢,回滚报 TX_NONE 且内存数据已确认 await this.flushToIDB(); + await this.memoryCache.commitTransaction(); this.txActive = false; } async rollbackTransaction() { @@ -1139,10 +1483,78 @@ class IndexedDBEngine { tx.onerror = () => reject(new DatabaseError(`Clear failed for "${tableName}"`, 'IDB_TX_ERROR', tx.error)); }); } + /** 持久化单个表 schema 到 __metona_schema store(v0.4.2-fix: ALTER TABLE 用) */ + async persistSchema(schema) { + const db = this.ensureDB(); + if (!db.objectStoreNames.contains('__metona_schema')) + return; + await new Promise((resolve, reject) => { + const tx = db.transaction('__metona_schema', 'readwrite'); + tx.objectStore('__metona_schema').put({ name: schema.name, schema: JSON.stringify(schema) }); + tx.oncomplete = () => resolve(); + tx.onerror = () => reject(new DatabaseError(`Failed to persist schema for "${schema.name}"`, 'IDB_SCHEMA_ERROR', tx.error)); + }); + } /** 将内存缓存中的所有表数据原子性刷新到 IndexedDB */ async flushToIDB() { const tableNames = await this.memoryCache.getTableNames(); - const db = this.ensureDB(); + let db = this.ensureDB(); + // v0.4.2-fix: 事务内 DDL 只更新内存,commit 时同步 IDB 的 objectStore 结构: + // 缺失的表 store 创建(并持久化 schema)、已删除的 store 移除(防止重启幽灵表) + const idbStores = Array.from(db.objectStoreNames); + const missing = tableNames.filter((t) => !idbStores.includes(t)); + const stale = idbStores.filter((s) => s !== '__metona_schema' && !tableNames.includes(s)); + if (missing.length > 0 || stale.length > 0) { + // 升级事务内是同步上下文,先异步收集缺失表的 schema(主键列定义) + const schemaMap = new Map(); + for (const name of missing) { + const s = await this.memoryCache.getTableSchema(name); + if (s) + schemaMap.set(name, s); + } + const newVersion = db.version + 1; + db.close(); + await new Promise((resolve, reject) => { + const request = indexedDB.open(this.dbName, newVersion); + request.onupgradeneeded = (event) => { + const idb = event.target.result; + for (const name of stale) { + idb.deleteObjectStore(name); + } + for (const name of missing) { + const schema = schemaMap.get(name); + const pkColumn = schema + ? (Object.entries(schema.columns).find(([, c]) => c.primaryKey)?.[0] ?? Object.keys(schema.columns)[0]) + : undefined; + idb.createObjectStore(name, { keyPath: pkColumn }); + } + // 事务内 drop 的表:同步清理持久化 schema 记录(防止重启后幽灵表恢复) + if (idb.objectStoreNames.contains('__metona_schema') && stale.length > 0) { + const tx = event.target.transaction; + const store = tx.objectStore('__metona_schema'); + for (const name of stale) { + store.delete(name); + } + } + }; + request.onsuccess = () => { + this.db = request.result; + this.setupVersionChangeHandler(); + resolve(); + }; + request.onerror = () => reject(new DatabaseError('Failed to sync stores after transaction', 'IDB_UPGRADE_ERROR', request.error)); + request.onblocked = () => reject(new DatabaseError(`IndexedDB "${this.dbName}" is blocked`, 'IDB_BLOCKED')); + }); + // 事务内新建表的 schema 一并持久化(此前只建 store 不存 schema → 重启后约束推断丢失) + for (const name of missing) { + const schema = await this.memoryCache.getTableSchema(name); + if (schema) + await this.persistSchema(schema); + } + // v0.4.2-fix: DDL 升级会 close 旧连接并重新 open — 重新取 db 引用, + // 否则下方数据 flush 用已关闭的连接抛 InvalidStateError + db = this.ensureDB(); + } // 每个表在一个单独的 IDB 事务中完成 clear+insert,保证原子性 for (const tableName of tableNames) { const rows = await this.memoryCache.find(tableName, { table: tableName }); @@ -1215,15 +1627,65 @@ class OPFSEngine { isOpen() { return this.tablesDir !== null; } + // ---- v0.4.2-fix: 自愈 / 重置 / 元数据 ---- + /** 自愈:重置内存缓存后从 OPFS 重新加载(单文件损坏不影响其他表) */ + async repair() { + await this.memoryCache.close(); + await this.memoryCache.open(this.dbName, 1); + await this.loadExistingTables(); + } + /** 清空全部数据与表结构(删除目录内全部文件) */ + async clearAll() { + await this.memoryCache.close(); + await this.memoryCache.open(this.dbName, 1); + if (this.tablesDir) { + const dir = this.tablesDir; + for await (const [name] of dir.entries()) { + try { + await this.tablesDir.removeEntry(name); + } + catch { /* ignore */ } + } + } + } + async getMeta(key) { + if (!this.tablesDir) + return null; + try { + const fh = await this.tablesDir.getFileHandle(`__metona_${key}.meta`); + const file = await fh.getFile(); + return await file.text(); + } + catch { + return null; + } + } + async setMeta(key, value) { + if (!this.tablesDir) + return; + const fh = await this.tablesDir.getFileHandle(`__metona_${key}.meta`, { create: true }); + const writable = await fh.createWritable(); + await writable.write(value); + await writable.close(); + } // ---- 表管理 ---- async createTable(schema) { await this.memoryCache.createTable(schema); + // v0.4.2-fix: schema 持久化(此前仅写空数据文件 → 空表重启后消失、索引标记丢失) + await this.setMeta(`schema_${schema.name}`, JSON.stringify(schema)); // OPFS 中表以空 JSON 数组文件形式存在 await this.writeTableData(schema.name, []); } async dropTable(tableName) { await this.memoryCache.dropTable(tableName); + // v0.4.2-fix: 清理 schema meta(否则重启恢复幽灵表) if (this.tablesDir) { + try { + await this.tablesDir.removeEntry(`__metona_schema_${tableName}.meta`); + } + catch { + // 文件不存在则忽略 + } try { await this.tablesDir.removeEntry(`${tableName}.json`); } @@ -1257,6 +1719,15 @@ class OPFSEngine { async getTableSchema(tableName) { return this.memoryCache.getTableSchema(tableName); } + /** v0.4.2-fix: 引擎级 ALTER TABLE — 内存 + schema 持久化 + 整表文件重写 */ + async alterTable(tableName, action, column) { + await this.memoryCache.alterTable(tableName, action, column); + const schema = await this.memoryCache.getTableSchema(tableName); + if (schema) + await this.setMeta(`schema_${tableName}`, JSON.stringify(schema)); + const rows = await this.memoryCache.find(tableName, { table: tableName }); + await this.writeTableData(tableName, rows); + } // ---- CRUD ---- async insert(tableName, rows) { const pks = await this.memoryCache.insert(tableName, rows); @@ -1293,10 +1764,17 @@ class OPFSEngine { } // ---- 动态索引(v0.3.0) ---- async createIndex(tableName, column, unique) { - return this.memoryCache.createIndex(tableName, column, unique); + await this.memoryCache.createIndex(tableName, column, unique); + // v0.4.2-fix: 索引标记持久化(重启后索引结构恢复) + const schema = await this.memoryCache.getTableSchema(tableName); + if (schema) + await this.setMeta(`schema_${tableName}`, JSON.stringify(schema)); } async dropIndex(tableName, column, indexName) { - return this.memoryCache.dropIndex(tableName, column, indexName); + await this.memoryCache.dropIndex(tableName, column, indexName); + const schema = await this.memoryCache.getTableSchema(tableName); + if (schema) + await this.setMeta(`schema_${tableName}`, JSON.stringify(schema)); } // ---- 事务 ---- async beginTransaction() { @@ -1342,18 +1820,41 @@ class OPFSEngine { return []; } } - /** 从 OPFS 加载已有表数据到内存缓存 */ + /** + * 从 OPFS 加载已有表到内存缓存。 + * v0.4.2-fix: 优先从持久化 schema(__metona_schema_*.meta)恢复 — + * 空表不再消失、索引标记/主键/约束完整;无 schema 记录的旧库从数据推断(兼容)。 + */ async loadExistingTables() { if (!this.tablesDir) return; const dir = this.tablesDir; + const fileNames = []; for await (const [name] of dir.entries()) { - if (!name.endsWith('.json')) - continue; - const tableName = name.replace('.json', ''); + if (name.endsWith('.json')) + fileNames.push(name); + } + for (const fileName of fileNames) { + const tableName = fileName.replace('.json', ''); try { + // 1. 优先:持久化 schema + const schemaRaw = await this.getMeta(`schema_${tableName}`); + if (schemaRaw) { + const schema = JSON.parse(schemaRaw); + await this.memoryCache.createTable(schema); + const rows = await this.readTableData(tableName); + for (const row of rows) { + try { + await this.memoryCache.insert(tableName, [row]); + } + catch { + // 单行损坏不影响整表恢复 + } + } + continue; + } + // 2. 兼容旧库:从数据推断 schema(空表且无 schema 记录 → 跳过) const data = await this.readTableData(tableName); - // 从数据中推断 schema(简化:从第一行提取列信息) if (data.length > 0) { const firstRow = data[0]; const columns = {}; @@ -2382,18 +2883,27 @@ class SSTableReader { if (blockIdx < 0) return null; const entry = this.indexEntries[blockIdx]; - const blockData = new Uint8Array(this.data.buffer, this.data.byteOffset + entry.blockOffset, entry.blockSize); + const blockData = this.getBlockData(entry); + // v0.4.2-fix: 残缺文件(meta 偏移超出实际长度)跳过该块,而非抛 RangeError + if (!blockData) + return null; const blockView = new DataView(blockData.buffer, blockData.byteOffset, blockData.byteLength); const entryCount = blockView.getUint32(0, false); let offset = 4; // 顺序扫描 block 内的条目(生产中应二分查找) for (let i = 0; i < entryCount; i++) { + if (offset + 2 > blockData.byteLength) + break; const keyLen = blockView.getUint16(offset, false); offset += 2; + if (offset + keyLen + 2 > blockData.byteLength) + break; const key = new TextDecoder().decode(blockData.slice(offset, offset + keyLen)); offset += keyLen; const valLen = blockView.getUint16(offset, false); offset += 2; + if (offset + valLen > blockData.byteLength) + break; const valBytes = blockData.slice(offset, offset + valLen); offset += valLen; if (key === targetKey) { @@ -2417,17 +2927,26 @@ class SSTableReader { return; for (let bi = startBlockIdx; bi <= endBlockIdx && bi >= 0; bi++) { const entry = this.indexEntries[bi]; - const blockData = new Uint8Array(this.data.buffer, this.data.byteOffset + entry.blockOffset, entry.blockSize); + const blockData = this.getBlockData(entry); + // v0.4.2-fix: 残缺块跳过(rangeScan 继续后续块,不抛异常) + if (!blockData) + continue; const blockView = new DataView(blockData.buffer, blockData.byteOffset, blockData.byteLength); const blockEntryCount = blockView.getUint32(0, false); let offset = 4; for (let i = 0; i < blockEntryCount; i++) { + if (offset + 2 > blockData.byteLength) + break; const keyLen = blockView.getUint16(offset, false); offset += 2; + if (offset + keyLen + 2 > blockData.byteLength) + break; const key = new TextDecoder().decode(blockData.slice(offset, offset + keyLen)); offset += keyLen; const valLen = blockView.getUint16(offset, false); offset += 2; + if (offset + valLen > blockData.byteLength) + break; const valBytes = blockData.slice(offset, offset + valLen); offset += valLen; if (key >= startKey && key <= endKey) { @@ -2445,17 +2964,26 @@ class SSTableReader { /** 扫描所有条目 */ scanAll(callback) { for (const entry of this.indexEntries) { - const blockData = new Uint8Array(this.data.buffer, this.data.byteOffset + entry.blockOffset, entry.blockSize); + const blockData = this.getBlockData(entry); + // v0.4.2-fix: 残缺块跳过(scanAll 继续后续块,不抛异常) + if (!blockData) + continue; const blockView = new DataView(blockData.buffer, blockData.byteOffset, blockData.byteLength); const blockEntryCount = blockView.getUint32(0, false); let offset = 4; for (let i = 0; i < blockEntryCount; i++) { + if (offset + 2 > blockData.byteLength) + break; const keyLen = blockView.getUint16(offset, false); offset += 2; + if (offset + keyLen + 2 > blockData.byteLength) + break; const key = new TextDecoder().decode(blockData.slice(offset, offset + keyLen)); offset += keyLen; const valLen = blockView.getUint16(offset, false); offset += 2; + if (offset + valLen > blockData.byteLength) + break; const valBytes = blockData.slice(offset, offset + valLen); offset += valLen; try { @@ -2495,6 +3023,10 @@ class SSTableReader { const bloomSize = this.view.getUint32(footerOffset + 12, false); const bloomHashCount = this.view.getUint32(footerOffset + 16, false); this.entryCount = this.view.getUint32(footerOffset + 20, false); + // v0.4.2-fix: 完整性校验 — 索引块必须完全落在文件内,否则视为残缺文件跳过 + if (indexOffset + 4 > this.data.byteLength || indexOffset + indexSize > this.data.byteLength) { + return; // 残缺文件:无索引块可读,get/rangeScan 均返回空 + } // 解析索引块 this.parseIndexBlock(indexOffset, indexSize); // 加载 Bloom Filter @@ -2512,17 +3044,37 @@ class SSTableReader { const entryCount = this.view.getUint32(offset, false); offset += 4; for (let i = 0; i < entryCount; i++) { + // v0.4.2-fix: 索引条目越界(keyLen/blockOffset/blockSize 超过文件长度)时中止解析, + // 已解析的有效条目仍可用于查询 + if (offset + 2 > this.data.byteLength) + break; const keyLen = this.view.getUint16(offset, false); offset += 2; + if (offset + keyLen + 8 > this.data.byteLength) + break; const key = new TextDecoder().decode(this.data.slice(offset, offset + keyLen)); offset += keyLen; const blockOffset = this.view.getUint32(offset, false); offset += 4; const blockSize = this.view.getUint32(offset, false); offset += 4; + // 跳过指向文件外的块(残缺写入产物),不抛异常 + if (blockSize === 0 || blockOffset + blockSize > this.data.byteLength) + continue; this.indexEntries.push({ key, blockOffset, blockSize }); } } + /** + * v0.4.2-fix: 获取索引条目对应的数据块。 + * 块偏移/大小越界(残缺 SSTable)时返回 null,由调用方跳过而非抛 RangeError。 + */ + getBlockData(entry) { + if (entry.blockSize <= 0 || entry.blockOffset < 0) + return null; + if (entry.blockOffset + entry.blockSize > this.data.byteLength) + return null; + return new Uint8Array(this.data.buffer, this.data.byteOffset + entry.blockOffset, entry.blockSize); + } /** 二分查找某 key 所在的 block 索引 */ locateBlock(key) { let lo = 0; @@ -2722,7 +3274,8 @@ class LSM { this.compacting = false; // 防止重复触发 compaction /** 串行化 flush/compaction 链:保证持久化顺序与 id 分配顺序一致 */ this.flushChain = Promise.resolve(); - this.memtable = new MemTable(config.memtableSizeThreshold ?? DEFAULT_MEMTABLE_SIZE); + this.memtableSizeThreshold = config.memtableSizeThreshold ?? DEFAULT_MEMTABLE_SIZE; + this.memtable = new MemTable(this.memtableSizeThreshold); this.levelSizeMultiplier = config.levelSizeMultiplier ?? DEFAULT_LEVEL_SIZE_MULTIPLIER; this.blockSize = config.blockSize ?? 4096; this.sstableStore = config.sstableStore; @@ -2738,8 +3291,16 @@ class LSM { if (this.initialized) return; const metas = await this.sstableStore.listMeta(); - // 按层级分组 + // v0.4.2-fix: 打开时完整性校验 — 验证每个 meta 引用的文件存在、可解析, + // 残缺/损坏的 SSTable 忽略并清理 meta,避免后续读取抛 RangeError 崩溃 + const validMetas = []; for (const meta of metas) { + if (await this.validateSSTable(meta)) { + validMetas.push(meta); + } + } + // 按层级分组 + for (const meta of validMetas) { if (meta.level >= 0 && meta.level < MAX_LSM_LEVELS) { this.levels[meta.level].push(meta); } @@ -2791,15 +3352,29 @@ class LSM { * 冻结当前 MemTable 为 immutable,并在串行链上排队异步刷盘。 * 冻结的 MemTable 通过闭包捕获,避免链中前一个 flush 错误处理后续冻结的表。 * 所有 pending frozen 记录在 frozenMemtables 中,flush 完成前读取路径仍可访问。 + * + * v0.4.2-fix: 链上任务失败时吞错恢复链(否则 flushChain 永久 rejected, + * 后续所有 flush/compaction 挂起,写路径卡死)。 */ freezeMemtable() { if (this.immutableMemtable) { const frozen = this.immutableMemtable; - this.flushChain = this.flushChain.then(() => this.flushImmutableAsync(frozen)); + this.flushChain = this.enqueueOnChain(() => this.flushImmutableAsync(frozen)); } this.immutableMemtable = this.memtable; this.frozenMemtables.push(this.immutableMemtable); - this.memtable = new MemTable(this.memtable.getEstimatedSize()); + // v0.4.2-fix: 新 memtable 用配置阈值(此前传旧表已用大小 → 阈值逐次衰减 → 频繁小文件 flush) + this.memtable = new MemTable(this.memtableSizeThreshold); + } + /** v0.4.2-fix: 在串行链上排队任务;任务失败吞错并记录,保证链不被单次失败卡死 */ + enqueueOnChain(task) { + return this.flushChain + .then(task) + .catch((error) => { + // eslint-disable-next-line no-console + console.warn('[AriaEngine LSM] background flush/compaction failed:', error); + // catch 返回 undefined → 链恢复为 resolved,后续任务继续 + }); } /** 将指定 Immutable MemTable 刷盘为 SSTable(id 由 store 按命名空间分配) */ async flushImmutableAsync(frozen) { @@ -2847,7 +3422,7 @@ class LSM { this.compacting = true; setTimeout(() => { try { - this.flushChain = this.flushChain.then(() => this.compactLevelAsync(level)); + this.flushChain = this.enqueueOnChain(() => this.compactLevelAsync(level)); } finally { this.compacting = false; @@ -2874,6 +3449,10 @@ class LSM { finally { this.compacting = false; } + }).catch((error) => { + this.compacting = false; + // eslint-disable-next-line no-console + console.warn('[AriaEngine LSM] background compaction failed:', error); }); } // ======================================================================= @@ -3008,29 +3587,64 @@ class LSM { // ======================================================================= // Compaction // ======================================================================= - /** 执行 Compaction(public,供 VACUUM 等外部调用) */ + /** 执行 Compaction(public,供 VACUUM 等外部调用;VACUUM 期望 2 个文件即可压缩) */ async compactLevel(level) { - await this.compactLevelAsync(level); + await this.compactLevelAsync(level, 2); } - /** 串行执行 Compaction(简化版,内部实现) */ - async compactLevelAsync(level) { + /** + * 串行执行 Compaction。 + * @param minFiles 触发压缩的文件数门槛(自动调度用 4,VACUUM 用 2) + * + * v0.4.2-fix: 读取从存储兜底(不依赖缓存)——此前仅从缓存读, + * 缓存未命中(LRU 驱逐/单文件超缓存上限)时跳过全部文件并从 levels 移除, + * 运行中数据全部不可见。 + */ + async compactLevelAsync(level, minFiles = 4) { if (level >= MAX_LSM_LEVELS - 1) return; - if (this.levels[level].length < 4) + if (this.levels[level].length < minFiles) return; const sstables = this.levels[level].splice(0, this.levels[level].length); const mergeIter = new MergeIterator(); + const loadedMetas = []; for (const meta of sstables) { - const reader = this.loadSSTableReader(meta); - if (!reader) + // 优先缓存,未命中则从存储加载(残缺文件经校验清理,跳过) + let data = this.sstableCache.get(meta.id) ?? null; + if (!data) { + try { + data = await this.sstableStore.load(meta.id); + } + catch { + data = null; + } + } + if (!data || data.byteLength < 32) { + await this.dropInvalidSSTable(meta); continue; + } + let reader; + try { + reader = new SSTableReader(data, meta); + } + catch { + await this.dropInvalidSSTable(meta); + continue; + } const entries = []; reader.scanAll((k, v) => entries.push([k, v])); mergeIter.addSource(new ArrayEntrySource(entries)); + loadedMetas.push(meta); } const merged = mergeIter.drain(); - if (merged.length === 0) + if (merged.length === 0) { + // 没有有效数据(全部损坏):把有效 meta 放回 levels, + // 避免文件从读取路径消失(数据仍在磁盘,重启可恢复) + for (const meta of loadedMetas) { + this.levels[level].push(meta); + } + this.levels[level].sort((a, b) => b.id - a.id); return; + } const id = await this.sstableStore.allocateId(); const builder = new SSTableBuilder(this.blockSize); for (const [key, value] of merged) { @@ -3106,6 +3720,71 @@ class LSM { // ======================================================================= // 内部 // ======================================================================= + /** + * v0.4.2-fix: 重新校验全部已加载 SSTable,移除损坏项(repair 自愈用)。 + * @returns 移除的损坏 SSTable 数量 + */ + async validateAll() { + let removed = 0; + for (let level = 0; level < MAX_LSM_LEVELS; level++) { + const valid = []; + for (const meta of this.levels[level]) { + if (await this.validateSSTable(meta)) { + valid.push(meta); + } + else { + this.sstableCache.delete(meta.id); + removed++; + } + } + this.levels[level] = valid; + } + return removed; + } + /** + * v0.4.2-fix: 校验单个 SSTable 的完整性。 + * - 文件不存在 → 清理 meta,返回 false + * - 文件过小/魔数错误/索引越界(残缺写入产物)→ 清理 meta,返回 false + * 校验通过的数据不缓存(保持内存预算),读路径按需预加载。 + */ + async validateSSTable(meta) { + try { + const data = await this.sstableStore.load(meta.id); + if (!data) { + this.dropInvalidSSTable(meta); + return false; + } + if (data.byteLength < 32) { + this.dropInvalidSSTable(meta); + return false; + } + try { + new SSTableReader(data, meta); + } + catch { + this.dropInvalidSSTable(meta); + return false; + } + return true; + } + catch { + this.dropInvalidSSTable(meta); + return false; + } + } + /** 清理无效 SSTable 的 meta 与文件(打开自愈路径) */ + async dropInvalidSSTable(meta) { + // eslint-disable-next-line no-console + console.warn(`[AriaEngine LSM] Skipping corrupted SSTable id=${meta.id} (level=${meta.level})`); + try { + await this.sstableStore.deleteMeta(meta.id); + } + catch { /* 清理失败不阻塞打开 */ } + try { + await this.sstableStore.delete(meta.id); + } + catch { /* 清理失败不阻塞打开 */ } + } unwrapTombstone(value) { if (!value) return null; @@ -3562,6 +4241,25 @@ class IndexedDBBackend { tx.onerror = () => reject(new DatabaseError('Failed to write to AriaEngine store', 'ARIA_WRITE_ERROR')); }); } + /** + * v0.4.2-fix: 批量原子写入 — 单个 IDB 事务内写入多个 key。 + * 中断时事务整体回滚,WAL 记录与 count 计数不会出现"记录在、计数丢"或反之的半写状态。 + */ + async writeMany(entries) { + const keys = Object.keys(entries); + if (keys.length === 0) + return; + const db = this.ensureDB(); + return new Promise((resolve, reject) => { + const tx = db.transaction(this.storeName, 'readwrite'); + const store = tx.objectStore(this.storeName); + for (const key of keys) { + store.put(entries[key], key); + } + tx.oncomplete = () => resolve(); + tx.onerror = () => reject(new DatabaseError('Failed to batch write to AriaEngine store', 'ARIA_WRITE_ERROR')); + }); + } async delete(key) { const db = this.ensureDB(); return new Promise((resolve, reject) => { @@ -3571,6 +4269,21 @@ class IndexedDBBackend { tx.onerror = () => reject(new DatabaseError('Failed to delete from AriaEngine store', 'ARIA_DELETE_ERROR')); }); } + /** v0.4.2-fix: 批量原子删除 — 单个 IDB 事务内删除多个 key */ + async deleteMany(keys) { + if (keys.length === 0) + return; + const db = this.ensureDB(); + return new Promise((resolve, reject) => { + const tx = db.transaction(this.storeName, 'readwrite'); + const store = tx.objectStore(this.storeName); + for (const key of keys) { + store.delete(key); + } + tx.oncomplete = () => resolve(); + tx.onerror = () => reject(new DatabaseError('Failed to batch delete from AriaEngine store', 'ARIA_DELETE_ERROR')); + }); + } async listKeys() { const db = this.ensureDB(); return new Promise((resolve, reject) => { @@ -3623,9 +4336,19 @@ class MemoryBackend { async write(key, data) { this.store.set(key, data); } + async writeMany(entries) { + for (const [key, data] of Object.entries(entries)) { + this.store.set(key, data); + } + } async delete(key) { this.store.delete(key); } + async deleteMany(keys) { + for (const key of keys) { + this.store.delete(key); + } + } async listKeys() { return Array.from(this.store.keys()); } @@ -3679,6 +4402,20 @@ class OPFSBackend { }); return this.writeQueue; } + /** v0.4.2-fix: 批量写入 — 串行队列内逐个落盘(OPFS 无跨文件事务,顺序保证一致) */ + async writeMany(entries) { + if (!this.dbDir) + return; + this.writeQueue = this.writeQueue.then(async () => { + for (const [key, data] of Object.entries(entries)) { + const fh = await this.dbDir.getFileHandle(key, { create: true }); + const writable = await fh.createWritable(); + await writable.write(data); + await writable.close(); + } + }); + return this.writeQueue; + } async delete(key) { if (!this.dbDir) return; @@ -3690,6 +4427,20 @@ class OPFSBackend { }); return this.writeQueue; } + /** v0.4.2-fix: 批量删除 — 串行队列内逐个删除 */ + async deleteMany(keys) { + if (!this.dbDir) + return; + this.writeQueue = this.writeQueue.then(async () => { + for (const key of keys) { + try { + await this.dbDir.removeEntry(key); + } + catch { /* ignore */ } + } + }); + return this.writeQueue; + } async listKeys() { if (!this.dbDir) return []; @@ -3853,6 +4604,11 @@ class MVCCManager { this.nextTxnId = 1; /** 全局提交序列号(用于可见性判断) */ this.globalCommitLsn = 0; + /** + * v0.4.2-fix: 每个事务写入的 tableKey 集合 — + * commit/rollback 只遍历本事务写过的 key,避免全库版本链扫描(大表事务 O(N) → O(写入数)) + */ + this.txnWriteKeys = new Map(); } // ======================================================================= // 事务管理 @@ -3866,6 +4622,7 @@ class MVCCManager { snapshotLsn: this.globalCommitLsn, startTime: Date.now(), }); + this.txnWriteKeys.set(txnId, new Set()); return txnId; } /** 提交事务 */ @@ -3875,16 +4632,23 @@ class MVCCManager { throw new Error(`Transaction ${txnId} not found`); txn.state = TransactionState.COMMITTED; this.globalCommitLsn++; - // 标记此事务写入的所有版本为已提交 - for (const [, versions] of this.versionStore) { - for (const version of versions) { - if (version.txnId === txnId) { - version.committed = true; + // v0.4.2-fix: 仅标记本事务写入的版本(此前遍历全库 versionStore) + const writeKeys = this.txnWriteKeys.get(txnId); + if (writeKeys) { + for (const tableKey of writeKeys) { + const versions = this.versionStore.get(tableKey); + if (!versions) + continue; + for (const version of versions) { + if (version.txnId === txnId) { + version.committed = true; + } } } } // 清理已提交事务的记录 this.activeTxns.delete(txnId); + this.txnWriteKeys.delete(txnId); } /** 回滚事务 */ rollbackTransaction(txnId) { @@ -3892,17 +4656,24 @@ class MVCCManager { if (!txn) throw new Error(`Transaction ${txnId} not found`); txn.state = TransactionState.ABORTED; - // 移除此事务写入的所有版本 - for (const [tableKey, versions] of this.versionStore) { - const filtered = versions.filter((v) => v.txnId !== txnId); - if (filtered.length === 0) { - this.versionStore.delete(tableKey); - } - else { - this.versionStore.set(tableKey, filtered); + // v0.4.2-fix: 仅移除本事务写入的版本(此前遍历全库 versionStore) + const writeKeys = this.txnWriteKeys.get(txnId); + if (writeKeys) { + for (const tableKey of writeKeys) { + const versions = this.versionStore.get(tableKey); + if (!versions) + continue; + const filtered = versions.filter((v) => v.txnId !== txnId); + if (filtered.length === 0) { + this.versionStore.delete(tableKey); + } + else { + this.versionStore.set(tableKey, filtered); + } } } this.activeTxns.delete(txnId); + this.txnWriteKeys.delete(txnId); } /** 检查事务是否活跃 */ isActive(txnId) { @@ -3926,6 +4697,8 @@ class MVCCManager { }; versions.push(newVersion); this.versionStore.set(tableKey, versions); + // v0.4.2-fix: 记录本事务写过的 key(commit/rollback 精准清理) + this.txnWriteKeys.get(txnId)?.add(tableKey); } /** * 读取一行(对指定事务可见的最新版本)。 @@ -3982,9 +4755,16 @@ class MVCCManager { /** * v0.3.3: 丢弃指定事务的所有版本记录,但保留事务登记(Savepoint 回滚用)。 * 快照数据由调用方(引擎 txnSnapshot)负责恢复。 + * v0.4.2-fix: 仅遍历本事务写过的 key(此前全库扫描)。 */ discardVersions(txnId) { - for (const [tableKey, versions] of this.versionStore) { + const writeKeys = this.txnWriteKeys.get(txnId); + if (!writeKeys) + return; + for (const tableKey of writeKeys) { + const versions = this.versionStore.get(tableKey); + if (!versions) + continue; const filtered = versions.filter((v) => v.txnId !== txnId); if (filtered.length === 0) { this.versionStore.delete(tableKey); @@ -4597,6 +5377,19 @@ class AriaEngine { async open(dbName, _version) { if (this.opened) return; + // v0.4.2-fix: 引擎内部错误统一包装为 DatabaseError(ARIA_OPEN_ERROR), + // 应用层可拿到 code 分类处理,不再抛出原生 RangeError/TypeError + try { + await this.openInternal(dbName); + } + catch (error) { + if (error instanceof DatabaseError) + throw error; + throw new DatabaseError(`Failed to open AriaEngine database "${dbName}"`, 'ARIA_OPEN_ERROR', error); + } + } + /** open 内部实现(错误包装在 open 外层) */ + async openInternal(dbName) { this.dbName = dbName; // 1. 存储后端 if (this.config.storageBackend === 'opfs') { @@ -4628,21 +5421,31 @@ class AriaEngine { // 4. 初始化 WAL this.wal = new WAL({ append: async (data) => { - // Store each record as a separate numbered key + // v0.4.2-fix: 记录写入与 count 计数在同一底层事务中原子提交, + // 中断时整体回滚,杜绝"记录在、计数丢"导致恢复漏读的丢数据问题 const idx = await this.getWALCount(); const slice = new Uint8Array(data.buffer, data.byteOffset, data.byteLength); const copy = slice.buffer.slice(slice.byteOffset, slice.byteOffset + slice.byteLength); - await this.backend.write(`__wal_${idx}`, copy); - await this.setWALCount(idx + 1); + await this.backend.writeMany({ + [`__wal_${idx}`]: copy, + __wal_count: new TextEncoder().encode(String(idx + 1)).buffer, + }); }, readAll: async () => { - const count = await this.getWALCount(); - if (count === 0) + // v0.4.2-fix: 不依赖 count 计数,直接扫描全部 __wal_* 键, + // 避免 count 与实际记录不一致时漏读(与 checkpoint/并发写入竞态无关) + const keys = (await this.backend.listKeys()) + .filter((k) => k.startsWith('__wal_') && k !== '__wal_count') + .sort((a, b) => { + const na = parseInt(a.slice('__wal_'.length), 10); + const nb = parseInt(b.slice('__wal_'.length), 10); + return (isNaN(na) ? 0 : na) - (isNaN(nb) ? 0 : nb); + }); + if (keys.length === 0) return new Uint8Array(0); - // Read all records and concatenate const chunks = []; - for (let i = 0; i < count; i++) { - const d = await this.backend.read(`__wal_${i}`); + for (const key of keys) { + const d = await this.backend.read(key); if (d) chunks.push(new Uint8Array(d)); } @@ -4656,19 +5459,45 @@ class AriaEngine { return combined; }, truncate: async () => { - const count = await this.getWALCount(); - for (let i = 0; i < count; i++) { - await this.backend.delete(`__wal_${i}`); - } + // v0.4.2-fix: 扫描删除全部 WAL 记录键 + count 键(单事务原子清理) + const keys = (await this.backend.listKeys()) + .filter((k) => k.startsWith('__wal_')); + await this.backend.deleteMany(keys); await this.setWALCount(0); }, exists: async () => { - const count = await this.getWALCount(); - return count > 0; + // v0.4.2-fix: 与 readAll 一致按 key 扫描判断(count 可能因崩溃截断而滞后) + const keys = (await this.backend.listKeys()) + .filter((k) => k.startsWith('__wal_') && k !== '__wal_count'); + return keys.length > 0; }, }, this.config.walEnabled, this.config.walSyncMode); // 5. 恢复 Schema await this.loadSchemas(); + // v0.4.2-fix: 为 schema 中带 index/unique 标记的列重建二级索引 LSM。 + // 此前重开只恢复 schema 不恢复索引 LSM → 索引查询静默回退全表、 + // createIndex 因 colDef 已有标记直接 return → 索引永久缺失。 + // 索引数据已持久化在独立命名空间(sst_idx_* / meta),init() 直接加载。 + for (const [tableName, schema] of this.schemas) { + const pkCol = this.tablePKs.get(tableName); + for (const [colName, colDef] of Object.entries(schema.columns)) { + if ((colDef.index || colDef.unique) && colName !== pkCol) { + const idxKey = `${tableName}:idx:${colName}`; + if (!this.secondaryIndexes.has(idxKey)) { + const idxLsm = new LSM({ + memtableSizeThreshold: this.config.memtableSizeThreshold, + levelSizeMultiplier: this.config.levelSizeMultiplier, + blockSize: this.config.pageSize, + bloomBitsPerKey: this.config.bloomFilterBitsPerKey, + cacheLimitBytes: this.config.bufferPoolPages * this.config.pageSize, + sstableStore: this.createSSTableStore(`idx_${tableName}_${colName}`), + }); + await idxLsm.init(); + this.secondaryIndexes.set(idxKey, idxLsm); + } + } + } + } // 6. 初始化 LSM(加载 SSTable 元数据) await this.lsm.init(); // 7. WAL 恢复(两阶段:先扫描事务边界,仅回放已提交事务) @@ -4699,9 +5528,30 @@ class AriaEngine { if (allRecords.length > 0) { await this.lsm.flush(); await this.wal.checkpoint(); + // v0.4.2-fix: WAL 回放只更新主 LSM,二级索引 LSM 未同步 → + // 崩溃前最后一批写入的索引缺失,重开时索引查询丢行。 + // 恢复后全量重建所有表的二级索引(幂等)。 + for (const tableName of this.schemas.keys()) { + await this.reindexTableInternal(tableName); + } } // 8. Checkpoint Manager(接入 WAL 大小阈值) - this.checkpointManager = new CheckpointManager(this.lsm, this.wal, { flushAll: async () => { await this.lsm.flush(); } }, this.config.checkpointInterval, this.config.walSizeThreshold); + // v0.4.2-fix: 事务活跃时 checkpoint 不得截断 WAL — + // 否则 BEGIN/INSERT 记录被截断,COMMIT 后崩溃恢复丢失整个事务数据 + this.checkpointManager = new CheckpointManager(this.lsm, { + checkpoint: async () => { + if (this.currentTxnId) + return; + await this.wal.checkpoint(); + }, + flush: async () => { + if (this.currentTxnId) + return; + await this.wal.flush(); + }, + getBufferedBytes: () => this.wal.getBufferedBytes(), + getBufferedCount: () => this.wal.getBufferedCount(), + }, { flushAll: async () => { await this.lsm.flush(); } }, this.config.checkpointInterval, this.config.walSizeThreshold); this.opened = true; } async close() { @@ -4709,11 +5559,49 @@ class AriaEngine { return; await this.persistSchemas(); await this.lsm.flush(); + // v0.4.2-fix: 同步落盘全部二级索引 LSM — 此前只 flush 主 LSM, + // 优雅关闭后索引 memtable 未落盘 → 重开索引为空 → 索引查询返回空结果 + for (const idxLsm of this.secondaryIndexes.values()) { + await idxLsm.flush(); + } await this.wal.flush(); + // v0.4.2-fix: close 前 checkpoint(截断 WAL)— + // 此前只 flush 不截断,下次打开会重放全部历史 WAL 记录(含已落盘 SSTable 的数据), + // 重复解析/重复 put 拖慢启动,并与恢复后 flush+checkpoint 竞争放大丢数据 + await this.wal.checkpoint(); await this.backend.close(); + // v0.4.2-fix: 清空运行期状态(此前 close 后 mvcc/txn 残留, + // 重开时 beginTransaction 报 TX_ACTIVE 或读到陈旧快照) this.schemas.clear(); + this.tablePKs.clear(); + this.secondaryIndexes.clear(); + this.mvcc = new MVCCManager(); + this.currentTxnId = null; + this.txnSnapshot = null; + this.savepoints.clear(); + this.opCounter = 0; this.opened = false; } + /** + * v0.4.2-fix: 崩溃恢复/自愈 — 校验并移除损坏 SSTable、截断 WAL、重建二级索引。 + * 应用层检测到异常后调用,无需删库重建。 + */ + async repair() { + this.ensureOpen(); + // 1. 校验全部 SSTable,移除残缺项(打开时已做一次,此处兜底运行期损坏) + const removed = await this.lsm.validateAll(); + // 2. 将 WAL 残留数据落盘并截断,避免无限重放 + await this.lsm.flush(); + await this.wal.checkpoint(); + // 3. 重建所有表的二级索引(修复索引与主数据不一致) + for (const tableName of this.schemas.keys()) { + await this.reindexTable(tableName); + } + if (removed > 0) { + // eslint-disable-next-line no-console + console.warn(`[AriaEngine] repair: removed ${removed} corrupted SSTable(s)`); + } + } /** * v0.4.1: 重置数据库 — 清空全部数据与表结构(演示页刷新/重新初始化用)。 * 清空存储后端、LSM、WAL、MVCC 与二级索引,后续可继续使用本实例。 @@ -4737,11 +5625,22 @@ class AriaEngine { await this.wal.checkpoint(); } isOpen() { return this.opened; } + // ---- v0.4.2-fix: 库内元数据(迁移版本持久化用) ---- + async getMeta(key) { + const raw = await this.backend.read(`__meta_${key}`); + return raw ? new TextDecoder().decode(raw) : null; + } + async setMeta(key, value) { + await this.backend.write(`__meta_${key}`, new TextEncoder().encode(value).buffer); + } // ======================================================================= // 表管理 // ======================================================================= async createTable(schema) { this.ensureOpen(); + // v0.4.2-fix: Aria 事务中 DDL 显式拒绝(事务快照只覆盖行数据, + // 结构变更无法回滚;Memory/IndexedDB 引擎快照可回滚,行为不一致 → 明确报错而非静默) + this.ensureNoDDLInTransaction('CREATE TABLE'); if (this.schemas.has(schema.name)) { throw new DatabaseError(`Table "${schema.name}" already exists`, 'TABLE_EXISTS'); } @@ -4777,6 +5676,7 @@ class AriaEngine { } async dropTable(tableName) { this.ensureOpen(); + this.ensureNoDDLInTransaction('DROP TABLE'); this.ensureTable(tableName); // 删除表中所有行 const rows = await this.getAllRows(tableName); @@ -4784,6 +5684,9 @@ class AriaEngine { const pkCol = this.tablePKs.get(tableName); this.lsm.delete(`${tableName}:${row[pkCol]}`); } + // v0.4.2-fix: 清理该表的全部二级索引 LSM 与持久化文件 — + // 此前残留孤儿索引,重建同名表后旧索引数据污染新表(索引查询返回错误行) + await this.cleanupTableIndexes(tableName); this.schemas.delete(tableName); this.tablePKs.delete(tableName); await this.persistSchemas(); @@ -4794,6 +5697,26 @@ class AriaEngine { key: '', }); } + /** + * v0.4.2-fix: 清理指定表的全部二级索引 LSM(内存 + 存储文件 + meta)。 + * dropTable / DROP_TABLE 恢复 / alterTable DROP 索引列 共用。 + */ + async cleanupTableIndexes(tableName) { + const prefix = `${tableName}:idx:`; + const toDelete = []; + for (const [idxKey, idxLsm] of this.secondaryIndexes) { + if (!idxKey.startsWith(prefix)) + continue; + toDelete.push(idxKey); + try { + await idxLsm.clear(); + } + catch { /* 清理失败不阻塞 */ } + } + for (const idxKey of toDelete) { + this.secondaryIndexes.delete(idxKey); + } + } async hasTable(tableName) { return this.schemas.has(tableName); } @@ -4895,29 +5818,52 @@ class AriaEngine { let count = 0; // v0.3.1: 批量 WAL 写入(组提交) const walRecords = []; + // v0.4.2-fix: ON UPDATE 级联环路保护 + const visited = new Set(); for (const row of rows) { const pkCol = this.tablePKs.get(tableName); const key = `${tableName}:${row[pkCol]}`; if (!query.where || Object.keys(query.where).length === 0 || matchWhere(row, query.where)) { const updated = { ...row, ...updates }; this.validateRow(schema, updated); + // v0.4.2-fix: 支持更新主键 — 删除旧键 + 落新键 + WAL 两条记录 + const newPk = String(updated[pkCol]); + const pkChanged = newPk !== String(row[pkCol]); + if (pkChanged) { + // ON UPDATE 外键级联(RESTRICT 抛错 / CASCADE / SET NULL) + await this.applyForeignKeyUpdateRules(tableName, String(row[pkCol]), newPk, walRecords, visited); + } if (this.currentTxnId && this.txnSnapshot) { - this.txnSnapshot.set(key, updated); - this.mvcc.writeVersion(tableName, String(row[pkCol]), updated, this.currentTxnId); + if (pkChanged) { + this.txnSnapshot.set(key, { __txn_deleted: true }); + this.mvcc.deleteVersion(tableName, String(row[pkCol]), this.currentTxnId); + } + this.txnSnapshot.set(`${tableName}:${newPk}`, updated); + this.mvcc.writeVersion(tableName, newPk, updated, this.currentTxnId); } else { - this.lsm.put(key, updated); + if (pkChanged) + this.lsm.delete(key); + this.lsm.put(`${tableName}:${newPk}`, updated); } count++; + if (pkChanged) { + walRecords.push({ + type: WALRecordType.DELETE, + txnId: this.currentTxnId ?? 0, + tableName, + key: String(row[pkCol]), + }); + } walRecords.push({ type: WALRecordType.UPDATE, txnId: this.currentTxnId ?? 0, tableName, - key: String(row[pkCol]), + key: newPk, data: updated, }); - // 更新二级索引 - this.updateSecondaryIndexes(tableName, String(row[pkCol]), updated, row); + // 更新二级索引(主键变更时旧索引条目一并清理) + this.updateSecondaryIndexes(tableName, newPk, updated, pkChanged ? row : null); } } await this.wal.appendBatch(walRecords); @@ -4926,6 +5872,73 @@ class AriaEngine { this.trimAllCaches(); return count; } + /** + * v0.4.2-fix: ON UPDATE 外键级联 — 主键 oldPk → newPk 时处理引用表。 + * RESTRICT 抛错 / CASCADE 更新 FK / SET NULL 置空(含索引与 WAL 记录)。 + * 两阶段:先全量 RESTRICT 检查,再执行级联。 + */ + async applyForeignKeyUpdateRules(tableName, oldPk, newPk, walRecords, visited) { + const visitKey = `${tableName}:${oldPk}`; + if (visited.has(visitKey)) + return; + visited.add(visitKey); + // 阶段 1: RESTRICT 检查 + for (const [refTableName, refSchema] of this.schemas) { + if (refTableName === tableName) + continue; + for (const [colName, colDef] of Object.entries(refSchema.columns)) { + if (!colDef.references || !colDef.onUpdate) + continue; + const [refTable] = colDef.references.split('.'); + if (refTable !== tableName) + continue; + if (colDef.onUpdate !== 'RESTRICT') + continue; + const refRows = await this.getAllRows(refTableName); + if (refRows.some((r) => String(r[colName]) === oldPk)) { + throw new DatabaseError(`Cannot update "${tableName}" key "${oldPk}": foreign key "${colName}" in "${refTableName}" has dependent rows`, 'FOREIGN_KEY_VIOLATION'); + } + } + } + // 阶段 2: CASCADE / SET NULL + for (const [refTableName, refSchema] of this.schemas) { + if (refTableName === tableName) + continue; + for (const [colName, colDef] of Object.entries(refSchema.columns)) { + if (!colDef.references || !colDef.onUpdate) + continue; + const [refTable] = colDef.references.split('.'); + if (refTable !== tableName) + continue; + if (colDef.onUpdate !== 'CASCADE' && colDef.onUpdate !== 'SET NULL') + continue; + const refRows = await this.getAllRows(refTableName); + for (const refRow of refRows) { + if (String(refRow[colName]) !== oldPk) + continue; + const refPkCol = this.tablePKs.get(refTableName); + const refPk = String(refRow[refPkCol]); + const updatedRef = { ...refRow, [colName]: colDef.onUpdate === 'CASCADE' ? newPk : null }; + const refKey = `${refTableName}:${refPk}`; + if (this.currentTxnId && this.txnSnapshot) { + this.txnSnapshot.set(refKey, updatedRef); + this.mvcc.writeVersion(refTableName, refPk, updatedRef, this.currentTxnId); + } + else { + this.lsm.put(refKey, updatedRef); + } + this.updateSecondaryIndexes(refTableName, refPk, updatedRef, refRow); + walRecords.push({ + type: WALRecordType.UPDATE, + txnId: this.currentTxnId ?? 0, + tableName: refTableName, + key: refPk, + data: updatedRef, + }); + } + } + } + } async delete(tableName, query) { this.ensureOpen(); this.ensureTable(tableName); @@ -5152,6 +6165,7 @@ class AriaEngine { */ async alterTable(tableName, action, column) { this.ensureOpen(); + this.ensureNoDDLInTransaction('ALTER TABLE'); this.ensureTable(tableName); const schema = this.schemas.get(tableName); if (action === 'ADD') { @@ -5166,10 +6180,21 @@ class AriaEngine { if (!schema.columns[column.name]) { throw new DatabaseError(`Column "${column.name}" does not exist in table "${tableName}"`, 'COLUMN_NOT_FOUND'); } + // v0.4.2-fix: 被删列是索引列 → 先清理索引 LSM(残留会导致后续同名列索引脏数据) + if (schema.columns[column.name].index || schema.columns[column.name].unique) { + const idxKey = `${tableName}:idx:${column.name}`; + const idxLsm = this.secondaryIndexes.get(idxKey); + if (idxLsm) { + try { + await idxLsm.clear(); + } + catch { /* 清理失败不阻塞 */ } + this.secondaryIndexes.delete(idxKey); + } + } delete schema.columns[column.name]; await this.persistSchemas(); // 重写主 LSM:移除所有行的该列键(find 副本无法就地删除,必须重写存储) - this.tablePKs.get(tableName); const prefix = `${tableName}:`; const endKey = `${prefix}\uffff`; await this.lsm.prefetchRange(prefix, endKey); @@ -5199,31 +6224,31 @@ class AriaEngine { } async createIndex(tableName, column, unique) { this.ensureOpen(); + this.ensureNoDDLInTransaction('CREATE INDEX'); this.ensureTable(tableName); const schema = this.schemas.get(tableName); const colDef = schema.columns[column]; if (!colDef) throw new DatabaseError(`Column "${column}" does not exist in table "${tableName}"`, 'COLUMN_NOT_FOUND'); - if (colDef.index || colDef.unique) - return; // 已存在 + const idxKey = `${tableName}:idx:${column}`; + // v0.4.2-fix: 以索引 LSM 是否已建为准(schema 标记可能因重启恢复而存在, + // 但索引 LSM 未恢复 → 此前静默 return 导致索引永久缺失) + if (this.secondaryIndexes.has(idxKey)) + return; colDef.index = true; if (unique) colDef.unique = true; - const idxKey = `${tableName}:idx:${column}`; - if (!this.secondaryIndexes.has(idxKey)) { - const idxLsm = new LSM({ - memtableSizeThreshold: this.config.memtableSizeThreshold, - levelSizeMultiplier: this.config.levelSizeMultiplier, - blockSize: this.config.pageSize, - bloomBitsPerKey: this.config.bloomFilterBitsPerKey, - cacheLimitBytes: this.config.bufferPoolPages * this.config.pageSize, - sstableStore: this.createSSTableStore(`idx_${tableName}_${column}`), - }); - await idxLsm.init(); - this.secondaryIndexes.set(idxKey, idxLsm); - } + const idxLsm = new LSM({ + memtableSizeThreshold: this.config.memtableSizeThreshold, + levelSizeMultiplier: this.config.levelSizeMultiplier, + blockSize: this.config.pageSize, + bloomBitsPerKey: this.config.bloomFilterBitsPerKey, + cacheLimitBytes: this.config.bufferPoolPages * this.config.pageSize, + sstableStore: this.createSSTableStore(`idx_${tableName}_${column}`), + }); + await idxLsm.init(); + this.secondaryIndexes.set(idxKey, idxLsm); // 从主 LSM 重建索引数据 - const idxLsm = this.secondaryIndexes.get(idxKey); const pkCol = this.tablePKs.get(tableName); const rows = await this.getAllRows(tableName); for (const row of rows) { @@ -5237,6 +6262,7 @@ class AriaEngine { } async dropIndex(tableName, column, _indexName) { this.ensureOpen(); + this.ensureNoDDLInTransaction('DROP INDEX'); this.ensureTable(tableName); const schema = this.schemas.get(tableName); const colDef = schema.columns[column]; @@ -5616,6 +6642,8 @@ class AriaEngine { async applyDropTableRecovery(tableName) { if (!tableName) return; + // v0.4.2-fix: 清理该表二级索引(崩溃恢复路径同样不留孤儿索引) + await this.cleanupTableIndexes(tableName); this.schemas.delete(tableName); this.tablePKs.delete(tableName); // 清除主 LSM 中该表前缀的所有数据(含 SSTable 中的旧数据) @@ -5859,7 +6887,13 @@ class AriaEngine { async reindexTable(tableName) { this.ensureOpen(); this.ensureTable(tableName); + return this.reindexTableInternal(tableName); + } + /** v0.4.2-fix: 重建索引内部实现(不校验 opened,供 open 恢复流程调用) */ + async reindexTableInternal(tableName) { const schema = this.schemas.get(tableName); + if (!schema) + return 0; let rebuiltCount = 0; for (const [colName, colDef] of Object.entries(schema.columns)) { // v0.3.3: 主键列不建冗余二级索引(主 LSM 即 PK 索引) @@ -5897,7 +6931,7 @@ class AriaEngine { } } // GC MVCC 版本(保留最新 10 个) - const beforeGC = this.mvcc.getActiveTxnCount?.() ?? 0; + const beforeGC = this.mvcc.getGlobalLSN(); this.mvcc.gc(10); return { compactedLevels: 6, gcVersions: beforeGC }; } @@ -5936,6 +6970,12 @@ class AriaEngine { if (!this.opened) throw new DatabaseError('AriaEngine not opened', 'DB_NOT_OPEN'); } + /** v0.4.2-fix: Aria 事务中 DDL 显式拒绝(结构变更无法通过行快照回滚) */ + ensureNoDDLInTransaction(op) { + if (this.currentTxnId) { + throw new DatabaseError(`${op} is not supported inside a transaction (AriaEngine DDL is not transactional)`, 'NOT_SUPPORTED'); + } + } ensureTable(tableName) { if (!this.schemas.has(tableName)) { throw new DatabaseError(`Table "${tableName}" does not exist`, 'TABLE_NOT_FOUND'); @@ -6028,6 +7068,46 @@ class HybridEngine { isOpen() { return this.memoryEngine.isOpen() && this.diskEngine.isOpen(); } + // ---- v0.4.2-fix: 自愈 / 重置 / 元数据(委托双引擎) ---- + /** 自愈:修复磁盘引擎后重载内存缓存 */ + async repair() { + if (typeof this.diskEngine.repair === 'function') { + await this.diskEngine.repair(); + } + await this.reloadMemoryFromDisk(); + } + /** 清空全部数据与表结构 */ + async clearAll() { + if (typeof this.diskEngine.clearAll === 'function') { + await this.diskEngine.clearAll(); + } + else { + const names = await this.diskEngine.getTableNames(); + for (const name of names) { + await this.diskEngine.dropTable(name); + } + } + if (typeof this.memoryEngine.clearAll === 'function') { + await this.memoryEngine.clearAll(); + } + else { + const names = await this.memoryEngine.getTableNames(); + for (const name of names) { + await this.memoryEngine.dropTable(name); + } + } + } + async getMeta(key) { + if (typeof this.diskEngine.getMeta === 'function') { + return this.diskEngine.getMeta(key); + } + return null; + } + async setMeta(key, value) { + if (typeof this.diskEngine.setMeta === 'function') { + await this.diskEngine.setMeta(key, value); + } + } // ---- 表管理 ---- async createTable(schema) { await this.memoryEngine.createTable(schema); @@ -6046,6 +7126,19 @@ class HybridEngine { async getTableSchema(tableName) { return this.memoryEngine.getTableSchema(tableName); } + /** v0.4.2-fix: 引擎级 ALTER TABLE — 双引擎同步(磁盘持久化 + 内存引用) */ + async alterTable(tableName, action, column) { + await this.memoryEngine.alterTable(tableName, action, column); + if (typeof this.diskEngine.alterTable === 'function') { + await this.diskEngine.alterTable(tableName, action, column); + } + else { + // 磁盘引擎无引擎级实现 → 从磁盘重建内存 schema(disk 引擎 schema 以自身为准) + const schema = await this.diskEngine.getTableSchema(tableName); + if (schema && action === 'DROP') + delete schema.columns[column.name]; + } + } // ---- CRUD(write-through 策略) ---- async insert(tableName, rows) { const pks = await this.memoryEngine.insert(tableName, rows); @@ -6104,10 +7197,10 @@ class HybridEngine { try { await this.memoryEngine.commitTransaction(); } - catch { - // 内存提交失败时回滚磁盘 - await this.diskEngine.rollbackTransaction(); - throw new DatabaseError('Hybrid commit failed: memory engine error after disk commit', 'TX_COMMIT_ERROR'); + catch (error) { + // v0.4.2-fix: 磁盘已提交无法回滚(此前调 diskEngine.rollbackTransaction() + // 会抛 TX_NONE 掩盖原错误)。如实上报内存提交失败,磁盘数据保持已提交状态。 + throw new DatabaseError('Hybrid commit failed: memory engine error after disk commit (disk data is committed)', 'TX_COMMIT_ERROR', error); } } async rollbackTransaction() { @@ -9362,6 +10455,17 @@ class MetonaSqlark { this.engine = this.createEngine(); // 打开连接 await this.engine.open(this.name, this.version); + // v0.4.2-fix (P2-7): 从库内加载持久化的迁移版本, + // 重启后 migrateTo 从持久化版本继续执行,不再每次从 config.version 重置 + if (typeof this.engine.getMeta === 'function') { + try { + const persistedVersion = await this.engine.getMeta('__metona_version'); + if (persistedVersion != null && Number(persistedVersion) >= 1) { + this._version = Math.max(this._version, Math.floor(Number(persistedVersion))); + } + } + catch { /* 读取失败回退 config.version */ } + } // 初始化执行器和事务管理器 this.executor = new QueryExecutor(this.engine, this.maxRowsPerQuery); this.transactionManager = new TransactionManager(this.engine); @@ -9630,11 +10734,51 @@ class MetonaSqlark { async migrateTo(targetVersion) { this.ensureReady(); for (const [version, up] of [...this.migrations.entries()].sort((a, b) => a[0] - b[0])) { - if (version <= targetVersion && version > this.version) { + if (version <= targetVersion && version > this._version) { await up(this); this._version = version; } } + // v0.4.2-fix (P2-7): 迁移版本持久化到库内,重启后从持久化版本继续, + // 避免"version 重置导致已执行迁移重跑(不幂等就炸)"或"版本门槛跳过迁移" + if (typeof this.engine.setMeta === 'function') { + try { + await this.engine.setMeta('__metona_version', String(this._version)); + } + catch { /* 持久化失败不阻塞迁移流程 */ } + } + } + // ---- 自愈 / 重置(v0.4.2-fix, P2-9) ---- + /** + * 崩溃恢复自愈 — 校验并清理损坏数据、恢复一致性。 + * 检测到异常后调用,无需删库重建。 + */ + async repair() { + this.ensureReady(); + if (typeof this.engine.repair === 'function') { + await this.engine.repair(); + this.tableCache.clear(); + return; + } + // 兜底:重建表缓存 + this.tableCache.clear(); + } + /** + * 清空全部数据与表结构(保留库本身)。 + * 支持后续继续使用本实例重建表。 + */ + async clearAll() { + this.ensureReady(); + if (typeof this.engine.clearAll === 'function') { + await this.engine.clearAll(); + } + else { + const names = await this.engine.getTableNames(); + for (const name of names) { + await this.engine.dropTable(name); + } + } + this.tableCache.clear(); } // ---- 插件 ---- /** 获取插件管理器 */ diff --git a/dist/metona-sqlark.cjs.map b/dist/metona-sqlark.cjs.map index 8ce4bdb..2c52683 100644 --- a/dist/metona-sqlark.cjs.map +++ b/dist/metona-sqlark.cjs.map @@ -1 +1 @@ -{"version":3,"file":"metona-sqlark.cjs","sources":["../src/constants.ts","../src/query/where-matcher.ts","../src/engine/memory.ts","../src/engine/indexeddb.ts","../src/engine/opfs.ts","../src/table/schema.ts","../src/engine/aria/types.ts","../src/engine/aria/index/memtable.ts","../src/engine/aria/index/bloom.ts","../src/engine/aria/index/sstable_builder.ts","../src/engine/aria/index/sstable.ts","../src/engine/aria/index/merge_iterator.ts","../src/engine/aria/index/lsm.ts","../src/engine/aria/wal/log.ts","../src/engine/aria/wal/checkpoint.ts","../src/engine/aria/store/backend.ts","../src/engine/aria/store/opfs_backend.ts","../src/engine/aria/page/header.ts","../src/engine/aria/store/file_manager.ts","../src/engine/aria/transaction/mvcc.ts","../src/engine/aria/page/format.ts","../src/engine/aria/buffer/eviction.ts","../src/engine/aria/buffer/pool.ts","../src/engine/aria/compression/lz4.ts","../src/engine/aria/crypto.ts","../src/engine/aria/index.ts","../src/hybrid/index.ts","../src/query/builder.ts","../src/table/table.ts","../src/query/compiler.ts","../src/sql/tokens.ts","../src/sql/lexer.ts","../src/sql/parser.ts","../src/query/executor.ts","../src/transaction/index.ts","../src/plugin/index.ts","../src/core.ts","../src/connection-manager.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["SSTABLE_MAGIC"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"metona-sqlark.cjs","sources":["../src/constants.ts","../src/query/where-matcher.ts","../src/engine/memory.ts","../src/engine/indexeddb.ts","../src/engine/opfs.ts","../src/table/schema.ts","../src/engine/aria/types.ts","../src/engine/aria/index/memtable.ts","../src/engine/aria/index/bloom.ts","../src/engine/aria/index/sstable_builder.ts","../src/engine/aria/index/sstable.ts","../src/engine/aria/index/merge_iterator.ts","../src/engine/aria/index/lsm.ts","../src/engine/aria/wal/log.ts","../src/engine/aria/wal/checkpoint.ts","../src/engine/aria/store/backend.ts","../src/engine/aria/store/opfs_backend.ts","../src/engine/aria/page/header.ts","../src/engine/aria/store/file_manager.ts","../src/engine/aria/transaction/mvcc.ts","../src/engine/aria/page/format.ts","../src/engine/aria/buffer/eviction.ts","../src/engine/aria/buffer/pool.ts","../src/engine/aria/compression/lz4.ts","../src/engine/aria/crypto.ts","../src/engine/aria/index.ts","../src/hybrid/index.ts","../src/query/builder.ts","../src/table/table.ts","../src/query/compiler.ts","../src/sql/tokens.ts","../src/sql/lexer.ts","../src/sql/parser.ts","../src/query/executor.ts","../src/transaction/index.ts","../src/plugin/index.ts","../src/core.ts","../src/connection-manager.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["SSTABLE_MAGIC"],"mappings":"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"} \ No newline at end of file diff --git a/dist/metona-sqlark.d.ts b/dist/metona-sqlark.d.ts index 1b5f81c..eaf4575 100644 --- a/dist/metona-sqlark.d.ts +++ b/dist/metona-sqlark.d.ts @@ -118,7 +118,7 @@ interface MetonaPlugin { /** 销毁 */ destroy(): void; } -declare const VERSION = "0.4.1"; +declare const VERSION = "0.4.2"; /** * metona-sqlark Plugin — 插件系统 @@ -202,6 +202,14 @@ interface IStorageEngine { releaseSavepoint?(name: string): Promise; /** 在线备份:导出全库一致性快照 */ backup?(): Promise[]>>; + /** 崩溃恢复自愈:校验并清理损坏数据、恢复一致性(检测到异常后调用,无需删库重建) */ + repair?(): Promise; + /** 清空全部数据与表结构(保留库本身,供演示页刷新/重建用) */ + clearAll?(): Promise; + /** 读取库内元数据(迁移版本持久化用) */ + getMeta?(key: string): Promise; + /** 写入库内元数据(迁移版本持久化用) */ + setMeta?(key: string, value: string): Promise; } /** @@ -651,6 +659,16 @@ declare class MetonaSqlark { addMigration(version: number, up: (db: MetonaSqlark) => Promise): void; /** 执行迁移到指定版本 */ migrateTo(targetVersion: number): Promise; + /** + * 崩溃恢复自愈 — 校验并清理损坏数据、恢复一致性。 + * 检测到异常后调用,无需删库重建。 + */ + repair(): Promise; + /** + * 清空全部数据与表结构(保留库本身)。 + * 支持后续继续使用本实例重建表。 + */ + clearAll(): Promise; /** 获取插件管理器 */ getPluginManager(): PluginManager; /** 注册钩子 */ @@ -667,31 +685,47 @@ declare class MetonaSqlark { private _debug; } -/** - * metona-sqlark Memory Engine — 基于 Map 的内存存储引擎 - * @module engine/memory - */ - declare class MemoryEngine implements IStorageEngine { readonly name = "memory"; private tables; private schemas; private indexes; private opened; + /** v0.4.2-fix: 库内元数据(迁移版本持久化用) */ + private metaStore; private snapshot; open(_dbName: string, _version: number): Promise; close(): Promise; isOpen(): boolean; + /** 内存引擎无需修复(无持久化损坏概念) */ + repair(): Promise; + /** 清空全部数据与表结构 */ + clearAll(): Promise; + getMeta(key: string): Promise; + setMeta(key: string, value: string): Promise; createTable(schema: TableSchema): Promise; dropTable(tableName: string): Promise; hasTable(tableName: string): Promise; getTableNames(): Promise; getTableSchema(tableName: string): Promise; + /** + * v0.4.2-fix: 引擎级 ALTER TABLE — 直接修改内存 schema 引用并清理行数据。 + * (此前走 executor 通用路径,行为相同;统一到引擎层保证 Hybrid/IndexedDB 委托一致性) + */ + alterTable(tableName: string, action: 'ADD' | 'DROP', column: ColumnDef & { + name: string; + }): Promise; insert(tableName: string, rows: Record[]): Promise; find(tableName: string, query: QueryPlan): Promise[]>; /** v0.4.0: 流式查询 — 逐行回调(单次迭代,不物化结果数组) */ findStream(tableName: string, query: QueryPlan, onRow: (row: Record) => void): Promise; update(tableName: string, query: QueryPlan, updates: Record): Promise; + /** + * v0.4.2-fix: ON UPDATE 外键级联 — 被引用表主键变更时处理引用表: + * RESTRICT 抛错 / CASCADE 更新 FK 值 / SET NULL 置空。 + * 分两阶段:先全量 RESTRICT 检查(任何修改前),再执行级联(防部分修改)。 + */ + private applyUpdateCascade; delete(tableName: string, query: QueryPlan): Promise; count(tableName: string, query?: QueryPlan): Promise; clear(tableName: string): Promise; @@ -721,13 +755,6 @@ declare class MemoryEngine implements IStorageEngine { private cascadeDelete; } -/** - * metona-sqlark IndexedDB Engine — 基于 IndexedDB 的持久化存储引擎 - * @module engine/indexeddb - * - * v0.1.13: 支持事务 — beginTransaction 延迟 IDB 写入,commit 批量刷盘,rollback 恢复快照。 - */ - declare class IndexedDBEngine implements IStorageEngine { readonly name = "indexeddb"; private db; @@ -736,6 +763,29 @@ declare class IndexedDBEngine implements IStorageEngine { private memoryCache; private txActive; open(dbName: string, version: number): Promise; + /** v0.4.2-fix: 多标签页冲突处理 — 其他标签页升级版本时自动关闭当前连接 */ + private setupVersionChangeHandler; + /** + * v0.4.2-fix: 打开 IndexedDB 连接。 + * - P0-2: 请求版本低于库实际版本(VersionError)时,先无版本参数探测库当前版本, + * 再以实际版本重开(建表每张表版本号 +1,config.version 会过期) + * - P2-8: onblocked 为瞬时状态(另一连接短暂持有),等待后重试多次,超时才抛 IDB_BLOCKED + */ + private openDatabaseWithRetry; + /** + * 发起一次 indexedDB.open 请求(success/error/blocked 三态收敛)。 + * onblocked 不立即失败:阻塞解除后 success 仍会触发,仅超时兜底判失败, + * 避免"拒绝后连接迟到成功"泄漏未关闭的数据库连接。 + */ + private openRequest; + /** 无版本参数打开库,解析其当前实际版本号(随后立即关闭) */ + private resolveCurrentVersion; + /** + * v0.4.2-fix (P2-7): 确保 __metona_schema store 存在。 + * 新库(或版本升级前创建的旧库)没有该 store 时,通过一次版本升级创建, + * 使 getMeta/setMeta(迁移版本持久化)始终可用。 + */ + private ensureSchemaStore; /** * 从 IDB 恢复内存 schema: * 1. 优先读取持久化的 schema 记录('__metona_schema' store,v0.3.2) @@ -743,12 +793,31 @@ declare class IndexedDBEngine implements IStorageEngine { */ private rebuildSchemaFromIDB; close(): Promise; + /** + * v0.4.2-fix: 自愈 — 从磁盘重建内存 schema 与数据(schema 丢失/内存不一致时调用)。 + * 无删库需求即可恢复可用的库。 + */ + repair(): Promise; + /** + * v0.4.2-fix: 清空全部数据与表结构(含持久化 schema 记录),保留库本身。 + * 单个版本升级事务内原子完成。 + */ + clearAll(): Promise; + getMeta(key: string): Promise; + setMeta(key: string, value: string): Promise; isOpen(): boolean; createTable(schema: TableSchema): Promise; dropTable(tableName: string): Promise; hasTable(tableName: string): Promise; getTableNames(): Promise; getTableSchema(tableName: string): Promise; + /** + * v0.4.2-fix: 引擎级 ALTER TABLE — schema 持久化到 __metona_schema store, + * 重启后 ALTER 不丢失(此前通用路径只改内存引用,重启回退;DROP 的行数据也没真正删)。 + */ + alterTable(tableName: string, action: 'ADD' | 'DROP', column: ColumnDef & { + name: string; + }): Promise; insert(tableName: string, rows: Record[]): Promise; find(tableName: string, query: QueryPlan): Promise[]>; /** v0.4.0: 流式查询 — IDB 批量读入后逐行回调(保持接口一致性) */ @@ -771,19 +840,13 @@ declare class IndexedDBEngine implements IStorageEngine { private idbUpdate; private idbDelete; private idbClear; + /** 持久化单个表 schema 到 __metona_schema store(v0.4.2-fix: ALTER TABLE 用) */ + private persistSchema; /** 将内存缓存中的所有表数据原子性刷新到 IndexedDB */ private flushToIDB; private ensureDB; } -/** - * metona-sqlark OPFS Engine — 基于 Origin Private File System 的持久化存储引擎 - * @module engine/opfs - * - * 使用 JSON-per-table 文件存储方案。 - * 目录结构:{dbName}/tables/{tableName}.json - */ - declare class OPFSEngine implements IStorageEngine { readonly name = "opfs"; private root; @@ -793,11 +856,21 @@ declare class OPFSEngine implements IStorageEngine { open(dbName: string, version: number): Promise; close(): Promise; isOpen(): boolean; + /** 自愈:重置内存缓存后从 OPFS 重新加载(单文件损坏不影响其他表) */ + repair(): Promise; + /** 清空全部数据与表结构(删除目录内全部文件) */ + clearAll(): Promise; + getMeta(key: string): Promise; + setMeta(key: string, value: string): Promise; createTable(schema: TableSchema): Promise; dropTable(tableName: string): Promise; hasTable(tableName: string): Promise; getTableNames(): Promise; getTableSchema(tableName: string): Promise; + /** v0.4.2-fix: 引擎级 ALTER TABLE — 内存 + schema 持久化 + 整表文件重写 */ + alterTable(tableName: string, action: 'ADD' | 'DROP', column: ColumnDef & { + name: string; + }): Promise; insert(tableName: string, rows: Record[]): Promise; find(tableName: string, query: QueryPlan): Promise[]>; /** v0.4.0: 流式查询(委托内存缓存) */ @@ -814,7 +887,11 @@ declare class OPFSEngine implements IStorageEngine { private ensureDir; private writeTableData; private readTableData; - /** 从 OPFS 加载已有表数据到内存缓存 */ + /** + * 从 OPFS 加载已有表到内存缓存。 + * v0.4.2-fix: 优先从持久化 schema(__metona_schema_*.meta)恢复 — + * 空表不再消失、索引标记/主键/约束完整;无 schema 记录的旧库从数据推断(兼容)。 + */ private loadExistingTables; /** 从 OPFS 加载表数据到内存缓存 */ loadTableIntoMemory(tableName: string, schema: TableSchema): Promise; @@ -867,21 +944,41 @@ declare class AriaEngine implements IStorageEngine { private bufferPool; constructor(config?: AriaEngineConfig); open(dbName: string, _version: number): Promise; + /** open 内部实现(错误包装在 open 外层) */ + private openInternal; close(): Promise; + /** + * v0.4.2-fix: 崩溃恢复/自愈 — 校验并移除损坏 SSTable、截断 WAL、重建二级索引。 + * 应用层检测到异常后调用,无需删库重建。 + */ + repair(): Promise; /** * v0.4.1: 重置数据库 — 清空全部数据与表结构(演示页刷新/重新初始化用)。 * 清空存储后端、LSM、WAL、MVCC 与二级索引,后续可继续使用本实例。 */ clearAll(): Promise; isOpen(): boolean; + getMeta(key: string): Promise; + setMeta(key: string, value: string): Promise; createTable(schema: TableSchema): Promise; dropTable(tableName: string): Promise; + /** + * v0.4.2-fix: 清理指定表的全部二级索引 LSM(内存 + 存储文件 + meta)。 + * dropTable / DROP_TABLE 恢复 / alterTable DROP 索引列 共用。 + */ + private cleanupTableIndexes; 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; + /** + * v0.4.2-fix: ON UPDATE 外键级联 — 主键 oldPk → newPk 时处理引用表。 + * RESTRICT 抛错 / CASCADE 更新 FK / SET NULL 置空(含索引与 WAL 记录)。 + * 两阶段:先全量 RESTRICT 检查,再执行级联。 + */ + private applyForeignKeyUpdateRules; delete(tableName: string, query: QueryPlan): Promise; /** * v0.4.1: 外键级联规则 — 对齐 MemoryEngine.cascadeDelete 行为。 @@ -970,6 +1067,8 @@ declare class AriaEngine implements IStorageEngine { * REINDEX: 重建指定表的所有二级索引 */ reindexTable(tableName: string): Promise; + /** v0.4.2-fix: 重建索引内部实现(不校验 opened,供 open 恢复流程调用) */ + private reindexTableInternal; /** * VACUUM: 压缩 LSM + 清理碎片 */ @@ -985,6 +1084,8 @@ declare class AriaEngine implements IStorageEngine { estimatedRows: number; }; private ensureOpen; + /** v0.4.2-fix: Aria 事务中 DDL 显式拒绝(结构变更无法通过行快照回滚) */ + private ensureNoDDLInTransaction; private ensureTable; /** Get the number of WAL records stored */ private getWALCount; @@ -992,16 +1093,6 @@ declare class AriaEngine implements IStorageEngine { private setWALCount; } -/** - * metona-sqlark Hybrid Engine — 内存 + 磁盘混合存储引擎 - * @module hybrid/index - * - * 采用 write-through 策略: - * - 所有写操作同时写入内存和磁盘 - * - 所有读操作直接从内存返回 - * - 数据库打开时从磁盘加载数据到内存 - */ - declare class HybridEngine implements IStorageEngine { readonly name = "hybrid"; private memoryEngine; @@ -1018,11 +1109,21 @@ declare class HybridEngine implements IStorageEngine { reloadMemoryFromDisk(): Promise; close(): Promise; isOpen(): boolean; + /** 自愈:修复磁盘引擎后重载内存缓存 */ + repair(): Promise; + /** 清空全部数据与表结构 */ + clearAll(): Promise; + getMeta(key: string): Promise; + setMeta(key: string, value: string): Promise; createTable(schema: TableSchema): Promise; dropTable(tableName: string): Promise; hasTable(tableName: string): Promise; getTableNames(): Promise; getTableSchema(tableName: string): Promise; + /** v0.4.2-fix: 引擎级 ALTER TABLE — 双引擎同步(磁盘持久化 + 内存引用) */ + alterTable(tableName: string, action: 'ADD' | 'DROP', column: ColumnDef & { + name: string; + }): Promise; insert(tableName: string, rows: Record[]): Promise; find(tableName: string, query: QueryPlan): Promise[]>; /** v0.4.0: 流式查询(内存引擎逐行回调) */ @@ -1177,8 +1278,17 @@ interface IStorageBackend { read(key: string): Promise; /** 写入数据块 */ write(key: string, data: ArrayBuffer): Promise; + /** + * 批量原子写入(v0.4.2-fix):多个 key 在单个底层事务中提交, + * 中断时整体回滚,不留半写状态。WAL count 与记录同事务保证一致性。 + */ + writeMany(entries: Record): Promise; /** 删除数据块 */ delete(key: string): Promise; + /** + * 批量原子删除(v0.4.2-fix):多个 key 在单个底层事务中提交。 + */ + deleteMany(keys: string[]): Promise; /** 列出所有 key */ listKeys(): Promise; /** 检查 key 是否存在 */ @@ -1207,7 +1317,11 @@ declare class OPFSBackend implements IStorageBackend { isOpen(): boolean; read(key: string): Promise; write(key: string, data: ArrayBuffer): Promise; + /** v0.4.2-fix: 批量写入 — 串行队列内逐个落盘(OPFS 无跨文件事务,顺序保证一致) */ + writeMany(entries: Record): Promise; delete(key: string): Promise; + /** v0.4.2-fix: 批量删除 — 串行队列内逐个删除 */ + deleteMany(keys: string[]): Promise; listKeys(): Promise; exists(key: string): Promise; clear(): Promise; diff --git a/dist/metona-sqlark.esm.js b/dist/metona-sqlark.esm.js index 5225d8b..c1a566e 100644 --- a/dist/metona-sqlark.esm.js +++ b/dist/metona-sqlark.esm.js @@ -30,7 +30,7 @@ class DatabaseError extends Error { // --------------------------------------------------------------------------- // 版本 // --------------------------------------------------------------------------- -const VERSION = '0.4.1'; +const VERSION = '0.4.2'; /** * metona-sqlark Shared WHERE Matcher — 统一的条件匹配逻辑 @@ -226,6 +226,8 @@ class MemoryEngine { this.schemas = new Map(); this.indexes = new Map(); this.opened = false; + /** v0.4.2-fix: 库内元数据(迁移版本持久化用) */ + this.metaStore = new Map(); // ---- 事务快照 ---- this.snapshot = null; } @@ -241,17 +243,41 @@ class MemoryEngine { this.tables.clear(); this.schemas.clear(); this.indexes.clear(); + this.metaStore.clear(); this.opened = false; } isOpen() { return this.opened; } + // ---- v0.4.2-fix: 自愈 / 重置 / 元数据 ---- + /** 内存引擎无需修复(无持久化损坏概念) */ + async repair() { return; } + /** 清空全部数据与表结构 */ + async clearAll() { + const names = Array.from(this.schemas.keys()); + for (const name of names) { + await this.dropTable(name); + } + this.metaStore.clear(); + } + async getMeta(key) { + return this.metaStore.get(key) ?? null; + } + async setMeta(key, value) { + this.metaStore.set(key, value); + } // ---- 表管理 ---- async createTable(schema) { if (this.schemas.has(schema.name)) throw new DatabaseError(`Table "${schema.name}" already exists`, 'TABLE_EXISTS'); - this.schemas.set(schema.name, schema); + // v0.4.2-fix: 存储 schema 深拷贝 — 此前 Hybrid.reloadMemoryFromDisk 直接存入 + // disk 引擎的 schema 引用,内存/磁盘引擎共享同一对象,任一引擎 ALTER 都会污染对方 + const copy = { name: schema.name, columns: {} }; + for (const [colName, colDef] of Object.entries(schema.columns)) { + copy.columns[colName] = { ...colDef }; + } + this.schemas.set(schema.name, copy); this.tables.set(schema.name, new Map()); const tableIndexes = new Map(); - for (const [colName, colDef] of Object.entries(schema.columns)) { + for (const [colName, colDef] of Object.entries(copy.columns)) { if (colDef.index || colDef.unique) tableIndexes.set(colName, new Map()); } @@ -266,6 +292,31 @@ class MemoryEngine { async hasTable(tableName) { return this.schemas.has(tableName); } async getTableNames() { return Array.from(this.schemas.keys()); } async getTableSchema(tableName) { return this.schemas.get(tableName) ?? null; } + /** + * v0.4.2-fix: 引擎级 ALTER TABLE — 直接修改内存 schema 引用并清理行数据。 + * (此前走 executor 通用路径,行为相同;统一到引擎层保证 Hybrid/IndexedDB 委托一致性) + */ + async alterTable(tableName, action, column) { + this.ensureTable(tableName); + const schema = this.schemas.get(tableName); + if (action === 'ADD') { + if (schema.columns[column.name]) { + throw new DatabaseError(`Column "${column.name}" already exists in table "${tableName}"`, 'COLUMN_EXISTS'); + } + schema.columns[column.name] = column; + return; + } + if (!schema.columns[column.name]) { + throw new DatabaseError(`Column "${column.name}" does not exist in table "${tableName}"`, 'COLUMN_NOT_FOUND'); + } + delete schema.columns[column.name]; + // 清理已有行中该列的值(find 返回行引用,直接删除生效) + const table = this.tables.get(tableName); + for (const row of table.values()) { + if (column.name in row) + delete row[column.name]; + } + } // ---- CRUD ---- async insert(tableName, rows) { this.ensureTable(tableName); @@ -333,21 +384,80 @@ class MemoryEngine { this.ensureTable(tableName); const schema = this.schemas.get(tableName); const table = this.tables.get(tableName); + const pkCol = this.getPrimaryKey(schema); let count = 0; - for (const [pk, row] of table) { + // v0.4.2-fix: 迭代期间会 delete/set 同一 Map(主键变更)→ 拷贝快照避免跳过/重复 + for (const [pk, row] of [...table]) { if (!query.where || Object.keys(query.where).length === 0 || matchWhere(row, query.where)) { // v0.3.3: 先移除旧值索引条目(修复 update 后唯一约束被绕过、按新值查索引丢行) this.removeIndexEntries(tableName, row, pk); const updated = { ...row, ...updates }; this.validateRow(schema, updated); this.checkUniqueness(schema, updated); - table.set(pk, updated); - this.updateIndexes(tableName, updated, pk); + const newPk = String(updated[pkCol]); + // v0.4.2-fix: 主键变更 — 删除旧键 + 级联更新引用表 + 新键落表 + if (newPk !== pk) { + await this.applyUpdateCascade(tableName, pk, newPk); + } + table.delete(pk); + table.set(newPk, updated); + this.updateIndexes(tableName, updated, newPk); count++; } } return count; } + /** + * v0.4.2-fix: ON UPDATE 外键级联 — 被引用表主键变更时处理引用表: + * RESTRICT 抛错 / CASCADE 更新 FK 值 / SET NULL 置空。 + * 分两阶段:先全量 RESTRICT 检查(任何修改前),再执行级联(防部分修改)。 + */ + async applyUpdateCascade(tableName, oldPk, newPk) { + // 阶段 1: RESTRICT 检查(引用旧主键的行存在即拒绝) + for (const [refTableName, refSchema] of this.schemas) { + if (refTableName === tableName) + continue; + for (const [colName, colDef] of Object.entries(refSchema.columns)) { + if (!colDef.references || !colDef.onUpdate) + continue; + const [refTable] = colDef.references.split('.'); + if (refTable !== tableName) + continue; + const refTableData = this.tables.get(refTableName); + if (!refTableData) + continue; + for (const [, refRow] of refTableData) { + if (String(refRow[colName]) === oldPk && colDef.onUpdate === 'RESTRICT') { + throw new DatabaseError(`Cannot update "${tableName}" key "${oldPk}": foreign key "${colName}" in "${refTableName}" has dependent rows`, 'FOREIGN_KEY_VIOLATION'); + } + } + } + } + // 阶段 2: CASCADE / SET NULL + for (const [refTableName, refSchema] of this.schemas) { + if (refTableName === tableName) + continue; + for (const [colName, colDef] of Object.entries(refSchema.columns)) { + if (!colDef.references || !colDef.onUpdate) + continue; + const [refTable] = colDef.references.split('.'); + if (refTable !== tableName) + continue; + const refTableData = this.tables.get(refTableName); + if (!refTableData) + continue; + if (colDef.onUpdate !== 'CASCADE' && colDef.onUpdate !== 'SET NULL') + continue; + for (const [refPk, refRow] of refTableData) { + if (String(refRow[colName]) !== oldPk) + continue; + this.removeIndexEntries(refTableName, refRow, refPk); + refRow[colName] = colDef.onUpdate === 'CASCADE' ? newPk : null; + this.updateIndexes(refTableName, refRow, refPk); + } + } + } + } async delete(tableName, query) { this.ensureTable(tableName); const table = this.tables.get(tableName); @@ -693,33 +803,153 @@ class IndexedDBEngine { this.txActive = false; } async open(dbName, version) { + // v0.4.2-fix (P0-3): version < 1 归一化为 1(indexedDB.open(name, 0) 抛原生 TypeError) + const normalizedVersion = version >= 1 ? Math.floor(version) : 1; this.dbName = dbName; - this.version = version; - await this.memoryCache.open(dbName, version); + this.version = normalizedVersion; + await this.memoryCache.open(dbName, normalizedVersion); + // v0.4.2-fix (P0-2/P2-8): 版本自适应打开 + blocked 重试 + this.db = await this.openDatabaseWithRetry(dbName, normalizedVersion); + this.setupVersionChangeHandler(); + // v0.4.2-fix (P2-7): 确保 schema/meta 持久化 store 存在(新库或旧库升级时创建), + // 否则迁移版本等库内元数据无处落盘 + await this.ensureSchemaStore(); + try { + // v0.3.2: reopen 后从 IDB 重建 schema(schema 此前只存内存缓存,重开连接即丢失) + await this.rebuildSchemaFromIDB(); + } + catch (error) { + throw new DatabaseError(`Failed to restore schema for "${dbName}"`, 'IDB_SCHEMA_RESTORE_ERROR', error); + } + } + /** v0.4.2-fix: 多标签页冲突处理 — 其他标签页升级版本时自动关闭当前连接 */ + setupVersionChangeHandler() { + if (!this.db) + return; + this.db.onversionchange = () => { + if (this.db) { + this.db.close(); + this.db = null; + // eslint-disable-next-line no-console + console.warn(`[metona-sqlark] Database "${this.dbName}" was upgraded in another tab. Connection closed. Please re-open.`); + } + }; + } + /** + * v0.4.2-fix: 打开 IndexedDB 连接。 + * - P0-2: 请求版本低于库实际版本(VersionError)时,先无版本参数探测库当前版本, + * 再以实际版本重开(建表每张表版本号 +1,config.version 会过期) + * - P2-8: onblocked 为瞬时状态(另一连接短暂持有),等待后重试多次,超时才抛 IDB_BLOCKED + */ + async openDatabaseWithRetry(dbName, requestedVersion) { + const BLOCKED_RETRIES = 10; + let effectiveVersion = requestedVersion; + for (let attempt = 0; attempt < BLOCKED_RETRIES; attempt++) { + try { + return await this.openRequest(dbName, effectiveVersion, 200 + attempt * 150); + } + catch (error) { + const err = error; + if (err && err.name === 'VersionError') { + const currentVersion = await this.resolveCurrentVersion(dbName); + if (currentVersion >= 1 && currentVersion !== effectiveVersion) { + effectiveVersion = currentVersion; + this.version = currentVersion; + continue; + } + throw new DatabaseError(`Failed to open IndexedDB "${dbName}": version mismatch`, 'IDB_VERSION_ERROR', error); + } + if (err && err.name === 'BlockedError') { + // 另一连接短暂持有 → 等待后重试 + await new Promise((resolve) => setTimeout(resolve, 50 * (attempt + 1))); + continue; + } + throw new DatabaseError(`Failed to open IndexedDB "${dbName}"`, 'IDB_OPEN_ERROR', error); + } + } + throw new DatabaseError(`IndexedDB "${dbName}" is blocked`, 'IDB_BLOCKED'); + } + /** + * 发起一次 indexedDB.open 请求(success/error/blocked 三态收敛)。 + * onblocked 不立即失败:阻塞解除后 success 仍会触发,仅超时兜底判失败, + * 避免"拒绝后连接迟到成功"泄漏未关闭的数据库连接。 + */ + openRequest(dbName, version, timeoutMs) { return new Promise((resolve, reject) => { const request = indexedDB.open(dbName, version); - request.onsuccess = async () => { - this.db = request.result; - // 多标签页冲突处理:其他标签页升级版本时自动关闭当前连接 - this.db.onversionchange = () => { - if (this.db) { - this.db.close(); - this.db = null; - // eslint-disable-next-line no-console - console.warn(`[metona-sqlark] Database "${dbName}" was upgraded in another tab. Connection closed. Please re-open.`); - } - }; - try { - // v0.3.2: reopen 后从 IDB 重建 schema(schema 此前只存内存缓存,重开连接即丢失) - await this.rebuildSchemaFromIDB(); - resolve(); + let settled = false; + const timeout = setTimeout(() => { + if (settled) + return; + settled = true; + // 兼容无 DOMException 构造环境 + const blockedError = typeof DOMException !== 'undefined' + ? new DOMException('IndexedDB open is blocked', 'BlockedError') + : Object.assign(new Error('IndexedDB open is blocked'), { name: 'BlockedError' }); + reject(blockedError); + }, timeoutMs); + request.onsuccess = () => { + if (settled) { + // 超时判失败后连接迟到成功:立即关闭,避免阻塞后续版本升级 + request.result.close(); + return; } - catch (error) { - reject(new DatabaseError(`Failed to restore schema for "${dbName}"`, 'IDB_SCHEMA_RESTORE_ERROR', error)); + settled = true; + clearTimeout(timeout); + resolve(request.result); + }; + request.onerror = () => { + if (settled) + return; + settled = true; + clearTimeout(timeout); + reject(request.error ?? new Error('Unknown IndexedDB open error')); + }; + request.onblocked = () => { + // 保持等待,不拒绝(阻塞解除后 success 会触发;超时由 timer 兜底) + }; + }); + } + /** 无版本参数打开库,解析其当前实际版本号(随后立即关闭) */ + resolveCurrentVersion(dbName) { + return new Promise((resolve, reject) => { + const request = indexedDB.open(dbName); + request.onsuccess = () => { + const actualVersion = request.result.version; + request.result.close(); + resolve(actualVersion); + }; + request.onerror = () => { + reject(request.error ?? new Error('Failed to resolve IndexedDB version')); + }; + }); + } + /** + * v0.4.2-fix (P2-7): 确保 __metona_schema store 存在。 + * 新库(或版本升级前创建的旧库)没有该 store 时,通过一次版本升级创建, + * 使 getMeta/setMeta(迁移版本持久化)始终可用。 + */ + async ensureSchemaStore() { + if (!this.db) + return; + if (this.db.objectStoreNames.contains('__metona_schema')) + return; + const newVersion = this.db.version + 1; + this.db.close(); + this.db = await new Promise((resolve, reject) => { + const request = indexedDB.open(this.dbName, newVersion); + request.onupgradeneeded = () => { + const idb = request.result; + if (!idb.objectStoreNames.contains('__metona_schema')) { + idb.createObjectStore('__metona_schema', { keyPath: 'name' }); } }; - request.onerror = () => reject(new DatabaseError(`Failed to open IndexedDB "${dbName}"`, 'IDB_OPEN_ERROR', request.error)); - request.onblocked = () => reject(new DatabaseError(`IndexedDB "${dbName}" is blocked`, 'IDB_BLOCKED')); + request.onsuccess = () => { + this.db = request.result; + this.setupVersionChangeHandler(); + resolve(request.result); + }; + request.onerror = () => reject(new DatabaseError('Failed to create schema store', 'IDB_UPGRADE_ERROR', request.error)); }); } /** @@ -794,6 +1024,83 @@ class IndexedDBEngine { } await this.memoryCache.close(); } + /** + * v0.4.2-fix: 自愈 — 从磁盘重建内存 schema 与数据(schema 丢失/内存不一致时调用)。 + * 无删库需求即可恢复可用的库。 + */ + async repair() { + if (!this.db) + throw new DatabaseError('Database not opened', 'DB_NOT_OPEN'); + await this.memoryCache.close(); + await this.memoryCache.open(this.dbName, this.version); + await this.rebuildSchemaFromIDB(); + } + /** + * v0.4.2-fix: 清空全部数据与表结构(含持久化 schema 记录),保留库本身。 + * 单个版本升级事务内原子完成。 + */ + async clearAll() { + const db = this.ensureDB(); + // 先清内存缓存 + const tableNames = await this.memoryCache.getTableNames(); + for (const name of tableNames) { + await this.memoryCache.dropTable(name); + } + // 重置 IDB:删除所有表 store + 清空 schema/meta store + const newVersion = db.version + 1; + db.close(); + await new Promise((resolve, reject) => { + const request = indexedDB.open(this.dbName, newVersion); + request.onupgradeneeded = (event) => { + const idb = event.target.result; + const toDelete = Array.from(idb.objectStoreNames).filter((n) => n !== '__metona_schema'); + for (const name of toDelete) { + idb.deleteObjectStore(name); + } + if (!idb.objectStoreNames.contains('__metona_schema')) { + idb.createObjectStore('__metona_schema', { keyPath: 'name' }); + } + else { + // 保留 store 但清空内容(含持久化 schema 与 meta 记录) + const tx = event.target.transaction; + tx.objectStore('__metona_schema').clear(); + } + }; + request.onsuccess = () => { + this.db = request.result; + this.setupVersionChangeHandler(); + resolve(); + }; + request.onerror = () => reject(new DatabaseError('Failed to clear database', 'IDB_CLEAR_ERROR', request.error)); + request.onblocked = () => reject(new DatabaseError(`IndexedDB "${this.dbName}" is blocked`, 'IDB_BLOCKED')); + }); + } + // ---- 库内元数据(v0.4.2-fix:迁移版本持久化用,复用 __metona_schema store) ---- + async getMeta(key) { + const db = this.ensureDB(); + if (!db.objectStoreNames.contains('__metona_schema')) + return null; + return new Promise((resolve, reject) => { + const req = db.transaction('__metona_schema', 'readonly') + .objectStore('__metona_schema').get(`__meta:${key}`); + req.onsuccess = () => { + const rec = req.result; + resolve(rec && typeof rec.schema === 'string' ? rec.schema : null); + }; + req.onerror = () => reject(req.error); + }); + } + async setMeta(key, value) { + const db = this.ensureDB(); + if (!db.objectStoreNames.contains('__metona_schema')) + return; + await new Promise((resolve, reject) => { + const tx = db.transaction('__metona_schema', 'readwrite'); + tx.objectStore('__metona_schema').put({ name: `__meta:${key}`, schema: value }); + tx.oncomplete = () => resolve(); + tx.onerror = () => reject(new DatabaseError(`Failed to persist meta "${key}"`, 'IDB_META_ERROR', tx.error)); + }); + } isOpen() { return this.db !== null; } // ---- 表管理 ---- async createTable(schema) { @@ -811,6 +1118,43 @@ class IndexedDBEngine { async hasTable(tableName) { return this.ensureDB().objectStoreNames.contains(tableName); } async getTableNames() { return Array.from(this.ensureDB().objectStoreNames); } async getTableSchema(tableName) { return this.memoryCache.getTableSchema(tableName); } + /** + * v0.4.2-fix: 引擎级 ALTER TABLE — schema 持久化到 __metona_schema store, + * 重启后 ALTER 不丢失(此前通用路径只改内存引用,重启回退;DROP 的行数据也没真正删)。 + */ + async alterTable(tableName, action, column) { + await this.memoryCache.alterTable(tableName, action, column); + if (this.txActive) + return; // 事务中:commit 时统一 flushToIDB 同步 + const schema = await this.memoryCache.getTableSchema(tableName); + if (schema) { + await this.persistSchema(schema); + } + if (action === 'DROP') { + // 重写 IDB 存储行:移除该列键(store.put 经 keyPath 自动覆盖原行) + const db = this.ensureDB(); + const rows = await this.idbFind(tableName, { table: tableName }); + const rewritten = rows.map((row) => { + if (column.name in row) { + const copy = { ...row }; + delete copy[column.name]; + return copy; + } + return row; + }); + if (rewritten.length > 0) { + await new Promise((resolve, reject) => { + const tx = db.transaction(tableName, 'readwrite'); + const store = tx.objectStore(tableName); + for (const row of rewritten) { + store.put(row); + } + tx.oncomplete = () => resolve(); + tx.onerror = () => reject(new DatabaseError(`Failed to rewrite "${tableName}" after DROP COLUMN`, 'IDB_TX_ERROR', tx.error)); + }); + } + } + } // ---- CRUD ---- async insert(tableName, rows) { const pks = await this.memoryCache.insert(tableName, rows); @@ -918,10 +1262,10 @@ class IndexedDBEngine { async commitTransaction() { if (!this.txActive) throw new DatabaseError('No active transaction', 'TX_NONE'); - // 确认内存层的变更 - await this.memoryCache.commitTransaction(); - // 批量将内存数据刷到 IndexedDB + // v0.4.2-fix: 先刷盘后提交内存快照 — 此前先 memoryCache.commitTransaction() + // 再 flushToIDB,flush 失败时 snapshot 已丢,回滚报 TX_NONE 且内存数据已确认 await this.flushToIDB(); + await this.memoryCache.commitTransaction(); this.txActive = false; } async rollbackTransaction() { @@ -1135,10 +1479,78 @@ class IndexedDBEngine { tx.onerror = () => reject(new DatabaseError(`Clear failed for "${tableName}"`, 'IDB_TX_ERROR', tx.error)); }); } + /** 持久化单个表 schema 到 __metona_schema store(v0.4.2-fix: ALTER TABLE 用) */ + async persistSchema(schema) { + const db = this.ensureDB(); + if (!db.objectStoreNames.contains('__metona_schema')) + return; + await new Promise((resolve, reject) => { + const tx = db.transaction('__metona_schema', 'readwrite'); + tx.objectStore('__metona_schema').put({ name: schema.name, schema: JSON.stringify(schema) }); + tx.oncomplete = () => resolve(); + tx.onerror = () => reject(new DatabaseError(`Failed to persist schema for "${schema.name}"`, 'IDB_SCHEMA_ERROR', tx.error)); + }); + } /** 将内存缓存中的所有表数据原子性刷新到 IndexedDB */ async flushToIDB() { const tableNames = await this.memoryCache.getTableNames(); - const db = this.ensureDB(); + let db = this.ensureDB(); + // v0.4.2-fix: 事务内 DDL 只更新内存,commit 时同步 IDB 的 objectStore 结构: + // 缺失的表 store 创建(并持久化 schema)、已删除的 store 移除(防止重启幽灵表) + const idbStores = Array.from(db.objectStoreNames); + const missing = tableNames.filter((t) => !idbStores.includes(t)); + const stale = idbStores.filter((s) => s !== '__metona_schema' && !tableNames.includes(s)); + if (missing.length > 0 || stale.length > 0) { + // 升级事务内是同步上下文,先异步收集缺失表的 schema(主键列定义) + const schemaMap = new Map(); + for (const name of missing) { + const s = await this.memoryCache.getTableSchema(name); + if (s) + schemaMap.set(name, s); + } + const newVersion = db.version + 1; + db.close(); + await new Promise((resolve, reject) => { + const request = indexedDB.open(this.dbName, newVersion); + request.onupgradeneeded = (event) => { + const idb = event.target.result; + for (const name of stale) { + idb.deleteObjectStore(name); + } + for (const name of missing) { + const schema = schemaMap.get(name); + const pkColumn = schema + ? (Object.entries(schema.columns).find(([, c]) => c.primaryKey)?.[0] ?? Object.keys(schema.columns)[0]) + : undefined; + idb.createObjectStore(name, { keyPath: pkColumn }); + } + // 事务内 drop 的表:同步清理持久化 schema 记录(防止重启后幽灵表恢复) + if (idb.objectStoreNames.contains('__metona_schema') && stale.length > 0) { + const tx = event.target.transaction; + const store = tx.objectStore('__metona_schema'); + for (const name of stale) { + store.delete(name); + } + } + }; + request.onsuccess = () => { + this.db = request.result; + this.setupVersionChangeHandler(); + resolve(); + }; + request.onerror = () => reject(new DatabaseError('Failed to sync stores after transaction', 'IDB_UPGRADE_ERROR', request.error)); + request.onblocked = () => reject(new DatabaseError(`IndexedDB "${this.dbName}" is blocked`, 'IDB_BLOCKED')); + }); + // 事务内新建表的 schema 一并持久化(此前只建 store 不存 schema → 重启后约束推断丢失) + for (const name of missing) { + const schema = await this.memoryCache.getTableSchema(name); + if (schema) + await this.persistSchema(schema); + } + // v0.4.2-fix: DDL 升级会 close 旧连接并重新 open — 重新取 db 引用, + // 否则下方数据 flush 用已关闭的连接抛 InvalidStateError + db = this.ensureDB(); + } // 每个表在一个单独的 IDB 事务中完成 clear+insert,保证原子性 for (const tableName of tableNames) { const rows = await this.memoryCache.find(tableName, { table: tableName }); @@ -1211,15 +1623,65 @@ class OPFSEngine { isOpen() { return this.tablesDir !== null; } + // ---- v0.4.2-fix: 自愈 / 重置 / 元数据 ---- + /** 自愈:重置内存缓存后从 OPFS 重新加载(单文件损坏不影响其他表) */ + async repair() { + await this.memoryCache.close(); + await this.memoryCache.open(this.dbName, 1); + await this.loadExistingTables(); + } + /** 清空全部数据与表结构(删除目录内全部文件) */ + async clearAll() { + await this.memoryCache.close(); + await this.memoryCache.open(this.dbName, 1); + if (this.tablesDir) { + const dir = this.tablesDir; + for await (const [name] of dir.entries()) { + try { + await this.tablesDir.removeEntry(name); + } + catch { /* ignore */ } + } + } + } + async getMeta(key) { + if (!this.tablesDir) + return null; + try { + const fh = await this.tablesDir.getFileHandle(`__metona_${key}.meta`); + const file = await fh.getFile(); + return await file.text(); + } + catch { + return null; + } + } + async setMeta(key, value) { + if (!this.tablesDir) + return; + const fh = await this.tablesDir.getFileHandle(`__metona_${key}.meta`, { create: true }); + const writable = await fh.createWritable(); + await writable.write(value); + await writable.close(); + } // ---- 表管理 ---- async createTable(schema) { await this.memoryCache.createTable(schema); + // v0.4.2-fix: schema 持久化(此前仅写空数据文件 → 空表重启后消失、索引标记丢失) + await this.setMeta(`schema_${schema.name}`, JSON.stringify(schema)); // OPFS 中表以空 JSON 数组文件形式存在 await this.writeTableData(schema.name, []); } async dropTable(tableName) { await this.memoryCache.dropTable(tableName); + // v0.4.2-fix: 清理 schema meta(否则重启恢复幽灵表) if (this.tablesDir) { + try { + await this.tablesDir.removeEntry(`__metona_schema_${tableName}.meta`); + } + catch { + // 文件不存在则忽略 + } try { await this.tablesDir.removeEntry(`${tableName}.json`); } @@ -1253,6 +1715,15 @@ class OPFSEngine { async getTableSchema(tableName) { return this.memoryCache.getTableSchema(tableName); } + /** v0.4.2-fix: 引擎级 ALTER TABLE — 内存 + schema 持久化 + 整表文件重写 */ + async alterTable(tableName, action, column) { + await this.memoryCache.alterTable(tableName, action, column); + const schema = await this.memoryCache.getTableSchema(tableName); + if (schema) + await this.setMeta(`schema_${tableName}`, JSON.stringify(schema)); + const rows = await this.memoryCache.find(tableName, { table: tableName }); + await this.writeTableData(tableName, rows); + } // ---- CRUD ---- async insert(tableName, rows) { const pks = await this.memoryCache.insert(tableName, rows); @@ -1289,10 +1760,17 @@ class OPFSEngine { } // ---- 动态索引(v0.3.0) ---- async createIndex(tableName, column, unique) { - return this.memoryCache.createIndex(tableName, column, unique); + await this.memoryCache.createIndex(tableName, column, unique); + // v0.4.2-fix: 索引标记持久化(重启后索引结构恢复) + const schema = await this.memoryCache.getTableSchema(tableName); + if (schema) + await this.setMeta(`schema_${tableName}`, JSON.stringify(schema)); } async dropIndex(tableName, column, indexName) { - return this.memoryCache.dropIndex(tableName, column, indexName); + await this.memoryCache.dropIndex(tableName, column, indexName); + const schema = await this.memoryCache.getTableSchema(tableName); + if (schema) + await this.setMeta(`schema_${tableName}`, JSON.stringify(schema)); } // ---- 事务 ---- async beginTransaction() { @@ -1338,18 +1816,41 @@ class OPFSEngine { return []; } } - /** 从 OPFS 加载已有表数据到内存缓存 */ + /** + * 从 OPFS 加载已有表到内存缓存。 + * v0.4.2-fix: 优先从持久化 schema(__metona_schema_*.meta)恢复 — + * 空表不再消失、索引标记/主键/约束完整;无 schema 记录的旧库从数据推断(兼容)。 + */ async loadExistingTables() { if (!this.tablesDir) return; const dir = this.tablesDir; + const fileNames = []; for await (const [name] of dir.entries()) { - if (!name.endsWith('.json')) - continue; - const tableName = name.replace('.json', ''); + if (name.endsWith('.json')) + fileNames.push(name); + } + for (const fileName of fileNames) { + const tableName = fileName.replace('.json', ''); try { + // 1. 优先:持久化 schema + const schemaRaw = await this.getMeta(`schema_${tableName}`); + if (schemaRaw) { + const schema = JSON.parse(schemaRaw); + await this.memoryCache.createTable(schema); + const rows = await this.readTableData(tableName); + for (const row of rows) { + try { + await this.memoryCache.insert(tableName, [row]); + } + catch { + // 单行损坏不影响整表恢复 + } + } + continue; + } + // 2. 兼容旧库:从数据推断 schema(空表且无 schema 记录 → 跳过) const data = await this.readTableData(tableName); - // 从数据中推断 schema(简化:从第一行提取列信息) if (data.length > 0) { const firstRow = data[0]; const columns = {}; @@ -2378,18 +2879,27 @@ class SSTableReader { if (blockIdx < 0) return null; const entry = this.indexEntries[blockIdx]; - const blockData = new Uint8Array(this.data.buffer, this.data.byteOffset + entry.blockOffset, entry.blockSize); + const blockData = this.getBlockData(entry); + // v0.4.2-fix: 残缺文件(meta 偏移超出实际长度)跳过该块,而非抛 RangeError + if (!blockData) + return null; const blockView = new DataView(blockData.buffer, blockData.byteOffset, blockData.byteLength); const entryCount = blockView.getUint32(0, false); let offset = 4; // 顺序扫描 block 内的条目(生产中应二分查找) for (let i = 0; i < entryCount; i++) { + if (offset + 2 > blockData.byteLength) + break; const keyLen = blockView.getUint16(offset, false); offset += 2; + if (offset + keyLen + 2 > blockData.byteLength) + break; const key = new TextDecoder().decode(blockData.slice(offset, offset + keyLen)); offset += keyLen; const valLen = blockView.getUint16(offset, false); offset += 2; + if (offset + valLen > blockData.byteLength) + break; const valBytes = blockData.slice(offset, offset + valLen); offset += valLen; if (key === targetKey) { @@ -2413,17 +2923,26 @@ class SSTableReader { return; for (let bi = startBlockIdx; bi <= endBlockIdx && bi >= 0; bi++) { const entry = this.indexEntries[bi]; - const blockData = new Uint8Array(this.data.buffer, this.data.byteOffset + entry.blockOffset, entry.blockSize); + const blockData = this.getBlockData(entry); + // v0.4.2-fix: 残缺块跳过(rangeScan 继续后续块,不抛异常) + if (!blockData) + continue; const blockView = new DataView(blockData.buffer, blockData.byteOffset, blockData.byteLength); const blockEntryCount = blockView.getUint32(0, false); let offset = 4; for (let i = 0; i < blockEntryCount; i++) { + if (offset + 2 > blockData.byteLength) + break; const keyLen = blockView.getUint16(offset, false); offset += 2; + if (offset + keyLen + 2 > blockData.byteLength) + break; const key = new TextDecoder().decode(blockData.slice(offset, offset + keyLen)); offset += keyLen; const valLen = blockView.getUint16(offset, false); offset += 2; + if (offset + valLen > blockData.byteLength) + break; const valBytes = blockData.slice(offset, offset + valLen); offset += valLen; if (key >= startKey && key <= endKey) { @@ -2441,17 +2960,26 @@ class SSTableReader { /** 扫描所有条目 */ scanAll(callback) { for (const entry of this.indexEntries) { - const blockData = new Uint8Array(this.data.buffer, this.data.byteOffset + entry.blockOffset, entry.blockSize); + const blockData = this.getBlockData(entry); + // v0.4.2-fix: 残缺块跳过(scanAll 继续后续块,不抛异常) + if (!blockData) + continue; const blockView = new DataView(blockData.buffer, blockData.byteOffset, blockData.byteLength); const blockEntryCount = blockView.getUint32(0, false); let offset = 4; for (let i = 0; i < blockEntryCount; i++) { + if (offset + 2 > blockData.byteLength) + break; const keyLen = blockView.getUint16(offset, false); offset += 2; + if (offset + keyLen + 2 > blockData.byteLength) + break; const key = new TextDecoder().decode(blockData.slice(offset, offset + keyLen)); offset += keyLen; const valLen = blockView.getUint16(offset, false); offset += 2; + if (offset + valLen > blockData.byteLength) + break; const valBytes = blockData.slice(offset, offset + valLen); offset += valLen; try { @@ -2491,6 +3019,10 @@ class SSTableReader { const bloomSize = this.view.getUint32(footerOffset + 12, false); const bloomHashCount = this.view.getUint32(footerOffset + 16, false); this.entryCount = this.view.getUint32(footerOffset + 20, false); + // v0.4.2-fix: 完整性校验 — 索引块必须完全落在文件内,否则视为残缺文件跳过 + if (indexOffset + 4 > this.data.byteLength || indexOffset + indexSize > this.data.byteLength) { + return; // 残缺文件:无索引块可读,get/rangeScan 均返回空 + } // 解析索引块 this.parseIndexBlock(indexOffset, indexSize); // 加载 Bloom Filter @@ -2508,17 +3040,37 @@ class SSTableReader { const entryCount = this.view.getUint32(offset, false); offset += 4; for (let i = 0; i < entryCount; i++) { + // v0.4.2-fix: 索引条目越界(keyLen/blockOffset/blockSize 超过文件长度)时中止解析, + // 已解析的有效条目仍可用于查询 + if (offset + 2 > this.data.byteLength) + break; const keyLen = this.view.getUint16(offset, false); offset += 2; + if (offset + keyLen + 8 > this.data.byteLength) + break; const key = new TextDecoder().decode(this.data.slice(offset, offset + keyLen)); offset += keyLen; const blockOffset = this.view.getUint32(offset, false); offset += 4; const blockSize = this.view.getUint32(offset, false); offset += 4; + // 跳过指向文件外的块(残缺写入产物),不抛异常 + if (blockSize === 0 || blockOffset + blockSize > this.data.byteLength) + continue; this.indexEntries.push({ key, blockOffset, blockSize }); } } + /** + * v0.4.2-fix: 获取索引条目对应的数据块。 + * 块偏移/大小越界(残缺 SSTable)时返回 null,由调用方跳过而非抛 RangeError。 + */ + getBlockData(entry) { + if (entry.blockSize <= 0 || entry.blockOffset < 0) + return null; + if (entry.blockOffset + entry.blockSize > this.data.byteLength) + return null; + return new Uint8Array(this.data.buffer, this.data.byteOffset + entry.blockOffset, entry.blockSize); + } /** 二分查找某 key 所在的 block 索引 */ locateBlock(key) { let lo = 0; @@ -2718,7 +3270,8 @@ class LSM { this.compacting = false; // 防止重复触发 compaction /** 串行化 flush/compaction 链:保证持久化顺序与 id 分配顺序一致 */ this.flushChain = Promise.resolve(); - this.memtable = new MemTable(config.memtableSizeThreshold ?? DEFAULT_MEMTABLE_SIZE); + this.memtableSizeThreshold = config.memtableSizeThreshold ?? DEFAULT_MEMTABLE_SIZE; + this.memtable = new MemTable(this.memtableSizeThreshold); this.levelSizeMultiplier = config.levelSizeMultiplier ?? DEFAULT_LEVEL_SIZE_MULTIPLIER; this.blockSize = config.blockSize ?? 4096; this.sstableStore = config.sstableStore; @@ -2734,8 +3287,16 @@ class LSM { if (this.initialized) return; const metas = await this.sstableStore.listMeta(); - // 按层级分组 + // v0.4.2-fix: 打开时完整性校验 — 验证每个 meta 引用的文件存在、可解析, + // 残缺/损坏的 SSTable 忽略并清理 meta,避免后续读取抛 RangeError 崩溃 + const validMetas = []; for (const meta of metas) { + if (await this.validateSSTable(meta)) { + validMetas.push(meta); + } + } + // 按层级分组 + for (const meta of validMetas) { if (meta.level >= 0 && meta.level < MAX_LSM_LEVELS) { this.levels[meta.level].push(meta); } @@ -2787,15 +3348,29 @@ class LSM { * 冻结当前 MemTable 为 immutable,并在串行链上排队异步刷盘。 * 冻结的 MemTable 通过闭包捕获,避免链中前一个 flush 错误处理后续冻结的表。 * 所有 pending frozen 记录在 frozenMemtables 中,flush 完成前读取路径仍可访问。 + * + * v0.4.2-fix: 链上任务失败时吞错恢复链(否则 flushChain 永久 rejected, + * 后续所有 flush/compaction 挂起,写路径卡死)。 */ freezeMemtable() { if (this.immutableMemtable) { const frozen = this.immutableMemtable; - this.flushChain = this.flushChain.then(() => this.flushImmutableAsync(frozen)); + this.flushChain = this.enqueueOnChain(() => this.flushImmutableAsync(frozen)); } this.immutableMemtable = this.memtable; this.frozenMemtables.push(this.immutableMemtable); - this.memtable = new MemTable(this.memtable.getEstimatedSize()); + // v0.4.2-fix: 新 memtable 用配置阈值(此前传旧表已用大小 → 阈值逐次衰减 → 频繁小文件 flush) + this.memtable = new MemTable(this.memtableSizeThreshold); + } + /** v0.4.2-fix: 在串行链上排队任务;任务失败吞错并记录,保证链不被单次失败卡死 */ + enqueueOnChain(task) { + return this.flushChain + .then(task) + .catch((error) => { + // eslint-disable-next-line no-console + console.warn('[AriaEngine LSM] background flush/compaction failed:', error); + // catch 返回 undefined → 链恢复为 resolved,后续任务继续 + }); } /** 将指定 Immutable MemTable 刷盘为 SSTable(id 由 store 按命名空间分配) */ async flushImmutableAsync(frozen) { @@ -2843,7 +3418,7 @@ class LSM { this.compacting = true; setTimeout(() => { try { - this.flushChain = this.flushChain.then(() => this.compactLevelAsync(level)); + this.flushChain = this.enqueueOnChain(() => this.compactLevelAsync(level)); } finally { this.compacting = false; @@ -2870,6 +3445,10 @@ class LSM { finally { this.compacting = false; } + }).catch((error) => { + this.compacting = false; + // eslint-disable-next-line no-console + console.warn('[AriaEngine LSM] background compaction failed:', error); }); } // ======================================================================= @@ -3004,29 +3583,64 @@ class LSM { // ======================================================================= // Compaction // ======================================================================= - /** 执行 Compaction(public,供 VACUUM 等外部调用) */ + /** 执行 Compaction(public,供 VACUUM 等外部调用;VACUUM 期望 2 个文件即可压缩) */ async compactLevel(level) { - await this.compactLevelAsync(level); + await this.compactLevelAsync(level, 2); } - /** 串行执行 Compaction(简化版,内部实现) */ - async compactLevelAsync(level) { + /** + * 串行执行 Compaction。 + * @param minFiles 触发压缩的文件数门槛(自动调度用 4,VACUUM 用 2) + * + * v0.4.2-fix: 读取从存储兜底(不依赖缓存)——此前仅从缓存读, + * 缓存未命中(LRU 驱逐/单文件超缓存上限)时跳过全部文件并从 levels 移除, + * 运行中数据全部不可见。 + */ + async compactLevelAsync(level, minFiles = 4) { if (level >= MAX_LSM_LEVELS - 1) return; - if (this.levels[level].length < 4) + if (this.levels[level].length < minFiles) return; const sstables = this.levels[level].splice(0, this.levels[level].length); const mergeIter = new MergeIterator(); + const loadedMetas = []; for (const meta of sstables) { - const reader = this.loadSSTableReader(meta); - if (!reader) + // 优先缓存,未命中则从存储加载(残缺文件经校验清理,跳过) + let data = this.sstableCache.get(meta.id) ?? null; + if (!data) { + try { + data = await this.sstableStore.load(meta.id); + } + catch { + data = null; + } + } + if (!data || data.byteLength < 32) { + await this.dropInvalidSSTable(meta); continue; + } + let reader; + try { + reader = new SSTableReader(data, meta); + } + catch { + await this.dropInvalidSSTable(meta); + continue; + } const entries = []; reader.scanAll((k, v) => entries.push([k, v])); mergeIter.addSource(new ArrayEntrySource(entries)); + loadedMetas.push(meta); } const merged = mergeIter.drain(); - if (merged.length === 0) + if (merged.length === 0) { + // 没有有效数据(全部损坏):把有效 meta 放回 levels, + // 避免文件从读取路径消失(数据仍在磁盘,重启可恢复) + for (const meta of loadedMetas) { + this.levels[level].push(meta); + } + this.levels[level].sort((a, b) => b.id - a.id); return; + } const id = await this.sstableStore.allocateId(); const builder = new SSTableBuilder(this.blockSize); for (const [key, value] of merged) { @@ -3102,6 +3716,71 @@ class LSM { // ======================================================================= // 内部 // ======================================================================= + /** + * v0.4.2-fix: 重新校验全部已加载 SSTable,移除损坏项(repair 自愈用)。 + * @returns 移除的损坏 SSTable 数量 + */ + async validateAll() { + let removed = 0; + for (let level = 0; level < MAX_LSM_LEVELS; level++) { + const valid = []; + for (const meta of this.levels[level]) { + if (await this.validateSSTable(meta)) { + valid.push(meta); + } + else { + this.sstableCache.delete(meta.id); + removed++; + } + } + this.levels[level] = valid; + } + return removed; + } + /** + * v0.4.2-fix: 校验单个 SSTable 的完整性。 + * - 文件不存在 → 清理 meta,返回 false + * - 文件过小/魔数错误/索引越界(残缺写入产物)→ 清理 meta,返回 false + * 校验通过的数据不缓存(保持内存预算),读路径按需预加载。 + */ + async validateSSTable(meta) { + try { + const data = await this.sstableStore.load(meta.id); + if (!data) { + this.dropInvalidSSTable(meta); + return false; + } + if (data.byteLength < 32) { + this.dropInvalidSSTable(meta); + return false; + } + try { + new SSTableReader(data, meta); + } + catch { + this.dropInvalidSSTable(meta); + return false; + } + return true; + } + catch { + this.dropInvalidSSTable(meta); + return false; + } + } + /** 清理无效 SSTable 的 meta 与文件(打开自愈路径) */ + async dropInvalidSSTable(meta) { + // eslint-disable-next-line no-console + console.warn(`[AriaEngine LSM] Skipping corrupted SSTable id=${meta.id} (level=${meta.level})`); + try { + await this.sstableStore.deleteMeta(meta.id); + } + catch { /* 清理失败不阻塞打开 */ } + try { + await this.sstableStore.delete(meta.id); + } + catch { /* 清理失败不阻塞打开 */ } + } unwrapTombstone(value) { if (!value) return null; @@ -3558,6 +4237,25 @@ class IndexedDBBackend { tx.onerror = () => reject(new DatabaseError('Failed to write to AriaEngine store', 'ARIA_WRITE_ERROR')); }); } + /** + * v0.4.2-fix: 批量原子写入 — 单个 IDB 事务内写入多个 key。 + * 中断时事务整体回滚,WAL 记录与 count 计数不会出现"记录在、计数丢"或反之的半写状态。 + */ + async writeMany(entries) { + const keys = Object.keys(entries); + if (keys.length === 0) + return; + const db = this.ensureDB(); + return new Promise((resolve, reject) => { + const tx = db.transaction(this.storeName, 'readwrite'); + const store = tx.objectStore(this.storeName); + for (const key of keys) { + store.put(entries[key], key); + } + tx.oncomplete = () => resolve(); + tx.onerror = () => reject(new DatabaseError('Failed to batch write to AriaEngine store', 'ARIA_WRITE_ERROR')); + }); + } async delete(key) { const db = this.ensureDB(); return new Promise((resolve, reject) => { @@ -3567,6 +4265,21 @@ class IndexedDBBackend { tx.onerror = () => reject(new DatabaseError('Failed to delete from AriaEngine store', 'ARIA_DELETE_ERROR')); }); } + /** v0.4.2-fix: 批量原子删除 — 单个 IDB 事务内删除多个 key */ + async deleteMany(keys) { + if (keys.length === 0) + return; + const db = this.ensureDB(); + return new Promise((resolve, reject) => { + const tx = db.transaction(this.storeName, 'readwrite'); + const store = tx.objectStore(this.storeName); + for (const key of keys) { + store.delete(key); + } + tx.oncomplete = () => resolve(); + tx.onerror = () => reject(new DatabaseError('Failed to batch delete from AriaEngine store', 'ARIA_DELETE_ERROR')); + }); + } async listKeys() { const db = this.ensureDB(); return new Promise((resolve, reject) => { @@ -3619,9 +4332,19 @@ class MemoryBackend { async write(key, data) { this.store.set(key, data); } + async writeMany(entries) { + for (const [key, data] of Object.entries(entries)) { + this.store.set(key, data); + } + } async delete(key) { this.store.delete(key); } + async deleteMany(keys) { + for (const key of keys) { + this.store.delete(key); + } + } async listKeys() { return Array.from(this.store.keys()); } @@ -3675,6 +4398,20 @@ class OPFSBackend { }); return this.writeQueue; } + /** v0.4.2-fix: 批量写入 — 串行队列内逐个落盘(OPFS 无跨文件事务,顺序保证一致) */ + async writeMany(entries) { + if (!this.dbDir) + return; + this.writeQueue = this.writeQueue.then(async () => { + for (const [key, data] of Object.entries(entries)) { + const fh = await this.dbDir.getFileHandle(key, { create: true }); + const writable = await fh.createWritable(); + await writable.write(data); + await writable.close(); + } + }); + return this.writeQueue; + } async delete(key) { if (!this.dbDir) return; @@ -3686,6 +4423,20 @@ class OPFSBackend { }); return this.writeQueue; } + /** v0.4.2-fix: 批量删除 — 串行队列内逐个删除 */ + async deleteMany(keys) { + if (!this.dbDir) + return; + this.writeQueue = this.writeQueue.then(async () => { + for (const key of keys) { + try { + await this.dbDir.removeEntry(key); + } + catch { /* ignore */ } + } + }); + return this.writeQueue; + } async listKeys() { if (!this.dbDir) return []; @@ -3849,6 +4600,11 @@ class MVCCManager { this.nextTxnId = 1; /** 全局提交序列号(用于可见性判断) */ this.globalCommitLsn = 0; + /** + * v0.4.2-fix: 每个事务写入的 tableKey 集合 — + * commit/rollback 只遍历本事务写过的 key,避免全库版本链扫描(大表事务 O(N) → O(写入数)) + */ + this.txnWriteKeys = new Map(); } // ======================================================================= // 事务管理 @@ -3862,6 +4618,7 @@ class MVCCManager { snapshotLsn: this.globalCommitLsn, startTime: Date.now(), }); + this.txnWriteKeys.set(txnId, new Set()); return txnId; } /** 提交事务 */ @@ -3871,16 +4628,23 @@ class MVCCManager { throw new Error(`Transaction ${txnId} not found`); txn.state = TransactionState.COMMITTED; this.globalCommitLsn++; - // 标记此事务写入的所有版本为已提交 - for (const [, versions] of this.versionStore) { - for (const version of versions) { - if (version.txnId === txnId) { - version.committed = true; + // v0.4.2-fix: 仅标记本事务写入的版本(此前遍历全库 versionStore) + const writeKeys = this.txnWriteKeys.get(txnId); + if (writeKeys) { + for (const tableKey of writeKeys) { + const versions = this.versionStore.get(tableKey); + if (!versions) + continue; + for (const version of versions) { + if (version.txnId === txnId) { + version.committed = true; + } } } } // 清理已提交事务的记录 this.activeTxns.delete(txnId); + this.txnWriteKeys.delete(txnId); } /** 回滚事务 */ rollbackTransaction(txnId) { @@ -3888,17 +4652,24 @@ class MVCCManager { if (!txn) throw new Error(`Transaction ${txnId} not found`); txn.state = TransactionState.ABORTED; - // 移除此事务写入的所有版本 - for (const [tableKey, versions] of this.versionStore) { - const filtered = versions.filter((v) => v.txnId !== txnId); - if (filtered.length === 0) { - this.versionStore.delete(tableKey); - } - else { - this.versionStore.set(tableKey, filtered); + // v0.4.2-fix: 仅移除本事务写入的版本(此前遍历全库 versionStore) + const writeKeys = this.txnWriteKeys.get(txnId); + if (writeKeys) { + for (const tableKey of writeKeys) { + const versions = this.versionStore.get(tableKey); + if (!versions) + continue; + const filtered = versions.filter((v) => v.txnId !== txnId); + if (filtered.length === 0) { + this.versionStore.delete(tableKey); + } + else { + this.versionStore.set(tableKey, filtered); + } } } this.activeTxns.delete(txnId); + this.txnWriteKeys.delete(txnId); } /** 检查事务是否活跃 */ isActive(txnId) { @@ -3922,6 +4693,8 @@ class MVCCManager { }; versions.push(newVersion); this.versionStore.set(tableKey, versions); + // v0.4.2-fix: 记录本事务写过的 key(commit/rollback 精准清理) + this.txnWriteKeys.get(txnId)?.add(tableKey); } /** * 读取一行(对指定事务可见的最新版本)。 @@ -3978,9 +4751,16 @@ class MVCCManager { /** * v0.3.3: 丢弃指定事务的所有版本记录,但保留事务登记(Savepoint 回滚用)。 * 快照数据由调用方(引擎 txnSnapshot)负责恢复。 + * v0.4.2-fix: 仅遍历本事务写过的 key(此前全库扫描)。 */ discardVersions(txnId) { - for (const [tableKey, versions] of this.versionStore) { + const writeKeys = this.txnWriteKeys.get(txnId); + if (!writeKeys) + return; + for (const tableKey of writeKeys) { + const versions = this.versionStore.get(tableKey); + if (!versions) + continue; const filtered = versions.filter((v) => v.txnId !== txnId); if (filtered.length === 0) { this.versionStore.delete(tableKey); @@ -4593,6 +5373,19 @@ class AriaEngine { async open(dbName, _version) { if (this.opened) return; + // v0.4.2-fix: 引擎内部错误统一包装为 DatabaseError(ARIA_OPEN_ERROR), + // 应用层可拿到 code 分类处理,不再抛出原生 RangeError/TypeError + try { + await this.openInternal(dbName); + } + catch (error) { + if (error instanceof DatabaseError) + throw error; + throw new DatabaseError(`Failed to open AriaEngine database "${dbName}"`, 'ARIA_OPEN_ERROR', error); + } + } + /** open 内部实现(错误包装在 open 外层) */ + async openInternal(dbName) { this.dbName = dbName; // 1. 存储后端 if (this.config.storageBackend === 'opfs') { @@ -4624,21 +5417,31 @@ class AriaEngine { // 4. 初始化 WAL this.wal = new WAL({ append: async (data) => { - // Store each record as a separate numbered key + // v0.4.2-fix: 记录写入与 count 计数在同一底层事务中原子提交, + // 中断时整体回滚,杜绝"记录在、计数丢"导致恢复漏读的丢数据问题 const idx = await this.getWALCount(); const slice = new Uint8Array(data.buffer, data.byteOffset, data.byteLength); const copy = slice.buffer.slice(slice.byteOffset, slice.byteOffset + slice.byteLength); - await this.backend.write(`__wal_${idx}`, copy); - await this.setWALCount(idx + 1); + await this.backend.writeMany({ + [`__wal_${idx}`]: copy, + __wal_count: new TextEncoder().encode(String(idx + 1)).buffer, + }); }, readAll: async () => { - const count = await this.getWALCount(); - if (count === 0) + // v0.4.2-fix: 不依赖 count 计数,直接扫描全部 __wal_* 键, + // 避免 count 与实际记录不一致时漏读(与 checkpoint/并发写入竞态无关) + const keys = (await this.backend.listKeys()) + .filter((k) => k.startsWith('__wal_') && k !== '__wal_count') + .sort((a, b) => { + const na = parseInt(a.slice('__wal_'.length), 10); + const nb = parseInt(b.slice('__wal_'.length), 10); + return (isNaN(na) ? 0 : na) - (isNaN(nb) ? 0 : nb); + }); + if (keys.length === 0) return new Uint8Array(0); - // Read all records and concatenate const chunks = []; - for (let i = 0; i < count; i++) { - const d = await this.backend.read(`__wal_${i}`); + for (const key of keys) { + const d = await this.backend.read(key); if (d) chunks.push(new Uint8Array(d)); } @@ -4652,19 +5455,45 @@ class AriaEngine { return combined; }, truncate: async () => { - const count = await this.getWALCount(); - for (let i = 0; i < count; i++) { - await this.backend.delete(`__wal_${i}`); - } + // v0.4.2-fix: 扫描删除全部 WAL 记录键 + count 键(单事务原子清理) + const keys = (await this.backend.listKeys()) + .filter((k) => k.startsWith('__wal_')); + await this.backend.deleteMany(keys); await this.setWALCount(0); }, exists: async () => { - const count = await this.getWALCount(); - return count > 0; + // v0.4.2-fix: 与 readAll 一致按 key 扫描判断(count 可能因崩溃截断而滞后) + const keys = (await this.backend.listKeys()) + .filter((k) => k.startsWith('__wal_') && k !== '__wal_count'); + return keys.length > 0; }, }, this.config.walEnabled, this.config.walSyncMode); // 5. 恢复 Schema await this.loadSchemas(); + // v0.4.2-fix: 为 schema 中带 index/unique 标记的列重建二级索引 LSM。 + // 此前重开只恢复 schema 不恢复索引 LSM → 索引查询静默回退全表、 + // createIndex 因 colDef 已有标记直接 return → 索引永久缺失。 + // 索引数据已持久化在独立命名空间(sst_idx_* / meta),init() 直接加载。 + for (const [tableName, schema] of this.schemas) { + const pkCol = this.tablePKs.get(tableName); + for (const [colName, colDef] of Object.entries(schema.columns)) { + if ((colDef.index || colDef.unique) && colName !== pkCol) { + const idxKey = `${tableName}:idx:${colName}`; + if (!this.secondaryIndexes.has(idxKey)) { + const idxLsm = new LSM({ + memtableSizeThreshold: this.config.memtableSizeThreshold, + levelSizeMultiplier: this.config.levelSizeMultiplier, + blockSize: this.config.pageSize, + bloomBitsPerKey: this.config.bloomFilterBitsPerKey, + cacheLimitBytes: this.config.bufferPoolPages * this.config.pageSize, + sstableStore: this.createSSTableStore(`idx_${tableName}_${colName}`), + }); + await idxLsm.init(); + this.secondaryIndexes.set(idxKey, idxLsm); + } + } + } + } // 6. 初始化 LSM(加载 SSTable 元数据) await this.lsm.init(); // 7. WAL 恢复(两阶段:先扫描事务边界,仅回放已提交事务) @@ -4695,9 +5524,30 @@ class AriaEngine { if (allRecords.length > 0) { await this.lsm.flush(); await this.wal.checkpoint(); + // v0.4.2-fix: WAL 回放只更新主 LSM,二级索引 LSM 未同步 → + // 崩溃前最后一批写入的索引缺失,重开时索引查询丢行。 + // 恢复后全量重建所有表的二级索引(幂等)。 + for (const tableName of this.schemas.keys()) { + await this.reindexTableInternal(tableName); + } } // 8. Checkpoint Manager(接入 WAL 大小阈值) - this.checkpointManager = new CheckpointManager(this.lsm, this.wal, { flushAll: async () => { await this.lsm.flush(); } }, this.config.checkpointInterval, this.config.walSizeThreshold); + // v0.4.2-fix: 事务活跃时 checkpoint 不得截断 WAL — + // 否则 BEGIN/INSERT 记录被截断,COMMIT 后崩溃恢复丢失整个事务数据 + this.checkpointManager = new CheckpointManager(this.lsm, { + checkpoint: async () => { + if (this.currentTxnId) + return; + await this.wal.checkpoint(); + }, + flush: async () => { + if (this.currentTxnId) + return; + await this.wal.flush(); + }, + getBufferedBytes: () => this.wal.getBufferedBytes(), + getBufferedCount: () => this.wal.getBufferedCount(), + }, { flushAll: async () => { await this.lsm.flush(); } }, this.config.checkpointInterval, this.config.walSizeThreshold); this.opened = true; } async close() { @@ -4705,11 +5555,49 @@ class AriaEngine { return; await this.persistSchemas(); await this.lsm.flush(); + // v0.4.2-fix: 同步落盘全部二级索引 LSM — 此前只 flush 主 LSM, + // 优雅关闭后索引 memtable 未落盘 → 重开索引为空 → 索引查询返回空结果 + for (const idxLsm of this.secondaryIndexes.values()) { + await idxLsm.flush(); + } await this.wal.flush(); + // v0.4.2-fix: close 前 checkpoint(截断 WAL)— + // 此前只 flush 不截断,下次打开会重放全部历史 WAL 记录(含已落盘 SSTable 的数据), + // 重复解析/重复 put 拖慢启动,并与恢复后 flush+checkpoint 竞争放大丢数据 + await this.wal.checkpoint(); await this.backend.close(); + // v0.4.2-fix: 清空运行期状态(此前 close 后 mvcc/txn 残留, + // 重开时 beginTransaction 报 TX_ACTIVE 或读到陈旧快照) this.schemas.clear(); + this.tablePKs.clear(); + this.secondaryIndexes.clear(); + this.mvcc = new MVCCManager(); + this.currentTxnId = null; + this.txnSnapshot = null; + this.savepoints.clear(); + this.opCounter = 0; this.opened = false; } + /** + * v0.4.2-fix: 崩溃恢复/自愈 — 校验并移除损坏 SSTable、截断 WAL、重建二级索引。 + * 应用层检测到异常后调用,无需删库重建。 + */ + async repair() { + this.ensureOpen(); + // 1. 校验全部 SSTable,移除残缺项(打开时已做一次,此处兜底运行期损坏) + const removed = await this.lsm.validateAll(); + // 2. 将 WAL 残留数据落盘并截断,避免无限重放 + await this.lsm.flush(); + await this.wal.checkpoint(); + // 3. 重建所有表的二级索引(修复索引与主数据不一致) + for (const tableName of this.schemas.keys()) { + await this.reindexTable(tableName); + } + if (removed > 0) { + // eslint-disable-next-line no-console + console.warn(`[AriaEngine] repair: removed ${removed} corrupted SSTable(s)`); + } + } /** * v0.4.1: 重置数据库 — 清空全部数据与表结构(演示页刷新/重新初始化用)。 * 清空存储后端、LSM、WAL、MVCC 与二级索引,后续可继续使用本实例。 @@ -4733,11 +5621,22 @@ class AriaEngine { await this.wal.checkpoint(); } isOpen() { return this.opened; } + // ---- v0.4.2-fix: 库内元数据(迁移版本持久化用) ---- + async getMeta(key) { + const raw = await this.backend.read(`__meta_${key}`); + return raw ? new TextDecoder().decode(raw) : null; + } + async setMeta(key, value) { + await this.backend.write(`__meta_${key}`, new TextEncoder().encode(value).buffer); + } // ======================================================================= // 表管理 // ======================================================================= async createTable(schema) { this.ensureOpen(); + // v0.4.2-fix: Aria 事务中 DDL 显式拒绝(事务快照只覆盖行数据, + // 结构变更无法回滚;Memory/IndexedDB 引擎快照可回滚,行为不一致 → 明确报错而非静默) + this.ensureNoDDLInTransaction('CREATE TABLE'); if (this.schemas.has(schema.name)) { throw new DatabaseError(`Table "${schema.name}" already exists`, 'TABLE_EXISTS'); } @@ -4773,6 +5672,7 @@ class AriaEngine { } async dropTable(tableName) { this.ensureOpen(); + this.ensureNoDDLInTransaction('DROP TABLE'); this.ensureTable(tableName); // 删除表中所有行 const rows = await this.getAllRows(tableName); @@ -4780,6 +5680,9 @@ class AriaEngine { const pkCol = this.tablePKs.get(tableName); this.lsm.delete(`${tableName}:${row[pkCol]}`); } + // v0.4.2-fix: 清理该表的全部二级索引 LSM 与持久化文件 — + // 此前残留孤儿索引,重建同名表后旧索引数据污染新表(索引查询返回错误行) + await this.cleanupTableIndexes(tableName); this.schemas.delete(tableName); this.tablePKs.delete(tableName); await this.persistSchemas(); @@ -4790,6 +5693,26 @@ class AriaEngine { key: '', }); } + /** + * v0.4.2-fix: 清理指定表的全部二级索引 LSM(内存 + 存储文件 + meta)。 + * dropTable / DROP_TABLE 恢复 / alterTable DROP 索引列 共用。 + */ + async cleanupTableIndexes(tableName) { + const prefix = `${tableName}:idx:`; + const toDelete = []; + for (const [idxKey, idxLsm] of this.secondaryIndexes) { + if (!idxKey.startsWith(prefix)) + continue; + toDelete.push(idxKey); + try { + await idxLsm.clear(); + } + catch { /* 清理失败不阻塞 */ } + } + for (const idxKey of toDelete) { + this.secondaryIndexes.delete(idxKey); + } + } async hasTable(tableName) { return this.schemas.has(tableName); } @@ -4891,29 +5814,52 @@ class AriaEngine { let count = 0; // v0.3.1: 批量 WAL 写入(组提交) const walRecords = []; + // v0.4.2-fix: ON UPDATE 级联环路保护 + const visited = new Set(); for (const row of rows) { const pkCol = this.tablePKs.get(tableName); const key = `${tableName}:${row[pkCol]}`; if (!query.where || Object.keys(query.where).length === 0 || matchWhere(row, query.where)) { const updated = { ...row, ...updates }; this.validateRow(schema, updated); + // v0.4.2-fix: 支持更新主键 — 删除旧键 + 落新键 + WAL 两条记录 + const newPk = String(updated[pkCol]); + const pkChanged = newPk !== String(row[pkCol]); + if (pkChanged) { + // ON UPDATE 外键级联(RESTRICT 抛错 / CASCADE / SET NULL) + await this.applyForeignKeyUpdateRules(tableName, String(row[pkCol]), newPk, walRecords, visited); + } if (this.currentTxnId && this.txnSnapshot) { - this.txnSnapshot.set(key, updated); - this.mvcc.writeVersion(tableName, String(row[pkCol]), updated, this.currentTxnId); + if (pkChanged) { + this.txnSnapshot.set(key, { __txn_deleted: true }); + this.mvcc.deleteVersion(tableName, String(row[pkCol]), this.currentTxnId); + } + this.txnSnapshot.set(`${tableName}:${newPk}`, updated); + this.mvcc.writeVersion(tableName, newPk, updated, this.currentTxnId); } else { - this.lsm.put(key, updated); + if (pkChanged) + this.lsm.delete(key); + this.lsm.put(`${tableName}:${newPk}`, updated); } count++; + if (pkChanged) { + walRecords.push({ + type: WALRecordType.DELETE, + txnId: this.currentTxnId ?? 0, + tableName, + key: String(row[pkCol]), + }); + } walRecords.push({ type: WALRecordType.UPDATE, txnId: this.currentTxnId ?? 0, tableName, - key: String(row[pkCol]), + key: newPk, data: updated, }); - // 更新二级索引 - this.updateSecondaryIndexes(tableName, String(row[pkCol]), updated, row); + // 更新二级索引(主键变更时旧索引条目一并清理) + this.updateSecondaryIndexes(tableName, newPk, updated, pkChanged ? row : null); } } await this.wal.appendBatch(walRecords); @@ -4922,6 +5868,73 @@ class AriaEngine { this.trimAllCaches(); return count; } + /** + * v0.4.2-fix: ON UPDATE 外键级联 — 主键 oldPk → newPk 时处理引用表。 + * RESTRICT 抛错 / CASCADE 更新 FK / SET NULL 置空(含索引与 WAL 记录)。 + * 两阶段:先全量 RESTRICT 检查,再执行级联。 + */ + async applyForeignKeyUpdateRules(tableName, oldPk, newPk, walRecords, visited) { + const visitKey = `${tableName}:${oldPk}`; + if (visited.has(visitKey)) + return; + visited.add(visitKey); + // 阶段 1: RESTRICT 检查 + for (const [refTableName, refSchema] of this.schemas) { + if (refTableName === tableName) + continue; + for (const [colName, colDef] of Object.entries(refSchema.columns)) { + if (!colDef.references || !colDef.onUpdate) + continue; + const [refTable] = colDef.references.split('.'); + if (refTable !== tableName) + continue; + if (colDef.onUpdate !== 'RESTRICT') + continue; + const refRows = await this.getAllRows(refTableName); + if (refRows.some((r) => String(r[colName]) === oldPk)) { + throw new DatabaseError(`Cannot update "${tableName}" key "${oldPk}": foreign key "${colName}" in "${refTableName}" has dependent rows`, 'FOREIGN_KEY_VIOLATION'); + } + } + } + // 阶段 2: CASCADE / SET NULL + for (const [refTableName, refSchema] of this.schemas) { + if (refTableName === tableName) + continue; + for (const [colName, colDef] of Object.entries(refSchema.columns)) { + if (!colDef.references || !colDef.onUpdate) + continue; + const [refTable] = colDef.references.split('.'); + if (refTable !== tableName) + continue; + if (colDef.onUpdate !== 'CASCADE' && colDef.onUpdate !== 'SET NULL') + continue; + const refRows = await this.getAllRows(refTableName); + for (const refRow of refRows) { + if (String(refRow[colName]) !== oldPk) + continue; + const refPkCol = this.tablePKs.get(refTableName); + const refPk = String(refRow[refPkCol]); + const updatedRef = { ...refRow, [colName]: colDef.onUpdate === 'CASCADE' ? newPk : null }; + const refKey = `${refTableName}:${refPk}`; + if (this.currentTxnId && this.txnSnapshot) { + this.txnSnapshot.set(refKey, updatedRef); + this.mvcc.writeVersion(refTableName, refPk, updatedRef, this.currentTxnId); + } + else { + this.lsm.put(refKey, updatedRef); + } + this.updateSecondaryIndexes(refTableName, refPk, updatedRef, refRow); + walRecords.push({ + type: WALRecordType.UPDATE, + txnId: this.currentTxnId ?? 0, + tableName: refTableName, + key: refPk, + data: updatedRef, + }); + } + } + } + } async delete(tableName, query) { this.ensureOpen(); this.ensureTable(tableName); @@ -5148,6 +6161,7 @@ class AriaEngine { */ async alterTable(tableName, action, column) { this.ensureOpen(); + this.ensureNoDDLInTransaction('ALTER TABLE'); this.ensureTable(tableName); const schema = this.schemas.get(tableName); if (action === 'ADD') { @@ -5162,10 +6176,21 @@ class AriaEngine { if (!schema.columns[column.name]) { throw new DatabaseError(`Column "${column.name}" does not exist in table "${tableName}"`, 'COLUMN_NOT_FOUND'); } + // v0.4.2-fix: 被删列是索引列 → 先清理索引 LSM(残留会导致后续同名列索引脏数据) + if (schema.columns[column.name].index || schema.columns[column.name].unique) { + const idxKey = `${tableName}:idx:${column.name}`; + const idxLsm = this.secondaryIndexes.get(idxKey); + if (idxLsm) { + try { + await idxLsm.clear(); + } + catch { /* 清理失败不阻塞 */ } + this.secondaryIndexes.delete(idxKey); + } + } delete schema.columns[column.name]; await this.persistSchemas(); // 重写主 LSM:移除所有行的该列键(find 副本无法就地删除,必须重写存储) - this.tablePKs.get(tableName); const prefix = `${tableName}:`; const endKey = `${prefix}\uffff`; await this.lsm.prefetchRange(prefix, endKey); @@ -5195,31 +6220,31 @@ class AriaEngine { } async createIndex(tableName, column, unique) { this.ensureOpen(); + this.ensureNoDDLInTransaction('CREATE INDEX'); this.ensureTable(tableName); const schema = this.schemas.get(tableName); const colDef = schema.columns[column]; if (!colDef) throw new DatabaseError(`Column "${column}" does not exist in table "${tableName}"`, 'COLUMN_NOT_FOUND'); - if (colDef.index || colDef.unique) - return; // 已存在 + const idxKey = `${tableName}:idx:${column}`; + // v0.4.2-fix: 以索引 LSM 是否已建为准(schema 标记可能因重启恢复而存在, + // 但索引 LSM 未恢复 → 此前静默 return 导致索引永久缺失) + if (this.secondaryIndexes.has(idxKey)) + return; colDef.index = true; if (unique) colDef.unique = true; - const idxKey = `${tableName}:idx:${column}`; - if (!this.secondaryIndexes.has(idxKey)) { - const idxLsm = new LSM({ - memtableSizeThreshold: this.config.memtableSizeThreshold, - levelSizeMultiplier: this.config.levelSizeMultiplier, - blockSize: this.config.pageSize, - bloomBitsPerKey: this.config.bloomFilterBitsPerKey, - cacheLimitBytes: this.config.bufferPoolPages * this.config.pageSize, - sstableStore: this.createSSTableStore(`idx_${tableName}_${column}`), - }); - await idxLsm.init(); - this.secondaryIndexes.set(idxKey, idxLsm); - } + const idxLsm = new LSM({ + memtableSizeThreshold: this.config.memtableSizeThreshold, + levelSizeMultiplier: this.config.levelSizeMultiplier, + blockSize: this.config.pageSize, + bloomBitsPerKey: this.config.bloomFilterBitsPerKey, + cacheLimitBytes: this.config.bufferPoolPages * this.config.pageSize, + sstableStore: this.createSSTableStore(`idx_${tableName}_${column}`), + }); + await idxLsm.init(); + this.secondaryIndexes.set(idxKey, idxLsm); // 从主 LSM 重建索引数据 - const idxLsm = this.secondaryIndexes.get(idxKey); const pkCol = this.tablePKs.get(tableName); const rows = await this.getAllRows(tableName); for (const row of rows) { @@ -5233,6 +6258,7 @@ class AriaEngine { } async dropIndex(tableName, column, _indexName) { this.ensureOpen(); + this.ensureNoDDLInTransaction('DROP INDEX'); this.ensureTable(tableName); const schema = this.schemas.get(tableName); const colDef = schema.columns[column]; @@ -5612,6 +6638,8 @@ class AriaEngine { async applyDropTableRecovery(tableName) { if (!tableName) return; + // v0.4.2-fix: 清理该表二级索引(崩溃恢复路径同样不留孤儿索引) + await this.cleanupTableIndexes(tableName); this.schemas.delete(tableName); this.tablePKs.delete(tableName); // 清除主 LSM 中该表前缀的所有数据(含 SSTable 中的旧数据) @@ -5855,7 +6883,13 @@ class AriaEngine { async reindexTable(tableName) { this.ensureOpen(); this.ensureTable(tableName); + return this.reindexTableInternal(tableName); + } + /** v0.4.2-fix: 重建索引内部实现(不校验 opened,供 open 恢复流程调用) */ + async reindexTableInternal(tableName) { const schema = this.schemas.get(tableName); + if (!schema) + return 0; let rebuiltCount = 0; for (const [colName, colDef] of Object.entries(schema.columns)) { // v0.3.3: 主键列不建冗余二级索引(主 LSM 即 PK 索引) @@ -5893,7 +6927,7 @@ class AriaEngine { } } // GC MVCC 版本(保留最新 10 个) - const beforeGC = this.mvcc.getActiveTxnCount?.() ?? 0; + const beforeGC = this.mvcc.getGlobalLSN(); this.mvcc.gc(10); return { compactedLevels: 6, gcVersions: beforeGC }; } @@ -5932,6 +6966,12 @@ class AriaEngine { if (!this.opened) throw new DatabaseError('AriaEngine not opened', 'DB_NOT_OPEN'); } + /** v0.4.2-fix: Aria 事务中 DDL 显式拒绝(结构变更无法通过行快照回滚) */ + ensureNoDDLInTransaction(op) { + if (this.currentTxnId) { + throw new DatabaseError(`${op} is not supported inside a transaction (AriaEngine DDL is not transactional)`, 'NOT_SUPPORTED'); + } + } ensureTable(tableName) { if (!this.schemas.has(tableName)) { throw new DatabaseError(`Table "${tableName}" does not exist`, 'TABLE_NOT_FOUND'); @@ -6024,6 +7064,46 @@ class HybridEngine { isOpen() { return this.memoryEngine.isOpen() && this.diskEngine.isOpen(); } + // ---- v0.4.2-fix: 自愈 / 重置 / 元数据(委托双引擎) ---- + /** 自愈:修复磁盘引擎后重载内存缓存 */ + async repair() { + if (typeof this.diskEngine.repair === 'function') { + await this.diskEngine.repair(); + } + await this.reloadMemoryFromDisk(); + } + /** 清空全部数据与表结构 */ + async clearAll() { + if (typeof this.diskEngine.clearAll === 'function') { + await this.diskEngine.clearAll(); + } + else { + const names = await this.diskEngine.getTableNames(); + for (const name of names) { + await this.diskEngine.dropTable(name); + } + } + if (typeof this.memoryEngine.clearAll === 'function') { + await this.memoryEngine.clearAll(); + } + else { + const names = await this.memoryEngine.getTableNames(); + for (const name of names) { + await this.memoryEngine.dropTable(name); + } + } + } + async getMeta(key) { + if (typeof this.diskEngine.getMeta === 'function') { + return this.diskEngine.getMeta(key); + } + return null; + } + async setMeta(key, value) { + if (typeof this.diskEngine.setMeta === 'function') { + await this.diskEngine.setMeta(key, value); + } + } // ---- 表管理 ---- async createTable(schema) { await this.memoryEngine.createTable(schema); @@ -6042,6 +7122,19 @@ class HybridEngine { async getTableSchema(tableName) { return this.memoryEngine.getTableSchema(tableName); } + /** v0.4.2-fix: 引擎级 ALTER TABLE — 双引擎同步(磁盘持久化 + 内存引用) */ + async alterTable(tableName, action, column) { + await this.memoryEngine.alterTable(tableName, action, column); + if (typeof this.diskEngine.alterTable === 'function') { + await this.diskEngine.alterTable(tableName, action, column); + } + else { + // 磁盘引擎无引擎级实现 → 从磁盘重建内存 schema(disk 引擎 schema 以自身为准) + const schema = await this.diskEngine.getTableSchema(tableName); + if (schema && action === 'DROP') + delete schema.columns[column.name]; + } + } // ---- CRUD(write-through 策略) ---- async insert(tableName, rows) { const pks = await this.memoryEngine.insert(tableName, rows); @@ -6100,10 +7193,10 @@ class HybridEngine { try { await this.memoryEngine.commitTransaction(); } - catch { - // 内存提交失败时回滚磁盘 - await this.diskEngine.rollbackTransaction(); - throw new DatabaseError('Hybrid commit failed: memory engine error after disk commit', 'TX_COMMIT_ERROR'); + catch (error) { + // v0.4.2-fix: 磁盘已提交无法回滚(此前调 diskEngine.rollbackTransaction() + // 会抛 TX_NONE 掩盖原错误)。如实上报内存提交失败,磁盘数据保持已提交状态。 + throw new DatabaseError('Hybrid commit failed: memory engine error after disk commit (disk data is committed)', 'TX_COMMIT_ERROR', error); } } async rollbackTransaction() { @@ -9358,6 +10451,17 @@ class MetonaSqlark { this.engine = this.createEngine(); // 打开连接 await this.engine.open(this.name, this.version); + // v0.4.2-fix (P2-7): 从库内加载持久化的迁移版本, + // 重启后 migrateTo 从持久化版本继续执行,不再每次从 config.version 重置 + if (typeof this.engine.getMeta === 'function') { + try { + const persistedVersion = await this.engine.getMeta('__metona_version'); + if (persistedVersion != null && Number(persistedVersion) >= 1) { + this._version = Math.max(this._version, Math.floor(Number(persistedVersion))); + } + } + catch { /* 读取失败回退 config.version */ } + } // 初始化执行器和事务管理器 this.executor = new QueryExecutor(this.engine, this.maxRowsPerQuery); this.transactionManager = new TransactionManager(this.engine); @@ -9626,11 +10730,51 @@ class MetonaSqlark { async migrateTo(targetVersion) { this.ensureReady(); for (const [version, up] of [...this.migrations.entries()].sort((a, b) => a[0] - b[0])) { - if (version <= targetVersion && version > this.version) { + if (version <= targetVersion && version > this._version) { await up(this); this._version = version; } } + // v0.4.2-fix (P2-7): 迁移版本持久化到库内,重启后从持久化版本继续, + // 避免"version 重置导致已执行迁移重跑(不幂等就炸)"或"版本门槛跳过迁移" + if (typeof this.engine.setMeta === 'function') { + try { + await this.engine.setMeta('__metona_version', String(this._version)); + } + catch { /* 持久化失败不阻塞迁移流程 */ } + } + } + // ---- 自愈 / 重置(v0.4.2-fix, P2-9) ---- + /** + * 崩溃恢复自愈 — 校验并清理损坏数据、恢复一致性。 + * 检测到异常后调用,无需删库重建。 + */ + async repair() { + this.ensureReady(); + if (typeof this.engine.repair === 'function') { + await this.engine.repair(); + this.tableCache.clear(); + return; + } + // 兜底:重建表缓存 + this.tableCache.clear(); + } + /** + * 清空全部数据与表结构(保留库本身)。 + * 支持后续继续使用本实例重建表。 + */ + async clearAll() { + this.ensureReady(); + if (typeof this.engine.clearAll === 'function') { + await this.engine.clearAll(); + } + else { + const names = await this.engine.getTableNames(); + for (const name of names) { + await this.engine.dropTable(name); + } + } + this.tableCache.clear(); } // ---- 插件 ---- /** 获取插件管理器 */ diff --git a/dist/metona-sqlark.esm.js.map b/dist/metona-sqlark.esm.js.map index fa5876a..30b9798 100644 --- a/dist/metona-sqlark.esm.js.map +++ b/dist/metona-sqlark.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"metona-sqlark.esm.js","sources":["../src/constants.ts","../src/query/where-matcher.ts","../src/engine/memory.ts","../src/engine/indexeddb.ts","../src/engine/opfs.ts","../src/table/schema.ts","../src/engine/aria/types.ts","../src/engine/aria/index/memtable.ts","../src/engine/aria/index/bloom.ts","../src/engine/aria/index/sstable_builder.ts","../src/engine/aria/index/sstable.ts","../src/engine/aria/index/merge_iterator.ts","../src/engine/aria/index/lsm.ts","../src/engine/aria/wal/log.ts","../src/engine/aria/wal/checkpoint.ts","../src/engine/aria/store/backend.ts","../src/engine/aria/store/opfs_backend.ts","../src/engine/aria/page/header.ts","../src/engine/aria/store/file_manager.ts","../src/engine/aria/transaction/mvcc.ts","../src/engine/aria/page/format.ts","../src/engine/aria/buffer/eviction.ts","../src/engine/aria/buffer/pool.ts","../src/engine/aria/compression/lz4.ts","../src/engine/aria/crypto.ts","../src/engine/aria/index.ts","../src/hybrid/index.ts","../src/query/builder.ts","../src/table/table.ts","../src/query/compiler.ts","../src/sql/tokens.ts","../src/sql/lexer.ts","../src/sql/parser.ts","../src/query/executor.ts","../src/transaction/index.ts","../src/plugin/index.ts","../src/core.ts","../src/connection-manager.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["SSTABLE_MAGIC"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"metona-sqlark.esm.js","sources":["../src/constants.ts","../src/query/where-matcher.ts","../src/engine/memory.ts","../src/engine/indexeddb.ts","../src/engine/opfs.ts","../src/table/schema.ts","../src/engine/aria/types.ts","../src/engine/aria/index/memtable.ts","../src/engine/aria/index/bloom.ts","../src/engine/aria/index/sstable_builder.ts","../src/engine/aria/index/sstable.ts","../src/engine/aria/index/merge_iterator.ts","../src/engine/aria/index/lsm.ts","../src/engine/aria/wal/log.ts","../src/engine/aria/wal/checkpoint.ts","../src/engine/aria/store/backend.ts","../src/engine/aria/store/opfs_backend.ts","../src/engine/aria/page/header.ts","../src/engine/aria/store/file_manager.ts","../src/engine/aria/transaction/mvcc.ts","../src/engine/aria/page/format.ts","../src/engine/aria/buffer/eviction.ts","../src/engine/aria/buffer/pool.ts","../src/engine/aria/compression/lz4.ts","../src/engine/aria/crypto.ts","../src/engine/aria/index.ts","../src/hybrid/index.ts","../src/query/builder.ts","../src/table/table.ts","../src/query/compiler.ts","../src/sql/tokens.ts","../src/sql/lexer.ts","../src/sql/parser.ts","../src/query/executor.ts","../src/transaction/index.ts","../src/plugin/index.ts","../src/core.ts","../src/connection-manager.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["SSTABLE_MAGIC"],"mappings":"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"} \ No newline at end of file diff --git a/dist/metona-sqlark.js b/dist/metona-sqlark.js index cfc86dd..5f75a63 100644 --- a/dist/metona-sqlark.js +++ b/dist/metona-sqlark.js @@ -36,7 +36,7 @@ // --------------------------------------------------------------------------- // 版本 // --------------------------------------------------------------------------- - const VERSION = '0.4.1'; + const VERSION = '0.4.2'; /** * metona-sqlark Shared WHERE Matcher — 统一的条件匹配逻辑 @@ -232,6 +232,8 @@ this.schemas = new Map(); this.indexes = new Map(); this.opened = false; + /** v0.4.2-fix: 库内元数据(迁移版本持久化用) */ + this.metaStore = new Map(); // ---- 事务快照 ---- this.snapshot = null; } @@ -247,17 +249,41 @@ this.tables.clear(); this.schemas.clear(); this.indexes.clear(); + this.metaStore.clear(); this.opened = false; } isOpen() { return this.opened; } + // ---- v0.4.2-fix: 自愈 / 重置 / 元数据 ---- + /** 内存引擎无需修复(无持久化损坏概念) */ + async repair() { return; } + /** 清空全部数据与表结构 */ + async clearAll() { + const names = Array.from(this.schemas.keys()); + for (const name of names) { + await this.dropTable(name); + } + this.metaStore.clear(); + } + async getMeta(key) { + return this.metaStore.get(key) ?? null; + } + async setMeta(key, value) { + this.metaStore.set(key, value); + } // ---- 表管理 ---- async createTable(schema) { if (this.schemas.has(schema.name)) throw new DatabaseError(`Table "${schema.name}" already exists`, 'TABLE_EXISTS'); - this.schemas.set(schema.name, schema); + // v0.4.2-fix: 存储 schema 深拷贝 — 此前 Hybrid.reloadMemoryFromDisk 直接存入 + // disk 引擎的 schema 引用,内存/磁盘引擎共享同一对象,任一引擎 ALTER 都会污染对方 + const copy = { name: schema.name, columns: {} }; + for (const [colName, colDef] of Object.entries(schema.columns)) { + copy.columns[colName] = { ...colDef }; + } + this.schemas.set(schema.name, copy); this.tables.set(schema.name, new Map()); const tableIndexes = new Map(); - for (const [colName, colDef] of Object.entries(schema.columns)) { + for (const [colName, colDef] of Object.entries(copy.columns)) { if (colDef.index || colDef.unique) tableIndexes.set(colName, new Map()); } @@ -272,6 +298,31 @@ async hasTable(tableName) { return this.schemas.has(tableName); } async getTableNames() { return Array.from(this.schemas.keys()); } async getTableSchema(tableName) { return this.schemas.get(tableName) ?? null; } + /** + * v0.4.2-fix: 引擎级 ALTER TABLE — 直接修改内存 schema 引用并清理行数据。 + * (此前走 executor 通用路径,行为相同;统一到引擎层保证 Hybrid/IndexedDB 委托一致性) + */ + async alterTable(tableName, action, column) { + this.ensureTable(tableName); + const schema = this.schemas.get(tableName); + if (action === 'ADD') { + if (schema.columns[column.name]) { + throw new DatabaseError(`Column "${column.name}" already exists in table "${tableName}"`, 'COLUMN_EXISTS'); + } + schema.columns[column.name] = column; + return; + } + if (!schema.columns[column.name]) { + throw new DatabaseError(`Column "${column.name}" does not exist in table "${tableName}"`, 'COLUMN_NOT_FOUND'); + } + delete schema.columns[column.name]; + // 清理已有行中该列的值(find 返回行引用,直接删除生效) + const table = this.tables.get(tableName); + for (const row of table.values()) { + if (column.name in row) + delete row[column.name]; + } + } // ---- CRUD ---- async insert(tableName, rows) { this.ensureTable(tableName); @@ -339,21 +390,80 @@ this.ensureTable(tableName); const schema = this.schemas.get(tableName); const table = this.tables.get(tableName); + const pkCol = this.getPrimaryKey(schema); let count = 0; - for (const [pk, row] of table) { + // v0.4.2-fix: 迭代期间会 delete/set 同一 Map(主键变更)→ 拷贝快照避免跳过/重复 + for (const [pk, row] of [...table]) { if (!query.where || Object.keys(query.where).length === 0 || matchWhere(row, query.where)) { // v0.3.3: 先移除旧值索引条目(修复 update 后唯一约束被绕过、按新值查索引丢行) this.removeIndexEntries(tableName, row, pk); const updated = { ...row, ...updates }; this.validateRow(schema, updated); this.checkUniqueness(schema, updated); - table.set(pk, updated); - this.updateIndexes(tableName, updated, pk); + const newPk = String(updated[pkCol]); + // v0.4.2-fix: 主键变更 — 删除旧键 + 级联更新引用表 + 新键落表 + if (newPk !== pk) { + await this.applyUpdateCascade(tableName, pk, newPk); + } + table.delete(pk); + table.set(newPk, updated); + this.updateIndexes(tableName, updated, newPk); count++; } } return count; } + /** + * v0.4.2-fix: ON UPDATE 外键级联 — 被引用表主键变更时处理引用表: + * RESTRICT 抛错 / CASCADE 更新 FK 值 / SET NULL 置空。 + * 分两阶段:先全量 RESTRICT 检查(任何修改前),再执行级联(防部分修改)。 + */ + async applyUpdateCascade(tableName, oldPk, newPk) { + // 阶段 1: RESTRICT 检查(引用旧主键的行存在即拒绝) + for (const [refTableName, refSchema] of this.schemas) { + if (refTableName === tableName) + continue; + for (const [colName, colDef] of Object.entries(refSchema.columns)) { + if (!colDef.references || !colDef.onUpdate) + continue; + const [refTable] = colDef.references.split('.'); + if (refTable !== tableName) + continue; + const refTableData = this.tables.get(refTableName); + if (!refTableData) + continue; + for (const [, refRow] of refTableData) { + if (String(refRow[colName]) === oldPk && colDef.onUpdate === 'RESTRICT') { + throw new DatabaseError(`Cannot update "${tableName}" key "${oldPk}": foreign key "${colName}" in "${refTableName}" has dependent rows`, 'FOREIGN_KEY_VIOLATION'); + } + } + } + } + // 阶段 2: CASCADE / SET NULL + for (const [refTableName, refSchema] of this.schemas) { + if (refTableName === tableName) + continue; + for (const [colName, colDef] of Object.entries(refSchema.columns)) { + if (!colDef.references || !colDef.onUpdate) + continue; + const [refTable] = colDef.references.split('.'); + if (refTable !== tableName) + continue; + const refTableData = this.tables.get(refTableName); + if (!refTableData) + continue; + if (colDef.onUpdate !== 'CASCADE' && colDef.onUpdate !== 'SET NULL') + continue; + for (const [refPk, refRow] of refTableData) { + if (String(refRow[colName]) !== oldPk) + continue; + this.removeIndexEntries(refTableName, refRow, refPk); + refRow[colName] = colDef.onUpdate === 'CASCADE' ? newPk : null; + this.updateIndexes(refTableName, refRow, refPk); + } + } + } + } async delete(tableName, query) { this.ensureTable(tableName); const table = this.tables.get(tableName); @@ -699,33 +809,153 @@ this.txActive = false; } async open(dbName, version) { + // v0.4.2-fix (P0-3): version < 1 归一化为 1(indexedDB.open(name, 0) 抛原生 TypeError) + const normalizedVersion = version >= 1 ? Math.floor(version) : 1; this.dbName = dbName; - this.version = version; - await this.memoryCache.open(dbName, version); + this.version = normalizedVersion; + await this.memoryCache.open(dbName, normalizedVersion); + // v0.4.2-fix (P0-2/P2-8): 版本自适应打开 + blocked 重试 + this.db = await this.openDatabaseWithRetry(dbName, normalizedVersion); + this.setupVersionChangeHandler(); + // v0.4.2-fix (P2-7): 确保 schema/meta 持久化 store 存在(新库或旧库升级时创建), + // 否则迁移版本等库内元数据无处落盘 + await this.ensureSchemaStore(); + try { + // v0.3.2: reopen 后从 IDB 重建 schema(schema 此前只存内存缓存,重开连接即丢失) + await this.rebuildSchemaFromIDB(); + } + catch (error) { + throw new DatabaseError(`Failed to restore schema for "${dbName}"`, 'IDB_SCHEMA_RESTORE_ERROR', error); + } + } + /** v0.4.2-fix: 多标签页冲突处理 — 其他标签页升级版本时自动关闭当前连接 */ + setupVersionChangeHandler() { + if (!this.db) + return; + this.db.onversionchange = () => { + if (this.db) { + this.db.close(); + this.db = null; + // eslint-disable-next-line no-console + console.warn(`[metona-sqlark] Database "${this.dbName}" was upgraded in another tab. Connection closed. Please re-open.`); + } + }; + } + /** + * v0.4.2-fix: 打开 IndexedDB 连接。 + * - P0-2: 请求版本低于库实际版本(VersionError)时,先无版本参数探测库当前版本, + * 再以实际版本重开(建表每张表版本号 +1,config.version 会过期) + * - P2-8: onblocked 为瞬时状态(另一连接短暂持有),等待后重试多次,超时才抛 IDB_BLOCKED + */ + async openDatabaseWithRetry(dbName, requestedVersion) { + const BLOCKED_RETRIES = 10; + let effectiveVersion = requestedVersion; + for (let attempt = 0; attempt < BLOCKED_RETRIES; attempt++) { + try { + return await this.openRequest(dbName, effectiveVersion, 200 + attempt * 150); + } + catch (error) { + const err = error; + if (err && err.name === 'VersionError') { + const currentVersion = await this.resolveCurrentVersion(dbName); + if (currentVersion >= 1 && currentVersion !== effectiveVersion) { + effectiveVersion = currentVersion; + this.version = currentVersion; + continue; + } + throw new DatabaseError(`Failed to open IndexedDB "${dbName}": version mismatch`, 'IDB_VERSION_ERROR', error); + } + if (err && err.name === 'BlockedError') { + // 另一连接短暂持有 → 等待后重试 + await new Promise((resolve) => setTimeout(resolve, 50 * (attempt + 1))); + continue; + } + throw new DatabaseError(`Failed to open IndexedDB "${dbName}"`, 'IDB_OPEN_ERROR', error); + } + } + throw new DatabaseError(`IndexedDB "${dbName}" is blocked`, 'IDB_BLOCKED'); + } + /** + * 发起一次 indexedDB.open 请求(success/error/blocked 三态收敛)。 + * onblocked 不立即失败:阻塞解除后 success 仍会触发,仅超时兜底判失败, + * 避免"拒绝后连接迟到成功"泄漏未关闭的数据库连接。 + */ + openRequest(dbName, version, timeoutMs) { return new Promise((resolve, reject) => { const request = indexedDB.open(dbName, version); - request.onsuccess = async () => { - this.db = request.result; - // 多标签页冲突处理:其他标签页升级版本时自动关闭当前连接 - this.db.onversionchange = () => { - if (this.db) { - this.db.close(); - this.db = null; - // eslint-disable-next-line no-console - console.warn(`[metona-sqlark] Database "${dbName}" was upgraded in another tab. Connection closed. Please re-open.`); - } - }; - try { - // v0.3.2: reopen 后从 IDB 重建 schema(schema 此前只存内存缓存,重开连接即丢失) - await this.rebuildSchemaFromIDB(); - resolve(); + let settled = false; + const timeout = setTimeout(() => { + if (settled) + return; + settled = true; + // 兼容无 DOMException 构造环境 + const blockedError = typeof DOMException !== 'undefined' + ? new DOMException('IndexedDB open is blocked', 'BlockedError') + : Object.assign(new Error('IndexedDB open is blocked'), { name: 'BlockedError' }); + reject(blockedError); + }, timeoutMs); + request.onsuccess = () => { + if (settled) { + // 超时判失败后连接迟到成功:立即关闭,避免阻塞后续版本升级 + request.result.close(); + return; } - catch (error) { - reject(new DatabaseError(`Failed to restore schema for "${dbName}"`, 'IDB_SCHEMA_RESTORE_ERROR', error)); + settled = true; + clearTimeout(timeout); + resolve(request.result); + }; + request.onerror = () => { + if (settled) + return; + settled = true; + clearTimeout(timeout); + reject(request.error ?? new Error('Unknown IndexedDB open error')); + }; + request.onblocked = () => { + // 保持等待,不拒绝(阻塞解除后 success 会触发;超时由 timer 兜底) + }; + }); + } + /** 无版本参数打开库,解析其当前实际版本号(随后立即关闭) */ + resolveCurrentVersion(dbName) { + return new Promise((resolve, reject) => { + const request = indexedDB.open(dbName); + request.onsuccess = () => { + const actualVersion = request.result.version; + request.result.close(); + resolve(actualVersion); + }; + request.onerror = () => { + reject(request.error ?? new Error('Failed to resolve IndexedDB version')); + }; + }); + } + /** + * v0.4.2-fix (P2-7): 确保 __metona_schema store 存在。 + * 新库(或版本升级前创建的旧库)没有该 store 时,通过一次版本升级创建, + * 使 getMeta/setMeta(迁移版本持久化)始终可用。 + */ + async ensureSchemaStore() { + if (!this.db) + return; + if (this.db.objectStoreNames.contains('__metona_schema')) + return; + const newVersion = this.db.version + 1; + this.db.close(); + this.db = await new Promise((resolve, reject) => { + const request = indexedDB.open(this.dbName, newVersion); + request.onupgradeneeded = () => { + const idb = request.result; + if (!idb.objectStoreNames.contains('__metona_schema')) { + idb.createObjectStore('__metona_schema', { keyPath: 'name' }); } }; - request.onerror = () => reject(new DatabaseError(`Failed to open IndexedDB "${dbName}"`, 'IDB_OPEN_ERROR', request.error)); - request.onblocked = () => reject(new DatabaseError(`IndexedDB "${dbName}" is blocked`, 'IDB_BLOCKED')); + request.onsuccess = () => { + this.db = request.result; + this.setupVersionChangeHandler(); + resolve(request.result); + }; + request.onerror = () => reject(new DatabaseError('Failed to create schema store', 'IDB_UPGRADE_ERROR', request.error)); }); } /** @@ -800,6 +1030,83 @@ } await this.memoryCache.close(); } + /** + * v0.4.2-fix: 自愈 — 从磁盘重建内存 schema 与数据(schema 丢失/内存不一致时调用)。 + * 无删库需求即可恢复可用的库。 + */ + async repair() { + if (!this.db) + throw new DatabaseError('Database not opened', 'DB_NOT_OPEN'); + await this.memoryCache.close(); + await this.memoryCache.open(this.dbName, this.version); + await this.rebuildSchemaFromIDB(); + } + /** + * v0.4.2-fix: 清空全部数据与表结构(含持久化 schema 记录),保留库本身。 + * 单个版本升级事务内原子完成。 + */ + async clearAll() { + const db = this.ensureDB(); + // 先清内存缓存 + const tableNames = await this.memoryCache.getTableNames(); + for (const name of tableNames) { + await this.memoryCache.dropTable(name); + } + // 重置 IDB:删除所有表 store + 清空 schema/meta store + const newVersion = db.version + 1; + db.close(); + await new Promise((resolve, reject) => { + const request = indexedDB.open(this.dbName, newVersion); + request.onupgradeneeded = (event) => { + const idb = event.target.result; + const toDelete = Array.from(idb.objectStoreNames).filter((n) => n !== '__metona_schema'); + for (const name of toDelete) { + idb.deleteObjectStore(name); + } + if (!idb.objectStoreNames.contains('__metona_schema')) { + idb.createObjectStore('__metona_schema', { keyPath: 'name' }); + } + else { + // 保留 store 但清空内容(含持久化 schema 与 meta 记录) + const tx = event.target.transaction; + tx.objectStore('__metona_schema').clear(); + } + }; + request.onsuccess = () => { + this.db = request.result; + this.setupVersionChangeHandler(); + resolve(); + }; + request.onerror = () => reject(new DatabaseError('Failed to clear database', 'IDB_CLEAR_ERROR', request.error)); + request.onblocked = () => reject(new DatabaseError(`IndexedDB "${this.dbName}" is blocked`, 'IDB_BLOCKED')); + }); + } + // ---- 库内元数据(v0.4.2-fix:迁移版本持久化用,复用 __metona_schema store) ---- + async getMeta(key) { + const db = this.ensureDB(); + if (!db.objectStoreNames.contains('__metona_schema')) + return null; + return new Promise((resolve, reject) => { + const req = db.transaction('__metona_schema', 'readonly') + .objectStore('__metona_schema').get(`__meta:${key}`); + req.onsuccess = () => { + const rec = req.result; + resolve(rec && typeof rec.schema === 'string' ? rec.schema : null); + }; + req.onerror = () => reject(req.error); + }); + } + async setMeta(key, value) { + const db = this.ensureDB(); + if (!db.objectStoreNames.contains('__metona_schema')) + return; + await new Promise((resolve, reject) => { + const tx = db.transaction('__metona_schema', 'readwrite'); + tx.objectStore('__metona_schema').put({ name: `__meta:${key}`, schema: value }); + tx.oncomplete = () => resolve(); + tx.onerror = () => reject(new DatabaseError(`Failed to persist meta "${key}"`, 'IDB_META_ERROR', tx.error)); + }); + } isOpen() { return this.db !== null; } // ---- 表管理 ---- async createTable(schema) { @@ -817,6 +1124,43 @@ async hasTable(tableName) { return this.ensureDB().objectStoreNames.contains(tableName); } async getTableNames() { return Array.from(this.ensureDB().objectStoreNames); } async getTableSchema(tableName) { return this.memoryCache.getTableSchema(tableName); } + /** + * v0.4.2-fix: 引擎级 ALTER TABLE — schema 持久化到 __metona_schema store, + * 重启后 ALTER 不丢失(此前通用路径只改内存引用,重启回退;DROP 的行数据也没真正删)。 + */ + async alterTable(tableName, action, column) { + await this.memoryCache.alterTable(tableName, action, column); + if (this.txActive) + return; // 事务中:commit 时统一 flushToIDB 同步 + const schema = await this.memoryCache.getTableSchema(tableName); + if (schema) { + await this.persistSchema(schema); + } + if (action === 'DROP') { + // 重写 IDB 存储行:移除该列键(store.put 经 keyPath 自动覆盖原行) + const db = this.ensureDB(); + const rows = await this.idbFind(tableName, { table: tableName }); + const rewritten = rows.map((row) => { + if (column.name in row) { + const copy = { ...row }; + delete copy[column.name]; + return copy; + } + return row; + }); + if (rewritten.length > 0) { + await new Promise((resolve, reject) => { + const tx = db.transaction(tableName, 'readwrite'); + const store = tx.objectStore(tableName); + for (const row of rewritten) { + store.put(row); + } + tx.oncomplete = () => resolve(); + tx.onerror = () => reject(new DatabaseError(`Failed to rewrite "${tableName}" after DROP COLUMN`, 'IDB_TX_ERROR', tx.error)); + }); + } + } + } // ---- CRUD ---- async insert(tableName, rows) { const pks = await this.memoryCache.insert(tableName, rows); @@ -924,10 +1268,10 @@ async commitTransaction() { if (!this.txActive) throw new DatabaseError('No active transaction', 'TX_NONE'); - // 确认内存层的变更 - await this.memoryCache.commitTransaction(); - // 批量将内存数据刷到 IndexedDB + // v0.4.2-fix: 先刷盘后提交内存快照 — 此前先 memoryCache.commitTransaction() + // 再 flushToIDB,flush 失败时 snapshot 已丢,回滚报 TX_NONE 且内存数据已确认 await this.flushToIDB(); + await this.memoryCache.commitTransaction(); this.txActive = false; } async rollbackTransaction() { @@ -1141,10 +1485,78 @@ tx.onerror = () => reject(new DatabaseError(`Clear failed for "${tableName}"`, 'IDB_TX_ERROR', tx.error)); }); } + /** 持久化单个表 schema 到 __metona_schema store(v0.4.2-fix: ALTER TABLE 用) */ + async persistSchema(schema) { + const db = this.ensureDB(); + if (!db.objectStoreNames.contains('__metona_schema')) + return; + await new Promise((resolve, reject) => { + const tx = db.transaction('__metona_schema', 'readwrite'); + tx.objectStore('__metona_schema').put({ name: schema.name, schema: JSON.stringify(schema) }); + tx.oncomplete = () => resolve(); + tx.onerror = () => reject(new DatabaseError(`Failed to persist schema for "${schema.name}"`, 'IDB_SCHEMA_ERROR', tx.error)); + }); + } /** 将内存缓存中的所有表数据原子性刷新到 IndexedDB */ async flushToIDB() { const tableNames = await this.memoryCache.getTableNames(); - const db = this.ensureDB(); + let db = this.ensureDB(); + // v0.4.2-fix: 事务内 DDL 只更新内存,commit 时同步 IDB 的 objectStore 结构: + // 缺失的表 store 创建(并持久化 schema)、已删除的 store 移除(防止重启幽灵表) + const idbStores = Array.from(db.objectStoreNames); + const missing = tableNames.filter((t) => !idbStores.includes(t)); + const stale = idbStores.filter((s) => s !== '__metona_schema' && !tableNames.includes(s)); + if (missing.length > 0 || stale.length > 0) { + // 升级事务内是同步上下文,先异步收集缺失表的 schema(主键列定义) + const schemaMap = new Map(); + for (const name of missing) { + const s = await this.memoryCache.getTableSchema(name); + if (s) + schemaMap.set(name, s); + } + const newVersion = db.version + 1; + db.close(); + await new Promise((resolve, reject) => { + const request = indexedDB.open(this.dbName, newVersion); + request.onupgradeneeded = (event) => { + const idb = event.target.result; + for (const name of stale) { + idb.deleteObjectStore(name); + } + for (const name of missing) { + const schema = schemaMap.get(name); + const pkColumn = schema + ? (Object.entries(schema.columns).find(([, c]) => c.primaryKey)?.[0] ?? Object.keys(schema.columns)[0]) + : undefined; + idb.createObjectStore(name, { keyPath: pkColumn }); + } + // 事务内 drop 的表:同步清理持久化 schema 记录(防止重启后幽灵表恢复) + if (idb.objectStoreNames.contains('__metona_schema') && stale.length > 0) { + const tx = event.target.transaction; + const store = tx.objectStore('__metona_schema'); + for (const name of stale) { + store.delete(name); + } + } + }; + request.onsuccess = () => { + this.db = request.result; + this.setupVersionChangeHandler(); + resolve(); + }; + request.onerror = () => reject(new DatabaseError('Failed to sync stores after transaction', 'IDB_UPGRADE_ERROR', request.error)); + request.onblocked = () => reject(new DatabaseError(`IndexedDB "${this.dbName}" is blocked`, 'IDB_BLOCKED')); + }); + // 事务内新建表的 schema 一并持久化(此前只建 store 不存 schema → 重启后约束推断丢失) + for (const name of missing) { + const schema = await this.memoryCache.getTableSchema(name); + if (schema) + await this.persistSchema(schema); + } + // v0.4.2-fix: DDL 升级会 close 旧连接并重新 open — 重新取 db 引用, + // 否则下方数据 flush 用已关闭的连接抛 InvalidStateError + db = this.ensureDB(); + } // 每个表在一个单独的 IDB 事务中完成 clear+insert,保证原子性 for (const tableName of tableNames) { const rows = await this.memoryCache.find(tableName, { table: tableName }); @@ -1217,15 +1629,65 @@ isOpen() { return this.tablesDir !== null; } + // ---- v0.4.2-fix: 自愈 / 重置 / 元数据 ---- + /** 自愈:重置内存缓存后从 OPFS 重新加载(单文件损坏不影响其他表) */ + async repair() { + await this.memoryCache.close(); + await this.memoryCache.open(this.dbName, 1); + await this.loadExistingTables(); + } + /** 清空全部数据与表结构(删除目录内全部文件) */ + async clearAll() { + await this.memoryCache.close(); + await this.memoryCache.open(this.dbName, 1); + if (this.tablesDir) { + const dir = this.tablesDir; + for await (const [name] of dir.entries()) { + try { + await this.tablesDir.removeEntry(name); + } + catch { /* ignore */ } + } + } + } + async getMeta(key) { + if (!this.tablesDir) + return null; + try { + const fh = await this.tablesDir.getFileHandle(`__metona_${key}.meta`); + const file = await fh.getFile(); + return await file.text(); + } + catch { + return null; + } + } + async setMeta(key, value) { + if (!this.tablesDir) + return; + const fh = await this.tablesDir.getFileHandle(`__metona_${key}.meta`, { create: true }); + const writable = await fh.createWritable(); + await writable.write(value); + await writable.close(); + } // ---- 表管理 ---- async createTable(schema) { await this.memoryCache.createTable(schema); + // v0.4.2-fix: schema 持久化(此前仅写空数据文件 → 空表重启后消失、索引标记丢失) + await this.setMeta(`schema_${schema.name}`, JSON.stringify(schema)); // OPFS 中表以空 JSON 数组文件形式存在 await this.writeTableData(schema.name, []); } async dropTable(tableName) { await this.memoryCache.dropTable(tableName); + // v0.4.2-fix: 清理 schema meta(否则重启恢复幽灵表) if (this.tablesDir) { + try { + await this.tablesDir.removeEntry(`__metona_schema_${tableName}.meta`); + } + catch { + // 文件不存在则忽略 + } try { await this.tablesDir.removeEntry(`${tableName}.json`); } @@ -1259,6 +1721,15 @@ async getTableSchema(tableName) { return this.memoryCache.getTableSchema(tableName); } + /** v0.4.2-fix: 引擎级 ALTER TABLE — 内存 + schema 持久化 + 整表文件重写 */ + async alterTable(tableName, action, column) { + await this.memoryCache.alterTable(tableName, action, column); + const schema = await this.memoryCache.getTableSchema(tableName); + if (schema) + await this.setMeta(`schema_${tableName}`, JSON.stringify(schema)); + const rows = await this.memoryCache.find(tableName, { table: tableName }); + await this.writeTableData(tableName, rows); + } // ---- CRUD ---- async insert(tableName, rows) { const pks = await this.memoryCache.insert(tableName, rows); @@ -1295,10 +1766,17 @@ } // ---- 动态索引(v0.3.0) ---- async createIndex(tableName, column, unique) { - return this.memoryCache.createIndex(tableName, column, unique); + await this.memoryCache.createIndex(tableName, column, unique); + // v0.4.2-fix: 索引标记持久化(重启后索引结构恢复) + const schema = await this.memoryCache.getTableSchema(tableName); + if (schema) + await this.setMeta(`schema_${tableName}`, JSON.stringify(schema)); } async dropIndex(tableName, column, indexName) { - return this.memoryCache.dropIndex(tableName, column, indexName); + await this.memoryCache.dropIndex(tableName, column, indexName); + const schema = await this.memoryCache.getTableSchema(tableName); + if (schema) + await this.setMeta(`schema_${tableName}`, JSON.stringify(schema)); } // ---- 事务 ---- async beginTransaction() { @@ -1344,18 +1822,41 @@ return []; } } - /** 从 OPFS 加载已有表数据到内存缓存 */ + /** + * 从 OPFS 加载已有表到内存缓存。 + * v0.4.2-fix: 优先从持久化 schema(__metona_schema_*.meta)恢复 — + * 空表不再消失、索引标记/主键/约束完整;无 schema 记录的旧库从数据推断(兼容)。 + */ async loadExistingTables() { if (!this.tablesDir) return; const dir = this.tablesDir; + const fileNames = []; for await (const [name] of dir.entries()) { - if (!name.endsWith('.json')) - continue; - const tableName = name.replace('.json', ''); + if (name.endsWith('.json')) + fileNames.push(name); + } + for (const fileName of fileNames) { + const tableName = fileName.replace('.json', ''); try { + // 1. 优先:持久化 schema + const schemaRaw = await this.getMeta(`schema_${tableName}`); + if (schemaRaw) { + const schema = JSON.parse(schemaRaw); + await this.memoryCache.createTable(schema); + const rows = await this.readTableData(tableName); + for (const row of rows) { + try { + await this.memoryCache.insert(tableName, [row]); + } + catch { + // 单行损坏不影响整表恢复 + } + } + continue; + } + // 2. 兼容旧库:从数据推断 schema(空表且无 schema 记录 → 跳过) const data = await this.readTableData(tableName); - // 从数据中推断 schema(简化:从第一行提取列信息) if (data.length > 0) { const firstRow = data[0]; const columns = {}; @@ -2384,18 +2885,27 @@ if (blockIdx < 0) return null; const entry = this.indexEntries[blockIdx]; - const blockData = new Uint8Array(this.data.buffer, this.data.byteOffset + entry.blockOffset, entry.blockSize); + const blockData = this.getBlockData(entry); + // v0.4.2-fix: 残缺文件(meta 偏移超出实际长度)跳过该块,而非抛 RangeError + if (!blockData) + return null; const blockView = new DataView(blockData.buffer, blockData.byteOffset, blockData.byteLength); const entryCount = blockView.getUint32(0, false); let offset = 4; // 顺序扫描 block 内的条目(生产中应二分查找) for (let i = 0; i < entryCount; i++) { + if (offset + 2 > blockData.byteLength) + break; const keyLen = blockView.getUint16(offset, false); offset += 2; + if (offset + keyLen + 2 > blockData.byteLength) + break; const key = new TextDecoder().decode(blockData.slice(offset, offset + keyLen)); offset += keyLen; const valLen = blockView.getUint16(offset, false); offset += 2; + if (offset + valLen > blockData.byteLength) + break; const valBytes = blockData.slice(offset, offset + valLen); offset += valLen; if (key === targetKey) { @@ -2419,17 +2929,26 @@ return; for (let bi = startBlockIdx; bi <= endBlockIdx && bi >= 0; bi++) { const entry = this.indexEntries[bi]; - const blockData = new Uint8Array(this.data.buffer, this.data.byteOffset + entry.blockOffset, entry.blockSize); + const blockData = this.getBlockData(entry); + // v0.4.2-fix: 残缺块跳过(rangeScan 继续后续块,不抛异常) + if (!blockData) + continue; const blockView = new DataView(blockData.buffer, blockData.byteOffset, blockData.byteLength); const blockEntryCount = blockView.getUint32(0, false); let offset = 4; for (let i = 0; i < blockEntryCount; i++) { + if (offset + 2 > blockData.byteLength) + break; const keyLen = blockView.getUint16(offset, false); offset += 2; + if (offset + keyLen + 2 > blockData.byteLength) + break; const key = new TextDecoder().decode(blockData.slice(offset, offset + keyLen)); offset += keyLen; const valLen = blockView.getUint16(offset, false); offset += 2; + if (offset + valLen > blockData.byteLength) + break; const valBytes = blockData.slice(offset, offset + valLen); offset += valLen; if (key >= startKey && key <= endKey) { @@ -2447,17 +2966,26 @@ /** 扫描所有条目 */ scanAll(callback) { for (const entry of this.indexEntries) { - const blockData = new Uint8Array(this.data.buffer, this.data.byteOffset + entry.blockOffset, entry.blockSize); + const blockData = this.getBlockData(entry); + // v0.4.2-fix: 残缺块跳过(scanAll 继续后续块,不抛异常) + if (!blockData) + continue; const blockView = new DataView(blockData.buffer, blockData.byteOffset, blockData.byteLength); const blockEntryCount = blockView.getUint32(0, false); let offset = 4; for (let i = 0; i < blockEntryCount; i++) { + if (offset + 2 > blockData.byteLength) + break; const keyLen = blockView.getUint16(offset, false); offset += 2; + if (offset + keyLen + 2 > blockData.byteLength) + break; const key = new TextDecoder().decode(blockData.slice(offset, offset + keyLen)); offset += keyLen; const valLen = blockView.getUint16(offset, false); offset += 2; + if (offset + valLen > blockData.byteLength) + break; const valBytes = blockData.slice(offset, offset + valLen); offset += valLen; try { @@ -2497,6 +3025,10 @@ const bloomSize = this.view.getUint32(footerOffset + 12, false); const bloomHashCount = this.view.getUint32(footerOffset + 16, false); this.entryCount = this.view.getUint32(footerOffset + 20, false); + // v0.4.2-fix: 完整性校验 — 索引块必须完全落在文件内,否则视为残缺文件跳过 + if (indexOffset + 4 > this.data.byteLength || indexOffset + indexSize > this.data.byteLength) { + return; // 残缺文件:无索引块可读,get/rangeScan 均返回空 + } // 解析索引块 this.parseIndexBlock(indexOffset, indexSize); // 加载 Bloom Filter @@ -2514,17 +3046,37 @@ const entryCount = this.view.getUint32(offset, false); offset += 4; for (let i = 0; i < entryCount; i++) { + // v0.4.2-fix: 索引条目越界(keyLen/blockOffset/blockSize 超过文件长度)时中止解析, + // 已解析的有效条目仍可用于查询 + if (offset + 2 > this.data.byteLength) + break; const keyLen = this.view.getUint16(offset, false); offset += 2; + if (offset + keyLen + 8 > this.data.byteLength) + break; const key = new TextDecoder().decode(this.data.slice(offset, offset + keyLen)); offset += keyLen; const blockOffset = this.view.getUint32(offset, false); offset += 4; const blockSize = this.view.getUint32(offset, false); offset += 4; + // 跳过指向文件外的块(残缺写入产物),不抛异常 + if (blockSize === 0 || blockOffset + blockSize > this.data.byteLength) + continue; this.indexEntries.push({ key, blockOffset, blockSize }); } } + /** + * v0.4.2-fix: 获取索引条目对应的数据块。 + * 块偏移/大小越界(残缺 SSTable)时返回 null,由调用方跳过而非抛 RangeError。 + */ + getBlockData(entry) { + if (entry.blockSize <= 0 || entry.blockOffset < 0) + return null; + if (entry.blockOffset + entry.blockSize > this.data.byteLength) + return null; + return new Uint8Array(this.data.buffer, this.data.byteOffset + entry.blockOffset, entry.blockSize); + } /** 二分查找某 key 所在的 block 索引 */ locateBlock(key) { let lo = 0; @@ -2724,7 +3276,8 @@ this.compacting = false; // 防止重复触发 compaction /** 串行化 flush/compaction 链:保证持久化顺序与 id 分配顺序一致 */ this.flushChain = Promise.resolve(); - this.memtable = new MemTable(config.memtableSizeThreshold ?? DEFAULT_MEMTABLE_SIZE); + this.memtableSizeThreshold = config.memtableSizeThreshold ?? DEFAULT_MEMTABLE_SIZE; + this.memtable = new MemTable(this.memtableSizeThreshold); this.levelSizeMultiplier = config.levelSizeMultiplier ?? DEFAULT_LEVEL_SIZE_MULTIPLIER; this.blockSize = config.blockSize ?? 4096; this.sstableStore = config.sstableStore; @@ -2740,8 +3293,16 @@ if (this.initialized) return; const metas = await this.sstableStore.listMeta(); - // 按层级分组 + // v0.4.2-fix: 打开时完整性校验 — 验证每个 meta 引用的文件存在、可解析, + // 残缺/损坏的 SSTable 忽略并清理 meta,避免后续读取抛 RangeError 崩溃 + const validMetas = []; for (const meta of metas) { + if (await this.validateSSTable(meta)) { + validMetas.push(meta); + } + } + // 按层级分组 + for (const meta of validMetas) { if (meta.level >= 0 && meta.level < MAX_LSM_LEVELS) { this.levels[meta.level].push(meta); } @@ -2793,15 +3354,29 @@ * 冻结当前 MemTable 为 immutable,并在串行链上排队异步刷盘。 * 冻结的 MemTable 通过闭包捕获,避免链中前一个 flush 错误处理后续冻结的表。 * 所有 pending frozen 记录在 frozenMemtables 中,flush 完成前读取路径仍可访问。 + * + * v0.4.2-fix: 链上任务失败时吞错恢复链(否则 flushChain 永久 rejected, + * 后续所有 flush/compaction 挂起,写路径卡死)。 */ freezeMemtable() { if (this.immutableMemtable) { const frozen = this.immutableMemtable; - this.flushChain = this.flushChain.then(() => this.flushImmutableAsync(frozen)); + this.flushChain = this.enqueueOnChain(() => this.flushImmutableAsync(frozen)); } this.immutableMemtable = this.memtable; this.frozenMemtables.push(this.immutableMemtable); - this.memtable = new MemTable(this.memtable.getEstimatedSize()); + // v0.4.2-fix: 新 memtable 用配置阈值(此前传旧表已用大小 → 阈值逐次衰减 → 频繁小文件 flush) + this.memtable = new MemTable(this.memtableSizeThreshold); + } + /** v0.4.2-fix: 在串行链上排队任务;任务失败吞错并记录,保证链不被单次失败卡死 */ + enqueueOnChain(task) { + return this.flushChain + .then(task) + .catch((error) => { + // eslint-disable-next-line no-console + console.warn('[AriaEngine LSM] background flush/compaction failed:', error); + // catch 返回 undefined → 链恢复为 resolved,后续任务继续 + }); } /** 将指定 Immutable MemTable 刷盘为 SSTable(id 由 store 按命名空间分配) */ async flushImmutableAsync(frozen) { @@ -2849,7 +3424,7 @@ this.compacting = true; setTimeout(() => { try { - this.flushChain = this.flushChain.then(() => this.compactLevelAsync(level)); + this.flushChain = this.enqueueOnChain(() => this.compactLevelAsync(level)); } finally { this.compacting = false; @@ -2876,6 +3451,10 @@ finally { this.compacting = false; } + }).catch((error) => { + this.compacting = false; + // eslint-disable-next-line no-console + console.warn('[AriaEngine LSM] background compaction failed:', error); }); } // ======================================================================= @@ -3010,29 +3589,64 @@ // ======================================================================= // Compaction // ======================================================================= - /** 执行 Compaction(public,供 VACUUM 等外部调用) */ + /** 执行 Compaction(public,供 VACUUM 等外部调用;VACUUM 期望 2 个文件即可压缩) */ async compactLevel(level) { - await this.compactLevelAsync(level); + await this.compactLevelAsync(level, 2); } - /** 串行执行 Compaction(简化版,内部实现) */ - async compactLevelAsync(level) { + /** + * 串行执行 Compaction。 + * @param minFiles 触发压缩的文件数门槛(自动调度用 4,VACUUM 用 2) + * + * v0.4.2-fix: 读取从存储兜底(不依赖缓存)——此前仅从缓存读, + * 缓存未命中(LRU 驱逐/单文件超缓存上限)时跳过全部文件并从 levels 移除, + * 运行中数据全部不可见。 + */ + async compactLevelAsync(level, minFiles = 4) { if (level >= MAX_LSM_LEVELS - 1) return; - if (this.levels[level].length < 4) + if (this.levels[level].length < minFiles) return; const sstables = this.levels[level].splice(0, this.levels[level].length); const mergeIter = new MergeIterator(); + const loadedMetas = []; for (const meta of sstables) { - const reader = this.loadSSTableReader(meta); - if (!reader) + // 优先缓存,未命中则从存储加载(残缺文件经校验清理,跳过) + let data = this.sstableCache.get(meta.id) ?? null; + if (!data) { + try { + data = await this.sstableStore.load(meta.id); + } + catch { + data = null; + } + } + if (!data || data.byteLength < 32) { + await this.dropInvalidSSTable(meta); continue; + } + let reader; + try { + reader = new SSTableReader(data, meta); + } + catch { + await this.dropInvalidSSTable(meta); + continue; + } const entries = []; reader.scanAll((k, v) => entries.push([k, v])); mergeIter.addSource(new ArrayEntrySource(entries)); + loadedMetas.push(meta); } const merged = mergeIter.drain(); - if (merged.length === 0) + if (merged.length === 0) { + // 没有有效数据(全部损坏):把有效 meta 放回 levels, + // 避免文件从读取路径消失(数据仍在磁盘,重启可恢复) + for (const meta of loadedMetas) { + this.levels[level].push(meta); + } + this.levels[level].sort((a, b) => b.id - a.id); return; + } const id = await this.sstableStore.allocateId(); const builder = new SSTableBuilder(this.blockSize); for (const [key, value] of merged) { @@ -3108,6 +3722,71 @@ // ======================================================================= // 内部 // ======================================================================= + /** + * v0.4.2-fix: 重新校验全部已加载 SSTable,移除损坏项(repair 自愈用)。 + * @returns 移除的损坏 SSTable 数量 + */ + async validateAll() { + let removed = 0; + for (let level = 0; level < MAX_LSM_LEVELS; level++) { + const valid = []; + for (const meta of this.levels[level]) { + if (await this.validateSSTable(meta)) { + valid.push(meta); + } + else { + this.sstableCache.delete(meta.id); + removed++; + } + } + this.levels[level] = valid; + } + return removed; + } + /** + * v0.4.2-fix: 校验单个 SSTable 的完整性。 + * - 文件不存在 → 清理 meta,返回 false + * - 文件过小/魔数错误/索引越界(残缺写入产物)→ 清理 meta,返回 false + * 校验通过的数据不缓存(保持内存预算),读路径按需预加载。 + */ + async validateSSTable(meta) { + try { + const data = await this.sstableStore.load(meta.id); + if (!data) { + this.dropInvalidSSTable(meta); + return false; + } + if (data.byteLength < 32) { + this.dropInvalidSSTable(meta); + return false; + } + try { + new SSTableReader(data, meta); + } + catch { + this.dropInvalidSSTable(meta); + return false; + } + return true; + } + catch { + this.dropInvalidSSTable(meta); + return false; + } + } + /** 清理无效 SSTable 的 meta 与文件(打开自愈路径) */ + async dropInvalidSSTable(meta) { + // eslint-disable-next-line no-console + console.warn(`[AriaEngine LSM] Skipping corrupted SSTable id=${meta.id} (level=${meta.level})`); + try { + await this.sstableStore.deleteMeta(meta.id); + } + catch { /* 清理失败不阻塞打开 */ } + try { + await this.sstableStore.delete(meta.id); + } + catch { /* 清理失败不阻塞打开 */ } + } unwrapTombstone(value) { if (!value) return null; @@ -3564,6 +4243,25 @@ tx.onerror = () => reject(new DatabaseError('Failed to write to AriaEngine store', 'ARIA_WRITE_ERROR')); }); } + /** + * v0.4.2-fix: 批量原子写入 — 单个 IDB 事务内写入多个 key。 + * 中断时事务整体回滚,WAL 记录与 count 计数不会出现"记录在、计数丢"或反之的半写状态。 + */ + async writeMany(entries) { + const keys = Object.keys(entries); + if (keys.length === 0) + return; + const db = this.ensureDB(); + return new Promise((resolve, reject) => { + const tx = db.transaction(this.storeName, 'readwrite'); + const store = tx.objectStore(this.storeName); + for (const key of keys) { + store.put(entries[key], key); + } + tx.oncomplete = () => resolve(); + tx.onerror = () => reject(new DatabaseError('Failed to batch write to AriaEngine store', 'ARIA_WRITE_ERROR')); + }); + } async delete(key) { const db = this.ensureDB(); return new Promise((resolve, reject) => { @@ -3573,6 +4271,21 @@ tx.onerror = () => reject(new DatabaseError('Failed to delete from AriaEngine store', 'ARIA_DELETE_ERROR')); }); } + /** v0.4.2-fix: 批量原子删除 — 单个 IDB 事务内删除多个 key */ + async deleteMany(keys) { + if (keys.length === 0) + return; + const db = this.ensureDB(); + return new Promise((resolve, reject) => { + const tx = db.transaction(this.storeName, 'readwrite'); + const store = tx.objectStore(this.storeName); + for (const key of keys) { + store.delete(key); + } + tx.oncomplete = () => resolve(); + tx.onerror = () => reject(new DatabaseError('Failed to batch delete from AriaEngine store', 'ARIA_DELETE_ERROR')); + }); + } async listKeys() { const db = this.ensureDB(); return new Promise((resolve, reject) => { @@ -3625,9 +4338,19 @@ async write(key, data) { this.store.set(key, data); } + async writeMany(entries) { + for (const [key, data] of Object.entries(entries)) { + this.store.set(key, data); + } + } async delete(key) { this.store.delete(key); } + async deleteMany(keys) { + for (const key of keys) { + this.store.delete(key); + } + } async listKeys() { return Array.from(this.store.keys()); } @@ -3681,6 +4404,20 @@ }); return this.writeQueue; } + /** v0.4.2-fix: 批量写入 — 串行队列内逐个落盘(OPFS 无跨文件事务,顺序保证一致) */ + async writeMany(entries) { + if (!this.dbDir) + return; + this.writeQueue = this.writeQueue.then(async () => { + for (const [key, data] of Object.entries(entries)) { + const fh = await this.dbDir.getFileHandle(key, { create: true }); + const writable = await fh.createWritable(); + await writable.write(data); + await writable.close(); + } + }); + return this.writeQueue; + } async delete(key) { if (!this.dbDir) return; @@ -3692,6 +4429,20 @@ }); return this.writeQueue; } + /** v0.4.2-fix: 批量删除 — 串行队列内逐个删除 */ + async deleteMany(keys) { + if (!this.dbDir) + return; + this.writeQueue = this.writeQueue.then(async () => { + for (const key of keys) { + try { + await this.dbDir.removeEntry(key); + } + catch { /* ignore */ } + } + }); + return this.writeQueue; + } async listKeys() { if (!this.dbDir) return []; @@ -3855,6 +4606,11 @@ this.nextTxnId = 1; /** 全局提交序列号(用于可见性判断) */ this.globalCommitLsn = 0; + /** + * v0.4.2-fix: 每个事务写入的 tableKey 集合 — + * commit/rollback 只遍历本事务写过的 key,避免全库版本链扫描(大表事务 O(N) → O(写入数)) + */ + this.txnWriteKeys = new Map(); } // ======================================================================= // 事务管理 @@ -3868,6 +4624,7 @@ snapshotLsn: this.globalCommitLsn, startTime: Date.now(), }); + this.txnWriteKeys.set(txnId, new Set()); return txnId; } /** 提交事务 */ @@ -3877,16 +4634,23 @@ throw new Error(`Transaction ${txnId} not found`); txn.state = TransactionState.COMMITTED; this.globalCommitLsn++; - // 标记此事务写入的所有版本为已提交 - for (const [, versions] of this.versionStore) { - for (const version of versions) { - if (version.txnId === txnId) { - version.committed = true; + // v0.4.2-fix: 仅标记本事务写入的版本(此前遍历全库 versionStore) + const writeKeys = this.txnWriteKeys.get(txnId); + if (writeKeys) { + for (const tableKey of writeKeys) { + const versions = this.versionStore.get(tableKey); + if (!versions) + continue; + for (const version of versions) { + if (version.txnId === txnId) { + version.committed = true; + } } } } // 清理已提交事务的记录 this.activeTxns.delete(txnId); + this.txnWriteKeys.delete(txnId); } /** 回滚事务 */ rollbackTransaction(txnId) { @@ -3894,17 +4658,24 @@ if (!txn) throw new Error(`Transaction ${txnId} not found`); txn.state = TransactionState.ABORTED; - // 移除此事务写入的所有版本 - for (const [tableKey, versions] of this.versionStore) { - const filtered = versions.filter((v) => v.txnId !== txnId); - if (filtered.length === 0) { - this.versionStore.delete(tableKey); - } - else { - this.versionStore.set(tableKey, filtered); + // v0.4.2-fix: 仅移除本事务写入的版本(此前遍历全库 versionStore) + const writeKeys = this.txnWriteKeys.get(txnId); + if (writeKeys) { + for (const tableKey of writeKeys) { + const versions = this.versionStore.get(tableKey); + if (!versions) + continue; + const filtered = versions.filter((v) => v.txnId !== txnId); + if (filtered.length === 0) { + this.versionStore.delete(tableKey); + } + else { + this.versionStore.set(tableKey, filtered); + } } } this.activeTxns.delete(txnId); + this.txnWriteKeys.delete(txnId); } /** 检查事务是否活跃 */ isActive(txnId) { @@ -3928,6 +4699,8 @@ }; versions.push(newVersion); this.versionStore.set(tableKey, versions); + // v0.4.2-fix: 记录本事务写过的 key(commit/rollback 精准清理) + this.txnWriteKeys.get(txnId)?.add(tableKey); } /** * 读取一行(对指定事务可见的最新版本)。 @@ -3984,9 +4757,16 @@ /** * v0.3.3: 丢弃指定事务的所有版本记录,但保留事务登记(Savepoint 回滚用)。 * 快照数据由调用方(引擎 txnSnapshot)负责恢复。 + * v0.4.2-fix: 仅遍历本事务写过的 key(此前全库扫描)。 */ discardVersions(txnId) { - for (const [tableKey, versions] of this.versionStore) { + const writeKeys = this.txnWriteKeys.get(txnId); + if (!writeKeys) + return; + for (const tableKey of writeKeys) { + const versions = this.versionStore.get(tableKey); + if (!versions) + continue; const filtered = versions.filter((v) => v.txnId !== txnId); if (filtered.length === 0) { this.versionStore.delete(tableKey); @@ -4599,6 +5379,19 @@ async open(dbName, _version) { if (this.opened) return; + // v0.4.2-fix: 引擎内部错误统一包装为 DatabaseError(ARIA_OPEN_ERROR), + // 应用层可拿到 code 分类处理,不再抛出原生 RangeError/TypeError + try { + await this.openInternal(dbName); + } + catch (error) { + if (error instanceof DatabaseError) + throw error; + throw new DatabaseError(`Failed to open AriaEngine database "${dbName}"`, 'ARIA_OPEN_ERROR', error); + } + } + /** open 内部实现(错误包装在 open 外层) */ + async openInternal(dbName) { this.dbName = dbName; // 1. 存储后端 if (this.config.storageBackend === 'opfs') { @@ -4630,21 +5423,31 @@ // 4. 初始化 WAL this.wal = new WAL({ append: async (data) => { - // Store each record as a separate numbered key + // v0.4.2-fix: 记录写入与 count 计数在同一底层事务中原子提交, + // 中断时整体回滚,杜绝"记录在、计数丢"导致恢复漏读的丢数据问题 const idx = await this.getWALCount(); const slice = new Uint8Array(data.buffer, data.byteOffset, data.byteLength); const copy = slice.buffer.slice(slice.byteOffset, slice.byteOffset + slice.byteLength); - await this.backend.write(`__wal_${idx}`, copy); - await this.setWALCount(idx + 1); + await this.backend.writeMany({ + [`__wal_${idx}`]: copy, + __wal_count: new TextEncoder().encode(String(idx + 1)).buffer, + }); }, readAll: async () => { - const count = await this.getWALCount(); - if (count === 0) + // v0.4.2-fix: 不依赖 count 计数,直接扫描全部 __wal_* 键, + // 避免 count 与实际记录不一致时漏读(与 checkpoint/并发写入竞态无关) + const keys = (await this.backend.listKeys()) + .filter((k) => k.startsWith('__wal_') && k !== '__wal_count') + .sort((a, b) => { + const na = parseInt(a.slice('__wal_'.length), 10); + const nb = parseInt(b.slice('__wal_'.length), 10); + return (isNaN(na) ? 0 : na) - (isNaN(nb) ? 0 : nb); + }); + if (keys.length === 0) return new Uint8Array(0); - // Read all records and concatenate const chunks = []; - for (let i = 0; i < count; i++) { - const d = await this.backend.read(`__wal_${i}`); + for (const key of keys) { + const d = await this.backend.read(key); if (d) chunks.push(new Uint8Array(d)); } @@ -4658,19 +5461,45 @@ return combined; }, truncate: async () => { - const count = await this.getWALCount(); - for (let i = 0; i < count; i++) { - await this.backend.delete(`__wal_${i}`); - } + // v0.4.2-fix: 扫描删除全部 WAL 记录键 + count 键(单事务原子清理) + const keys = (await this.backend.listKeys()) + .filter((k) => k.startsWith('__wal_')); + await this.backend.deleteMany(keys); await this.setWALCount(0); }, exists: async () => { - const count = await this.getWALCount(); - return count > 0; + // v0.4.2-fix: 与 readAll 一致按 key 扫描判断(count 可能因崩溃截断而滞后) + const keys = (await this.backend.listKeys()) + .filter((k) => k.startsWith('__wal_') && k !== '__wal_count'); + return keys.length > 0; }, }, this.config.walEnabled, this.config.walSyncMode); // 5. 恢复 Schema await this.loadSchemas(); + // v0.4.2-fix: 为 schema 中带 index/unique 标记的列重建二级索引 LSM。 + // 此前重开只恢复 schema 不恢复索引 LSM → 索引查询静默回退全表、 + // createIndex 因 colDef 已有标记直接 return → 索引永久缺失。 + // 索引数据已持久化在独立命名空间(sst_idx_* / meta),init() 直接加载。 + for (const [tableName, schema] of this.schemas) { + const pkCol = this.tablePKs.get(tableName); + for (const [colName, colDef] of Object.entries(schema.columns)) { + if ((colDef.index || colDef.unique) && colName !== pkCol) { + const idxKey = `${tableName}:idx:${colName}`; + if (!this.secondaryIndexes.has(idxKey)) { + const idxLsm = new LSM({ + memtableSizeThreshold: this.config.memtableSizeThreshold, + levelSizeMultiplier: this.config.levelSizeMultiplier, + blockSize: this.config.pageSize, + bloomBitsPerKey: this.config.bloomFilterBitsPerKey, + cacheLimitBytes: this.config.bufferPoolPages * this.config.pageSize, + sstableStore: this.createSSTableStore(`idx_${tableName}_${colName}`), + }); + await idxLsm.init(); + this.secondaryIndexes.set(idxKey, idxLsm); + } + } + } + } // 6. 初始化 LSM(加载 SSTable 元数据) await this.lsm.init(); // 7. WAL 恢复(两阶段:先扫描事务边界,仅回放已提交事务) @@ -4701,9 +5530,30 @@ if (allRecords.length > 0) { await this.lsm.flush(); await this.wal.checkpoint(); + // v0.4.2-fix: WAL 回放只更新主 LSM,二级索引 LSM 未同步 → + // 崩溃前最后一批写入的索引缺失,重开时索引查询丢行。 + // 恢复后全量重建所有表的二级索引(幂等)。 + for (const tableName of this.schemas.keys()) { + await this.reindexTableInternal(tableName); + } } // 8. Checkpoint Manager(接入 WAL 大小阈值) - this.checkpointManager = new CheckpointManager(this.lsm, this.wal, { flushAll: async () => { await this.lsm.flush(); } }, this.config.checkpointInterval, this.config.walSizeThreshold); + // v0.4.2-fix: 事务活跃时 checkpoint 不得截断 WAL — + // 否则 BEGIN/INSERT 记录被截断,COMMIT 后崩溃恢复丢失整个事务数据 + this.checkpointManager = new CheckpointManager(this.lsm, { + checkpoint: async () => { + if (this.currentTxnId) + return; + await this.wal.checkpoint(); + }, + flush: async () => { + if (this.currentTxnId) + return; + await this.wal.flush(); + }, + getBufferedBytes: () => this.wal.getBufferedBytes(), + getBufferedCount: () => this.wal.getBufferedCount(), + }, { flushAll: async () => { await this.lsm.flush(); } }, this.config.checkpointInterval, this.config.walSizeThreshold); this.opened = true; } async close() { @@ -4711,11 +5561,49 @@ return; await this.persistSchemas(); await this.lsm.flush(); + // v0.4.2-fix: 同步落盘全部二级索引 LSM — 此前只 flush 主 LSM, + // 优雅关闭后索引 memtable 未落盘 → 重开索引为空 → 索引查询返回空结果 + for (const idxLsm of this.secondaryIndexes.values()) { + await idxLsm.flush(); + } await this.wal.flush(); + // v0.4.2-fix: close 前 checkpoint(截断 WAL)— + // 此前只 flush 不截断,下次打开会重放全部历史 WAL 记录(含已落盘 SSTable 的数据), + // 重复解析/重复 put 拖慢启动,并与恢复后 flush+checkpoint 竞争放大丢数据 + await this.wal.checkpoint(); await this.backend.close(); + // v0.4.2-fix: 清空运行期状态(此前 close 后 mvcc/txn 残留, + // 重开时 beginTransaction 报 TX_ACTIVE 或读到陈旧快照) this.schemas.clear(); + this.tablePKs.clear(); + this.secondaryIndexes.clear(); + this.mvcc = new MVCCManager(); + this.currentTxnId = null; + this.txnSnapshot = null; + this.savepoints.clear(); + this.opCounter = 0; this.opened = false; } + /** + * v0.4.2-fix: 崩溃恢复/自愈 — 校验并移除损坏 SSTable、截断 WAL、重建二级索引。 + * 应用层检测到异常后调用,无需删库重建。 + */ + async repair() { + this.ensureOpen(); + // 1. 校验全部 SSTable,移除残缺项(打开时已做一次,此处兜底运行期损坏) + const removed = await this.lsm.validateAll(); + // 2. 将 WAL 残留数据落盘并截断,避免无限重放 + await this.lsm.flush(); + await this.wal.checkpoint(); + // 3. 重建所有表的二级索引(修复索引与主数据不一致) + for (const tableName of this.schemas.keys()) { + await this.reindexTable(tableName); + } + if (removed > 0) { + // eslint-disable-next-line no-console + console.warn(`[AriaEngine] repair: removed ${removed} corrupted SSTable(s)`); + } + } /** * v0.4.1: 重置数据库 — 清空全部数据与表结构(演示页刷新/重新初始化用)。 * 清空存储后端、LSM、WAL、MVCC 与二级索引,后续可继续使用本实例。 @@ -4739,11 +5627,22 @@ await this.wal.checkpoint(); } isOpen() { return this.opened; } + // ---- v0.4.2-fix: 库内元数据(迁移版本持久化用) ---- + async getMeta(key) { + const raw = await this.backend.read(`__meta_${key}`); + return raw ? new TextDecoder().decode(raw) : null; + } + async setMeta(key, value) { + await this.backend.write(`__meta_${key}`, new TextEncoder().encode(value).buffer); + } // ======================================================================= // 表管理 // ======================================================================= async createTable(schema) { this.ensureOpen(); + // v0.4.2-fix: Aria 事务中 DDL 显式拒绝(事务快照只覆盖行数据, + // 结构变更无法回滚;Memory/IndexedDB 引擎快照可回滚,行为不一致 → 明确报错而非静默) + this.ensureNoDDLInTransaction('CREATE TABLE'); if (this.schemas.has(schema.name)) { throw new DatabaseError(`Table "${schema.name}" already exists`, 'TABLE_EXISTS'); } @@ -4779,6 +5678,7 @@ } async dropTable(tableName) { this.ensureOpen(); + this.ensureNoDDLInTransaction('DROP TABLE'); this.ensureTable(tableName); // 删除表中所有行 const rows = await this.getAllRows(tableName); @@ -4786,6 +5686,9 @@ const pkCol = this.tablePKs.get(tableName); this.lsm.delete(`${tableName}:${row[pkCol]}`); } + // v0.4.2-fix: 清理该表的全部二级索引 LSM 与持久化文件 — + // 此前残留孤儿索引,重建同名表后旧索引数据污染新表(索引查询返回错误行) + await this.cleanupTableIndexes(tableName); this.schemas.delete(tableName); this.tablePKs.delete(tableName); await this.persistSchemas(); @@ -4796,6 +5699,26 @@ key: '', }); } + /** + * v0.4.2-fix: 清理指定表的全部二级索引 LSM(内存 + 存储文件 + meta)。 + * dropTable / DROP_TABLE 恢复 / alterTable DROP 索引列 共用。 + */ + async cleanupTableIndexes(tableName) { + const prefix = `${tableName}:idx:`; + const toDelete = []; + for (const [idxKey, idxLsm] of this.secondaryIndexes) { + if (!idxKey.startsWith(prefix)) + continue; + toDelete.push(idxKey); + try { + await idxLsm.clear(); + } + catch { /* 清理失败不阻塞 */ } + } + for (const idxKey of toDelete) { + this.secondaryIndexes.delete(idxKey); + } + } async hasTable(tableName) { return this.schemas.has(tableName); } @@ -4897,29 +5820,52 @@ let count = 0; // v0.3.1: 批量 WAL 写入(组提交) const walRecords = []; + // v0.4.2-fix: ON UPDATE 级联环路保护 + const visited = new Set(); for (const row of rows) { const pkCol = this.tablePKs.get(tableName); const key = `${tableName}:${row[pkCol]}`; if (!query.where || Object.keys(query.where).length === 0 || matchWhere(row, query.where)) { const updated = { ...row, ...updates }; this.validateRow(schema, updated); + // v0.4.2-fix: 支持更新主键 — 删除旧键 + 落新键 + WAL 两条记录 + const newPk = String(updated[pkCol]); + const pkChanged = newPk !== String(row[pkCol]); + if (pkChanged) { + // ON UPDATE 外键级联(RESTRICT 抛错 / CASCADE / SET NULL) + await this.applyForeignKeyUpdateRules(tableName, String(row[pkCol]), newPk, walRecords, visited); + } if (this.currentTxnId && this.txnSnapshot) { - this.txnSnapshot.set(key, updated); - this.mvcc.writeVersion(tableName, String(row[pkCol]), updated, this.currentTxnId); + if (pkChanged) { + this.txnSnapshot.set(key, { __txn_deleted: true }); + this.mvcc.deleteVersion(tableName, String(row[pkCol]), this.currentTxnId); + } + this.txnSnapshot.set(`${tableName}:${newPk}`, updated); + this.mvcc.writeVersion(tableName, newPk, updated, this.currentTxnId); } else { - this.lsm.put(key, updated); + if (pkChanged) + this.lsm.delete(key); + this.lsm.put(`${tableName}:${newPk}`, updated); } count++; + if (pkChanged) { + walRecords.push({ + type: WALRecordType.DELETE, + txnId: this.currentTxnId ?? 0, + tableName, + key: String(row[pkCol]), + }); + } walRecords.push({ type: WALRecordType.UPDATE, txnId: this.currentTxnId ?? 0, tableName, - key: String(row[pkCol]), + key: newPk, data: updated, }); - // 更新二级索引 - this.updateSecondaryIndexes(tableName, String(row[pkCol]), updated, row); + // 更新二级索引(主键变更时旧索引条目一并清理) + this.updateSecondaryIndexes(tableName, newPk, updated, pkChanged ? row : null); } } await this.wal.appendBatch(walRecords); @@ -4928,6 +5874,73 @@ this.trimAllCaches(); return count; } + /** + * v0.4.2-fix: ON UPDATE 外键级联 — 主键 oldPk → newPk 时处理引用表。 + * RESTRICT 抛错 / CASCADE 更新 FK / SET NULL 置空(含索引与 WAL 记录)。 + * 两阶段:先全量 RESTRICT 检查,再执行级联。 + */ + async applyForeignKeyUpdateRules(tableName, oldPk, newPk, walRecords, visited) { + const visitKey = `${tableName}:${oldPk}`; + if (visited.has(visitKey)) + return; + visited.add(visitKey); + // 阶段 1: RESTRICT 检查 + for (const [refTableName, refSchema] of this.schemas) { + if (refTableName === tableName) + continue; + for (const [colName, colDef] of Object.entries(refSchema.columns)) { + if (!colDef.references || !colDef.onUpdate) + continue; + const [refTable] = colDef.references.split('.'); + if (refTable !== tableName) + continue; + if (colDef.onUpdate !== 'RESTRICT') + continue; + const refRows = await this.getAllRows(refTableName); + if (refRows.some((r) => String(r[colName]) === oldPk)) { + throw new DatabaseError(`Cannot update "${tableName}" key "${oldPk}": foreign key "${colName}" in "${refTableName}" has dependent rows`, 'FOREIGN_KEY_VIOLATION'); + } + } + } + // 阶段 2: CASCADE / SET NULL + for (const [refTableName, refSchema] of this.schemas) { + if (refTableName === tableName) + continue; + for (const [colName, colDef] of Object.entries(refSchema.columns)) { + if (!colDef.references || !colDef.onUpdate) + continue; + const [refTable] = colDef.references.split('.'); + if (refTable !== tableName) + continue; + if (colDef.onUpdate !== 'CASCADE' && colDef.onUpdate !== 'SET NULL') + continue; + const refRows = await this.getAllRows(refTableName); + for (const refRow of refRows) { + if (String(refRow[colName]) !== oldPk) + continue; + const refPkCol = this.tablePKs.get(refTableName); + const refPk = String(refRow[refPkCol]); + const updatedRef = { ...refRow, [colName]: colDef.onUpdate === 'CASCADE' ? newPk : null }; + const refKey = `${refTableName}:${refPk}`; + if (this.currentTxnId && this.txnSnapshot) { + this.txnSnapshot.set(refKey, updatedRef); + this.mvcc.writeVersion(refTableName, refPk, updatedRef, this.currentTxnId); + } + else { + this.lsm.put(refKey, updatedRef); + } + this.updateSecondaryIndexes(refTableName, refPk, updatedRef, refRow); + walRecords.push({ + type: WALRecordType.UPDATE, + txnId: this.currentTxnId ?? 0, + tableName: refTableName, + key: refPk, + data: updatedRef, + }); + } + } + } + } async delete(tableName, query) { this.ensureOpen(); this.ensureTable(tableName); @@ -5154,6 +6167,7 @@ */ async alterTable(tableName, action, column) { this.ensureOpen(); + this.ensureNoDDLInTransaction('ALTER TABLE'); this.ensureTable(tableName); const schema = this.schemas.get(tableName); if (action === 'ADD') { @@ -5168,10 +6182,21 @@ if (!schema.columns[column.name]) { throw new DatabaseError(`Column "${column.name}" does not exist in table "${tableName}"`, 'COLUMN_NOT_FOUND'); } + // v0.4.2-fix: 被删列是索引列 → 先清理索引 LSM(残留会导致后续同名列索引脏数据) + if (schema.columns[column.name].index || schema.columns[column.name].unique) { + const idxKey = `${tableName}:idx:${column.name}`; + const idxLsm = this.secondaryIndexes.get(idxKey); + if (idxLsm) { + try { + await idxLsm.clear(); + } + catch { /* 清理失败不阻塞 */ } + this.secondaryIndexes.delete(idxKey); + } + } delete schema.columns[column.name]; await this.persistSchemas(); // 重写主 LSM:移除所有行的该列键(find 副本无法就地删除,必须重写存储) - this.tablePKs.get(tableName); const prefix = `${tableName}:`; const endKey = `${prefix}\uffff`; await this.lsm.prefetchRange(prefix, endKey); @@ -5201,31 +6226,31 @@ } async createIndex(tableName, column, unique) { this.ensureOpen(); + this.ensureNoDDLInTransaction('CREATE INDEX'); this.ensureTable(tableName); const schema = this.schemas.get(tableName); const colDef = schema.columns[column]; if (!colDef) throw new DatabaseError(`Column "${column}" does not exist in table "${tableName}"`, 'COLUMN_NOT_FOUND'); - if (colDef.index || colDef.unique) - return; // 已存在 + const idxKey = `${tableName}:idx:${column}`; + // v0.4.2-fix: 以索引 LSM 是否已建为准(schema 标记可能因重启恢复而存在, + // 但索引 LSM 未恢复 → 此前静默 return 导致索引永久缺失) + if (this.secondaryIndexes.has(idxKey)) + return; colDef.index = true; if (unique) colDef.unique = true; - const idxKey = `${tableName}:idx:${column}`; - if (!this.secondaryIndexes.has(idxKey)) { - const idxLsm = new LSM({ - memtableSizeThreshold: this.config.memtableSizeThreshold, - levelSizeMultiplier: this.config.levelSizeMultiplier, - blockSize: this.config.pageSize, - bloomBitsPerKey: this.config.bloomFilterBitsPerKey, - cacheLimitBytes: this.config.bufferPoolPages * this.config.pageSize, - sstableStore: this.createSSTableStore(`idx_${tableName}_${column}`), - }); - await idxLsm.init(); - this.secondaryIndexes.set(idxKey, idxLsm); - } + const idxLsm = new LSM({ + memtableSizeThreshold: this.config.memtableSizeThreshold, + levelSizeMultiplier: this.config.levelSizeMultiplier, + blockSize: this.config.pageSize, + bloomBitsPerKey: this.config.bloomFilterBitsPerKey, + cacheLimitBytes: this.config.bufferPoolPages * this.config.pageSize, + sstableStore: this.createSSTableStore(`idx_${tableName}_${column}`), + }); + await idxLsm.init(); + this.secondaryIndexes.set(idxKey, idxLsm); // 从主 LSM 重建索引数据 - const idxLsm = this.secondaryIndexes.get(idxKey); const pkCol = this.tablePKs.get(tableName); const rows = await this.getAllRows(tableName); for (const row of rows) { @@ -5239,6 +6264,7 @@ } async dropIndex(tableName, column, _indexName) { this.ensureOpen(); + this.ensureNoDDLInTransaction('DROP INDEX'); this.ensureTable(tableName); const schema = this.schemas.get(tableName); const colDef = schema.columns[column]; @@ -5618,6 +6644,8 @@ async applyDropTableRecovery(tableName) { if (!tableName) return; + // v0.4.2-fix: 清理该表二级索引(崩溃恢复路径同样不留孤儿索引) + await this.cleanupTableIndexes(tableName); this.schemas.delete(tableName); this.tablePKs.delete(tableName); // 清除主 LSM 中该表前缀的所有数据(含 SSTable 中的旧数据) @@ -5861,7 +6889,13 @@ async reindexTable(tableName) { this.ensureOpen(); this.ensureTable(tableName); + return this.reindexTableInternal(tableName); + } + /** v0.4.2-fix: 重建索引内部实现(不校验 opened,供 open 恢复流程调用) */ + async reindexTableInternal(tableName) { const schema = this.schemas.get(tableName); + if (!schema) + return 0; let rebuiltCount = 0; for (const [colName, colDef] of Object.entries(schema.columns)) { // v0.3.3: 主键列不建冗余二级索引(主 LSM 即 PK 索引) @@ -5899,7 +6933,7 @@ } } // GC MVCC 版本(保留最新 10 个) - const beforeGC = this.mvcc.getActiveTxnCount?.() ?? 0; + const beforeGC = this.mvcc.getGlobalLSN(); this.mvcc.gc(10); return { compactedLevels: 6, gcVersions: beforeGC }; } @@ -5938,6 +6972,12 @@ if (!this.opened) throw new DatabaseError('AriaEngine not opened', 'DB_NOT_OPEN'); } + /** v0.4.2-fix: Aria 事务中 DDL 显式拒绝(结构变更无法通过行快照回滚) */ + ensureNoDDLInTransaction(op) { + if (this.currentTxnId) { + throw new DatabaseError(`${op} is not supported inside a transaction (AriaEngine DDL is not transactional)`, 'NOT_SUPPORTED'); + } + } ensureTable(tableName) { if (!this.schemas.has(tableName)) { throw new DatabaseError(`Table "${tableName}" does not exist`, 'TABLE_NOT_FOUND'); @@ -6030,6 +7070,46 @@ isOpen() { return this.memoryEngine.isOpen() && this.diskEngine.isOpen(); } + // ---- v0.4.2-fix: 自愈 / 重置 / 元数据(委托双引擎) ---- + /** 自愈:修复磁盘引擎后重载内存缓存 */ + async repair() { + if (typeof this.diskEngine.repair === 'function') { + await this.diskEngine.repair(); + } + await this.reloadMemoryFromDisk(); + } + /** 清空全部数据与表结构 */ + async clearAll() { + if (typeof this.diskEngine.clearAll === 'function') { + await this.diskEngine.clearAll(); + } + else { + const names = await this.diskEngine.getTableNames(); + for (const name of names) { + await this.diskEngine.dropTable(name); + } + } + if (typeof this.memoryEngine.clearAll === 'function') { + await this.memoryEngine.clearAll(); + } + else { + const names = await this.memoryEngine.getTableNames(); + for (const name of names) { + await this.memoryEngine.dropTable(name); + } + } + } + async getMeta(key) { + if (typeof this.diskEngine.getMeta === 'function') { + return this.diskEngine.getMeta(key); + } + return null; + } + async setMeta(key, value) { + if (typeof this.diskEngine.setMeta === 'function') { + await this.diskEngine.setMeta(key, value); + } + } // ---- 表管理 ---- async createTable(schema) { await this.memoryEngine.createTable(schema); @@ -6048,6 +7128,19 @@ async getTableSchema(tableName) { return this.memoryEngine.getTableSchema(tableName); } + /** v0.4.2-fix: 引擎级 ALTER TABLE — 双引擎同步(磁盘持久化 + 内存引用) */ + async alterTable(tableName, action, column) { + await this.memoryEngine.alterTable(tableName, action, column); + if (typeof this.diskEngine.alterTable === 'function') { + await this.diskEngine.alterTable(tableName, action, column); + } + else { + // 磁盘引擎无引擎级实现 → 从磁盘重建内存 schema(disk 引擎 schema 以自身为准) + const schema = await this.diskEngine.getTableSchema(tableName); + if (schema && action === 'DROP') + delete schema.columns[column.name]; + } + } // ---- CRUD(write-through 策略) ---- async insert(tableName, rows) { const pks = await this.memoryEngine.insert(tableName, rows); @@ -6106,10 +7199,10 @@ try { await this.memoryEngine.commitTransaction(); } - catch { - // 内存提交失败时回滚磁盘 - await this.diskEngine.rollbackTransaction(); - throw new DatabaseError('Hybrid commit failed: memory engine error after disk commit', 'TX_COMMIT_ERROR'); + catch (error) { + // v0.4.2-fix: 磁盘已提交无法回滚(此前调 diskEngine.rollbackTransaction() + // 会抛 TX_NONE 掩盖原错误)。如实上报内存提交失败,磁盘数据保持已提交状态。 + throw new DatabaseError('Hybrid commit failed: memory engine error after disk commit (disk data is committed)', 'TX_COMMIT_ERROR', error); } } async rollbackTransaction() { @@ -9364,6 +10457,17 @@ this.engine = this.createEngine(); // 打开连接 await this.engine.open(this.name, this.version); + // v0.4.2-fix (P2-7): 从库内加载持久化的迁移版本, + // 重启后 migrateTo 从持久化版本继续执行,不再每次从 config.version 重置 + if (typeof this.engine.getMeta === 'function') { + try { + const persistedVersion = await this.engine.getMeta('__metona_version'); + if (persistedVersion != null && Number(persistedVersion) >= 1) { + this._version = Math.max(this._version, Math.floor(Number(persistedVersion))); + } + } + catch { /* 读取失败回退 config.version */ } + } // 初始化执行器和事务管理器 this.executor = new QueryExecutor(this.engine, this.maxRowsPerQuery); this.transactionManager = new TransactionManager(this.engine); @@ -9632,11 +10736,51 @@ async migrateTo(targetVersion) { this.ensureReady(); for (const [version, up] of [...this.migrations.entries()].sort((a, b) => a[0] - b[0])) { - if (version <= targetVersion && version > this.version) { + if (version <= targetVersion && version > this._version) { await up(this); this._version = version; } } + // v0.4.2-fix (P2-7): 迁移版本持久化到库内,重启后从持久化版本继续, + // 避免"version 重置导致已执行迁移重跑(不幂等就炸)"或"版本门槛跳过迁移" + if (typeof this.engine.setMeta === 'function') { + try { + await this.engine.setMeta('__metona_version', String(this._version)); + } + catch { /* 持久化失败不阻塞迁移流程 */ } + } + } + // ---- 自愈 / 重置(v0.4.2-fix, P2-9) ---- + /** + * 崩溃恢复自愈 — 校验并清理损坏数据、恢复一致性。 + * 检测到异常后调用,无需删库重建。 + */ + async repair() { + this.ensureReady(); + if (typeof this.engine.repair === 'function') { + await this.engine.repair(); + this.tableCache.clear(); + return; + } + // 兜底:重建表缓存 + this.tableCache.clear(); + } + /** + * 清空全部数据与表结构(保留库本身)。 + * 支持后续继续使用本实例重建表。 + */ + async clearAll() { + this.ensureReady(); + if (typeof this.engine.clearAll === 'function') { + await this.engine.clearAll(); + } + else { + const names = await this.engine.getTableNames(); + for (const name of names) { + await this.engine.dropTable(name); + } + } + this.tableCache.clear(); } // ---- 插件 ---- /** 获取插件管理器 */ diff --git a/dist/metona-sqlark.js.map b/dist/metona-sqlark.js.map index 23c0bf3..06909cb 100644 --- a/dist/metona-sqlark.js.map +++ b/dist/metona-sqlark.js.map @@ -1 +1 @@ -{"version":3,"file":"metona-sqlark.js","sources":["../src/constants.ts","../src/query/where-matcher.ts","../src/engine/memory.ts","../src/engine/indexeddb.ts","../src/engine/opfs.ts","../src/table/schema.ts","../src/engine/aria/types.ts","../src/engine/aria/index/memtable.ts","../src/engine/aria/index/bloom.ts","../src/engine/aria/index/sstable_builder.ts","../src/engine/aria/index/sstable.ts","../src/engine/aria/index/merge_iterator.ts","../src/engine/aria/index/lsm.ts","../src/engine/aria/wal/log.ts","../src/engine/aria/wal/checkpoint.ts","../src/engine/aria/store/backend.ts","../src/engine/aria/store/opfs_backend.ts","../src/engine/aria/page/header.ts","../src/engine/aria/store/file_manager.ts","../src/engine/aria/transaction/mvcc.ts","../src/engine/aria/page/format.ts","../src/engine/aria/buffer/eviction.ts","../src/engine/aria/buffer/pool.ts","../src/engine/aria/compression/lz4.ts","../src/engine/aria/crypto.ts","../src/engine/aria/index.ts","../src/hybrid/index.ts","../src/query/builder.ts","../src/table/table.ts","../src/query/compiler.ts","../src/sql/tokens.ts","../src/sql/lexer.ts","../src/sql/parser.ts","../src/query/executor.ts","../src/transaction/index.ts","../src/plugin/index.ts","../src/core.ts","../src/connection-manager.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["SSTABLE_MAGIC"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"metona-sqlark.js","sources":["../src/constants.ts","../src/query/where-matcher.ts","../src/engine/memory.ts","../src/engine/indexeddb.ts","../src/engine/opfs.ts","../src/table/schema.ts","../src/engine/aria/types.ts","../src/engine/aria/index/memtable.ts","../src/engine/aria/index/bloom.ts","../src/engine/aria/index/sstable_builder.ts","../src/engine/aria/index/sstable.ts","../src/engine/aria/index/merge_iterator.ts","../src/engine/aria/index/lsm.ts","../src/engine/aria/wal/log.ts","../src/engine/aria/wal/checkpoint.ts","../src/engine/aria/store/backend.ts","../src/engine/aria/store/opfs_backend.ts","../src/engine/aria/page/header.ts","../src/engine/aria/store/file_manager.ts","../src/engine/aria/transaction/mvcc.ts","../src/engine/aria/page/format.ts","../src/engine/aria/buffer/eviction.ts","../src/engine/aria/buffer/pool.ts","../src/engine/aria/compression/lz4.ts","../src/engine/aria/crypto.ts","../src/engine/aria/index.ts","../src/hybrid/index.ts","../src/query/builder.ts","../src/table/table.ts","../src/query/compiler.ts","../src/sql/tokens.ts","../src/sql/lexer.ts","../src/sql/parser.ts","../src/query/executor.ts","../src/transaction/index.ts","../src/plugin/index.ts","../src/core.ts","../src/connection-manager.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["SSTABLE_MAGIC"],"mappings":"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"} \ No newline at end of file diff --git a/dist/metona-sqlark.min.js b/dist/metona-sqlark.min.js index 4c0c14b..0a70a2b 100644 --- a/dist/metona-sqlark.min.js +++ b/dist/metona-sqlark.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).MetonaSqlark={})}(this,function(e){"use strict";const t=["string","number","boolean","date","json"],s=Object.freeze({name:"metona-sqlark",mode:"hybrid",diskEngine:"indexeddb",version:1,maxRowsPerQuery:0,debug:!1,multiTabSync:!1});class n extends Error{constructor(e,t,s){super(e),this.code=t,this.details=s,this.name="DatabaseError"}}const i="0.4.1",r=new Map;function o(e,t,s={}){for(const[n,i]of Object.entries(t))if("$caseResult"!==n){if("$exists"!==n){if("$and"===n){if(!i.every(t=>o(e,t,s)))return!1;continue}if("$or"===n){if(!i.some(t=>o(e,t,s)))return!1;continue}if("$not"!==n){if(!a(e[n],i,e,s))return!1}else if(o(e,i,s))return!1}else if(!0!==i)return!1}else if(!0!==i)return!1;return!0}function a(e,t,s,n){if("object"==typeof t&&null!==t&&"$and"in t)return t.$and.every(e=>o(s,e,n));if("object"==typeof t&&null!==t&&"$or"in t)return t.$or.some(e=>o(s,e,n));if("object"==typeof t&&null!==t&&"$not"in t)return!a(e,t.$not,s,n);if("object"!=typeof t||null===t||Array.isArray(t))return e===t;const i=t;if(n.$col&&"$col"in i&&1===Object.keys(i).length)return e===s[i.$col];for(const[t,r]of Object.entries(i)){let i=r;if(n.$col&&"object"==typeof r&&null!==r&&"$col"in r&&(i=s[r.$col]),!h(e,t,i))return!1}return!0}function h(e,t,s){switch(t){case"$eq":return e===s;case"$ne":return e!==s;case"$gt":return e>s;case"$gte":return e>=s;case"$lt":return e{for(const{column:n,direction:i,nulls:r}of t){const t=null===e[n]||void 0===e[n],o=null===s[n]||void 0===s[n];if(r&&(t||o)){if(t&&o)continue;return"first"===r?t?-1:1:t?1:-1}const a=l(e[n],s[n]);if(0!==a)return"desc"===i?-a:a}return 0})}function l(e,t){return e===t?0:null==e?1:null==t?-1:"string"==typeof e&&"string"==typeof t?e.localeCompare(t):"number"==typeof e&&"number"==typeof t?e-t:String(e).localeCompare(String(t))}function u(e,t){const s={};for(const n of t)if(n in e)s[n]=e[n];else for(const t of Object.keys(e))if(t.endsWith(`.${n}`)||t===n){s[n]=e[t];break}return s}class f{constructor(){this.name="memory",this.tables=new Map,this.schemas=new Map,this.indexes=new Map,this.opened=!1,this.snapshot=null}async open(e,t){this.opened||(this.opened=!0)}async close(){this.tables.clear(),this.schemas.clear(),this.indexes.clear(),this.opened=!1}isOpen(){return this.opened}async createTable(e){if(this.schemas.has(e.name))throw new n(`Table "${e.name}" already exists`,"TABLE_EXISTS");this.schemas.set(e.name,e),this.tables.set(e.name,new Map);const t=new Map;for(const[s,n]of Object.entries(e.columns))(n.index||n.unique)&&t.set(s,new Map);this.indexes.set(e.name,t)}async dropTable(e){this.ensureTable(e),this.schemas.delete(e),this.tables.delete(e),this.indexes.delete(e)}async hasTable(e){return this.schemas.has(e)}async getTableNames(){return Array.from(this.schemas.keys())}async getTableSchema(e){return this.schemas.get(e)??null}async insert(e,t){this.ensureTable(e);const s=this.schemas.get(e),i=this.tables.get(e),r=this.getPrimaryKey(s),o=[];for(const a of t){const t=this.validateRow(s,a),h=String(t[r]);if(i.has(h))throw new n(`Duplicate primary key "${h}" in table "${e}"`,"DUPLICATE_KEY");this.checkUniqueness(s,t),i.set(h,t),this.updateIndexes(e,t,h),o.push(h)}return o}async find(e,t){this.ensureTable(e);const s=this.tables.get(e);let n=this.tryIndexLookup(e,s,t);t.where&&Object.keys(t.where).length>0&&(n=n.filter(e=>o(e,t.where))),t.orderBy&&t.orderBy.length>0&&(n=c(n,t.orderBy));const i=t.offset??0,r=t.limit??n.length;return n=n.slice(i,i+r),t.columns&&t.columns.length>0&&"*"!==t.columns[0]&&(n=n.map(e=>u(e,t.columns))),n}async findStream(e,t,s){this.ensureTable(e);const n=this.tables.get(e),i=!!(t.where&&Object.keys(t.where).length>0),r=t.limit??1/0,a=t.offset??0,h=t.columns&&t.columns.length>0&&"*"!==t.columns[0]?e=>u(e,t.columns):null;let c=0,l=0;for(const e of n.values())if(!i||o(e,t.where))if(l=r)break;return c}async update(e,t,s){this.ensureTable(e);const n=this.schemas.get(e),i=this.tables.get(e);let r=0;for(const[a,h]of i)if(!t.where||0===Object.keys(t.where).length||o(h,t.where)){this.removeIndexEntries(e,h,a);const t={...h,...s};this.validateRow(n,t),this.checkUniqueness(n,t),i.set(a,t),this.updateIndexes(e,t,a),r++}return r}async delete(e,t){this.ensureTable(e);const s=this.tables.get(e),n=[];for(const[i,r]of s)t.where&&0!==Object.keys(t.where).length&&!o(r,t.where)||(this.removeIndexEntries(e,r,i),n.push(i));let i=0;for(const t of n){const n=s.get(t);n&&(i+=await this.cascadeDelete(e,t,n))}for(const e of n)s.delete(e);return n.length+i}async count(e,t){this.ensureTable(e);const s=this.tables.get(e);if(!t?.where||0===Object.keys(t.where).length)return s.size;let n=0;for(const e of s.values())o(e,t.where)&&n++;return n}async clear(e){this.ensureTable(e),this.tables.get(e).clear();const t=this.indexes.get(e);if(t)for(const e of t.values())e.clear()}async createIndex(e,t,s){this.ensureTable(e);const i=this.schemas.get(e).columns[t];if(!i)throw new n(`Column "${t}" does not exist in table "${e}"`,"COLUMN_NOT_FOUND");if(i.index||i.unique)return;i.index=!0,s&&(i.unique=!0);const r=this.indexes.get(e);r.has(t)||r.set(t,new Map);const o=r.get(t),a=this.tables.get(e);for(const[e,s]of a){const n=s[t];null!=n&&(o.has(n)||o.set(n,new Set),o.get(n).add(e))}}async dropIndex(e,t,s){this.ensureTable(e);const i=this.schemas.get(e).columns[t];if(!i)throw new n(`Column "${t}" does not exist in table "${e}"`,"COLUMN_NOT_FOUND");if(!i.index&&!i.unique)throw new n(`Index on column "${t}" does not exist in table "${e}"`,"INDEX_NOT_FOUND");i.index=!1,i.unique=!1;const r=this.indexes.get(e);r&&r.delete(t)}async beginTransaction(){if(this.snapshot)throw new n("Transaction already in progress","TX_ACTIVE");this.snapshot={tables:this.deepCloneMapMap(this.tables),schemas:new Map(this.schemas),indexes:this.deepCloneIndexes(this.indexes)}}async commitTransaction(){if(!this.snapshot)throw new n("No active transaction","TX_NONE");this.snapshot=null}async rollbackTransaction(){if(!this.snapshot)throw new n("No active transaction","TX_NONE");this.tables=this.snapshot.tables,this.schemas=this.snapshot.schemas,this.indexes=this.snapshot.indexes,this.snapshot=null}deepCloneMapMap(e){const t=new Map;for(const[s,n]of e){const e=new Map;for(const[t,s]of n)e.set(t,{...s});t.set(s,e)}return t}deepCloneIndexes(e){const t=new Map;for(const[s,n]of e){const e=new Map;for(const[t,s]of n){const n=new Map;for(const[e,t]of s)n.set(e,new Set(t));e.set(t,n)}t.set(s,e)}return t}ensureTable(e){if(!this.tables.has(e))throw new n(`Table "${e}" does not exist`,"TABLE_NOT_FOUND")}getPrimaryKey(e){for(const[t,s]of Object.entries(e.columns))if(s.primaryKey)return t;return Object.keys(e.columns)[0]}validateRow(e,t){const s={};for(const[i,r]of Object.entries(e.columns)){let o=t[i];if(void 0===o&&void 0!==r.default&&(o=r.default),r.required&&null==o)throw new n(`Column "${i}" is required in table "${e.name}"`,"VALIDATION_ERROR");null!=o&&this.checkType(i,r.type,o),void 0!==o&&(s[i]=o)}return s}checkType(e,t,s){const i=typeof s;switch(t){case"string":if("string"!==i)throw new n(`Column "${e}" expects string, got ${i}`,"TYPE_ERROR");break;case"number":if("number"!==i)throw new n(`Column "${e}" expects number, got ${i}`,"TYPE_ERROR");break;case"boolean":if("boolean"!==i)throw new n(`Column "${e}" expects boolean, got ${i}`,"TYPE_ERROR");break;case"date":if("string"!==i||isNaN(Date.parse(s)))throw new n(`Column "${e}" expects valid date`,"TYPE_ERROR");break;case"json":if("object"!==i)throw new n(`Column "${e}" expects object/array, got ${i}`,"TYPE_ERROR")}}checkUniqueness(e,t){const s=this.indexes.get(e.name);if(s)for(const[i,r]of Object.entries(e.columns)){if(!r.unique||void 0===t[i]||null===t[i])continue;const o=s.get(i);if(o&&o.has(t[i]))throw new n(`Unique constraint violation on column "${i}" in table "${e.name}"`,"UNIQUE_VIOLATION")}}tryIndexLookup(e,t,s){const n=this.indexes.get(e);if(!n||!s.where)return Array.from(t.values());for(const[e,i]of Object.entries(s.where)){let s;if("object"!=typeof i||null===i)s=i;else{if(!("$eq"in i)||1!==Object.keys(i).length)continue;s=i.$eq}const r=n.get(e);if(r){const e=r.get(s);if(e){const s=[];for(const n of e){const e=t.get(n);e&&s.push(e)}return s}return[]}}return Array.from(t.values())}updateIndexes(e,t,s){const n=this.indexes.get(e);if(n)for(const[e,i]of n){const n=t[e];null!=n&&(i.has(n)||i.set(n,new Set),i.get(n).add(s))}}removeIndexEntries(e,t,s){const n=this.indexes.get(e);if(n)for(const[e,i]of n){const n=t[e];if(null!=n){const e=i.get(n);e&&(e.delete(s),0===e.size&&i.delete(n))}}}async cascadeDelete(e,t,s){let i=0;for(const[s,r]of this.schemas)if(s!==e)for(const[o,a]of Object.entries(r.columns)){if(!a.references||!a.onDelete)continue;const[r]=a.references.split(".");if(r!==e)continue;const h=this.tables.get(s);if(!h)continue;const c=[];for(const[e,s]of h)String(s[o])===t&&c.push(e);if("RESTRICT"===a.onDelete&&c.length>0)throw new n(`Cannot delete from "${e}": foreign key "${o}" in "${s}" has dependent rows`,"FOREIGN_KEY_VIOLATION");if("CASCADE"===a.onDelete)for(const e of c){const t=h.get(e);t&&(this.removeIndexEntries(s,t,e),i+=await this.cascadeDelete(s,e,t)),h.delete(e),i++}else if("SET NULL"===a.onDelete)for(const e of c){const t=h.get(e);if(t){if(void 0!==t[o]&&null!==t[o]){const n=this.indexes.get(s)?.get(o);n&&n.get(t[o])?.delete(e)}t[o]=null}}}return i}}class d{constructor(){this.name="indexeddb",this.db=null,this.dbName="",this.version=1,this.memoryCache=new f,this.txActive=!1}async open(e,t){return this.dbName=e,this.version=t,await this.memoryCache.open(e,t),new Promise((s,i)=>{const r=indexedDB.open(e,t);r.onsuccess=async()=>{this.db=r.result,this.db.onversionchange=()=>{this.db&&(this.db.close(),this.db=null)};try{await this.rebuildSchemaFromIDB(),s()}catch(t){i(new n(`Failed to restore schema for "${e}"`,"IDB_SCHEMA_RESTORE_ERROR",t))}},r.onerror=()=>i(new n(`Failed to open IndexedDB "${e}"`,"IDB_OPEN_ERROR",r.error)),r.onblocked=()=>i(new n(`IndexedDB "${e}" is blocked`,"IDB_BLOCKED"))})}async rebuildSchemaFromIDB(){const e=this.ensureDB();if(e.objectStoreNames.contains("__metona_schema")){const t=await new Promise((t,s)=>{const n=e.transaction("__metona_schema","readonly").objectStore("__metona_schema").getAll();n.onsuccess=()=>t(n.result??[]),n.onerror=()=>s(n.error)});for(const e of t)try{const t=JSON.parse(e.schema);await this.memoryCache.getTableSchema(t.name)||await this.memoryCache.createTable(t)}catch{}}const t=Array.from(e.objectStoreNames).filter(e=>"__metona_schema"!==e);for(const s of t){if(await this.memoryCache.getTableSchema(s))continue;const t={},n=e.transaction(s,"readonly").objectStore(s);t[n.keyPath]={type:"string",primaryKey:!0};for(const e of Array.from(n.indexNames))if(e.startsWith("idx_")){const s=e.slice(4);t[s]||(t[s]={type:"string",index:!0})}const i=await new Promise((e,t)=>{const s=n.getAll();s.onsuccess=()=>e(s.result??[]),s.onerror=()=>t(s.error)});if(i.length>0)for(const[e,s]of Object.entries(i[0]))t[e]||(t[e]={type:m(s)});await this.memoryCache.createTable({name:s,columns:t})}}async close(){this.db&&(this.db.onversionchange=null,this.db.close(),this.db=null),await this.memoryCache.close()}isOpen(){return null!==this.db}async createTable(e){await this.memoryCache.createTable(e),this.txActive||await this.idbCreateTable(e)}async dropTable(e){await this.memoryCache.dropTable(e),this.txActive||await this.idbDropTable(e)}async hasTable(e){return this.ensureDB().objectStoreNames.contains(e)}async getTableNames(){return Array.from(this.ensureDB().objectStoreNames)}async getTableSchema(e){return this.memoryCache.getTableSchema(e)}async insert(e,t){const s=await this.memoryCache.insert(e,t);return this.txActive||await this.idbInsert(e,t),s}async find(e,t){return this.txActive?this.memoryCache.find(e,t):this.idbFind(e,t)}async findStream(e,t,s){if(this.txActive)return this.memoryCache.findStream(e,t,s);const n=await this.idbFind(e,{...t,orderBy:void 0,limit:void 0,offset:void 0});let i=0;for(const e of n)s(e),i++;return i}async update(e,t,s){const n=await this.memoryCache.update(e,t,s);return this.txActive||await this.idbUpdate(e,t,s),n}async delete(e,t){const s=await this.memoryCache.delete(e,t);return this.txActive||await this.idbDelete(e,t),s}async count(e,t){return this.txActive?this.memoryCache.count(e,t):(await this.idbFind(e,{table:e,where:t?.where??{}})).length}async clear(e){await this.memoryCache.clear(e),this.txActive||await this.idbClear(e)}async createIndex(e,t,s){if(await this.memoryCache.createIndex(e,t,s),this.txActive)return;const i=this.ensureDB();return new Promise((r,o)=>{const a=i.version+1;i.close();const h=indexedDB.open(this.dbName,a);h.onupgradeneeded=n=>{const i=n.target.result.transaction(e,"readwrite").objectStore(e);i.indexNames.contains(`idx_${t}`)||i.createIndex(`idx_${t}`,t,{unique:s??!1})},h.onsuccess=()=>{this.db=h.result,r()},h.onerror=()=>o(new n(`Failed to create index "${e}.${t}"`,"IDB_UPGRADE_ERROR",h.error))})}async dropIndex(e,t,s){if(await this.memoryCache.dropIndex(e,t),this.txActive)return;const i=this.ensureDB();return new Promise((s,r)=>{const o=i.version+1;i.close();const a=indexedDB.open(this.dbName,o);a.onupgradeneeded=s=>{const n=s.target.result.transaction(e,"readwrite").objectStore(e);n.indexNames.contains(`idx_${t}`)&&n.deleteIndex(`idx_${t}`)},a.onsuccess=()=>{this.db=a.result,s()},a.onerror=()=>r(new n(`Failed to drop index "${e}.${t}"`,"IDB_UPGRADE_ERROR",a.error))})}async beginTransaction(){if(this.txActive)throw new n("Transaction already in progress","TX_ACTIVE");this.txActive=!0,await this.memoryCache.beginTransaction()}async commitTransaction(){if(!this.txActive)throw new n("No active transaction","TX_NONE");await this.memoryCache.commitTransaction(),await this.flushToIDB(),this.txActive=!1}async rollbackTransaction(){if(!this.txActive)throw new n("No active transaction","TX_NONE");await this.memoryCache.rollbackTransaction(),this.txActive=!1}async idbCreateTable(e){const t=this.ensureDB();return new Promise((s,i)=>{const r=t.version+1;t.close();const o=indexedDB.open(this.dbName,r);o.onupgradeneeded=t=>{const s=t.target.result,n=Object.entries(e.columns).find(([,e])=>e.primaryKey)?.[0]??Object.keys(e.columns)[0],i=s.createObjectStore(e.name,{keyPath:n});for(const[t,s]of Object.entries(e.columns))s.index&&t!==n&&i.createIndex(`idx_${t}`,t,{unique:s.unique??!1});s.objectStoreNames.contains("__metona_schema")||s.createObjectStore("__metona_schema",{keyPath:"name"})},o.onsuccess=()=>{this.db=o.result;const t=this.db.transaction("__metona_schema","readwrite");t.objectStore("__metona_schema").put({name:e.name,schema:JSON.stringify(e)}),t.oncomplete=()=>s(),t.onerror=()=>i(new n(`Failed to persist schema for "${e.name}"`,"IDB_SCHEMA_ERROR",t.error))},o.onerror=()=>i(new n(`Failed to create table "${e.name}"`,"IDB_UPGRADE_ERROR",o.error))})}async idbDropTable(e){const t=this.ensureDB();return new Promise((s,i)=>{const r=t.version+1;t.close();const o=indexedDB.open(this.dbName,r);o.onupgradeneeded=t=>{const s=t.target.result;s.objectStoreNames.contains(e)&&s.deleteObjectStore(e)},o.onsuccess=()=>{if(this.db=o.result,this.db.objectStoreNames.contains("__metona_schema")){const t=this.db.transaction("__metona_schema","readwrite");t.objectStore("__metona_schema").delete(e),t.onerror=()=>{}}s()},o.onerror=()=>i(new n(`Failed to drop table "${e}"`,"IDB_UPGRADE_ERROR",o.error))})}async idbInsert(e,t){const s=this.ensureDB();return new Promise((i,r)=>{const o=s.transaction(e,"readwrite"),a=o.objectStore(e);for(const e of t)a.add(e);o.oncomplete=()=>i(),o.onerror=()=>r(new n(`Insert failed for "${e}"`,"IDB_TX_ERROR",o.error))})}async idbFind(e,t){const s=this.ensureDB();if(t.where){const n=await this.tryIDBIndexLookup(s,e,t);if(null!==n)return n}return new Promise((i,r)=>{const a=s.transaction(e,"readonly").objectStore(e).getAll();a.onsuccess=()=>{let e=a.result??[];t.where&&Object.keys(t.where).length>0&&(e=e.filter(e=>o(e,t.where))),t.orderBy&&t.orderBy.length>0&&(e=c(e,t.orderBy));const s=t.offset??0,n=t.limit??e.length;e=e.slice(s,s+n),t.columns&&t.columns.length>0&&"*"!==t.columns[0]&&(e=e.map(e=>u(e,t.columns))),i(e)},a.onerror=()=>r(new n(`Find failed for "${e}"`,"IDB_READ_ERROR",a.error))})}async tryIDBIndexLookup(e,t,s){if(!s.where)return null;for(const[i,r]of Object.entries(s.where)){if("$and"===i||"$or"===i||"$not"===i)continue;let a;if("object"!=typeof r||null===r)a=r;else{if(!("$eq"in r))continue;a=r.$eq}const h=`idx_${i}`;try{return await new Promise((r,l)=>{const f=e.transaction(t,"readonly").objectStore(t);if(!f.indexNames.contains(h))return void r(null);const d=f.index(h).getAll(a);d.onsuccess=()=>{let e=d.result??[];Object.keys(s.where).filter(e=>e!==i&&"$and"!==e&&"$or"!==e&&"$not"!==e).length>0&&(e=e.filter(e=>o(e,s.where))),s.orderBy&&s.orderBy.length>0&&(e=c(e,s.orderBy));const t=s.offset??0,n=s.limit??e.length;e=e.slice(t,t+n),s.columns&&s.columns.length>0&&"*"!==s.columns[0]&&(e=e.map(e=>u(e,s.columns))),r(e)},d.onerror=()=>l(new n(`Index lookup failed for "${t}.${i}"`,"IDB_READ_ERROR",d.error))})}catch{return null}}return null}async idbUpdate(e,t,s){const i=this.ensureDB();return new Promise((r,a)=>{const h=i.transaction(e,"readwrite"),c=h.objectStore(e),l=c.getAll();l.onsuccess=()=>{for(const e of l.result??[])t.where&&0!==Object.keys(t.where).length&&!o(e,t.where)||(Object.assign(e,s),c.put(e))},h.oncomplete=()=>r(),h.onerror=()=>a(new n(`Update failed for "${e}"`,"IDB_TX_ERROR",h.error))})}async idbDelete(e,t){const s=this.ensureDB(),i=await this.memoryCache.getTableSchema(e);if(!i)throw new n(`Table "${e}" not found`,"TABLE_NOT_FOUND");const r=Object.entries(i.columns).find(([,e])=>e.primaryKey)?.[0]??Object.keys(i.columns)[0];return new Promise((i,a)=>{const h=s.transaction(e,"readwrite"),c=h.objectStore(e),l=c.getAll();l.onsuccess=()=>{for(const e of l.result??[])t.where&&0!==Object.keys(t.where).length&&!o(e,t.where)||c.delete(e[r])},h.oncomplete=()=>i(),h.onerror=()=>a(new n(`Delete failed for "${e}"`,"IDB_TX_ERROR",h.error))})}async idbClear(e){const t=this.ensureDB();return new Promise((s,i)=>{const r=t.transaction(e,"readwrite");r.objectStore(e).clear(),r.oncomplete=()=>s(),r.onerror=()=>i(new n(`Clear failed for "${e}"`,"IDB_TX_ERROR",r.error))})}async flushToIDB(){const e=await this.memoryCache.getTableNames(),t=this.ensureDB();for(const s of e){const e=await this.memoryCache.find(s,{table:s});await new Promise((i,r)=>{const o=t.transaction(s,"readwrite"),a=o.objectStore(s);a.clear();for(const t of e)a.add(t);o.oncomplete=()=>i(),o.onerror=()=>r(new n(`Flush failed for "${s}"`,"IDB_FLUSH_ERROR",o.error))})}}ensureDB(){if(!this.db)throw new n("Database not opened","DB_NOT_OPEN");return this.db}}function m(e){return"number"==typeof e?"number":"boolean"==typeof e?"boolean":"object"==typeof e&&null!==e?"json":"string"==typeof e?(isNaN(Date.parse(e)),"string"):"string"}class p{constructor(){this.name="opfs",this.root=null,this.tablesDir=null,this.dbName="",this.memoryCache=new f}async open(e,t){this.dbName=e,await this.memoryCache.open(e,t),this.root=await navigator.storage.getDirectory(),this.tablesDir=await this.root.getDirectoryHandle(e,{create:!0}),await this.loadExistingTables()}async close(){this.root=null,this.tablesDir=null,await this.memoryCache.close()}isOpen(){return null!==this.tablesDir}async createTable(e){await this.memoryCache.createTable(e),await this.writeTableData(e.name,[])}async dropTable(e){if(await this.memoryCache.dropTable(e),this.tablesDir)try{await this.tablesDir.removeEntry(`${e}.json`)}catch{}}async hasTable(e){if(!this.tablesDir)return!1;try{return await this.tablesDir.getFileHandle(`${e}.json`),!0}catch{return!1}}async getTableNames(){if(!this.tablesDir)return[];const e=[];for await(const[t]of this.tablesDir.entries())t.endsWith(".json")&&e.push(t.replace(".json",""));return e}async getTableSchema(e){return this.memoryCache.getTableSchema(e)}async insert(e,t){const s=await this.memoryCache.insert(e,t),n=await this.memoryCache.find(e,{table:e});return await this.writeTableData(e,n),s}async find(e,t){return this.memoryCache.find(e,t)}async findStream(e,t,s){return this.memoryCache.findStream(e,t,s)}async update(e,t,s){const n=await this.memoryCache.update(e,t,s),i=await this.memoryCache.find(e,{table:e});return await this.writeTableData(e,i),n}async delete(e,t){const s=await this.memoryCache.delete(e,t),n=await this.memoryCache.find(e,{table:e});return await this.writeTableData(e,n),s}async count(e,t){return this.memoryCache.count(e,t)}async clear(e){await this.memoryCache.clear(e),await this.writeTableData(e,[])}async createIndex(e,t,s){return this.memoryCache.createIndex(e,t,s)}async dropIndex(e,t,s){return this.memoryCache.dropIndex(e,t,s)}async beginTransaction(){await this.memoryCache.beginTransaction()}async commitTransaction(){await this.memoryCache.commitTransaction();const e=await this.memoryCache.getTableNames();for(const t of e){const e=await this.memoryCache.find(t,{table:t});await this.writeTableData(t,e)}}async rollbackTransaction(){await this.memoryCache.rollbackTransaction()}ensureDir(){if(!this.tablesDir)throw new n("Database not opened","DB_NOT_OPEN");return this.tablesDir}async writeTableData(e,t){const s=this.ensureDir(),n=`${e}.json`,i=await s.getFileHandle(n,{create:!0}),r=await i.createWritable();await r.write(JSON.stringify(t)),await r.close()}async readTableData(e){const t=this.ensureDir(),s=`${e}.json`;try{const e=await t.getFileHandle(s),n=await e.getFile(),i=await n.text();return JSON.parse(i)}catch{return[]}}async loadExistingTables(){if(!this.tablesDir)return;const e=this.tablesDir;for await(const[t]of e.entries()){if(!t.endsWith(".json"))continue;const e=t.replace(".json","");try{const t=await this.readTableData(e);if(t.length>0){const s=t[0],n={};for(const e of Object.keys(s)){const t=s[e],i="number"==typeof t?"number":"boolean"==typeof t?"boolean":"object"==typeof t?"json":"string";n[e]={type:i,primaryKey:"id"===e}}await this.memoryCache.createTable({name:e,columns:n});for(const s of t)await this.memoryCache.insert(e,[s])}}catch{}}}async loadTableIntoMemory(e,t){await this.memoryCache.createTable(t);const s=await this.readTableData(e);if(s.length>0)for(const t of s)await this.memoryCache.insert(e,[t])}}function g(e,s){return function(e){if(0===Object.keys(e).length)throw new n("Table must have at least one column","SCHEMA_ERROR");let s=0;for(const[i,r]of Object.entries(e)){if(!t.includes(r.type))throw new n(`Invalid type "${r.type}" for column "${i}". Valid types: ${t.join(", ")}`,"SCHEMA_ERROR");r.primaryKey&&s++}if(0===s)throw new n("Table must have at least one primary key column","SCHEMA_ERROR")}(s),{name:e,columns:s}}function y(e){return{type:e.type,primaryKey:e.primaryKey,unique:e.unique,required:e.required,default:e.default,index:e.index,maxLength:e.maxLength,min:e.min,max:e.max,references:e.references,onDelete:e.onDelete,onUpdate:e.onUpdate}}const T=4096;var b,w;!function(e){e[e.DATA=1]="DATA",e[e.INDEX=2]="INDEX",e[e.OVERFLOW=3]="OVERFLOW",e[e.META=4]="META"}(b||(b={})),function(e){e[e.STRING=1]="STRING",e[e.NUMBER=2]="NUMBER",e[e.BOOLEAN=3]="BOOLEAN",e[e.DATE=4]="DATE",e[e.JSON=5]="JSON",e[e.NULL=6]="NULL"}(w||(w={}));const E=4194304;var x,k,I;!function(e){e[e.INSERT=1]="INSERT",e[e.UPDATE=2]="UPDATE",e[e.DELETE=3]="DELETE",e[e.BEGIN=4]="BEGIN",e[e.COMMIT=5]="COMMIT",e[e.ROLLBACK=6]="ROLLBACK",e[e.CREATE_TABLE=7]="CREATE_TABLE",e[e.DROP_TABLE=8]="DROP_TABLE"}(x||(x={})),function(e){e[e.READ_COMMITTED=1]="READ_COMMITTED",e[e.SNAPSHOT=2]="SNAPSHOT"}(k||(k={})),function(e){e[e.ACTIVE=1]="ACTIVE",e[e.COMMITTED=2]="COMMITTED",e[e.ABORTED=3]="ABORTED"}(I||(I={}));const S={pageSize:T,bufferPoolPages:256,memtableSizeThreshold:E,levelSizeMultiplier:10,bloomFilterBitsPerKey:10,walEnabled:!0,walSyncMode:"full",checkpointInterval:1e3,compression:!1,storageBackend:"indexeddb",walSizeThreshold:16777216,maxMemoryMB:64};var A;!function(e){e[e.RED=0]="RED",e[e.BLACK=1]="BLACK"}(A||(A={}));class C{constructor(e,t){this.color=A.RED,this.left=null,this.right=null,this.parent=null,this.key=e,this.value=t}}class R{constructor(){this.root=null,this._size=0}get size(){return this._size}insert(e,t){const s=new C(e,t);if(!this.root)return this.root=s,s.color=A.BLACK,void this._size++;let n=null,i=this.root;for(;i;)if(n=i,ei.key))return void(i.value=t);i=i.right}s.parent=n,et.key))return t.value;t=t.right}return null}delete(e){const t=this.findNode(e);return!!t&&(this.deleteNode(t),this._size--,!0)}inorder(e){this._inorder(this.root,e)}rangeScan(e,t,s){this._rangeScan(this.root,e,t,s)}getAllEntries(){const e=[];return this.inorder((t,s)=>e.push([t,s])),e}clear(){this.root=null,this._size=0}findNode(e){let t=this.root;for(;t;)if(et.key))return t;t=t.right}return null}deleteNode(e){if(e.left||e.right)if(e.left)if(e.right){const t=this.minimum(e.right);t.parent!==e&&(this.transplant(t,t.right),t.right=e.right,t.right.parent=t),this.transplant(e,t),t.left=e.left,t.left.parent=t;const s=t.color;t.color=e.color,s===A.BLACK&&this.fixDelete(t.right,t.right?.parent??null)}else this.transplant(e,e.left),e.color===A.BLACK&&this.fixDelete(e.left,e.left.parent);else this.transplant(e,e.right),e.color===A.BLACK&&this.fixDelete(e.right,e.right.parent);else this.transplant(e,null),e.color===A.BLACK&&this.fixDelete(null,e.parent)}transplant(e,t){e.parent?e===e.parent.left?e.parent.left=t:e.parent.right=t:this.root=t,t&&(t.parent=e.parent)}minimum(e){for(;e.left;)e=e.left;return e}fixInsert(e){for(;e.parent&&e.parent.color===A.RED;){const t=e.parent,s=t.parent;if(!s)break;if(t===s.left){const n=s.right;n&&n.color===A.RED?(t.color=A.BLACK,n.color=A.BLACK,s.color=A.RED,e=s):(e===t.right&&(e=t,this.rotateLeft(e)),e.parent&&(e.parent.color=A.BLACK),e.parent?.parent&&(e.parent.parent.color=A.RED),e.parent?.parent&&this.rotateRight(e.parent.parent))}else{const n=s.left;n&&n.color===A.RED?(t.color=A.BLACK,n.color=A.BLACK,s.color=A.RED,e=s):(e===t.left&&(e=t,this.rotateRight(e)),e.parent&&(e.parent.color=A.BLACK),e.parent?.parent&&(e.parent.parent.color=A.RED),e.parent?.parent&&this.rotateLeft(e.parent.parent))}}this.root&&(this.root.color=A.BLACK)}fixDelete(e,t){let s=e,n=t;for(;(!s||s.color===A.BLACK)&&s!==this.root&&n;)if(s===n.left){let e=n.right;if(!e)break;if(e.color===A.RED&&(e.color=A.BLACK,n.color=A.RED,this.rotateLeft(n),e=n.right,!e))break;const t=e.left,i=e.right;if(t&&t.color!==A.BLACK||i&&i.color!==A.BLACK){if(!(i&&i.color!==A.BLACK||(t&&(t.color=A.BLACK),e.color=A.RED,this.rotateRight(e),e=n.right,e)))break;e.color=n.color,n.color=A.BLACK,e.right&&(e.right.color=A.BLACK),this.rotateLeft(n),s=this.root}else e.color=A.RED,s=n,n=s.parent}else{let e=n.left;if(!e)break;if(e.color===A.RED&&(e.color=A.BLACK,n.color=A.RED,this.rotateRight(n),e=n.left,!e))break;const t=e.left,i=e.right;if(t&&t.color!==A.BLACK||i&&i.color!==A.BLACK){if(!(t&&t.color!==A.BLACK||(i&&(i.color=A.BLACK),e.color=A.RED,this.rotateLeft(e),e=n.left,e)))break;e.color=n.color,n.color=A.BLACK,e.left&&(e.left.color=A.BLACK),this.rotateRight(n),s=this.root}else e.color=A.RED,s=n,n=s.parent}s&&(s.color=A.BLACK)}rotateLeft(e){const t=e.right;t&&(e.right=t.left,t.left&&(t.left.parent=e),t.parent=e.parent,e.parent?e===e.parent.left?e.parent.left=t:e.parent.right=t:this.root=t,t.left=e,e.parent=t)}rotateRight(e){const t=e.left;t&&(e.left=t.right,t.right&&(t.right.parent=e),t.parent=e.parent,e.parent?e===e.parent.right?e.parent.right=t:e.parent.left=t:this.root=t,t.right=e,e.parent=t)}_inorder(e,t){e&&(this._inorder(e.left,t),t(e.key,e.value),this._inorder(e.right,t))}_rangeScan(e,t,s,n){e&&(e.key>t&&this._rangeScan(e.left,t,s,n),e.key>=t&&e.key<=s&&n(e.key,e.value),e.key=this.maxSize}getAllEntries(){return this.tree.getAllEntries()}rangeScan(e,t){const s=[];return this.tree.rangeScan(e,t,(e,t)=>s.push([e,t])),s}getEntryCount(){return this.tree.size}getEstimatedSize(){return this._estimatedSize}clear(){this.tree.clear(),this._estimatedSize=0}contains(e){return null!==this.tree.find(e)}estimateEntrySize(e,t){if(!t)return 0;let s=2*e.length;for(const e of Object.entries(t)){s+=2*e[0].length;const t=e[1];s+="string"==typeof t?2*t.length:"number"==typeof t?8:"boolean"==typeof t||null==t?1:16}return s}}class O{constructor(e,t=10){this._inserted=0;const s=Math.max(64,e*t),n=Math.ceil(s/8);this.bits=new Uint8Array(n),this.numHashes=Math.max(1,Math.floor(.69*t))}static fromData(e,t){const s=new O(1);return s.bits=e,s.numHashes=t,s}insert(e){const t=this.getHashes(e);for(const e of t){const t=Math.floor(e/8),s=e%8;this.bits[t]|=1<>>0;return t}murmurSimple(e){let t=0;for(let s=0;s>>16)>>>0;return Math.abs(t)}}class ${constructor(e=4096){this.entries=[],this.currentBlock=[],this.currentBlockStartKey="",this.blockSizeLimit=e}add(e,t){0===this.currentBlock.length&&(this.currentBlockStartKey=e),this.currentBlock.push([e,t]),this.entries.push([e,t]),this.estimateBlockSize()>=this.blockSizeLimit&&this.currentBlock.length}build(){const e=this.splitIntoBlocks(),t=new O(this.entries.length);let s=0;const n=[];for(const t of e)n.push(s),s+=this.computeBlockSize(t);const i=[];for(let t=0;t=this.blockSizeLimit&&t.length>1&&(e.push(t.slice(0,-1)),t=[s]);return t.length>0&&e.push(t),e}estimateBlockSize(){return this.estimateBlockSizeFromEntries(this.currentBlock)}estimateBlockSizeFromEntries(e){let t=0;for(const[s,n]of e)t+=4+s.length+JSON.stringify(n).length;return t}computeBlockSize(e){let t=4;for(const[s,n]of e){const e=JSON.stringify(n);t+=2+s.length+2+e.length}return t}writeDataBlock(e,t,s,n){e.setUint32(t,s.length,!1),t+=4;for(const[i,r]of s){const s=new TextEncoder,o=s.encode(i),a=s.encode(JSON.stringify(r));e.setUint16(t,o.length,!1),t+=2,new Uint8Array(e.buffer).set(o,t),t+=o.length,e.setUint16(t,a.length,!1),t+=2,new Uint8Array(e.buffer).set(a,t),t+=a.length,n.insert(i)}return t}estimateIndexBlockSize(e){let t=4;for(const s of e)t+=2+s.key.length+8;return t}writeIndexBlock(e,t,s){e.setUint32(t,s.length,!1),t+=4;for(const n of s){const s=(new TextEncoder).encode(n.key);e.setUint16(t,s.length,!1),t+=2,new Uint8Array(e.buffer).set(s,t),t+=s.length,e.setUint32(t,n.blockOffset,!1),t+=4,e.setUint32(t,n.blockSize,!1),t+=4}return t}}class D{constructor(e,t){this.indexEntries=[],this.entryCount=0,this.bloomFilter=null,this.data=e,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.meta=t,this.parseFooter()}get(e){if(this.bloomFilter&&!this.bloomFilter.mayContain(e))return null;const t=this.locateBlock(e);if(t<0)return null;const s=this.indexEntries[t],n=new Uint8Array(this.data.buffer,this.data.byteOffset+s.blockOffset,s.blockSize),i=new DataView(n.buffer,n.byteOffset,n.byteLength),r=i.getUint32(0,!1);let o=4;for(let t=0;ti))for(let r=n;r<=i&&r>=0;r++){const n=this.indexEntries[r],i=new Uint8Array(this.data.buffer,this.data.byteOffset+n.blockOffset,n.blockSize),o=new DataView(i.buffer,i.byteOffset,i.byteLength),a=o.getUint32(0,!1);let h=4;for(let n=0;n=e&&r<=t)try{s(r,JSON.parse((new TextDecoder).decode(c)))}catch{}}}}scanAll(e){for(const t of this.indexEntries){const s=new Uint8Array(this.data.buffer,this.data.byteOffset+t.blockOffset,t.blockSize),n=new DataView(s.buffer,s.byteOffset,s.byteLength),i=n.getUint32(0,!1);let r=4;for(let t=0;t0&&r>0&&i+r<=this.data.byteLength)try{const e=this.data.slice(i,i+r);this.bloomFilter=O.fromData(e,o||10)}catch{}}parseIndexBlock(e,t){const s=this.view.getUint32(e,!1);e+=4;for(let t=0;t(0===n?"":this.indexEntries[n-1].key))return n;s=n-1}else t=n+1}return-1}locateBlockGE(e){let t=0,s=this.indexEntries.length;for(;t>1;this.indexEntries[n].key>1;this.indexEntries[n].key<=e?t=n+1:s=n}return t>0?t-1:0}}class L{constructor(e){this.index=0,this.entries=e}next(){return this.index>=this.entries.length?null:this.entries[this.index++]}reset(){this.index=0}}class _{constructor(){this.heap=[]}push(e){this.heap.push(e),this.bubbleUp(this.heap.length-1)}pop(){if(0===this.heap.length)return null;if(1===this.heap.length)return this.heap.pop();const e=this.heap[0];return this.heap[0]=this.heap.pop(),this.bubbleDown(0),e}peek(){return this.heap.length>0?this.heap[0]:null}get size(){return this.heap.length}bubbleUp(e){for(;e>0;){const t=Math.floor((e-1)/2);if(this.heap[e].key>=this.heap[t].key)break;[this.heap[e],this.heap[t]]=[this.heap[t],this.heap[e]],e=t}}bubbleDown(e){const t=this.heap.length;for(;;){let s=e;const n=2*e+1,i=2*e+2;if(n=0&&t.level<7&&this.levels[t.level].push(t);for(let e=0;e<7;e++)this.levels[e].sort((e,t)=>t.id-e.id);this.initialized=!0}put(e,t){this.levels[0].length>=8&&this.enqueueCompact(0),this.memtable.put(e,t),this.operationCount++,this.memtable.shouldFlush()&&this.freezeMemtable()}delete(e){this.levels[0].length>=8&&this.enqueueCompact(0),this.memtable.put(e,{__tombstone:!0}),this.operationCount++,this.memtable.shouldFlush()&&this.freezeMemtable()}getEstimatedMemory(){let e=this.memtable.getEstimatedSize();for(const t of this.frozenMemtables)e+=t.getEstimatedSize();return e+=this.cacheSize,e}freezeMemtable(){if(this.immutableMemtable){const e=this.immutableMemtable;this.flushChain=this.flushChain.then(()=>this.flushImmutableAsync(e))}this.immutableMemtable=this.memtable,this.frozenMemtables.push(this.immutableMemtable),this.memtable=new N(this.memtable.getEstimatedSize())}async flushImmutableAsync(e){const t=e.getAllEntries();if(0===t.length)return void(this.immutableMemtable===e&&(this.immutableMemtable=null));const s=await this.sstableStore.allocateId(),n=new $(this.blockSize);for(const[e,s]of t)n.add(e,s);const{sstableData:i,indexEntries:r}=n.build(),o={id:s,level:0,minKey:t[0][0],maxKey:t[t.length-1][0],blockCount:r.length,totalSize:i.byteLength,bloomData:null};this.cacheSSTable(s,i),this.trimCache(),await this.sstableStore.save(s,i),await this.sstableStore.saveMeta(o),this.immutableMemtable===e&&(this.immutableMemtable=null),this.levels[0].unshift(o),this.frozenMemtables=this.frozenMemtables.filter(t=>t!==e),this.levels[0].length>=4&&!this.compacting&&this.scheduleCompact(0)}scheduleCompact(e){e>=6||this.compacting||(this.compacting=!0,setTimeout(()=>{try{this.flushChain=this.flushChain.then(()=>this.compactLevelAsync(e))}finally{this.compacting=!1,this.levels[e].length>=4&&this.scheduleCompact(e),e+1<6&&this.levels[e+1].length>=4&&this.scheduleCompact(e+1)}},0))}enqueueCompact(e){e>=6||this.compacting||(this.compacting=!0,this.flushChain=this.flushChain.then(async()=>{try{await this.compactLevelAsync(e)}finally{this.compacting=!1}}))}async prefetchRange(e,t){await this.flushChain,this.trimCache();const s=[];for(let n=0;n<7;n++)for(const i of this.levels[n])ti.maxKey||this.sstableCache.has(i.id)||s.push(i.id);for(const e of s)await this.preloadSSTable(e)}async prefetchKeys(e){if(0===e.length)return;await this.flushChain,this.trimCache();const t=new Set;for(let s=0;s<7;s++)for(const n of this.levels[s])if(!this.sstableCache.has(n.id))for(const s of e)if(s>=n.minKey&&s<=n.maxKey){t.add(n.id);break}for(const e of t)await this.preloadSSTable(e)}get(e){let t=this.memtable.get(e);if(null!==t)return this.unwrapTombstone(t);for(let s=this.frozenMemtables.length-1;s>=0;s--)if(t=this.frozenMemtables[s].get(e),null!==t)return this.unwrapTombstone(t);for(let t=0;t<7;t++)for(const s of this.levels[t]){if(es.maxKey)continue;const t=this.loadSSTableReader(s);if(!t)continue;const n=t.get(e);if(null!==n)return this.unwrapTombstone(n)}return null}rangeScan(e,t){const s=[];return this.rangeScanLazy(e,t,(e,t)=>s.push([e,t])),s}rangeScanLazy(e,t,s){const n=new v;n.addSource(new L(this.memtable.rangeScan(e,t)));for(let s=this.frozenMemtables.length-1;s>=0;s--)n.addSource(new L(this.frozenMemtables[s].rangeScan(e,t)));for(let s=0;s<7;s++)for(const i of this.levels[s]){if(ti.maxKey)continue;const s=this.loadSSTableReader(i);s&&s.rangeScan(e,t,(e,t)=>{n.addSource(new L([[e,t]]))})}const i=n.drain();for(const[e,t]of i)t.__tombstone||s(e,t)}getAllEntries(){const e=new Map;for(let t=6;t>=0;t--)for(let s=this.levels[t].length-1;s>=0;s--){const n=this.levels[t][s],i=this.loadSSTableReader(n);i&&i.scanAll((t,s)=>e.set(t,s))}for(const[t,s]of this.memtable.getAllEntries())e.set(t,s);for(let t=this.frozenMemtables.length-1;t>=0;t--)for(const[s,n]of this.frozenMemtables[t].getAllEntries())e.set(s,n);return Array.from(e.entries()).filter(([,e])=>!e.__tombstone)}async compactLevel(e){await this.compactLevelAsync(e)}async compactLevelAsync(e){if(e>=6)return;if(this.levels[e].length<4)return;const t=this.levels[e].splice(0,this.levels[e].length),s=new v;for(const e of t){const t=this.loadSSTableReader(e);if(!t)continue;const n=[];t.scanAll((e,t)=>n.push([e,t])),s.addSource(new L(n))}const n=s.drain();if(0===n.length)return;const i=await this.sstableStore.allocateId(),r=new $(this.blockSize);for(const[e,t]of n)r.add(e,t);const{sstableData:o,indexEntries:a}=r.build(),h={id:i,level:e+1,minKey:n[0][0],maxKey:n[n.length-1][0],blockCount:a.length,totalSize:o.byteLength,bloomData:null};this.cacheSSTable(i,o),this.trimCache(),await this.sstableStore.save(i,o),await this.sstableStore.saveMeta(h),this.levels[e+1].unshift(h);for(const e of t)this.sstableCache.delete(e.id),await this.sstableStore.delete(e.id),await this.sstableStore.deleteMeta(e.id)}async flush(){if(await this.flushChain,this.immutableMemtable){const e=this.immutableMemtable;await this.flushImmutableAsync(e)}if(this.memtable.getEntryCount()>0){this.freezeMemtable();const e=this.immutableMemtable;e&&await this.flushImmutableAsync(e)}this.frozenMemtables=[]}async clear(){this.memtable.clear(),this.immutableMemtable=null,this.frozenMemtables=[];for(const e of this.levels)for(const t of e)this.sstableCache.delete(t.id),this.sstableStore.delete(t.id).catch(()=>{}),this.sstableStore.deleteMeta(t.id).catch(()=>{});this.levels=[];for(let e=0;e<7;e++)this.levels.push([]);this.sstableCache.clear(),this.cacheSize=0}getStats(){return{memtableSize:this.memtable.getEntryCount(),sstableCount:this.levels.reduce((e,t)=>e+t.length,0),levelCounts:this.levels.map(e=>e.length)}}isInitialized(){return this.initialized}unwrapTombstone(e){return e?e.__tombstone?null:e:null}loadSSTableReader(e){const t=this.sstableCache.get(e.id);if(!t)return null;this.sstableCache.delete(e.id),this.sstableCache.set(e.id,t);try{return new D(t,e)}catch{return null}}async preloadSSTable(e){if(this.sstableCache.has(e))return;const t=await this.sstableStore.load(e);t&&this.cacheSSTable(e,t)}cacheSSTable(e,t){this.sstableCache.has(e)&&(this.cacheSize-=this.sstableCache.get(e).byteLength,this.sstableCache.delete(e)),this.sstableCache.set(e,t),this.cacheSize+=t.byteLength}trimCache(){for(;this.cacheSize>this.cacheLimitBytes&&this.sstableCache.size>0;){const e=this.sstableCache.keys().next().value,t=this.sstableCache.get(e);this.cacheSize-=t.byteLength,this.sstableCache.delete(e)}}getCacheSize(){return this.cacheSize}getCacheLimit(){return this.cacheLimitBytes}}class M{constructor(e,t=!0,s="batch"){this.lsn=0,this.buffer=[],this.bufferedBytes=0,this.store=e,this.enabled=t,this.syncMode=s}async append(e){if(!this.enabled)return;this.lsn++;const t={...e,lsn:this.lsn,checksum:0},s=this.encodeRecord(t);if("full"===this.syncMode)try{await this.store.append(s),this.bufferedBytes+=s.byteLength}catch{}else"batch"===this.syncMode&&(this.buffer.push(s),this.bufferedBytes+=s.byteLength)}async appendBatch(e){if(!this.enabled||0===e.length)return;const t=[];for(const s of e)this.lsn++,t.push(this.encodeRecord({...s,lsn:this.lsn,checksum:0}));const s=this.mergeChunks(t);if("full"===this.syncMode)try{await this.store.append(s),this.bufferedBytes+=s.byteLength}catch{}else"batch"===this.syncMode&&(this.buffer.push(s),this.bufferedBytes+=s.byteLength)}async flush(){if(!this.enabled||0===this.buffer.length)return;const e=this.mergeChunks(this.buffer);await this.store.append(e),this.buffer=[]}mergeChunks(e){if(1===e.length)return e[0];const t=e.reduce((e,t)=>e+t.byteLength,0),s=new Uint8Array(t);let n=0;for(const t of e)s.set(t,n),n+=t.byteLength;return s}async recover(e){if(!this.enabled)return 0;if(!await this.store.exists())return 0;const t=await this.store.readAll();if(0===t.byteLength)return 0;const s=this.decodeAllRecords(t);for(const t of s)e(t);return this.lsn=s.length>0?s[s.length-1].lsn:0,s.length}async checkpoint(){this.enabled&&(await this.flush(),await this.store.truncate(),this.lsn=0,this.bufferedBytes=0)}isEnabled(){return this.enabled}getLSN(){return this.lsn}getBufferedCount(){return this.buffer.length}getBufferedBytes(){return this.bufferedBytes}encodeRecord(e){const t=new TextEncoder,s=t.encode(e.tableName),n=t.encode(e.key),i=e.data?JSON.stringify(e.data):"",r=t.encode(i),o=11+s.length+2+n.length+4+r.length+4,a=new ArrayBuffer(o),h=new DataView(a);let c=0;h.setUint32(c,e.lsn,!1),c+=4,h.setUint8(c,e.type),c+=1,h.setUint32(c,e.txnId,!1),c+=4,h.setUint16(c,s.length,!1),c+=2,new Uint8Array(a).set(s,c),c+=s.length,h.setUint16(c,n.length,!1),c+=2,new Uint8Array(a).set(n,c),c+=n.length,h.setUint32(c,r.length,!1),c+=4,new Uint8Array(a).set(r,c),c+=r.length;let l=0;const u=new Uint8Array(a,0,c);for(let e=0;e>>0,!1),new Uint8Array(a)}decodeAllRecords(e){const t=[],s=new DataView(e.buffer,e.byteOffset,e.byteLength);let n=0;for(;n+15<=e.byteLength;)try{const i=n,r=s.getUint32(n,!1);n+=4;const o=s.getUint8(n);n+=1;const a=s.getUint32(n,!1);n+=4;const h=s.getUint16(n,!1);if(n+=2,n+h>e.byteLength)break;const c=(new TextDecoder).decode(e.slice(n,n+h));n+=h;const l=s.getUint16(n,!1);if(n+=2,n+l>e.byteLength)break;const u=(new TextDecoder).decode(e.slice(n,n+l));n+=l;const f=s.getUint32(n,!1);if(n+=4,n+f>e.byteLength)break;let d;if(f>0){const t=(new TextDecoder).decode(e.slice(n,n+f));try{d=JSON.parse(t)}catch{}}n+=f;const m=s.getUint32(n,!1);n+=4;const p=e.slice(i,n-4);let g=0;for(let e=0;e>>0!==m)continue;t.push({lsn:r,type:o,txnId:a,tableName:c,key:u,data:d,checksum:m})}catch{break}return t}}class U{constructor(e,t,s=null,n=1e3,i=16777216){this.opCount=0,this.lsm=e,this.wal=t,this.flushable=s,this.interval=n,this.walSizeThreshold=i}async tick(){this.opCount++,(this.opCount>=this.interval||this.getWALEstimatedSize()>=this.walSizeThreshold)&&await this.checkpoint()}getWALEstimatedSize(){const e=this.wal;if("function"==typeof e.getBufferedBytes){const t=e.getBufferedBytes();if(t>0)return t}return 200*("function"==typeof e.getBufferedCount?e.getBufferedCount():0)}async checkpoint(){await this.lsm.flush(),this.flushable&&await this.flushable.flushAll(),await this.wal.checkpoint(),this.opCount=0}async forceCheckpoint(){await this.checkpoint()}setInterval(e){this.interval=e}getOpCount(){return this.opCount}}class P{constructor(){this.db=null,this.dbName="",this.storeName="data"}async open(e){return this.dbName=`aria-${e}`,new Promise((e,t)=>{const s=indexedDB.open(this.dbName,1);s.onupgradeneeded=()=>{const e=s.result;e.objectStoreNames.contains(this.storeName)||e.createObjectStore(this.storeName)},s.onsuccess=()=>{this.db=s.result,e()},s.onerror=()=>t(new n("Failed to open AriaEngine IndexedDB","ARIA_IDB_OPEN_ERROR"))})}async close(){this.db&&(this.db.close(),this.db=null)}isOpen(){return null!==this.db}async read(e){const t=this.ensureDB();return new Promise((s,i)=>{const r=t.transaction(this.storeName,"readonly").objectStore(this.storeName).get(e);r.onsuccess=()=>s(r.result??null),r.onerror=()=>i(new n("Failed to read from AriaEngine store","ARIA_READ_ERROR"))})}async write(e,t){const s=this.ensureDB();return new Promise((i,r)=>{const o=s.transaction(this.storeName,"readwrite");o.objectStore(this.storeName).put(t,e),o.oncomplete=()=>i(),o.onerror=()=>r(new n("Failed to write to AriaEngine store","ARIA_WRITE_ERROR"))})}async delete(e){const t=this.ensureDB();return new Promise((s,i)=>{const r=t.transaction(this.storeName,"readwrite");r.objectStore(this.storeName).delete(e),r.oncomplete=()=>s(),r.onerror=()=>i(new n("Failed to delete from AriaEngine store","ARIA_DELETE_ERROR"))})}async listKeys(){const e=this.ensureDB();return new Promise((t,s)=>{const i=e.transaction(this.storeName,"readonly").objectStore(this.storeName).getAllKeys();i.onsuccess=()=>t(i.result??[]),i.onerror=()=>s(new n("Failed to list keys","ARIA_LIST_ERROR"))})}async exists(e){return null!==await this.read(e)}async clear(){const e=this.ensureDB();return new Promise((t,s)=>{const i=e.transaction(this.storeName,"readwrite");i.objectStore(this.storeName).clear(),i.oncomplete=()=>t(),i.onerror=()=>s(new n("Failed to clear AriaEngine store","ARIA_CLEAR_ERROR"))})}ensureDB(){if(!this.db)throw new n("AriaEngine storage not opened","ARIA_DB_NOT_OPEN");return this.db}}class j{constructor(){this.store=new Map,this.opened=!1}async open(e){this.opened=!0}async close(){this.store.clear(),this.opened=!1}isOpen(){return this.opened}async read(e){return this.store.get(e)??null}async write(e,t){this.store.set(e,t)}async delete(e){this.store.delete(e)}async listKeys(){return Array.from(this.store.keys())}async exists(e){return this.store.has(e)}async clear(){this.store.clear()}}class F{constructor(){this.root=null,this.dbDir=null,this.dbName="",this.writeQueue=Promise.resolve()}async open(e){this.dbName=e,this.root=await navigator.storage.getDirectory(),this.dbDir=await this.root.getDirectoryHandle(e,{create:!0})}async close(){this.dbDir=null,this.root=null}isOpen(){return null!==this.dbDir}async read(e){if(!this.dbDir)return null;try{const t=await this.dbDir.getFileHandle(e),s=await t.getFile();return await s.arrayBuffer()}catch{return null}}async write(e,t){if(this.dbDir)return this.writeQueue=this.writeQueue.then(async()=>{const s=await this.dbDir.getFileHandle(e,{create:!0}),n=await s.createWritable();await n.write(t),await n.close()}),this.writeQueue}async delete(e){if(this.dbDir)return this.writeQueue=this.writeQueue.then(async()=>{try{await this.dbDir.removeEntry(e)}catch{}}),this.writeQueue}async listKeys(){if(!this.dbDir)return[];const e=[],t=this.dbDir;for await(const[s]of t.entries())e.push(s);return e}async exists(e){if(!this.dbDir)return!1;try{return await this.dbDir.getFileHandle(e),!0}catch{return!1}}async clear(){if(!this.dbDir)return;const e=this.dbDir;for await(const[t]of e.entries())try{await this.dbDir.removeEntry(t)}catch{}}}function K(e,t,s){const n=new DataView(e);n.setUint32(0,t,!1),n.setUint8(4,s),n.setUint16(5,16,!1),n.setUint16(7,e.byteLength,!1),n.setUint16(9,0,!1),n.setUint32(11,0,!1),n.setUint8(15,0)}class z{constructor(e){this.nextPageId=0,this.metaLoaded=!1,this.dbName="",this.backend=e}async init(e){this.dbName=e;const t=await this.backend.read("__aria_meta");if(t&&t instanceof ArrayBuffer&&t.byteLength>=4){const e=new DataView(t);this.nextPageId=e.getUint32(0,!1)}else this.nextPageId=1,await this.saveMeta();this.metaLoaded=!0}async readPage(e){const t=`pg_${e}`,s=await this.backend.read(t);if(!s)return this.createEmptyPage(e,b.DATA);if(s.byteLengtht.txnId!==e);0===n.length?this.versionStore.delete(t):this.versionStore.set(t,n)}this.activeTxns.delete(e)}isActive(e){const t=this.activeTxns.get(e);return void 0!==t&&t.state===I.ACTIVE}writeVersion(e,t,s,n){const i=`${e}.${t}`,r=this.versionStore.get(i)??[],o={txnId:n,data:s,prevVersion:r.length>0?r[r.length-1]:null,committed:!1};r.push(o),this.versionStore.set(i,r)}readVersion(e,t,s){if(!this.activeTxns.get(s))return null;const n=`${e}.${t}`,i=this.versionStore.get(n);if(!i||0===i.length)return null;for(let e=i.length-1;e>=0;e--){const t=i[e];if(t.txnId===s)return t.data;if(t.committed)return t.data}return null}deleteVersion(e,t,s){this.writeVersion(e,t,{__mvcc_tombstone:!0},s)}getLatestCommittedVersions(e){const t={};for(const[s,n]of this.versionStore){if(!s.startsWith(`${e}.`))continue;const i=s.slice(e.length+1);for(let e=n.length-1;e>=0;e--){const s=n[e];if(s.committed&&!s.data.__mvcc_tombstone){t[i]=s.data;break}}}return t}discardVersions(e){for(const[t,s]of this.versionStore){const n=s.filter(t=>t.txnId!==e);0===n.length?this.versionStore.delete(t):this.versionStore.set(t,n)}}gc(e=100){for(const[t,s]of this.versionStore){if(s.length<=e)continue;const n=s.slice(s.length-e);this.versionStore.set(t,n)}}getActiveWriteKeys(e,t){const s=new Set,n=`${e}.`;for(const[e,i]of this.versionStore){if(!e.startsWith(n))continue;const r=i[i.length-1];r.txnId!==t||r.committed||s.add(e.slice(n.length))}return s}clearTable(e){const t=`${e}.`;for(const[e]of this.versionStore)e.startsWith(t)&&this.versionStore.delete(e)}getActiveTxnCount(){return this.activeTxns.size}getGlobalLSN(){return this.globalCommitLsn}}class V{constructor(){this.head=null,this.tail=null,this._size=0}get size(){return this._size}moveToHead(e){this.head!==e&&(null!==e.prev||null!==e.next||this.head===e||this.tail===e?this.detach(e):this._size++,e.prev=null,e.next=this.head,this.head&&(this.head.prev=e),this.head=e,this.tail||(this.tail=e))}remove(e){(null!==e.prev||null!==e.next||this.head===e||this.tail===e)&&(this.detach(e),this._size=Math.max(0,this._size-1))}detach(e){e.prev?e.prev.next=e.next:this.head===e&&(this.head=e.next),e.next?e.next.prev=e.prev:this.tail===e&&(this.tail=e.prev),e.prev=null,e.next=null}getLRU(){return this.tail}popLRU(){const e=this.tail;return e&&this.remove(e),e}clear(){this.head=null,this.tail=null,this._size=0}getAllPages(){const e=[];let t=this.head;for(;t;)e.push(t),t=t.next;return e}}class W{constructor(e,t){this.lru=new V,this.capacity=e,this.onEvict=t}access(e){e.lastAccess=Date.now(),this.lru.moveToHead(e)}add(e){this.access(e)}remove(e){this.lru.remove(e)}async evictIfNeeded(e){let t=0;for(;this.lru.size+e>this.capacity&&this.lru.size>0;){const e=this.findEvictionCandidate();if(!e)break;e.dirty&&(await this.onEvict(e),e.dirty=!1),this.lru.remove(e),t++}return t}findEvictionCandidate(){let e=this.lru.getLRU();for(;e;){if(0===e.pins&&!e.dirty)return e;e=e.prev}for(e=this.lru.getLRU();e;){if(0===e.pins)return e;e=e.prev}return null}getSize(){return this.lru.size}getCapacity(){return this.capacity}clear(){this.lru.clear()}}class G{constructor(e,t=256){this.pages=new Map,this.nextPageId=0,this.pageIO=e,this.eviction=new W(t,async e=>{e.dirty&&(await this.pageIO.writePage(e.pageId,e.data),e.dirty=!1)})}async getPage(e){let t=this.pages.get(e);if(t)return this.eviction.access(t),t.pins++,t;const s=await this.pageIO.readPage(e);return s?(await this.eviction.evictIfNeeded(1),t={pageId:e,type:new DataView(s).getUint8(4),data:s,dirty:!1,pins:1,prev:null,next:null,lastAccess:Date.now()},this.pages.set(e,t),this.eviction.add(t),t):null}async newPage(e=b.DATA){const t=await this.pageIO.allocatePageId();await this.eviction.evictIfNeeded(1);const s=function(e,t){const s=new ArrayBuffer(T);return K(s,e,t),{pageId:e,type:t,data:s,dirty:!0,pins:0,prev:null,next:null,lastAccess:Date.now()}}(t,e);return s.pins=1,this.pages.set(t,s),this.eviction.add(s),s}unpin(e){e.pins>0&&e.pins--}markDirty(e){e.dirty=!0}async flushPage(e){const t=this.pages.get(e);t&&t.dirty&&(await this.pageIO.writePage(e,t.data),t.dirty=!1)}async flushAll(){for(const[,e]of this.pages)e.dirty&&(await this.pageIO.writePage(e.pageId,e.data),e.dirty=!1)}removePage(e){const t=this.pages.get(e);t&&(this.eviction.remove(t),this.pages.delete(e))}async clear(){await this.flushAll(),this.pages.clear(),this.eviction.clear()}getCachedPageCount(){return this.pages.size}getCapacity(){return this.eviction.getCapacity()}getDirtyPageCount(){let e=0;for(const[,t]of this.pages)t.dirty&&e++;return e}}const H="AES-GCM",X=new class{constructor(){this.cryptoKey=null,this._enabled=!1}get enabled(){return this._enabled}async init(e,t){const s=new TextEncoder,n=await crypto.subtle.importKey("raw",s.encode(e),"PBKDF2",!1,["deriveKey"]),i=t||crypto.getRandomValues(new Uint8Array(16));return this.cryptoKey=await crypto.subtle.deriveKey({name:"PBKDF2",salt:i,iterations:1e5,hash:"SHA-256"},n,{name:H,length:256},!1,["encrypt","decrypt"]),this._enabled=!0,i}async encryptPage(e){if(!this.cryptoKey)throw new Error("Crypto not initialized");const t=crypto.getRandomValues(new Uint8Array(12));return{iv:t,data:await crypto.subtle.encrypt({name:H,iv:t},this.cryptoKey,new Uint8Array(e))}}async decryptPage(e,t){if(!this.cryptoKey)throw new Error("Crypto not initialized");return crypto.subtle.decrypt({name:H,iv:e},this.cryptoKey,new Uint8Array(t))}close(){this.cryptoKey=null,this._enabled=!1}};function J(){return X.enabled}class Q{constructor(e={}){this.name="aria",this.opened=!1,this.dbName="",this.schemas=new Map,this.tablePKs=new Map,this.opCounter=0,this.secondaryIndexes=new Map,this.mvcc=new q,this.currentTxnId=null,this.txnSnapshot=null,this.gcCounter=0,this.savepoints=new Map,this.config={...S,...e}}async open(e,t){if(this.opened)return;this.dbName=e,"opfs"===this.config.storageBackend?this.backend=new F:"indexeddb"===this.config.storageBackend?this.backend=new P:this.backend=new j,await this.backend.open(e);const s=new z(this.backend);await s.init(e),this.bufferPool=new G(s,this.config.bufferPoolPages);const n=this.createSSTableStore("main");this.lsm=new B({memtableSizeThreshold:this.config.memtableSizeThreshold,levelSizeMultiplier:this.config.levelSizeMultiplier,blockSize:this.config.pageSize,bloomBitsPerKey:this.config.bloomFilterBitsPerKey,cacheLimitBytes:this.config.bufferPoolPages*this.config.pageSize,sstableStore:n}),this.wal=new M({append:async e=>{const t=await this.getWALCount(),s=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),n=s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength);await this.backend.write(`__wal_${t}`,n),await this.setWALCount(t+1)},readAll:async()=>{const e=await this.getWALCount();if(0===e)return new Uint8Array(0);const t=[];for(let s=0;se+t.byteLength,0),n=new Uint8Array(s);let i=0;for(const e of t)n.set(e,i),i+=e.byteLength;return n},truncate:async()=>{const e=await this.getWALCount();for(let t=0;tawait this.getWALCount()>0},this.config.walEnabled,this.config.walSyncMode),await this.loadSchemas(),await this.lsm.init();const i=new Set,r=[];await this.wal.recover(e=>r.push(e));for(const e of r)e.type===x.COMMIT&&i.add(e.txnId),e.type===x.ROLLBACK&&i.delete(e.txnId);for(const e of r)(0===e.txnId||i.has(e.txnId))&&(e.type===x.DROP_TABLE?await this.applyDropTableRecovery(e.tableName):this.applyWALRecord(e));r.length>0&&(await this.lsm.flush(),await this.wal.checkpoint()),this.checkpointManager=new U(this.lsm,this.wal,{flushAll:async()=>{await this.lsm.flush()}},this.config.checkpointInterval,this.config.walSizeThreshold),this.opened=!0}async close(){this.opened&&(await this.persistSchemas(),await this.lsm.flush(),await this.wal.flush(),await this.backend.close(),this.schemas.clear(),this.opened=!1)}async clearAll(){this.ensureOpen(),await this.backend.clear(),this.schemas.clear(),this.tablePKs.clear(),this.secondaryIndexes.clear(),this.lsm.clear(),this.mvcc=new q,this.currentTxnId=null,this.txnSnapshot=null,this.savepoints.clear(),this.opCounter=0,await this.persistSchemas(),await this.wal.checkpoint()}isOpen(){return this.opened}async createTable(e){if(this.ensureOpen(),this.schemas.has(e.name))throw new n(`Table "${e.name}" already exists`,"TABLE_EXISTS");this.schemas.set(e.name,e),this.tablePKs.set(e.name,this.getPK(e));for(const[t,s]of Object.entries(e.columns))if(s.index||s.unique){const s=`${e.name}:idx:${t}`;if(!this.secondaryIndexes.has(s)){const n=new B({memtableSizeThreshold:this.config.memtableSizeThreshold,levelSizeMultiplier:this.config.levelSizeMultiplier,blockSize:this.config.pageSize,bloomBitsPerKey:this.config.bloomFilterBitsPerKey,cacheLimitBytes:this.config.bufferPoolPages*this.config.pageSize,sstableStore:this.createSSTableStore(`idx_${e.name}_${t}`)});await n.init(),this.secondaryIndexes.set(s,n)}}await this.persistSchemas(),await this.wal.append({type:x.CREATE_TABLE,txnId:0,tableName:e.name,key:"",data:{schema:JSON.stringify(e)}})}async dropTable(e){this.ensureOpen(),this.ensureTable(e);const t=await this.getAllRows(e);for(const s of t){const t=this.tablePKs.get(e);this.lsm.delete(`${e}:${s[t]}`)}this.schemas.delete(e),this.tablePKs.delete(e),await this.persistSchemas(),await this.wal.append({type:x.DROP_TABLE,txnId:0,tableName:e,key:""})}async hasTable(e){return this.schemas.has(e)}async getTableNames(){return Array.from(this.schemas.keys())}async getTableSchema(e){return this.schemas.get(e)??null}async insert(e,t){this.ensureOpen(),this.ensureTable(e);const s=this.schemas.get(e),i=this.tablePKs.get(e),r=[],o=[];for(const a of t){const t=this.validateRow(s,a),h=String(t[i]),c=`${e}:${h}`;await this.lsm.prefetchKeys([c]);const l=this.currentTxnId?this.txnSnapshot?.get(c)??this.lsm.get(c):this.lsm.get(c);if(l&&!l.__txn_deleted)throw new n(`Duplicate primary key "${h}" in table "${e}"`,"DUPLICATE_KEY");this.currentTxnId&&this.txnSnapshot?(this.txnSnapshot.set(c,t),this.mvcc.writeVersion(e,h,t,this.currentTxnId)):this.lsm.put(c,t),this.updateSecondaryIndexes(e,h,t,null),r.push(h),o.push({type:x.INSERT,txnId:this.currentTxnId??0,tableName:e,key:h,data:t})}return await this.wal.appendBatch(o),this.opCounter+=t.length,this.checkMemoryBudget(),await this.checkpointManager.tick(),this.tryGC(),r}async find(e,t){let s;this.ensureOpen(),this.ensureTable(e);const n=await this.tryIndexLookup(e,t);s=null!==n?n:await this.getAllRows(e),s=this.mergeTxnSnapshot(e,s),t.where&&Object.keys(t.where).length>0&&(s=s.filter(e=>o(e,t.where))),t.orderBy&&t.orderBy.length>0&&(s=c(s,t.orderBy));const i=t.offset??0,r=t.limit??s.length;return s=s.slice(i,i+r),t.columns&&t.columns.length>0&&"*"!==t.columns[0]&&(s=s.map(e=>u(e,t.columns))),this.trimAllCaches(),s}async update(e,t,s){this.ensureOpen(),this.ensureTable(e);const n=this.schemas.get(e),i=await this.getAllRows(e);let r=0;const a=[];for(const h of i){const i=this.tablePKs.get(e),c=`${e}:${h[i]}`;if(!t.where||0===Object.keys(t.where).length||o(h,t.where)){const t={...h,...s};this.validateRow(n,t),this.currentTxnId&&this.txnSnapshot?(this.txnSnapshot.set(c,t),this.mvcc.writeVersion(e,String(h[i]),t,this.currentTxnId)):this.lsm.put(c,t),r++,a.push({type:x.UPDATE,txnId:this.currentTxnId??0,tableName:e,key:String(h[i]),data:t}),this.updateSecondaryIndexes(e,String(h[i]),t,h)}}return await this.wal.appendBatch(a),this.opCounter+=r,await this.checkpointManager.tick(),this.trimAllCaches(),r}async delete(e,t){this.ensureOpen(),this.ensureTable(e);const s=await this.getAllRows(e);let n=0;const i=[],r=new Set;for(const a of s){const s=this.tablePKs.get(e),h=`${e}:${a[s]}`;t.where&&0!==Object.keys(t.where).length&&!o(a,t.where)||(n+=await this.applyForeignKeyRules(e,String(a[s]),i,r),this.currentTxnId&&this.txnSnapshot?(this.txnSnapshot.set(h,{__txn_deleted:!0}),this.mvcc.deleteVersion(e,String(a[s]),this.currentTxnId)):this.lsm.delete(h),n++,i.push({type:x.DELETE,txnId:this.currentTxnId??0,tableName:e,key:String(a[s])}),this.updateSecondaryIndexes(e,String(a[s]),null,a))}return await this.wal.appendBatch(i),this.opCounter+=n,await this.checkpointManager.tick(),this.trimAllCaches(),n}async applyForeignKeyRules(e,t,s,i){let r=0;const o=`${e}:${t}`;if(i.has(o))return 0;i.add(o);for(const[o,a]of this.schemas)if(o!==e)for(const[h,c]of Object.entries(a.columns)){if(!c.references||!c.onDelete)continue;const[a]=c.references.split(".");if(a!==e)continue;const l=(await this.getAllRows(o)).filter(e=>String(e[h])===t);if("RESTRICT"===c.onDelete&&l.length>0)throw new n(`Cannot delete from "${e}": foreign key "${h}" in "${o}" has dependent rows`,"FOREIGN_KEY_VIOLATION");if("CASCADE"===c.onDelete){const e=this.tablePKs.get(o);for(const t of l){const n=String(t[e]);r+=await this.applyForeignKeyRules(o,n,s,i);const a=`${o}:${n}`;this.currentTxnId&&this.txnSnapshot?(this.txnSnapshot.set(a,{__txn_deleted:!0}),this.mvcc.deleteVersion(o,n,this.currentTxnId)):this.lsm.delete(a),this.updateSecondaryIndexes(o,n,null,t),s.push({type:x.DELETE,txnId:this.currentTxnId??0,tableName:o,key:n}),r++}}else if("SET NULL"===c.onDelete){const e=this.tablePKs.get(o);for(const t of l){const n=String(t[e]),i={...t,[h]:null},r=`${o}:${n}`;this.currentTxnId&&this.txnSnapshot?(this.txnSnapshot.set(r,i),this.mvcc.writeVersion(o,n,i,this.currentTxnId)):this.lsm.put(r,i),this.updateSecondaryIndexes(o,n,i,t),s.push({type:x.UPDATE,txnId:this.currentTxnId??0,tableName:o,key:n,data:i})}}}return r}async findStream(e,t,s){this.ensureOpen(),this.ensureTable(e);const n=!!(t.where&&Object.keys(t.where).length>0),i=t.columns&&t.columns.length>0&&"*"!==t.columns[0]?e=>u(e,t.columns):null,r=t.limit??1/0,a=t.offset??0,h=this.tablePKs.get(e),c=`${e}:`;let l=0,f=0;const d=e=>!(!n||o(e,t.where))||(f{if(l>=r)return;const s={...t};s[h]=e.slice(c.length),d(s)}),l}async count(e,t){this.ensureOpen(),this.ensureTable(e);const s=await this.getAllRows(e);return this.trimAllCaches(),t?.where&&0!==Object.keys(t.where).length?s.filter(e=>o(e,t.where)).length:s.length}async clear(e){this.ensureOpen(),this.ensureTable(e);const t=await this.getAllRows(e),s=[];for(const n of t){const t=this.tablePKs.get(e),i=`${e}:${n[t]}`;this.currentTxnId&&this.txnSnapshot?(this.txnSnapshot.set(i,{__txn_deleted:!0}),this.mvcc.deleteVersion(e,String(n[t]),this.currentTxnId)):this.lsm.delete(i),s.push({type:x.DELETE,txnId:this.currentTxnId??0,tableName:e,key:String(n[t])}),this.updateSecondaryIndexes(e,String(n[t]),null,n)}await this.wal.appendBatch(s),this.opCounter+=t.length,await this.checkpointManager.tick(),this.tryGC()}async alterTable(e,t,s){this.ensureOpen(),this.ensureTable(e);const i=this.schemas.get(e);if("ADD"===t){if(i.columns[s.name])throw new n(`Column "${s.name}" already exists in table "${e}"`,"COLUMN_EXISTS");return i.columns[s.name]=s,void await this.persistSchemas()}if(!i.columns[s.name])throw new n(`Column "${s.name}" does not exist in table "${e}"`,"COLUMN_NOT_FOUND");delete i.columns[s.name],await this.persistSchemas(),this.tablePKs.get(e);const r=`${e}:`,o=`${r}￿`;await this.lsm.prefetchRange(r,o);const a=this.lsm.rangeScan(r,o),h=[];for(const[t,n]of a){if(!(s.name in n))continue;const i={...n};delete i[s.name],this.lsm.put(t,i);const o=t.slice(r.length);this.updateSecondaryIndexes(e,o,i,n),h.push({type:x.UPDATE,txnId:this.currentTxnId??0,tableName:e,key:o,data:i})}await this.wal.appendBatch(h),this.opCounter+=h.length,await this.checkpointManager.tick(),this.trimAllCaches()}async createIndex(e,t,s){this.ensureOpen(),this.ensureTable(e);const i=this.schemas.get(e).columns[t];if(!i)throw new n(`Column "${t}" does not exist in table "${e}"`,"COLUMN_NOT_FOUND");if(i.index||i.unique)return;i.index=!0,s&&(i.unique=!0);const r=`${e}:idx:${t}`;if(!this.secondaryIndexes.has(r)){const s=new B({memtableSizeThreshold:this.config.memtableSizeThreshold,levelSizeMultiplier:this.config.levelSizeMultiplier,blockSize:this.config.pageSize,bloomBitsPerKey:this.config.bloomFilterBitsPerKey,cacheLimitBytes:this.config.bufferPoolPages*this.config.pageSize,sstableStore:this.createSSTableStore(`idx_${e}_${t}`)});await s.init(),this.secondaryIndexes.set(r,s)}const o=this.secondaryIndexes.get(r),a=this.tablePKs.get(e),h=await this.getAllRows(e);for(const e of h){const s=e[t];null!=s&&o.put(`${String(s)}:${e[a]}`,{pk:e[a]})}await o.flush(),await this.persistSchemas()}async dropIndex(e,t,s){this.ensureOpen(),this.ensureTable(e);const i=this.schemas.get(e).columns[t];if(!i)throw new n(`Column "${t}" does not exist in table "${e}"`,"COLUMN_NOT_FOUND");if(i.primaryKey)throw new n(`Cannot drop primary key index on column "${t}"`,"NOT_SUPPORTED");if(!i.index&&!i.unique&&!this.secondaryIndexes.has(`${e}:idx:${t}`))throw new n(`Index on column "${t}" does not exist in table "${e}"`,"INDEX_NOT_FOUND");i.index=!1,i.unique=!1;const r=`${e}:idx:${t}`,o=this.secondaryIndexes.get(r);o&&(await o.clear(),this.secondaryIndexes.delete(r)),await this.persistSchemas()}async beginTransaction(){if(this.currentTxnId)throw new n("Transaction already in progress","TX_ACTIVE");this.currentTxnId=this.mvcc.beginTransaction(),this.txnSnapshot=new Map,await this.wal.append({type:x.BEGIN,txnId:this.currentTxnId,tableName:"",key:""})}async commitTransaction(){if(!this.currentTxnId)throw new n("No active transaction","TX_NONE");if(this.txnSnapshot)for(const[e,t]of this.txnSnapshot)t.__txn_deleted?this.lsm.delete(e):this.lsm.put(e,t);this.mvcc.commitTransaction(this.currentTxnId),await this.wal.append({type:x.COMMIT,txnId:this.currentTxnId,tableName:"",key:""}),this.currentTxnId=null,this.txnSnapshot=null,await this.wal.flush()}async rollbackTransaction(){if(!this.currentTxnId)throw new n("No active transaction","TX_NONE");const e=new Set;if(this.txnSnapshot)for(const t of this.txnSnapshot.keys()){const s=t.indexOf(":");s>0&&e.add(t.slice(0,s))}this.mvcc.rollbackTransaction(this.currentTxnId),this.txnSnapshot=null,await this.wal.append({type:x.ROLLBACK,txnId:this.currentTxnId,tableName:"",key:""}),this.currentTxnId=null;for(const t of e)this.schemas.has(t)&&await this.reindexTable(t)}async savepoint(e){if(!this.currentTxnId)throw new n("No active transaction for savepoint","TX_NONE");if(this.savepoints.has(e))throw new n(`Savepoint "${e}" already exists`,"SAVEPOINT_EXISTS");this.savepoints.set(e,{txnId:this.currentTxnId,snapshot:this.txnSnapshot?new Map(this.txnSnapshot):null})}async rollbackToSavepoint(e){const t=this.savepoints.get(e);if(!t)throw new n(`Savepoint "${e}" not found`,"SAVEPOINT_NOT_FOUND");this.txnSnapshot=t.snapshot?new Map(t.snapshot):null,this.mvcc.discardVersions(this.currentTxnId);let s=!1;for(const[t]of this.savepoints)t!==e?s&&this.savepoints.delete(t):s=!0}async releaseSavepoint(e){if(!this.savepoints.has(e))throw new n(`Savepoint "${e}" not found`,"SAVEPOINT_NOT_FOUND");this.savepoints.delete(e)}async backup(){this.ensureOpen();const e={};for(const t of this.schemas.keys())e[t]=await this.getAllRows(t);return e}async getAllRows(e){const t=this.tablePKs.get(e),s=`${e}:`;await this.lsm.prefetchRange(s,`${s}￿`);const n=this.lsm.rangeScan(s,`${s}￿`).map(([e,n])=>{const i={...n};return i[t]=e.slice(s.length),i});return this.mergeTxnSnapshot(e,n)}mergeTxnSnapshot(e,t){if(!this.currentTxnId||!this.txnSnapshot)return t;const s=this.tablePKs.get(e),n=`${e}:`;for(const[e,i]of this.txnSnapshot){if(!e.startsWith(n))continue;const r=e.slice(n.length),o=i.__txn_deleted,a=t.findIndex(e=>e[s]===r);if(o)a>=0&&t.splice(a,1);else{const e={...i,[s]:r};a>=0?t[a]=e:t.push(e)}}return t}getPK(e){for(const[t,s]of Object.entries(e.columns))if(s.primaryKey)return t;return Object.keys(e.columns)[0]}validateRow(e,t){const s={};for(const[i,r]of Object.entries(e.columns)){let o=t[i];if(void 0===o&&void 0!==r.default&&(o=r.default),r.required&&null==o)throw new n(`Column "${i}" is required in table "${e.name}"`,"VALIDATION_ERROR");null!=o&&this.checkType(i,r.type,o,r),void 0!==o&&(s[i]=o)}return s}checkType(e,t,s,i){!function(e,t,s,i,r){const o=typeof i;switch(s){case"string":if("string"!==o)throw new n(`Column "${t}" in table "" expects string, got ${o}`,"TYPE_ERROR");if(void 0!==r?.maxLength&&i.length>r.maxLength)throw new n(`Column "${t}" in table "" exceeds max length ${r.maxLength}`,"VALIDATION_ERROR");break;case"number":if("number"!==o)throw new n(`Column "${t}" in table "" expects number, got ${o}`,"TYPE_ERROR");if(void 0!==r?.min&&ir.max)throw new n(`Column "${t}" in table "" value ${i} above maximum ${r.max}`,"VALIDATION_ERROR");break;case"boolean":if("boolean"!==o)throw new n(`Column "${t}" in table "" expects boolean, got ${o}`,"TYPE_ERROR");break;case"date":if("string"!==o||isNaN(Date.parse(i)))throw new n(`Column "${t}" in table "" expects valid date string, got ${typeof i}`,"TYPE_ERROR");break;case"json":if("object"!==o)throw new n(`Column "${t}" in table "" expects object/array, got ${o}`,"TYPE_ERROR")}}(0,e,t,s,i)}async persistSchemas(){const e={};for(const[t,s]of this.schemas)e[t]=s.columns;const t=JSON.stringify(e),s=(new TextEncoder).encode(t).buffer;await this.backend.write("__aria_schemas",s)}async loadSchemas(){const e=await this.backend.read("__aria_schemas");if(e)try{const t=(new TextDecoder).decode(e),s=JSON.parse(t);for(const[e,t]of Object.entries(s)){const s={name:e,columns:t};this.schemas.set(e,s),this.tablePKs.set(e,this.getPK(s))}}catch{}}createSSTableStore(e){const t="main"===e?"sst_":`sst_${e}_`,s="main"===e?"__aria_lsm_meta":`__aria_lsm_meta_${e}`;let n=0,i=!1;const r=e=>(new TextEncoder).encode(e).buffer,o=async()=>{const e=await this.backend.read(s);if(!e)return[];try{return JSON.parse((new TextDecoder).decode(e))}catch{return[]}};return{save:async(e,s)=>{let n=s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength);if(this.config.compression){const e=function(e){if(0===e.byteLength)return e;const t=e.byteLength+Math.ceil(e.byteLength/15)+8,s=new Uint8Array(t);let n=0,i=0,r=0;for(;n=4&&i>t&&(t=i,o=n-s)}if(t>4&&n-r<=15){const a=n-r,h=t-4;s[i++]=(15&a)<<4|15&h;for(let t=0;t>8&255,n+=t,r=n}else if(n++,n-r>=15){s[i++]=240;for(let t=0;t<15;t++)s[i++]=e[r+t];r=n}}let o=n-r;for(;o>0;){const t=Math.min(o,15);s[i++]=(15&t)<<4;for(let n=0;n{const s=await this.backend.read(`${t}${e}`);if(!s)return null;let n=new Uint8Array(s);if(J()&&n.length>16){const e=n.slice(0,12),t=new DataView(n.buffer,n.byteOffset+12,4).getUint32(0,!1),s=n.slice(16).buffer,i=await async function(e,t){return X.decryptPage(e,t)}(e,s);n=new Uint8Array(i,0,t)}if(this.config.compression){const e=function(e,t){const s=new Uint8Array(t);let n=0,i=0;for(;n>4&15,a=15&r;for(let r=0;r=e.byteLength)break;const h=e[n++]|e[n++]<<8,c=a+4;for(let e=0;e{await this.backend.delete(`${t}${e}`)},allocateId:async()=>{if(!i){const e=await o();n=e.reduce((e,t)=>Math.max(e,t.id),0),i=!0}return++n},listMeta:o,saveMeta:async e=>{const t=await o(),n=t.findIndex(t=>t.id===e.id);n>=0?t[n]=e:t.push(e),await this.backend.write(s,r(JSON.stringify(t)))},deleteMeta:async e=>{const t=(await o()).filter(t=>t.id!==e);await this.backend.write(s,r(JSON.stringify(t)))}}}applyWALRecord(e){switch(e.type){case x.INSERT:case x.UPDATE:e.data&&this.lsm.put(`${e.tableName}:${e.key}`,e.data);break;case x.DELETE:this.lsm.delete(`${e.tableName}:${e.key}`);break;case x.CREATE_TABLE:if(e.data?.schema)try{const t=JSON.parse(e.data.schema);this.schemas.has(t.name)||(this.schemas.set(t.name,t),this.tablePKs.set(t.name,this.getPK(t)))}catch{}case x.COMMIT:case x.ROLLBACK:case x.BEGIN:}}async applyDropTableRecovery(e){if(!e)return;this.schemas.delete(e),this.tablePKs.delete(e);const t=`${e}:`,s=`${t}￿`;await this.lsm.prefetchRange(t,s);const n=this.lsm.rangeScan(t,s);for(const[e]of n)this.lsm.delete(e)}updateSecondaryIndexes(e,t,s,n){const i=this.schemas.get(e);if(i)for(const[r,o]of Object.entries(i.columns)){if(!o.index&&!o.unique)continue;const i=`${e}:idx:${r}`,a=this.secondaryIndexes.get(i);if(a){if(n){const e=n[r];null!=e&&a.delete(`${String(e)}:${t}`)}if(s){const e=s[r];null!=e&&a.put(`${String(e)}:${t}`,{pk:t})}}}}async tryIndexLookup(e,t){if(!t.where)return null;const s=this.schemas.get(e);if(!s)return null;const n=this.tablePKs.get(e);for(const[i,r]of Object.entries(t.where)){if("$and"===i||"$or"===i||"$not"===i)continue;const t=s.columns[i];if(!(t&&(t.index||t.unique||t.primaryKey)||i===n))continue;if(i===n){if("object"!=typeof r||null===r){const t=`${e}:${r}`;await this.lsm.prefetchKeys([t]);const s=this.lsm.get(t);return s?[{...s,[n]:r}]:[]}const t=r;if("$eq"in t){const s=`${e}:${t.$eq}`;await this.lsm.prefetchKeys([s]);const i=this.lsm.get(s);return i?[{...i,[n]:t.$eq}]:[]}if("$in"in t&&Array.isArray(t.$in)){const s=t.$in.map(t=>`${e}:${t}`);await this.lsm.prefetchKeys(s);const i=[],r=new Set;for(const s of t.$in){const t=String(s);if(r.has(t))continue;const o=this.lsm.get(`${e}:${t}`);o&&(r.add(t),i.push({...o,[n]:t}))}return i}if("$gt"in t||"$gte"in t||"$lt"in t||"$lte"in t){const t=`${e}:`;await this.lsm.prefetchRange(t,`${t}￿`);const s=this.lsm.rangeScan(t,`${t}￿`),i=[];for(const[e,a]of s){const s={...a,[n]:e.slice(t.length)};o(s,{[n]:r})&&i.push(s)}return i}}const a=`${e}:idx:${i}`,h=this.secondaryIndexes.get(a);if(!h)continue;if("object"!=typeof r||null===r)return this.indexScanToRows(e,n,h,String(r),String(r));const c=r;if("$eq"in c){const t=String(c.$eq);return this.indexScanToRows(e,n,h,t,t)}if("$in"in c&&Array.isArray(c.$in)){const t=[],s=new Set;for(const i of c.$in){const r=await this.indexScanToRows(e,n,h,String(i),String(i));for(const e of r){const i=String(e[n]);s.has(i)||(s.add(i),t.push(e))}}return t}if("$gt"in c||"$gte"in c||"$lt"in c||"$lte"in c){let t="",s="￿";return void 0!==c.$gt?t=`${String(Number(c.$gt)+1)}:`:void 0!==c.$gte&&(t=`${String(c.$gte)}:`),void 0!==c.$lt?s=`${String(Number(c.$lt)-1)}:￿`:void 0!==c.$lte&&(s=`${String(c.$lte)}:￿`),this.indexScanToRows(e,n,h,t,s)}}return null}async indexScanToRows(e,t,s,n,i){const r=i.includes("￿")?i:`${i}￿`;await s.prefetchRange(n,r);const o=s.rangeScan(n,r),a=[];for(const[,e]of o){const t=e.pk;t&&a.push(t)}await this.lsm.prefetchKeys(a.map(t=>`${e}:${t}`));const h=[];for(const s of a){const n=this.lsm.get(`${e}:${s}`);n&&h.push({...n,[t]:s})}return h}tryGC(){this.gcCounter++,this.gcCounter>=10&&(this.mvcc.gc(100),this.gcCounter=0)}trimAllCaches(){this.lsm.trimCache();for(const e of this.secondaryIndexes.values())e.trimCache()}checkMemoryBudget(){const e=1024*this.config.maxMemoryMB*1024;this.lsm.getEstimatedMemory()>e&&(this.lsm.flush().catch(()=>{}),this.mvcc.gc(50))}getWALEstimatedSize(){return 200*this.wal.getBufferedCount()}async analyzeTable(e){this.ensureOpen(),this.ensureTable(e);const t=await this.getAllRows(e),s={table:e,rowCount:t.length,avgRowSize:t.length>0?Math.round(t.reduce((e,t)=>e+JSON.stringify(t).length,0)/t.length):0,indexDepth:this.lsm.getStats().levelCounts.filter(e=>e>0).length,sstableCount:this.lsm.getStats().sstableCount,memtableSize:this.lsm.getStats().memtableSize,estimatedMemory:this.lsm.getEstimatedMemory()},n=this.schemas.get(e);if(n&&t.length>0){const e={};for(const s of Object.keys(n.columns)){const n=new Set(t.map(e=>String(e[s])));e[s]={distinctValues:n.size}}s.columnStats=e}return s}async reindexTable(e){this.ensureOpen(),this.ensureTable(e);const t=this.schemas.get(e);let s=0;for(const[n,i]of Object.entries(t.columns)){if(!i.index&&!i.unique)continue;const t=`${e}:idx:${n}`,r=this.secondaryIndexes.get(t);if(!r)continue;await r.clear(),s++;const o=await this.getAllRows(e);for(const t of o){const s=t[n];null!=s&&r.put(`${String(s)}:${t[this.tablePKs.get(e)]}`,{pk:t[this.tablePKs.get(e)]})}}return s}async vacuum(){this.ensureOpen(),await this.lsm.flush();for(let e=0;e<6;e++)this.lsm.getStats().levelCounts[e]>=2&&await this.lsm.compactLevel(e);const e=this.mvcc.getActiveTxnCount?.()??0;return this.mvcc.gc(10),{compactedLevels:6,gcVersions:e}}estimateQueryCost(e,t){const s=this.schemas.get(e);if(!s||!t.where)return{strategy:"full_scan",estimatedRows:0};const n=this.tablePKs.get(e);for(const[e,i]of Object.entries(t.where)){if("$and"===e||"$or"===e||"$not"===e)continue;if(e===n&&("object"!=typeof i||i.$eq))return{strategy:"pk_lookup",estimatedRows:1};const t=s.columns[e];if(t?.index||t?.unique){if("object"!=typeof i||i.$eq)return{strategy:`index_eq:${e}`,estimatedRows:1};if(i.$in&&Array.isArray(i.$in))return{strategy:`index_in:${e}`,estimatedRows:i.$in.length};if(i.$gt||i.$lt||i.$gte||i.$lte)return{strategy:`index_range:${e}`,estimatedRows:100}}}return{strategy:"full_scan",estimatedRows:1e3}}ensureOpen(){if(!this.opened)throw new n("AriaEngine not opened","DB_NOT_OPEN")}ensureTable(e){if(!this.schemas.has(e))throw new n(`Table "${e}" does not exist`,"TABLE_NOT_FOUND")}async getWALCount(){const e=await this.backend.read("__wal_count");if(!e)return 0;try{const t=new TextDecoder;return parseInt(t.decode(e),10)||0}catch{return 0}}async setWALCount(e){const t=(new TextEncoder).encode(String(e)).buffer;await this.backend.write("__wal_count",t)}}class Y{constructor(e="indexeddb"){this.name="hybrid",this.dbName="",this.version=1,this.memoryEngine=new f,this.diskEngineType=e,this.diskEngine="opfs"===e?new p:new d}async open(e,t){this.dbName=e,this.version=t,await this.diskEngine.open(e,t),await this.memoryEngine.open(e,t),await this.reloadMemoryFromDisk()}async reloadMemoryFromDisk(){await this.memoryEngine.close(),await this.memoryEngine.open(this.dbName,this.version);const e=await this.diskEngine.getTableNames();for(const t of e){const e=await this.diskEngine.getTableSchema(t);if(!e)continue;await this.memoryEngine.createTable(e);const s=await this.diskEngine.find(t,{table:t});if(s.length>0)try{await this.memoryEngine.insert(t,s)}catch(e){}}}async close(){await this.memoryEngine.close(),await this.diskEngine.close()}isOpen(){return this.memoryEngine.isOpen()&&this.diskEngine.isOpen()}async createTable(e){await this.memoryEngine.createTable(e),await this.diskEngine.createTable(e)}async dropTable(e){await this.memoryEngine.dropTable(e),await this.diskEngine.dropTable(e)}async hasTable(e){return this.memoryEngine.hasTable(e)}async getTableNames(){return this.memoryEngine.getTableNames()}async getTableSchema(e){return this.memoryEngine.getTableSchema(e)}async insert(e,t){const s=await this.memoryEngine.insert(e,t);return await this.diskEngine.insert(e,t),s}async find(e,t){return this.memoryEngine.find(e,t)}async findStream(e,t,s){return this.memoryEngine.findStream(e,t,s)}async update(e,t,s){const n=await this.memoryEngine.update(e,t,s);return await this.diskEngine.update(e,t,s),n}async delete(e,t){const s=await this.memoryEngine.delete(e,t);return await this.diskEngine.delete(e,t),s}async count(e,t){return this.memoryEngine.count(e,t)}async clear(e){await this.memoryEngine.clear(e),await this.diskEngine.clear(e)}async createIndex(e,t,s){await this.memoryEngine.createIndex(e,t,s),"function"==typeof this.diskEngine.createIndex&&await this.diskEngine.createIndex(e,t,s)}async dropIndex(e,t,s){await this.memoryEngine.dropIndex(e,t,s),"function"==typeof this.diskEngine.dropIndex&&await this.diskEngine.dropIndex(e,t,s)}async beginTransaction(){await this.memoryEngine.beginTransaction(),await this.diskEngine.beginTransaction()}async commitTransaction(){await this.diskEngine.commitTransaction();try{await this.memoryEngine.commitTransaction()}catch{throw await this.diskEngine.rollbackTransaction(),new n("Hybrid commit failed: memory engine error after disk commit","TX_COMMIT_ERROR")}}async rollbackTransaction(){await this.memoryEngine.rollbackTransaction(),await this.diskEngine.rollbackTransaction()}getDiskEngineType(){return this.diskEngineType}getMemoryEngine(){return this.memoryEngine}}class Z{constructor(e,t,s=["*"],n){this.engine=e,this.tableName=t,this._columns=s,this._where={},this._orderBy=[],this._joins=[],this._executor=n}as(e){return this._alias=e,this}innerJoin(e,t,s){return this._addJoin("INNER",e,t,s)}leftJoin(e,t,s){return this._addJoin("LEFT",e,t,s)}rightJoin(e,t,s){return this._addJoin("RIGHT",e,t,s)}crossJoin(e,t){return this._addJoin("CROSS",e,{},t)}join(e,t,s){return this._addJoin("INNER",e,t,s)}_addJoin(e,t,s,n){return this._joins.push({type:e,table:t,on:s,alias:n}),this}where(e){return this._where={...this._where,...e},this}orderBy(e,t="asc"){return this._orderBy.push({column:e,direction:t}),this}limit(e){return this._limit=e,this}offset(e){return this._offset=e,this}async execute(){if(this._joins.length>0&&this._executor){const e=this.toAST();return this._executor.execute(e)}return this.engine.find(this.tableName,{table:this.tableName,columns:this._columns,where:this._where,orderBy:this._orderBy.length>0?this._orderBy:void 0,limit:this._limit,offset:this._offset})}toAST(){return{type:"SELECT",columns:this._columns,from:this.tableName,alias:this._alias,joins:this._joins.length>0?[...this._joins]:void 0,where:this._where,orderBy:this._orderBy.length>0?this._orderBy:void 0,limit:this._limit,offset:this._offset}}}class ee{constructor(e,t,s,n){this.engine=e,this.tableName=t,this._updates=s,this._where={},this.onWrite=n}where(e){return this._where={...this._where,...e},this}async execute(){const e=await this.engine.update(this.tableName,{table:this.tableName,where:this._where},this._updates);return this.onWrite?.(this.tableName),e}toAST(){return{type:"UPDATE",table:this.tableName,sets:this._updates,where:this._where}}}class te{constructor(e,t,s){this.engine=e,this.tableName=t,this._where={},this.onWrite=s}where(e){return this._where={...this._where,...e},this}async execute(){const e=await this.engine.delete(this.tableName,{table:this.tableName,where:this._where});return this.onWrite?.(this.tableName),e}toAST(){return{type:"DELETE",from:this.tableName,where:this._where}}}class se{constructor(e,t,s,n){this.schema=null,this.engine=e,this.name=t,this.executor=s,this.onWrite=n}async getSchema(){if(!this.schema){const e=await this.engine.getTableSchema(this.name);if(!e)throw new n(`Table "${this.name}" does not exist`,"TABLE_NOT_FOUND");this.schema=e}return this.schema}async insert(e){const t=await this.engine.insert(this.name,[e]);return this.onWrite?.(this.name),t[0]}async insertMany(e){const t=await this.engine.insert(this.name,e);return this.onWrite?.(this.name),t}select(e=["*"]){return new Z(this.engine,this.name,e,this.executor)}async stream(e,t={}){if("function"!=typeof this.engine.findStream){const s=await this.engine.find(this.name,{table:this.name,where:t.where,limit:t.limit,offset:t.offset,columns:t.columns});for(const t of s)e(t);return s.length}return this.engine.findStream(this.name,{table:this.name,where:t.where,limit:t.limit,offset:t.offset,columns:t.columns},e)}update(e){return new ee(this.engine,this.name,e,this.onWrite)}delete(){return new te(this.engine,this.name,this.onWrite)}async count(e){return this.engine.count(this.name,e?{table:this.name,where:e}:void 0)}async clear(){await this.engine.clear(this.name),this.onWrite?.(this.name)}async drop(){await this.engine.dropTable(this.name),this.onWrite?.(this.name)}}function ne(e){switch(e.type){case"SELECT":return function(e){return{table:e.from,columns:e.columns,where:e.where,orderBy:e.orderBy?.length?e.orderBy:void 0,limit:e.limit,offset:e.offset}}(e);case"DELETE":return function(e){return{table:e.from,where:e.where}}(e);case"UPDATE":return function(e){return{table:e.table,where:e.where}}(e);default:throw new n(`Cannot compile statement type "${e.type}" to QueryPlan`,"COMPILE_ERROR")}}var ie;!function(e){e.SELECT="SELECT",e.FROM="FROM",e.WHERE="WHERE",e.INSERT="INSERT",e.INTO="INTO",e.VALUES="VALUES",e.UPDATE="UPDATE",e.SET="SET",e.DELETE="DELETE",e.CREATE="CREATE",e.TABLE="TABLE",e.DROP="DROP",e.ORDER="ORDER",e.BY="BY",e.ASC="ASC",e.DESC="DESC",e.LIMIT="LIMIT",e.OFFSET="OFFSET",e.AND="AND",e.OR="OR",e.NOT="NOT",e.LIKE="LIKE",e.IN="IN",e.PRIMARY="PRIMARY",e.KEY="KEY",e.UNIQUE="UNIQUE",e.DEFAULT="DEFAULT",e.NULL="NULL",e.TRUE="TRUE",e.REFERENCES="REFERENCES",e.CASCADE="CASCADE",e.BETWEEN="BETWEEN",e.IF="IF",e.EXISTS="EXISTS",e.FALSE="FALSE",e.ALTER="ALTER",e.ADD="ADD",e.TRUNCATE="TRUNCATE",e.INNER="INNER",e.LEFT="LEFT",e.RIGHT="RIGHT",e.CROSS="CROSS",e.JOIN="JOIN",e.ON="ON",e.AS="AS",e.OUTER="OUTER",e.GROUP="GROUP",e.HAVING="HAVING",e.COUNT="COUNT",e.SUM="SUM",e.AVG="AVG",e.MIN="MIN",e.MAX="MAX",e.DISTINCT="DISTINCT",e.BEGIN="BEGIN",e.COMMIT="COMMIT",e.ROLLBACK="ROLLBACK",e.UNION="UNION",e.ALL="ALL",e.INDEX="INDEX",e.CASE="CASE",e.WHEN="WHEN",e.THEN="THEN",e.ELSE="ELSE",e.END="END",e.IDENTIFIER="IDENTIFIER",e.STRING="STRING",e.NUMBER="NUMBER",e.COMMA="COMMA",e.LPAREN="LPAREN",e.RPAREN="RPAREN",e.SEMICOLON="SEMICOLON",e.EQ="EQ",e.NEQ="NEQ",e.GT="GT",e.GTE="GTE",e.LT="LT",e.LTE="LTE",e.STAR="STAR",e.DOT="DOT",e.EOF="EOF",e.ILLEGAL="ILLEGAL"}(ie||(ie={}));const re={SELECT:ie.SELECT,FROM:ie.FROM,WHERE:ie.WHERE,INSERT:ie.INSERT,INTO:ie.INTO,VALUES:ie.VALUES,UPDATE:ie.UPDATE,SET:ie.SET,DELETE:ie.DELETE,CREATE:ie.CREATE,TABLE:ie.TABLE,DROP:ie.DROP,ORDER:ie.ORDER,BY:ie.BY,ASC:ie.ASC,DESC:ie.DESC,LIMIT:ie.LIMIT,OFFSET:ie.OFFSET,AND:ie.AND,OR:ie.OR,NOT:ie.NOT,LIKE:ie.LIKE,IN:ie.IN,PRIMARY:ie.PRIMARY,KEY:ie.KEY,UNIQUE:ie.UNIQUE,DEFAULT:ie.DEFAULT,NULL:ie.NULL,TRUE:ie.TRUE,FALSE:ie.FALSE,REFERENCES:ie.REFERENCES,CASCADE:ie.CASCADE,BETWEEN:ie.BETWEEN,IF:ie.IF,EXISTS:ie.EXISTS,ALTER:ie.ALTER,ADD:ie.ADD,TRUNCATE:ie.TRUNCATE,INNER:ie.INNER,LEFT:ie.LEFT,RIGHT:ie.RIGHT,CROSS:ie.CROSS,JOIN:ie.JOIN,ON:ie.ON,AS:ie.AS,OUTER:ie.OUTER,GROUP:ie.GROUP,HAVING:ie.HAVING,COUNT:ie.COUNT,SUM:ie.SUM,AVG:ie.AVG,MIN:ie.MIN,MAX:ie.MAX,DISTINCT:ie.DISTINCT,BEGIN:ie.BEGIN,COMMIT:ie.COMMIT,ROLLBACK:ie.ROLLBACK,UNION:ie.UNION,ALL:ie.ALL,INDEX:ie.INDEX,CASE:ie.CASE,WHEN:ie.WHEN,THEN:ie.THEN,ELSE:ie.ELSE,END:ie.END};class oe{constructor(e){this.position=0,this.readPosition=0,this.ch="",this.input=e,this.readChar()}nextToken(){let e;switch(this.skipWhitespace(),this.ch){case",":e=this.makeToken(ie.COMMA,",");break;case"(":e=this.makeToken(ie.LPAREN,"(");break;case")":e=this.makeToken(ie.RPAREN,")");break;case";":e=this.makeToken(ie.SEMICOLON,";");break;case"*":e=this.makeToken(ie.STAR,"*");break;case".":e=this.makeToken(ie.DOT,".");break;case"=":e=this.makeToken(ie.EQ,"=");break;case"!":"="===this.peekChar()?(this.readChar(),e=this.makeToken(ie.NEQ,"!=")):e=this.makeToken(ie.ILLEGAL,"!");break;case">":"="===this.peekChar()?(this.readChar(),e=this.makeToken(ie.GTE,">=")):e=this.makeToken(ie.GT,">");break;case"<":"="===this.peekChar()?(this.readChar(),e=this.makeToken(ie.LTE,"<=")):">"===this.peekChar()?(this.readChar(),e=this.makeToken(ie.NEQ,"<>")):e=this.makeToken(ie.LT,"<");break;case"'":case'"':e=this.readString(this.ch);break;case"":e={type:ie.EOF,value:"",position:this.position};break;default:if("-"===this.ch&&"-"===this.peekChar())return this.skipLineComment(),this.nextToken();if("/"===this.ch&&"*"===this.peekChar())return this.skipBlockComment(),this.nextToken();if(this.isLetter(this.ch)){const t=this.readIdentifier();return e={type:re[t.toUpperCase()]??ie.IDENTIFIER,value:t,position:this.position-t.length},e}if(this.isDigit(this.ch)||"-"===this.ch&&this.isDigit(this.peekChar())){const t=this.readNumber();return e={type:ie.NUMBER,value:t,position:this.position-t.length},e}e=this.makeToken(ie.ILLEGAL,this.ch)}return this.readChar(),e}readChar(){this.readPosition>=this.input.length?this.ch="":this.ch=this.input[this.readPosition],this.position=this.readPosition,this.readPosition++}peekChar(){return this.readPosition>=this.input.length?"":this.input[this.readPosition]}skipWhitespace(){for(;" "===this.ch||"\t"===this.ch||"\n"===this.ch||"\r"===this.ch;)this.readChar()}skipLineComment(){for(;"\n"!==this.ch&&"\r"!==this.ch&&""!==this.ch;)this.readChar()}skipBlockComment(){for(this.readChar(),this.readChar();""!==this.ch&&("*"!==this.ch||"/"!==this.peekChar());)this.readChar();""!==this.ch&&(this.readChar(),this.readChar())}readIdentifier(){const e=this.position;for(;this.isLetter(this.ch)||this.isDigit(this.ch)||"_"===this.ch;)this.readChar();return this.input.slice(e,this.position)}readNumber(){const e=this.position;for("-"===this.ch&&this.readChar();this.isDigit(this.ch);)this.readChar();if("."===this.ch&&this.isDigit(this.peekChar()))for(this.readChar();this.isDigit(this.ch);)this.readChar();return this.input.slice(e,this.position)}readString(e){const t=this.position+1;this.readChar();let s="";for(;""!==this.ch;){if(this.ch===e){if(this.peekChar()===e){s+=e,this.readChar(),this.readChar();continue}break}"\\"!==this.ch||this.peekChar()!==e?(s+=this.ch,this.readChar()):(this.readChar(),s+=e,this.readChar())}return{type:ie.STRING,value:s,position:t}}isLetter(e){return/[a-zA-Z_]/.test(e)}isDigit(e){return/[0-9]/.test(e)}makeToken(e,t){return{type:e,value:t,position:this.position}}}class ae{constructor(e){this.sql=e,this.lexer=new oe(e),this.nextToken(),this.nextToken()}parseStatement(){switch(this.curToken.type){case ie.SELECT:return this.parseSelect();case ie.INSERT:return this.parseInsert();case ie.UPDATE:return this.parseUpdate();case ie.DELETE:return this.parseDelete();case ie.CREATE:return this.parseCreateStatement();case ie.DROP:return this.parseDropStatement();case ie.ALTER:return this.parseAlterTable();case ie.TRUNCATE:return this.parseTruncateTable();case ie.BEGIN:return this.parseBegin();case ie.COMMIT:return this.parseCommit();case ie.ROLLBACK:return this.parseRollback();default:throw this.error(`Unexpected token "${this.curToken.value}"`)}}parseAllStatements(){const e=[];for(;!this.curTokenIs(ie.EOF);){for(;this.curTokenIs(ie.SEMICOLON);)this.nextToken();if(this.curTokenIs(ie.EOF))break;if(e.push(this.parseStatement()),this.curTokenIs(ie.SEMICOLON))this.nextToken();else if(!this.curTokenIs(ie.EOF))throw this.error(`Expected ';' after statement, got "${this.curToken.value}"`)}return e}parseBegin(){return this.expect(ie.BEGIN),this._isKeywordAsIdent()&&"TRANSACTION"===this.curToken.value.toUpperCase()&&this.nextToken(),{type:"BEGIN"}}parseCommit(){return this.expect(ie.COMMIT),this._isKeywordAsIdent()&&"TRANSACTION"===this.curToken.value.toUpperCase()&&this.nextToken(),{type:"COMMIT"}}parseRollback(){return this.expect(ie.ROLLBACK),this._isKeywordAsIdent()&&"TRANSACTION"===this.curToken.value.toUpperCase()&&this.nextToken(),{type:"ROLLBACK"}}parseCreateStatement(){if(this.expect(ie.CREATE),this.curTokenIs(ie.TABLE))return this.parseCreateTable();if(this.curTokenIs(ie.INDEX)||this._isKeywordAsIdent()&&"INDEX"===this.curToken.value.toUpperCase())return this.parseCreateIndex();if(this.curTokenIs(ie.UNIQUE)&&(this.nextToken(),this.curTokenIs(ie.INDEX)||this._isKeywordAsIdent()&&"INDEX"===this.curToken.value.toUpperCase())){const e=this.parseCreateIndex();return e.unique=!0,e}throw this.error(`Expected TABLE or INDEX after CREATE, got "${this.curToken.value}"`)}parseCreateIndex(){this.expect(ie.INDEX);const e=this.expectIdentifier("index name");this.expect(ie.ON);const t=this.expectIdentifier("table name");this.expect(ie.LPAREN);const s=this.expectIdentifier("column name");return this.expect(ie.RPAREN),{type:"CREATE_INDEX",name:e,table:t,column:s}}parseDropStatement(){if(this.expect(ie.DROP),this.curTokenIs(ie.TABLE))return this.parseDropTable();if(this.curTokenIs(ie.INDEX)||this._isKeywordAsIdent()&&"INDEX"===this.curToken.value.toUpperCase())return this.parseDropIndex();throw this.error(`Expected TABLE or INDEX after DROP, got "${this.curToken.value}"`)}parseDropIndex(){this.expect(ie.INDEX);const e=this.expectIdentifier("index name");let t="",s="";return this.curTokenIs(ie.ON)&&(this.nextToken(),t=this.expectIdentifier("table name"),this.curTokenIs(ie.LPAREN)&&(this.nextToken(),s=this.expectIdentifier("column name"),this.expect(ie.RPAREN))),{type:"DROP_INDEX",name:e,table:t,column:s}}parseSelect(){this.expect(ie.SELECT);let e=!1;this.curTokenIs(ie.DISTINCT)&&(e=!0,this.nextToken());const t=[];let s;this.curTokenIs(ie.STAR)?(t.push("*"),this.nextToken()):t.push(...this.parseColumnList());let n,i="";this.curTokenIs(ie.FROM)&&(this.nextToken(),this.curTokenIs(ie.LPAREN)?(this.nextToken(),s=this.parseSelect(),this.expect(ie.RPAREN),this.curTokenIs(ie.AS)?(this.nextToken(),n=this.expectIdentifier("alias")):this.curToken.type!==ie.IDENTIFIER||this._isReservedAfterFrom()||(n=this.curToken.value,this.nextToken())):(i=this.expectIdentifier("table name"),this.curTokenIs(ie.AS)?(this.nextToken(),n=this.expectIdentifier("alias")):this.curToken.type!==ie.IDENTIFIER||this._isReservedAfterFrom()||(n=this.curToken.value,this.nextToken())));const r={type:"SELECT",columns:t,distinct:e||void 0,from:i,alias:n,where:{}};s&&(r.fromSubquery=s);const o=this.parseJoinClauses();return o.length>0&&(r.joins=o),this.curTokenIs(ie.WHERE)&&(this.nextToken(),r.where=this.parseCondition()),this.curTokenIs(ie.GROUP)&&(this.nextToken(),this.expect(ie.BY),r.groupBy=this.parseIdentifierList()),this.curTokenIs(ie.HAVING)&&(this.nextToken(),r.having=this.parseCondition()),this.curTokenIs(ie.ORDER)&&(this.nextToken(),this.expect(ie.BY),r.orderBy=this.parseOrderByList()),this.curTokenIs(ie.LIMIT)&&(this.nextToken(),r.limit=this.expectNumber("LIMIT value")),this.curTokenIs(ie.OFFSET)&&(this.nextToken(),r.offset=this.expectNumber("OFFSET value")),this.curTokenIs(ie.UNION)?this.parseUnion(r):r}parseUnion(e){this.expect(ie.UNION);let t=!1;this.curTokenIs(ie.ALL)&&(t=!0,this.nextToken());const s={type:"SELECT_UNION",left:e,right:this.parseSelect(),all:t||void 0};return this.curTokenIs(ie.UNION)?this.parseUnionChain(s):s}parseUnionChain(e){this.expect(ie.UNION);let t=!1;this.curTokenIs(ie.ALL)&&(t=!0,this.nextToken());const s={type:"SELECT_UNION",left:e,right:this.parseSelect(),all:t||void 0};return this.curTokenIs(ie.UNION)?this.parseUnionChain(s):s}parseJoinClauses(){const e=[];for(;this._isJoinKeyword();)e.push(this.parseJoinClause());return e}_isJoinKeyword(){return this.curTokenIs(ie.INNER)||this.curTokenIs(ie.LEFT)||this.curTokenIs(ie.RIGHT)||this.curTokenIs(ie.CROSS)||this.curTokenIs(ie.JOIN)}parseJoinClause(){let e="INNER";this.curTokenIs(ie.INNER)?(e="INNER",this.nextToken()):this.curTokenIs(ie.LEFT)?(e="LEFT",this.nextToken(),this.curTokenIs(ie.OUTER)&&this.nextToken()):this.curTokenIs(ie.RIGHT)?(e="RIGHT",this.nextToken(),this.curTokenIs(ie.OUTER)&&this.nextToken()):this.curTokenIs(ie.CROSS)&&(e="CROSS",this.nextToken()),this.expect(ie.JOIN);const t=this.expectIdentifier("table name");let s;this.curTokenIs(ie.AS)?(this.nextToken(),s=this.expectIdentifier("alias")):this.curToken.type!==ie.IDENTIFIER||this._isJoinReserved()||(s=this.curToken.value,this.nextToken());let n={};return"CROSS"!==e&&this.curTokenIs(ie.ON)&&(this.nextToken(),n=this.parseCondition()),{type:e,table:t,alias:s,on:n}}_isReservedAfterFrom(){return this.curTokenIs(ie.WHERE)||this.curTokenIs(ie.ORDER)||this.curTokenIs(ie.LIMIT)||this.curTokenIs(ie.OFFSET)||this.curTokenIs(ie.GROUP)||this._isJoinKeyword()}_isJoinReserved(){return this.curTokenIs(ie.ON)||this.curTokenIs(ie.WHERE)||this.curTokenIs(ie.ORDER)||this.curTokenIs(ie.LIMIT)||this._isJoinKeyword()}parseInsert(){this.expect(ie.INSERT),this.expect(ie.INTO);const e=this.expectIdentifier("table name");let t;if(this.curTokenIs(ie.LPAREN)&&(this.nextToken(),t=this.parseIdentifierList(),this.expect(ie.RPAREN)),this.curTokenIs(ie.SELECT))return{type:"INSERT",into:e,columns:t,select:this.parseSelect()};this.expect(ie.VALUES);const s=[];do{this.curTokenIs(ie.COMMA)&&this.nextToken(),this.expect(ie.LPAREN);const e=this.parseValueList();this.expect(ie.RPAREN),s.push(e)}while(this.curTokenIs(ie.COMMA));return{type:"INSERT",into:e,columns:t,values:s}}parseUpdate(){this.expect(ie.UPDATE);const e=this.expectIdentifier("table name");this.expect(ie.SET);const t={};do{this.curTokenIs(ie.COMMA)&&this.nextToken();const e=this.expectIdentifier("column name");this.expect(ie.EQ),t[e]=this.parseValue()}while(this.curTokenIs(ie.COMMA));let s={};return this.curTokenIs(ie.WHERE)&&(this.nextToken(),s=this.parseCondition()),{type:"UPDATE",table:e,sets:t,where:s}}parseDelete(){this.expect(ie.DELETE),this.expect(ie.FROM);const e=this.expectIdentifier("table name");let t={};return this.curTokenIs(ie.WHERE)&&(this.nextToken(),t=this.parseCondition()),{type:"DELETE",from:e,where:t}}parseCreateTable(){this.expect(ie.TABLE);let e=!1;this.curTokenIs(ie.IF)&&(this.nextToken(),this.expect(ie.NOT),this.expect(ie.EXISTS),e=!0);const t=this.expectIdentifier("table name");this.expect(ie.LPAREN);const s=[];do{this.curTokenIs(ie.COMMA)&&this.nextToken(),s.push(this.parseColumnDef())}while(this.curTokenIs(ie.COMMA));return this.expect(ie.RPAREN),{type:"CREATE_TABLE",name:t,columns:s,ifNotExists:e||void 0}}parseColumnDef(){const e={name:this.expectIdentifier("column name"),type:this.expectIdentifier("column type").toLowerCase()};for(;this.curTokenIs(ie.PRIMARY)||this.curTokenIs(ie.UNIQUE)||this.curTokenIs(ie.NOT)||this.curTokenIs(ie.DEFAULT)||this.curTokenIs(ie.REFERENCES);)if(this.curTokenIs(ie.PRIMARY))this.nextToken(),this.expect(ie.KEY),e.primaryKey=!0;else if(this.curTokenIs(ie.UNIQUE))this.nextToken(),e.unique=!0;else if(this.curTokenIs(ie.NOT))this.nextToken(),this.expect(ie.NULL),e.required=!0;else if(this.curTokenIs(ie.DEFAULT))this.nextToken(),e.default=this.parseValue();else{if(!this.curTokenIs(ie.REFERENCES))break;{this.nextToken();const t=this.expectIdentifier("referenced table");this.expect(ie.LPAREN);const s=this.expectIdentifier("referenced column");for(this.expect(ie.RPAREN),e.references=`${t}.${s}`;this.curTokenIs(ie.ON);)if(this.nextToken(),this.curTokenIs(ie.DELETE))this.nextToken(),e.onDelete=this.parseCascadeAction();else{if(!this.curTokenIs(ie.UPDATE))break;this.nextToken(),e.onUpdate=this.parseCascadeAction()}}}return e}parseCascadeAction(){return this.curTokenIs(ie.CASCADE)?(this.nextToken(),"CASCADE"):this.curTokenIs(ie.SET)?(this.nextToken(),this.expect(ie.NULL),"SET NULL"):this.curToken.type===ie.IDENTIFIER&&"RESTRICT"===this.curToken.value.toUpperCase()?(this.nextToken(),"RESTRICT"):"RESTRICT"}parseAlterTable(){this.expect(ie.ALTER),this.expect(ie.TABLE);const e=this.expectIdentifier("table name");let t;if(this.curTokenIs(ie.ADD))return t="ADD",this.nextToken(),this.curToken.type===ie.IDENTIFIER&&"COLUMN"===this.curToken.value.toUpperCase()&&this.nextToken(),{type:"ALTER_TABLE",name:e,action:t,column:this.parseColumnDef()};if(this.curTokenIs(ie.DROP)||this._isKeywordAsIdent()&&"DROP"===this.curToken.value.toUpperCase())return t="DROP",this.nextToken(),this.curToken.type===ie.IDENTIFIER&&"COLUMN"===this.curToken.value.toUpperCase()&&this.nextToken(),{type:"ALTER_TABLE",name:e,action:t,column:{name:this.expectIdentifier("column name"),type:"string"}};throw this.error("Expected ADD or DROP in ALTER TABLE")}parseTruncateTable(){return this.expect(ie.TRUNCATE),this.expect(ie.TABLE),{type:"TRUNCATE_TABLE",name:this.expectIdentifier("table name")}}parseDropTable(){this.expect(ie.TABLE);let e=!1;return this.curTokenIs(ie.IF)&&(this.nextToken(),this.expect(ie.EXISTS),e=!0),{type:"DROP_TABLE",name:this.expectIdentifier("table name"),ifExists:e||void 0}}parseCondition(){let e=this.parseSimpleCondition();for(;this.curTokenIs(ie.AND)||this.curTokenIs(ie.OR);){const t=this.curTokenIs(ie.AND);this.nextToken();const s=this.parseSimpleCondition();e=t?{$and:[e,s]}:{$or:[e,s]}}return e}parseWhere(){return this.parseCondition()}parseSimpleCondition(){if(this.curTokenIs(ie.EXISTS)||this._isKeywordAsIdent()&&"EXISTS"===this.curToken.value.toUpperCase())return this.nextToken(),this.parseExistsCondition(!1);if(this.curTokenIs(ie.NOT)&&this._peekIsExists())return this.nextToken(),this.nextToken(),this.parseExistsCondition(!0);if(this.curTokenIs(ie.NOT)&&!this._isNotInOrLike())return this.nextToken(),{$not:this.parseSimpleCondition()};if(this.curTokenIs(ie.LPAREN)){this.nextToken();const e=this.parseCondition();return this.expect(ie.RPAREN),e}const e=this.parseColumnRef();if(this.curTokenIs(ie.IDENTIFIER)&&"IS"===this.curToken.value.toUpperCase()){this.nextToken();const t=this.curTokenIs(ie.NOT);t&&this.nextToken(),this.expect(ie.NULL);const s={};return s[e]=t?{$ne:null}:{$eq:null},s}if(this.curTokenIs(ie.BETWEEN)){this.nextToken();const t=this.parseValue();this.expect(ie.AND);const s=this.parseValue(),n={};return n[e]={$gte:t,$lte:s},n}if(this.curTokenIs(ie.NOT)&&this.peekTokenIs(ie.BETWEEN)){this.nextToken(),this.nextToken();const t=this.parseValue();this.expect(ie.AND);const s=this.parseValue(),n={};return n[e]={$not:{$gte:t,$lte:s}},n}if(this.curTokenIs(ie.NOT)){if(this.peekTokenIs(ie.IN)){if(this.nextToken(),this.nextToken(),this.expect(ie.LPAREN),this.curTokenIs(ie.SELECT)){const t=this.parseSelect();this.expect(ie.RPAREN);const s={};return s[e]={$nin:{$subquery:t}},s}const t=this.parseValueList();this.expect(ie.RPAREN);const s={};return s[e]={$nin:t},s}if(this.peekTokenIs(ie.LIKE)){this.nextToken(),this.nextToken();const t=this.parseValue(),s={};return s[e]={$not:{$like:t}},s}}if(this.curTokenIs(ie.LIKE)){this.nextToken();const t=this.parseValue(),s={};return s[e]={$like:t},s}if(this.curTokenIs(ie.IN)){if(this.nextToken(),this.expect(ie.LPAREN),this.curTokenIs(ie.SELECT)){const t=this.parseSelect();this.expect(ie.RPAREN);const s={};return s[e]={$in:{$subquery:t}},s}const t=this.parseValueList();this.expect(ie.RPAREN);const s={};return s[e]={$in:t},s}if(this.curTokenIs(ie.AND)||this.curTokenIs(ie.OR)||this.curTokenIs(ie.RPAREN)||this.curTokenIs(ie.EOF)||this.curToken.type===ie.IDENTIFIER&&["THEN","END","ELSE","NULLS","LIMIT","OFFSET","ORDER","GROUP","HAVING","UNION","WHERE"].includes(this.curToken.value.toUpperCase())){const t={};return t[e]={$eq:!0},t}const t=this.parseComparisonOp();if(this.curTokenIs(ie.LPAREN)&&this.peekTokenIs(ie.SELECT)){this.nextToken();const s=this.parseSelect();this.expect(ie.RPAREN);const n={};return n[e]={[t]:{$subquery:s}},n}let s;s=(this.curToken.type===ie.IDENTIFIER||this._isKeywordAsIdent())&&this.peekTokenIs(ie.DOT)?{$col:this.parseColumnRef()}:this.parseValue();const n={};return n[e]={[t]:s},n}parseExistsCondition(e){this.expect(ie.LPAREN);const t=this.parseSelect();return this.expect(ie.RPAREN),{$exists:{$subquery:t,$negate:e||void 0}}}_peekIsExists(){return this.peekToken.type===ie.EXISTS||this.peekToken.type===ie.IDENTIFIER&&"EXISTS"===this.peekToken.value.toUpperCase()}_isNotInOrLike(){return this.peekTokenIs(ie.IN)||this.peekTokenIs(ie.LIKE)}peekTokenIs(e){return this.peekToken.type===e}parseComparisonOp(){switch(this.curToken.type){case ie.EQ:return this.nextToken(),"$eq";case ie.NEQ:return this.nextToken(),"$ne";case ie.GT:return this.nextToken(),"$gt";case ie.GTE:return this.nextToken(),"$gte";case ie.LT:return this.nextToken(),"$lt";case ie.LTE:return this.nextToken(),"$lte";default:throw this.error(`Expected comparison operator, got "${this.curToken.value}"`)}}parseColumnList(){const e=[];for(e.push(this.parseColumnWithAlias());this.curTokenIs(ie.COMMA);)this.nextToken(),e.push(this.parseColumnWithAlias());return e}parseColumnWithAlias(){let e=this.parseColumnRef();if(this.curTokenIs(ie.AS))this.nextToken(),e=`${e} AS ${this.expectIdentifier("alias")}`;else if(this.curToken.type===ie.IDENTIFIER&&!this._isReservedAfterFrom()&&!this._isJoinKeyword()){const t=this.curToken.value;this.nextToken(),e=`${e} AS ${t}`}return e}parseColumnRef(){if(this.curTokenIs(ie.CASE))return this.parseCaseExpressionText();if(this.curTokenIs(ie.NUMBER)){const e=this.curToken.value;return this.nextToken(),e}if(this.curTokenIs(ie.STRING)){const e=this.curToken.value;return this.nextToken(),`'${e}'`}if(this.curTokenIs(ie.COUNT)||this.curTokenIs(ie.SUM)||this.curTokenIs(ie.AVG)||this.curTokenIs(ie.MIN)||this.curTokenIs(ie.MAX))return this.parseAggregateCall();const e=this.expectIdentifier("column name");return this.curTokenIs(ie.DOT)?(this.nextToken(),`${e}.${this.expectIdentifier("column name")}`):e}parseCaseExpressionText(){const e=this.curToken.position;this.nextToken();let t=1,s=e+4;for(;!this.curTokenIs(ie.EOF)&&t>0&&(this.curTokenIs(ie.CASE)&&t++,!this.curTokenIs(ie.END)||(t--,s=this.curToken.position+3,this.nextToken(),0!==t));)s=this.curToken.position+this.curToken.value.length,this.nextToken();let n=this.sql.slice(e,s);return this.curTokenIs(ie.AS)?(this.nextToken(),n+=` AS ${this.expectIdentifier("alias")}`):this.curToken.type!==ie.IDENTIFIER||this.curTokenIs(ie.COMMA)||this._isReservedAfterFrom()||(n+=` AS ${this.curToken.value}`,this.nextToken()),n}parseAggregateCall(){const e=this.curToken.value.toUpperCase();this.nextToken(),this.expect(ie.LPAREN);let t,s=!1;this.curTokenIs(ie.DISTINCT)&&(s=!0,this.nextToken()),this.curTokenIs(ie.STAR)?(t="*",this.nextToken()):t=this.parseColumnRef(),this.expect(ie.RPAREN);let n="";this.curTokenIs(ie.AS)?(this.nextToken(),n=this.expectIdentifier("alias")):this.curToken.type===ie.IDENTIFIER&&this._isAggregateAlias()&&(n=this.curToken.value,this.nextToken());const i=s?`DISTINCT ${t}`:t;return n?`${e}(${i}) AS ${n}`:`${e}(${i})`}_isAggregateAlias(){return!this._isReservedAfterFrom()&&!this._isJoinKeyword()}parseIdentifierList(){const e=[];for(e.push(this.parseIdentifierWithDot());this.curTokenIs(ie.COMMA);)this.nextToken(),e.push(this.parseIdentifierWithDot());return e}parseValueList(){const e=[];for(e.push(this.parseValue());this.curTokenIs(ie.COMMA);)this.nextToken(),e.push(this.parseValue());return e}parseOrderByList(){const e=[];for(e.push(this.parseOrderBy());this.curTokenIs(ie.COMMA);)this.nextToken(),e.push(this.parseOrderBy());return e}parseOrderBy(){const e=this.parseIdentifierWithDot();let t,s="asc";return this.curTokenIs(ie.ASC)?this.nextToken():this.curTokenIs(ie.DESC)&&(s="desc",this.nextToken()),this.curTokenIs(ie.IDENTIFIER)&&"NULLS"===this.curToken.value.toUpperCase()&&(this.nextToken(),this.curTokenIs(ie.IDENTIFIER)&&"FIRST"===this.curToken.value.toUpperCase()?(t="first",this.nextToken()):this.curTokenIs(ie.IDENTIFIER)&&"LAST"===this.curToken.value.toUpperCase()&&(t="last",this.nextToken())),{column:e,direction:s,...t?{nulls:t}:{}}}parseIdentifierWithDot(){const e=this.expectIdentifier("identifier");return this.curTokenIs(ie.DOT)?(this.nextToken(),`${e}.${this.expectIdentifier("identifier")}`):e}parseValue(){switch(this.curToken.type){case ie.STRING:{const e=this.curToken.value;return this.nextToken(),e}case ie.NUMBER:{const e=Number(this.curToken.value);return this.nextToken(),e}case ie.TRUE:return this.nextToken(),!0;case ie.FALSE:return this.nextToken(),!1;case ie.NULL:return this.nextToken(),null;default:throw this.error(`Expected value, got "${this.curToken.value}"`)}}nextToken(){this.curToken=this.peekToken,this.peekToken=this.lexer.nextToken()}curTokenIs(e){return this.curToken.type===e}expect(e){if(!this.curTokenIs(e))throw this.error(`Expected ${e}, got "${this.curToken.value}"`);this.nextToken()}expectIdentifier(e){if(this.curToken.type===ie.IDENTIFIER||this._isKeywordAsIdent()){const e=this.curToken.value;return this.nextToken(),e}throw this.error(`Expected ${e}, got "${this.curToken.value}"`)}_isKeywordAsIdent(){return this.curToken.type!==ie.EOF&&this.curToken.type!==ie.ILLEGAL&&this.curToken.type!==ie.STRING&&this.curToken.type!==ie.NUMBER&&this.curToken.type!==ie.COMMA&&this.curToken.type!==ie.LPAREN&&this.curToken.type!==ie.RPAREN&&this.curToken.type!==ie.SEMICOLON&&this.curToken.type!==ie.EQ&&this.curToken.type!==ie.NEQ&&this.curToken.type!==ie.GT&&this.curToken.type!==ie.GTE&&this.curToken.type!==ie.LT&&this.curToken.type!==ie.LTE&&this.curToken.type!==ie.DOT&&this.curToken.type!==ie.STAR}expectNumber(e){if(this.curToken.type===ie.NUMBER){const e=Number(this.curToken.value);return this.nextToken(),e}throw this.error(`Expected ${e}, got "${this.curToken.value}"`)}error(e){return new n(`Parse error at position ${this.curToken.position}: ${e}`,"PARSE_ERROR")}}function he(e){return new ae(e).parseAllStatements()}function ce(e){return new ae(e).parseWhere()}function le(e){const t=e.match(/^\s*CASE\s+([\s\S]*?)\s+END\s*(?:AS\s+(\w+))?\s*$/i);if(!t)return null;const s=t[1],n=t[2]??null,i=[],r=/WHEN\s+([\s\S]*?)\s+THEN\s+([\s\S]*?)(?=\s+WHEN\s+|\s+ELSE\s+|\s*$)/gi;let o;for(;null!==(o=r.exec(s));){let e=null;try{e=ce(o[1].trim())}catch{}i.push({cond:e,value:o[2].trim()})}let a=null;const h=s.match(/\sELSE\s+([\s\S]*)$/i);return h&&(a=h[1].trim()),{whens:i,elseValue:a,alias:n}}function ue(e,t){const s=e.trim();if("null"===s)return null;if("true"===s)return!0;if("false"===s)return!1;const n=Number(s);if(""!==s&&!isNaN(n))return n;const i=s.match(/^'(.*)'$/s)||s.match(/^"(.*)"$/s);return i?i[1]:/^[a-zA-Z_][a-zA-Z0-9_.]*$/.test(s)?t[s]??null:s}function fe(e,t){for(const{cond:s,value:n}of e.whens)if(s&&o(t,s))return ue(n,t);return null!==e.elseValue?ue(e.elseValue,t):null}class de{constructor(e,t=0){this.engine=e,this.maxRowsPerQuery=t}setMaxRowsPerQuery(e){this.maxRowsPerQuery=e}async execute(e){switch(e.type){case"SELECT":return this.executeSelect(e);case"SELECT_UNION":return this.executeSelectUnion(e);case"EXPLAIN":return this.executeExplain(e);case"INSERT":return this.executeInsert(e);case"UPDATE":return this.executeUpdate(e);case"DELETE":return this.executeDelete(e);case"CREATE_TABLE":return this.executeCreateTable(e);case"DROP_TABLE":return this.executeDropTable(e);case"ALTER_TABLE":return this.executeAlterTable(e);case"TRUNCATE_TABLE":return this.executeTruncateTable(e);case"CREATE_INDEX":return this.executeCreateIndex(e);case"DROP_INDEX":return this.executeDropIndex(e);case"BEGIN":return this.executeBegin();case"COMMIT":return this.executeCommit();case"ROLLBACK":return this.executeRollback();default:throw new n("Unknown statement type","UNKNOWN_STATEMENT")}}async executeSelectUnion(e){const t=await this.executeSelectPart(e.left),s=await this.executeSelectPart(e.right),n=t.length>0?Object.keys(t[0]):[],i=t.map(e=>e);if(e.all){for(const e of s)i.push(this.projectUnionRow(e,n));return i}const r=new Set,o=[];for(const e of i){const t=Object.values(e).map(e=>String(e??"\0")).join("");r.has(t)||(r.add(t),o.push(e))}for(const e of s){const t=this.projectUnionRow(e,n),s=Object.values(t).map(e=>String(e??"\0")).join("");r.has(s)||(r.add(s),o.push(t))}return o}async executeSelectPart(e){return"SELECT_UNION"===e.type?this.executeSelectUnion(e):this.executeSelect(e)}projectUnionRow(e,t){if(0===t.length)return e;const s=Object.values(e),n={};for(let e=0;e0),s=!t&&this._hasAggregateColumn(e.columns);let n;const i=!!(e.joins&&e.joins.length>0),r=this.hasCaseColumn(e.columns)||!!e.where&&this.whereHasCase(e.where),a=this.orderByUsesSelectAlias(e),h=e.columns.some(e=>/\s+AS\s+\w+$/i.test(e));if(e.fromSubquery){const t=await this.executeSelectPart(e.fromSubquery);n=i?await this.executeJoinSelect(e,t.map(t=>this.prefixRow(t,e.alias??""))):t,!i&&e.where&&Object.keys(e.where).length>0&&(e.where=await this.resolveSubqueries(e.where),n=n.filter(t=>o(t,e.where)))}else if(e.from||i)if(i)n=await this.executeJoinSelect(e);else{e.where&&Object.keys(e.where).length>0&&(e.where=this.normalizeWhereColumns(e.where,[e.alias??e.from]));const i=[e.alias??e.from].filter(Boolean);if(e.orderBy&&e.orderBy.length>0&&(e.orderBy=e.orderBy.map(e=>({...e,column:this.stripAlias(e.column,i)}))),e.groupBy&&e.groupBy.length>0&&(e.groupBy=e.groupBy.map(e=>this.stripAlias(e,i))),e.columns=e.columns.map(e=>{if("*"===e||/^(COUNT|SUM|AVG|MIN|MAX)\(/i.test(e)||/^\s*CASE\b/i.test(e)||/^'/.test(e))return e;const t=e.match(/^(.+?)\s+AS\s+(\w+)$/i);if(t){const s=this.stripAlias(t[1].trim(),i);return s===t[1].trim()?e:`${s} AS ${t[2]}`}return this.stripAlias(e,i)}),e.where&&this.hasCorrelatedRefs(e.where)){const i=ne(t||s?{...e,columns:["*"]}:e);i.columns=["*"],a&&(i.orderBy=void 0,i.limit=void 0,i.offset=void 0),n=await this.engine.find(i.table,{...i,where:this.stripCorrelatedExists(e.where)}),n=await this.filterCorrelated(n,e.where)}else{e.where&&Object.keys(e.where).length>0&&(e.where=await this.resolveSubqueries(e.where));const i=ne(t||s?{...e,columns:["*"]}:e);(r||h)&&(i.columns=["*"]),a&&(i.orderBy=void 0,i.limit=void 0,i.offset=void 0),n=await this.engine.find(i.table,i)}}else n=[{}];if(s&&(n=[this.computeSingleAggregate(n,e)]),t&&(n=this.executeGroupBy(n,e)),e.distinct&&(n=this.executeDistinct(n)),e.having&&Object.keys(e.having).length>0){e.having=await this.resolveSubqueries(e.having);const t=e._aggAliasMap;if(t&&t.size>0){const s={};for(const[n,i]of Object.entries(e.having))s[t.get(n)??n]=i;e.having=s}n=n.filter(t=>o(t,e.having))}e.orderBy&&e.orderBy.length>0&&(n=c(n,e.orderBy)),!t&&!s&&e.columns.length>0&&"*"!==e.columns[0]&&(n=n.map(t=>this.projectRow(t,e.columns))),a&&e.orderBy&&e.orderBy.length>0&&(n=c(n,e.orderBy));const l=e.offset??0,u=e.limit??n.length;return n=n.slice(l,l+u),this.maxRowsPerQuery>0&&n.length>this.maxRowsPerQuery&&(n=n.slice(0,this.maxRowsPerQuery)),n}async executeJoinSelect(e,t){const s=e.alias??e.from;let n;if(t)n=t;else{const{pushable:t}=this.extractPushableWhere(e.where??{},s);n=(await this.engine.find(e.from,{table:e.from,where:Object.keys(t).length>0?t:void 0})).map(e=>this.prefixRow(e,s))}let i=n;for(const t of e.joins){const e=t.alias??t.table,n=await this.tryHashJoin(i,t,e,s);if(n){i=n;continue}const r=(await this.engine.find(t.table,{table:t.table})).map(t=>this.prefixRow(t,e));i=this.joinRows(i,r,t)}return e.where&&Object.keys(e.where).length>0&&(this.hasCorrelatedRefs(e.where)?i=await this.filterCorrelated(i,e.where):(e.where=await this.resolveSubqueries(e.where),i=i.filter(t=>o(t,e.where)))),i}prefixRow(e,t){const s={};for(const[n,i]of Object.entries(e))s[`${t}.${n}`]=i;return s}extractPushableWhere(e,t){const s={};if(!t)return{pushable:s};const n=`${t}.`;for(const[t,i]of Object.entries(e))t.startsWith(n)&&("object"==typeof i&&null!==i&&("$col"in i||"$subquery"in i||"$and"in i||"$or"in i||"$not"in i)||(s[t.slice(n.length)]=i));return{pushable:s}}async tryHashJoin(e,t,s,n){if("CROSS"===t.type||"RIGHT"===t.type)return null;const i=[],r=e=>{for(const[t,s]of Object.entries(e)){if("$and"===t){if(!s.every(r))return!1;continue}if("$or"===t||"$not"===t)return!1;let e=null;if("object"==typeof s&&null!==s){const t=s;"$eq"in t&&"object"==typeof t.$eq&&null!==t.$eq&&"$col"in t.$eq?e=String(t.$eq.$col):"$col"in t&&1===Object.keys(t).length&&(e=String(t.$col))}if(!e)return!1;const o=!!n&&t.startsWith(`${n}.`);i.push({leftCol:o?t:e,rightCol:o?e:t})}return!0};if(!r(t.on))return null;if(0===i.length)return null;const o=await this.engine.getTableSchema(t.table);if(!o)return null;const a=i.find(e=>{const t=e.rightCol.split(".").pop(),s=o.columns[t];return s&&(s.primaryKey||s.index||s.unique)});if(!a)return null;const h=a.rightCol.split(".").pop(),c=Array.from(new Set(e.map(e=>e[a.leftCol]).filter(e=>null!=e)));if(0===c.length)return null;const l=await this.engine.find(t.table,{table:t.table,where:{[h]:{$in:c}}}),u=new Map;for(const e of l){const t=i.map(t=>String(e[t.rightCol.split(".").pop()]??"\0")).join("");u.has(t)||u.set(t,[]),u.get(t).push(e)}const f={};for(const e of Object.keys(o.columns))f[e]=null;const d=[];for(const n of e){const e=i.map(e=>String(n[e.leftCol]??"\0")).join(""),r=u.get(e);if(r&&r.length>0)for(const e of r)d.push({...n,...this.prefixRow(e,s)});else"LEFT"===t.type&&d.push({...n,...this.prefixRow(f,s)})}return d}joinRows(e,t,s){if("CROSS"===s.type){const s=[];for(const n of e)for(const e of t)s.push({...n,...e});return s}const n=[];for(const i of e){let e=!1;for(const r of t){const t={...i,...r};o(t,s.on,{$col:!0})&&(n.push(t),e=!0)}if(!e&&"LEFT"===s.type){const e={};for(const s of Object.keys(t[0]??{}))e[s]=null;n.push({...i,...e})}}if("RIGHT"===s.type)for(const i of t)if(!e.some(e=>o({...e,...i},s.on,{$col:!0}))){const t={};for(const s of Object.keys(e[0]??{}))t[s]=null;n.push({...t,...i})}return n}executeGroupBy(e,t){const s=new Map;for(const n of e){const e=t.groupBy.map(e=>String(n[e]??"null")).join("|");s.has(e)||s.set(e,[]),s.get(e).push(n)}const n=[],i=new Map;for(const e of s.values()){const s={};for(const n of t.groupBy)s[n]=e[0][n];for(const n of t.columns){if("*"===n)continue;const r=n.match(/^(COUNT|SUM|AVG|MIN|MAX)\((.+?)\)(?:\s+AS\s+(\w+))?$/i);if(r){const[,t,o,a]=r,h=this.computeAggregate(t.toUpperCase(),e,o.trim()),c=`${t.toUpperCase()}(${o.trim()})`,l=a||n;l!==c&&i.set(c,l),s[l]=h}else if(/^\s*CASE\b/i.test(n)){const t=le(n);s[t?.alias??n]=t?fe(t,e[0]):null}else t.groupBy.includes(n)||(s[n]=e[0][n])}n.push(s)}return t._aggAliasMap=i,n}computeAggregate(e,t,s){const n=/^\s*CASE\b/i.test(s)?le(s):null,i=!n&&/^\s*DISTINCT\s+/i.test(s),r=i?s.replace(/^\s*DISTINCT\s+/i,"").trim():s,o=t.map(e=>n?fe(n,e):e[r]).filter(e=>null!=e);if("COUNT"===e)return"*"===r?t.length:i?new Set(o.map(e=>"object"==typeof e?JSON.stringify(e):String(e))).size:o.length;const a=o.map(Number),h=i?Array.from(new Set(a)):a;switch(e){case"SUM":return h.reduce((e,t)=>e+t,0);case"AVG":return 0===h.length?0:h.reduce((e,t)=>e+t,0)/h.length;case"MIN":return 0===h.length?0:Math.min(...h);case"MAX":return 0===h.length?0:Math.max(...h);default:return 0}}executeDistinct(e){const t=new Set;return e.filter(e=>{const s=Object.values(e).map(e=>String(e??"\0")).join("");return!t.has(s)&&(t.add(s),!0)})}async executeInsert(e){const t=await this.engine.getTableSchema(e.into);if(!t)throw new n(`Table "${e.into}" does not exist`,"TABLE_NOT_FOUND");const s=e.columns??Object.keys(t.columns);if(e.select){const t=await this.executeSelectPart(e.select);let n=[];const i=e.select;if("SELECT"===i.type)if(i.columns&&i.columns.length>0&&"*"!==i.columns[0])n=i.columns.map(e=>e.split(".").pop());else if(i.from){const e=await this.engine.getTableSchema(i.from);n=e?Object.keys(e.columns):[]}0===n.length&&t.length>0&&(n=Object.keys(t[0]));const r=t.map(e=>{const t={};for(let i=0;i{const t={};for(let n=0;n/^\s*CASE\b/i.test(e))}orderByUsesSelectAlias(e){if(!e.orderBy||0===e.orderBy.length)return!1;const t=new Set;for(const s of e.columns){const e=s.match(/\s+AS\s+(\w+)$/i);if(e)t.add(e[1]);else if(/^\s*CASE\b/i.test(s)){const e=le(s);e?.alias&&t.add(e.alias)}}return 0!==t.size&&e.orderBy.some(e=>t.has(e.column))}whereHasCase(e){for(const[t,s]of Object.entries(e))if("$and"!==t&&"$or"!==t){if("$not"!==t){if(/^\s*CASE\b/i.test(t))return!0}else if(this.whereHasCase(s))return!0}else if(s.some(e=>this.whereHasCase(e)))return!0;return!1}getEngine(){return this.engine}projectRow(e,t){const s=[],n=[],i=[],r=[];for(const e of t){if("*"===e)continue;const t=le(e);if(t){i.push({alias:t.alias??e,expr:t});continue}const o=e.match(/^(.+?)\s+AS\s+(\w+)$/i);if(o){n.push({alias:o[2],source:o[1].trim()});continue}const a=e.match(/^'(.*)'$/s);if(a){const t=a[1].replace(/\\'/g,"'");r.push({key:e,value:t});continue}s.push(e)}const o=s.length>0?u(e,s):{};for(const{alias:t,source:s}of n)if("*"===s)Object.assign(o,e);else{const n=s.match(/^'(.*)'$/s);o[t]=n?n[1].replace(/\\'/g,"'"):e[s]}for(const{key:e,value:t}of r)o[e]=t;for(const{alias:t,expr:s}of i)o[t]=fe(s,e);return o}_hasAggregateColumn(e){return e.some(e=>/^(COUNT|SUM|AVG|MIN|MAX)\(/i.test(e))}computeSingleAggregate(e,t){const s={};for(const n of t.columns){if("*"===n)continue;const t=n.match(/^(COUNT|SUM|AVG|MIN|MAX)\((.+?)\)(?:\s+AS\s+(\w+))?$/i);if(t){const[,i,r,o]=t;s[o||n]=this.computeAggregate(i.toUpperCase(),e,r.trim())}else s[n]=e.length>0?e[0][n]:null}return s}normalizeWhereColumns(e,t){const s={};for(const[n,i]of Object.entries(e))"$and"!==n&&"$or"!==n?"$not"!==n?"$exists"!==n?s[this.stripAlias(n,t)]=this.normalizeFieldValue(i,t):s[n]=this.normalizeExistsValue(i,t):s.$not=this.normalizeWhereColumns(i,t):s[n]=i.map(e=>this.normalizeWhereColumns(e,t));return s}normalizeExistsValue(e,t){if("object"!=typeof e||null===e)return e;const s=e;if(s.$subquery){const e=s.$subquery,n=[e.alias??e.from,...t].filter(Boolean);return{...s,$subquery:{...e,where:this.normalizeWhereColumns(e.where,n)}}}return e}normalizeFieldValue(e,t){if("object"!=typeof e||null===e||Array.isArray(e))return e;const s={};for(const[n,i]of Object.entries(e))"$and"===n||"$or"===n?s[n]=i.map(e=>this.normalizeWhereColumns(e,t)):"$not"===n&&"object"==typeof i&&null!==i?s[n]=this.normalizeFieldValue(i,t):"$col"===n?s[n]=this.stripAlias(String(i),t):"object"==typeof i&&null!==i&&!Array.isArray(i)&&"$col"in i?s[n]={$col:this.stripAlias(String(i.$col),t)}:s[n]=i;return s}stripAlias(e,t){for(const s of t){if(!s)continue;const t=`${s}.`;if(e.startsWith(t))return e.slice(t.length)}return e}hasCorrelatedRefs(e){for(const[t,s]of Object.entries(e))if("$and"!==t&&"$or"!==t){if("$not"!==t){if("$exists"!==t){if(/^\s*CASE\b/i.test(t))return!0;if(this.fieldHasColRef(s))return!0}else if("object"==typeof s&&null!==s&&"$subquery"in s)return!0}else if(this.hasCorrelatedRefs(s))return!0}else if(s.some(e=>this.hasCorrelatedRefs(e)))return!0;return!1}fieldHasColRef(e){if("object"!=typeof e||null===e||Array.isArray(e))return!1;const t=e;if("$col"in t)return!0;if("$and"in t||"$or"in t)return(t.$and??t.$or).some(e=>this.hasCorrelatedRefs(e));if("$not"in t&&"object"==typeof t.$not&&null!==t.$not)return this.fieldHasColRef(t.$not);for(const[,e]of Object.entries(t))if("object"==typeof e&&null!==e&&!Array.isArray(e)){if("$col"in e)return!0;if(this.fieldHasColRef(e))return!0}return!1}stripCorrelatedExists(e){const t={};for(const[s,n]of Object.entries(e))if("$and"!==s&&"$or"!==s){if("$not"===s){const e=this.stripCorrelatedExists(n);Object.keys(e).length>0&&(t.$not=e);continue}"$exists"!==s&&(/^\s*CASE\b/i.test(s)||(t[s]=n))}else t[s]=n.map(e=>this.stripCorrelatedExists(e));return t}async filterCorrelated(e,t){const s=[];for(const n of e){let e=this.resolveCaseKeys(t,n);e=await this.resolveSubqueries(e,n),o(n,e)&&s.push(n)}return s}resolveCaseKeys(e,t){const s={};for(const[n,i]of Object.entries(e))if("$and"!==n&&"$or"!==n)if("$not"!==n){if(/^\s*CASE\b/i.test(n)){const e=le(n);if(!e)continue;const r=fe(e,t);if(!this.caseConditionMatches(r,i))return{$caseResult:!1};s.$caseResult=!0;continue}s[n]=i}else s.$not=this.resolveCaseKeys(i,t);else s[n]=i.map(e=>this.resolveCaseKeys(e,t));return s}caseConditionMatches(e,t){if("object"!=typeof t||null===t||Array.isArray(t))return e===t;const s=t;for(const[t,n]of Object.entries(s))switch(t){case"$eq":if(e!==n)return!1;break;case"$ne":if(e===n)return!1;break;case"$gt":if(!(e>n))return!1;break;case"$gte":if(!(e>=n))return!1;break;case"$lt":if(!(ethis.bindWhereRefs(e,t)):"$not"===n&&"object"==typeof i&&null!==i?s[n]=this.bindColumnRefs(i,t):"object"==typeof i&&null!==i&&!Array.isArray(i)&&"$col"in i?s[n]=t[String(i.$col)]??null:s[n]=i;return s}bindWhereRefs(e,t){const s={};for(const[n,i]of Object.entries(e))"$and"===n||"$or"===n?s[n]=i.map(e=>this.bindWhereRefs(e,t)):"$not"===n?s.$not=this.bindWhereRefs(i,t):s[n]="$exists"===n?i:this.bindColumnRefs(i,t);return s}async resolveSubqueries(e,t){t&&(e=this.bindWhereRefs(e,t));const s={};for(const[n,i]of Object.entries(e)){if("$exists"===n&&"object"==typeof i&&null!==i){const e=i,n=e.$subquery,r=!!e.$negate;let o=n.where;this.hasCorrelatedRefs(o)&&(o=this.bindWhereRefs(o,t??{}));const a=await this.executeSelectPart({...n,where:o});s.$exists=a.length>0!==r;continue}"$and"===n&&Array.isArray(i)?s.$and=await Promise.all(i.map(e=>this.resolveSubqueries(e,t))):"$or"===n&&Array.isArray(i)?s.$or=await Promise.all(i.map(e=>this.resolveSubqueries(e,t))):"$not"!==n||"object"!=typeof i||null===i?s[n]="object"==typeof i&&null!==i?await this.resolveOperatorSubqueries(i):i:s.$not=await this.resolveSubqueries(i,t)}return s}async resolveOperatorSubqueries(e){const t={};for(const[s,n]of Object.entries(e))if("$and"===s&&Array.isArray(n))t.$and=await Promise.all(n.map(e=>this.resolveSubqueries(e)));else if("$or"===s&&Array.isArray(n))t.$or=await Promise.all(n.map(e=>this.resolveSubqueries(e)));else if("$not"!==s)if("object"==typeof n&&null!==n&&"$subquery"in n){const e=n.$subquery,i=await this.executeSelect(e);if("$in"===s||"$nin"===s){const e=Object.keys(i[0]||{})[0],n=i.map(t=>t[e]);t[s]=n}else if(0===i.length)t[s]=null;else{const e=Object.keys(i[0])[0];t[s]=i[0][e]}}else t[s]=n;else t.$not="object"==typeof n&&null!==n?await this.resolveOperatorSubqueries(n):n;return t}}class me{constructor(e){this.tables=new Map,this.completed=!1,this.engine=e}table(e){let t=this.tables.get(e);return t||(t=new se(this.engine,e),this.tables.set(e,t)),t}_markCompleted(){this.completed=!0}isCompleted(){return this.completed}}class pe{constructor(e){this.engine=e}async execute(e){const t=new me(this.engine);await this.engine.beginTransaction();try{const s=await e(t);return await this.engine.commitTransaction(),t._markCompleted(),s}catch(e){if(await this.engine.rollbackTransaction(),e instanceof n)throw e;throw new n(`Transaction failed: ${e.message}`,"TRANSACTION_ERROR",e)}}}class ge{constructor(){this.plugins=[],this.hooks=new Map}register(e,t){const s=e.priority??0,n=this.plugins.findIndex(e=>(e.priority??0)t.name===e);-1!==t&&(this.plugins[t].destroy(),this.plugins.splice(t,1))}getPlugins(){return[...this.plugins]}on(e,t){const s=this.hooks.get(e)??[];s.push(t),this.hooks.set(e,s)}off(e,t){const s=this.hooks.get(e);if(s){const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}async trigger(e,...t){const s=this.hooks.get(e);if(s)for(const e of s)await e(...t)}destroy(){for(const e of this.plugins)try{e.destroy()}catch(e){}this.plugins=[],this.hooks.clear()}}class ye{get version(){return this._version}get maxRowsPerQuery(){return this.config.maxRowsPerQuery??0}get debug(){return this.config.debug??!1}constructor(e){this.ready=!1,this.tableCache=new Map,this.channel=null,this.listeners=new Map,this.migrations=new Map,this.config=e,this.name=e.name??s.name,this.mode=e.mode??s.mode,this._version=e.version??s.version,this.pluginManager=new ge,e.multiTabSync&&"undefined"!=typeof BroadcastChannel&&(this.channel=new BroadcastChannel(`metona-sqlark:${this.name}`),this.channel.onmessage=e=>{const t=e.data;t&&"change"===t.type&&(this.emit(t.table??"",{type:"external",table:t.table??""}),this.engine instanceof Y&&this.engine.reloadMemoryFromDisk().catch(()=>{}))})}async init(){if(this.engine=this.createEngine(),await this.engine.open(this.name,this.version),this.executor=new de(this.engine,this.maxRowsPerQuery),this.transactionManager=new pe(this.engine),this.config.plugins)for(const e of this.config.plugins)this.pluginManager.register(e,this);this.ready=!0,this.config.onReady&&this.config.onReady(this)}isReady(){return this.ready}async defineTable(e,t){this.ensureReady();const s=g(e,t);try{await this.pluginManager.trigger("beforeCreateTable",s),await this.engine.createTable(s),await this.pluginManager.trigger("afterCreateTable",s)}catch(e){throw this._onError(e),e}this.tableCache.delete(e)}table(e){this.ensureReady();let t=this.tableCache.get(e);return t||(t=new se(this.engine,e,this.executor,e=>this.broadcastChange(e)),this.tableCache.set(e,t)),t}async dropTable(e){this.ensureReady();try{await this.pluginManager.trigger("beforeDropTable",e),await this.engine.dropTable(e),await this.pluginManager.trigger("afterDropTable",e)}catch(e){throw this._onError(e),e}this.tableCache.delete(e)}async getTableNames(){return this.ensureReady(),this.engine.getTableNames()}async query(e){this.ensureReady();const t=this.debug?Date.now():0;let s;await this.pluginManager.trigger("beforeQuery",e);try{const t=he(e);for(const e of t){s=await this.executor.execute(e);const t=this.writeStatementTable(e);t&&this.broadcastChange(t)}}catch(e){throw this._onError(e),e}if(await this.pluginManager.trigger("afterQuery",e,s),this.debug){const n=Date.now()-t,i=Array.isArray(s)?s.length:0;this._debug(`query [${n}ms] ${i} rows: ${e.slice(0,100)}`)}return s}async queryStream(e,t){this.ensureReady();const s=he(e)[0];if(!s||"SELECT"!==s.type)throw new n("queryStream only supports SELECT statements","NOT_SUPPORTED");const i=s,r=i.columns.some(e=>/^(COUNT|SUM|AVG|MIN|MAX)\(/i.test(e));if(!(i.joins||i.groupBy||i.having||i.distinct||r||i.orderBy&&i.orderBy.length>0||i.where&&void 0!==i.where.$exists)&&"function"==typeof this.engine.findStream&&"AsyncFunction"!==t.constructor?.name){const e=this.normalizeWhereForStream(i),s=i.columns.filter(e=>!/\s+AS\s+\w+$/i.test(e));return this.engine.findStream(i.from,{table:i.from,columns:s.length>0&&"*"!==s[0]?s:["*"],where:e&&Object.keys(e).length>0?e:void 0,limit:i.limit,offset:i.offset},t)}const o=await this.query(e);if(Array.isArray(o)){for(const e of o)await t(e);return o.length}return 0}normalizeWhereForStream(e){const t=[e.alias??e.from].filter(Boolean),s=e=>{for(const s of t)if(e.startsWith(`${s}.`))return e.slice(s.length+1);return e},n=e=>{const t={};for(const[i,r]of Object.entries(e))"$and"===i||"$or"===i?t[i]=r.map(n):"$not"===i&&"object"==typeof r&&null!==r?t.$not=n(r):t[s(i)]=r;return t};return n(e.where??{})}async transaction(e){this.ensureReady(),await this.pluginManager.trigger("beforeTransaction");try{const t=await this.transactionManager.execute(e);return await this.pluginManager.trigger("afterTransaction"),t}catch(e){throw this._onError(e),e}}async exportTable(e){return this.ensureReady(),this.engine.find(e,{table:e})}async importTable(e,t){this.ensureReady();try{return await this.engine.insert(e,t)}catch(e){throw this._onError(e),e}}async exportAll(){this.ensureReady();const e={},t=await this.engine.getTableNames();for(const s of t)e[s]=await this.engine.find(s,{table:s});return e}subscribe(e,t){const s=`change:${e}`;return this.listeners.has(s)||this.listeners.set(s,new Set),this.listeners.get(s).add(t),()=>this.listeners.get(s)?.delete(t)}emit(e,t){const s=`change:${e}`;this.listeners.get(s)?.forEach(e=>e(t))}broadcastChange(e){if(this.channel)try{this.channel.postMessage({type:"change",table:e})}catch{}}writeStatementTable(e){switch(e.type){case"INSERT":return e.into;case"UPDATE":case"CREATE_INDEX":case"DROP_INDEX":return e.table;case"DELETE":return e.from;case"CREATE_TABLE":case"DROP_TABLE":case"TRUNCATE_TABLE":case"ALTER_TABLE":return e.name;default:return null}}addMigration(e,t){this.migrations.set(e,t)}async migrateTo(e){this.ensureReady();for(const[t,s]of[...this.migrations.entries()].sort((e,t)=>e[0]-t[0]))t<=e&&t>this.version&&(await s(this),this._version=t)}getPluginManager(){return this.pluginManager}on(e,t){this.pluginManager.on(e,t)}async close(){this.channel&&(this.channel.close(),this.channel=null),this.pluginManager.destroy(),await this.engine.close(),this.tableCache.clear(),this.ready=!1}getEngine(){return this.engine}createEngine(){const e=this.mode,t=this.config.diskEngine??"indexeddb";switch(e){case"memory":return new f;case"disk":return"opfs"===t?new p:new d;case"aria":return new Q({storageBackend:"opfs"===t?"opfs":"indexeddb"});case"hybrid":return new Y(t);default:throw new n(`Unknown storage mode: ${e}`,"CONFIG_ERROR")}}ensureReady(){if(!this.ready)throw new n("Database not initialized. Call await db.init() first.","DB_NOT_READY")}_onError(e){if(this.config.onError)try{this.config.onError(e)}catch{}}_debug(e,...t){this.debug}}const Te=new class{constructor(){this.connections=new Map,this.refCount=new Map}async connect(e){const t=e.name,s=this.connections.get(t);if(s&&s.isReady()){const e=(this.refCount.get(t)??0)+1;return this.refCount.set(t,e),s}const n=new ye(e);return await n.init(),this.connections.set(t,n),this.refCount.set(t,1),n.disconnect=async()=>{await this.release(t)},n}async release(e){const t=(this.refCount.get(e)??1)-1;if(t<=0){const t=this.connections.get(e);t&&(await t.close(),this.connections.delete(e)),this.refCount.delete(e)}else this.refCount.set(e,t)}async forceClose(e){const t=this.connections.get(e);t&&(await t.close(),this.connections.delete(e)),this.refCount.delete(e)}async closeAll(){for(const[,e]of this.connections)try{await e.close()}catch{}this.connections.clear(),this.refCount.clear()}getActiveConnections(){return Array.from(this.connections.keys())}getRefCount(e){return this.refCount.get(e)??0}},be=ye;async function we(e){const t=new ye(e);return await t.init(),t}be.connect=e=>Te.connect(e),be.disconnect=e=>Te.release(e),be.disconnectAll=()=>Te.closeAll(),be.getActiveConnections=()=>Te.getActiveConnections();const Ee={VERSION:i,version:i,create:we,MetonaSqlark:ye,MeSqlark:ye};"undefined"!=typeof window&&(window.MetonaSqlark=Ee,window.MeSqlark=Ee);const xe=ye;e.AriaEngine=Q,e.HybridEngine=Y,e.IndexedDBEngine=d,e.MeSqlark=xe,e.MemoryEngine=f,e.MetonaSqlark=ye,e.OPFSBackend=F,e.OPFSEngine=p,e.Table=se,e.VERSION=i,e.api=Ee,e.create=we,e.default=Ee,e.parse=function(e){return new ae(e).parseStatement()},e.parseAll=he,e.tokenize=function(e){const t=new oe(e),s=[];let n=t.nextToken();for(;n.type!==ie.EOF;)s.push(n),n=t.nextToken();return s.push(n),s},Object.defineProperty(e,"__esModule",{value:!0})}); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).MetonaSqlark={})}(this,function(e){"use strict";const t=["string","number","boolean","date","json"],s=Object.freeze({name:"metona-sqlark",mode:"hybrid",diskEngine:"indexeddb",version:1,maxRowsPerQuery:0,debug:!1,multiTabSync:!1});class n extends Error{constructor(e,t,s){super(e),this.code=t,this.details=s,this.name="DatabaseError"}}const i="0.4.2",r=new Map;function a(e,t,s={}){for(const[n,i]of Object.entries(t))if("$caseResult"!==n){if("$exists"!==n){if("$and"===n){if(!i.every(t=>a(e,t,s)))return!1;continue}if("$or"===n){if(!i.some(t=>a(e,t,s)))return!1;continue}if("$not"!==n){if(!o(e[n],i,e,s))return!1}else if(a(e,i,s))return!1}else if(!0!==i)return!1}else if(!0!==i)return!1;return!0}function o(e,t,s,n){if("object"==typeof t&&null!==t&&"$and"in t)return t.$and.every(e=>a(s,e,n));if("object"==typeof t&&null!==t&&"$or"in t)return t.$or.some(e=>a(s,e,n));if("object"==typeof t&&null!==t&&"$not"in t)return!o(e,t.$not,s,n);if("object"!=typeof t||null===t||Array.isArray(t))return e===t;const i=t;if(n.$col&&"$col"in i&&1===Object.keys(i).length)return e===s[i.$col];for(const[t,r]of Object.entries(i)){let i=r;if(n.$col&&"object"==typeof r&&null!==r&&"$col"in r&&(i=s[r.$col]),!h(e,t,i))return!1}return!0}function h(e,t,s){switch(t){case"$eq":return e===s;case"$ne":return e!==s;case"$gt":return e>s;case"$gte":return e>=s;case"$lt":return e{for(const{column:n,direction:i,nulls:r}of t){const t=null===e[n]||void 0===e[n],a=null===s[n]||void 0===s[n];if(r&&(t||a)){if(t&&a)continue;return"first"===r?t?-1:1:t?1:-1}const o=l(e[n],s[n]);if(0!==o)return"desc"===i?-o:o}return 0})}function l(e,t){return e===t?0:null==e?1:null==t?-1:"string"==typeof e&&"string"==typeof t?e.localeCompare(t):"number"==typeof e&&"number"==typeof t?e-t:String(e).localeCompare(String(t))}function u(e,t){const s={};for(const n of t)if(n in e)s[n]=e[n];else for(const t of Object.keys(e))if(t.endsWith(`.${n}`)||t===n){s[n]=e[t];break}return s}class f{constructor(){this.name="memory",this.tables=new Map,this.schemas=new Map,this.indexes=new Map,this.opened=!1,this.metaStore=new Map,this.snapshot=null}async open(e,t){this.opened||(this.opened=!0)}async close(){this.tables.clear(),this.schemas.clear(),this.indexes.clear(),this.metaStore.clear(),this.opened=!1}isOpen(){return this.opened}async repair(){}async clearAll(){const e=Array.from(this.schemas.keys());for(const t of e)await this.dropTable(t);this.metaStore.clear()}async getMeta(e){return this.metaStore.get(e)??null}async setMeta(e,t){this.metaStore.set(e,t)}async createTable(e){if(this.schemas.has(e.name))throw new n(`Table "${e.name}" already exists`,"TABLE_EXISTS");const t={name:e.name,columns:{}};for(const[s,n]of Object.entries(e.columns))t.columns[s]={...n};this.schemas.set(e.name,t),this.tables.set(e.name,new Map);const s=new Map;for(const[e,n]of Object.entries(t.columns))(n.index||n.unique)&&s.set(e,new Map);this.indexes.set(e.name,s)}async dropTable(e){this.ensureTable(e),this.schemas.delete(e),this.tables.delete(e),this.indexes.delete(e)}async hasTable(e){return this.schemas.has(e)}async getTableNames(){return Array.from(this.schemas.keys())}async getTableSchema(e){return this.schemas.get(e)??null}async alterTable(e,t,s){this.ensureTable(e);const i=this.schemas.get(e);if("ADD"===t){if(i.columns[s.name])throw new n(`Column "${s.name}" already exists in table "${e}"`,"COLUMN_EXISTS");return void(i.columns[s.name]=s)}if(!i.columns[s.name])throw new n(`Column "${s.name}" does not exist in table "${e}"`,"COLUMN_NOT_FOUND");delete i.columns[s.name];const r=this.tables.get(e);for(const e of r.values())s.name in e&&delete e[s.name]}async insert(e,t){this.ensureTable(e);const s=this.schemas.get(e),i=this.tables.get(e),r=this.getPrimaryKey(s),a=[];for(const o of t){const t=this.validateRow(s,o),h=String(t[r]);if(i.has(h))throw new n(`Duplicate primary key "${h}" in table "${e}"`,"DUPLICATE_KEY");this.checkUniqueness(s,t),i.set(h,t),this.updateIndexes(e,t,h),a.push(h)}return a}async find(e,t){this.ensureTable(e);const s=this.tables.get(e);let n=this.tryIndexLookup(e,s,t);t.where&&Object.keys(t.where).length>0&&(n=n.filter(e=>a(e,t.where))),t.orderBy&&t.orderBy.length>0&&(n=c(n,t.orderBy));const i=t.offset??0,r=t.limit??n.length;return n=n.slice(i,i+r),t.columns&&t.columns.length>0&&"*"!==t.columns[0]&&(n=n.map(e=>u(e,t.columns))),n}async findStream(e,t,s){this.ensureTable(e);const n=this.tables.get(e),i=!!(t.where&&Object.keys(t.where).length>0),r=t.limit??1/0,o=t.offset??0,h=t.columns&&t.columns.length>0&&"*"!==t.columns[0]?e=>u(e,t.columns):null;let c=0,l=0;for(const e of n.values())if(!i||a(e,t.where))if(l=r)break;return c}async update(e,t,s){this.ensureTable(e);const n=this.schemas.get(e),i=this.tables.get(e),r=this.getPrimaryKey(n);let o=0;for(const[h,c]of[...i])if(!t.where||0===Object.keys(t.where).length||a(c,t.where)){this.removeIndexEntries(e,c,h);const t={...c,...s};this.validateRow(n,t),this.checkUniqueness(n,t);const a=String(t[r]);a!==h&&await this.applyUpdateCascade(e,h,a),i.delete(h),i.set(a,t),this.updateIndexes(e,t,a),o++}return o}async applyUpdateCascade(e,t,s){for(const[s,i]of this.schemas)if(s!==e)for(const[r,a]of Object.entries(i.columns)){if(!a.references||!a.onUpdate)continue;const[i]=a.references.split(".");if(i!==e)continue;const o=this.tables.get(s);if(o)for(const[,i]of o)if(String(i[r])===t&&"RESTRICT"===a.onUpdate)throw new n(`Cannot update "${e}" key "${t}": foreign key "${r}" in "${s}" has dependent rows`,"FOREIGN_KEY_VIOLATION")}for(const[n,i]of this.schemas)if(n!==e)for(const[r,a]of Object.entries(i.columns)){if(!a.references||!a.onUpdate)continue;const[i]=a.references.split(".");if(i!==e)continue;const o=this.tables.get(n);if(o&&("CASCADE"===a.onUpdate||"SET NULL"===a.onUpdate))for(const[e,i]of o)String(i[r])===t&&(this.removeIndexEntries(n,i,e),i[r]="CASCADE"===a.onUpdate?s:null,this.updateIndexes(n,i,e))}}async delete(e,t){this.ensureTable(e);const s=this.tables.get(e),n=[];for(const[i,r]of s)t.where&&0!==Object.keys(t.where).length&&!a(r,t.where)||(this.removeIndexEntries(e,r,i),n.push(i));let i=0;for(const t of n){const n=s.get(t);n&&(i+=await this.cascadeDelete(e,t,n))}for(const e of n)s.delete(e);return n.length+i}async count(e,t){this.ensureTable(e);const s=this.tables.get(e);if(!t?.where||0===Object.keys(t.where).length)return s.size;let n=0;for(const e of s.values())a(e,t.where)&&n++;return n}async clear(e){this.ensureTable(e),this.tables.get(e).clear();const t=this.indexes.get(e);if(t)for(const e of t.values())e.clear()}async createIndex(e,t,s){this.ensureTable(e);const i=this.schemas.get(e).columns[t];if(!i)throw new n(`Column "${t}" does not exist in table "${e}"`,"COLUMN_NOT_FOUND");if(i.index||i.unique)return;i.index=!0,s&&(i.unique=!0);const r=this.indexes.get(e);r.has(t)||r.set(t,new Map);const a=r.get(t),o=this.tables.get(e);for(const[e,s]of o){const n=s[t];null!=n&&(a.has(n)||a.set(n,new Set),a.get(n).add(e))}}async dropIndex(e,t,s){this.ensureTable(e);const i=this.schemas.get(e).columns[t];if(!i)throw new n(`Column "${t}" does not exist in table "${e}"`,"COLUMN_NOT_FOUND");if(!i.index&&!i.unique)throw new n(`Index on column "${t}" does not exist in table "${e}"`,"INDEX_NOT_FOUND");i.index=!1,i.unique=!1;const r=this.indexes.get(e);r&&r.delete(t)}async beginTransaction(){if(this.snapshot)throw new n("Transaction already in progress","TX_ACTIVE");this.snapshot={tables:this.deepCloneMapMap(this.tables),schemas:new Map(this.schemas),indexes:this.deepCloneIndexes(this.indexes)}}async commitTransaction(){if(!this.snapshot)throw new n("No active transaction","TX_NONE");this.snapshot=null}async rollbackTransaction(){if(!this.snapshot)throw new n("No active transaction","TX_NONE");this.tables=this.snapshot.tables,this.schemas=this.snapshot.schemas,this.indexes=this.snapshot.indexes,this.snapshot=null}deepCloneMapMap(e){const t=new Map;for(const[s,n]of e){const e=new Map;for(const[t,s]of n)e.set(t,{...s});t.set(s,e)}return t}deepCloneIndexes(e){const t=new Map;for(const[s,n]of e){const e=new Map;for(const[t,s]of n){const n=new Map;for(const[e,t]of s)n.set(e,new Set(t));e.set(t,n)}t.set(s,e)}return t}ensureTable(e){if(!this.tables.has(e))throw new n(`Table "${e}" does not exist`,"TABLE_NOT_FOUND")}getPrimaryKey(e){for(const[t,s]of Object.entries(e.columns))if(s.primaryKey)return t;return Object.keys(e.columns)[0]}validateRow(e,t){const s={};for(const[i,r]of Object.entries(e.columns)){let a=t[i];if(void 0===a&&void 0!==r.default&&(a=r.default),r.required&&null==a)throw new n(`Column "${i}" is required in table "${e.name}"`,"VALIDATION_ERROR");null!=a&&this.checkType(i,r.type,a),void 0!==a&&(s[i]=a)}return s}checkType(e,t,s){const i=typeof s;switch(t){case"string":if("string"!==i)throw new n(`Column "${e}" expects string, got ${i}`,"TYPE_ERROR");break;case"number":if("number"!==i)throw new n(`Column "${e}" expects number, got ${i}`,"TYPE_ERROR");break;case"boolean":if("boolean"!==i)throw new n(`Column "${e}" expects boolean, got ${i}`,"TYPE_ERROR");break;case"date":if("string"!==i||isNaN(Date.parse(s)))throw new n(`Column "${e}" expects valid date`,"TYPE_ERROR");break;case"json":if("object"!==i)throw new n(`Column "${e}" expects object/array, got ${i}`,"TYPE_ERROR")}}checkUniqueness(e,t){const s=this.indexes.get(e.name);if(s)for(const[i,r]of Object.entries(e.columns)){if(!r.unique||void 0===t[i]||null===t[i])continue;const a=s.get(i);if(a&&a.has(t[i]))throw new n(`Unique constraint violation on column "${i}" in table "${e.name}"`,"UNIQUE_VIOLATION")}}tryIndexLookup(e,t,s){const n=this.indexes.get(e);if(!n||!s.where)return Array.from(t.values());for(const[e,i]of Object.entries(s.where)){let s;if("object"!=typeof i||null===i)s=i;else{if(!("$eq"in i)||1!==Object.keys(i).length)continue;s=i.$eq}const r=n.get(e);if(r){const e=r.get(s);if(e){const s=[];for(const n of e){const e=t.get(n);e&&s.push(e)}return s}return[]}}return Array.from(t.values())}updateIndexes(e,t,s){const n=this.indexes.get(e);if(n)for(const[e,i]of n){const n=t[e];null!=n&&(i.has(n)||i.set(n,new Set),i.get(n).add(s))}}removeIndexEntries(e,t,s){const n=this.indexes.get(e);if(n)for(const[e,i]of n){const n=t[e];if(null!=n){const e=i.get(n);e&&(e.delete(s),0===e.size&&i.delete(n))}}}async cascadeDelete(e,t,s){let i=0;for(const[s,r]of this.schemas)if(s!==e)for(const[a,o]of Object.entries(r.columns)){if(!o.references||!o.onDelete)continue;const[r]=o.references.split(".");if(r!==e)continue;const h=this.tables.get(s);if(!h)continue;const c=[];for(const[e,s]of h)String(s[a])===t&&c.push(e);if("RESTRICT"===o.onDelete&&c.length>0)throw new n(`Cannot delete from "${e}": foreign key "${a}" in "${s}" has dependent rows`,"FOREIGN_KEY_VIOLATION");if("CASCADE"===o.onDelete)for(const e of c){const t=h.get(e);t&&(this.removeIndexEntries(s,t,e),i+=await this.cascadeDelete(s,e,t)),h.delete(e),i++}else if("SET NULL"===o.onDelete)for(const e of c){const t=h.get(e);if(t){if(void 0!==t[a]&&null!==t[a]){const n=this.indexes.get(s)?.get(a);n&&n.get(t[a])?.delete(e)}t[a]=null}}}return i}}class d{constructor(){this.name="indexeddb",this.db=null,this.dbName="",this.version=1,this.memoryCache=new f,this.txActive=!1}async open(e,t){const s=t>=1?Math.floor(t):1;this.dbName=e,this.version=s,await this.memoryCache.open(e,s),this.db=await this.openDatabaseWithRetry(e,s),this.setupVersionChangeHandler(),await this.ensureSchemaStore();try{await this.rebuildSchemaFromIDB()}catch(t){throw new n(`Failed to restore schema for "${e}"`,"IDB_SCHEMA_RESTORE_ERROR",t)}}setupVersionChangeHandler(){this.db&&(this.db.onversionchange=()=>{this.db&&(this.db.close(),this.db=null)})}async openDatabaseWithRetry(e,t){let s=t;for(let t=0;t<10;t++)try{return await this.openRequest(e,s,200+150*t)}catch(i){const r=i;if(r&&"VersionError"===r.name){const t=await this.resolveCurrentVersion(e);if(t>=1&&t!==s){s=t,this.version=t;continue}throw new n(`Failed to open IndexedDB "${e}": version mismatch`,"IDB_VERSION_ERROR",i)}if(r&&"BlockedError"===r.name){await new Promise(e=>setTimeout(e,50*(t+1)));continue}throw new n(`Failed to open IndexedDB "${e}"`,"IDB_OPEN_ERROR",i)}throw new n(`IndexedDB "${e}" is blocked`,"IDB_BLOCKED")}openRequest(e,t,s){return new Promise((n,i)=>{const r=indexedDB.open(e,t);let a=!1;const o=setTimeout(()=>{if(a)return;a=!0;const e="undefined"!=typeof DOMException?new DOMException("IndexedDB open is blocked","BlockedError"):Object.assign(new Error("IndexedDB open is blocked"),{name:"BlockedError"});i(e)},s);r.onsuccess=()=>{a?r.result.close():(a=!0,clearTimeout(o),n(r.result))},r.onerror=()=>{a||(a=!0,clearTimeout(o),i(r.error??new Error("Unknown IndexedDB open error")))},r.onblocked=()=>{}})}resolveCurrentVersion(e){return new Promise((t,s)=>{const n=indexedDB.open(e);n.onsuccess=()=>{const e=n.result.version;n.result.close(),t(e)},n.onerror=()=>{s(n.error??new Error("Failed to resolve IndexedDB version"))}})}async ensureSchemaStore(){if(!this.db)return;if(this.db.objectStoreNames.contains("__metona_schema"))return;const e=this.db.version+1;this.db.close(),this.db=await new Promise((t,s)=>{const i=indexedDB.open(this.dbName,e);i.onupgradeneeded=()=>{const e=i.result;e.objectStoreNames.contains("__metona_schema")||e.createObjectStore("__metona_schema",{keyPath:"name"})},i.onsuccess=()=>{this.db=i.result,this.setupVersionChangeHandler(),t(i.result)},i.onerror=()=>s(new n("Failed to create schema store","IDB_UPGRADE_ERROR",i.error))})}async rebuildSchemaFromIDB(){const e=this.ensureDB();if(e.objectStoreNames.contains("__metona_schema")){const t=await new Promise((t,s)=>{const n=e.transaction("__metona_schema","readonly").objectStore("__metona_schema").getAll();n.onsuccess=()=>t(n.result??[]),n.onerror=()=>s(n.error)});for(const e of t)try{const t=JSON.parse(e.schema);await this.memoryCache.getTableSchema(t.name)||await this.memoryCache.createTable(t)}catch{}}const t=Array.from(e.objectStoreNames).filter(e=>"__metona_schema"!==e);for(const s of t){if(await this.memoryCache.getTableSchema(s))continue;const t={},n=e.transaction(s,"readonly").objectStore(s);t[n.keyPath]={type:"string",primaryKey:!0};for(const e of Array.from(n.indexNames))if(e.startsWith("idx_")){const s=e.slice(4);t[s]||(t[s]={type:"string",index:!0})}const i=await new Promise((e,t)=>{const s=n.getAll();s.onsuccess=()=>e(s.result??[]),s.onerror=()=>t(s.error)});if(i.length>0)for(const[e,s]of Object.entries(i[0]))t[e]||(t[e]={type:m(s)});await this.memoryCache.createTable({name:s,columns:t})}}async close(){this.db&&(this.db.onversionchange=null,this.db.close(),this.db=null),await this.memoryCache.close()}async repair(){if(!this.db)throw new n("Database not opened","DB_NOT_OPEN");await this.memoryCache.close(),await this.memoryCache.open(this.dbName,this.version),await this.rebuildSchemaFromIDB()}async clearAll(){const e=this.ensureDB(),t=await this.memoryCache.getTableNames();for(const e of t)await this.memoryCache.dropTable(e);const s=e.version+1;e.close(),await new Promise((e,t)=>{const i=indexedDB.open(this.dbName,s);i.onupgradeneeded=e=>{const t=e.target.result,s=Array.from(t.objectStoreNames).filter(e=>"__metona_schema"!==e);for(const e of s)t.deleteObjectStore(e);t.objectStoreNames.contains("__metona_schema")?e.target.transaction.objectStore("__metona_schema").clear():t.createObjectStore("__metona_schema",{keyPath:"name"})},i.onsuccess=()=>{this.db=i.result,this.setupVersionChangeHandler(),e()},i.onerror=()=>t(new n("Failed to clear database","IDB_CLEAR_ERROR",i.error)),i.onblocked=()=>t(new n(`IndexedDB "${this.dbName}" is blocked`,"IDB_BLOCKED"))})}async getMeta(e){const t=this.ensureDB();return t.objectStoreNames.contains("__metona_schema")?new Promise((s,n)=>{const i=t.transaction("__metona_schema","readonly").objectStore("__metona_schema").get(`__meta:${e}`);i.onsuccess=()=>{const e=i.result;s(e&&"string"==typeof e.schema?e.schema:null)},i.onerror=()=>n(i.error)}):null}async setMeta(e,t){const s=this.ensureDB();s.objectStoreNames.contains("__metona_schema")&&await new Promise((i,r)=>{const a=s.transaction("__metona_schema","readwrite");a.objectStore("__metona_schema").put({name:`__meta:${e}`,schema:t}),a.oncomplete=()=>i(),a.onerror=()=>r(new n(`Failed to persist meta "${e}"`,"IDB_META_ERROR",a.error))})}isOpen(){return null!==this.db}async createTable(e){await this.memoryCache.createTable(e),this.txActive||await this.idbCreateTable(e)}async dropTable(e){await this.memoryCache.dropTable(e),this.txActive||await this.idbDropTable(e)}async hasTable(e){return this.ensureDB().objectStoreNames.contains(e)}async getTableNames(){return Array.from(this.ensureDB().objectStoreNames)}async getTableSchema(e){return this.memoryCache.getTableSchema(e)}async alterTable(e,t,s){if(await this.memoryCache.alterTable(e,t,s),this.txActive)return;const i=await this.memoryCache.getTableSchema(e);if(i&&await this.persistSchema(i),"DROP"===t){const t=this.ensureDB(),i=(await this.idbFind(e,{table:e})).map(e=>{if(s.name in e){const t={...e};return delete t[s.name],t}return e});i.length>0&&await new Promise((s,r)=>{const a=t.transaction(e,"readwrite"),o=a.objectStore(e);for(const e of i)o.put(e);a.oncomplete=()=>s(),a.onerror=()=>r(new n(`Failed to rewrite "${e}" after DROP COLUMN`,"IDB_TX_ERROR",a.error))})}}async insert(e,t){const s=await this.memoryCache.insert(e,t);return this.txActive||await this.idbInsert(e,t),s}async find(e,t){return this.txActive?this.memoryCache.find(e,t):this.idbFind(e,t)}async findStream(e,t,s){if(this.txActive)return this.memoryCache.findStream(e,t,s);const n=await this.idbFind(e,{...t,orderBy:void 0,limit:void 0,offset:void 0});let i=0;for(const e of n)s(e),i++;return i}async update(e,t,s){const n=await this.memoryCache.update(e,t,s);return this.txActive||await this.idbUpdate(e,t,s),n}async delete(e,t){const s=await this.memoryCache.delete(e,t);return this.txActive||await this.idbDelete(e,t),s}async count(e,t){return this.txActive?this.memoryCache.count(e,t):(await this.idbFind(e,{table:e,where:t?.where??{}})).length}async clear(e){await this.memoryCache.clear(e),this.txActive||await this.idbClear(e)}async createIndex(e,t,s){if(await this.memoryCache.createIndex(e,t,s),this.txActive)return;const i=this.ensureDB();return new Promise((r,a)=>{const o=i.version+1;i.close();const h=indexedDB.open(this.dbName,o);h.onupgradeneeded=n=>{const i=n.target.result.transaction(e,"readwrite").objectStore(e);i.indexNames.contains(`idx_${t}`)||i.createIndex(`idx_${t}`,t,{unique:s??!1})},h.onsuccess=()=>{this.db=h.result,r()},h.onerror=()=>a(new n(`Failed to create index "${e}.${t}"`,"IDB_UPGRADE_ERROR",h.error))})}async dropIndex(e,t,s){if(await this.memoryCache.dropIndex(e,t),this.txActive)return;const i=this.ensureDB();return new Promise((s,r)=>{const a=i.version+1;i.close();const o=indexedDB.open(this.dbName,a);o.onupgradeneeded=s=>{const n=s.target.result.transaction(e,"readwrite").objectStore(e);n.indexNames.contains(`idx_${t}`)&&n.deleteIndex(`idx_${t}`)},o.onsuccess=()=>{this.db=o.result,s()},o.onerror=()=>r(new n(`Failed to drop index "${e}.${t}"`,"IDB_UPGRADE_ERROR",o.error))})}async beginTransaction(){if(this.txActive)throw new n("Transaction already in progress","TX_ACTIVE");this.txActive=!0,await this.memoryCache.beginTransaction()}async commitTransaction(){if(!this.txActive)throw new n("No active transaction","TX_NONE");await this.flushToIDB(),await this.memoryCache.commitTransaction(),this.txActive=!1}async rollbackTransaction(){if(!this.txActive)throw new n("No active transaction","TX_NONE");await this.memoryCache.rollbackTransaction(),this.txActive=!1}async idbCreateTable(e){const t=this.ensureDB();return new Promise((s,i)=>{const r=t.version+1;t.close();const a=indexedDB.open(this.dbName,r);a.onupgradeneeded=t=>{const s=t.target.result,n=Object.entries(e.columns).find(([,e])=>e.primaryKey)?.[0]??Object.keys(e.columns)[0],i=s.createObjectStore(e.name,{keyPath:n});for(const[t,s]of Object.entries(e.columns))s.index&&t!==n&&i.createIndex(`idx_${t}`,t,{unique:s.unique??!1});s.objectStoreNames.contains("__metona_schema")||s.createObjectStore("__metona_schema",{keyPath:"name"})},a.onsuccess=()=>{this.db=a.result;const t=this.db.transaction("__metona_schema","readwrite");t.objectStore("__metona_schema").put({name:e.name,schema:JSON.stringify(e)}),t.oncomplete=()=>s(),t.onerror=()=>i(new n(`Failed to persist schema for "${e.name}"`,"IDB_SCHEMA_ERROR",t.error))},a.onerror=()=>i(new n(`Failed to create table "${e.name}"`,"IDB_UPGRADE_ERROR",a.error))})}async idbDropTable(e){const t=this.ensureDB();return new Promise((s,i)=>{const r=t.version+1;t.close();const a=indexedDB.open(this.dbName,r);a.onupgradeneeded=t=>{const s=t.target.result;s.objectStoreNames.contains(e)&&s.deleteObjectStore(e)},a.onsuccess=()=>{if(this.db=a.result,this.db.objectStoreNames.contains("__metona_schema")){const t=this.db.transaction("__metona_schema","readwrite");t.objectStore("__metona_schema").delete(e),t.onerror=()=>{}}s()},a.onerror=()=>i(new n(`Failed to drop table "${e}"`,"IDB_UPGRADE_ERROR",a.error))})}async idbInsert(e,t){const s=this.ensureDB();return new Promise((i,r)=>{const a=s.transaction(e,"readwrite"),o=a.objectStore(e);for(const e of t)o.add(e);a.oncomplete=()=>i(),a.onerror=()=>r(new n(`Insert failed for "${e}"`,"IDB_TX_ERROR",a.error))})}async idbFind(e,t){const s=this.ensureDB();if(t.where){const n=await this.tryIDBIndexLookup(s,e,t);if(null!==n)return n}return new Promise((i,r)=>{const o=s.transaction(e,"readonly").objectStore(e).getAll();o.onsuccess=()=>{let e=o.result??[];t.where&&Object.keys(t.where).length>0&&(e=e.filter(e=>a(e,t.where))),t.orderBy&&t.orderBy.length>0&&(e=c(e,t.orderBy));const s=t.offset??0,n=t.limit??e.length;e=e.slice(s,s+n),t.columns&&t.columns.length>0&&"*"!==t.columns[0]&&(e=e.map(e=>u(e,t.columns))),i(e)},o.onerror=()=>r(new n(`Find failed for "${e}"`,"IDB_READ_ERROR",o.error))})}async tryIDBIndexLookup(e,t,s){if(!s.where)return null;for(const[i,r]of Object.entries(s.where)){if("$and"===i||"$or"===i||"$not"===i)continue;let o;if("object"!=typeof r||null===r)o=r;else{if(!("$eq"in r))continue;o=r.$eq}const h=`idx_${i}`;try{return await new Promise((r,l)=>{const f=e.transaction(t,"readonly").objectStore(t);if(!f.indexNames.contains(h))return void r(null);const d=f.index(h).getAll(o);d.onsuccess=()=>{let e=d.result??[];Object.keys(s.where).filter(e=>e!==i&&"$and"!==e&&"$or"!==e&&"$not"!==e).length>0&&(e=e.filter(e=>a(e,s.where))),s.orderBy&&s.orderBy.length>0&&(e=c(e,s.orderBy));const t=s.offset??0,n=s.limit??e.length;e=e.slice(t,t+n),s.columns&&s.columns.length>0&&"*"!==s.columns[0]&&(e=e.map(e=>u(e,s.columns))),r(e)},d.onerror=()=>l(new n(`Index lookup failed for "${t}.${i}"`,"IDB_READ_ERROR",d.error))})}catch{return null}}return null}async idbUpdate(e,t,s){const i=this.ensureDB();return new Promise((r,o)=>{const h=i.transaction(e,"readwrite"),c=h.objectStore(e),l=c.getAll();l.onsuccess=()=>{for(const e of l.result??[])t.where&&0!==Object.keys(t.where).length&&!a(e,t.where)||(Object.assign(e,s),c.put(e))},h.oncomplete=()=>r(),h.onerror=()=>o(new n(`Update failed for "${e}"`,"IDB_TX_ERROR",h.error))})}async idbDelete(e,t){const s=this.ensureDB(),i=await this.memoryCache.getTableSchema(e);if(!i)throw new n(`Table "${e}" not found`,"TABLE_NOT_FOUND");const r=Object.entries(i.columns).find(([,e])=>e.primaryKey)?.[0]??Object.keys(i.columns)[0];return new Promise((i,o)=>{const h=s.transaction(e,"readwrite"),c=h.objectStore(e),l=c.getAll();l.onsuccess=()=>{for(const e of l.result??[])t.where&&0!==Object.keys(t.where).length&&!a(e,t.where)||c.delete(e[r])},h.oncomplete=()=>i(),h.onerror=()=>o(new n(`Delete failed for "${e}"`,"IDB_TX_ERROR",h.error))})}async idbClear(e){const t=this.ensureDB();return new Promise((s,i)=>{const r=t.transaction(e,"readwrite");r.objectStore(e).clear(),r.oncomplete=()=>s(),r.onerror=()=>i(new n(`Clear failed for "${e}"`,"IDB_TX_ERROR",r.error))})}async persistSchema(e){const t=this.ensureDB();t.objectStoreNames.contains("__metona_schema")&&await new Promise((s,i)=>{const r=t.transaction("__metona_schema","readwrite");r.objectStore("__metona_schema").put({name:e.name,schema:JSON.stringify(e)}),r.oncomplete=()=>s(),r.onerror=()=>i(new n(`Failed to persist schema for "${e.name}"`,"IDB_SCHEMA_ERROR",r.error))})}async flushToIDB(){const e=await this.memoryCache.getTableNames();let t=this.ensureDB();const s=Array.from(t.objectStoreNames),i=e.filter(e=>!s.includes(e)),r=s.filter(t=>"__metona_schema"!==t&&!e.includes(t));if(i.length>0||r.length>0){const e=new Map;for(const t of i){const s=await this.memoryCache.getTableSchema(t);s&&e.set(t,s)}const s=t.version+1;t.close(),await new Promise((t,a)=>{const o=indexedDB.open(this.dbName,s);o.onupgradeneeded=t=>{const s=t.target.result;for(const e of r)s.deleteObjectStore(e);for(const t of i){const n=e.get(t),i=n?Object.entries(n.columns).find(([,e])=>e.primaryKey)?.[0]??Object.keys(n.columns)[0]:void 0;s.createObjectStore(t,{keyPath:i})}if(s.objectStoreNames.contains("__metona_schema")&&r.length>0){const e=t.target.transaction.objectStore("__metona_schema");for(const t of r)e.delete(t)}},o.onsuccess=()=>{this.db=o.result,this.setupVersionChangeHandler(),t()},o.onerror=()=>a(new n("Failed to sync stores after transaction","IDB_UPGRADE_ERROR",o.error)),o.onblocked=()=>a(new n(`IndexedDB "${this.dbName}" is blocked`,"IDB_BLOCKED"))});for(const e of i){const t=await this.memoryCache.getTableSchema(e);t&&await this.persistSchema(t)}t=this.ensureDB()}for(const s of e){const e=await this.memoryCache.find(s,{table:s});await new Promise((i,r)=>{const a=t.transaction(s,"readwrite"),o=a.objectStore(s);o.clear();for(const t of e)o.add(t);a.oncomplete=()=>i(),a.onerror=()=>r(new n(`Flush failed for "${s}"`,"IDB_FLUSH_ERROR",a.error))})}}ensureDB(){if(!this.db)throw new n("Database not opened","DB_NOT_OPEN");return this.db}}function m(e){return"number"==typeof e?"number":"boolean"==typeof e?"boolean":"object"==typeof e&&null!==e?"json":"string"==typeof e?(isNaN(Date.parse(e)),"string"):"string"}class p{constructor(){this.name="opfs",this.root=null,this.tablesDir=null,this.dbName="",this.memoryCache=new f}async open(e,t){this.dbName=e,await this.memoryCache.open(e,t),this.root=await navigator.storage.getDirectory(),this.tablesDir=await this.root.getDirectoryHandle(e,{create:!0}),await this.loadExistingTables()}async close(){this.root=null,this.tablesDir=null,await this.memoryCache.close()}isOpen(){return null!==this.tablesDir}async repair(){await this.memoryCache.close(),await this.memoryCache.open(this.dbName,1),await this.loadExistingTables()}async clearAll(){if(await this.memoryCache.close(),await this.memoryCache.open(this.dbName,1),this.tablesDir){const e=this.tablesDir;for await(const[t]of e.entries())try{await this.tablesDir.removeEntry(t)}catch{}}}async getMeta(e){if(!this.tablesDir)return null;try{const t=await this.tablesDir.getFileHandle(`__metona_${e}.meta`),s=await t.getFile();return await s.text()}catch{return null}}async setMeta(e,t){if(!this.tablesDir)return;const s=await this.tablesDir.getFileHandle(`__metona_${e}.meta`,{create:!0}),n=await s.createWritable();await n.write(t),await n.close()}async createTable(e){await this.memoryCache.createTable(e),await this.setMeta(`schema_${e.name}`,JSON.stringify(e)),await this.writeTableData(e.name,[])}async dropTable(e){if(await this.memoryCache.dropTable(e),this.tablesDir){try{await this.tablesDir.removeEntry(`__metona_schema_${e}.meta`)}catch{}try{await this.tablesDir.removeEntry(`${e}.json`)}catch{}}}async hasTable(e){if(!this.tablesDir)return!1;try{return await this.tablesDir.getFileHandle(`${e}.json`),!0}catch{return!1}}async getTableNames(){if(!this.tablesDir)return[];const e=[];for await(const[t]of this.tablesDir.entries())t.endsWith(".json")&&e.push(t.replace(".json",""));return e}async getTableSchema(e){return this.memoryCache.getTableSchema(e)}async alterTable(e,t,s){await this.memoryCache.alterTable(e,t,s);const n=await this.memoryCache.getTableSchema(e);n&&await this.setMeta(`schema_${e}`,JSON.stringify(n));const i=await this.memoryCache.find(e,{table:e});await this.writeTableData(e,i)}async insert(e,t){const s=await this.memoryCache.insert(e,t),n=await this.memoryCache.find(e,{table:e});return await this.writeTableData(e,n),s}async find(e,t){return this.memoryCache.find(e,t)}async findStream(e,t,s){return this.memoryCache.findStream(e,t,s)}async update(e,t,s){const n=await this.memoryCache.update(e,t,s),i=await this.memoryCache.find(e,{table:e});return await this.writeTableData(e,i),n}async delete(e,t){const s=await this.memoryCache.delete(e,t),n=await this.memoryCache.find(e,{table:e});return await this.writeTableData(e,n),s}async count(e,t){return this.memoryCache.count(e,t)}async clear(e){await this.memoryCache.clear(e),await this.writeTableData(e,[])}async createIndex(e,t,s){await this.memoryCache.createIndex(e,t,s);const n=await this.memoryCache.getTableSchema(e);n&&await this.setMeta(`schema_${e}`,JSON.stringify(n))}async dropIndex(e,t,s){await this.memoryCache.dropIndex(e,t,s);const n=await this.memoryCache.getTableSchema(e);n&&await this.setMeta(`schema_${e}`,JSON.stringify(n))}async beginTransaction(){await this.memoryCache.beginTransaction()}async commitTransaction(){await this.memoryCache.commitTransaction();const e=await this.memoryCache.getTableNames();for(const t of e){const e=await this.memoryCache.find(t,{table:t});await this.writeTableData(t,e)}}async rollbackTransaction(){await this.memoryCache.rollbackTransaction()}ensureDir(){if(!this.tablesDir)throw new n("Database not opened","DB_NOT_OPEN");return this.tablesDir}async writeTableData(e,t){const s=this.ensureDir(),n=`${e}.json`,i=await s.getFileHandle(n,{create:!0}),r=await i.createWritable();await r.write(JSON.stringify(t)),await r.close()}async readTableData(e){const t=this.ensureDir(),s=`${e}.json`;try{const e=await t.getFileHandle(s),n=await e.getFile(),i=await n.text();return JSON.parse(i)}catch{return[]}}async loadExistingTables(){if(!this.tablesDir)return;const e=this.tablesDir,t=[];for await(const[s]of e.entries())s.endsWith(".json")&&t.push(s);for(const e of t){const t=e.replace(".json","");try{const e=await this.getMeta(`schema_${t}`);if(e){const s=JSON.parse(e);await this.memoryCache.createTable(s);const n=await this.readTableData(t);for(const e of n)try{await this.memoryCache.insert(t,[e])}catch{}continue}const s=await this.readTableData(t);if(s.length>0){const e=s[0],n={};for(const t of Object.keys(e)){const s=e[t],i="number"==typeof s?"number":"boolean"==typeof s?"boolean":"object"==typeof s?"json":"string";n[t]={type:i,primaryKey:"id"===t}}await this.memoryCache.createTable({name:t,columns:n});for(const e of s)await this.memoryCache.insert(t,[e])}}catch{}}}async loadTableIntoMemory(e,t){await this.memoryCache.createTable(t);const s=await this.readTableData(e);if(s.length>0)for(const t of s)await this.memoryCache.insert(e,[t])}}function y(e,s){return function(e){if(0===Object.keys(e).length)throw new n("Table must have at least one column","SCHEMA_ERROR");let s=0;for(const[i,r]of Object.entries(e)){if(!t.includes(r.type))throw new n(`Invalid type "${r.type}" for column "${i}". Valid types: ${t.join(", ")}`,"SCHEMA_ERROR");r.primaryKey&&s++}if(0===s)throw new n("Table must have at least one primary key column","SCHEMA_ERROR")}(s),{name:e,columns:s}}function g(e){return{type:e.type,primaryKey:e.primaryKey,unique:e.unique,required:e.required,default:e.default,index:e.index,maxLength:e.maxLength,min:e.min,max:e.max,references:e.references,onDelete:e.onDelete,onUpdate:e.onUpdate}}const b=4096;var w,T;!function(e){e[e.DATA=1]="DATA",e[e.INDEX=2]="INDEX",e[e.OVERFLOW=3]="OVERFLOW",e[e.META=4]="META"}(w||(w={})),function(e){e[e.STRING=1]="STRING",e[e.NUMBER=2]="NUMBER",e[e.BOOLEAN=3]="BOOLEAN",e[e.DATE=4]="DATE",e[e.JSON=5]="JSON",e[e.NULL=6]="NULL"}(T||(T={}));const E=4194304;var S,x,I;!function(e){e[e.INSERT=1]="INSERT",e[e.UPDATE=2]="UPDATE",e[e.DELETE=3]="DELETE",e[e.BEGIN=4]="BEGIN",e[e.COMMIT=5]="COMMIT",e[e.ROLLBACK=6]="ROLLBACK",e[e.CREATE_TABLE=7]="CREATE_TABLE",e[e.DROP_TABLE=8]="DROP_TABLE"}(S||(S={})),function(e){e[e.READ_COMMITTED=1]="READ_COMMITTED",e[e.SNAPSHOT=2]="SNAPSHOT"}(x||(x={})),function(e){e[e.ACTIVE=1]="ACTIVE",e[e.COMMITTED=2]="COMMITTED",e[e.ABORTED=3]="ABORTED"}(I||(I={}));const k={pageSize:b,bufferPoolPages:256,memtableSizeThreshold:E,levelSizeMultiplier:10,bloomFilterBitsPerKey:10,walEnabled:!0,walSyncMode:"full",checkpointInterval:1e3,compression:!1,storageBackend:"indexeddb",walSizeThreshold:16777216,maxMemoryMB:64};var A;!function(e){e[e.RED=0]="RED",e[e.BLACK=1]="BLACK"}(A||(A={}));class C{constructor(e,t){this.color=A.RED,this.left=null,this.right=null,this.parent=null,this.key=e,this.value=t}}class R{constructor(){this.root=null,this._size=0}get size(){return this._size}insert(e,t){const s=new C(e,t);if(!this.root)return this.root=s,s.color=A.BLACK,void this._size++;let n=null,i=this.root;for(;i;)if(n=i,ei.key))return void(i.value=t);i=i.right}s.parent=n,et.key))return t.value;t=t.right}return null}delete(e){const t=this.findNode(e);return!!t&&(this.deleteNode(t),this._size--,!0)}inorder(e){this._inorder(this.root,e)}rangeScan(e,t,s){this._rangeScan(this.root,e,t,s)}getAllEntries(){const e=[];return this.inorder((t,s)=>e.push([t,s])),e}clear(){this.root=null,this._size=0}findNode(e){let t=this.root;for(;t;)if(et.key))return t;t=t.right}return null}deleteNode(e){if(e.left||e.right)if(e.left)if(e.right){const t=this.minimum(e.right);t.parent!==e&&(this.transplant(t,t.right),t.right=e.right,t.right.parent=t),this.transplant(e,t),t.left=e.left,t.left.parent=t;const s=t.color;t.color=e.color,s===A.BLACK&&this.fixDelete(t.right,t.right?.parent??null)}else this.transplant(e,e.left),e.color===A.BLACK&&this.fixDelete(e.left,e.left.parent);else this.transplant(e,e.right),e.color===A.BLACK&&this.fixDelete(e.right,e.right.parent);else this.transplant(e,null),e.color===A.BLACK&&this.fixDelete(null,e.parent)}transplant(e,t){e.parent?e===e.parent.left?e.parent.left=t:e.parent.right=t:this.root=t,t&&(t.parent=e.parent)}minimum(e){for(;e.left;)e=e.left;return e}fixInsert(e){for(;e.parent&&e.parent.color===A.RED;){const t=e.parent,s=t.parent;if(!s)break;if(t===s.left){const n=s.right;n&&n.color===A.RED?(t.color=A.BLACK,n.color=A.BLACK,s.color=A.RED,e=s):(e===t.right&&(e=t,this.rotateLeft(e)),e.parent&&(e.parent.color=A.BLACK),e.parent?.parent&&(e.parent.parent.color=A.RED),e.parent?.parent&&this.rotateRight(e.parent.parent))}else{const n=s.left;n&&n.color===A.RED?(t.color=A.BLACK,n.color=A.BLACK,s.color=A.RED,e=s):(e===t.left&&(e=t,this.rotateRight(e)),e.parent&&(e.parent.color=A.BLACK),e.parent?.parent&&(e.parent.parent.color=A.RED),e.parent?.parent&&this.rotateLeft(e.parent.parent))}}this.root&&(this.root.color=A.BLACK)}fixDelete(e,t){let s=e,n=t;for(;(!s||s.color===A.BLACK)&&s!==this.root&&n;)if(s===n.left){let e=n.right;if(!e)break;if(e.color===A.RED&&(e.color=A.BLACK,n.color=A.RED,this.rotateLeft(n),e=n.right,!e))break;const t=e.left,i=e.right;if(t&&t.color!==A.BLACK||i&&i.color!==A.BLACK){if(!(i&&i.color!==A.BLACK||(t&&(t.color=A.BLACK),e.color=A.RED,this.rotateRight(e),e=n.right,e)))break;e.color=n.color,n.color=A.BLACK,e.right&&(e.right.color=A.BLACK),this.rotateLeft(n),s=this.root}else e.color=A.RED,s=n,n=s.parent}else{let e=n.left;if(!e)break;if(e.color===A.RED&&(e.color=A.BLACK,n.color=A.RED,this.rotateRight(n),e=n.left,!e))break;const t=e.left,i=e.right;if(t&&t.color!==A.BLACK||i&&i.color!==A.BLACK){if(!(t&&t.color!==A.BLACK||(i&&(i.color=A.BLACK),e.color=A.RED,this.rotateLeft(e),e=n.left,e)))break;e.color=n.color,n.color=A.BLACK,e.left&&(e.left.color=A.BLACK),this.rotateRight(n),s=this.root}else e.color=A.RED,s=n,n=s.parent}s&&(s.color=A.BLACK)}rotateLeft(e){const t=e.right;t&&(e.right=t.left,t.left&&(t.left.parent=e),t.parent=e.parent,e.parent?e===e.parent.left?e.parent.left=t:e.parent.right=t:this.root=t,t.left=e,e.parent=t)}rotateRight(e){const t=e.left;t&&(e.left=t.right,t.right&&(t.right.parent=e),t.parent=e.parent,e.parent?e===e.parent.right?e.parent.right=t:e.parent.left=t:this.root=t,t.right=e,e.parent=t)}_inorder(e,t){e&&(this._inorder(e.left,t),t(e.key,e.value),this._inorder(e.right,t))}_rangeScan(e,t,s,n){e&&(e.key>t&&this._rangeScan(e.left,t,s,n),e.key>=t&&e.key<=s&&n(e.key,e.value),e.key=this.maxSize}getAllEntries(){return this.tree.getAllEntries()}rangeScan(e,t){const s=[];return this.tree.rangeScan(e,t,(e,t)=>s.push([e,t])),s}getEntryCount(){return this.tree.size}getEstimatedSize(){return this._estimatedSize}clear(){this.tree.clear(),this._estimatedSize=0}contains(e){return null!==this.tree.find(e)}estimateEntrySize(e,t){if(!t)return 0;let s=2*e.length;for(const e of Object.entries(t)){s+=2*e[0].length;const t=e[1];s+="string"==typeof t?2*t.length:"number"==typeof t?8:"boolean"==typeof t||null==t?1:16}return s}}class O{constructor(e,t=10){this._inserted=0;const s=Math.max(64,e*t),n=Math.ceil(s/8);this.bits=new Uint8Array(n),this.numHashes=Math.max(1,Math.floor(.69*t))}static fromData(e,t){const s=new O(1);return s.bits=e,s.numHashes=t,s}insert(e){const t=this.getHashes(e);for(const e of t){const t=Math.floor(e/8),s=e%8;this.bits[t]|=1<>>0;return t}murmurSimple(e){let t=0;for(let s=0;s>>16)>>>0;return Math.abs(t)}}class _{constructor(e=4096){this.entries=[],this.currentBlock=[],this.currentBlockStartKey="",this.blockSizeLimit=e}add(e,t){0===this.currentBlock.length&&(this.currentBlockStartKey=e),this.currentBlock.push([e,t]),this.entries.push([e,t]),this.estimateBlockSize()>=this.blockSizeLimit&&this.currentBlock.length}build(){const e=this.splitIntoBlocks(),t=new O(this.entries.length);let s=0;const n=[];for(const t of e)n.push(s),s+=this.computeBlockSize(t);const i=[];for(let t=0;t=this.blockSizeLimit&&t.length>1&&(e.push(t.slice(0,-1)),t=[s]);return t.length>0&&e.push(t),e}estimateBlockSize(){return this.estimateBlockSizeFromEntries(this.currentBlock)}estimateBlockSizeFromEntries(e){let t=0;for(const[s,n]of e)t+=4+s.length+JSON.stringify(n).length;return t}computeBlockSize(e){let t=4;for(const[s,n]of e){const e=JSON.stringify(n);t+=2+s.length+2+e.length}return t}writeDataBlock(e,t,s,n){e.setUint32(t,s.length,!1),t+=4;for(const[i,r]of s){const s=new TextEncoder,a=s.encode(i),o=s.encode(JSON.stringify(r));e.setUint16(t,a.length,!1),t+=2,new Uint8Array(e.buffer).set(a,t),t+=a.length,e.setUint16(t,o.length,!1),t+=2,new Uint8Array(e.buffer).set(o,t),t+=o.length,n.insert(i)}return t}estimateIndexBlockSize(e){let t=4;for(const s of e)t+=2+s.key.length+8;return t}writeIndexBlock(e,t,s){e.setUint32(t,s.length,!1),t+=4;for(const n of s){const s=(new TextEncoder).encode(n.key);e.setUint16(t,s.length,!1),t+=2,new Uint8Array(e.buffer).set(s,t),t+=s.length,e.setUint32(t,n.blockOffset,!1),t+=4,e.setUint32(t,n.blockSize,!1),t+=4}return t}}class D{constructor(e,t){this.indexEntries=[],this.entryCount=0,this.bloomFilter=null,this.data=e,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.meta=t,this.parseFooter()}get(e){if(this.bloomFilter&&!this.bloomFilter.mayContain(e))return null;const t=this.locateBlock(e);if(t<0)return null;const s=this.indexEntries[t],n=this.getBlockData(s);if(!n)return null;const i=new DataView(n.buffer,n.byteOffset,n.byteLength),r=i.getUint32(0,!1);let a=4;for(let t=0;tn.byteLength);t++){const t=i.getUint16(a,!1);if(a+=2,a+t+2>n.byteLength)break;const s=(new TextDecoder).decode(n.slice(a,a+t));a+=t;const r=i.getUint16(a,!1);if(a+=2,a+r>n.byteLength)break;const o=n.slice(a,a+r);if(a+=r,s===e)try{return JSON.parse((new TextDecoder).decode(o))}catch{return null}}return null}rangeScan(e,t,s){if(0===this.indexEntries.length)return;const n=Math.max(0,this.locateBlockGE(e)),i=Math.min(this.indexEntries.length-1,this.locateBlockLE(t));if(!(n<0||i<0||n>i))for(let r=n;r<=i&&r>=0;r++){const n=this.indexEntries[r],i=this.getBlockData(n);if(!i)continue;const a=new DataView(i.buffer,i.byteOffset,i.byteLength),o=a.getUint32(0,!1);let h=4;for(let n=0;ni.byteLength);n++){const n=a.getUint16(h,!1);if(h+=2,h+n+2>i.byteLength)break;const r=(new TextDecoder).decode(i.slice(h,h+n));h+=n;const o=a.getUint16(h,!1);if(h+=2,h+o>i.byteLength)break;const c=i.slice(h,h+o);if(h+=o,r>=e&&r<=t)try{s(r,JSON.parse((new TextDecoder).decode(c)))}catch{}}}}scanAll(e){for(const t of this.indexEntries){const s=this.getBlockData(t);if(!s)continue;const n=new DataView(s.buffer,s.byteOffset,s.byteLength),i=n.getUint32(0,!1);let r=4;for(let t=0;ts.byteLength);t++){const t=n.getUint16(r,!1);if(r+=2,r+t+2>s.byteLength)break;const i=(new TextDecoder).decode(s.slice(r,r+t));r+=t;const a=n.getUint16(r,!1);if(r+=2,r+a>s.byteLength)break;const o=s.slice(r,r+a);r+=a;try{e(i,JSON.parse((new TextDecoder).decode(o)))}catch{}}}}getMeta(){return this.meta}getIndexBlockCount(){return this.indexEntries.length}parseFooter(){if(this.data.byteLength<32)throw new Error("SSTable too small: missing footer");const e=this.data.byteLength-32,t=this.view.getUint32(e+24,!1);if(1397969986!==t)throw new Error(`Invalid SSTable magic: expected 1397969986, got ${t}`);const s=this.view.getUint32(e,!1),n=this.view.getUint32(e+4,!1),i=this.view.getUint32(e+8,!1),r=this.view.getUint32(e+12,!1),a=this.view.getUint32(e+16,!1);if(this.entryCount=this.view.getUint32(e+20,!1),!(s+4>this.data.byteLength||s+n>this.data.byteLength)&&(this.parseIndexBlock(s,n),i>0&&r>0&&i+r<=this.data.byteLength))try{const e=this.data.slice(i,i+r);this.bloomFilter=O.fromData(e,a||10)}catch{}}parseIndexBlock(e,t){const s=this.view.getUint32(e,!1);e+=4;for(let t=0;tthis.data.byteLength);t++){const t=this.view.getUint16(e,!1);if((e+=2)+t+8>this.data.byteLength)break;const s=(new TextDecoder).decode(this.data.slice(e,e+t));e+=t;const n=this.view.getUint32(e,!1);e+=4;const i=this.view.getUint32(e,!1);e+=4,0===i||n+i>this.data.byteLength||this.indexEntries.push({key:s,blockOffset:n,blockSize:i})}}getBlockData(e){return e.blockSize<=0||e.blockOffset<0||e.blockOffset+e.blockSize>this.data.byteLength?null:new Uint8Array(this.data.buffer,this.data.byteOffset+e.blockOffset,e.blockSize)}locateBlock(e){let t=0,s=this.indexEntries.length-1;for(;t<=s;){const n=Math.floor((t+s)/2);if(e<=this.indexEntries[n].key){if(e>(0===n?"":this.indexEntries[n-1].key))return n;s=n-1}else t=n+1}return-1}locateBlockGE(e){let t=0,s=this.indexEntries.length;for(;t>1;this.indexEntries[n].key>1;this.indexEntries[n].key<=e?t=n+1:s=n}return t>0?t-1:0}}class ${constructor(e){this.index=0,this.entries=e}next(){return this.index>=this.entries.length?null:this.entries[this.index++]}reset(){this.index=0}}class L{constructor(){this.heap=[]}push(e){this.heap.push(e),this.bubbleUp(this.heap.length-1)}pop(){if(0===this.heap.length)return null;if(1===this.heap.length)return this.heap.pop();const e=this.heap[0];return this.heap[0]=this.heap.pop(),this.bubbleDown(0),e}peek(){return this.heap.length>0?this.heap[0]:null}get size(){return this.heap.length}bubbleUp(e){for(;e>0;){const t=Math.floor((e-1)/2);if(this.heap[e].key>=this.heap[t].key)break;[this.heap[e],this.heap[t]]=[this.heap[t],this.heap[e]],e=t}}bubbleDown(e){const t=this.heap.length;for(;;){let s=e;const n=2*e+1,i=2*e+2;if(n=0&&e.level<7&&this.levels[e.level].push(e);for(let e=0;e<7;e++)this.levels[e].sort((e,t)=>t.id-e.id);this.initialized=!0}put(e,t){this.levels[0].length>=8&&this.enqueueCompact(0),this.memtable.put(e,t),this.operationCount++,this.memtable.shouldFlush()&&this.freezeMemtable()}delete(e){this.levels[0].length>=8&&this.enqueueCompact(0),this.memtable.put(e,{__tombstone:!0}),this.operationCount++,this.memtable.shouldFlush()&&this.freezeMemtable()}getEstimatedMemory(){let e=this.memtable.getEstimatedSize();for(const t of this.frozenMemtables)e+=t.getEstimatedSize();return e+=this.cacheSize,e}freezeMemtable(){if(this.immutableMemtable){const e=this.immutableMemtable;this.flushChain=this.enqueueOnChain(()=>this.flushImmutableAsync(e))}this.immutableMemtable=this.memtable,this.frozenMemtables.push(this.immutableMemtable),this.memtable=new N(this.memtableSizeThreshold)}enqueueOnChain(e){return this.flushChain.then(e).catch(e=>{})}async flushImmutableAsync(e){const t=e.getAllEntries();if(0===t.length)return void(this.immutableMemtable===e&&(this.immutableMemtable=null));const s=await this.sstableStore.allocateId(),n=new _(this.blockSize);for(const[e,s]of t)n.add(e,s);const{sstableData:i,indexEntries:r}=n.build(),a={id:s,level:0,minKey:t[0][0],maxKey:t[t.length-1][0],blockCount:r.length,totalSize:i.byteLength,bloomData:null};this.cacheSSTable(s,i),this.trimCache(),await this.sstableStore.save(s,i),await this.sstableStore.saveMeta(a),this.immutableMemtable===e&&(this.immutableMemtable=null),this.levels[0].unshift(a),this.frozenMemtables=this.frozenMemtables.filter(t=>t!==e),this.levels[0].length>=4&&!this.compacting&&this.scheduleCompact(0)}scheduleCompact(e){e>=6||this.compacting||(this.compacting=!0,setTimeout(()=>{try{this.flushChain=this.enqueueOnChain(()=>this.compactLevelAsync(e))}finally{this.compacting=!1,this.levels[e].length>=4&&this.scheduleCompact(e),e+1<6&&this.levels[e+1].length>=4&&this.scheduleCompact(e+1)}},0))}enqueueCompact(e){e>=6||this.compacting||(this.compacting=!0,this.flushChain=this.flushChain.then(async()=>{try{await this.compactLevelAsync(e)}finally{this.compacting=!1}}).catch(e=>{this.compacting=!1}))}async prefetchRange(e,t){await this.flushChain,this.trimCache();const s=[];for(let n=0;n<7;n++)for(const i of this.levels[n])ti.maxKey||this.sstableCache.has(i.id)||s.push(i.id);for(const e of s)await this.preloadSSTable(e)}async prefetchKeys(e){if(0===e.length)return;await this.flushChain,this.trimCache();const t=new Set;for(let s=0;s<7;s++)for(const n of this.levels[s])if(!this.sstableCache.has(n.id))for(const s of e)if(s>=n.minKey&&s<=n.maxKey){t.add(n.id);break}for(const e of t)await this.preloadSSTable(e)}get(e){let t=this.memtable.get(e);if(null!==t)return this.unwrapTombstone(t);for(let s=this.frozenMemtables.length-1;s>=0;s--)if(t=this.frozenMemtables[s].get(e),null!==t)return this.unwrapTombstone(t);for(let t=0;t<7;t++)for(const s of this.levels[t]){if(es.maxKey)continue;const t=this.loadSSTableReader(s);if(!t)continue;const n=t.get(e);if(null!==n)return this.unwrapTombstone(n)}return null}rangeScan(e,t){const s=[];return this.rangeScanLazy(e,t,(e,t)=>s.push([e,t])),s}rangeScanLazy(e,t,s){const n=new v;n.addSource(new $(this.memtable.rangeScan(e,t)));for(let s=this.frozenMemtables.length-1;s>=0;s--)n.addSource(new $(this.frozenMemtables[s].rangeScan(e,t)));for(let s=0;s<7;s++)for(const i of this.levels[s]){if(ti.maxKey)continue;const s=this.loadSSTableReader(i);s&&s.rangeScan(e,t,(e,t)=>{n.addSource(new $([[e,t]]))})}const i=n.drain();for(const[e,t]of i)t.__tombstone||s(e,t)}getAllEntries(){const e=new Map;for(let t=6;t>=0;t--)for(let s=this.levels[t].length-1;s>=0;s--){const n=this.levels[t][s],i=this.loadSSTableReader(n);i&&i.scanAll((t,s)=>e.set(t,s))}for(const[t,s]of this.memtable.getAllEntries())e.set(t,s);for(let t=this.frozenMemtables.length-1;t>=0;t--)for(const[s,n]of this.frozenMemtables[t].getAllEntries())e.set(s,n);return Array.from(e.entries()).filter(([,e])=>!e.__tombstone)}async compactLevel(e){await this.compactLevelAsync(e,2)}async compactLevelAsync(e,t=4){if(e>=6)return;if(this.levels[e].lengthr.push([e,t])),n.addSource(new $(r)),i.push(e)}const r=n.drain();if(0===r.length){for(const t of i)this.levels[e].push(t);return void this.levels[e].sort((e,t)=>t.id-e.id)}const a=await this.sstableStore.allocateId(),o=new _(this.blockSize);for(const[e,t]of r)o.add(e,t);const{sstableData:h,indexEntries:c}=o.build(),l={id:a,level:e+1,minKey:r[0][0],maxKey:r[r.length-1][0],blockCount:c.length,totalSize:h.byteLength,bloomData:null};this.cacheSSTable(a,h),this.trimCache(),await this.sstableStore.save(a,h),await this.sstableStore.saveMeta(l),this.levels[e+1].unshift(l);for(const e of s)this.sstableCache.delete(e.id),await this.sstableStore.delete(e.id),await this.sstableStore.deleteMeta(e.id)}async flush(){if(await this.flushChain,this.immutableMemtable){const e=this.immutableMemtable;await this.flushImmutableAsync(e)}if(this.memtable.getEntryCount()>0){this.freezeMemtable();const e=this.immutableMemtable;e&&await this.flushImmutableAsync(e)}this.frozenMemtables=[]}async clear(){this.memtable.clear(),this.immutableMemtable=null,this.frozenMemtables=[];for(const e of this.levels)for(const t of e)this.sstableCache.delete(t.id),this.sstableStore.delete(t.id).catch(()=>{}),this.sstableStore.deleteMeta(t.id).catch(()=>{});this.levels=[];for(let e=0;e<7;e++)this.levels.push([]);this.sstableCache.clear(),this.cacheSize=0}getStats(){return{memtableSize:this.memtable.getEntryCount(),sstableCount:this.levels.reduce((e,t)=>e+t.length,0),levelCounts:this.levels.map(e=>e.length)}}isInitialized(){return this.initialized}async validateAll(){let e=0;for(let t=0;t<7;t++){const s=[];for(const n of this.levels[t])await this.validateSSTable(n)?s.push(n):(this.sstableCache.delete(n.id),e++);this.levels[t]=s}return e}async validateSSTable(e){try{const t=await this.sstableStore.load(e.id);if(!t)return this.dropInvalidSSTable(e),!1;if(t.byteLength<32)return this.dropInvalidSSTable(e),!1;try{new D(t,e)}catch{return this.dropInvalidSSTable(e),!1}return!0}catch{return this.dropInvalidSSTable(e),!1}}async dropInvalidSSTable(e){try{await this.sstableStore.deleteMeta(e.id)}catch{}try{await this.sstableStore.delete(e.id)}catch{}}unwrapTombstone(e){return e?e.__tombstone?null:e:null}loadSSTableReader(e){const t=this.sstableCache.get(e.id);if(!t)return null;this.sstableCache.delete(e.id),this.sstableCache.set(e.id,t);try{return new D(t,e)}catch{return null}}async preloadSSTable(e){if(this.sstableCache.has(e))return;const t=await this.sstableStore.load(e);t&&this.cacheSSTable(e,t)}cacheSSTable(e,t){this.sstableCache.has(e)&&(this.cacheSize-=this.sstableCache.get(e).byteLength,this.sstableCache.delete(e)),this.sstableCache.set(e,t),this.cacheSize+=t.byteLength}trimCache(){for(;this.cacheSize>this.cacheLimitBytes&&this.sstableCache.size>0;){const e=this.sstableCache.keys().next().value,t=this.sstableCache.get(e);this.cacheSize-=t.byteLength,this.sstableCache.delete(e)}}getCacheSize(){return this.cacheSize}getCacheLimit(){return this.cacheLimitBytes}}class M{constructor(e,t=!0,s="batch"){this.lsn=0,this.buffer=[],this.bufferedBytes=0,this.store=e,this.enabled=t,this.syncMode=s}async append(e){if(!this.enabled)return;this.lsn++;const t={...e,lsn:this.lsn,checksum:0},s=this.encodeRecord(t);if("full"===this.syncMode)try{await this.store.append(s),this.bufferedBytes+=s.byteLength}catch{}else"batch"===this.syncMode&&(this.buffer.push(s),this.bufferedBytes+=s.byteLength)}async appendBatch(e){if(!this.enabled||0===e.length)return;const t=[];for(const s of e)this.lsn++,t.push(this.encodeRecord({...s,lsn:this.lsn,checksum:0}));const s=this.mergeChunks(t);if("full"===this.syncMode)try{await this.store.append(s),this.bufferedBytes+=s.byteLength}catch{}else"batch"===this.syncMode&&(this.buffer.push(s),this.bufferedBytes+=s.byteLength)}async flush(){if(!this.enabled||0===this.buffer.length)return;const e=this.mergeChunks(this.buffer);await this.store.append(e),this.buffer=[]}mergeChunks(e){if(1===e.length)return e[0];const t=e.reduce((e,t)=>e+t.byteLength,0),s=new Uint8Array(t);let n=0;for(const t of e)s.set(t,n),n+=t.byteLength;return s}async recover(e){if(!this.enabled)return 0;if(!await this.store.exists())return 0;const t=await this.store.readAll();if(0===t.byteLength)return 0;const s=this.decodeAllRecords(t);for(const t of s)e(t);return this.lsn=s.length>0?s[s.length-1].lsn:0,s.length}async checkpoint(){this.enabled&&(await this.flush(),await this.store.truncate(),this.lsn=0,this.bufferedBytes=0)}isEnabled(){return this.enabled}getLSN(){return this.lsn}getBufferedCount(){return this.buffer.length}getBufferedBytes(){return this.bufferedBytes}encodeRecord(e){const t=new TextEncoder,s=t.encode(e.tableName),n=t.encode(e.key),i=e.data?JSON.stringify(e.data):"",r=t.encode(i),a=11+s.length+2+n.length+4+r.length+4,o=new ArrayBuffer(a),h=new DataView(o);let c=0;h.setUint32(c,e.lsn,!1),c+=4,h.setUint8(c,e.type),c+=1,h.setUint32(c,e.txnId,!1),c+=4,h.setUint16(c,s.length,!1),c+=2,new Uint8Array(o).set(s,c),c+=s.length,h.setUint16(c,n.length,!1),c+=2,new Uint8Array(o).set(n,c),c+=n.length,h.setUint32(c,r.length,!1),c+=4,new Uint8Array(o).set(r,c),c+=r.length;let l=0;const u=new Uint8Array(o,0,c);for(let e=0;e>>0,!1),new Uint8Array(o)}decodeAllRecords(e){const t=[],s=new DataView(e.buffer,e.byteOffset,e.byteLength);let n=0;for(;n+15<=e.byteLength;)try{const i=n,r=s.getUint32(n,!1);n+=4;const a=s.getUint8(n);n+=1;const o=s.getUint32(n,!1);n+=4;const h=s.getUint16(n,!1);if(n+=2,n+h>e.byteLength)break;const c=(new TextDecoder).decode(e.slice(n,n+h));n+=h;const l=s.getUint16(n,!1);if(n+=2,n+l>e.byteLength)break;const u=(new TextDecoder).decode(e.slice(n,n+l));n+=l;const f=s.getUint32(n,!1);if(n+=4,n+f>e.byteLength)break;let d;if(f>0){const t=(new TextDecoder).decode(e.slice(n,n+f));try{d=JSON.parse(t)}catch{}}n+=f;const m=s.getUint32(n,!1);n+=4;const p=e.slice(i,n-4);let y=0;for(let e=0;e>>0!==m)continue;t.push({lsn:r,type:a,txnId:o,tableName:c,key:u,data:d,checksum:m})}catch{break}return t}}class U{constructor(e,t,s=null,n=1e3,i=16777216){this.opCount=0,this.lsm=e,this.wal=t,this.flushable=s,this.interval=n,this.walSizeThreshold=i}async tick(){this.opCount++,(this.opCount>=this.interval||this.getWALEstimatedSize()>=this.walSizeThreshold)&&await this.checkpoint()}getWALEstimatedSize(){const e=this.wal;if("function"==typeof e.getBufferedBytes){const t=e.getBufferedBytes();if(t>0)return t}return 200*("function"==typeof e.getBufferedCount?e.getBufferedCount():0)}async checkpoint(){await this.lsm.flush(),this.flushable&&await this.flushable.flushAll(),await this.wal.checkpoint(),this.opCount=0}async forceCheckpoint(){await this.checkpoint()}setInterval(e){this.interval=e}getOpCount(){return this.opCount}}class P{constructor(){this.db=null,this.dbName="",this.storeName="data"}async open(e){return this.dbName=`aria-${e}`,new Promise((e,t)=>{const s=indexedDB.open(this.dbName,1);s.onupgradeneeded=()=>{const e=s.result;e.objectStoreNames.contains(this.storeName)||e.createObjectStore(this.storeName)},s.onsuccess=()=>{this.db=s.result,e()},s.onerror=()=>t(new n("Failed to open AriaEngine IndexedDB","ARIA_IDB_OPEN_ERROR"))})}async close(){this.db&&(this.db.close(),this.db=null)}isOpen(){return null!==this.db}async read(e){const t=this.ensureDB();return new Promise((s,i)=>{const r=t.transaction(this.storeName,"readonly").objectStore(this.storeName).get(e);r.onsuccess=()=>s(r.result??null),r.onerror=()=>i(new n("Failed to read from AriaEngine store","ARIA_READ_ERROR"))})}async write(e,t){const s=this.ensureDB();return new Promise((i,r)=>{const a=s.transaction(this.storeName,"readwrite");a.objectStore(this.storeName).put(t,e),a.oncomplete=()=>i(),a.onerror=()=>r(new n("Failed to write to AriaEngine store","ARIA_WRITE_ERROR"))})}async writeMany(e){const t=Object.keys(e);if(0===t.length)return;const s=this.ensureDB();return new Promise((i,r)=>{const a=s.transaction(this.storeName,"readwrite"),o=a.objectStore(this.storeName);for(const s of t)o.put(e[s],s);a.oncomplete=()=>i(),a.onerror=()=>r(new n("Failed to batch write to AriaEngine store","ARIA_WRITE_ERROR"))})}async delete(e){const t=this.ensureDB();return new Promise((s,i)=>{const r=t.transaction(this.storeName,"readwrite");r.objectStore(this.storeName).delete(e),r.oncomplete=()=>s(),r.onerror=()=>i(new n("Failed to delete from AriaEngine store","ARIA_DELETE_ERROR"))})}async deleteMany(e){if(0===e.length)return;const t=this.ensureDB();return new Promise((s,i)=>{const r=t.transaction(this.storeName,"readwrite"),a=r.objectStore(this.storeName);for(const t of e)a.delete(t);r.oncomplete=()=>s(),r.onerror=()=>i(new n("Failed to batch delete from AriaEngine store","ARIA_DELETE_ERROR"))})}async listKeys(){const e=this.ensureDB();return new Promise((t,s)=>{const i=e.transaction(this.storeName,"readonly").objectStore(this.storeName).getAllKeys();i.onsuccess=()=>t(i.result??[]),i.onerror=()=>s(new n("Failed to list keys","ARIA_LIST_ERROR"))})}async exists(e){return null!==await this.read(e)}async clear(){const e=this.ensureDB();return new Promise((t,s)=>{const i=e.transaction(this.storeName,"readwrite");i.objectStore(this.storeName).clear(),i.oncomplete=()=>t(),i.onerror=()=>s(new n("Failed to clear AriaEngine store","ARIA_CLEAR_ERROR"))})}ensureDB(){if(!this.db)throw new n("AriaEngine storage not opened","ARIA_DB_NOT_OPEN");return this.db}}class j{constructor(){this.store=new Map,this.opened=!1}async open(e){this.opened=!0}async close(){this.store.clear(),this.opened=!1}isOpen(){return this.opened}async read(e){return this.store.get(e)??null}async write(e,t){this.store.set(e,t)}async writeMany(e){for(const[t,s]of Object.entries(e))this.store.set(t,s)}async delete(e){this.store.delete(e)}async deleteMany(e){for(const t of e)this.store.delete(t)}async listKeys(){return Array.from(this.store.keys())}async exists(e){return this.store.has(e)}async clear(){this.store.clear()}}class F{constructor(){this.root=null,this.dbDir=null,this.dbName="",this.writeQueue=Promise.resolve()}async open(e){this.dbName=e,this.root=await navigator.storage.getDirectory(),this.dbDir=await this.root.getDirectoryHandle(e,{create:!0})}async close(){this.dbDir=null,this.root=null}isOpen(){return null!==this.dbDir}async read(e){if(!this.dbDir)return null;try{const t=await this.dbDir.getFileHandle(e),s=await t.getFile();return await s.arrayBuffer()}catch{return null}}async write(e,t){if(this.dbDir)return this.writeQueue=this.writeQueue.then(async()=>{const s=await this.dbDir.getFileHandle(e,{create:!0}),n=await s.createWritable();await n.write(t),await n.close()}),this.writeQueue}async writeMany(e){if(this.dbDir)return this.writeQueue=this.writeQueue.then(async()=>{for(const[t,s]of Object.entries(e)){const e=await this.dbDir.getFileHandle(t,{create:!0}),n=await e.createWritable();await n.write(s),await n.close()}}),this.writeQueue}async delete(e){if(this.dbDir)return this.writeQueue=this.writeQueue.then(async()=>{try{await this.dbDir.removeEntry(e)}catch{}}),this.writeQueue}async deleteMany(e){if(this.dbDir)return this.writeQueue=this.writeQueue.then(async()=>{for(const t of e)try{await this.dbDir.removeEntry(t)}catch{}}),this.writeQueue}async listKeys(){if(!this.dbDir)return[];const e=[],t=this.dbDir;for await(const[s]of t.entries())e.push(s);return e}async exists(e){if(!this.dbDir)return!1;try{return await this.dbDir.getFileHandle(e),!0}catch{return!1}}async clear(){if(!this.dbDir)return;const e=this.dbDir;for await(const[t]of e.entries())try{await this.dbDir.removeEntry(t)}catch{}}}function K(e,t,s){const n=new DataView(e);n.setUint32(0,t,!1),n.setUint8(4,s),n.setUint16(5,16,!1),n.setUint16(7,e.byteLength,!1),n.setUint16(9,0,!1),n.setUint32(11,0,!1),n.setUint8(15,0)}class z{constructor(e){this.nextPageId=0,this.metaLoaded=!1,this.dbName="",this.backend=e}async init(e){this.dbName=e;const t=await this.backend.read("__aria_meta");if(t&&t instanceof ArrayBuffer&&t.byteLength>=4){const e=new DataView(t);this.nextPageId=e.getUint32(0,!1)}else this.nextPageId=1,await this.saveMeta();this.metaLoaded=!0}async readPage(e){const t=`pg_${e}`,s=await this.backend.read(t);if(!s)return this.createEmptyPage(e,w.DATA);if(s.byteLengtht.txnId!==e);0===n.length?this.versionStore.delete(t):this.versionStore.set(t,n)}this.activeTxns.delete(e),this.txnWriteKeys.delete(e)}isActive(e){const t=this.activeTxns.get(e);return void 0!==t&&t.state===I.ACTIVE}writeVersion(e,t,s,n){const i=`${e}.${t}`,r=this.versionStore.get(i)??[],a={txnId:n,data:s,prevVersion:r.length>0?r[r.length-1]:null,committed:!1};r.push(a),this.versionStore.set(i,r),this.txnWriteKeys.get(n)?.add(i)}readVersion(e,t,s){if(!this.activeTxns.get(s))return null;const n=`${e}.${t}`,i=this.versionStore.get(n);if(!i||0===i.length)return null;for(let e=i.length-1;e>=0;e--){const t=i[e];if(t.txnId===s)return t.data;if(t.committed)return t.data}return null}deleteVersion(e,t,s){this.writeVersion(e,t,{__mvcc_tombstone:!0},s)}getLatestCommittedVersions(e){const t={};for(const[s,n]of this.versionStore){if(!s.startsWith(`${e}.`))continue;const i=s.slice(e.length+1);for(let e=n.length-1;e>=0;e--){const s=n[e];if(s.committed&&!s.data.__mvcc_tombstone){t[i]=s.data;break}}}return t}discardVersions(e){const t=this.txnWriteKeys.get(e);if(t)for(const s of t){const t=this.versionStore.get(s);if(!t)continue;const n=t.filter(t=>t.txnId!==e);0===n.length?this.versionStore.delete(s):this.versionStore.set(s,n)}}gc(e=100){for(const[t,s]of this.versionStore){if(s.length<=e)continue;const n=s.slice(s.length-e);this.versionStore.set(t,n)}}getActiveWriteKeys(e,t){const s=new Set,n=`${e}.`;for(const[e,i]of this.versionStore){if(!e.startsWith(n))continue;const r=i[i.length-1];r.txnId!==t||r.committed||s.add(e.slice(n.length))}return s}clearTable(e){const t=`${e}.`;for(const[e]of this.versionStore)e.startsWith(t)&&this.versionStore.delete(e)}getActiveTxnCount(){return this.activeTxns.size}getGlobalLSN(){return this.globalCommitLsn}}class V{constructor(){this.head=null,this.tail=null,this._size=0}get size(){return this._size}moveToHead(e){this.head!==e&&(null!==e.prev||null!==e.next||this.head===e||this.tail===e?this.detach(e):this._size++,e.prev=null,e.next=this.head,this.head&&(this.head.prev=e),this.head=e,this.tail||(this.tail=e))}remove(e){(null!==e.prev||null!==e.next||this.head===e||this.tail===e)&&(this.detach(e),this._size=Math.max(0,this._size-1))}detach(e){e.prev?e.prev.next=e.next:this.head===e&&(this.head=e.next),e.next?e.next.prev=e.prev:this.tail===e&&(this.tail=e.prev),e.prev=null,e.next=null}getLRU(){return this.tail}popLRU(){const e=this.tail;return e&&this.remove(e),e}clear(){this.head=null,this.tail=null,this._size=0}getAllPages(){const e=[];let t=this.head;for(;t;)e.push(t),t=t.next;return e}}class W{constructor(e,t){this.lru=new V,this.capacity=e,this.onEvict=t}access(e){e.lastAccess=Date.now(),this.lru.moveToHead(e)}add(e){this.access(e)}remove(e){this.lru.remove(e)}async evictIfNeeded(e){let t=0;for(;this.lru.size+e>this.capacity&&this.lru.size>0;){const e=this.findEvictionCandidate();if(!e)break;e.dirty&&(await this.onEvict(e),e.dirty=!1),this.lru.remove(e),t++}return t}findEvictionCandidate(){let e=this.lru.getLRU();for(;e;){if(0===e.pins&&!e.dirty)return e;e=e.prev}for(e=this.lru.getLRU();e;){if(0===e.pins)return e;e=e.prev}return null}getSize(){return this.lru.size}getCapacity(){return this.capacity}clear(){this.lru.clear()}}class G{constructor(e,t=256){this.pages=new Map,this.nextPageId=0,this.pageIO=e,this.eviction=new W(t,async e=>{e.dirty&&(await this.pageIO.writePage(e.pageId,e.data),e.dirty=!1)})}async getPage(e){let t=this.pages.get(e);if(t)return this.eviction.access(t),t.pins++,t;const s=await this.pageIO.readPage(e);return s?(await this.eviction.evictIfNeeded(1),t={pageId:e,type:new DataView(s).getUint8(4),data:s,dirty:!1,pins:1,prev:null,next:null,lastAccess:Date.now()},this.pages.set(e,t),this.eviction.add(t),t):null}async newPage(e=w.DATA){const t=await this.pageIO.allocatePageId();await this.eviction.evictIfNeeded(1);const s=function(e,t){const s=new ArrayBuffer(b);return K(s,e,t),{pageId:e,type:t,data:s,dirty:!0,pins:0,prev:null,next:null,lastAccess:Date.now()}}(t,e);return s.pins=1,this.pages.set(t,s),this.eviction.add(s),s}unpin(e){e.pins>0&&e.pins--}markDirty(e){e.dirty=!0}async flushPage(e){const t=this.pages.get(e);t&&t.dirty&&(await this.pageIO.writePage(e,t.data),t.dirty=!1)}async flushAll(){for(const[,e]of this.pages)e.dirty&&(await this.pageIO.writePage(e.pageId,e.data),e.dirty=!1)}removePage(e){const t=this.pages.get(e);t&&(this.eviction.remove(t),this.pages.delete(e))}async clear(){await this.flushAll(),this.pages.clear(),this.eviction.clear()}getCachedPageCount(){return this.pages.size}getCapacity(){return this.eviction.getCapacity()}getDirtyPageCount(){let e=0;for(const[,t]of this.pages)t.dirty&&e++;return e}}const H="AES-GCM",X=new class{constructor(){this.cryptoKey=null,this._enabled=!1}get enabled(){return this._enabled}async init(e,t){const s=new TextEncoder,n=await crypto.subtle.importKey("raw",s.encode(e),"PBKDF2",!1,["deriveKey"]),i=t||crypto.getRandomValues(new Uint8Array(16));return this.cryptoKey=await crypto.subtle.deriveKey({name:"PBKDF2",salt:i,iterations:1e5,hash:"SHA-256"},n,{name:H,length:256},!1,["encrypt","decrypt"]),this._enabled=!0,i}async encryptPage(e){if(!this.cryptoKey)throw new Error("Crypto not initialized");const t=crypto.getRandomValues(new Uint8Array(12));return{iv:t,data:await crypto.subtle.encrypt({name:H,iv:t},this.cryptoKey,new Uint8Array(e))}}async decryptPage(e,t){if(!this.cryptoKey)throw new Error("Crypto not initialized");return crypto.subtle.decrypt({name:H,iv:e},this.cryptoKey,new Uint8Array(t))}close(){this.cryptoKey=null,this._enabled=!1}};function J(){return X.enabled}class Q{constructor(e={}){this.name="aria",this.opened=!1,this.dbName="",this.schemas=new Map,this.tablePKs=new Map,this.opCounter=0,this.secondaryIndexes=new Map,this.mvcc=new q,this.currentTxnId=null,this.txnSnapshot=null,this.gcCounter=0,this.savepoints=new Map,this.config={...k,...e}}async open(e,t){if(!this.opened)try{await this.openInternal(e)}catch(t){if(t instanceof n)throw t;throw new n(`Failed to open AriaEngine database "${e}"`,"ARIA_OPEN_ERROR",t)}}async openInternal(e){this.dbName=e,"opfs"===this.config.storageBackend?this.backend=new F:"indexeddb"===this.config.storageBackend?this.backend=new P:this.backend=new j,await this.backend.open(e);const t=new z(this.backend);await t.init(e),this.bufferPool=new G(t,this.config.bufferPoolPages);const s=this.createSSTableStore("main");this.lsm=new B({memtableSizeThreshold:this.config.memtableSizeThreshold,levelSizeMultiplier:this.config.levelSizeMultiplier,blockSize:this.config.pageSize,bloomBitsPerKey:this.config.bloomFilterBitsPerKey,cacheLimitBytes:this.config.bufferPoolPages*this.config.pageSize,sstableStore:s}),this.wal=new M({append:async e=>{const t=await this.getWALCount(),s=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),n=s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength);await this.backend.writeMany({[`__wal_${t}`]:n,__wal_count:(new TextEncoder).encode(String(t+1)).buffer})},readAll:async()=>{const e=(await this.backend.listKeys()).filter(e=>e.startsWith("__wal_")&&"__wal_count"!==e).sort((e,t)=>{const s=parseInt(e.slice(6),10),n=parseInt(t.slice(6),10);return(isNaN(s)?0:s)-(isNaN(n)?0:n)});if(0===e.length)return new Uint8Array(0);const t=[];for(const s of e){const e=await this.backend.read(s);e&&t.push(new Uint8Array(e))}const s=t.reduce((e,t)=>e+t.byteLength,0),n=new Uint8Array(s);let i=0;for(const e of t)n.set(e,i),i+=e.byteLength;return n},truncate:async()=>{const e=(await this.backend.listKeys()).filter(e=>e.startsWith("__wal_"));await this.backend.deleteMany(e),await this.setWALCount(0)},exists:async()=>(await this.backend.listKeys()).filter(e=>e.startsWith("__wal_")&&"__wal_count"!==e).length>0},this.config.walEnabled,this.config.walSyncMode),await this.loadSchemas();for(const[e,t]of this.schemas){const s=this.tablePKs.get(e);for(const[n,i]of Object.entries(t.columns))if((i.index||i.unique)&&n!==s){const t=`${e}:idx:${n}`;if(!this.secondaryIndexes.has(t)){const s=new B({memtableSizeThreshold:this.config.memtableSizeThreshold,levelSizeMultiplier:this.config.levelSizeMultiplier,blockSize:this.config.pageSize,bloomBitsPerKey:this.config.bloomFilterBitsPerKey,cacheLimitBytes:this.config.bufferPoolPages*this.config.pageSize,sstableStore:this.createSSTableStore(`idx_${e}_${n}`)});await s.init(),this.secondaryIndexes.set(t,s)}}}await this.lsm.init();const n=new Set,i=[];await this.wal.recover(e=>i.push(e));for(const e of i)e.type===S.COMMIT&&n.add(e.txnId),e.type===S.ROLLBACK&&n.delete(e.txnId);for(const e of i)(0===e.txnId||n.has(e.txnId))&&(e.type===S.DROP_TABLE?await this.applyDropTableRecovery(e.tableName):this.applyWALRecord(e));if(i.length>0){await this.lsm.flush(),await this.wal.checkpoint();for(const e of this.schemas.keys())await this.reindexTableInternal(e)}this.checkpointManager=new U(this.lsm,{checkpoint:async()=>{this.currentTxnId||await this.wal.checkpoint()},flush:async()=>{this.currentTxnId||await this.wal.flush()},getBufferedBytes:()=>this.wal.getBufferedBytes(),getBufferedCount:()=>this.wal.getBufferedCount()},{flushAll:async()=>{await this.lsm.flush()}},this.config.checkpointInterval,this.config.walSizeThreshold),this.opened=!0}async close(){if(this.opened){await this.persistSchemas(),await this.lsm.flush();for(const e of this.secondaryIndexes.values())await e.flush();await this.wal.flush(),await this.wal.checkpoint(),await this.backend.close(),this.schemas.clear(),this.tablePKs.clear(),this.secondaryIndexes.clear(),this.mvcc=new q,this.currentTxnId=null,this.txnSnapshot=null,this.savepoints.clear(),this.opCounter=0,this.opened=!1}}async repair(){this.ensureOpen(),await this.lsm.validateAll(),await this.lsm.flush(),await this.wal.checkpoint();for(const e of this.schemas.keys())await this.reindexTable(e)}async clearAll(){this.ensureOpen(),await this.backend.clear(),this.schemas.clear(),this.tablePKs.clear(),this.secondaryIndexes.clear(),this.lsm.clear(),this.mvcc=new q,this.currentTxnId=null,this.txnSnapshot=null,this.savepoints.clear(),this.opCounter=0,await this.persistSchemas(),await this.wal.checkpoint()}isOpen(){return this.opened}async getMeta(e){const t=await this.backend.read(`__meta_${e}`);return t?(new TextDecoder).decode(t):null}async setMeta(e,t){await this.backend.write(`__meta_${e}`,(new TextEncoder).encode(t).buffer)}async createTable(e){if(this.ensureOpen(),this.ensureNoDDLInTransaction("CREATE TABLE"),this.schemas.has(e.name))throw new n(`Table "${e.name}" already exists`,"TABLE_EXISTS");this.schemas.set(e.name,e),this.tablePKs.set(e.name,this.getPK(e));for(const[t,s]of Object.entries(e.columns))if(s.index||s.unique){const s=`${e.name}:idx:${t}`;if(!this.secondaryIndexes.has(s)){const n=new B({memtableSizeThreshold:this.config.memtableSizeThreshold,levelSizeMultiplier:this.config.levelSizeMultiplier,blockSize:this.config.pageSize,bloomBitsPerKey:this.config.bloomFilterBitsPerKey,cacheLimitBytes:this.config.bufferPoolPages*this.config.pageSize,sstableStore:this.createSSTableStore(`idx_${e.name}_${t}`)});await n.init(),this.secondaryIndexes.set(s,n)}}await this.persistSchemas(),await this.wal.append({type:S.CREATE_TABLE,txnId:0,tableName:e.name,key:"",data:{schema:JSON.stringify(e)}})}async dropTable(e){this.ensureOpen(),this.ensureNoDDLInTransaction("DROP TABLE"),this.ensureTable(e);const t=await this.getAllRows(e);for(const s of t){const t=this.tablePKs.get(e);this.lsm.delete(`${e}:${s[t]}`)}await this.cleanupTableIndexes(e),this.schemas.delete(e),this.tablePKs.delete(e),await this.persistSchemas(),await this.wal.append({type:S.DROP_TABLE,txnId:0,tableName:e,key:""})}async cleanupTableIndexes(e){const t=`${e}:idx:`,s=[];for(const[e,n]of this.secondaryIndexes)if(e.startsWith(t)){s.push(e);try{await n.clear()}catch{}}for(const e of s)this.secondaryIndexes.delete(e)}async hasTable(e){return this.schemas.has(e)}async getTableNames(){return Array.from(this.schemas.keys())}async getTableSchema(e){return this.schemas.get(e)??null}async insert(e,t){this.ensureOpen(),this.ensureTable(e);const s=this.schemas.get(e),i=this.tablePKs.get(e),r=[],a=[];for(const o of t){const t=this.validateRow(s,o),h=String(t[i]),c=`${e}:${h}`;await this.lsm.prefetchKeys([c]);const l=this.currentTxnId?this.txnSnapshot?.get(c)??this.lsm.get(c):this.lsm.get(c);if(l&&!l.__txn_deleted)throw new n(`Duplicate primary key "${h}" in table "${e}"`,"DUPLICATE_KEY");this.currentTxnId&&this.txnSnapshot?(this.txnSnapshot.set(c,t),this.mvcc.writeVersion(e,h,t,this.currentTxnId)):this.lsm.put(c,t),this.updateSecondaryIndexes(e,h,t,null),r.push(h),a.push({type:S.INSERT,txnId:this.currentTxnId??0,tableName:e,key:h,data:t})}return await this.wal.appendBatch(a),this.opCounter+=t.length,this.checkMemoryBudget(),await this.checkpointManager.tick(),this.tryGC(),r}async find(e,t){let s;this.ensureOpen(),this.ensureTable(e);const n=await this.tryIndexLookup(e,t);s=null!==n?n:await this.getAllRows(e),s=this.mergeTxnSnapshot(e,s),t.where&&Object.keys(t.where).length>0&&(s=s.filter(e=>a(e,t.where))),t.orderBy&&t.orderBy.length>0&&(s=c(s,t.orderBy));const i=t.offset??0,r=t.limit??s.length;return s=s.slice(i,i+r),t.columns&&t.columns.length>0&&"*"!==t.columns[0]&&(s=s.map(e=>u(e,t.columns))),this.trimAllCaches(),s}async update(e,t,s){this.ensureOpen(),this.ensureTable(e);const n=this.schemas.get(e),i=await this.getAllRows(e);let r=0;const o=[],h=new Set;for(const c of i){const i=this.tablePKs.get(e),l=`${e}:${c[i]}`;if(!t.where||0===Object.keys(t.where).length||a(c,t.where)){const t={...c,...s};this.validateRow(n,t);const a=String(t[i]),u=a!==String(c[i]);u&&await this.applyForeignKeyUpdateRules(e,String(c[i]),a,o,h),this.currentTxnId&&this.txnSnapshot?(u&&(this.txnSnapshot.set(l,{__txn_deleted:!0}),this.mvcc.deleteVersion(e,String(c[i]),this.currentTxnId)),this.txnSnapshot.set(`${e}:${a}`,t),this.mvcc.writeVersion(e,a,t,this.currentTxnId)):(u&&this.lsm.delete(l),this.lsm.put(`${e}:${a}`,t)),r++,u&&o.push({type:S.DELETE,txnId:this.currentTxnId??0,tableName:e,key:String(c[i])}),o.push({type:S.UPDATE,txnId:this.currentTxnId??0,tableName:e,key:a,data:t}),this.updateSecondaryIndexes(e,a,t,u?c:null)}}return await this.wal.appendBatch(o),this.opCounter+=r,await this.checkpointManager.tick(),this.trimAllCaches(),r}async applyForeignKeyUpdateRules(e,t,s,i,r){const a=`${e}:${t}`;if(!r.has(a)){r.add(a);for(const[s,i]of this.schemas)if(s!==e)for(const[r,a]of Object.entries(i.columns)){if(!a.references||!a.onUpdate)continue;const[i]=a.references.split(".");if(i===e&&("RESTRICT"===a.onUpdate&&(await this.getAllRows(s)).some(e=>String(e[r])===t)))throw new n(`Cannot update "${e}" key "${t}": foreign key "${r}" in "${s}" has dependent rows`,"FOREIGN_KEY_VIOLATION")}for(const[n,r]of this.schemas)if(n!==e)for(const[a,o]of Object.entries(r.columns)){if(!o.references||!o.onUpdate)continue;const[r]=o.references.split(".");if(r!==e)continue;if("CASCADE"!==o.onUpdate&&"SET NULL"!==o.onUpdate)continue;const h=await this.getAllRows(n);for(const e of h){if(String(e[a])!==t)continue;const r=this.tablePKs.get(n),h=String(e[r]),c={...e,[a]:"CASCADE"===o.onUpdate?s:null},l=`${n}:${h}`;this.currentTxnId&&this.txnSnapshot?(this.txnSnapshot.set(l,c),this.mvcc.writeVersion(n,h,c,this.currentTxnId)):this.lsm.put(l,c),this.updateSecondaryIndexes(n,h,c,e),i.push({type:S.UPDATE,txnId:this.currentTxnId??0,tableName:n,key:h,data:c})}}}}async delete(e,t){this.ensureOpen(),this.ensureTable(e);const s=await this.getAllRows(e);let n=0;const i=[],r=new Set;for(const o of s){const s=this.tablePKs.get(e),h=`${e}:${o[s]}`;t.where&&0!==Object.keys(t.where).length&&!a(o,t.where)||(n+=await this.applyForeignKeyRules(e,String(o[s]),i,r),this.currentTxnId&&this.txnSnapshot?(this.txnSnapshot.set(h,{__txn_deleted:!0}),this.mvcc.deleteVersion(e,String(o[s]),this.currentTxnId)):this.lsm.delete(h),n++,i.push({type:S.DELETE,txnId:this.currentTxnId??0,tableName:e,key:String(o[s])}),this.updateSecondaryIndexes(e,String(o[s]),null,o))}return await this.wal.appendBatch(i),this.opCounter+=n,await this.checkpointManager.tick(),this.trimAllCaches(),n}async applyForeignKeyRules(e,t,s,i){let r=0;const a=`${e}:${t}`;if(i.has(a))return 0;i.add(a);for(const[a,o]of this.schemas)if(a!==e)for(const[h,c]of Object.entries(o.columns)){if(!c.references||!c.onDelete)continue;const[o]=c.references.split(".");if(o!==e)continue;const l=(await this.getAllRows(a)).filter(e=>String(e[h])===t);if("RESTRICT"===c.onDelete&&l.length>0)throw new n(`Cannot delete from "${e}": foreign key "${h}" in "${a}" has dependent rows`,"FOREIGN_KEY_VIOLATION");if("CASCADE"===c.onDelete){const e=this.tablePKs.get(a);for(const t of l){const n=String(t[e]);r+=await this.applyForeignKeyRules(a,n,s,i);const o=`${a}:${n}`;this.currentTxnId&&this.txnSnapshot?(this.txnSnapshot.set(o,{__txn_deleted:!0}),this.mvcc.deleteVersion(a,n,this.currentTxnId)):this.lsm.delete(o),this.updateSecondaryIndexes(a,n,null,t),s.push({type:S.DELETE,txnId:this.currentTxnId??0,tableName:a,key:n}),r++}}else if("SET NULL"===c.onDelete){const e=this.tablePKs.get(a);for(const t of l){const n=String(t[e]),i={...t,[h]:null},r=`${a}:${n}`;this.currentTxnId&&this.txnSnapshot?(this.txnSnapshot.set(r,i),this.mvcc.writeVersion(a,n,i,this.currentTxnId)):this.lsm.put(r,i),this.updateSecondaryIndexes(a,n,i,t),s.push({type:S.UPDATE,txnId:this.currentTxnId??0,tableName:a,key:n,data:i})}}}return r}async findStream(e,t,s){this.ensureOpen(),this.ensureTable(e);const n=!!(t.where&&Object.keys(t.where).length>0),i=t.columns&&t.columns.length>0&&"*"!==t.columns[0]?e=>u(e,t.columns):null,r=t.limit??1/0,o=t.offset??0,h=this.tablePKs.get(e),c=`${e}:`;let l=0,f=0;const d=e=>!(!n||a(e,t.where))||(f{if(l>=r)return;const s={...t};s[h]=e.slice(c.length),d(s)}),l}async count(e,t){this.ensureOpen(),this.ensureTable(e);const s=await this.getAllRows(e);return this.trimAllCaches(),t?.where&&0!==Object.keys(t.where).length?s.filter(e=>a(e,t.where)).length:s.length}async clear(e){this.ensureOpen(),this.ensureTable(e);const t=await this.getAllRows(e),s=[];for(const n of t){const t=this.tablePKs.get(e),i=`${e}:${n[t]}`;this.currentTxnId&&this.txnSnapshot?(this.txnSnapshot.set(i,{__txn_deleted:!0}),this.mvcc.deleteVersion(e,String(n[t]),this.currentTxnId)):this.lsm.delete(i),s.push({type:S.DELETE,txnId:this.currentTxnId??0,tableName:e,key:String(n[t])}),this.updateSecondaryIndexes(e,String(n[t]),null,n)}await this.wal.appendBatch(s),this.opCounter+=t.length,await this.checkpointManager.tick(),this.tryGC()}async alterTable(e,t,s){this.ensureOpen(),this.ensureNoDDLInTransaction("ALTER TABLE"),this.ensureTable(e);const i=this.schemas.get(e);if("ADD"===t){if(i.columns[s.name])throw new n(`Column "${s.name}" already exists in table "${e}"`,"COLUMN_EXISTS");return i.columns[s.name]=s,void await this.persistSchemas()}if(!i.columns[s.name])throw new n(`Column "${s.name}" does not exist in table "${e}"`,"COLUMN_NOT_FOUND");if(i.columns[s.name].index||i.columns[s.name].unique){const t=`${e}:idx:${s.name}`,n=this.secondaryIndexes.get(t);if(n){try{await n.clear()}catch{}this.secondaryIndexes.delete(t)}}delete i.columns[s.name],await this.persistSchemas();const r=`${e}:`,a=`${r}￿`;await this.lsm.prefetchRange(r,a);const o=this.lsm.rangeScan(r,a),h=[];for(const[t,n]of o){if(!(s.name in n))continue;const i={...n};delete i[s.name],this.lsm.put(t,i);const a=t.slice(r.length);this.updateSecondaryIndexes(e,a,i,n),h.push({type:S.UPDATE,txnId:this.currentTxnId??0,tableName:e,key:a,data:i})}await this.wal.appendBatch(h),this.opCounter+=h.length,await this.checkpointManager.tick(),this.trimAllCaches()}async createIndex(e,t,s){this.ensureOpen(),this.ensureNoDDLInTransaction("CREATE INDEX"),this.ensureTable(e);const i=this.schemas.get(e).columns[t];if(!i)throw new n(`Column "${t}" does not exist in table "${e}"`,"COLUMN_NOT_FOUND");const r=`${e}:idx:${t}`;if(this.secondaryIndexes.has(r))return;i.index=!0,s&&(i.unique=!0);const a=new B({memtableSizeThreshold:this.config.memtableSizeThreshold,levelSizeMultiplier:this.config.levelSizeMultiplier,blockSize:this.config.pageSize,bloomBitsPerKey:this.config.bloomFilterBitsPerKey,cacheLimitBytes:this.config.bufferPoolPages*this.config.pageSize,sstableStore:this.createSSTableStore(`idx_${e}_${t}`)});await a.init(),this.secondaryIndexes.set(r,a);const o=this.tablePKs.get(e),h=await this.getAllRows(e);for(const e of h){const s=e[t];null!=s&&a.put(`${String(s)}:${e[o]}`,{pk:e[o]})}await a.flush(),await this.persistSchemas()}async dropIndex(e,t,s){this.ensureOpen(),this.ensureNoDDLInTransaction("DROP INDEX"),this.ensureTable(e);const i=this.schemas.get(e).columns[t];if(!i)throw new n(`Column "${t}" does not exist in table "${e}"`,"COLUMN_NOT_FOUND");if(i.primaryKey)throw new n(`Cannot drop primary key index on column "${t}"`,"NOT_SUPPORTED");if(!i.index&&!i.unique&&!this.secondaryIndexes.has(`${e}:idx:${t}`))throw new n(`Index on column "${t}" does not exist in table "${e}"`,"INDEX_NOT_FOUND");i.index=!1,i.unique=!1;const r=`${e}:idx:${t}`,a=this.secondaryIndexes.get(r);a&&(await a.clear(),this.secondaryIndexes.delete(r)),await this.persistSchemas()}async beginTransaction(){if(this.currentTxnId)throw new n("Transaction already in progress","TX_ACTIVE");this.currentTxnId=this.mvcc.beginTransaction(),this.txnSnapshot=new Map,await this.wal.append({type:S.BEGIN,txnId:this.currentTxnId,tableName:"",key:""})}async commitTransaction(){if(!this.currentTxnId)throw new n("No active transaction","TX_NONE");if(this.txnSnapshot)for(const[e,t]of this.txnSnapshot)t.__txn_deleted?this.lsm.delete(e):this.lsm.put(e,t);this.mvcc.commitTransaction(this.currentTxnId),await this.wal.append({type:S.COMMIT,txnId:this.currentTxnId,tableName:"",key:""}),this.currentTxnId=null,this.txnSnapshot=null,await this.wal.flush()}async rollbackTransaction(){if(!this.currentTxnId)throw new n("No active transaction","TX_NONE");const e=new Set;if(this.txnSnapshot)for(const t of this.txnSnapshot.keys()){const s=t.indexOf(":");s>0&&e.add(t.slice(0,s))}this.mvcc.rollbackTransaction(this.currentTxnId),this.txnSnapshot=null,await this.wal.append({type:S.ROLLBACK,txnId:this.currentTxnId,tableName:"",key:""}),this.currentTxnId=null;for(const t of e)this.schemas.has(t)&&await this.reindexTable(t)}async savepoint(e){if(!this.currentTxnId)throw new n("No active transaction for savepoint","TX_NONE");if(this.savepoints.has(e))throw new n(`Savepoint "${e}" already exists`,"SAVEPOINT_EXISTS");this.savepoints.set(e,{txnId:this.currentTxnId,snapshot:this.txnSnapshot?new Map(this.txnSnapshot):null})}async rollbackToSavepoint(e){const t=this.savepoints.get(e);if(!t)throw new n(`Savepoint "${e}" not found`,"SAVEPOINT_NOT_FOUND");this.txnSnapshot=t.snapshot?new Map(t.snapshot):null,this.mvcc.discardVersions(this.currentTxnId);let s=!1;for(const[t]of this.savepoints)t!==e?s&&this.savepoints.delete(t):s=!0}async releaseSavepoint(e){if(!this.savepoints.has(e))throw new n(`Savepoint "${e}" not found`,"SAVEPOINT_NOT_FOUND");this.savepoints.delete(e)}async backup(){this.ensureOpen();const e={};for(const t of this.schemas.keys())e[t]=await this.getAllRows(t);return e}async getAllRows(e){const t=this.tablePKs.get(e),s=`${e}:`;await this.lsm.prefetchRange(s,`${s}￿`);const n=this.lsm.rangeScan(s,`${s}￿`).map(([e,n])=>{const i={...n};return i[t]=e.slice(s.length),i});return this.mergeTxnSnapshot(e,n)}mergeTxnSnapshot(e,t){if(!this.currentTxnId||!this.txnSnapshot)return t;const s=this.tablePKs.get(e),n=`${e}:`;for(const[e,i]of this.txnSnapshot){if(!e.startsWith(n))continue;const r=e.slice(n.length),a=i.__txn_deleted,o=t.findIndex(e=>e[s]===r);if(a)o>=0&&t.splice(o,1);else{const e={...i,[s]:r};o>=0?t[o]=e:t.push(e)}}return t}getPK(e){for(const[t,s]of Object.entries(e.columns))if(s.primaryKey)return t;return Object.keys(e.columns)[0]}validateRow(e,t){const s={};for(const[i,r]of Object.entries(e.columns)){let a=t[i];if(void 0===a&&void 0!==r.default&&(a=r.default),r.required&&null==a)throw new n(`Column "${i}" is required in table "${e.name}"`,"VALIDATION_ERROR");null!=a&&this.checkType(i,r.type,a,r),void 0!==a&&(s[i]=a)}return s}checkType(e,t,s,i){!function(e,t,s,i,r){const a=typeof i;switch(s){case"string":if("string"!==a)throw new n(`Column "${t}" in table "" expects string, got ${a}`,"TYPE_ERROR");if(void 0!==r?.maxLength&&i.length>r.maxLength)throw new n(`Column "${t}" in table "" exceeds max length ${r.maxLength}`,"VALIDATION_ERROR");break;case"number":if("number"!==a)throw new n(`Column "${t}" in table "" expects number, got ${a}`,"TYPE_ERROR");if(void 0!==r?.min&&ir.max)throw new n(`Column "${t}" in table "" value ${i} above maximum ${r.max}`,"VALIDATION_ERROR");break;case"boolean":if("boolean"!==a)throw new n(`Column "${t}" in table "" expects boolean, got ${a}`,"TYPE_ERROR");break;case"date":if("string"!==a||isNaN(Date.parse(i)))throw new n(`Column "${t}" in table "" expects valid date string, got ${typeof i}`,"TYPE_ERROR");break;case"json":if("object"!==a)throw new n(`Column "${t}" in table "" expects object/array, got ${a}`,"TYPE_ERROR")}}(0,e,t,s,i)}async persistSchemas(){const e={};for(const[t,s]of this.schemas)e[t]=s.columns;const t=JSON.stringify(e),s=(new TextEncoder).encode(t).buffer;await this.backend.write("__aria_schemas",s)}async loadSchemas(){const e=await this.backend.read("__aria_schemas");if(e)try{const t=(new TextDecoder).decode(e),s=JSON.parse(t);for(const[e,t]of Object.entries(s)){const s={name:e,columns:t};this.schemas.set(e,s),this.tablePKs.set(e,this.getPK(s))}}catch{}}createSSTableStore(e){const t="main"===e?"sst_":`sst_${e}_`,s="main"===e?"__aria_lsm_meta":`__aria_lsm_meta_${e}`;let n=0,i=!1;const r=e=>(new TextEncoder).encode(e).buffer,a=async()=>{const e=await this.backend.read(s);if(!e)return[];try{return JSON.parse((new TextDecoder).decode(e))}catch{return[]}};return{save:async(e,s)=>{let n=s.buffer.slice(s.byteOffset,s.byteOffset+s.byteLength);if(this.config.compression){const e=function(e){if(0===e.byteLength)return e;const t=e.byteLength+Math.ceil(e.byteLength/15)+8,s=new Uint8Array(t);let n=0,i=0,r=0;for(;n=4&&i>t&&(t=i,a=n-s)}if(t>4&&n-r<=15){const o=n-r,h=t-4;s[i++]=(15&o)<<4|15&h;for(let t=0;t>8&255,n+=t,r=n}else if(n++,n-r>=15){s[i++]=240;for(let t=0;t<15;t++)s[i++]=e[r+t];r=n}}let a=n-r;for(;a>0;){const t=Math.min(a,15);s[i++]=(15&t)<<4;for(let n=0;n{const s=await this.backend.read(`${t}${e}`);if(!s)return null;let n=new Uint8Array(s);if(J()&&n.length>16){const e=n.slice(0,12),t=new DataView(n.buffer,n.byteOffset+12,4).getUint32(0,!1),s=n.slice(16).buffer,i=await async function(e,t){return X.decryptPage(e,t)}(e,s);n=new Uint8Array(i,0,t)}if(this.config.compression){const e=function(e,t){const s=new Uint8Array(t);let n=0,i=0;for(;n>4&15,o=15&r;for(let r=0;r=e.byteLength)break;const h=e[n++]|e[n++]<<8,c=o+4;for(let e=0;e{await this.backend.delete(`${t}${e}`)},allocateId:async()=>{if(!i){const e=await a();n=e.reduce((e,t)=>Math.max(e,t.id),0),i=!0}return++n},listMeta:a,saveMeta:async e=>{const t=await a(),n=t.findIndex(t=>t.id===e.id);n>=0?t[n]=e:t.push(e),await this.backend.write(s,r(JSON.stringify(t)))},deleteMeta:async e=>{const t=(await a()).filter(t=>t.id!==e);await this.backend.write(s,r(JSON.stringify(t)))}}}applyWALRecord(e){switch(e.type){case S.INSERT:case S.UPDATE:e.data&&this.lsm.put(`${e.tableName}:${e.key}`,e.data);break;case S.DELETE:this.lsm.delete(`${e.tableName}:${e.key}`);break;case S.CREATE_TABLE:if(e.data?.schema)try{const t=JSON.parse(e.data.schema);this.schemas.has(t.name)||(this.schemas.set(t.name,t),this.tablePKs.set(t.name,this.getPK(t)))}catch{}case S.COMMIT:case S.ROLLBACK:case S.BEGIN:}}async applyDropTableRecovery(e){if(!e)return;await this.cleanupTableIndexes(e),this.schemas.delete(e),this.tablePKs.delete(e);const t=`${e}:`,s=`${t}￿`;await this.lsm.prefetchRange(t,s);const n=this.lsm.rangeScan(t,s);for(const[e]of n)this.lsm.delete(e)}updateSecondaryIndexes(e,t,s,n){const i=this.schemas.get(e);if(i)for(const[r,a]of Object.entries(i.columns)){if(!a.index&&!a.unique)continue;const i=`${e}:idx:${r}`,o=this.secondaryIndexes.get(i);if(o){if(n){const e=n[r];null!=e&&o.delete(`${String(e)}:${t}`)}if(s){const e=s[r];null!=e&&o.put(`${String(e)}:${t}`,{pk:t})}}}}async tryIndexLookup(e,t){if(!t.where)return null;const s=this.schemas.get(e);if(!s)return null;const n=this.tablePKs.get(e);for(const[i,r]of Object.entries(t.where)){if("$and"===i||"$or"===i||"$not"===i)continue;const t=s.columns[i];if(!(t&&(t.index||t.unique||t.primaryKey)||i===n))continue;if(i===n){if("object"!=typeof r||null===r){const t=`${e}:${r}`;await this.lsm.prefetchKeys([t]);const s=this.lsm.get(t);return s?[{...s,[n]:r}]:[]}const t=r;if("$eq"in t){const s=`${e}:${t.$eq}`;await this.lsm.prefetchKeys([s]);const i=this.lsm.get(s);return i?[{...i,[n]:t.$eq}]:[]}if("$in"in t&&Array.isArray(t.$in)){const s=t.$in.map(t=>`${e}:${t}`);await this.lsm.prefetchKeys(s);const i=[],r=new Set;for(const s of t.$in){const t=String(s);if(r.has(t))continue;const a=this.lsm.get(`${e}:${t}`);a&&(r.add(t),i.push({...a,[n]:t}))}return i}if("$gt"in t||"$gte"in t||"$lt"in t||"$lte"in t){const t=`${e}:`;await this.lsm.prefetchRange(t,`${t}￿`);const s=this.lsm.rangeScan(t,`${t}￿`),i=[];for(const[e,o]of s){const s={...o,[n]:e.slice(t.length)};a(s,{[n]:r})&&i.push(s)}return i}}const o=`${e}:idx:${i}`,h=this.secondaryIndexes.get(o);if(!h)continue;if("object"!=typeof r||null===r)return this.indexScanToRows(e,n,h,String(r),String(r));const c=r;if("$eq"in c){const t=String(c.$eq);return this.indexScanToRows(e,n,h,t,t)}if("$in"in c&&Array.isArray(c.$in)){const t=[],s=new Set;for(const i of c.$in){const r=await this.indexScanToRows(e,n,h,String(i),String(i));for(const e of r){const i=String(e[n]);s.has(i)||(s.add(i),t.push(e))}}return t}if("$gt"in c||"$gte"in c||"$lt"in c||"$lte"in c){let t="",s="￿";return void 0!==c.$gt?t=`${String(Number(c.$gt)+1)}:`:void 0!==c.$gte&&(t=`${String(c.$gte)}:`),void 0!==c.$lt?s=`${String(Number(c.$lt)-1)}:￿`:void 0!==c.$lte&&(s=`${String(c.$lte)}:￿`),this.indexScanToRows(e,n,h,t,s)}}return null}async indexScanToRows(e,t,s,n,i){const r=i.includes("￿")?i:`${i}￿`;await s.prefetchRange(n,r);const a=s.rangeScan(n,r),o=[];for(const[,e]of a){const t=e.pk;t&&o.push(t)}await this.lsm.prefetchKeys(o.map(t=>`${e}:${t}`));const h=[];for(const s of o){const n=this.lsm.get(`${e}:${s}`);n&&h.push({...n,[t]:s})}return h}tryGC(){this.gcCounter++,this.gcCounter>=10&&(this.mvcc.gc(100),this.gcCounter=0)}trimAllCaches(){this.lsm.trimCache();for(const e of this.secondaryIndexes.values())e.trimCache()}checkMemoryBudget(){const e=1024*this.config.maxMemoryMB*1024;this.lsm.getEstimatedMemory()>e&&(this.lsm.flush().catch(()=>{}),this.mvcc.gc(50))}getWALEstimatedSize(){return 200*this.wal.getBufferedCount()}async analyzeTable(e){this.ensureOpen(),this.ensureTable(e);const t=await this.getAllRows(e),s={table:e,rowCount:t.length,avgRowSize:t.length>0?Math.round(t.reduce((e,t)=>e+JSON.stringify(t).length,0)/t.length):0,indexDepth:this.lsm.getStats().levelCounts.filter(e=>e>0).length,sstableCount:this.lsm.getStats().sstableCount,memtableSize:this.lsm.getStats().memtableSize,estimatedMemory:this.lsm.getEstimatedMemory()},n=this.schemas.get(e);if(n&&t.length>0){const e={};for(const s of Object.keys(n.columns)){const n=new Set(t.map(e=>String(e[s])));e[s]={distinctValues:n.size}}s.columnStats=e}return s}async reindexTable(e){return this.ensureOpen(),this.ensureTable(e),this.reindexTableInternal(e)}async reindexTableInternal(e){const t=this.schemas.get(e);if(!t)return 0;let s=0;for(const[n,i]of Object.entries(t.columns)){if(!i.index&&!i.unique)continue;const t=`${e}:idx:${n}`,r=this.secondaryIndexes.get(t);if(!r)continue;await r.clear(),s++;const a=await this.getAllRows(e);for(const t of a){const s=t[n];null!=s&&r.put(`${String(s)}:${t[this.tablePKs.get(e)]}`,{pk:t[this.tablePKs.get(e)]})}}return s}async vacuum(){this.ensureOpen(),await this.lsm.flush();for(let e=0;e<6;e++)this.lsm.getStats().levelCounts[e]>=2&&await this.lsm.compactLevel(e);const e=this.mvcc.getGlobalLSN();return this.mvcc.gc(10),{compactedLevels:6,gcVersions:e}}estimateQueryCost(e,t){const s=this.schemas.get(e);if(!s||!t.where)return{strategy:"full_scan",estimatedRows:0};const n=this.tablePKs.get(e);for(const[e,i]of Object.entries(t.where)){if("$and"===e||"$or"===e||"$not"===e)continue;if(e===n&&("object"!=typeof i||i.$eq))return{strategy:"pk_lookup",estimatedRows:1};const t=s.columns[e];if(t?.index||t?.unique){if("object"!=typeof i||i.$eq)return{strategy:`index_eq:${e}`,estimatedRows:1};if(i.$in&&Array.isArray(i.$in))return{strategy:`index_in:${e}`,estimatedRows:i.$in.length};if(i.$gt||i.$lt||i.$gte||i.$lte)return{strategy:`index_range:${e}`,estimatedRows:100}}}return{strategy:"full_scan",estimatedRows:1e3}}ensureOpen(){if(!this.opened)throw new n("AriaEngine not opened","DB_NOT_OPEN")}ensureNoDDLInTransaction(e){if(this.currentTxnId)throw new n(`${e} is not supported inside a transaction (AriaEngine DDL is not transactional)`,"NOT_SUPPORTED")}ensureTable(e){if(!this.schemas.has(e))throw new n(`Table "${e}" does not exist`,"TABLE_NOT_FOUND")}async getWALCount(){const e=await this.backend.read("__wal_count");if(!e)return 0;try{const t=new TextDecoder;return parseInt(t.decode(e),10)||0}catch{return 0}}async setWALCount(e){const t=(new TextEncoder).encode(String(e)).buffer;await this.backend.write("__wal_count",t)}}class Y{constructor(e="indexeddb"){this.name="hybrid",this.dbName="",this.version=1,this.memoryEngine=new f,this.diskEngineType=e,this.diskEngine="opfs"===e?new p:new d}async open(e,t){this.dbName=e,this.version=t,await this.diskEngine.open(e,t),await this.memoryEngine.open(e,t),await this.reloadMemoryFromDisk()}async reloadMemoryFromDisk(){await this.memoryEngine.close(),await this.memoryEngine.open(this.dbName,this.version);const e=await this.diskEngine.getTableNames();for(const t of e){const e=await this.diskEngine.getTableSchema(t);if(!e)continue;await this.memoryEngine.createTable(e);const s=await this.diskEngine.find(t,{table:t});if(s.length>0)try{await this.memoryEngine.insert(t,s)}catch(e){}}}async close(){await this.memoryEngine.close(),await this.diskEngine.close()}isOpen(){return this.memoryEngine.isOpen()&&this.diskEngine.isOpen()}async repair(){"function"==typeof this.diskEngine.repair&&await this.diskEngine.repair(),await this.reloadMemoryFromDisk()}async clearAll(){if("function"==typeof this.diskEngine.clearAll)await this.diskEngine.clearAll();else{const e=await this.diskEngine.getTableNames();for(const t of e)await this.diskEngine.dropTable(t)}if("function"==typeof this.memoryEngine.clearAll)await this.memoryEngine.clearAll();else{const e=await this.memoryEngine.getTableNames();for(const t of e)await this.memoryEngine.dropTable(t)}}async getMeta(e){return"function"==typeof this.diskEngine.getMeta?this.diskEngine.getMeta(e):null}async setMeta(e,t){"function"==typeof this.diskEngine.setMeta&&await this.diskEngine.setMeta(e,t)}async createTable(e){await this.memoryEngine.createTable(e),await this.diskEngine.createTable(e)}async dropTable(e){await this.memoryEngine.dropTable(e),await this.diskEngine.dropTable(e)}async hasTable(e){return this.memoryEngine.hasTable(e)}async getTableNames(){return this.memoryEngine.getTableNames()}async getTableSchema(e){return this.memoryEngine.getTableSchema(e)}async alterTable(e,t,s){if(await this.memoryEngine.alterTable(e,t,s),"function"==typeof this.diskEngine.alterTable)await this.diskEngine.alterTable(e,t,s);else{const n=await this.diskEngine.getTableSchema(e);n&&"DROP"===t&&delete n.columns[s.name]}}async insert(e,t){const s=await this.memoryEngine.insert(e,t);return await this.diskEngine.insert(e,t),s}async find(e,t){return this.memoryEngine.find(e,t)}async findStream(e,t,s){return this.memoryEngine.findStream(e,t,s)}async update(e,t,s){const n=await this.memoryEngine.update(e,t,s);return await this.diskEngine.update(e,t,s),n}async delete(e,t){const s=await this.memoryEngine.delete(e,t);return await this.diskEngine.delete(e,t),s}async count(e,t){return this.memoryEngine.count(e,t)}async clear(e){await this.memoryEngine.clear(e),await this.diskEngine.clear(e)}async createIndex(e,t,s){await this.memoryEngine.createIndex(e,t,s),"function"==typeof this.diskEngine.createIndex&&await this.diskEngine.createIndex(e,t,s)}async dropIndex(e,t,s){await this.memoryEngine.dropIndex(e,t,s),"function"==typeof this.diskEngine.dropIndex&&await this.diskEngine.dropIndex(e,t,s)}async beginTransaction(){await this.memoryEngine.beginTransaction(),await this.diskEngine.beginTransaction()}async commitTransaction(){await this.diskEngine.commitTransaction();try{await this.memoryEngine.commitTransaction()}catch(e){throw new n("Hybrid commit failed: memory engine error after disk commit (disk data is committed)","TX_COMMIT_ERROR",e)}}async rollbackTransaction(){await this.memoryEngine.rollbackTransaction(),await this.diskEngine.rollbackTransaction()}getDiskEngineType(){return this.diskEngineType}getMemoryEngine(){return this.memoryEngine}}class Z{constructor(e,t,s=["*"],n){this.engine=e,this.tableName=t,this._columns=s,this._where={},this._orderBy=[],this._joins=[],this._executor=n}as(e){return this._alias=e,this}innerJoin(e,t,s){return this._addJoin("INNER",e,t,s)}leftJoin(e,t,s){return this._addJoin("LEFT",e,t,s)}rightJoin(e,t,s){return this._addJoin("RIGHT",e,t,s)}crossJoin(e,t){return this._addJoin("CROSS",e,{},t)}join(e,t,s){return this._addJoin("INNER",e,t,s)}_addJoin(e,t,s,n){return this._joins.push({type:e,table:t,on:s,alias:n}),this}where(e){return this._where={...this._where,...e},this}orderBy(e,t="asc"){return this._orderBy.push({column:e,direction:t}),this}limit(e){return this._limit=e,this}offset(e){return this._offset=e,this}async execute(){if(this._joins.length>0&&this._executor){const e=this.toAST();return this._executor.execute(e)}return this.engine.find(this.tableName,{table:this.tableName,columns:this._columns,where:this._where,orderBy:this._orderBy.length>0?this._orderBy:void 0,limit:this._limit,offset:this._offset})}toAST(){return{type:"SELECT",columns:this._columns,from:this.tableName,alias:this._alias,joins:this._joins.length>0?[...this._joins]:void 0,where:this._where,orderBy:this._orderBy.length>0?this._orderBy:void 0,limit:this._limit,offset:this._offset}}}class ee{constructor(e,t,s,n){this.engine=e,this.tableName=t,this._updates=s,this._where={},this.onWrite=n}where(e){return this._where={...this._where,...e},this}async execute(){const e=await this.engine.update(this.tableName,{table:this.tableName,where:this._where},this._updates);return this.onWrite?.(this.tableName),e}toAST(){return{type:"UPDATE",table:this.tableName,sets:this._updates,where:this._where}}}class te{constructor(e,t,s){this.engine=e,this.tableName=t,this._where={},this.onWrite=s}where(e){return this._where={...this._where,...e},this}async execute(){const e=await this.engine.delete(this.tableName,{table:this.tableName,where:this._where});return this.onWrite?.(this.tableName),e}toAST(){return{type:"DELETE",from:this.tableName,where:this._where}}}class se{constructor(e,t,s,n){this.schema=null,this.engine=e,this.name=t,this.executor=s,this.onWrite=n}async getSchema(){if(!this.schema){const e=await this.engine.getTableSchema(this.name);if(!e)throw new n(`Table "${this.name}" does not exist`,"TABLE_NOT_FOUND");this.schema=e}return this.schema}async insert(e){const t=await this.engine.insert(this.name,[e]);return this.onWrite?.(this.name),t[0]}async insertMany(e){const t=await this.engine.insert(this.name,e);return this.onWrite?.(this.name),t}select(e=["*"]){return new Z(this.engine,this.name,e,this.executor)}async stream(e,t={}){if("function"!=typeof this.engine.findStream){const s=await this.engine.find(this.name,{table:this.name,where:t.where,limit:t.limit,offset:t.offset,columns:t.columns});for(const t of s)e(t);return s.length}return this.engine.findStream(this.name,{table:this.name,where:t.where,limit:t.limit,offset:t.offset,columns:t.columns},e)}update(e){return new ee(this.engine,this.name,e,this.onWrite)}delete(){return new te(this.engine,this.name,this.onWrite)}async count(e){return this.engine.count(this.name,e?{table:this.name,where:e}:void 0)}async clear(){await this.engine.clear(this.name),this.onWrite?.(this.name)}async drop(){await this.engine.dropTable(this.name),this.onWrite?.(this.name)}}function ne(e){switch(e.type){case"SELECT":return function(e){return{table:e.from,columns:e.columns,where:e.where,orderBy:e.orderBy?.length?e.orderBy:void 0,limit:e.limit,offset:e.offset}}(e);case"DELETE":return function(e){return{table:e.from,where:e.where}}(e);case"UPDATE":return function(e){return{table:e.table,where:e.where}}(e);default:throw new n(`Cannot compile statement type "${e.type}" to QueryPlan`,"COMPILE_ERROR")}}var ie;!function(e){e.SELECT="SELECT",e.FROM="FROM",e.WHERE="WHERE",e.INSERT="INSERT",e.INTO="INTO",e.VALUES="VALUES",e.UPDATE="UPDATE",e.SET="SET",e.DELETE="DELETE",e.CREATE="CREATE",e.TABLE="TABLE",e.DROP="DROP",e.ORDER="ORDER",e.BY="BY",e.ASC="ASC",e.DESC="DESC",e.LIMIT="LIMIT",e.OFFSET="OFFSET",e.AND="AND",e.OR="OR",e.NOT="NOT",e.LIKE="LIKE",e.IN="IN",e.PRIMARY="PRIMARY",e.KEY="KEY",e.UNIQUE="UNIQUE",e.DEFAULT="DEFAULT",e.NULL="NULL",e.TRUE="TRUE",e.REFERENCES="REFERENCES",e.CASCADE="CASCADE",e.BETWEEN="BETWEEN",e.IF="IF",e.EXISTS="EXISTS",e.FALSE="FALSE",e.ALTER="ALTER",e.ADD="ADD",e.TRUNCATE="TRUNCATE",e.INNER="INNER",e.LEFT="LEFT",e.RIGHT="RIGHT",e.CROSS="CROSS",e.JOIN="JOIN",e.ON="ON",e.AS="AS",e.OUTER="OUTER",e.GROUP="GROUP",e.HAVING="HAVING",e.COUNT="COUNT",e.SUM="SUM",e.AVG="AVG",e.MIN="MIN",e.MAX="MAX",e.DISTINCT="DISTINCT",e.BEGIN="BEGIN",e.COMMIT="COMMIT",e.ROLLBACK="ROLLBACK",e.UNION="UNION",e.ALL="ALL",e.INDEX="INDEX",e.CASE="CASE",e.WHEN="WHEN",e.THEN="THEN",e.ELSE="ELSE",e.END="END",e.IDENTIFIER="IDENTIFIER",e.STRING="STRING",e.NUMBER="NUMBER",e.COMMA="COMMA",e.LPAREN="LPAREN",e.RPAREN="RPAREN",e.SEMICOLON="SEMICOLON",e.EQ="EQ",e.NEQ="NEQ",e.GT="GT",e.GTE="GTE",e.LT="LT",e.LTE="LTE",e.STAR="STAR",e.DOT="DOT",e.EOF="EOF",e.ILLEGAL="ILLEGAL"}(ie||(ie={}));const re={SELECT:ie.SELECT,FROM:ie.FROM,WHERE:ie.WHERE,INSERT:ie.INSERT,INTO:ie.INTO,VALUES:ie.VALUES,UPDATE:ie.UPDATE,SET:ie.SET,DELETE:ie.DELETE,CREATE:ie.CREATE,TABLE:ie.TABLE,DROP:ie.DROP,ORDER:ie.ORDER,BY:ie.BY,ASC:ie.ASC,DESC:ie.DESC,LIMIT:ie.LIMIT,OFFSET:ie.OFFSET,AND:ie.AND,OR:ie.OR,NOT:ie.NOT,LIKE:ie.LIKE,IN:ie.IN,PRIMARY:ie.PRIMARY,KEY:ie.KEY,UNIQUE:ie.UNIQUE,DEFAULT:ie.DEFAULT,NULL:ie.NULL,TRUE:ie.TRUE,FALSE:ie.FALSE,REFERENCES:ie.REFERENCES,CASCADE:ie.CASCADE,BETWEEN:ie.BETWEEN,IF:ie.IF,EXISTS:ie.EXISTS,ALTER:ie.ALTER,ADD:ie.ADD,TRUNCATE:ie.TRUNCATE,INNER:ie.INNER,LEFT:ie.LEFT,RIGHT:ie.RIGHT,CROSS:ie.CROSS,JOIN:ie.JOIN,ON:ie.ON,AS:ie.AS,OUTER:ie.OUTER,GROUP:ie.GROUP,HAVING:ie.HAVING,COUNT:ie.COUNT,SUM:ie.SUM,AVG:ie.AVG,MIN:ie.MIN,MAX:ie.MAX,DISTINCT:ie.DISTINCT,BEGIN:ie.BEGIN,COMMIT:ie.COMMIT,ROLLBACK:ie.ROLLBACK,UNION:ie.UNION,ALL:ie.ALL,INDEX:ie.INDEX,CASE:ie.CASE,WHEN:ie.WHEN,THEN:ie.THEN,ELSE:ie.ELSE,END:ie.END};class ae{constructor(e){this.position=0,this.readPosition=0,this.ch="",this.input=e,this.readChar()}nextToken(){let e;switch(this.skipWhitespace(),this.ch){case",":e=this.makeToken(ie.COMMA,",");break;case"(":e=this.makeToken(ie.LPAREN,"(");break;case")":e=this.makeToken(ie.RPAREN,")");break;case";":e=this.makeToken(ie.SEMICOLON,";");break;case"*":e=this.makeToken(ie.STAR,"*");break;case".":e=this.makeToken(ie.DOT,".");break;case"=":e=this.makeToken(ie.EQ,"=");break;case"!":"="===this.peekChar()?(this.readChar(),e=this.makeToken(ie.NEQ,"!=")):e=this.makeToken(ie.ILLEGAL,"!");break;case">":"="===this.peekChar()?(this.readChar(),e=this.makeToken(ie.GTE,">=")):e=this.makeToken(ie.GT,">");break;case"<":"="===this.peekChar()?(this.readChar(),e=this.makeToken(ie.LTE,"<=")):">"===this.peekChar()?(this.readChar(),e=this.makeToken(ie.NEQ,"<>")):e=this.makeToken(ie.LT,"<");break;case"'":case'"':e=this.readString(this.ch);break;case"":e={type:ie.EOF,value:"",position:this.position};break;default:if("-"===this.ch&&"-"===this.peekChar())return this.skipLineComment(),this.nextToken();if("/"===this.ch&&"*"===this.peekChar())return this.skipBlockComment(),this.nextToken();if(this.isLetter(this.ch)){const t=this.readIdentifier();return e={type:re[t.toUpperCase()]??ie.IDENTIFIER,value:t,position:this.position-t.length},e}if(this.isDigit(this.ch)||"-"===this.ch&&this.isDigit(this.peekChar())){const t=this.readNumber();return e={type:ie.NUMBER,value:t,position:this.position-t.length},e}e=this.makeToken(ie.ILLEGAL,this.ch)}return this.readChar(),e}readChar(){this.readPosition>=this.input.length?this.ch="":this.ch=this.input[this.readPosition],this.position=this.readPosition,this.readPosition++}peekChar(){return this.readPosition>=this.input.length?"":this.input[this.readPosition]}skipWhitespace(){for(;" "===this.ch||"\t"===this.ch||"\n"===this.ch||"\r"===this.ch;)this.readChar()}skipLineComment(){for(;"\n"!==this.ch&&"\r"!==this.ch&&""!==this.ch;)this.readChar()}skipBlockComment(){for(this.readChar(),this.readChar();""!==this.ch&&("*"!==this.ch||"/"!==this.peekChar());)this.readChar();""!==this.ch&&(this.readChar(),this.readChar())}readIdentifier(){const e=this.position;for(;this.isLetter(this.ch)||this.isDigit(this.ch)||"_"===this.ch;)this.readChar();return this.input.slice(e,this.position)}readNumber(){const e=this.position;for("-"===this.ch&&this.readChar();this.isDigit(this.ch);)this.readChar();if("."===this.ch&&this.isDigit(this.peekChar()))for(this.readChar();this.isDigit(this.ch);)this.readChar();return this.input.slice(e,this.position)}readString(e){const t=this.position+1;this.readChar();let s="";for(;""!==this.ch;){if(this.ch===e){if(this.peekChar()===e){s+=e,this.readChar(),this.readChar();continue}break}"\\"!==this.ch||this.peekChar()!==e?(s+=this.ch,this.readChar()):(this.readChar(),s+=e,this.readChar())}return{type:ie.STRING,value:s,position:t}}isLetter(e){return/[a-zA-Z_]/.test(e)}isDigit(e){return/[0-9]/.test(e)}makeToken(e,t){return{type:e,value:t,position:this.position}}}class oe{constructor(e){this.sql=e,this.lexer=new ae(e),this.nextToken(),this.nextToken()}parseStatement(){switch(this.curToken.type){case ie.SELECT:return this.parseSelect();case ie.INSERT:return this.parseInsert();case ie.UPDATE:return this.parseUpdate();case ie.DELETE:return this.parseDelete();case ie.CREATE:return this.parseCreateStatement();case ie.DROP:return this.parseDropStatement();case ie.ALTER:return this.parseAlterTable();case ie.TRUNCATE:return this.parseTruncateTable();case ie.BEGIN:return this.parseBegin();case ie.COMMIT:return this.parseCommit();case ie.ROLLBACK:return this.parseRollback();default:throw this.error(`Unexpected token "${this.curToken.value}"`)}}parseAllStatements(){const e=[];for(;!this.curTokenIs(ie.EOF);){for(;this.curTokenIs(ie.SEMICOLON);)this.nextToken();if(this.curTokenIs(ie.EOF))break;if(e.push(this.parseStatement()),this.curTokenIs(ie.SEMICOLON))this.nextToken();else if(!this.curTokenIs(ie.EOF))throw this.error(`Expected ';' after statement, got "${this.curToken.value}"`)}return e}parseBegin(){return this.expect(ie.BEGIN),this._isKeywordAsIdent()&&"TRANSACTION"===this.curToken.value.toUpperCase()&&this.nextToken(),{type:"BEGIN"}}parseCommit(){return this.expect(ie.COMMIT),this._isKeywordAsIdent()&&"TRANSACTION"===this.curToken.value.toUpperCase()&&this.nextToken(),{type:"COMMIT"}}parseRollback(){return this.expect(ie.ROLLBACK),this._isKeywordAsIdent()&&"TRANSACTION"===this.curToken.value.toUpperCase()&&this.nextToken(),{type:"ROLLBACK"}}parseCreateStatement(){if(this.expect(ie.CREATE),this.curTokenIs(ie.TABLE))return this.parseCreateTable();if(this.curTokenIs(ie.INDEX)||this._isKeywordAsIdent()&&"INDEX"===this.curToken.value.toUpperCase())return this.parseCreateIndex();if(this.curTokenIs(ie.UNIQUE)&&(this.nextToken(),this.curTokenIs(ie.INDEX)||this._isKeywordAsIdent()&&"INDEX"===this.curToken.value.toUpperCase())){const e=this.parseCreateIndex();return e.unique=!0,e}throw this.error(`Expected TABLE or INDEX after CREATE, got "${this.curToken.value}"`)}parseCreateIndex(){this.expect(ie.INDEX);const e=this.expectIdentifier("index name");this.expect(ie.ON);const t=this.expectIdentifier("table name");this.expect(ie.LPAREN);const s=this.expectIdentifier("column name");return this.expect(ie.RPAREN),{type:"CREATE_INDEX",name:e,table:t,column:s}}parseDropStatement(){if(this.expect(ie.DROP),this.curTokenIs(ie.TABLE))return this.parseDropTable();if(this.curTokenIs(ie.INDEX)||this._isKeywordAsIdent()&&"INDEX"===this.curToken.value.toUpperCase())return this.parseDropIndex();throw this.error(`Expected TABLE or INDEX after DROP, got "${this.curToken.value}"`)}parseDropIndex(){this.expect(ie.INDEX);const e=this.expectIdentifier("index name");let t="",s="";return this.curTokenIs(ie.ON)&&(this.nextToken(),t=this.expectIdentifier("table name"),this.curTokenIs(ie.LPAREN)&&(this.nextToken(),s=this.expectIdentifier("column name"),this.expect(ie.RPAREN))),{type:"DROP_INDEX",name:e,table:t,column:s}}parseSelect(){this.expect(ie.SELECT);let e=!1;this.curTokenIs(ie.DISTINCT)&&(e=!0,this.nextToken());const t=[];let s;this.curTokenIs(ie.STAR)?(t.push("*"),this.nextToken()):t.push(...this.parseColumnList());let n,i="";this.curTokenIs(ie.FROM)&&(this.nextToken(),this.curTokenIs(ie.LPAREN)?(this.nextToken(),s=this.parseSelect(),this.expect(ie.RPAREN),this.curTokenIs(ie.AS)?(this.nextToken(),n=this.expectIdentifier("alias")):this.curToken.type!==ie.IDENTIFIER||this._isReservedAfterFrom()||(n=this.curToken.value,this.nextToken())):(i=this.expectIdentifier("table name"),this.curTokenIs(ie.AS)?(this.nextToken(),n=this.expectIdentifier("alias")):this.curToken.type!==ie.IDENTIFIER||this._isReservedAfterFrom()||(n=this.curToken.value,this.nextToken())));const r={type:"SELECT",columns:t,distinct:e||void 0,from:i,alias:n,where:{}};s&&(r.fromSubquery=s);const a=this.parseJoinClauses();return a.length>0&&(r.joins=a),this.curTokenIs(ie.WHERE)&&(this.nextToken(),r.where=this.parseCondition()),this.curTokenIs(ie.GROUP)&&(this.nextToken(),this.expect(ie.BY),r.groupBy=this.parseIdentifierList()),this.curTokenIs(ie.HAVING)&&(this.nextToken(),r.having=this.parseCondition()),this.curTokenIs(ie.ORDER)&&(this.nextToken(),this.expect(ie.BY),r.orderBy=this.parseOrderByList()),this.curTokenIs(ie.LIMIT)&&(this.nextToken(),r.limit=this.expectNumber("LIMIT value")),this.curTokenIs(ie.OFFSET)&&(this.nextToken(),r.offset=this.expectNumber("OFFSET value")),this.curTokenIs(ie.UNION)?this.parseUnion(r):r}parseUnion(e){this.expect(ie.UNION);let t=!1;this.curTokenIs(ie.ALL)&&(t=!0,this.nextToken());const s={type:"SELECT_UNION",left:e,right:this.parseSelect(),all:t||void 0};return this.curTokenIs(ie.UNION)?this.parseUnionChain(s):s}parseUnionChain(e){this.expect(ie.UNION);let t=!1;this.curTokenIs(ie.ALL)&&(t=!0,this.nextToken());const s={type:"SELECT_UNION",left:e,right:this.parseSelect(),all:t||void 0};return this.curTokenIs(ie.UNION)?this.parseUnionChain(s):s}parseJoinClauses(){const e=[];for(;this._isJoinKeyword();)e.push(this.parseJoinClause());return e}_isJoinKeyword(){return this.curTokenIs(ie.INNER)||this.curTokenIs(ie.LEFT)||this.curTokenIs(ie.RIGHT)||this.curTokenIs(ie.CROSS)||this.curTokenIs(ie.JOIN)}parseJoinClause(){let e="INNER";this.curTokenIs(ie.INNER)?(e="INNER",this.nextToken()):this.curTokenIs(ie.LEFT)?(e="LEFT",this.nextToken(),this.curTokenIs(ie.OUTER)&&this.nextToken()):this.curTokenIs(ie.RIGHT)?(e="RIGHT",this.nextToken(),this.curTokenIs(ie.OUTER)&&this.nextToken()):this.curTokenIs(ie.CROSS)&&(e="CROSS",this.nextToken()),this.expect(ie.JOIN);const t=this.expectIdentifier("table name");let s;this.curTokenIs(ie.AS)?(this.nextToken(),s=this.expectIdentifier("alias")):this.curToken.type!==ie.IDENTIFIER||this._isJoinReserved()||(s=this.curToken.value,this.nextToken());let n={};return"CROSS"!==e&&this.curTokenIs(ie.ON)&&(this.nextToken(),n=this.parseCondition()),{type:e,table:t,alias:s,on:n}}_isReservedAfterFrom(){return this.curTokenIs(ie.WHERE)||this.curTokenIs(ie.ORDER)||this.curTokenIs(ie.LIMIT)||this.curTokenIs(ie.OFFSET)||this.curTokenIs(ie.GROUP)||this._isJoinKeyword()}_isJoinReserved(){return this.curTokenIs(ie.ON)||this.curTokenIs(ie.WHERE)||this.curTokenIs(ie.ORDER)||this.curTokenIs(ie.LIMIT)||this._isJoinKeyword()}parseInsert(){this.expect(ie.INSERT),this.expect(ie.INTO);const e=this.expectIdentifier("table name");let t;if(this.curTokenIs(ie.LPAREN)&&(this.nextToken(),t=this.parseIdentifierList(),this.expect(ie.RPAREN)),this.curTokenIs(ie.SELECT))return{type:"INSERT",into:e,columns:t,select:this.parseSelect()};this.expect(ie.VALUES);const s=[];do{this.curTokenIs(ie.COMMA)&&this.nextToken(),this.expect(ie.LPAREN);const e=this.parseValueList();this.expect(ie.RPAREN),s.push(e)}while(this.curTokenIs(ie.COMMA));return{type:"INSERT",into:e,columns:t,values:s}}parseUpdate(){this.expect(ie.UPDATE);const e=this.expectIdentifier("table name");this.expect(ie.SET);const t={};do{this.curTokenIs(ie.COMMA)&&this.nextToken();const e=this.expectIdentifier("column name");this.expect(ie.EQ),t[e]=this.parseValue()}while(this.curTokenIs(ie.COMMA));let s={};return this.curTokenIs(ie.WHERE)&&(this.nextToken(),s=this.parseCondition()),{type:"UPDATE",table:e,sets:t,where:s}}parseDelete(){this.expect(ie.DELETE),this.expect(ie.FROM);const e=this.expectIdentifier("table name");let t={};return this.curTokenIs(ie.WHERE)&&(this.nextToken(),t=this.parseCondition()),{type:"DELETE",from:e,where:t}}parseCreateTable(){this.expect(ie.TABLE);let e=!1;this.curTokenIs(ie.IF)&&(this.nextToken(),this.expect(ie.NOT),this.expect(ie.EXISTS),e=!0);const t=this.expectIdentifier("table name");this.expect(ie.LPAREN);const s=[];do{this.curTokenIs(ie.COMMA)&&this.nextToken(),s.push(this.parseColumnDef())}while(this.curTokenIs(ie.COMMA));return this.expect(ie.RPAREN),{type:"CREATE_TABLE",name:t,columns:s,ifNotExists:e||void 0}}parseColumnDef(){const e={name:this.expectIdentifier("column name"),type:this.expectIdentifier("column type").toLowerCase()};for(;this.curTokenIs(ie.PRIMARY)||this.curTokenIs(ie.UNIQUE)||this.curTokenIs(ie.NOT)||this.curTokenIs(ie.DEFAULT)||this.curTokenIs(ie.REFERENCES);)if(this.curTokenIs(ie.PRIMARY))this.nextToken(),this.expect(ie.KEY),e.primaryKey=!0;else if(this.curTokenIs(ie.UNIQUE))this.nextToken(),e.unique=!0;else if(this.curTokenIs(ie.NOT))this.nextToken(),this.expect(ie.NULL),e.required=!0;else if(this.curTokenIs(ie.DEFAULT))this.nextToken(),e.default=this.parseValue();else{if(!this.curTokenIs(ie.REFERENCES))break;{this.nextToken();const t=this.expectIdentifier("referenced table");this.expect(ie.LPAREN);const s=this.expectIdentifier("referenced column");for(this.expect(ie.RPAREN),e.references=`${t}.${s}`;this.curTokenIs(ie.ON);)if(this.nextToken(),this.curTokenIs(ie.DELETE))this.nextToken(),e.onDelete=this.parseCascadeAction();else{if(!this.curTokenIs(ie.UPDATE))break;this.nextToken(),e.onUpdate=this.parseCascadeAction()}}}return e}parseCascadeAction(){return this.curTokenIs(ie.CASCADE)?(this.nextToken(),"CASCADE"):this.curTokenIs(ie.SET)?(this.nextToken(),this.expect(ie.NULL),"SET NULL"):this.curToken.type===ie.IDENTIFIER&&"RESTRICT"===this.curToken.value.toUpperCase()?(this.nextToken(),"RESTRICT"):"RESTRICT"}parseAlterTable(){this.expect(ie.ALTER),this.expect(ie.TABLE);const e=this.expectIdentifier("table name");let t;if(this.curTokenIs(ie.ADD))return t="ADD",this.nextToken(),this.curToken.type===ie.IDENTIFIER&&"COLUMN"===this.curToken.value.toUpperCase()&&this.nextToken(),{type:"ALTER_TABLE",name:e,action:t,column:this.parseColumnDef()};if(this.curTokenIs(ie.DROP)||this._isKeywordAsIdent()&&"DROP"===this.curToken.value.toUpperCase())return t="DROP",this.nextToken(),this.curToken.type===ie.IDENTIFIER&&"COLUMN"===this.curToken.value.toUpperCase()&&this.nextToken(),{type:"ALTER_TABLE",name:e,action:t,column:{name:this.expectIdentifier("column name"),type:"string"}};throw this.error("Expected ADD or DROP in ALTER TABLE")}parseTruncateTable(){return this.expect(ie.TRUNCATE),this.expect(ie.TABLE),{type:"TRUNCATE_TABLE",name:this.expectIdentifier("table name")}}parseDropTable(){this.expect(ie.TABLE);let e=!1;return this.curTokenIs(ie.IF)&&(this.nextToken(),this.expect(ie.EXISTS),e=!0),{type:"DROP_TABLE",name:this.expectIdentifier("table name"),ifExists:e||void 0}}parseCondition(){let e=this.parseSimpleCondition();for(;this.curTokenIs(ie.AND)||this.curTokenIs(ie.OR);){const t=this.curTokenIs(ie.AND);this.nextToken();const s=this.parseSimpleCondition();e=t?{$and:[e,s]}:{$or:[e,s]}}return e}parseWhere(){return this.parseCondition()}parseSimpleCondition(){if(this.curTokenIs(ie.EXISTS)||this._isKeywordAsIdent()&&"EXISTS"===this.curToken.value.toUpperCase())return this.nextToken(),this.parseExistsCondition(!1);if(this.curTokenIs(ie.NOT)&&this._peekIsExists())return this.nextToken(),this.nextToken(),this.parseExistsCondition(!0);if(this.curTokenIs(ie.NOT)&&!this._isNotInOrLike())return this.nextToken(),{$not:this.parseSimpleCondition()};if(this.curTokenIs(ie.LPAREN)){this.nextToken();const e=this.parseCondition();return this.expect(ie.RPAREN),e}const e=this.parseColumnRef();if(this.curTokenIs(ie.IDENTIFIER)&&"IS"===this.curToken.value.toUpperCase()){this.nextToken();const t=this.curTokenIs(ie.NOT);t&&this.nextToken(),this.expect(ie.NULL);const s={};return s[e]=t?{$ne:null}:{$eq:null},s}if(this.curTokenIs(ie.BETWEEN)){this.nextToken();const t=this.parseValue();this.expect(ie.AND);const s=this.parseValue(),n={};return n[e]={$gte:t,$lte:s},n}if(this.curTokenIs(ie.NOT)&&this.peekTokenIs(ie.BETWEEN)){this.nextToken(),this.nextToken();const t=this.parseValue();this.expect(ie.AND);const s=this.parseValue(),n={};return n[e]={$not:{$gte:t,$lte:s}},n}if(this.curTokenIs(ie.NOT)){if(this.peekTokenIs(ie.IN)){if(this.nextToken(),this.nextToken(),this.expect(ie.LPAREN),this.curTokenIs(ie.SELECT)){const t=this.parseSelect();this.expect(ie.RPAREN);const s={};return s[e]={$nin:{$subquery:t}},s}const t=this.parseValueList();this.expect(ie.RPAREN);const s={};return s[e]={$nin:t},s}if(this.peekTokenIs(ie.LIKE)){this.nextToken(),this.nextToken();const t=this.parseValue(),s={};return s[e]={$not:{$like:t}},s}}if(this.curTokenIs(ie.LIKE)){this.nextToken();const t=this.parseValue(),s={};return s[e]={$like:t},s}if(this.curTokenIs(ie.IN)){if(this.nextToken(),this.expect(ie.LPAREN),this.curTokenIs(ie.SELECT)){const t=this.parseSelect();this.expect(ie.RPAREN);const s={};return s[e]={$in:{$subquery:t}},s}const t=this.parseValueList();this.expect(ie.RPAREN);const s={};return s[e]={$in:t},s}if(this.curTokenIs(ie.AND)||this.curTokenIs(ie.OR)||this.curTokenIs(ie.RPAREN)||this.curTokenIs(ie.EOF)||this.curToken.type===ie.IDENTIFIER&&["THEN","END","ELSE","NULLS","LIMIT","OFFSET","ORDER","GROUP","HAVING","UNION","WHERE"].includes(this.curToken.value.toUpperCase())){const t={};return t[e]={$eq:!0},t}const t=this.parseComparisonOp();if(this.curTokenIs(ie.LPAREN)&&this.peekTokenIs(ie.SELECT)){this.nextToken();const s=this.parseSelect();this.expect(ie.RPAREN);const n={};return n[e]={[t]:{$subquery:s}},n}let s;s=(this.curToken.type===ie.IDENTIFIER||this._isKeywordAsIdent())&&this.peekTokenIs(ie.DOT)?{$col:this.parseColumnRef()}:this.parseValue();const n={};return n[e]={[t]:s},n}parseExistsCondition(e){this.expect(ie.LPAREN);const t=this.parseSelect();return this.expect(ie.RPAREN),{$exists:{$subquery:t,$negate:e||void 0}}}_peekIsExists(){return this.peekToken.type===ie.EXISTS||this.peekToken.type===ie.IDENTIFIER&&"EXISTS"===this.peekToken.value.toUpperCase()}_isNotInOrLike(){return this.peekTokenIs(ie.IN)||this.peekTokenIs(ie.LIKE)}peekTokenIs(e){return this.peekToken.type===e}parseComparisonOp(){switch(this.curToken.type){case ie.EQ:return this.nextToken(),"$eq";case ie.NEQ:return this.nextToken(),"$ne";case ie.GT:return this.nextToken(),"$gt";case ie.GTE:return this.nextToken(),"$gte";case ie.LT:return this.nextToken(),"$lt";case ie.LTE:return this.nextToken(),"$lte";default:throw this.error(`Expected comparison operator, got "${this.curToken.value}"`)}}parseColumnList(){const e=[];for(e.push(this.parseColumnWithAlias());this.curTokenIs(ie.COMMA);)this.nextToken(),e.push(this.parseColumnWithAlias());return e}parseColumnWithAlias(){let e=this.parseColumnRef();if(this.curTokenIs(ie.AS))this.nextToken(),e=`${e} AS ${this.expectIdentifier("alias")}`;else if(this.curToken.type===ie.IDENTIFIER&&!this._isReservedAfterFrom()&&!this._isJoinKeyword()){const t=this.curToken.value;this.nextToken(),e=`${e} AS ${t}`}return e}parseColumnRef(){if(this.curTokenIs(ie.CASE))return this.parseCaseExpressionText();if(this.curTokenIs(ie.NUMBER)){const e=this.curToken.value;return this.nextToken(),e}if(this.curTokenIs(ie.STRING)){const e=this.curToken.value;return this.nextToken(),`'${e}'`}if(this.curTokenIs(ie.COUNT)||this.curTokenIs(ie.SUM)||this.curTokenIs(ie.AVG)||this.curTokenIs(ie.MIN)||this.curTokenIs(ie.MAX))return this.parseAggregateCall();const e=this.expectIdentifier("column name");return this.curTokenIs(ie.DOT)?(this.nextToken(),`${e}.${this.expectIdentifier("column name")}`):e}parseCaseExpressionText(){const e=this.curToken.position;this.nextToken();let t=1,s=e+4;for(;!this.curTokenIs(ie.EOF)&&t>0&&(this.curTokenIs(ie.CASE)&&t++,!this.curTokenIs(ie.END)||(t--,s=this.curToken.position+3,this.nextToken(),0!==t));)s=this.curToken.position+this.curToken.value.length,this.nextToken();let n=this.sql.slice(e,s);return this.curTokenIs(ie.AS)?(this.nextToken(),n+=` AS ${this.expectIdentifier("alias")}`):this.curToken.type!==ie.IDENTIFIER||this.curTokenIs(ie.COMMA)||this._isReservedAfterFrom()||(n+=` AS ${this.curToken.value}`,this.nextToken()),n}parseAggregateCall(){const e=this.curToken.value.toUpperCase();this.nextToken(),this.expect(ie.LPAREN);let t,s=!1;this.curTokenIs(ie.DISTINCT)&&(s=!0,this.nextToken()),this.curTokenIs(ie.STAR)?(t="*",this.nextToken()):t=this.parseColumnRef(),this.expect(ie.RPAREN);let n="";this.curTokenIs(ie.AS)?(this.nextToken(),n=this.expectIdentifier("alias")):this.curToken.type===ie.IDENTIFIER&&this._isAggregateAlias()&&(n=this.curToken.value,this.nextToken());const i=s?`DISTINCT ${t}`:t;return n?`${e}(${i}) AS ${n}`:`${e}(${i})`}_isAggregateAlias(){return!this._isReservedAfterFrom()&&!this._isJoinKeyword()}parseIdentifierList(){const e=[];for(e.push(this.parseIdentifierWithDot());this.curTokenIs(ie.COMMA);)this.nextToken(),e.push(this.parseIdentifierWithDot());return e}parseValueList(){const e=[];for(e.push(this.parseValue());this.curTokenIs(ie.COMMA);)this.nextToken(),e.push(this.parseValue());return e}parseOrderByList(){const e=[];for(e.push(this.parseOrderBy());this.curTokenIs(ie.COMMA);)this.nextToken(),e.push(this.parseOrderBy());return e}parseOrderBy(){const e=this.parseIdentifierWithDot();let t,s="asc";return this.curTokenIs(ie.ASC)?this.nextToken():this.curTokenIs(ie.DESC)&&(s="desc",this.nextToken()),this.curTokenIs(ie.IDENTIFIER)&&"NULLS"===this.curToken.value.toUpperCase()&&(this.nextToken(),this.curTokenIs(ie.IDENTIFIER)&&"FIRST"===this.curToken.value.toUpperCase()?(t="first",this.nextToken()):this.curTokenIs(ie.IDENTIFIER)&&"LAST"===this.curToken.value.toUpperCase()&&(t="last",this.nextToken())),{column:e,direction:s,...t?{nulls:t}:{}}}parseIdentifierWithDot(){const e=this.expectIdentifier("identifier");return this.curTokenIs(ie.DOT)?(this.nextToken(),`${e}.${this.expectIdentifier("identifier")}`):e}parseValue(){switch(this.curToken.type){case ie.STRING:{const e=this.curToken.value;return this.nextToken(),e}case ie.NUMBER:{const e=Number(this.curToken.value);return this.nextToken(),e}case ie.TRUE:return this.nextToken(),!0;case ie.FALSE:return this.nextToken(),!1;case ie.NULL:return this.nextToken(),null;default:throw this.error(`Expected value, got "${this.curToken.value}"`)}}nextToken(){this.curToken=this.peekToken,this.peekToken=this.lexer.nextToken()}curTokenIs(e){return this.curToken.type===e}expect(e){if(!this.curTokenIs(e))throw this.error(`Expected ${e}, got "${this.curToken.value}"`);this.nextToken()}expectIdentifier(e){if(this.curToken.type===ie.IDENTIFIER||this._isKeywordAsIdent()){const e=this.curToken.value;return this.nextToken(),e}throw this.error(`Expected ${e}, got "${this.curToken.value}"`)}_isKeywordAsIdent(){return this.curToken.type!==ie.EOF&&this.curToken.type!==ie.ILLEGAL&&this.curToken.type!==ie.STRING&&this.curToken.type!==ie.NUMBER&&this.curToken.type!==ie.COMMA&&this.curToken.type!==ie.LPAREN&&this.curToken.type!==ie.RPAREN&&this.curToken.type!==ie.SEMICOLON&&this.curToken.type!==ie.EQ&&this.curToken.type!==ie.NEQ&&this.curToken.type!==ie.GT&&this.curToken.type!==ie.GTE&&this.curToken.type!==ie.LT&&this.curToken.type!==ie.LTE&&this.curToken.type!==ie.DOT&&this.curToken.type!==ie.STAR}expectNumber(e){if(this.curToken.type===ie.NUMBER){const e=Number(this.curToken.value);return this.nextToken(),e}throw this.error(`Expected ${e}, got "${this.curToken.value}"`)}error(e){return new n(`Parse error at position ${this.curToken.position}: ${e}`,"PARSE_ERROR")}}function he(e){return new oe(e).parseAllStatements()}function ce(e){return new oe(e).parseWhere()}function le(e){const t=e.match(/^\s*CASE\s+([\s\S]*?)\s+END\s*(?:AS\s+(\w+))?\s*$/i);if(!t)return null;const s=t[1],n=t[2]??null,i=[],r=/WHEN\s+([\s\S]*?)\s+THEN\s+([\s\S]*?)(?=\s+WHEN\s+|\s+ELSE\s+|\s*$)/gi;let a;for(;null!==(a=r.exec(s));){let e=null;try{e=ce(a[1].trim())}catch{}i.push({cond:e,value:a[2].trim()})}let o=null;const h=s.match(/\sELSE\s+([\s\S]*)$/i);return h&&(o=h[1].trim()),{whens:i,elseValue:o,alias:n}}function ue(e,t){const s=e.trim();if("null"===s)return null;if("true"===s)return!0;if("false"===s)return!1;const n=Number(s);if(""!==s&&!isNaN(n))return n;const i=s.match(/^'(.*)'$/s)||s.match(/^"(.*)"$/s);return i?i[1]:/^[a-zA-Z_][a-zA-Z0-9_.]*$/.test(s)?t[s]??null:s}function fe(e,t){for(const{cond:s,value:n}of e.whens)if(s&&a(t,s))return ue(n,t);return null!==e.elseValue?ue(e.elseValue,t):null}class de{constructor(e,t=0){this.engine=e,this.maxRowsPerQuery=t}setMaxRowsPerQuery(e){this.maxRowsPerQuery=e}async execute(e){switch(e.type){case"SELECT":return this.executeSelect(e);case"SELECT_UNION":return this.executeSelectUnion(e);case"EXPLAIN":return this.executeExplain(e);case"INSERT":return this.executeInsert(e);case"UPDATE":return this.executeUpdate(e);case"DELETE":return this.executeDelete(e);case"CREATE_TABLE":return this.executeCreateTable(e);case"DROP_TABLE":return this.executeDropTable(e);case"ALTER_TABLE":return this.executeAlterTable(e);case"TRUNCATE_TABLE":return this.executeTruncateTable(e);case"CREATE_INDEX":return this.executeCreateIndex(e);case"DROP_INDEX":return this.executeDropIndex(e);case"BEGIN":return this.executeBegin();case"COMMIT":return this.executeCommit();case"ROLLBACK":return this.executeRollback();default:throw new n("Unknown statement type","UNKNOWN_STATEMENT")}}async executeSelectUnion(e){const t=await this.executeSelectPart(e.left),s=await this.executeSelectPart(e.right),n=t.length>0?Object.keys(t[0]):[],i=t.map(e=>e);if(e.all){for(const e of s)i.push(this.projectUnionRow(e,n));return i}const r=new Set,a=[];for(const e of i){const t=Object.values(e).map(e=>String(e??"\0")).join("");r.has(t)||(r.add(t),a.push(e))}for(const e of s){const t=this.projectUnionRow(e,n),s=Object.values(t).map(e=>String(e??"\0")).join("");r.has(s)||(r.add(s),a.push(t))}return a}async executeSelectPart(e){return"SELECT_UNION"===e.type?this.executeSelectUnion(e):this.executeSelect(e)}projectUnionRow(e,t){if(0===t.length)return e;const s=Object.values(e),n={};for(let e=0;e0),s=!t&&this._hasAggregateColumn(e.columns);let n;const i=!!(e.joins&&e.joins.length>0),r=this.hasCaseColumn(e.columns)||!!e.where&&this.whereHasCase(e.where),o=this.orderByUsesSelectAlias(e),h=e.columns.some(e=>/\s+AS\s+\w+$/i.test(e));if(e.fromSubquery){const t=await this.executeSelectPart(e.fromSubquery);n=i?await this.executeJoinSelect(e,t.map(t=>this.prefixRow(t,e.alias??""))):t,!i&&e.where&&Object.keys(e.where).length>0&&(e.where=await this.resolveSubqueries(e.where),n=n.filter(t=>a(t,e.where)))}else if(e.from||i)if(i)n=await this.executeJoinSelect(e);else{e.where&&Object.keys(e.where).length>0&&(e.where=this.normalizeWhereColumns(e.where,[e.alias??e.from]));const i=[e.alias??e.from].filter(Boolean);if(e.orderBy&&e.orderBy.length>0&&(e.orderBy=e.orderBy.map(e=>({...e,column:this.stripAlias(e.column,i)}))),e.groupBy&&e.groupBy.length>0&&(e.groupBy=e.groupBy.map(e=>this.stripAlias(e,i))),e.columns=e.columns.map(e=>{if("*"===e||/^(COUNT|SUM|AVG|MIN|MAX)\(/i.test(e)||/^\s*CASE\b/i.test(e)||/^'/.test(e))return e;const t=e.match(/^(.+?)\s+AS\s+(\w+)$/i);if(t){const s=this.stripAlias(t[1].trim(),i);return s===t[1].trim()?e:`${s} AS ${t[2]}`}return this.stripAlias(e,i)}),e.where&&this.hasCorrelatedRefs(e.where)){const i=ne(t||s?{...e,columns:["*"]}:e);i.columns=["*"],o&&(i.orderBy=void 0,i.limit=void 0,i.offset=void 0),n=await this.engine.find(i.table,{...i,where:this.stripCorrelatedExists(e.where)}),n=await this.filterCorrelated(n,e.where)}else{e.where&&Object.keys(e.where).length>0&&(e.where=await this.resolveSubqueries(e.where));const i=ne(t||s?{...e,columns:["*"]}:e);(r||h)&&(i.columns=["*"]),o&&(i.orderBy=void 0,i.limit=void 0,i.offset=void 0),n=await this.engine.find(i.table,i)}}else n=[{}];if(s&&(n=[this.computeSingleAggregate(n,e)]),t&&(n=this.executeGroupBy(n,e)),e.distinct&&(n=this.executeDistinct(n)),e.having&&Object.keys(e.having).length>0){e.having=await this.resolveSubqueries(e.having);const t=e._aggAliasMap;if(t&&t.size>0){const s={};for(const[n,i]of Object.entries(e.having))s[t.get(n)??n]=i;e.having=s}n=n.filter(t=>a(t,e.having))}e.orderBy&&e.orderBy.length>0&&(n=c(n,e.orderBy)),!t&&!s&&e.columns.length>0&&"*"!==e.columns[0]&&(n=n.map(t=>this.projectRow(t,e.columns))),o&&e.orderBy&&e.orderBy.length>0&&(n=c(n,e.orderBy));const l=e.offset??0,u=e.limit??n.length;return n=n.slice(l,l+u),this.maxRowsPerQuery>0&&n.length>this.maxRowsPerQuery&&(n=n.slice(0,this.maxRowsPerQuery)),n}async executeJoinSelect(e,t){const s=e.alias??e.from;let n;if(t)n=t;else{const{pushable:t}=this.extractPushableWhere(e.where??{},s);n=(await this.engine.find(e.from,{table:e.from,where:Object.keys(t).length>0?t:void 0})).map(e=>this.prefixRow(e,s))}let i=n;for(const t of e.joins){const e=t.alias??t.table,n=await this.tryHashJoin(i,t,e,s);if(n){i=n;continue}const r=(await this.engine.find(t.table,{table:t.table})).map(t=>this.prefixRow(t,e));i=this.joinRows(i,r,t)}return e.where&&Object.keys(e.where).length>0&&(this.hasCorrelatedRefs(e.where)?i=await this.filterCorrelated(i,e.where):(e.where=await this.resolveSubqueries(e.where),i=i.filter(t=>a(t,e.where)))),i}prefixRow(e,t){const s={};for(const[n,i]of Object.entries(e))s[`${t}.${n}`]=i;return s}extractPushableWhere(e,t){const s={};if(!t)return{pushable:s};const n=`${t}.`;for(const[t,i]of Object.entries(e))t.startsWith(n)&&("object"==typeof i&&null!==i&&("$col"in i||"$subquery"in i||"$and"in i||"$or"in i||"$not"in i)||(s[t.slice(n.length)]=i));return{pushable:s}}async tryHashJoin(e,t,s,n){if("CROSS"===t.type||"RIGHT"===t.type)return null;const i=[],r=e=>{for(const[t,s]of Object.entries(e)){if("$and"===t){if(!s.every(r))return!1;continue}if("$or"===t||"$not"===t)return!1;let e=null;if("object"==typeof s&&null!==s){const t=s;"$eq"in t&&"object"==typeof t.$eq&&null!==t.$eq&&"$col"in t.$eq?e=String(t.$eq.$col):"$col"in t&&1===Object.keys(t).length&&(e=String(t.$col))}if(!e)return!1;const a=!!n&&t.startsWith(`${n}.`);i.push({leftCol:a?t:e,rightCol:a?e:t})}return!0};if(!r(t.on))return null;if(0===i.length)return null;const a=await this.engine.getTableSchema(t.table);if(!a)return null;const o=i.find(e=>{const t=e.rightCol.split(".").pop(),s=a.columns[t];return s&&(s.primaryKey||s.index||s.unique)});if(!o)return null;const h=o.rightCol.split(".").pop(),c=Array.from(new Set(e.map(e=>e[o.leftCol]).filter(e=>null!=e)));if(0===c.length)return null;const l=await this.engine.find(t.table,{table:t.table,where:{[h]:{$in:c}}}),u=new Map;for(const e of l){const t=i.map(t=>String(e[t.rightCol.split(".").pop()]??"\0")).join("");u.has(t)||u.set(t,[]),u.get(t).push(e)}const f={};for(const e of Object.keys(a.columns))f[e]=null;const d=[];for(const n of e){const e=i.map(e=>String(n[e.leftCol]??"\0")).join(""),r=u.get(e);if(r&&r.length>0)for(const e of r)d.push({...n,...this.prefixRow(e,s)});else"LEFT"===t.type&&d.push({...n,...this.prefixRow(f,s)})}return d}joinRows(e,t,s){if("CROSS"===s.type){const s=[];for(const n of e)for(const e of t)s.push({...n,...e});return s}const n=[];for(const i of e){let e=!1;for(const r of t){const t={...i,...r};a(t,s.on,{$col:!0})&&(n.push(t),e=!0)}if(!e&&"LEFT"===s.type){const e={};for(const s of Object.keys(t[0]??{}))e[s]=null;n.push({...i,...e})}}if("RIGHT"===s.type)for(const i of t)if(!e.some(e=>a({...e,...i},s.on,{$col:!0}))){const t={};for(const s of Object.keys(e[0]??{}))t[s]=null;n.push({...t,...i})}return n}executeGroupBy(e,t){const s=new Map;for(const n of e){const e=t.groupBy.map(e=>String(n[e]??"null")).join("|");s.has(e)||s.set(e,[]),s.get(e).push(n)}const n=[],i=new Map;for(const e of s.values()){const s={};for(const n of t.groupBy)s[n]=e[0][n];for(const n of t.columns){if("*"===n)continue;const r=n.match(/^(COUNT|SUM|AVG|MIN|MAX)\((.+?)\)(?:\s+AS\s+(\w+))?$/i);if(r){const[,t,a,o]=r,h=this.computeAggregate(t.toUpperCase(),e,a.trim()),c=`${t.toUpperCase()}(${a.trim()})`,l=o||n;l!==c&&i.set(c,l),s[l]=h}else if(/^\s*CASE\b/i.test(n)){const t=le(n);s[t?.alias??n]=t?fe(t,e[0]):null}else t.groupBy.includes(n)||(s[n]=e[0][n])}n.push(s)}return t._aggAliasMap=i,n}computeAggregate(e,t,s){const n=/^\s*CASE\b/i.test(s)?le(s):null,i=!n&&/^\s*DISTINCT\s+/i.test(s),r=i?s.replace(/^\s*DISTINCT\s+/i,"").trim():s,a=t.map(e=>n?fe(n,e):e[r]).filter(e=>null!=e);if("COUNT"===e)return"*"===r?t.length:i?new Set(a.map(e=>"object"==typeof e?JSON.stringify(e):String(e))).size:a.length;const o=a.map(Number),h=i?Array.from(new Set(o)):o;switch(e){case"SUM":return h.reduce((e,t)=>e+t,0);case"AVG":return 0===h.length?0:h.reduce((e,t)=>e+t,0)/h.length;case"MIN":return 0===h.length?0:Math.min(...h);case"MAX":return 0===h.length?0:Math.max(...h);default:return 0}}executeDistinct(e){const t=new Set;return e.filter(e=>{const s=Object.values(e).map(e=>String(e??"\0")).join("");return!t.has(s)&&(t.add(s),!0)})}async executeInsert(e){const t=await this.engine.getTableSchema(e.into);if(!t)throw new n(`Table "${e.into}" does not exist`,"TABLE_NOT_FOUND");const s=e.columns??Object.keys(t.columns);if(e.select){const t=await this.executeSelectPart(e.select);let n=[];const i=e.select;if("SELECT"===i.type)if(i.columns&&i.columns.length>0&&"*"!==i.columns[0])n=i.columns.map(e=>e.split(".").pop());else if(i.from){const e=await this.engine.getTableSchema(i.from);n=e?Object.keys(e.columns):[]}0===n.length&&t.length>0&&(n=Object.keys(t[0]));const r=t.map(e=>{const t={};for(let i=0;i{const t={};for(let n=0;n/^\s*CASE\b/i.test(e))}orderByUsesSelectAlias(e){if(!e.orderBy||0===e.orderBy.length)return!1;const t=new Set;for(const s of e.columns){const e=s.match(/\s+AS\s+(\w+)$/i);if(e)t.add(e[1]);else if(/^\s*CASE\b/i.test(s)){const e=le(s);e?.alias&&t.add(e.alias)}}return 0!==t.size&&e.orderBy.some(e=>t.has(e.column))}whereHasCase(e){for(const[t,s]of Object.entries(e))if("$and"!==t&&"$or"!==t){if("$not"!==t){if(/^\s*CASE\b/i.test(t))return!0}else if(this.whereHasCase(s))return!0}else if(s.some(e=>this.whereHasCase(e)))return!0;return!1}getEngine(){return this.engine}projectRow(e,t){const s=[],n=[],i=[],r=[];for(const e of t){if("*"===e)continue;const t=le(e);if(t){i.push({alias:t.alias??e,expr:t});continue}const a=e.match(/^(.+?)\s+AS\s+(\w+)$/i);if(a){n.push({alias:a[2],source:a[1].trim()});continue}const o=e.match(/^'(.*)'$/s);if(o){const t=o[1].replace(/\\'/g,"'");r.push({key:e,value:t});continue}s.push(e)}const a=s.length>0?u(e,s):{};for(const{alias:t,source:s}of n)if("*"===s)Object.assign(a,e);else{const n=s.match(/^'(.*)'$/s);a[t]=n?n[1].replace(/\\'/g,"'"):e[s]}for(const{key:e,value:t}of r)a[e]=t;for(const{alias:t,expr:s}of i)a[t]=fe(s,e);return a}_hasAggregateColumn(e){return e.some(e=>/^(COUNT|SUM|AVG|MIN|MAX)\(/i.test(e))}computeSingleAggregate(e,t){const s={};for(const n of t.columns){if("*"===n)continue;const t=n.match(/^(COUNT|SUM|AVG|MIN|MAX)\((.+?)\)(?:\s+AS\s+(\w+))?$/i);if(t){const[,i,r,a]=t;s[a||n]=this.computeAggregate(i.toUpperCase(),e,r.trim())}else s[n]=e.length>0?e[0][n]:null}return s}normalizeWhereColumns(e,t){const s={};for(const[n,i]of Object.entries(e))"$and"!==n&&"$or"!==n?"$not"!==n?"$exists"!==n?s[this.stripAlias(n,t)]=this.normalizeFieldValue(i,t):s[n]=this.normalizeExistsValue(i,t):s.$not=this.normalizeWhereColumns(i,t):s[n]=i.map(e=>this.normalizeWhereColumns(e,t));return s}normalizeExistsValue(e,t){if("object"!=typeof e||null===e)return e;const s=e;if(s.$subquery){const e=s.$subquery,n=[e.alias??e.from,...t].filter(Boolean);return{...s,$subquery:{...e,where:this.normalizeWhereColumns(e.where,n)}}}return e}normalizeFieldValue(e,t){if("object"!=typeof e||null===e||Array.isArray(e))return e;const s={};for(const[n,i]of Object.entries(e))"$and"===n||"$or"===n?s[n]=i.map(e=>this.normalizeWhereColumns(e,t)):"$not"===n&&"object"==typeof i&&null!==i?s[n]=this.normalizeFieldValue(i,t):"$col"===n?s[n]=this.stripAlias(String(i),t):"object"==typeof i&&null!==i&&!Array.isArray(i)&&"$col"in i?s[n]={$col:this.stripAlias(String(i.$col),t)}:s[n]=i;return s}stripAlias(e,t){for(const s of t){if(!s)continue;const t=`${s}.`;if(e.startsWith(t))return e.slice(t.length)}return e}hasCorrelatedRefs(e){for(const[t,s]of Object.entries(e))if("$and"!==t&&"$or"!==t){if("$not"!==t){if("$exists"!==t){if(/^\s*CASE\b/i.test(t))return!0;if(this.fieldHasColRef(s))return!0}else if("object"==typeof s&&null!==s&&"$subquery"in s)return!0}else if(this.hasCorrelatedRefs(s))return!0}else if(s.some(e=>this.hasCorrelatedRefs(e)))return!0;return!1}fieldHasColRef(e){if("object"!=typeof e||null===e||Array.isArray(e))return!1;const t=e;if("$col"in t)return!0;if("$and"in t||"$or"in t)return(t.$and??t.$or).some(e=>this.hasCorrelatedRefs(e));if("$not"in t&&"object"==typeof t.$not&&null!==t.$not)return this.fieldHasColRef(t.$not);for(const[,e]of Object.entries(t))if("object"==typeof e&&null!==e&&!Array.isArray(e)){if("$col"in e)return!0;if(this.fieldHasColRef(e))return!0}return!1}stripCorrelatedExists(e){const t={};for(const[s,n]of Object.entries(e))if("$and"!==s&&"$or"!==s){if("$not"===s){const e=this.stripCorrelatedExists(n);Object.keys(e).length>0&&(t.$not=e);continue}"$exists"!==s&&(/^\s*CASE\b/i.test(s)||(t[s]=n))}else t[s]=n.map(e=>this.stripCorrelatedExists(e));return t}async filterCorrelated(e,t){const s=[];for(const n of e){let e=this.resolveCaseKeys(t,n);e=await this.resolveSubqueries(e,n),a(n,e)&&s.push(n)}return s}resolveCaseKeys(e,t){const s={};for(const[n,i]of Object.entries(e))if("$and"!==n&&"$or"!==n)if("$not"!==n){if(/^\s*CASE\b/i.test(n)){const e=le(n);if(!e)continue;const r=fe(e,t);if(!this.caseConditionMatches(r,i))return{$caseResult:!1};s.$caseResult=!0;continue}s[n]=i}else s.$not=this.resolveCaseKeys(i,t);else s[n]=i.map(e=>this.resolveCaseKeys(e,t));return s}caseConditionMatches(e,t){if("object"!=typeof t||null===t||Array.isArray(t))return e===t;const s=t;for(const[t,n]of Object.entries(s))switch(t){case"$eq":if(e!==n)return!1;break;case"$ne":if(e===n)return!1;break;case"$gt":if(!(e>n))return!1;break;case"$gte":if(!(e>=n))return!1;break;case"$lt":if(!(ethis.bindWhereRefs(e,t)):"$not"===n&&"object"==typeof i&&null!==i?s[n]=this.bindColumnRefs(i,t):"object"==typeof i&&null!==i&&!Array.isArray(i)&&"$col"in i?s[n]=t[String(i.$col)]??null:s[n]=i;return s}bindWhereRefs(e,t){const s={};for(const[n,i]of Object.entries(e))"$and"===n||"$or"===n?s[n]=i.map(e=>this.bindWhereRefs(e,t)):"$not"===n?s.$not=this.bindWhereRefs(i,t):s[n]="$exists"===n?i:this.bindColumnRefs(i,t);return s}async resolveSubqueries(e,t){t&&(e=this.bindWhereRefs(e,t));const s={};for(const[n,i]of Object.entries(e)){if("$exists"===n&&"object"==typeof i&&null!==i){const e=i,n=e.$subquery,r=!!e.$negate;let a=n.where;this.hasCorrelatedRefs(a)&&(a=this.bindWhereRefs(a,t??{}));const o=await this.executeSelectPart({...n,where:a});s.$exists=o.length>0!==r;continue}"$and"===n&&Array.isArray(i)?s.$and=await Promise.all(i.map(e=>this.resolveSubqueries(e,t))):"$or"===n&&Array.isArray(i)?s.$or=await Promise.all(i.map(e=>this.resolveSubqueries(e,t))):"$not"!==n||"object"!=typeof i||null===i?s[n]="object"==typeof i&&null!==i?await this.resolveOperatorSubqueries(i):i:s.$not=await this.resolveSubqueries(i,t)}return s}async resolveOperatorSubqueries(e){const t={};for(const[s,n]of Object.entries(e))if("$and"===s&&Array.isArray(n))t.$and=await Promise.all(n.map(e=>this.resolveSubqueries(e)));else if("$or"===s&&Array.isArray(n))t.$or=await Promise.all(n.map(e=>this.resolveSubqueries(e)));else if("$not"!==s)if("object"==typeof n&&null!==n&&"$subquery"in n){const e=n.$subquery,i=await this.executeSelect(e);if("$in"===s||"$nin"===s){const e=Object.keys(i[0]||{})[0],n=i.map(t=>t[e]);t[s]=n}else if(0===i.length)t[s]=null;else{const e=Object.keys(i[0])[0];t[s]=i[0][e]}}else t[s]=n;else t.$not="object"==typeof n&&null!==n?await this.resolveOperatorSubqueries(n):n;return t}}class me{constructor(e){this.tables=new Map,this.completed=!1,this.engine=e}table(e){let t=this.tables.get(e);return t||(t=new se(this.engine,e),this.tables.set(e,t)),t}_markCompleted(){this.completed=!0}isCompleted(){return this.completed}}class pe{constructor(e){this.engine=e}async execute(e){const t=new me(this.engine);await this.engine.beginTransaction();try{const s=await e(t);return await this.engine.commitTransaction(),t._markCompleted(),s}catch(e){if(await this.engine.rollbackTransaction(),e instanceof n)throw e;throw new n(`Transaction failed: ${e.message}`,"TRANSACTION_ERROR",e)}}}class ye{constructor(){this.plugins=[],this.hooks=new Map}register(e,t){const s=e.priority??0,n=this.plugins.findIndex(e=>(e.priority??0)t.name===e);-1!==t&&(this.plugins[t].destroy(),this.plugins.splice(t,1))}getPlugins(){return[...this.plugins]}on(e,t){const s=this.hooks.get(e)??[];s.push(t),this.hooks.set(e,s)}off(e,t){const s=this.hooks.get(e);if(s){const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}async trigger(e,...t){const s=this.hooks.get(e);if(s)for(const e of s)await e(...t)}destroy(){for(const e of this.plugins)try{e.destroy()}catch(e){}this.plugins=[],this.hooks.clear()}}class ge{get version(){return this._version}get maxRowsPerQuery(){return this.config.maxRowsPerQuery??0}get debug(){return this.config.debug??!1}constructor(e){this.ready=!1,this.tableCache=new Map,this.channel=null,this.listeners=new Map,this.migrations=new Map,this.config=e,this.name=e.name??s.name,this.mode=e.mode??s.mode,this._version=e.version??s.version,this.pluginManager=new ye,e.multiTabSync&&"undefined"!=typeof BroadcastChannel&&(this.channel=new BroadcastChannel(`metona-sqlark:${this.name}`),this.channel.onmessage=e=>{const t=e.data;t&&"change"===t.type&&(this.emit(t.table??"",{type:"external",table:t.table??""}),this.engine instanceof Y&&this.engine.reloadMemoryFromDisk().catch(()=>{}))})}async init(){if(this.engine=this.createEngine(),await this.engine.open(this.name,this.version),"function"==typeof this.engine.getMeta)try{const e=await this.engine.getMeta("__metona_version");null!=e&&Number(e)>=1&&(this._version=Math.max(this._version,Math.floor(Number(e))))}catch{}if(this.executor=new de(this.engine,this.maxRowsPerQuery),this.transactionManager=new pe(this.engine),this.config.plugins)for(const e of this.config.plugins)this.pluginManager.register(e,this);this.ready=!0,this.config.onReady&&this.config.onReady(this)}isReady(){return this.ready}async defineTable(e,t){this.ensureReady();const s=y(e,t);try{await this.pluginManager.trigger("beforeCreateTable",s),await this.engine.createTable(s),await this.pluginManager.trigger("afterCreateTable",s)}catch(e){throw this._onError(e),e}this.tableCache.delete(e)}table(e){this.ensureReady();let t=this.tableCache.get(e);return t||(t=new se(this.engine,e,this.executor,e=>this.broadcastChange(e)),this.tableCache.set(e,t)),t}async dropTable(e){this.ensureReady();try{await this.pluginManager.trigger("beforeDropTable",e),await this.engine.dropTable(e),await this.pluginManager.trigger("afterDropTable",e)}catch(e){throw this._onError(e),e}this.tableCache.delete(e)}async getTableNames(){return this.ensureReady(),this.engine.getTableNames()}async query(e){this.ensureReady();const t=this.debug?Date.now():0;let s;await this.pluginManager.trigger("beforeQuery",e);try{const t=he(e);for(const e of t){s=await this.executor.execute(e);const t=this.writeStatementTable(e);t&&this.broadcastChange(t)}}catch(e){throw this._onError(e),e}if(await this.pluginManager.trigger("afterQuery",e,s),this.debug){const n=Date.now()-t,i=Array.isArray(s)?s.length:0;this._debug(`query [${n}ms] ${i} rows: ${e.slice(0,100)}`)}return s}async queryStream(e,t){this.ensureReady();const s=he(e)[0];if(!s||"SELECT"!==s.type)throw new n("queryStream only supports SELECT statements","NOT_SUPPORTED");const i=s,r=i.columns.some(e=>/^(COUNT|SUM|AVG|MIN|MAX)\(/i.test(e));if(!(i.joins||i.groupBy||i.having||i.distinct||r||i.orderBy&&i.orderBy.length>0||i.where&&void 0!==i.where.$exists)&&"function"==typeof this.engine.findStream&&"AsyncFunction"!==t.constructor?.name){const e=this.normalizeWhereForStream(i),s=i.columns.filter(e=>!/\s+AS\s+\w+$/i.test(e));return this.engine.findStream(i.from,{table:i.from,columns:s.length>0&&"*"!==s[0]?s:["*"],where:e&&Object.keys(e).length>0?e:void 0,limit:i.limit,offset:i.offset},t)}const a=await this.query(e);if(Array.isArray(a)){for(const e of a)await t(e);return a.length}return 0}normalizeWhereForStream(e){const t=[e.alias??e.from].filter(Boolean),s=e=>{for(const s of t)if(e.startsWith(`${s}.`))return e.slice(s.length+1);return e},n=e=>{const t={};for(const[i,r]of Object.entries(e))"$and"===i||"$or"===i?t[i]=r.map(n):"$not"===i&&"object"==typeof r&&null!==r?t.$not=n(r):t[s(i)]=r;return t};return n(e.where??{})}async transaction(e){this.ensureReady(),await this.pluginManager.trigger("beforeTransaction");try{const t=await this.transactionManager.execute(e);return await this.pluginManager.trigger("afterTransaction"),t}catch(e){throw this._onError(e),e}}async exportTable(e){return this.ensureReady(),this.engine.find(e,{table:e})}async importTable(e,t){this.ensureReady();try{return await this.engine.insert(e,t)}catch(e){throw this._onError(e),e}}async exportAll(){this.ensureReady();const e={},t=await this.engine.getTableNames();for(const s of t)e[s]=await this.engine.find(s,{table:s});return e}subscribe(e,t){const s=`change:${e}`;return this.listeners.has(s)||this.listeners.set(s,new Set),this.listeners.get(s).add(t),()=>this.listeners.get(s)?.delete(t)}emit(e,t){const s=`change:${e}`;this.listeners.get(s)?.forEach(e=>e(t))}broadcastChange(e){if(this.channel)try{this.channel.postMessage({type:"change",table:e})}catch{}}writeStatementTable(e){switch(e.type){case"INSERT":return e.into;case"UPDATE":case"CREATE_INDEX":case"DROP_INDEX":return e.table;case"DELETE":return e.from;case"CREATE_TABLE":case"DROP_TABLE":case"TRUNCATE_TABLE":case"ALTER_TABLE":return e.name;default:return null}}addMigration(e,t){this.migrations.set(e,t)}async migrateTo(e){this.ensureReady();for(const[t,s]of[...this.migrations.entries()].sort((e,t)=>e[0]-t[0]))t<=e&&t>this._version&&(await s(this),this._version=t);if("function"==typeof this.engine.setMeta)try{await this.engine.setMeta("__metona_version",String(this._version))}catch{}}async repair(){if(this.ensureReady(),"function"==typeof this.engine.repair)return await this.engine.repair(),void this.tableCache.clear();this.tableCache.clear()}async clearAll(){if(this.ensureReady(),"function"==typeof this.engine.clearAll)await this.engine.clearAll();else{const e=await this.engine.getTableNames();for(const t of e)await this.engine.dropTable(t)}this.tableCache.clear()}getPluginManager(){return this.pluginManager}on(e,t){this.pluginManager.on(e,t)}async close(){this.channel&&(this.channel.close(),this.channel=null),this.pluginManager.destroy(),await this.engine.close(),this.tableCache.clear(),this.ready=!1}getEngine(){return this.engine}createEngine(){const e=this.mode,t=this.config.diskEngine??"indexeddb";switch(e){case"memory":return new f;case"disk":return"opfs"===t?new p:new d;case"aria":return new Q({storageBackend:"opfs"===t?"opfs":"indexeddb"});case"hybrid":return new Y(t);default:throw new n(`Unknown storage mode: ${e}`,"CONFIG_ERROR")}}ensureReady(){if(!this.ready)throw new n("Database not initialized. Call await db.init() first.","DB_NOT_READY")}_onError(e){if(this.config.onError)try{this.config.onError(e)}catch{}}_debug(e,...t){this.debug}}const be=new class{constructor(){this.connections=new Map,this.refCount=new Map}async connect(e){const t=e.name,s=this.connections.get(t);if(s&&s.isReady()){const e=(this.refCount.get(t)??0)+1;return this.refCount.set(t,e),s}const n=new ge(e);return await n.init(),this.connections.set(t,n),this.refCount.set(t,1),n.disconnect=async()=>{await this.release(t)},n}async release(e){const t=(this.refCount.get(e)??1)-1;if(t<=0){const t=this.connections.get(e);t&&(await t.close(),this.connections.delete(e)),this.refCount.delete(e)}else this.refCount.set(e,t)}async forceClose(e){const t=this.connections.get(e);t&&(await t.close(),this.connections.delete(e)),this.refCount.delete(e)}async closeAll(){for(const[,e]of this.connections)try{await e.close()}catch{}this.connections.clear(),this.refCount.clear()}getActiveConnections(){return Array.from(this.connections.keys())}getRefCount(e){return this.refCount.get(e)??0}},we=ge;async function Te(e){const t=new ge(e);return await t.init(),t}we.connect=e=>be.connect(e),we.disconnect=e=>be.release(e),we.disconnectAll=()=>be.closeAll(),we.getActiveConnections=()=>be.getActiveConnections();const Ee={VERSION:i,version:i,create:Te,MetonaSqlark:ge,MeSqlark:ge};"undefined"!=typeof window&&(window.MetonaSqlark=Ee,window.MeSqlark=Ee);const Se=ge;e.AriaEngine=Q,e.HybridEngine=Y,e.IndexedDBEngine=d,e.MeSqlark=Se,e.MemoryEngine=f,e.MetonaSqlark=ge,e.OPFSBackend=F,e.OPFSEngine=p,e.Table=se,e.VERSION=i,e.api=Ee,e.create=Te,e.default=Ee,e.parse=function(e){return new oe(e).parseStatement()},e.parseAll=he,e.tokenize=function(e){const t=new ae(e),s=[];let n=t.nextToken();for(;n.type!==ie.EOF;)s.push(n),n=t.nextToken();return s.push(n),s},Object.defineProperty(e,"__esModule",{value:!0})}); diff --git a/package.json b/package.json index 06d690b..f809708 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@metona-team/metona-sqlark", - "version": "0.4.1", + "version": "0.4.2", "description": "Frontend SQL database with in-memory and disk dual-mode storage", "type": "module", "main": "dist/metona-sqlark.cjs", diff --git a/site/benchmark.html b/site/benchmark.html index c19d749..11fdc83 100644 --- a/site/benchmark.html +++ b/site/benchmark.html @@ -3,7 +3,7 @@ -⚡ 性能基准 — MetonaSqlark v0.4.1 +⚡ 性能基准 — MetonaSqlark v0.4.2