SQLite: Timeline

7 min read Original article ↗

2026-08-25

18:40 Improved handling of OOM conditions in the sessions extension. Bug 2026-08-25T17:04:14Z. (leaf check-in: ce2aa9f849 ... user: drh tags: trunk) 18:28 Add assert() statements and comments to explain why the return value of sqlite3_column_name() does not need to be checked in fts3.c. Repor 2026-08-25T17:08:22Z. (check-in: 08b34b1656 ... user: dan tags: trunk) 18:26 Avoid a possible NULL pointer dereference in the QRF sublibrary when compiled with SQLITE_ENABLE_STMT_SCANSTATUS. (check-in: 58014b2a2e ... user: drh tags: trunk) 18:16 Improved handling of OOM errors in the Windows implementation of the sqlite3_stdio.c extension. Bug 2026-08-25T16:55:53Z. (check-in: 555489e4c2 ... user: drh tags: trunk) 17:59 Prevent some potential NULL pointer deferences following misuse of the non-standard amatch extension. Bug 2026-08-25T16:47:32Z. (check-in: 99b69371a1 ... user: drh tags: trunk) 17:12 New optimizations for improved performance of UNION with LIMIT 1, with or without ORDER BY. (check-in: b5b8ede613 ... user: drh tags: trunk) 17:08 Fix two test cases that do not work when optimizations are disabled. (closed check-in: e78b72fadf ... user: drh tags: union-to-union-all) 16:29 Make the optimization of UNION with ORDER BY and LIMIT sound by restricing it to LIMIT 1. (check-in: 7e6e665d05 ... user: drh tags: union-to-union-all) 16:15 Fix OOM handling in little-used extension file "expert.c". Report 2026-08-25T16:02:31Z. (check-in: c89f4f7967 ... user: dan tags: trunk) 15:49 Merge the latest trunk enhancements into the union-to-union-all branch. (check-in: c58631b26a ... user: drh tags: union-to-union-all) 14:27 Update the Lemon documentation with clarifications regarding the %fallback and %wildcard directives. (check-in: f3ad1b4394 ... user: drh tags: trunk) 14:26 When an expression that may have a subtype from the WHERE clause of a partial index is substituted for a column value, clear the subtype before the value is used. Report 2026-08-25T05:36:33Z. (check-in: e6ae6fbd5c ... user: dan tags: trunk) 11:50 Fix test file default.test so that it works with SQLITE_OMIT_ALTERTABLE builds. (check-in: ff0e3dd094 ... user: dan tags: trunk) 11:42 Avoid coding WHERE constraints too early when using the OR-optimization with OUTER join queries. Report 2026-08-25T02:08:22Z. (check-in: a3d15e4937 ... user: dan tags: trunk) 10:39 Change error message text in the previous check-in to not have initial caps, for consistency with other error messages. (check-in: c4bd2ffcb7 ... user: drh tags: trunk)

2026-08-24

21:20 Prohibit using ALTER TABLE to add or drop, or rename to or from a rowid alias, unless the table is a WITHOUT ROWID table. Report 2026-08-23T15:59:23Z. (check-in: dfcff5be53 ... user: dan tags: trunk) 18:55 Avoid a technically undefined signed integer overflow in fts5. Report 2026-08-23T16:25:44Z. (check-in: cde23480be ... user: dan tags: trunk) 18:24 Fix some fts5 cases where all columns are excluded by a column filter (so that no rows match). Report 2026-08-23T16:25:44Z. (check-in: 7c9b711fc8 ... user: dan tags: trunk) 17:29 Ensure that the fts5_vocab.term column behaves as if it has blob affinity for comparisons. Report 2026-08-23T16:25:44Z. (check-in: a832bc1ef2 ... user: dan tags: trunk) 17:08 Fix a problem with combining index=none and secure-delete modes causing full-text index entries to be sometimes lost when inserts and deletes on the same token are combined in the same transaction. Report 2026-08-23T16:25:44Z. (check-in: e1f939f473 ... user: dan tags: trunk) 16:19 Fix harmless compiler warning. (check-in: 0c5f5b37ce ... user: drh tags: trunk) 14:41 When generating code to evaluate a vector IN constraint where the RHS of the IN operator is a subquery, if the removeUnindexableInClauseTerms() subroutine changes the order of terms in the IN operator, then do not allow the modified IN operator to reuse a previously generated evaluation of the subquery. (leaf check-in: 2f95f4a873 ... user: drh tags: branch-3.53) 14:40 Ensure that when a large integer value (too large to be losslessly converted to double) is specified as a default value for a column with REAL affinity, the real version of the value is stored in indexes. Report 2026-08-23T15:39:59Z. (check-in: 2cb349e5b0 ... user: dan tags: trunk) 14:30 When generating code to evaluate a vector IN constraint where the RHS of the IN operator is a subquery, if the removeUnindexableInClauseTerms() subroutine changes the order of terms in the IN operator, then do not allow the modified IN operator to reuse a previously generated evaluation of the subquery. Bug 2026-08-23T06:58:36Z. (check-in: 8ee92456eb ... user: drh tags: trunk) 14:22 Ensure that when a large integer value (too large to be losslessly converted to double) is specified as a default value for a column with REAL affinity, the real version of the value is stored in indexes. Report 2026-08-23T15:39:59Z. (closed check-in: c494b123f5 ... user: dan tags: bigint-defaults) 09:56 Remove a harmless unused variadic argument in sqlite3_rsync. Bug report 2026-08-24T01:22:51Z. (check-in: 5231ac428d ... user: stephan tags: trunk) 00:08 The optimization of disabling an ORDER BY term if it is constrained by an equality comparison with a column from an outer query does not work if there is an affinity mismatch between the two columns. This is a follow-on to check-in [16aed5d0c63dcdc2] and a fix for Bug 2026-08-23T01:02:14Z. (check-in: 383e42bc10 ... user: drh tags: trunk)

