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