Repository navigation
MoonSQLiteFile v0.2.0
v0.2.0 补齐 SQLite 索引与 WITHOUT ROWID 表的原始记录读取,并增加有界逐条扫描和宿主静态数据源接口。
主要更新
- 统一四类 B-tree 遍历,读取索引内部页记录,支持 WITHOUT ROWID 表的磁盘存储记录。
- 新增
BTreeRecord、read_btree、table_records、index_records和scan_btree;扫描支持回调提前停止,并区分完整、记录上限和主动停止。 - 增加累计 payload 和跨 B-tree/overflow 页预算,拒绝重复占页。
- 新增同步
PageSource与open_source,供宿主按需读取同一份静态快照;保留open_database(Bytes)和普通 rowid 表 API。 - JSON CLI 新增
records、index、scan命令。
升级说明
扫描现在累计限制 payload 与 B-tree/overflow 页数;超预算或重复占页的输入会被拒绝。需要调整预算时,请参考本版本资源边界与扫描完成状态。PageSource 必须在整个读取期间保持静态快照;WITHOUT ROWID 表请改用 table_records 读取原始存储记录。
安装
moon add prowk/moonsqlitefile@0.2.0验证
- Wasm、WasmGC、JavaScript、native 四后端各 42 项测试通过,包含 192 次确定性字节变更回归扫描。
- SQLite 对照通过:1063 行普通表数据、4407 条索引及 WITHOUT ROWID 原始记录。
- 独立打包消费验证通过,包含第三方
PageSource实现。 - 发布 tag 指向
a8a324a6c7780abd71ebc7d8b51512a5298e6f0f,其GitHub CI 全部通过。
使用边界
只读静态 SQLite 3 数据库文件,不执行 SQL、不写数据库、不合并 WAL、不恢复删除记录。返回磁盘字段顺序和存储值,不推断 SQL 列映射;索引排序、collation 和全局页归属报告尚未实现。同步 PageSource 使用 Int 偏移,不提供异步 I/O 或快照获取协议;扫描完成不等同于 SQLite integrity_check。