小巧、快速、可靠。
任選三項。

2015-11-02 - 發布 3.9.2

SQLite 版本 3.9.2 是個修正程式版本,修正兩個不明顯的錯誤。(詳細資料:(1)(2))。只有在您遇到問題時才升級。


2015-10-16 - 發布 3.9.1

SQLite 版本 3.9.1小型的修正程式,針對 版本 3.9.0,包含一些簡單的建置指令碼和 #ifdef 調整,讓程式碼更容易在各種不同的平台上編譯。除了 json1 擴充功能 中的 一個次要的錯誤修正 外,沒有任何功能變更,目的是讓它停止將換頁符 (ASCII 0x0c) 辨識為空白字元,以符合 RFC7159


2015-10-14 - 發布 3.9.0

SQLite 版本 3.9.0 是定期排程的維護版本。主要變更包括

請參閱 變更日誌,取得更長且更完整的變更清單。

2015-07-29 - 發布 3.8.11.1

SQLite 版本 3.8.11.1 是個修正程式版本,修正兩個在 3.8.11 發布後不久回報的深奧問題。只有在這些不明顯的問題影響到您的程式碼時,才從 3.8.11 升級。


2015-07-27 - 發布 3.8.11

SQLite 版本 3.8.11 是定期排程的維護版本。請參閱 變更日誌,取得詳細資料。


2015-05-20 - 發布 3.8.10.2

哎呀!在執行一系列有效的 SQL 語句後,索引遭到破壞!

自從 這個錯誤 潛入官方 SQLite 發行版以來,已經過了許多個年頭。但在過去的七個月中(版本 3.8.7版本 3.8.10.1),如果您對精心設計的架構執行 INSERT,其中包含兩個巢狀觸發器,將索引鍵值從 TEXT 轉換為 INTEGER,再從 INTEGER 轉換回 TEXT,可能會將 INTEGER 值插入為索引鍵,而非正確的 TEXT,導致索引遭到破壞。此修補程式版本新增一行程式碼來修正此問題。

如果您真的遇到此問題,對損壞的索引執行 REINDEX 將會清除問題。


2015-05-09 - 發行版本 3.8.10.1

3.8.10 發行版本並未將新的 SQLITE_ENABLE_DBSTAT_VTAB 編譯時期選項新增至 sqlite3_compileoption_used() 介面。此修補程式版本修正了此遺漏。此外,相關的 dbstat 虛擬表格 也有了小幅度的強化,並修正了一個無害的編譯器警告。

除非您使用新的 SQLITE_ENABLE_DBSTAT_VTAB 編譯時期選項,否則沒有理由從版本 3.8.10 升級。


2015-05-07 - 發行版本 3.8.10

SQLite 版本 3.8.10 是定期排程的維護版本。此版本包含效能改善、修正 AFL fuzzer 發現的幾個罕見錯誤、新的「sqldiff.exe」命令列公用程式、改善的文件,以及其他強化功能。請參閱 發行記錄 以取得更多資訊。


2015-04-08 - 發行版本 3.8.9

SQLite 版本 3.8.9 是定期預定的維護版本。此版本的新功能包括 PRAGMA index_xinfo 指令、sqlite3_status64() 介面,以及 命令列殼層 的「.dbinfo」指令。有關其他資訊,請參閱 版本說明


2015-02-25 - 發行 3.8.8.3

3.8.8.3 修補版本修正了 SQLite 程式碼產生器中一個難以發現的問題,此問題會在 部分索引 的限定運算式用於 LEFT JOIN 的 ON 子句中時造成錯誤的結果。此問題自版本 3.8.0 中首次加入對部分索引的支援後就存在於程式碼中。然而,很難想像在 LEFT JOIN 的 ON 子句中放置限定約束的有效理由,因此此問題從未發生過。

任何容易受到此錯誤影響的應用程式都已經遭遇問題。因此,從前一個版本升級是可選擇的。


2015-01-30 - 發行 3.8.8.2

3.8.8.2 修補版本修正了一個輕微的問題:它確保 sqlite3_wal_checkpoint(TRUNCATE) 作業會始終截斷 預寫式記錄,即使記錄已重設且不包含任何新內容。目前尚不清楚這是錯誤修正還是新功能。

此類問題通常會納入下一個定期預定的版本中,但一位重要的 SQLite 使用者急需此變更,因此我們很樂意透過此修補程式快速推出。

除非您實際需要 sqlite3_wal_checkpoint(TRUNCATE) 的增強行為,否則沒有升級的理由。


2015-01-20 - 發行 3.8.8.1

在發行版本 3.8.8 的數小時內,有人回報一個針對 10 個月大的 3.8.4 版本的錯誤。由於該錯誤存在於所有後續版本中,因此決定在 3.8.8 廣泛使用之前發布一個小修補程式。

有關錯誤的說明,請參閱 f97c4637102a3ae72b7911 票證。

版本 3.8.8 與 3.8.8.1 之間的變更很小。


2015-01-16 - 發布 3.8.8

SQLite 版本 3.8.8 是 SQLite 的定期維護版本。

此版本沒有戲劇性的新功能或效能提升,僅有漸進式的改善。此版本的大部分效能提升來自於重新調整 B 樹重新平衡邏輯,以避免不必要的 memcpy() 作業。新功能包括 PRAGMA data_version 陳述式,以及接受 VALUES 子句 的能力,且對列數沒有任意限制。已修正多個模糊的錯誤,包括一些多執行緒競爭,以及一些 Mac 上的編譯器錯誤的解決方法。

請參閱 變更日誌 以取得更長的增強功能和錯誤修正清單。


2014-12-09 - 發布 3.8.7.4

SQLite 版本 3.8.7.4 是非預定的錯誤修正版本。與前一個版本和 版本 3.8.7 的變更很小。

此版本修正了 3.8.7.3 修補程式變更中所需的 mutex,但意外地遺漏了。任何 SQLite 內部測試都不需要 mutex,但 Firefox 在沒有 mutex 的情況下會發生異常。已新增測試案例以確保永遠不會再遺漏 mutex。


2014-12-06 - 發布 3.8.7.3

SQLite 版本 3.8.7.3 是非預定的錯誤修正版本。與前一個版本和 版本 3.8.7 的變更很小。

此版本修正了兩個模糊的錯誤,這些錯誤可能會導致不正確的查詢結果和/或應用程式異常,但並非(就我們所知)安全漏洞。這兩個錯誤在多個先前的版本中一直潛伏在程式碼中,而且從未被發現過,因此不太可能造成問題。儘管如此,發布兩個錯誤的修正程式似乎很明智。有關詳細資訊,請參閱變更日誌。


2014-11-19 - 發布 3.8.7.2

SQLite 版本 3.8.7.2 是個修補程式和錯誤修正版本。與前一版本相比,變更極少。

此版本發行的主要原因,是要加強 ROLLBACK 指令,讓它允許在同一個資料庫連線中執行查詢,只要 ROLLBACK 沒有變更架構,就能繼續執行。在 SQLite 的所有前一版本中,ROLLBACK 會導致待處理查詢立即停止,並傳回 SQLITE_ABORTSQLITE_ABORT_ROLLBACK。如果 ROLLBACK 變更資料庫架構,待處理查詢仍會中止,但從此修補程式版本開始,如果架構未變更,則允許查詢繼續執行。

除了 ROLLBACK 加強功能外,此修補程式版本也包含三個罕見錯誤的修正。詳情請參閱 變更記錄


2014-10-30 - 發行 3.8.7.1

SQLite 版本 3.8.7.1 是個錯誤修正版本。

此錯誤修正版本發行的主要原因,是要解決使用 ALTER TABLE ADD COLUMN 新增的表格尾端欄位值更新問題。此問題 1 最早出現在 3.8.7 版本。

3.8.7 版本的另一個小問題是,Android 組建嘗試使用標準 C 函式庫的 strchrnul() 函式,但 Android 上沒有這個函式。Android 組建必須加入 -DHAVE_STRCHRNUL=0 才能解決此問題。此修補程式修正了這個問題,因此 Android 組建現在應該可以在不變更任何情況下運作。

增強了 PRAGMA journal_mode=TRUNCATE 的操作,使其在 PRAGMA synchronous=FULL 時,於截斷日誌檔案後呼叫 fsync()。這有助於在提交後不久發生斷電時,維持交易的持久性。

最後,修正了幾個與在 VIEW 上執行 UPDATE 和 DELETE 相關的長期且難以察覺的問題。

3.8.7 的變更極少。


2014-10-17 - 發布 3.8.7

SQLite 版本 3.8.7 是定期預定的維護版本。建議從所有先前版本升級。

前一版本的大部分變更都是微調最佳化,旨在協助 SQLite 執行速度更快。每個個別最佳化都有極其微小的效能影響。但這些改善加總起來。在 Linux 上使用 cachegrind,並使用 gcc 4.8.1 和 -Os 在 x64 Linux 上編譯,針對明確的工作負載(SQLite 開發人員使用它作為典型應用程式工作負載的代理)進行測量,與前一版本相比,目前的版本在相同的 CPU 週期數下,可執行超過 20% 的工作。Cachegrind 不是真正的 CPU,而用於測量的負載也只是一個代理。因此,您的效能可能有所不同。我們預期在實際應用程式中,可看到約一半的測量和報告改善。10% 低於 20%,但我們認為這仍然相當不錯。

此版本包含一組新的 C 語言介面,其中使用未簽署的 64 位元長度參數,而非已簽署的 32 位元長度參數。新的 API 沒有提供任何新功能。但它們確實讓撰寫更能抵抗整數溢位漏洞的應用程式變得更容易。

此版本還包含一個新的分類器,它能夠使用多個執行緒來協助大型分類操作。(有時需要分類操作來實作 ORDER BY 和/或 GROUP BY 子句,而且幾乎總是需要建立索引。)多執行緒分類器預設關閉,且必須使用 PRAGMA threads SQL 指令啟用。請注意,多執行緒分類器可提供大型分類更快的即時效能,但它也使用更多的 CPU 週期和更多能量。


2014-08-15 - 發布 3.8.6

SQLite 版本 3.8.6 是定期預定的維護版本。建議從所有先前版本升級。

