我怎样才能找到我的sqlite副本是用什么扩展构建的?

uinbv5nw  于 2023-08-06  发布在  SQLite
关注(0)|答案(1)|浏览(123)

我有一个涉及sqlite3的脚本,它在一个系统上运行良好,但在另一个系统上出现故障,抱怨SQL语法。语法依赖于sqlite JSON扩展,所以我怀疑出现故障的sqlite只是没有编译支持此扩展。(它来自Linux发行版;如果真的有必要,我会追查软件包的来源。)我如何证实或否认这种预感?sqlite3 -version不提供此信息,不幸的是。
附加问题:似乎sqlite退出状态0后,即使它抱怨这些错误!这导致我丢失了大量数据(因为脚本愉快地进行了清理阶段)。这不是bug吗?

j8ag8udp

j8ag8udp1#

JSON函数和运算符默认内置到SQLite中,自SQLite版本3.38.0(2022-02-22)起。
可以通过添加-DSQLITE_OMIT_JSON编译时选项来省略它们。在3.38.0版本之前,JSON函数是一个扩展,只有在包含-DSQLITE_ENABLE_JSON1编译时选项的情况下才会包含在构建中。换句话说,JSON函数从SQLite版本3.37.2和更早版本的选择加入到SQLite版本3.38.0和更高版本的选择退出。

相关问题