SQLite 3.33.0 發布了,SQLite 是一個 C 實現的 SQL 數據庫引擎,它的特點是小型、快速、自包含、高可靠性和功能齊全。SQLite 嵌入在所有手機和大多數計算機中,也捆綁在為數眾多的其它應用中,是世界上使用量最大的數據庫引擎。
此版本更新內容包括:
1.支持遵循 PostgreSQL 語法的 UPDATE FROM:
UPDATE-FROM 的想法是對 SQL 的擴展,它允許 UPDATE 語句由數據庫中的其他表驅動。使用 UPDATE-FROM,可以將目標表與數據庫中的其他表連接起來,以幫助計算需要更新的行以及這些行上的新值。
2.將數據庫文件的最大大小增加到 281 TB。
3.擴展了 PRAGMA integrity_check 語句,以便可以選擇將其限制為僅驗證單個表及其索引,而不是驗證整個數據庫文件。
4.添加了用于執行任意精度十進制算術的十進制擴展名。
5.增強 ieee754 擴展,以使用 IEEE 754 binary64 數字。
6.CLI 增強功能:
添加了四個新的輸出模式:“box”、“json”、“markdown” 和 “table”。
“column”輸出模式會自動擴展列以包含最長的輸出行,如果之前未設置,則自動打開 “.header”。
“quote”輸出模式支持 “.separator”。
CLI 內置了十進制擴展名和 ieee754 擴展名。
7.改進 Query planner:
添加了使用 INDEXED BY 查找查詢的全索引掃描(full-index-scan)查詢計劃的功能,該計劃以前會因 “無查詢解決方案”而失敗。
盡管存在錯誤信息,但可以更好地檢測丟失,不完整和 / 或不可靠的 sqlite_stat1 數據,并生成良好的查詢計劃。
提高了查詢性能,例如 “SELECT min(x) FROM t WHERE y IN (?,?,?)”(假設在 t(x,y) 上具有索引)。
8.在 WAL 模式下,如果寫入器崩潰并使 shm 文件處于不一致狀態,則即使存在活動的讀取事務,后續事務現在也可以恢復 shm 文件。在此版本之前,該情況下的 shm 文件恢復將導致 SQLITE_PROTOCOL 錯誤。