此版本包含一組常見的模糊錯誤修正。不過,有一個錯誤值得特別注意。CREATE INDEX 命令中出現一個問題,始於 版本 3.8.2(2013-12-06),在某些情況下允許在非唯一欄位上建立 UNIQUE 索引。建立索引後,無法插入任何新的非唯一項目,但現有的非唯一項目會保留。如需進一步資訊,請參閱票證 9a6daf340df99ba93c。除了修正此錯誤外,PRAGMA integrity_check 命令已增強為偵測 UNIQUE 索引中的非唯一性,因此,如果此錯誤在資料庫中造成任何問題,這些問題都可以輕鬆偵測出來。

其他值得注意的變更包括新增對 十六進位整數(例如:0x1234)的支援,以及對 IN 運算子 的效能提升,根據 郵件清單報告,有助於讓某些查詢執行速度提升五倍。

根據 valgrindtest/speedtest1.c 測試程式,版本 3.8.6 使用的 CPU 週期比約一年前的版本 3.8.0 少 25%。另一方面,版本 3.8.6 的編譯二進位檔比 3.8.0 大約 5%。大小增加部分原因是新增了 WITHOUT ROWID 表格和 共用表格運算式 等新功能。


2014-06-04 - 發布 3.8.5

SQLite 版本 3.8.5 是定期預定的維護版本。建議從先前版本升級。

版本 3.8.5 修復了十幾個難以察覺的錯誤。這些錯誤都不會對現有的應用程式造成問題。這些錯誤也不代表任何安全漏洞。儘管如此,建議升級以避免未來的問題。

除了錯誤修正,3.8.5 版本還改進了查詢規劃器,特別是使用索引排序以及處理 WITHOUT ROWID 表格 WHERE 子句中的 OR 項目。.system 和 .once 點命令已新增至命令列介面。FTS4 和 RTREE 虛擬表格也獲得了增強。詳情請參閱變更記錄。


2014-04-03 - 發布 3.8.4.3

版本 3.8.4 中新增的最佳化導致某些包含 FROM 子句、DISTINCT 和 ORDER BY 子句中的子查詢的查詢產生不正確的結果。詳情請參閱 票證 98825a79ce145。此版本新增一個 單字元變更 至單一行程式碼以修正問題。


2014-03-26 - 發布 3.8.4.2

導致 版本 3.8.4 效能提升的程式碼變更遺漏了一個緩衝區溢位測試,這可能會導致在搜尋以特定方式損毀的資料庫時讀取超過緩衝區的結尾。版本 3.8.4.2 使用 一行修補程式 修復了該問題。

我們不知道 版本 3.8.4 在處理格式良好的資料庫檔案時有任何問題。此版本修復的問題僅會在讀取損毀的資料庫檔案時出現。


2014-03-11 - 發布 3.8.4.1

SQLite 版本 3.8.4.1 是針對 版本 3.8.4 的修補程式,可修復兩個小問題

  1. 解決 C 預處理器巨集衝突,這會導致某些 Visual Studio 組態產生編譯問題。
  2. 調整 跳過掃描最佳化 的成本運算,以提升效能。
這兩個問題在標記前一個版本後幾分鐘內浮現。這兩個問題都不嚴重,但可能會令人困擾。因此,決定進行快速修補版本發布,以解決這兩個問題。

2014-03-10 - 發布 3.8.4

SQLite 版本 3.8.4 是維護版本,提供效能增強和修正許多不明顯的錯誤。SQLite 版本 3.8.4 沒有重大新功能。不過,執行許多常見操作所需的 CPU 週期數(由 valgrind 測量)已比前一個版本減少約 12%,比大約一年前的 版本 3.7.16 減少約 25%。

SQLite 的版本 3.8.4 修正了自前一個版本以來發現的幾個邊界狀況錯誤。這些錯誤不太可能在實務中出現,而且沒有任何錯誤代表安全性漏洞。不過,建議開發人員從所有先前版本升級。


2014-02-11 - 發布 3.8.3.1

SQLite 版本 3.8.3.1 修正了版本 3.8.1、3.8.2 和 3.8.3 中存在的錯誤,該錯誤可能導致查詢遺漏有效的輸出列。建議從這些版本升級。

只有在以 SQLITE_ENABLE_STAT3SQLITE_ENABLE_STAT4 編譯時期選項編譯 SQLite 時,才會出現問題。在這種情況下,如果查詢具有包含以下表達式的 WHERE 子句

WHERE (expr1 OR expr2 OR ... OR exprN) AND column IS NOT NULL
其中 expr1 到 exprN 都適合索引使用,則在查詢規劃期間,SQLite 可能會錯誤地將「column IS NOT NULL」項目轉換為「column>NULL」。但後一個項目永遠不為真,因此查詢不會傳回任何列。

此錯誤的故障單為 [4c86b126f2]。建議所有使用者升級以避免此問題。


2014-02-03 - 發行 3.8.3

SQLite 版本 3.8.3 是定期預定的維護版本。從前一個版本升級是可選的。

版本 3.8.3 中最明顯的變更,是加入了對 共用表格運算式 的支援。現在可以撰寫單一的 SELECT 陳述式,使用深度優先或廣度優先搜尋來查詢樹或圖形。單一的 SQLite 查詢甚至可以 解數獨謎題計算 Mandelbrot 集合。作為此變更的一部分,SQLite 現在接受 VALUES 子句,任何 SELECT 陳述式有效的地方。

此版本也包含許多小的效能增強,應該可以為舊有應用程式帶來些微的加速。還有其他次要的增強,例如加入 printf() SQL 函式。請參閱 變更記錄 以取得詳細資料。


2013-12-06 - 發行 3.8.2

SQLite 版本 3.8.2 是定期預定的維護版本。從前一個版本升級是可選的。

版本 3.8.2 加入對 WITHOUT ROWID 表格的支援。這是對 SQLite 的重大延伸。包含 WITHOUT ROWID 表格的資料庫檔案,無法由先前版本的 SQLite 讀取或寫入,但是不使用 WITHOUT ROWID 表格的資料庫,完全向前和向後相容。

3.8.2 版本包含一個潛在不相容的變更。在所有先前版本的 SQLite 中,將一個非常大的正浮點數值轉換為整數會產生最負的整數。換句話說,CAST(+99.9e99 to INT) 會產生 -9223372036854775808。此行為的產生是因為這是 x86/x64 硬體在 C 語言中對應轉換的行為。但此行為很奇怪。因此,在這個版本中已將其變更,以便從浮點數值轉換為整數時,會傳回浮點數值和零之間最接近浮點數值的整數。因此,CAST(+99.9e99 to INT) 現在會傳回 +9223372036854775807。由於像 sqlite3_column_int64() 這類常式會在存取的值實際上是浮點數值時進行隱式轉換,因此它們也受到此變更的影響。

除了上述兩個變更之外,3.8.2 版本還包含多項效能提升。現在已針對已由 ANALYZE 處理的資料庫提供 略過掃描最佳化。常數 SQL 函式現在已從內部迴圈中抽出,這可能會大幅提升包含「date>datetime('now','-2 days')」這類 WHERE 子句項目的查詢速度。此外,已針對各種高執行緒內部常式進行重構,以降低 CPU 負載。


2013-10-17 - 發行 3.8.1

SQLite 版本 3.8.1 是定期預定的維護版本。從前一版本升級是可選的,但如果您正在使用 部分索引,則應升級,因為前一版本中有一個與部分索引相關的 錯誤,可能會導致 count(*) 查詢產生不正確的答案。

在前一版本中首次推出的 新一代查詢規劃器 持續運作良好。新的查詢規劃器已在目前的版本中進行微調,以協助它在某些情況下做出更好的決策,但大致上沒有變更。已新增兩個新的 SQL 函式,likelihood()unlikely(),讓開發人員得以向查詢規劃器提供提示,而不會強迫查詢規劃器做出特定的決策。

版本 3.8.1 是第一個 SQLite 發行版本,在選擇查詢計畫時會考量表格和索引列的估計大小。列大小估計是根據宣告的資料類型而來。例如,VARCHAR(1000) 類型的列假設會使用比 INT 類型的列還要多得多的空間。資料類型為基礎的列大小估計可以透過附加 sqlite_stat1.stat 記錄的尾端,一個「sz=NNN」形式的字詞(其中 NNN 是平均列大小,單位為位元組)來覆寫表格或索引。目前,列大小只用於協助查詢規劃器在執行表格掃描或 count(*) 操作時,選擇表格或其索引之一,儘管未來的版本可能會在其他情況下使用估計的列大小。新的 PRAGMA stats 陳述式可以用於檢視列大小估計。

版本 3.8.1 新增 SQLITE_ENABLE_STAT4 編譯時間選項。STAT4 與 STAT3 非常相似,在於它使用索引的範例來嘗試猜測索引中有多少列會滿足 WHERE 子句約束。不同的是,STAT4 範例索引的所有列,而較舊的 STAT3 僅範例最左邊的列。建議 STAT3 的使用者升級至 STAT4。應用程式開發人員應謹慎使用 STAT3 和 STAT4,因為這兩個選項在設計上都違反了 查詢規劃器穩定性保證,使得確保廣泛部署和大量生產嵌入式應用程式的效能一致性變得更加困難。


2013-09-03 - 發行版本 3.8.0.2

SQLite 版本 3.8.0.2 包含一行程修正,修正新最佳化中的錯誤,該最佳化會嘗試從查詢中省略未使用的 LEFT JOIN。


2013-08-29 - 發行版本 3.8.0.1

SQLite 版本 3.8.0.1 修復了 3.8.0 版本中使用者發現的一些模糊錯誤。3.8.0 的變更極少。


2013-08-26 - 發布 3.8.0

別害怕零!

SQLite 版本 3.8.0 其實可以很輕易地稱為「3.7.18」。然而,這個版本包含了 下一代查詢規劃器NGQP 的切換,而且有極小的機會會 中斷依賴於先前 SQLite 版本中未定義行為的舊程式,因此次要版本號碼才因此遞增。但是風險很低,而且有一個 查詢規劃器檢查清單 可供應用程式開發人員使用,以協助避免問題。

SQLite 版本 3.8.0 實際上是測試最徹底的 SQLite 版本之一。已經下載了數千份測試版,而且據推測也已經測試過,而且沒有任何問題回報。

除了 下一代查詢規劃器 之外,3.8.0 版本還新增了對 部分索引 的支援,以及其他幾個新功能。請參閱 變更記錄 以取得進一步的詳細資料。


