Small. Fast. Reliable.
Choose any three.
SQLite Release 3.39.3 On 2022-09-05
Changes in version 3.39.0 (2022-06-25):
- Add (long overdue) support for RIGHT and FULL OUTER JOIN.
- Add new binary comparison operators IS NOT DISTINCT FROM and IS DISTINCT FROM
that are equivalent to IS and IS NOT, respective, for compatibility with
PostgreSQL and SQL standards.
- Add a new return code (value "3") from the sqlite3_vtab_distinct()
interface that indicates a query that has both DISTINCT and ORDER BY
- Added the sqlite3_db_name() interface.
- The unix os interface resolves all symbolic links in database
filenames to create a canonical name for the database before the
file is opened.
If the SQLITE_OPEN_NOFOLLOW flag is used with sqlite3_open_v2()
or similar, the open will fail if any element of the path is a
- Defer materializing views until the materialization
is actually needed, thus avoiding unnecessary work if the materialization turns
out to never be used.
- The HAVING clause of a SELECT statement is now allowed on any aggregate query,
even queries that do not have a GROUP BY clause.
- Many microoptimizations collectively reduce CPU cycles by about 2.3%.
Additional changes in version 3.39.1 (2022-07-13):
- Fix an incorrect result from a query that uses a view that contains a compound
SELECT in which only one arm contains a RIGHT JOIN and where the view is not
the first FROM clause term of the query that contains the view.
forum post 174afeae5734d42d.
- Fix some harmless compiler warnings.
- Fix a long-standing problem with ALTER TABLE RENAME that can only arise
if the sqlite3_limit(SQLITE_LIMIT_SQL_LENGTH) is set to a very small value.
- Fix a long-standing problem in FTS3 that can only arise when compiled with
the SQLITE_ENABLE_FTS3_PARENTHESIS compile-time option.
- Fix the build so that is works when the SQLITE_DEBUG and
SQLITE_OMIT_WINDOWFUNC compile-time options are both provided at the
- Fix the initial-prefix optimization for the REGEXP extension so that it works
correctly even if the prefix contains characters that require a 3-byte UTF8
- Enhance the sqlite_stmt virtual table so that it buffers all of its output.
Additional changes in version 3.39.2 (2022-07-21):
- Fix a performance regression in the query planner associated with rearranging
the order of FROM clause terms in the presences of a LEFT JOIN.
- Apply fixes for CVE-2022-35737, Chromium bugs 1343348 and 1345947,
forum post 3607259d3c, and
other minor problems discovered by internal testing.
Additional changes in version 3.39.3 (2022-09-05):
- Use a statement journal on DML statement affecting two or more database
rows if the statement makes use of a SQL functions that might abort. See
forum thread 9b9e4716c0d7bbd1.
- Use a mutex to protect the PRAGMA temp_store_directory and
PRAGMA data_store_directory statements, even though they are deprecated and
documented as not being threadsafe. See
forum post 719a11e1314d1c70.
- Other bug and warning fixes. See the
- SQLITE_SOURCE_ID: 2022-09-05 11:02:23 4635f4a69c8c2a8df242b384a992aea71224e39a2ccab42d8c0b0602f1e826e8
- SHA3-256 for sqlite3.c: 2fc273cf8032b601c9e06207efa0ae80eb73d5a1d283eb91096c815fa9640257
A complete list of SQLite releases
in a single page and a chronology are both also available.
A detailed history of every
check-in is available at
SQLite version control site.