* Fri Mar 13 2026 max@suse.com
- Update to version 3.51.3:
* Fix the WAL-reset database corruption bug:
https://sqlite.org/wal.html#walresetbug
* Other minor bug fixes.
* Thu Jan 22 2026 max@suse.com
- Update to version 3.51.2:
* bsc#1259619, CVE-2025-70873: zipfile extension may disclose
uninitialized heap memory during inflation.
* Fix an obscure deadlock in the new broken-posix-lock detection
logic.
* Fix multiple problems in the EXISTS-to-JOIN optimization.
* Other minor bug fixes.
* Fri Nov 28 2025 max@suse.com
- Update to version 3.51.1:
* Fix incorrect results from nested EXISTS queries caused by the
optimization in item 6b in the 3.51.0 release.
* Fix a latent bug in fts5vocab virtual table, exposed by new
optimizations in the 3.51.0 release
- Changes in version 3.51.0:
* New macros in sqlite3.h:
- SQLITE_SCM_BRANCH → the name of the branch from which the
source code is taken.
- SQLITE_SCM_TAGS → space-separated list of tags on the source
code check-in.
- SQLITE_SCM_DATETIME → ISO-8601 date and time of the source
code check-in.
* Two new JSON functions, jsonb_each() and jsonb_tree() work the
same as the existing json_each() and json_tree() functions
except that they return JSONB for the "value" column when the
"type" is 'array' or 'object'.
* The carray and percentile extensions are now built into the
amalgamation, though they are disabled by default and must be
activated at compile-time using the -DSQLITE_ENABLE_CARRAY
and/or -DSQLITE_ENABLE_PERCENTILE options, respectively.
* Enhancements to TCL Interface:
- Add the -asdict flag to the eval command to have it set the
row data as a dict instead of an array.
- User-defined functions may now break to return an SQL NULL.
* CLI enhancements:
- Increase the precision of ".timer" to microseconds.
- Enhance the "box" and "column" formatting modes to deal with
double-wide characters.
- The ".imposter" command provides read-only imposter tables
that work with VACUUM and do not require the --unsafe-testing
option.
- Add the --ifexists option to the CLI command-line option and
to the .open command.
- Limit columns widths set by the ".width" command to 30,000 or
less, as there is not good reason to have wider columns, but
supporting wider columns provides opportunity to malefactors.
* Performance enhancements:
- Use fewer CPU cycles to commit a read transaction.
- Early detection of joins that return no rows due to one or
more of the tables containing no rows.
- Avoid evaluation of scalar subqueries if the result of the
subquery does not change the result of the overall expression.
- Faster window function queries when using
"BETWEEN :x FOLLOWING AND :y FOLLOWING" with a large :y.
* Add the PRAGMA wal_checkpoint=NOOP; command and the
SQLITE_CHECKPOINT_NOOP argument for sqlite3_wal_checkpoint_v2().
* Add the sqlite3_set_errmsg() API for use by extensions.
* Add the sqlite3_db_status64() API, which works just like the
existing sqlite3_db_status() API except that it returns 64-bit
results.
* Add the SQLITE_DBSTATUS_TEMPBUF_SPILL option to the
sqlite3_db_status() and sqlite3_db_status64() interfaces.
* In the session extension add the sqlite3changeset_apply_v3()
interface.
* For the built-in printf() and the format() SQL function, omit
the leading '-' from negative floating point numbers if the '+'
flag is omitted and the "#" flag is present and all displayed
digits are '0'. Use '%#f' or similar to avoid outputs like
'-0.00' and instead show just '0.00'.
* Improved error messages generated by FTS5.
* Enforce STRICT typing on computed columns.
* Improved support for VxWorks
* JavaScript/WASM now supports 64-bit WASM. The canonical builds
continue to be 32-bit but creating one's own 64-bit build is
now as simple as running "make".
* Improved resistance to database corruption caused by an
application breaking Posix advisory locks using close().
* Tue Oct 21 2025 max@suse.com
- bsc#1252217: Add a %license file.
* Tue Aug 26 2025 max@suse.com
- bsc#1248586: Fix icu-enabled build.
Version: 3.50.4-160000.1.2
* Mon Aug 11 2025 max@suse.com
- Update to version 3.50.4:
* Fix two long-standings cases of the use of uninitialized
variables in obscure circumstances.
* Thu Jul 17 2025 max@suse.com
- Update to version 3.50.3:
* Fix a possible memory error that can occur if a query is made
against against FTS5 index that has been deliberately corrupted
in a very specific way (CVE-2025-7709, bsc#1254670).
* Fix the parser so that it ignored SQL comments in all places of
a CREATE TRIGGER statement. This resolves a problem that was
introduced by the introduction of the
SQLITE_DBCONFIG_ENABLE_COMMENTS feature in version 3.49.0.
* Fix an incorrect answer due to over-optimization of an AND
operator.
* Tue Jul 01 2025 max@suse.com
- Update to 3.50.2:
* Fix the concat_ws() SQL function so that it includes empty
strings in the concatenation.
* Avoid writing frames with no checksums into the wal file if a
savepoint is rolled back after dirty pages have already been
spilled into the wal file.
* Fix the Bitvec object to avoid stack overflow when the
database is within 60 pages of its maximum size.
* Fix a problem with UPDATEs on fts5 tables that contain BLOB
values.
* Fix an issue with transitive IS constraints on a RIGHT JOIN.
* CVE-2025-6965, bsc#1246597:
Raise an error early if the number of aggregate terms in a
query exceeds the maximum number of columns, to avoid
downstream assertion faults.
* Ensure that sqlite3_setlk_timeout() holds the database mutex.
* Mon Jun 09 2025 andreas.stieger@gmx.de
- Update to 3.50 (3.50.1):
* Improved handling and robust output of control characters
* sqlite3_rsync no longer requires WAL mode and needs less
bandwidth
* Bug fixes and optimized JSON handling
* Performance optimizations and developer visible fixes
* Wed May 07 2025 max@suse.com
- Update to release 3.49.2:
* Fix a bug in the NOT NULL optimization of version 3.40.0 that
can lead to a memory error if abused.
* Fix the count-of-view optimization so that it does not give an
incorrect answer for a DISTINCT query.
* Fix a possible incorrect answer that can result if a UNIQUE
constraint of a table contains the PRIMARY KEY column and that
UNIQUE constraint is used by an IN operator.
* Fix obscure problems with the generate_series() extension
function.
* Incremental improvements to the configure/make.
* Thu Apr 17 2025 mardnh@gmx.de
- Add subpackage for the lemon parser generator.
- Add patches:
* sqlite-3.49.0-fix-lemon-missing-cflags.patch
* sqlite-3.6.23-lemon-system-template.patch
* Tue Mar 11 2025 jengelh@inai.de
- Mark build recipe as POSIX-sh-incompatible
- Run mkdir/rm with verbose mode for the build log
* Tue Feb 18 2025 max@suse.com
- Update to release 3.49.1:
* Improve portability of makefiles and configure scripts.
* CVE-2025-29087, CVE-2025-3277, bsc#1241020:
Fix a bug in the concat_ws() function, introduced in version
3.44.0, that could lead to a memory error if the separator
string is very large (hundreds of megabytes).
* CVE-2025-29088, bsc#1241078: Enhanced the
SQLITE_DBCONFIG_LOOKASIDE interface to make it more robust
against misuse.
* Thu Feb 06 2025 max@suse.com
- Update to release 3.49.0:
* Enhancements to the query planner:
- Improve the query-time index optimization so that it works on
WITHOUT ROWID tables.
- Better query plans for large star-query joins. This fixes
three different performance regressions that were reported
on the SQLite Forum.
- When two or more queries have the same estimated cost, use
the one with the fewer bytes per row.
* Enhance the iif() SQL function so that it can accept any number
of arguments greater than or equal to two.
* Enhance the session extension so that it works on databases
that make use of generated columns.
* Omit the SQLITE_USE_STDIO_FOR_CONSOLE compile-time option which
was not implemented correctly and never worked right. In its place
add the SQLITE_USE_W32_FOR_CONSOLE_IO compile-time option. This
option applies to command-line tools like the CLI only, not to the
SQLite core. It causes Win32 APIs to be used for console I/O
instead of stdio. This option affects Windows builds only.
* Three new options to sqlite3_db_config(). All default "on".
SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE
SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE
SQLITE_DBCONFIG_ENABLE_COMMENTS
* Thu Jan 16 2025 max@suse.com
- Re-enable SONAME which got disabled by default in 3.48.0.
* https://www.sqlite.org/src/forumpost/5a3b44f510df8ded
* https://sqlite.org/forum/forumpost/ab8f15697a