2013-05-20 - 發布 3.7.17

SQLite 版本 3.7.17 是定期排程的維護版本。請參閱 變更記錄 以取得此版本中變更的完整說明。

版本 3.7.17 中有許多錯誤修正。但是這並不表示 3.7.16 是個有問題的版本。3.7.17 中的所有錯誤都很模糊,而且不太可能影響任何特定應用程式。而且 3.7.17 中修正的大部分錯誤都早於 3.7.16,而且已經存在於程式碼中好幾年,卻從未被發現。儘管如此,由於修正的數量龐大,因此建議所有使用者在可能的情況下升級。


2013-04-12 - 發布 3.7.16.2

SQLite 版本 3.7.16.2 修復了 Windows 作業系統介面中一個長久存在的缺陷,此缺陷會在罕見的競爭條件下導致資料庫損毀。請參閱 https://www.sqlite.org/src/info/7ff3120e4f 以取得問題的完整說明。

據我們所知,此錯誤從未在實際環境中出現過。此問題是由 SQLite 開發人員在為 SQLite 的獨立元件撰寫壓力測試時發現的。這些壓力測試尚未發現他們打算驗證的元件有任何問題,但他們確實找到了此修補程式版本的主題錯誤。

除了版本號碼的更新之外,此版本與 3.7.16.1 之間唯一的差異是單一識別碼中兩個字元的變更,此識別碼包含在特定於 Windows 的作業系統介面邏輯中。此版本中沒有針對 Windows 以外的平台進行任何變更(除了版本號碼)。


2013-03-29 - 發布 3.7.16.1

SQLite 版本 3.7.16.1 是錯誤修正版本,修正了先前版本中存在的幾個問題。

版本 3.7.16.1 的主要動機是修正查詢最佳化器中的錯誤,此錯誤是 版本 3.7.15 的一部分。查詢最佳化器在最佳化某些 ORDER BY 子句時過於積極,導致在需要排序才能取得正確答案時省略排序。請參閱票證 a179fe7465 以取得詳細資訊。

除了 ORDER BY 修復之外,此版本也包含了數個修正不明顯(且大多無害)錯誤的修補程式,以及原始碼註解中拼寫錯誤的修正。


2013-03-18 - 發布 3.7.16 版

SQLite 3.7.16 版 是 SQLite 的定期排程發布。此版本包含數個語言增強功能和查詢最佳化器的改進。重大增強功能和最佳化的清單可以在 變更記錄 中看到。

有一個重要的錯誤修正(請參閱 問題單 fc7bd6358f),用於處理不正確的查詢結果,此結果可能發生在三向聯結中,其中聯結限制會將 INTEGER 欄位與 TEXT 欄位進行比較。此問題已存在於程式碼中很長一段時間,且從未被回報過,因此我們推測它非常不明顯。不過,建議所有使用者升級以避免與此問題相關的任何未來問題。


2013-01-09 - 發布 3.7.15.2 版

SQLite 3.7.15.2 版 是修補程式版本,修正了 3.7.15 版 中引入的單一錯誤。此修正是一個 4 個字元的編輯,針對單一行程式碼。除了這個 4 個字元的變更和版本號碼的更新之外,其他部分與 3.7.15.1 版 相同。

2012-12-19 - 發布 3.7.15.1 版

SQLite 3.7.15.1 版 是修補程式版本,修正了 3.7.15 版 中引入的單一錯誤。此修正涉及變更兩行程式碼和新增一個 assert()。此版本也包含一些新的測試案例,以防止錯誤回歸,當然,版本號碼也增加了。但除此之外,其他部分與 3.7.15 版 相同。

2012-12-12 - 發布 3.7.15 版

SQLite 版本 3.7.15 是 SQLite 的定期排程版本。此版本包含對查詢規劃器和最佳化器的多項改進,以及一個重要的錯誤修正。這是第一個正式支援 Windows 8 Phone 的版本。

重要的錯誤修正是一個問題,其可能導致在 共用快取模式 中使用包含 整理運算子 的架構時發生區段錯誤,而該運算子位於 檢查約束檢視 中。校對函式與個別資料庫連線相關聯。但是,指向校對函式的指標也快取在運算式中。如果一個運算式是架構的一部分,且包含快取的校對函式,它會指向最初剖析架構的資料庫連線中的校對函式。如果該資料庫連線關閉,而使用相同共用快取的其他資料庫連線持續運作,這些其他資料庫連線會嘗試使用已解除配置的校對函式,該函式位於已關閉的資料庫連線中。版本 3.7.15 中的修正方法是不在運算式結構中快取校對函式指標,而是在每次準備新的陳述式時檢索它們。

此版本也包含對查詢規劃器的一些重要增強功能,我們希望這能讓一些查詢執行得更快。這些增強功能包括

  1. 在執行全表掃描時,嘗試使用索引而非原始表格,其理論是索引包含較少資訊,因此較小,而且需要較少的磁碟 I/O 來掃描。

  2. 增強 IN 運算子,使其能使用具有 數字關聯性 的索引。

  3. 更妥善地辨識何時可以使用索引來實作 ORDER BY 子句,特別是在 ORDER BY 子句包含來自於聯結中兩個或多個資料表的項目時。


2012-10-04 - 發行 3.7.14.1

SQLite 版本 3.7.14.1 是個修補版本。與基準版本 3.7.14 的變更很小,僅限於修正三個錯誤。

修正的錯誤之一是 TCL 介面的長期問題。另一個是 SQLite 僅用來解決的外部編譯器錯誤,而且僅當您使用 VisualStudio-2012 編譯器,在啟用最佳化功能的情況下,產生 ARM 上的 WinRT 應用程式時才會出現。第三個問題是 SQLite 核心錯誤,在版本 3.7.14 中引入,如果查詢包含在 ON 子句中包含 OR 的 LEFT JOIN,可能會導致分段錯誤。


2012-09-03 - 發行 3.7.14

SQLite 版本 3.7.14 是 SQLite 的定期維護版本。前一個版本持續運作良好。升級是可選的。

版本 3.7.14 已移除對 OS/2 的原生支援。我們不知道有任何活躍專案在 OS/2 上使用 SQLite,而且由於 SQLite 開發人員無法在 OS/2 上進行測試,因此似乎是時候從 SQLite 樹狀結構中移除 OS/2 程式碼了。如果還有 OS/2 專案需要 SQLite 支援,它們可以繼續維護自己的私有 VFS,可以在啟動時使用 sqlite3_vfs_register() 介面連結到 SQLite。

已新增 sqlite3_close_v2() 介面。sqlite3_close_v2() 介面與 sqlite3_close() 不同之處,在於它設計成更適合使用垃圾收集器的主機語言。使用較舊的 sqlite3_close() 介面時,相關的 已準備好的陳述式sqlite3_backup 物件必須在資料庫連線之前毀損。使用較新的 sqlite3_close_v2() 介面時,可以任意順序毀損這些物件。

此版本也包含對用於實作 ORDER BY 和 CREATE INDEX 的排序演算法的效能改善。而且查詢規劃器已增強,以在 WHERE 子句中使用 OR 項的查詢中更好地使用覆蓋索引。


2012-06-11 - 版本 3.7.13

SQLite 版本 3.7.13 新增對 Microsoft Windows 8 的 WinRT 和 Metro 風格應用程式的支援。3.7.13 版本比前一版本提早推出,以便將此新功能交到開發人員手中。要在 Metro 風格應用程式中使用 SQLite,請使用 -DSQLITE_OS_WINRT 旗標編譯。由於 WinRT 增加的應用程式安全性及安全需求,所有資料庫檔名都應為完整路徑名稱。請注意,SQLite 無法存取安裝目錄和應用程式資料目錄以外的資料庫。此限制是 WinRT 的另一項安全功能。除了這些限制之外,SQLite 在 WinRT 上的運作方式應與在其他系統上完全相同。

此版本中也有:當使用 URI 檔名mode=memory 查詢參數開啟資料庫時,資料庫會是內存資料庫,就像它被命名為「:memory:」一樣。但是,如果已啟用共用快取模式,則指定相同 URI 檔名的所有其他資料庫連線都會連線到同一個內存資料庫。這允許兩個或更多資料庫連線(在同一個程序中)共用同一個內存資料庫。

此版本也包含一些邊緣效能最佳化,這些最佳化對 SQLite 使用者的一個重要子集而言雖然不明顯,但卻很重要。快速將這些效能最佳化導入流通是讓此版本如此快地緊接前一版本推出的另一個原因。

下一個 SQLite 版本預計在通常的 2 或 3 個月間隔後推出。


2012-05-22 - 修補程式版本 3.7.12.1

SQLite 3.7.12.1 版本3.7.12 版本 的修補程式版本,修正了 3.7.12 版本中引入的 錯誤,該錯誤可能會導致某些模糊的巢狀聚合查詢發生區段錯誤。3.7.12.1 的變更極少,僅有執行巢狀聚合查詢的應用程式需要升級。

2012-05-14 - 3.7.12 版本

SQLite 3.7.12 版本 是定期排定的維護版本。此版本包含多項新的最佳化和錯誤修正,建議升級。有關詳細資訊,請參閱 變更摘要

2012-03-20 - 3.7.11 版本

SQLite 3.7.11 版本 是定期排定的維護版本,由於前一版本中引入了 查詢最佳化程式中的錯誤,因此提早發布。該錯誤很模糊,在某些情況下,當 WHERE 子句中同時存在三向連接和 OR 項時,會將 LEFT JOIN 變更為 INNER JOIN。但是,這被認為很嚴重,因此緊急發布了修正程式。除了這個問題之外,SQLite 3.7.10 版本 沒有出現任何問題。從 3.7.6.3、3.7.7、3.7.7.1、3.7.8 或 3.7.9 版本升級到 3.7.11 版本 是可選的。建議從其他版本(包括前一版本 3.7.10)升級。

此版本中找到的其他加強功能已列舉在 變更記錄 中。


2012-01-16 - 3.7.10 版本

SQLite 3.7.10 版本 是定期排定的維護版本。從 3.7.6.3、3.7.7、3.7.7.1、3.7.8 或 3.7.9 版本升級是可選的。建議從其他版本升級。

已將 SQLITE_CONFIG_PCACHE 機制替換為 SQLITE_CONFIG_PCACHE2。如果您不知道此機制為何(這是一個極端的邊界案例且很少使用),那麼此變更對您來說完全不會造成影響。