2026-08-23

21:41 Correctly enforce a UNIQUE constraint on a non-PRIMARY KEY column of a table that has an INTEGER PRIMARY KEY with ON CONFLICT REPLACE and that has a AFTER DELETE trigger that fires when the REPLACE happens and that trigger tries to INSERT a new row that violates uniqueness. Bug 2026-08-22T23:55:15Z. (check-in: 521c9f5f28 ... user: drh tags: trunk)

2026-08-22

19:27 Enhance sqlite3_bind_int64() so that it never triggers a reprepare if the value does not actually change. (check-in: db0cb462aa ... user: drh tags: trunk) 17:56 Fix incorrect termination of varargs argument to pickStr() in check-in [852972861636d75e] from yesterday. (check-in: ad7d15323b ... user: drh tags: trunk) 16:33 Remove some unnecessary sqlite3_test_control() optimization control flags for a small performance increase and size reduction. (check-in: 2a9cb1e12a ... user: drh tags: trunk) 15:56 Improved use of LIMIT in UNION operators. (check-in: 7304e5aeaf ... user: drh tags: union-to-union-all) 14:41 New optimization bit SQLITE_UnionLimit. (check-in: 5890dbe54d ... user: drh tags: union-to-union-all) 11:10 Improved testability. (check-in: e8e1ce6dae ... user: drh tags: union-to-union-all) 10:39 Add an optimization that converts UNION into UNION ALL if there is a LIMIT 1 and no ORDER BY. (check-in: fb83742dd1 ... user: drh tags: union-to-union-all) 09:33 Fix check-in [468e730036edac22] so that it works with DESC indexes. Bug 2026-08-22T07:01:45Z. (check-in: d1f4fa43f3 ... user: drh tags: trunk) 01:21 A couple of fixes, one of them important, for the previous check-in. (check-in: 3a01099c45 ... user: drh tags: trunk)

2026-08-21

20:32 Faster implementation of sqlite3_bind_int64(). Reduce the need to reprepare when replacing one integer binding with a different integer value is many cases. (check-in: 98edd4ac22 ... user: drh tags: trunk) 20:21 Refactor. 2M cycles faster on x64. (closed check-in: 2b3e73200b ... user: drh tags: reduce-reprepares) 14:04 In the CLI, finer-grain control of what status information is displayed via the ".stats" command. Add the ability to reset peak measurements after each display. (check-in: 8529728616 ... user: drh tags: trunk) 00:31 Fix a harmless compiler warning in the non-deliverable normalize.c extension. Bug 2026-08-20T23:33:57Z. (check-in: 11a73d18be ... user: drh tags: trunk)

2026-08-20

16:47 Fix a faulty assert() in lemon, as reported at Forum post 2026-08-20T14:18:08Z. (check-in: 0672f6f074 ... user: drh tags: trunk) 15:59 Remove a literal 0x0d character from a sessions test script, using char(0x0d) in its place, to avoid false-positive mixed-line-ending warnings from Fossil. (check-in: d0e4714aff ... user: drh tags: trunk) 14:43 Merge the latest trunk enhancements into the reuse-schema branch. (leaf check-in: 9d4f4c989a ... user: drh tags: reuse-schema) 14:32 Merge the latest trunk enhancements into the bedrock branch via wal2. (leaf check-in: 82abbf1d03 ... user: drh tags: bedrock) 14:21 Merge the latest trunk enhancements into wal2 branch. (leaf check-in: 7257cc1b70 ... user: drh tags: wal2) 14:14 Merge the latest trunk enhancements into the begin-concurrent branch. (leaf check-in: 6095ade60d ... user: drh tags: begin-concurrent) 14:05 Merge the latest trunk enhancements into the reduce-reprepares branch. (check-in: 62ad88fe1c ... user: drh tags: reduce-reprepares) 13:25 Performance enhancements (inlining and partial inlining) in the jsonbPayloadSize() routine of the JSON logic saves a little more than 10 million cycles (0.6%) on the standard benchmark (gcc 13.3, -Os, mint linux) while using less than 700 extra bytes of code space. (check-in: 3bd5456e50 ... user: drh tags: trunk) 13:12 Use testcase() macros to prove coverage in jsonbPayloadSizeWide() (closed check-in: cff777eeb9 ... user: drh tags: opt-inline-jsonbPayloadSize)