SQLite 3.38.0 現已正式釋出

snakesss發表於2022-03-02

本月 22 日,SQLite 3.38.0正式釋出。

SQLite 是一個小型、快速、自包含、高可靠性、全功能的嵌入式 SQL 資料庫引擎,是世界上使用量最大的資料庫引擎。

主要更新內容

  • 新增了->和->\> 運算子以便於處理 JSON。新的運算子與 MySQL 和 PostgreSQL 相容。
  • JSON 函式現在是內建的。不再需要使用-DSQLITE\_ENABLE\_JSON1編譯時選項來啟用 JSON 支援。預設情況下啟用 JSON。使用新的-DSQLITE\_OMIT\_JSON編譯時選項禁用 JSON介面。 
  • 日期和時間功能的增強: 

    • 新增了unixepoch() 函式。
    • 新增了auto 修飾符和julianday 修飾符。
  • 將printf() SQL 函式重新命名為format()以獲得更好的相容性。保留原始printf() 名稱作為別名以實現向後相容性。 
  • 新增了sqlite3\_error\_offset() 介面,該介面有時可以幫助將 SQL error 本地化為輸入 SQL 文字中的特定字元,以便應用程式可以提供更好的錯誤訊息。
  • 增強了virtual tables的介面如下: 

    • 新增了sqlite3\_vtab\_distinct() 介面。 
    • 新增了sqlite3\_vtab\_rhs_value() 介面。 
    • 新增了新的 operator 型別SQLITE\_INDEX\_CONSTRAINT_LIMIT和SQLITE\_INDEX\_CONSTRAINT_OFFSET。 
    • 新增了sqlite3\_vtab\_in()介面(及相關介面)以使虛擬表能夠一次處理所有 IN operator 約束,而不是單獨處理 IN operator 右側的每個值。
  • CLI 增強功能: 

    • Columnar output modes得到增強,可以正確處理嵌入在文字中的製表符和換行符。
    • 向Columnar output modes新增了“--wrap N”、“--wordwrap on”和“--quote”等選項。 
    • 新增了.mode qbox別名。
    • .import 命令自動消除列名的歧義。 
    • 使用新的sqlite3\_error\_offset()介面提供更好的錯誤訊息。 
  • Query planner 增強功能:​

    • 使用 Bloom filter 來加速大型分析查詢。 
    • 使用 balanced merge tree 來評估具有 ORDER BY 子句的 UNION 或 UNION ALL 複合 SELECT 語句。 
  • 改變了ALTER TABLE語句,當PRAGMA writable_schema=ON時,靜默忽略sqlite_schema table中沒有解析的條目。

相關文章