新資料庫檔案的預設 架構格式號碼 已從 1 變更為 4。SQLite 已能使用架構格式 4 產生和讀取資料庫檔案長達六年。但直到現在,預設架構格式仍為 1,以便舊版本的 SQLite 能夠讀取和寫入由新版本的 SQLite 所產生的資料庫。但那些舊版本的 SQLite 現在已變得非常稀少,因此將新格式設為預設格式似乎是合理的。

SQLite 正在改變它在突然斷電期間對磁碟機和快閃記憶體裝置行為所做的某些假設。此變更對應用程式而言完全透明。請閱讀 powersafe overwrite 屬性以取得更多資訊。

此版本已新增許多新介面

已增強 PRAGMA cache_size 陳述式。以前,您會使用此陳述式告訴 SQLite 它應該一次在其快取中保留多少個資料庫檔案頁面。總記憶體需求會取決於資料庫頁面大小。現在,如果您給予 PRAGMA cache_size 一個負值 -N,它會分配大約 N kibibyte 的記憶體用於快取,並根據頁面大小進行分割。此增強功能讓程式可以更輕鬆地控制其記憶體使用量。

已修復幾個模糊的錯誤。一個值得注意的錯誤,票證 ff5be73dee,理論上可能會導致資料庫檔案損毀,如果斷電發生在異常暴躁的磁碟機上的錯誤時間點。但這主要是一個理論上的疑慮,而且不太可能在實際中發生。此錯誤是在實驗室測試中發現的,而且從未觀察到它在實際環境中發生。


2011-11-01 - 版本 3.7.9

SQLite 版本 3.7.9 是定期預定的維護版本。從版本 3.7.6.3、3.7.7、3.7.7.1 和 3.7.8 升級是可選的。建議從其他版本升級。

SQLITE_ENABLE_STAT2 編譯時間選項現在是無操作。以前使用 SQLITE_ENABLE_STAT2 可用的增強查詢規劃器功能現在可透過 SQLITE_ENABLE_STAT3 取得。增強查詢規劃仍預設停用。不過,SQLite 的未來版本可能會將 STAT3 從啟用選項轉換為停用選項,以便預設可用,且僅在要求時才略過。

FTS4 全文搜尋引擎已增強,以致於搜尋字串中以「^」開頭的詞彙必須是其各自欄位中的第一個詞彙才能符合。以前,搜尋字串中的「^」字元會被單純略過。因此,如果舊版應用程式在 FTS4 搜尋字串中包含「^」字元,認為它們會永遠被略過,那麼這些舊版應用程式可能會因這次更新而中斷。修正方法很簡單,只要從搜尋字串中移除「^」字元即可。

請參閱 變更摘要 以取得與此版本相關的其他變更。


2011-09-19 - 版本 3.7.8

SQLite 版本 3.7.8 是每季維護版本。從版本 3.7.6.3、3.7.7 或 3.7.7.1 升級是可選的。建議從其他版本升級。

此版本提供新的「外部合併排序」演算法,用於實作 ORDER BY 和 GROUP BY,以及預先排序 CREATE INDEX 的索引內容。新演算法進行的比較和 I/O 次數與之前大致相同,但 I/O 的順序性大幅提升,因此當排序的集合大小大於檔案系統快取時,執行時間會大幅縮短。效能提升幅度可能非常顯著,對於大型 CREATE INDEX 指令,速度可能提升好幾個數量級。另一方面,對於小型 CREATE INDEX,程式碼會稍微變慢 (1% 或 2%)。由於 CREATE INDEX 並非通常會出現在速度關鍵路徑上的操作,我們認為這個取捨是值得的。未來版本可能會改善小型 CREATE INDEX 陳述式的輕微速度變慢問題。ORDER BY 和 GROUP BY 操作現在在所有情況下都應該會變快,無論大小。

查詢規劃器已增強功能,以便在 SELECT 陳述式上更妥善地處理 DISTINCT 關鍵字。

針對預設 VFS 進行許多工作。Unix VFS 已增強功能,包含更多可覆寫的系統呼叫,這是 Chromium 要求的功能,目的是讓將 SQLite 建置到沙盒中變得更容易。Windows VFS 已增強功能,以提高對防毒軟體干擾的抵抗力。

每個版本的 SQLite 都比前一個版本經過更嚴格的測試,而 3.7.8 也遵循此規則。SQLite 團隊已在內部將 3.7.8 版本用於任務關鍵功能,且執行順利無誤。當然,它也順利通過我們嚴格的 測試 程序,未偵測到任何問題。建議將 3.7.8 版本用於所有新開發。


2011-06-28 - 版本 3.7.7.1

SQLite 版本 3.7.7.1 新增一行程式碼錯誤修正至 3.7.7,以修正 一個問題,導致使用舊版 sqlite3_prepare() 介面編譯的 PRAGMA case_sensitive_like 陳述式會因 SQLITE_SCHEMA 錯誤而失敗。由於 sqlite3_exec() 內部使用 sqlite3_prepare(),因此此問題也會影響 sqlite3_exec()。

僅有使用「PRAGMA case_sensitive_like」和 sqlite3_prepare()(或 sqlite3_exec())介面的應用程式需要從 3.7.7 升級。


2011-06-24 - 版本 3.7.7

SQLite 版本 3.7.7 是定期預定的雙月刊維護版本。從版本 3.7.6.3 升級為選用。建議從所有先前版本升級。

此版本新增使用 URI 檔案名稱 命名資料庫檔案的支援。URI 檔案名稱預設為停用(以維持向後相容性),但建議應用程式啟用它們,因為不兼容的情況極為罕見,而且此功能很有用。有關詳細資訊,請參閱 URI 檔案名稱文件

此版本中的其他大多數強化功能都涉及 虛擬表格。虛擬表格介面已增強為支援 儲存點ON CONFLICT 子句處理,而且內建 RTREEFTS3/FTS4 已擴充為利用新功能。這表示,例如,現在可以在 FTS3/FTS4RTREE 表格上使用 REPLACE 指令。

已加強 FTS4 全文索引擴充功能,以支援 FTS4 前置詞選項FTS4 順序選項。這兩項加強功能用於支援「邊輸入邊搜尋」介面,在「搜尋」方塊中輸入第一個鍵擊後,搜尋結果就會開始顯示,並隨著每個後續鍵擊而進行精煉。執行的步驟是,在每個鍵擊後執行個別全文搜尋,並在目前輸入的字詞結尾加上通配符「*」。因此,例如,如果目前輸入的文字為「fast da」,而下一個輸入的字元為「t」,則應用程式會針對模式「fast dat*」執行全文搜尋,並顯示結果。這種功能一直都存在。新功能是 FTS4 前置詞選項,即使對於「t*」或「th*」等困難案例,也能讓搜尋非常快速(以毫秒為單位)。

在此版本中,已針對 FTS4 模組進行大量工作。但 SQLite 核心程式碼變更不多,且前一版本未出現任何問題,因此我們預期此版本將會非常穩定。


2011-05-19 - 版本 3.7.6.3

SQLite 版本 3.7.6.3 是修正版本,修正了與 WAL 模式 相關的 單一錯誤。此錯誤自從新增 WAL 以來就存在於 SQLite 中,但問題非常不明顯,因此到目前為止還沒有人發現。儘管如此,仍建議所有使用者升級至版本 3.7.6.3 或更新版本。

錯誤如下:如果將 cache_size 設定得非常小(小於 10),而 SQLite 處於記憶體壓力下,且在多重陳述式交易中啟動最後一個陳述式為 COMMIT 之前的陳述式為 SELECT 陳述式,且交易提交後立即發生 檢查點,則交易可能會在未經提示的情況下回滾,而不是提交。

預設設定的 cache_size 為 2000。因此在大部分情況下,這個錯誤永遠不會出現。但有時程式設計師會在小工具和其他低記憶體裝置上將 cache_size 設定為非常小的值,以節省記憶體空間。此類應用程式容易受到攻擊。請注意,此錯誤不會造成資料庫損毀。在某些情況下,這就像執行 ROLLBACK 而不是 COMMIT 一樣。

錯誤詳細資料

在 WAL 模式下,交易會透過在 WAL(寫入前記錄)尾端新增包含「提交」旗標的記錄來提交。因此,SQLite 會在提交交易時,取得交易期間變更的所有頁面,將其附加到 WAL,並在最後一個頁面上設定提交旗標。現在,如果 SQLite 受到記憶體壓力,它可能會嘗試透過在提交之前將變更的頁面寫入 WAL 來釋放記憶體空間。我們稱此為將快取「溢出」到 WAL。將快取溢出到 WAL 沒有任何問題。但如果記憶體壓力過大,可能會在執行 COMMIT 時,交易的所有變更頁面都已溢出到 WAL,且沒有頁面可寫入 WAL。且沒有未寫入的頁面,就沒有地方可放置提交旗標。而沒有提交旗標,交易最終會被還原。

此問題的修正方法是,如果所有變更的頁面在開始提交時已寫入 WAL,則會再次將資料庫的第 1 頁寫入 WAL,如此一來,將永遠有一個頁面可用於設定提交旗標。


2011-04-17 - 版本 3.7.6.2

SQLite 版本 3.7.6.2 在 3.7.6.1 中新增一行錯誤修正,讓 pthreads 能在 NetBSD 上正確運作。問題出在 open 系統呼叫的錯誤函數簽章。除了 NetBSD 之外,此問題似乎不會對其他系統造成任何不良影響。

僅在 NetBSD 上需要從版本 3.7.6.1 升級。


2011-04-13 - 版本 3.7.6.1

SQLite 版本 3.7.6.1 修正了 3.7.6 中的單一錯誤,如果在已將 SQLITE_ENABLE_LOCKING_MODE 設為 0 且使用 HAVE_POSIX_FALLOCATE 編譯的 Unix 建置中使用 SQLITE_FCNTL_SIZE_HINT,可能會導致區段錯誤。

僅有受到上述特定組態錯誤影響的使用者需要從 3.7.6 升級。程式碼中沒有其他變更。


2011-04-12 - 版本 3.7.6

SQLite 版本 3.7.6 是 SQLite 定期預定的雙月刊維護版本。從版本 3.7.5 升級是選配的。建議升級 3.7.5 之前的版本。

