Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
100 most recent check-ins
2025-07-04
| ||
12:25 | Fix harmless compiler warnings. (Leaf check-in: 13af4acebe user: drh tags: trunk) | |
11:48 | Remove an ALWAYS() added by [960a8e6fc91f4] that turns out to be false in some cases of malformed SQL. (check-in: cc8171461b user: drh tags: trunk) | |
11:06 | Do not allow the EXISTS-to-JOIN optimization if the EXISTS clause is based on a view, since that view might expand into a join. (Leaf check-in: 872c41fedd user: drh tags: empty-table-optimizations) | |
10:26 | Improve the early-termination optimization so that it works in queries which use the LIKE optimization in the outer loop. (check-in: b4e4d14824 user: drh tags: empty-table-optimizations) | |
10:17 | Merge trunk into column-text-blob-v2 branch. (Leaf check-in: f73460d4f0 user: stephan tags: column-text-blob-v2) | |
10:10 | Tweak for coverage testing of valueToTextV2(). This changes passes through coverage testing but doesn't look quite right to me, in that this part now differs from its counterpart in valueToText() (which doesn't need this to get coverage for what amounts to the same path). (check-in: dae572912f user: stephan tags: column-text-blob-v2) | |
2025-07-03
| ||
20:51 | Merge the latest trunk fixes and enhancements into the empty-table-optimizations branch (check-in: d4f47e04f5 user: drh tags: empty-table-optimizations) | |
16:05 | Fix a few cases where LIMIT clauses that were part of scalar sub-queries on virtual tables were not being passed to xBestIndex methods correctly. (check-in: 960a8e6fc9 user: dan tags: trunk) | |
15:50 | Improvements to sqlite3_vtab_rhs_value() logging in the ext/misc/vtablog.c extension. (Closed-Leaf check-in: 25131ee84f user: drh tags: vtab-limit-fixes) | |
15:32 | Make the value of an explicit LIMIT clause on a scalar sub-query available to xBestIndex for simple "LIMIT 0" and "LIMIT 1" queries. (check-in: 33b6a63caa user: dan tags: vtab-limit-fixes) | |
14:28 | Make handling of LIMIT clauses in correlated sub-queries on virtual tables more efficient. (check-in: 7214cb2a5b user: dan tags: vtab-limit-fixes) | |
14:10 | Enhancements to the xBestIndex output from the ext/misc/vtablog.c extension. (check-in: 8b31acc0b1 user: drh tags: trunk) | |
11:52 | Fix an uninitialized variable added yesterday by [d27d34fb746280e7]. This problem was discovered overnight by OSSFuzz. (check-in: 6db4703f11 user: drh tags: trunk) | |
00:17 | Minor tweaks to the exists-to-join optimization. (check-in: 9cb600ad57 user: drh tags: empty-table-optimizations) | |
2025-07-02
| ||
20:46 | Merge in the exists-to-join optimization that has been modified to relax the requirement of having an indexed join constraint. (check-in: 1c1aef2b7f user: drh tags: empty-table-optimizations) | |
17:43 | Fix VDBE coverage (check-in: ff593a16d6 user: drh tags: empty-table-optimizations) | |
15:29 | Correct mis-placed OOM checks in valueToTextV2(). (check-in: 9226a2a3c6 user: stephan tags: column-text-blob-v2) | |
14:53 | Early exit if one of the inner loops of a 3-way or larger join is an empty table. (check-in: eaad6ac707 user: drh tags: empty-table-optimizations) | |
13:24 | Per /chat and forum discussions: (A) Remove the value type output pointer from text/blob_v2(). (B) Teach blob_v2() to return an opaque non-NULL pointer for length-0 blobs. (check-in: c96539beb5 user: stephan tags: column-text-blob-v2) | |
13:19 | If the LHS for an EXCEPT or INTERSECT operator is empty, skip over the computation of the RHS. (check-in: 13f096ae8a user: drh tags: empty-table-optimizations) | |
11:47 | Improve the bytecode for joins such that it exits earlier if it determines that no output is possible. (check-in: 2d2b61cba4 user: drh tags: trunk) | |
07:52 | Add test1.c tcl bindings for sqlite3_column_text/blob_v2(). Replace, essentially randomly, some of the v1 API calls in capi2.test and capi2.test with the v2 calls to ensure identical results. Add a couple new tests comparing results between v1 and v2. (check-in: a3ca0adbaf user: stephan tags: column-text-blob-v2) | |
02:03 | Ensure that Expr.op2 values for TK_AGG_FUNCTION nodes are adjusted when query flattening. (check-in: d27d34fb74 user: drh tags: trunk) | |
2025-07-01
| ||
23:17 | Improved comments on bytecode used to implement aggregate queries, to aid in debugging. (check-in: a1a8b85cdb user: drh tags: trunk) | |
21:33 | Remove an #if 0 block. (check-in: 0363c430b5 user: stephan tags: column-text-blob-v2) | |
21:06 | Have sqlite3_value/column_text/blob_v2() return MISUSE for a NULL input object or output target only if SQLITE_ENABLE_API_ARMOR is in effect, for consistency with their sibling APIs. (check-in: 6290a8eadd user: stephan tags: column-text-blob-v2) | |
20:56 | Have sqlite3_value/column_text/blob_v2() unconditionally return MISUSE for a NULL input object or output target, rather than only when API_ARMOR is in effect. This is debatable. (check-in: c8edbfc7e8 user: stephan tags: column-text-blob-v2) | |
20:32 | Improved byte-code comments for the short-circuit optimization of [0083d5169a46104a], to aid in debugging. (check-in: 113f9d10e3 user: drh tags: trunk) | |
18:38 | Parameter number doc corrections for the previous check-in. (check-in: 97b06c4594 user: stephan tags: column-text-blob-v2) | |
18:36 | Add API docs for sqlite3_column_text_v2() and sqlite3_column_blob_v2(). (check-in: 60614fed44 user: stephan tags: column-text-blob-v2) | |
17:38 | Random JS cleanups and docs. (check-in: 5a2734bbf8 user: stephan tags: column-text-blob-v2) | |
17:36 | Cache and reuse virtual table cursors in the bytecode engine. (check-in: 2d187d4232 user: drh tags: trunk) | |
16:38 | Experimentally add another output pointer to the text/blob_v2() family which gets the sqlite3_value_type() assigned to it if it's not NULL, based on feedback in the forum. (check-in: 4aab781d2a user: stephan tags: column-text-blob-v2) | |
16:21 | Avoid an assert() failure in fts5 that may occur when processing corrupt records. (check-in: 8afd6ca857 user: dan tags: trunk) | |
15:13 | Merge trunk fixes into the empty-table-optimizations branch. (Closed-Leaf check-in: 63306e447e user: drh tags: empty-table-optimizations) | |
14:44 | Simplify the column_text/blob_v2() JS tests a bit and correct the text_v2() tests to call into both the column and value variants. (check-in: d5cb808043 user: stephan tags: column-text-blob-v2) | |
13:01 | Initial implementations of sqlite3_column_text_v2(), sqlite3_column_blob_v2(), and their JS/WASM bindings/tests. (check-in: 1d065231ab user: stephan tags: column-text-blob-v2) | |
12:56 | Increment the patch level to 3. (Leaf check-in: cf6d599ce9 user: drh tags: branch-3.50) | |
12:49 | When attempting to optimize "expr AND false" to "false" and "expr IN ()" to "false", take care not to delete aggregate functions in the "expr" as doing so can change the meaning of the query. (check-in: 355c7902de user: drh tags: branch-3.50) | |
12:43 | When attempting to optimize "expr AND false" to "false" and "expr IN ()" to "false", take care not to delete aggregate functions in the "expr" as doing so can change the meaning of the query. See forum thread f4878de3e7. (check-in: 77397bd67d user: drh tags: trunk) | |
09:02 | Add tests which demonstrate the difference in behavior for zero-length results in sqlite3_value_text_v2() (empty string) vs sqlite3_value_blob_v2() (NULL). (check-in: 2e7cf00d16 user: stephan tags: column-text-blob-v2) | |
00:34 | Add JS tests for SQLITE_ENABLE_API_ARMOR-shielded sqlite3_value_blob/text_v2() misuse. (check-in: 3c0de5b33c user: stephan tags: column-text-blob-v2) | |
00:17 | Add JS basic tests for sqlite3_value_blob_v2(). Simplify the sqlite3_value_text_v2() tests a bit. (check-in: c371f92d5b user: stephan tags: column-text-blob-v2) | |
2025-06-30
| ||
23:49 | Add JS bindings for sqlite3_value_text/blob_v2() and add basic JS tests for text_v2(). (check-in: 096c745f38 user: stephan tags: column-text-blob-v2) | |
23:17 | Restart this branch using a different take: add new "v2" routines instead of refactoring the old ones, which eliminates any performance impact or risk of behavior change for existing APIs. None of this code is actually called from anywhere yet. (check-in: b0b1b4ccb9 user: stephan tags: column-text-blob-v2) | |
22:15 | Initial experimental internal changes needed to support a hypothetical sqlite3_column_text/blob_v2(), as discussed in forum post 402a837960d9de45. This is just the first step: this change needs to cascade upwards a couple of levels, remove one level of porting-crutch API, and go through performance comparisons before we'll know whether it's really feasible. make devtest passes but there are corner error cases which require more precise testing to ensure that there are no visible changes in behavior. (Closed-Leaf check-in: 730c6a623e user: stephan tags: column-text-blob-v2) | |
21:07 | More aggressive optimization of addrHalt for RIGHT JOIN. (check-in: 5e51d1c0df user: drh tags: empty-table-optimizations) | |
20:19 | Compute WhereLevel.addrBrk and .addrHalt early so that those labels can be used to abort loops early. Use this to improve performance on two more of the cases described by forum post 52651713ac. (check-in: 6fc0b9ac23 user: drh tags: empty-table-optimizations) | |
16:41 | Strive to skip the evaluation of scalar subqueries that are part of a larger expression if the result from the scalar subquery does not change the result of the overall expression. (check-in: 0083d5169a user: drh tags: trunk) | |
15:56 | Correct ~/.local/config/... to ~/.config/... when looking for sqliterc when XDG_CONFIG_HOME is not set. Internal doc touchups. (Leaf check-in: ebb346c5aa user: stephan tags: shell-xdg-vars) | |
15:21 | Add support for using $XDG_STATE_HOME/sqlite_history or ~/.local/state/sqlite_history before fallback back to the historical default of ~/.sqlite_history. Update sqlite3.1 (man page) with the new semantics. (check-in: 6b780655cc user: stephan tags: shell-xdg-vars) | |
12:14 | For all binary operators, try to avoid computing subquery operands if the other operand is NULL. (Closed-Leaf check-in: d86eb16283 user: drh tags: optimize-null-values) | |
11:46 | Preliminary refactoring of the XDG_CONFIG_HOME support to support the pending addition of other XDG-configurable options. In response to forum post 31db1a23f9. (check-in: 69b9244e3a user: stephan tags: shell-xdg-vars) | |
11:04 | Slightly smaller and faster version of the previous check-in. (check-in: f6e6fd02f4 user: drh tags: optimize-null-values) | |
11:01 | Minor API doc typo fixes from brickviking. (check-in: 581a088df7 user: stephan tags: branch-3.50) | |
11:00 | Minor API doc typo fixes from brickviking. (check-in: b48d951916 user: stephan tags: trunk) | |
10:30 | Factor out the code that tries to avoid evaluating subquery operands if the other operand is NULL into a subroutine, so that it can be more easily reused by other parts of the code generator. (check-in: 3c6c71bcea user: drh tags: optimize-null-values) | |
2025-06-29
| ||
07:32 | Minor API doc typo fixes from brickviking. (check-in: 45acc26bb0 user: stephan tags: branch-3.50) | |
07:32 | Minor API doc typo fixes from brickviking. (check-in: c7cf9dcb69 user: stephan tags: trunk) | |
2025-06-28
| ||
17:59 | Improve the bytecode generated for comparisons so that if one operand is a subquery and the other operand evaluates to NULL, the subquery operand is not even computed. This fixes 5 of the 11 slow queries described in forum post 52651713ac. (check-in: f147bc0477 user: drh tags: optimize-null-values) | |
14:36 | Merge all the latest trunk fixes and enhancements into the reuse-schema branch. (Leaf check-in: 6e1f97d99b user: drh tags: reuse-schema) | |
14:35 | Merge the 3.50.2 changes into the reuse-schema-3.50 branch. (Leaf check-in: b66f853a24 user: drh tags: reuse-schema-3.50) | |
14:30 | Merge the latest trunk fixes and enhancements into the bedrock branch. (Leaf check-in: a6f6fbe617 user: drh tags: bedrock) | |
14:24 | Merge the latest trunk enhancements into the wal2 branch. (Leaf check-in: e7867c3992 user: drh tags: wal2) | |
14:16 | Merge the latest trunk enhancements into the begin-concurrent branch. (Leaf check-in: 1ae8d60237 user: drh tags: begin-concurrent) | |
14:00 | Version 3.50.2 (check-in: 2af157d77f user: drh tags: release, branch-3.50, version-3.50.2) | |
2025-06-27
| ||
19:56 | Raise an error right away if the number of aggregate terms in a query exceeds the maximum number of columns. (check-in: 4ae45291e6 user: drh tags: branch-3.50) | |
19:02 | Raise an error right away if the number of aggregate terms in a query exceeds the maximum number of columns. (check-in: 5508b56fd2 user: drh tags: trunk) | |
12:51 | API doc typo fixes and closing DD element tags from brickviking. (check-in: 6113572247 user: drh tags: branch-3.50) | |
12:46 | API doc typo fixes and closing DD element tags from brickviking. (check-in: c9ddd15b01 user: stephan tags: trunk) | |
2025-06-26
| ||
18:57 | Work around an apparent GCC UBSAN bug. See forum thread 1d7c25d4a2d for details. (check-in: 23056532e5 user: drh tags: trunk) | |
15:41 | Minor API doc fixes sent off-list from brickviking. (check-in: a9e9cefd05 user: drh tags: branch-3.50) | |
2025-06-25
| ||
20:42 | Minor API doc fixes sent off-list from brickviking. (check-in: cb4d05633a user: stephan tags: trunk) | |
2025-06-24
| ||
18:27 | Similar fix to the previous check-in, but this time for sqlite3_preupdate_new(). (check-in: 9aaff764d5 user: drh tags: trunk) | |
15:58 | Range check the column index on the sqlite3_preupdate_old() interface and return SQLITE_MISUSE if too large. Forum post b617e49728. (check-in: 6a5701e6c7 user: drh tags: trunk) | |
07:38 | API doc typo fixes and one rephrasing improvement from brickviking. (check-in: 85e8060c47 user: stephan tags: trunk) | |
2025-06-23
| ||
19:38 | Improve some of the error messages emitted by fts5 when it encounters corruption. (check-in: 48044a6b57 user: dan tags: trunk) | |
19:00 | Fix an SQL typo introduced by the previous check-in. (check-in: 72a81d247b user: drh tags: trunk) | |
16:51 | Escape the "_" character in LIKE patterns in the CLI. Forum post 6a89702f5d. (check-in: cf61cd359e user: drh tags: trunk) | |
13:42 | Fix a harmless compiler warning injected by [c978aed3b6f82b3d]. (check-in: f46500247b user: drh tags: trunk) | |
13:28 | Improved "statement aborts at ..." log-file messages that identify the trigger that caused the abort. (check-in: 7691264fe3 user: drh tags: trunk) | |
2025-06-22
| ||
22:48 | Add the --disable-rpath configure script flag to address forum post 13cac3b56516f849. (check-in: a59d9bb25e user: stephan tags: trunk) | |
12:04 | API doc typo fixes from brickviking. (check-in: 18e07f8f53 user: stephan tags: trunk) | |
2025-06-21
| ||
16:33 | Minor JS test cleanups prompted by a linter. (check-in: 764235a3d1 user: stephan tags: trunk) | |
16:18 | Remove some duplicated JS tests. (check-in: d1cb9ed79d user: stephan tags: trunk) | |
16:02 | Reduce the maximum --size flag for JS kvvfs speedtest1 from 4 to 2, as --size 3 and 4 are overflowing the kvvfs storage limits. (check-in: b77b3adc82 user: stephan tags: trunk) | |
15:58 | Give oo1.Stmt.get() similar treatment to [8c187140a60b]. This is an internal change only - the API is unaffected. (check-in: f5a7abc0a4 user: stephan tags: trunk) | |
15:38 | Extend the SEE-via-kvvfs tests to include all three key types. (check-in: fc001aa5ee user: stephan tags: trunk) | |
14:38 | Rework how JS's oo1.DB.exec() flags its Stmt objects to make certain Stmt APIs illegal (i.e. throwing) if called while that Stmt is being step()ped by DB.exec() (which can happen via client-provided per-result-row callbacks). This is an internal change only - the API is unaffected. Remove some unrelated dead code. (check-in: 8c187140a6 user: stephan tags: trunk) | |
06:07 | Numerous small doc typo from BrickViking. (check-in: 3aab4415de user: stephan tags: trunk) | |
2025-06-20
| ||
13:12 | Enhance sqlite3BtreeSetPageSize() so that it detects early if no changes are needed and exists with SQLITE_OK. (check-in: c978aed3b6 user: drh tags: trunk) | |
2025-06-19
| ||
20:19 | Fix an out-of-order local variable declaration in ext/misc/fileio.c. (check-in: a88bb75288 user: drh tags: trunk) | |
20:00 | Improve the accuracy of sqlite3BtreeRowCountEst(). (check-in: e553fb538e user: drh tags: trunk) | |
19:33 | Generalize the indexCellCompare() so that works on any index page, not just the current page that a cursor is pointing to. (check-in: b305a7f5db user: drh tags: trunk) | |
13:48 | Cherry-pick of documentation updates from trunk - no code changes. (check-in: c53906260e user: drh tags: branch-3.50) | |
12:35 | A slight doc rephrasing for clarity, suggested in the forum. (check-in: 0d6084a398 user: stephan tags: trunk) | |
10:46 | Doc typo fixes from forum post 0bce273669. (check-in: 8f97e3f00d user: stephan tags: trunk) | |
10:25 | Expose the column metadata APIs to WASM (which does not require a non-default sqlite3.c build, contrary to my prior mistaken claims). This adds only 424 bytes to sqlite3.wasm and 660 bytes to sqlite3.js. (check-in: 3cf983816c user: stephan tags: trunk) | |
2025-06-18
| ||
19:04 | Extend the pedantic enforcement of type in STRICT tables to cover VIRTUAL columns. (check-in: b734c74e55 user: drh tags: trunk) | |
16:17 | Enforce judgmental typing on STORED generated columns for STRICT tables. Forum post 6caf195248. (check-in: 5e9279bff0 user: drh tags: trunk) | |