SQLite 3.31.0 發布世界上使用量最大的數據庫引擎
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 頭文件中的錯字。