2011-02-01 - 版本 3.7.5

SQLite 版本 3.7.5 是 SQLite 定期預定的雙月刊維護版本。由於發現並修正了 一個罕見的錯誤,可能會導致資料庫損毀,建議從所有先前版本的 SQLite 升級。此錯誤是在程式碼檢閱中發現的,尚未在實際環境中觀察到。

此版本為 sqlite3_db_status() 介面新增了新的 操作碼,可以更精確地量測 旁觀記憶體配置器 的執行狀況,這對於在記憶體限制非常嚴格的應用程式中進行調整很有用。

新增 sqlite3_vsnprintf() 介面。此常式只是 sqlite3_snprintf() 長期介面的變數引數版本。

增強 sqlite3_trace() 介面的輸出,以在使用遞迴擴充套件(例如 FTS3RTREE)的系統中運作得更好(且更快)。

使用 Valgrind 進行測試顯示,此版本的 SQLite 比前一版本快了大約 1% 或 2%,適用於大多數作業。

SQLite 的熱門 ADO.NET 適配器 System.Data.SQLite 的分支現已在 http://System.Data.SQLite.org/ 上提供。System.Data.SQLite 的創始人 Robert Simpson 已知悉此分支,並表示同意,且在新 Fossil 儲存庫中擁有提交權限。SQLite 開發團隊打算持續維護 System.Data.SQLite。


2010-12-08 - 版本 3.7.4

SQLite 版本 3.7.4 是 SQLite 的定期雙月刊維護版本。從 版本 3.7.2版本 3.7.3 升級是可選的。建議從所有其他 SQLite 版本升級。

此版本提供 全文搜尋 增強功能。較舊的 FTS3 虛擬表格仍獲得完全支援,且執行速度也應該更快。此外,還新增了新的 FTS4 虛擬表格。FTS4 遵循與 FTS3 相同的語法,但會保留額外的元資料,可促進一些效能改善和更進階的 matchinfo() 輸出。請在後續版本中尋找更多全文搜尋增強功能。

此外,此版本中也增強了 EXPLAIN QUERY PLAN 輸出,並提供新的文件,以便應用程式開發人員能更輕易地了解 SQLite 如何執行其查詢。

感謝 http://www.devio.us/ 的朋友們提供帳戶,OpenBSD 已新增至我們在每次發行之前 測試 SQLite 的平台清單。平台清單現在包括

先前版本的 SQLite (版本 3.7.3) 已證明非常健全。發現的唯一嚴重問題是 票證 80ba201079,其中說明了在非常不尋常的情況下可能會發生的不正確查詢結果。票證說明包含問題的詳細資料。在此僅需說明,這個問題非常不明顯,不太可能會影響大多數應用程式,因此升級是可選擇的。當然,此版本已修正這個問題。


2010 年 10 月 8 日 - 版本 3.7.3

SQLite 版本 3.7.3 是 SQLite 定期排程的雙月刊維護版本。從 版本 3.7.2 升級是可選擇的。建議從所有其他版本升級。

此版本新增兩個新介面(實際上只是現有介面的變異)。sqlite3_create_function_v2() 介面為應用程式資料指標新增一個解構函式。新的 sqlite3_soft_heap_limit64() 介面允許將軟性堆積限制設定為大於 231 的值。

已增強 RTREE 擴充功能,使其具備 應用程式定義的查詢區域。例如,這可用於尋找相機視野中的所有物件。

3.7.3 版本也包含一些效能增強功能,包括查詢規劃器改善、文件更新,以及修正一些非常罕見的錯誤。


2010 年 8 月 24 日 - 3.7.2 版

SQLite 3.7.2 版 修正了一個長期的錯誤,該錯誤會導致資料庫 空閒頁面清單 損毀,如果多次使用 incremental_vacuum 來部分縮減包含數百個未使用的資料庫頁面的資料庫檔案大小。原始錯誤報告以及連結到修正程式補丁可在此處 查看

此錯誤已存在於程式碼中至少一年,甚至更久。此錯誤與 3.7.1 或 3.7.0 版或任何其他最近版本無關。在 3.7.1 版發布後數小時內發現(並修正)此錯誤純屬巧合。

如果不使用 incremental_vacuum,就不可能遇到此錯誤,即使使用 incremental_vacuum,也很難遇到。而且,此錯誤造成的損毀通常可以透過執行 VACUUM 來修正。儘管如此,由於此錯誤可能會導致資料庫損毀,建議所有 SQLite 使用者升級到 3.7.2 版或更新版本。


2010 年 8 月 23 日 - 3.7.1 版

SQLite 3.7.1 版 是 3.7.x 系列的穩定版。除了在 3.7.0.1 版 中修正的標頭中的檔案大小錯誤之外,3.7.0 版中未發現任何重大問題。已修正一些次要的角落案例效能回歸。已修復 OS/2 介面中的錯字。

3.7.1 版發行的最大部分是清理和重構 SQLite 中的頁面模組。此重構不應對應用程式造成任何可見的影響。目的是以更簡單的方式重新整理程式碼,以便證明其正確性。

3.7.1 版發行新增了取得更詳細記憶體使用率資訊和控制資料庫檔案碎片的新實驗方法。而且,查詢規劃器現在能更有效地最佳化 LIKEGLOB 運算子。

此版本將資料庫頁面的最大大小從 32KiB 增加到 64KiB。舊版的 SQLite 將無法讀取或寫入具有 64KiB 頁面的資料庫。請注意,由於 檔案格式 使用 16 位元偏移量來處理每個頁面中的結構,因此頁面大小無法進一步增加。


2010 年 8 月 4 日 - 版本 3.7.0.1

SQLite 版本 3.7.0.1 是修正 SQLite 檔案格式 中新檔案大小在標頭功能的錯誤的修補版本,如果使用版本 3.7.0 和版本 3.6.23.1 或更早的版本交替寫入同一個資料庫檔案,可能會導致資料庫損毀。此版本也修正了效能退步的問題。

2010 年 7 月 22 日 - 版本 3.7.0

SQLite 版本 3.7.0 是 SQLite 的主要版本,其特色是使用 寫入前記錄WAL 的新交易控制機制。傳統的回滾記錄仍用作預設值,因此舊程式不應有明顯的變更。但是,較新的程式可以透過啟用 WAL 記錄模式來利用效能和並行性的改善。

SQLite 版本 3.7.0 也包含一些查詢規劃器的強化功能和一些難以察覺的錯誤修正,但唯一真正重大的變更就是新增 WAL 模式。


2010 年 3 月 30 日 - 版本 3.6.23.1

SQLite 3.6.23.1 版 是修正應 Mozilla 要求的 FTS3 中 offsets() 函數中錯誤的修補版本。

2010-03-09 - 3.6.23 版

SQLite 3.6.23 版 是 SQLite 的定期雙月刊版本。從前一個版本升級是完全可選的。

此版本包含新的 pragma:secure_delete pragmacompile_options pragma。有新的 SQL 函數:sqlite_compileoption_used()sqlite_compileoption_get()。新的 C/C++ 介面:sqlite3_compileoption_used()sqlite3_compileoption_get()SQLITE_CONFIG_LOGsqlite3_log()

此版本還包括一些次要的錯誤修正和效能改善。SQLITE_OMIT_FLOATING_POINT 的支援已增強。對 FTS3 有持續的改善。

命令列介面 中的「.genfkey」命令已移除。自 3.6.19 版 以來,SQLite 已支援標準 SQL 外來金鑰約束,因此「.genfkey」命令被視為過時。


2010-01-06 - 3.6.22 版

SQLite 3.6.22 版 是錯誤修正版本。已修正兩個可能導致查詢結果不正確的錯誤。 這兩個錯誤都很難發現,但由於它們可能會在部署後在應用程式中出現,建議所有應用程式將 SQLite 升級到 3.6.22 版。

此版本還包含其他次要的錯誤修正和效能增強,特別是在 FTS3 擴充功能中。


2009-12-07 - 版本 3.6.21

SQLite 版本 3.6.21 專注於效能最佳化。對於特定的一組追蹤,此版本使用的 CPU 指令比前一個版本少了 12%(由 Valgrind 測量)。此外,FTS3 擴充功能已經過廣泛的清理和修改,而 sqlite3_trace() 介面已修改為將 繫結參數 值插入其輸出中。

2009-11-04 - 版本 3.6.20

SQLite 版本 3.6.20 是個一般維護版本。查詢規劃器已增強,以在 LIKE 和 GLOB 運算子以及範圍約束中更好地使用繫結參數,並已修正各種次要錯誤。從 3.6.19 升級是可選的。

2009-10-14 - 版本 3.6.19

SQLite 版本 3.6.19 新增對 外來鍵約束 的原生支援,包括遞延約束和連鎖刪除。外來鍵的強制執行預設為停用以維持向後相容性,且必須使用 foreign_keys pragma 開啟。

版本 3.6.19 也新增支援 IS 和 IS NOT 算子。先前,SQLite(如同大多數其他 SQL 資料庫引擎)支援 IS NULL 和 IS NOT NULL。IS 和 IS NOT 算子是通用的算子,允許右側為任意運算式。IS 和 IS NOT 的運作方式與 ==(等於)和 !=(不等於)相同,但使用 IS 和 IS NOT 時,NULL 值彼此相等。


2009-09-11 - 版本 3.6.18

從此版本開始,SQLite 原始碼使用 Fossil 分散式設定管理系統追蹤和管理。先前 SQLite 使用 CVS 版本控管。整個 CVS 歷程記錄已匯入 Fossil。較舊的 CVS 儲存庫仍保留在網站上,但為唯讀狀態。

SQLite 版本 3.6.18 有兩項主要強化功能。第一項是對查詢規劃器的多項調整,協助 SQLite 為聯結選擇更好的規劃,因為過去它會選取次佳的查詢規劃。已新增 SQLITE_ENABLE_STAT2 編譯時期選項,讓 SQLite 在執行 ANALYZE 指令時收集索引的直方圖資料。使用直方圖進一步提升查詢規劃效能。

第二項主要強化功能是 SQLite 現在支援遞迴觸發器。較舊的非遞迴觸發器行為仍為預設行為。使用 recursive_triggers pragma 啟用遞迴觸發器。除了允許觸發器呼叫自己(直接或間接)之外,新功能也會對因 REPLACE 衝突解決處理而從資料表中移除的列觸發 DELETE 觸發器。

