SQLite 是一個 C 實現的 SQL 數據庫引擎,它的特點是小型、快速、自包含、高可靠性和功能齊全。SQLite 嵌入在所有手機和大多數計算機中,也捆綁在為數眾多的其它應用中,是世界上使用量最大的數據庫引擎。作為 2020 年的第一個大版本,SQLite 3.31.0 已完成發布,該版本主要功能之一是對生成/計算列的支持。具體更新內容如下:
-
添加對生成列的支持。
-
添加 sqlite3_hard_heap_limit64() 接口和相應的 PRAGMA hard_heap_limit 命令。
-
增強 function_list pragma 以顯示每個函數的參數數量,函數的類型(標量,集合,窗口)以及函數屬性標志 SQLITE_DETERMINISTIC,SQLITE_DIRECTONLY, SQLITE_INNOCUOUS 和/或 SQLITE_SUBTYPE。
-
將 aggregated mode 功能添加到 DBSTAT 虛擬表中。
-
將 SQLITE_OPEN_NOFOLLOW 選項添加到 sqlite3_open_v2() 可以防止 SQLite 打開符號鏈接。
-
為 JSON 函數路徑參數添加了「#-N」數組符號。
-
添加了 SQLITE_DBCONFIG_TRUSTED_SCHEMA 連接設置,該設置也可以通過新的 Trusted_schema pragma 在編譯時使用 -DSQLITE_TRUSTED_SCHEMA 編譯時選項進行控制。
-
添加了對專用擴展有用的 API sqlite3_filename_database(),sqlite3_filename_journal() 和 sqlite3_filename_wal()。
-
添加 sqlite3_uri_key() 接口。
-
升級了 sqlite3_uri_parameter() 函數,以便除了數據庫文件名之外,還可以與回滾日誌或 WAL 文件名一起使用。
-
提供使用新屬性SQLITE_INNOCUOUS或SQLITE_DIRECTONLY標記應用程序定義的 SQL 函數的功能。
-
向 sqlite3_vtab_config() 添加新動詞,以便虛擬表的 xConnect 方法可以將虛擬表聲明為 SQLITE_VTAB_INNOCUOUS 或 SQLITE_VTAB_DIRECTONLY。
-
對 sqlite3_interrupt()的響應速度更快。
-
添加了 uuid.c 擴展模塊,該模塊實現了用於處理 RFC-4122 UUID 的功能。
-
所述後備存儲器分配器被增強以支持與在每個池中不同尺寸的分配兩個單獨的記憶體池。這樣一來,更多的記憶體分配將被後備覆蓋,同時將每個連接的堆記憶體使用量從 120KB 減少到 48KB。
-
legacy_file_format pragma 被停用,現在是 no-op。在其位置,提供了 sqlite3_db_config() 的 SQLITE_DBCONFIG_LEGACY_FILE_FORMAT 選項。停用legacy_file_format pragma 指示是因為它很少有用,並且在具有既具有生成列又具有降序索引的表的模式中,它與 VACUUM 不兼容。
更多更改詳情可查閱發布說明。
此外,緊接 3.31.0 之後,SQLite 3.31.1 也已完成發布。其更新內容包括有:恢復僅供內部使用的 SQLite 數據結構的數據布局,以及修復了 sqlite3ext.h 頭文件中的錯字。
來源:cnBeta