SQLite 3.38.0 現(xiàn)已正式發(fā)布
本月 22 日,SQLite 3.38.0 正式發(fā)布。
SQLite 是一個(gè)小型、快速、自包含、高可靠性、全功能的嵌入式 SQL 數(shù)據(jù)庫(kù)引擎,是世界上使用量最大的數(shù)據(jù)庫(kù)引擎。
主要更新內(nèi)容
添加了?->?和?->> 運(yùn)算符以便于處理 JSON。新的運(yùn)算符與 MySQL 和 PostgreSQL 兼容。
JSON 函數(shù)現(xiàn)在是內(nèi)置的。不再需要使用?-DSQLITE_ENABLE_JSON1?編譯時(shí)選項(xiàng)來啟用 JSON 支持。默認(rèn)情況下啟用 JSON。使用新的?-DSQLITE_OMIT_JSON?編譯時(shí)選項(xiàng)禁用 JSON 接口。?
日期和時(shí)間功能的增強(qiáng):?
添加了?unixepoch() 函數(shù)。
添加了?auto 修飾符和?julianday 修飾符。
將?printf() SQL 函數(shù)重命名為?format()?以獲得更好的兼容性。保留原始?printf() 名稱作為別名以實(shí)現(xiàn)向后兼容性。?
添加了?sqlite3_error_offset() 接口,該接口有時(shí)可以幫助將 SQL error 本地化為輸入 SQL 文本中的特定字符,以便應(yīng)用程序可以提供更好的錯(cuò)誤消息。
增強(qiáng)了?virtual tables?的接口如下:?
添加了?sqlite3_vtab_distinct() 接口。?
添加了?sqlite3_vtab_rhs_value() 接口。?
添加了新的 operator 類型?SQLITE_INDEX_CONSTRAINT_LIMIT?和?SQLITE_INDEX_CONSTRAINT_OFFSET。?
添加了?sqlite3_vtab_in()?接口(及相關(guān)接口)以使虛擬表能夠一次處理所有 IN operator 約束,而不是單獨(dú)處理 IN operator 右側(cè)的每個(gè)值。
CLI 增強(qiáng)功能:?
Columnar output modes?得到增強(qiáng),可以正確處理嵌入在文本中的制表符和換行符。
向?Columnar output modes?添加了“--wrap N”、“--wordwrap on”和“--quote”等選項(xiàng)。?
添加了?.mode qbox?別名。
.import 命令自動(dòng)消除列名的歧義。?
使用新的?sqlite3_error_offset()?接口提供更好的錯(cuò)誤消息。?
Query planner 增強(qiáng)功能:
使用 Bloom filter 來加速大型分析查詢。?
使用 balanced merge tree 來評(píng)估具有 ORDER BY 子句的 UNION 或 UNION ALL 復(fù)合 SELECT 語句。?
改變了?ALTER TABLE?語句,當(dāng)?PRAGMA writable_schema=ON?時(shí),靜默忽略?sqlite_schema table?中沒有解析的條目。