非遞迴觸發器仍為預設行為,因為這最不容易對現有應用程式造成問題。不過,我們預期觸發器將從版本 3.7.0 開始預設為遞迴。屆時,想要繼續使用較舊的非遞迴觸發器行為的應用程式需要使用 recursive_triggers pragma 來停用遞迴觸發器。

此版本的 SQLite 也包含錯誤修正,但這些錯誤都不嚴重,而且都很難發現,因此升級是可選的。

SQLite 核心持續具有 100% 分支測試涵蓋率,因此儘管此版本有許多變更,開發人員相信此版本的 SQLite 是穩定的,且已準備好供生產使用。


2009-08-10 - 版本 3.6.17

這是每月維護版本,重點在於錯誤修正、效能改善和增加測試涵蓋率。這是自 SQLite 核心達到 100% 分支測試涵蓋率 以來的第一個版本。

此外,提供了一個新介面 sqlite3_strnicmp(),以方便延伸模組撰寫人員使用。

此版本中修正的錯誤都不嚴重。所有錯誤都很難發現。升級是可選的。


2009-07-25 - 100% 分支測試涵蓋率

gcov 測量了 TH3 測試套件的子集,以提供 100% 分支測試涵蓋率,涵蓋在 x86 上針對 SuSE 10.1 Linux 編譯的 SQLite 核心(不含 VFS 後端和 FTS3 與 RTREE 等延伸模組)。SQLite 開發人員承諾在所有未來的版本中維持 100% 的分支測試涵蓋率。持續進行的工作將致力於在作業系統後端和延伸模組上也達到 100% 的分支測試涵蓋率。

2009-06-27 - 版本 3.6.16

