本页简要介绍任何可能破坏客户端代码的 API 变更。
SQLite JavaScript API 努力保持与 C API 相同的强大向后兼容性保证,但最早发布的 JS API 明确是“beta”/“技术预览”版本,可能会发生变化。
在正式版本之间引入的 API 可能以多种方式更改,但一旦 API 通过正式版本发布,将尽一切努力保留它,除了最终证明存在严重缺陷的 API(一个显着的例子是 sqlite3_js_vfs_create_file()
)。但是,JS API 并不罕见地采用新的语义,例如,新的参数组合和类型,同时保留其自身的语义。
以下是已知重大变更的列表,最新变更排在最前面...
2022-12-25
- 传递给
sqlite3_exec()
的 JS 函数签名已简化,以删除对 JS 多余的参数。可以通过手动安装回调并将它的指针(而不是函数对象)传递给sqlite3_exec()
,从 JS 中使用“完整”形式。
2022-12-14
oo1.DB.exec()
的rowMode
选项 以前接受"$X"
、"@X"
或":X"
形式的列名称引用。后两者已被删除,因为它们是多余的,并且存在不必要的变体似乎可能会导致混淆。
2012-12-09
重命名了
sqlite3.wasm
命名空间 的几个常用方法,但保留了旧名称作为别名setMemValue()
→poke()
setPtrValue()
→pokePtr()
getMemValue()
→peek()
getPtrValue()
→peekPtr()
peek 和 poke 的名称在 维基百科 上有详细解释。peekPtr()
和pokePtr()
只是少了一个参数的便捷形式。
wasm.poke()
和wasm.pokePtr()
的返回值语义已更改。它们现在返回this
,而不是返回函数本身。它们现在还接受地址数组,但这并非潜在的破坏性更改。
2022-12-06
sqlite3.wasm.cstringToJs()
已重命名为cstrToJs()
以保持一致性。
2022-11-30
sqlite3.wasm.alloc()
现在代理sqlite3_malloc()
(以前为malloc()
),sqlite3.wasm.dealloc()
现在代理sqlite3_free()
(以前为free()
)。预计不会有客户端受到此更改的影响,除非他们将sqlite3.wasm
链接到更大的应用程序。此更改消除了一些客户端侧在如何管理 JS 侧 WASM 内存方面的不一致性,最显着的是通过sqlite3_deserialize()
和虚拟表接口的某些部分。
2022-11-29
sqlite3.opfs.OpfsDb
已重命名为sqlite3.oo1.OpfsDb
,以与其他oo1.DB
子类保持一致。旧名称将在一段时间内可用,但将在 3.41 版本中删除。(更新:已于 2022-12-06 删除。)