SQLite 版本 3.6.16 是另一個一般維護版本,包含效能和健全性的增強功能。修正了一個重要的錯誤(錯誤單號 #3929)。此錯誤可能會導致 INSERT 或 UPDATE 陳述式在具有會修改相同表格和索引的 AFTER 觸發器的索引表格上失敗。

2009-06-15 - 版本 3.6.15

SQLite 版本 3.6.15 是個一般維護版本,包含效能和健全性的提升,以及修正各種不明顯的錯誤。

2009-05-25 - 版本 3.6.14.2

SQLite 版本 3.6.14.2 修正了 SQLite 中產生器程式碼 (問題 #3879) 部分的一個不明顯錯誤,此錯誤可能會導致不正確的查詢結果。與前一個版本相比,變更僅包含此一錯誤修正、簽入 [6676] 和版本號碼文字的變更。

此錯誤是在版本 3.6.14 中引入的。建議版本 3.6.14 和 3.6.14.1 的使用者升級到此版本。應用程式不太可能會遇到此錯誤,但由於難以預測哪些應用程式可能會遇到,哪些可能不會,我們建議所有 3.6.14 和 3.5.14.1 的使用者升級到此版本。


2009-05-19 - 版本 3.6.14.1

SQLite 版本 3.6.14.1版本 3.6.14 的一個修補版本,變更極少,修正了三個錯誤。只有受到其中一個或多個錯誤影響的使用者才需要升級。

2009-05-07 - 版本 3.6.14

SQLite 版本 3.6.14 在 btree 和分頁層以及查詢最佳化器中提供了新的效能提升。某些工作負載的速度可以比前一個版本快上兩倍,不過更常見的結果是快上 10%。

針對 虛擬表格 的查詢,如果 WHERE 子句中包含 OR 和 IN 運算子,現在可以使用索引。

一個新的可選 非同步 I/O 後端 可供 Unix 和 Windows 使用。非同步後端透過將緩慢的寫入操作推入背景執行緒,來營造更快的回應時間假象。較快的回應時間的折衷方案是需要更多記憶體(用於存放待處理寫入的內容),而且如果發生電源故障或程式崩潰,一些看似已提交的交易可能會在重新啟動時遭到回滾。

此版本還包含許多次要的錯誤修正、文件增強、新的測試案例,以及對原始碼的清理和簡化。

如果先前的版本 3.6.12 或 3.6.13 正常運作,則沒有非升級不可的理由。儘管許多使用者可能會受益於效能提升。


2008-12-16 - 版本 3.6.7

SQLite 版本 3.6.7 包含 Unix 驅動程式的重大清理,以及對 Mac OS X 上新的 Proxy 鎖定機制的支援。儘管 Unix 驅動程式已重新組織,但其功能相同,因此應用程式不應注意到差異。

2008-11-26 - 版本 3.6.6.2

此版本修正了 SQLite 版本 3.6.6 中引入的錯誤,此錯誤似乎可能導致資料庫損毀。此錯誤是在壓力測試期間偵測到的。它尚未在實際環境中發現。問題分析指出此錯誤可能導致資料庫損毀,然而,迄今為止,針對尋找實際會導致資料庫損毀的測試案例的專注工作仍未成功。因此,此錯誤導致問題的可能性很低。儘管如此,我們決定出於謹慎,進行緊急分支版本發布。

版本 3.6.6.2 也修正了在磁碟 I/O 錯誤後可能發生的不明顯記憶體外洩。


2008-11-22 - 版本 3.6.6.1

此版本修正了 SQLite 版本 3.6.4 中引入的錯誤,此錯誤可能在不明顯的情況下導致資料庫損毀。此錯誤從未在實際環境中發現;它最初是由內部壓力測試偵測到的,並且需要大量的分析才能證明它可能導致損毀。因此,我們認為 SQLite 版本 3.6.4、3.6.5 和 3.6.6 可安全地用於開發工作。但在部署包含 SQLite 的產品之前,建議升級到此修補程式版本或更新版本。

我們採取了不尋常的步驟發布修補程式版本,以便快速讓此錯誤的修正程式流通。SQLite 版本 3.6.7 將繼續其正常的開發路徑,預計在 12 月中旬發布。


2008-11-19 - 版本 3.6.6

SQLite 版本 3.6.5 已發布。這是一個快速周轉版本,修正了虛擬資料表和 FTS3 中的錯誤,這些錯誤潛入了 版本 3.6.5。此版本也新增了新的應用程式定義的頁面快取機制。

2008-11-12 - 版本 3.6.5

SQLite 版本 3.6.5 已發布。有各種次要功能增強和許多模糊的錯誤修正。變更日誌 包含詳細資訊。升級為選用。

2008-11-01 - Bloomberg 加入 SQLite 聯盟

SQLite 開發人員很榮幸地宣布 Bloomberg 已加入 SQLite 聯盟

2008-10-15 - 版本 3.6.4

SQLite 版本 3.6.4 新增了新的功能,旨在協助應用程式偵測何時未在查詢中使用索引。還有一些重要的效能改善。升級為選用。

2008-09-22 - 版本 3.6.3

SQLite 版本 3.6.3 修正了前一版本引入的 SELECT DISTINCT 中的錯誤。未新增任何新功能。建議所有使用 DISTINCT 的應用程式升級。

2008-08-30 - 版本 3.6.2

SQLite 版本 3.6.2 包含頁面快取子系統和 SQL 陳述式中用於將識別碼與資料表欄位配對的程序的重寫。這些變更旨在讓程式碼更具模組化,並讓它在未來更易於維護和更可靠。與前一版本相比,核心程式碼中大約有 5000 行非註解程式碼 (約 11.3%) 已變更。不過,除了錯誤修正外,不應有任何應用程式可見的變更。

2008-08-06 - 版本 3.6.1

SQLite 版本 3.6.1 是穩定性和效能增強版本。

2008-07-16 - 版本 3.6.0 beta

版本 3.6.0 對 VFS 物件進行變更,以便讓 SQLite 更容易移植到更多元的平台。與一些舊版應用程式可能不相容。有關詳細資訊,請參閱 35to36.html 文件。

版本 3.6.0 中引入了許多新的介面。程式碼經過非常充分的測試,適合用於穩定的系統。我們只附加「beta」標示,以便我們可以在下一個版本中調整新的介面,而無需宣告不相容性。


2008-05-12 - 版本 3.5.9

版本 3.5.9 新增一個實驗性質的 PRAGMAjournal_mode。將 journal 模式設定為 PERSIST 可提升在刪除檔案很花時間的系統上的效能。PERSIST journal 模式仍被視為實驗性質,在進一步測試之前應謹慎使用。

版本 3.5.9 預計將是版本 3.6.0 之前的最後一個穩定版本。版本 3.6.0 將對 sqlite3_vfs VFS 層進行不相容的變更,以解決原始設計中的缺陷。這些不相容性只會影響撰寫自己的自訂 VFS 層的程式設計人員(通常是嵌入式裝置建置人員)。預計的 VFS 變更將遠小於去年 9 月發生的 3.4.2 到 3.5.0 交易 中發生的變更。

此版本的 SQLite 被視為穩定且已準備好供生產使用。


2008-04-16 - 版本 3.5.8

版本 3.5.8 在虛擬機器碼產生器中包含一些重要的效能最佳化,包括常數子運算式分解和共用子運算式消除。此版本也建立新的公開介面:sqlite3_randomness() 提供存取 SQLite 內部偽亂數產生器的功能,sqlite3_limit() 允許在執行階段根據每個連線設定大小限制,而 sqlite3_context_db_handle() 是個便利常式,允許應用程式定義的 SQL 函式實作擷取其 資料庫連線 控制代碼。

此版本的 SQLite 被視為穩定且已準備好供生產使用。


2008-03-17 - 版本 3.5.7

版本 3.5.7 修復了幾個次要且不明顯的錯誤,特別是在 autoconf 產生的 makefile 中。升級是選用的。此版本的 SQLite 被視為穩定且已準備好供生產使用。

2008-02-06 - 版本 3.5.6

版本 3.5.6 修復了 3.5.5 中的次要回歸 - 與將虛擬機器大幅變更為基於暫存器的設計無關的回歸。尚未報告新虛擬機器有任何問題。此版本的 SQLite 被視為穩定且已準備好供生產使用。

2008-01-31 - 版本 3.5.5

版本 3.5.5 修改了 SQLite 核心原始碼的 8%,目的是將內部虛擬機器從堆疊式設計轉換為暫存器式設計。此變更將允許未來的最佳化,並避免過去造成問題的堆疊溢位錯誤類別。儘管此變更幅度很大,但經過廣泛測試,發現新虛擬機器沒有任何錯誤,因此我們相信這是一個非常穩定的版本。

2007-12-14 - 版本 3.5.4

版本 3.5.4 修復了 UPDATE 和 DELETE 中一個長久存在但難以察覺的錯誤,該錯誤可能會造成資料庫損毀。(請參閱問題單 #2832。)建議所有使用者升級。

此版本也讓 ORDER BY 陳述式的處理符合標準 SQL。理論上,這可能會對依賴舊有錯誤行為的現有應用程式造成問題。有關其他資訊,請參閱問題單 #2822。


2007-12-12 - 宣布成立 SQLite 聯盟

SQLite 聯盟 今日成立,MozillaSymbian 為創始會員。如 新聞稿 中所述,聯盟的目標是促進 SQLite 持續的活力和獨立性。

2007-11-27 - 版本 3.5.3

這是修正了數個小問題的增量版本。升級為選用。如果版本 3.5.2 或 3.5.1 對您來說運作良好,則沒有迫切需要變更為 3.5.3。

下載 頁面上的預建二進位檔和合併檔包含 FTS3 全文搜尋延伸模組。我們正在實驗性地執行此操作,並不保證未來會提供預建二進位檔和 FTS3。


2007-11-05 - 版本 3.5.2

這是個增量版本,修正了幾個小問題,新增了一些不常見的功能,並提供了一些效能調整。升級是可選的。

實驗性的編譯時期選項 SQLITE_OMIT_MEMORY_ALLOCATION 已不再支援。另一方面,現在可以編譯 SQLite,讓它使用靜態陣列來滿足所有動態記憶體配置需求,且從不呼叫 malloc。預期在未來的版本中,會看到記憶體配置子系統有更多根本性的變更。


2007-10-04 - 版本 3.5.1

修正一個長久存在的錯誤,如果在交易過程中發生磁碟已滿的錯誤,且該交易未回滾,可能會導致資料庫損毀。錯誤單號 #2686。

新的 VFS 層是穩定的。不過,如果需要,我們仍保留對 VFS 介面定義進行調整的權利。實作自己的 OS 介面的應用程式需要修改。詳情請參閱 34to35.html


2007-09-04 - 版本 3.5.0 alpha

SQLite 中的 OS 介面層和記憶體配置子系統已重新實作。已發布的 API 大致上未變,但(未發布的)OS 介面已大幅修改。實作自己的 OS 介面的應用程式需要修改。詳情請參閱 34to35.html

這是一個重大的變更。大約有 10% 的原始碼已修改。我們將這個第一個版本稱為「alpha」,以便讓使用者社群有時間在我們凍結新設計之前測試和評估變更。


2007-08-13 - 版本 3.4.2

在對 soft_heap_limit 功能進行壓力測試時,發現了一個可能導致資料庫損毀的錯誤,並已修正。儘管這個錯誤的後果很嚴重,但在一般應用程式中遇到它的機率很低。只有在使用 sqlite3_soft_heap_limit 介面的情況下,才建議升級。

2007-07-20 - 版本 3.4.1

此版本修正了 VACUUM 中的一個錯誤,該錯誤可能導致資料庫損毀。這個錯誤是在版本 3.3.14 中引入的。建議所有使用者升級。此外,還包含許多其他例行 增強功能和錯誤修正

2007-06-18 - 版本 3.4.0

此版本修正了兩個獨立的錯誤,任一錯誤都可能導致資料庫損毀。強烈建議升級。如果您必須繼續使用較舊版本的 SQLite,請至少閱讀如何避免這些錯誤的資訊,請參閱 CorruptionFollowingBusyError 和問題單 #2418

此版本也新增了 SQLite 將處理的事物的尺寸和數量上的明確限制。新限制可能會對使用過大字串、BLOB、表格或 SQL 陳述的現有應用程式造成相容性問題。新限制可以在編譯時增加,以解決產生的任何問題。儘管如此,此版本的版本號碼是 3.4.0,而不是 3.3.18,以引起注意可能的相容性問題。

也有一些新功能,包括增量 BLOB I/O增量 VACUUM。請參閱變更日誌以取得其他資訊。

2007-04-25 - 版本 3.3.17

此版本修正了 SQLite 前向相容性邏輯中的錯誤,該錯誤導致資料庫在應該為唯讀時變成無法讀取。僅在您計畫部署到未來可能需要升級的產品中時,才從 3.3.16 升級。對於日常使用,這可能並不重要。

2007-04-18 - 版本 3.3.16

在 3.3.14 中新增但錯誤地在 3.3.15 中關閉的效能改善已恢復。已修正一個錯誤,該錯誤會在 UNIQUE 欄位中有一個 NULL 值時,阻止 VACUUM 執行。

2007-04-09 - 版本 3.3.15

已修正 3.3.14 中引入的惱人錯誤。測試套件也有許多增強功能。

2007-04-02 - 3.3.14 版

此版本專注於效能改善。如果您使用 GCC 選項 -O3 重新編譯合併(預編譯二進位檔使用 -O2),您可能會看到效能改善 35% 或更多,具體取決於您的工作負載。此版本也新增對獨佔存取模式的支援。

2007-02-13 - 3.3.13 版

此版本修正了 ORDER BY 最佳化程式中的一個細微錯誤,此錯誤可能在使用聯結時發生。還有一些小幅度增強。建議升級。

2007-01-27 - 3.3.12 版

先前版本的第一個已發布建置使用了錯誤的原始檔組。因此,許多人下載了一個標示為「3.3.11」但實際上是 3.3.10 的建置。3.3.12 版發布是為了消除歧義。還修正了另外幾個錯誤,並增強了PRAGMA integrity_check

2007-01-22 - 3.3.11 版

3.3.11 版修正了 3.3.9 版中 3.3.10 版未能捕捉到的幾個其他問題。建議升級。

2007-01-09 - 3.3.10 版

3.3.10 版修正了先前版本引入的幾個錯誤。建議升級。

2007-01-04 - 3.3.9 版

3.3.9 版修正了在難以重現的模糊情況下可能導致資料庫損毀的錯誤。請參閱 wiki 中的 DatabaseCorruption 以取得詳細資訊。此版本也新增了新的sqlite3_prepare_v2() API,並包含了命令列殼層中的重要錯誤修正,以及對查詢最佳化程式的增強。建議升級。

2006-10-09 - 3.3.8 版

版本 3.3.8 新增使用 FTS1 模組進行全文搜尋的功能。同時也修正了一些小錯誤。僅在您想嘗試新的全文搜尋功能或在 3.3.7 中遇到問題時,才需要升級。

2006-08-12 - 版本 3.3.7

版本 3.3.7 包含對可載入擴充功能和虛擬表的支援。但這兩個功能仍被視為「測試版」,其 API 在未來的版本中可能會變更。此版本主要是提供自 3.3.6 以來累積的小錯誤修正。並非必要的升級。僅在您遇到已修正的罕見錯誤或想嘗試新功能時,才需要升級。

2006-06-19 - 有關 SQLite 的新書

The Definitive Guide to SQLite,由 Mike Owens 和 Grant Allen 撰寫的第 2 版書籍,現在已由 Apress 出版。此書涵蓋最新的 SQLite 內部結構,以及 PHP、Python、Perl、Ruby、Tcl 和 Java 的原生 C 介面和繫結。推薦閱讀。

2006-06-6 - 版本 3.3.6

變更包括提升對 Windows 病毒掃描器的容忍度,以及更快速的 :memory: 資料庫。同時也修正了幾個罕見的錯誤。在您遇到問題時,請升級。

2006-04-5 - 版本 3.3.5

此版本修正了許多小錯誤和文件中的錯字,並提供了一些小的新功能和效能提升。僅在您遇到問題或需要新功能時,才需要升級。

2006-02-11 - 版本 3.3.4

此版本修正了幾個錯誤,包括一個可能導致多執行緒系統死結的錯誤。在多執行緒環境中使用 SQLite 的任何人都應該升級。

2006-01-31 - 版本 3.3.3 穩定版

在版本 3.3.2 中未發現任何重大問題,因此我們在此宣告新的 API 和語言功能穩定且受支援。

2006-01-24 - 版本 3.3.2 測試版

隨著我們越來越接近準備發行的 3.3.x 版本,還有更多錯誤修正和效能改善。

2006-01-16 - 3.3.1 alpha 版本

上週 alpha 版本中發現的許多錯誤現已修正,而且程式庫執行速度又快了很多。

資料庫連線現在可以在執行緒之間移動,只要連線在移動時沒有鎖定即可。因此,維護資料庫連線池並將其交給暫時工作執行緒的常見範例現在已獲得支援。請協助測試此新功能。有關其他資訊,請參閱 MultiThreading wiki 頁面。


2006-01-10 - 3.3.0 alpha 版本

3.3.0 版本新增對 CHECK 約束、DESC 索引、REAL 和 INTEGER 欄位親和性分開、新的作業系統介面層設計以及許多其他變更的支援。程式碼已通過回歸測試,但仍應視為 alpha 版本。請回報任何問題。

3.3.0 版本的檔案格式已略微變更,以支援遞減索引和布林值更有效率的編碼。SQLite 3.3.0 會讀取和寫入使用任何先前版本的 SQLite 3 建立的舊式資料庫。但是,由 3.3.0 版本建立的資料庫將無法由舊版本的 SQLite 讀取或寫入。對於需要舊式檔案格式的罕見情況,可以在編譯時指定舊式檔案格式。


2005-12-19 - 3.2.8 和 2.8.17 版本

這些版本包含對 3.2.7 和 2.8.16 的一行變更,以修正自 2002 年 3 月和 2.4.0 版本以來就存在的錯誤。如果多重陳述式交易中的大型 INSERT 或 UPDATE 陳述式因唯一性約束而失敗,但包含的交易提交,該錯誤可能會導致資料庫損毀。

2005-09-24 - 3.2.7 版本

此版本修正了數個次要且不顯著的錯誤。只有在您遇到問題時才升級。

2005-09-16 - 第 3.2.6 版 - 重要錯誤修正

此版本修正了一個錯誤,如果 1 gigabytes 或更大的資料庫的 VACUUM 失敗(可能是因為磁碟空間不足或意外斷電),然後再還原,可能會導致資料庫損毀。

此版本還包括:ORDER BY 和 GROUP BY 處理已改寫為使用較少的記憶體。已新增對 COUNT(DISTINCT) 的支援。LIKE 算子現在可以在有 COLLATE NOCASE 的欄位上由最佳化器使用。


2005-08-27 - 第 3.2.5 版

此版本修正了新程式碼中幾個殘留的錯誤。我們預期此版本會穩定,且已準備好供實際使用。

2005-08-24 - 第 3.2.4 版

此版本修正了新最佳化器中的錯誤,該錯誤會在分析非常複雜的 WHERE 子句時導致區段錯誤。

2005-08-21 - 第 3.2.3 版

此版本新增了 ANALYZE 指令、CAST 算子,以及對查詢最佳化器的許多非常重要的改善。請參閱 變更記錄 以取得更多資訊。

2005-08-02 - 2005 年 SQLite 開源獎

SQLite 及其主要作者 D. Richard Hipp 已榮獲 Google 和 O'Reilly 頒發 2005 年開放原始碼獎

2005-06-13 - 第 3.2.2 版

此版本包含許多次要錯誤修正、速度改善和程式碼大小縮減。除非您遇到問題或只是想升級,否則沒有升級的理由。

2005-03-29 - 第 3.2.1 版

此版本修正了新 ALTER TABLE ADD COLUMN 指令中的記憶體配置問題。

2005-03-21 - 第 3.2.0 版

3.2.0 版本的主要目的是加入對 ALTER TABLE ADD COLUMN 的支援。新增的 ADD COLUMN 功能是由 AOL 開發人員支援並採用偉大的開放原始碼軟體而實現。感謝 AOL!

3.2.0 版本也修正了一個在發布前才發現的不明顯但嚴重的錯誤。如果您有一個多重陳述交易,且在該交易中一個 UPDATE 或 INSERT 陳述因為約束而失敗,然後您嘗試回滾整個交易,回滾可能無法正確運作。有關詳細資訊,請參閱 Ticket #1171。建議所有使用者升級。


2005-03-16 - 3.1.6 版本

3.1.6 版本修正了一個關鍵錯誤,該錯誤會在將列插入到約有 125 個欄位的表格時導致資料庫損毀。此錯誤是在 3.0.0 版本中引入的。有關其他資訊,請參閱 Ticket #1163。

2005-03-11 - 發布 3.1.4 和 3.1.5 版本

3.1.4 版本修正了一個關鍵錯誤,該錯誤會在 3.1.0 版本的自動真空模式開啟(預設為關閉)且在交易中執行 CREATE UNIQUE INDEX 但失敗,因為索引欄位並非唯一時導致資料庫損毀。任何使用自動真空功能和唯一索引的使用者都應該升級。

3.1.5 版本新增了透過設定「PRAGMA synchronous=on」來停用 OS-X 中的 F_FULLFSYNC ioctl() 的功能,而非預設的「PRAGMA synchronous=full」。曾嘗試在 3.1.4 中新增此功能,但因拼寫錯誤而無法運作。


2005-02-19 - 發布 3.1.3 版本

3.1.3 版本清除了在 3.1.2 版本中發現的一些小問題。

2005-02-15 - 發布 2.8.16 和 3.1.2 版本

在 2.x 分支和主 3.x 系列中已修正 VACUUM 指令中的重大錯誤,該錯誤可能導致資料庫損毀。此錯誤存在於所有先前版本的 SQLite 中。即使您不太可能遇到此錯誤,仍建議所有使用者升級。請參閱 #1116 號問題單以取得更多資訊。

版本 3.1.2 也是 3.1 系列的第一個穩定版本。SQLite 3.1 新增了對相關子查詢、自動真空、自動遞增、ALTER TABLE 等功能的支持,以及其他增強功能。請參閱 版本 3.1.0 的發行說明 以取得 3.1 系列中變更的詳細說明。


2005-02-01 - 發布版本 3.1.1 (beta)

版本 3.1.1 (beta) 現已在網站上提供。版本 3.1.1 完全向下相容於 3.0 系列,並具備許多新功能,包括自動真空和相關子查詢。版本 3.1.0 的 發行說明 也適用於此 beta 版本。預計在幾週內發布穩定版本。

2005-01-21 - 發布版本 3.1.0 (alpha)

版本 3.1.0 (alpha) 現已在網站上提供。版本 3.1.0 完全向下相容於 3.0 系列,並具備許多新功能,包括自動真空和相關子查詢。請參閱 發行說明 以取得詳細資訊。

這是 alpha 版本。預計約在一個星期後發布 beta 版本,並在兩個星期後發布第一個穩定版本。


2004-11-09 - SQLite 在 2004 年國際 PHP 會議

在德國法蘭克福舉辦的 2004 年國際 PHP 會議中,有一場關於 SQLite 架構和如何最佳化 SQLite 查詢的演講。
過時的網址:https://www.sqlite.org/php2004/page-001.html
該演講的投影片已提供。

2004-10-11 - 版本 3.0.8

SQLite 版本 3.0.8 包含了數個程式碼最佳化和次要錯誤修正,並新增了對 DEFERRED、IMMEDIATE 和 EXCLUSIVE 交易的支持。這是增量版本。如果您使用的版本 3.0.7 正常運作,則沒有必要升級到此版本。

2004-10-10 - SQLite 在第 11年度 Tcl/Tk 會議

本週在紐奧良舉辦的第 11 Tcl/Tk 會議中,將會有一場關於在 Tcl/Tk 中使用 SQLite 的演講。請瀏覽 http://www.tcl-lang.org/community/tcl2004/ 以取得詳細資訊。
已過期的網址:https://www.sqlite.org/tclconf2004/page-001.html
演講投影片已提供。

2004-09-18 - 版本 3.0.7

多個專案已使用版本 3.0 數個月,且未發生重大問題。我們認為它已穩定,並已準備好用於生產環境。

2004-09-02 - 版本 3.0.6(測試版)

由於對 sqlite3_step() 進行了一些重要的變更,因此我們決定在第一個「穩定」版本之前,再發布一個測試版。如果在此版本中未發現任何嚴重問題,我們將在大約一週內發布版本 3.0「穩定」版。

2004-08-29 - 版本 3.0.5(測試版)

SQLite 版本 3.0 的第四個測試版現已推出。預計下一個版本將稱為「穩定」版。

2004-08-08 - 版本 3.0.4(測試版)

SQLite 版本 3.0 的第三個測試版現已推出。此新測試版修正了多個錯誤,包括在執行 DELETE 時,如果 SELECT 正在處理中,可能會發生的資料庫損毀問題。預計在版本 3.0 正式發布之前,至少會再有一個測試版。

2004-07-22 - 版本 3.0.3(測試版)

SQLite 版本 3.0 的第二個測試版現已推出。此新測試版修正了許多錯誤,並增加了對具有不同頁面大小的資料庫的支援。下一個 3.0 版本可能會稱為最終或穩定版本。

版本 3.0 新增了對國際化的支援,以及一個新的更精簡的檔案格式。 詳細資訊。 API 和檔案格式已自 3.0.2 起修正。所有回歸測試都已通過(超過 100000 個測試),而且測試套件涵蓋了超過 95% 的程式碼。

SQLite 版本 3.0 的推出,部分歸功於 AOL 開發人員支援並擁抱出色的開放原始碼軟體。


2004-07-22 - 版本 2.8.15

SQLite 版本 2.8.15 是版本 2.8 系列的維護版本。版本 2.8 將持續進行維護並修正錯誤,但不會新增任何新功能。此版本中的所有變更都是次要的。如果您沒有遇到問題,則沒有升級的必要。

2004-06-30 - 發布版本 3.0.2(測試版)

SQLite 3.0 版本的第一個測試版現已推出。3.0 版本新增了國際化支援和一個更緊湊的新檔案格式。 詳細資訊。 從此版本開始,API 和檔案格式已凍結。所有回歸測試都已通過(超過 100000 個測試),而且測試套件涵蓋了超過 95% 的程式碼。

SQLite 版本 3.0 的推出,部分歸功於 AOL 開發人員支援並擁抱出色的開放原始碼軟體。


2004-06-25 - 網站遭到入侵

www.sqlite.org 網站於 2004-06-22 左右遭到入侵,因為 SQLite 的主要開發人員未能正確修補 CVS。證據顯示,攻擊者無法將權限提升至使用者「cvs」以上。儘管如此,我們仍以預防為由,在全新機器上從頭重建整個網站。所有服務應於 2004-06-28 恢復正常。

2004-06-18 - 3.0.0 版本(測試版)已發布

SQLite 3.0 版本的第一個測試版已公開供審查和評論。3.0 版本透過使用 UTF-16 和使用者定義的文字校對順序,加強了國際化支援。BLOB 現在可以直接儲存,而無需編碼。新的檔案格式可讓資料庫縮小 25%(視內容而定)。程式碼也快了一些。儘管有許多新功能,但程式庫大小仍小於 240KB(x86,gcc -O1)。 其他資訊

我們打算在 2004-07-01 凍結檔案格式和 API。我們鼓勵使用者仔細檢閱和評估此測試版,並在該日期前提交任何意見回饋。

SQLite 的 2.8 系列將持續支援,並在可預見的未來提供錯誤修正。


2004-06-09 - 2.8.14 版本已發布

SQLite 2.8.14 版本是穩定 2.8 系列的修補版本。如果您使用 2.8.13 沒有問題,則沒有升級的必要。這只是一個錯誤修正版本。大部分的開發工作都投入在即將推出的 3.0.0 版本。

2004-05-31 - CVS 存取暫時停用

匿名存取 CVS 儲存庫將於 2004-06-04 起暫停 2 週。在 CVS 服務中斷期間,所有人都仍可下載預先打包的原始碼套件、建立或修改問題單,或檢視變更記錄。CVS 儲存庫的完全開放存取將於 2004-06-18 恢復。

2004-04-23 - 開始執行 SQLite 版本 3

SQLite 版本 3 已開始執行。版本 3 是對 C 語言 API 和底層檔案格式的重大變更,將使 SQLite 能夠更好地支援國際化。第一個測試版預計於 2004-07-01 發布。

計畫繼續支援 SQLite 版本 2.8 並修正錯誤。但所有新開發都將在版本 3.0 中進行。


此頁面最後修改於 2023-12-05 14:43:20 UTC