SQLite

Timeline
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

100 most recent check-ins related to "trunk"

2024-05-24
23:44
Ensure that queries like "SELECT func(a) FROM tab GROUP BY 1" only call the func() function once per row. Fix for the issue described in forum thread bf8f43aa522c2299. (Leaf check-in: 663f5dd3 user: drh tags: trunk)
21:38
Fix another fts5 problem related to unknown tokenizer modules. (check-in: e78b7783 user: dan tags: trunk)
21:23
Fix a crash in fts5 that could occur within "PRAGMA integrity_check" if the specified tokenizer was unknown. (check-in: 061d7b69 user: dan tags: trunk)
20:18
When omitting result columns for the vector-IN optimization, make sure that any result-set column references in both the ORDER BY clause and the GROUP BY clause are updated appropriately. (Closed-Leaf check-in: f890812d user: drh tags: group-by-consistency)
18:31
Ensure that queries like "SELECT indeterministic(a) FROM tbl GROUP BY 1" invoke the indeterministic function only once for each row of tbl. (check-in: 4555d665 user: dan tags: group-by-consistency)
14:16
Add the stmtrand() extension function for use in testing. (check-in: 5c97a5b9 user: drh tags: trunk)
13:33
Fix an "ifcapable" expression in values.test. (check-in: b8442d2a user: dan tags: trunk)
2024-05-23
23:30
Fix the window-function group_concat() so that it returns an empty string if it has one or more empty string inputs. (check-in: 7fe11274 user: drh tags: branch-3.46)
23:26
Fix the window-function group_concat() so that it returns an empty string if it has one or more empty string inputs. This fixes a bug introduced by [c6da39115d3e2b0f] on 2019-03-26 (version 3.28.0) and reported by [forum/forumpost/bf8f43aa522c2299|forum post bf8f43aa522c2299]. (check-in: cec6bb3f user: drh tags: trunk)
15:05
Merge various enhancements that were being held on a branch until after the 3.46.0 release. (1) Allow arbitrary expressions in the second argument to the RAISE() function. (2) Performance optimization to the OP_OpenRead and OP_OpenWrite bytecode operators. (3) Allow FTS5 tables to be dropped even if the associated tokenizer is not available. (4) Performance optimizations in FTS5. (5) Generate better bytecode to improve performance of ONEROW scans. (check-in: 1e5385ff user: drh tags: trunk)
14:58
Increase the version number to 3.47.0 to begin the next development cycle. (check-in: 20e228a2 user: drh tags: trunk)
14:09
Version 3.46.0 for the reuse-schema branch (Leaf check-in: 8f6b8594 user: drh tags: reuse-schema)
14:05
Version 3.46.0 for the wal2 branch. (Leaf check-in: fdc0e148 user: drh tags: wal2)
14:04
Version 3.46.0 for the begin-concurrent branch (Leaf check-in: e3f8c70e user: drh tags: begin-concurrent)
13:25
Version 3.46.0 (check-in: 96c92aba user: drh tags: trunk, release, major-release, version-3.46.0)
2024-05-21
17:37
Ensure an sqlite_dbdata cursor is properly reset before being used again, even if it has already encountered database corruption. (check-in: 3210e1ca user: dan tags: trunk)
15:20
Merge the lates trunk enhancements into the reuse-schema branch. (check-in: 97e0af88 user: drh tags: reuse-schema)
15:20
Merge the latest trunk enhancements into the wal2 branch. (check-in: d4217d9f user: drh tags: wal2)
15:17
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 5c1c8651 user: drh tags: begin-concurrent)
14:54
Do not attempt to run mmapcorrupt.test with builds that do not support mmap(). (check-in: 54a49f18 user: dan tags: trunk)
13:34
Fix harmless compiler warnings. (check-in: aab59f9f user: drh tags: trunk)
11:11
Fix the -> and ->> operators so that when the RHS is a string that looks like a number, it is still treated as a string, because that is what PG does. Forum post 9e52cdfe15c3926e. (check-in: de8182cf user: drh tags: trunk)
2024-05-20
19:59
Omit a capi3 test from 2007 that depends upon undefined behavior (UAF). (check-in: a60a0b75 user: drh tags: trunk)
19:51
Do not run the tests in recovercorrupt4.test with the inmemory_journal permutation. (check-in: c13205d6 user: dan tags: trunk)
17:52
Improvements to the documentation of sqlite3_vtab_distinct(). Do not allow sqlite3_vtab_distinct() to return 2 or 3 if the rowid column of the virtual table is used, as doing so might lead to an incorrect answer. (check-in: 08058d66 user: drh tags: trunk)
16:00
Improvements to the sqlite3_vtab_distinct() documentation. (Closed-Leaf check-in: 6ee041d3 user: drh tags: vtab-distinct-fix)
2024-05-18
20:00
Fix the definition of sqlite3_vtab_distinct() such that return codes 2 and 3 mean that all rows must be distinct over "colUsed" which is a superset of "aOrderBy". Also, disallow return codes 2 and 3 if the rowid of the virtual table is accessed. (check-in: 922731ce user: drh tags: vtab-distinct-fix)
15:21
JS error message and doc typos reported in the forum. No code changes. (check-in: 1a073f9a user: stephan tags: trunk)
2024-05-17
22:51
Improvements to a VDBE comment. No changes to anything that affects queries. (check-in: c2188da8 user: drh tags: trunk)
14:26
Merge branches "fix-onerow-opt", "faster-openread", "fts5-delay-tokenizer" and "enhanced-raise", each containing minor enhancements prepared for 3.46, into this branch. (Closed-Leaf check-in: 6dc64721 user: dan tags: pending-3.46)
13:56
Fix a problem in where.c preventing SQLite from identifying some ONEROW scans, leading to (slightly) sub-optimal byte-code. (Closed-Leaf check-in: b41e7120 user: dan tags: fix-onerow-opt)
2024-05-16
16:22
Add extra tests for the error messages generated by sqlite3_declare_vtab() when passed something other than a well-formed CREATE TABLE statement. (check-in: 5fa0c2a0 user: dan tags: trunk)
15:57
The sqlite3_declare_vtab() interface should return SQLITE_ERROR, not SQLITE_MISUSE when a nonsense SQL input is provided, for legacy compatibility. Forum post 4b875d7b2a. (check-in: 1ec2961a user: drh tags: trunk)
00:20
Fix a case where an error in the ORDER BY clause of an aggregate function that is part of a trigger body might cause an assert() to fail in an ALTER TABLE command. dbsqlfuzz 899d9255555a07f1fe11a0bb51a2fe197b3150cd (check-in: 953271f2 user: drh tags: trunk)
2024-05-15
23:36
Back out the assert() fixes from [a9443dbfbe25e588] and [3afaeac56dff58db] (but keep the corresponding test cases) because they are both made obsolete by the previous fix on this branch. (Closed-Leaf check-in: 3120c7c8 user: drh tags: alter-table-fix)
21:38
Fix a case where an error in the ORDER BY clause of an aggregate function that is part of a trigger body might cause an assert() to fail in an ALTER TABLE command. (check-in: b79a8be3 user: dan tags: alter-table-fix)
15:11
If there is no data available for a field in a corrupted record, but the type is available, have the recovery extension substitute 0, 0.0, '' or X'' instead of a NULL value. (Leaf check-in: 78051359 user: dan tags: branch-3.45)
15:06
If there is no data available for a field in a corrupted record, but the type is available, have the recovery extension substitute 0, 0.0, '' or X'' instead of a NULL value. (check-in: 8eb326c2 user: dan tags: trunk)
2024-05-13
20:06
Allow existing fts5 tables to be dropped even if the associated tokenizer is not available. (check-in: 69ef47ee user: dan tags: fts5-delay-tokenizer)
2024-05-12
00:26
Optimization in the implementation of OP_OpenRead and OP_OpenWrite (Closed-Leaf check-in: 3a256a16 user: drh tags: faster-openread)
2024-05-11
16:44
Add tests to bestindexC.test. No changes to code. (check-in: 58d938c0 user: dan tags: trunk)
2024-05-10
18:24
Fix aggregate function processing to correctly deal with OOMs inside of sqlite3ParserAddCleanup(). (dbsqlfuzz b2d11ca70e55ee8bde48ae0b53fa3e9355812f95). Also add improved testing support by causing sqlite3FaultSim(300) to simulate an OOM inside of sqlite3ParserAddCleanup() and by adding improved fault-sim support to the CLI. (check-in: c6fd70b3 user: drh tags: trunk)
18:15
Add a test for the fixes on this branch. (Closed-Leaf check-in: 716088d6 user: dan tags: cleanup-testing)
16:28
Add an sqlite3FaultSim(300) call to the sqlite3ParserAddCleanup() routine for more precise simulation of OOM errors in that routine. (check-in: 1e886390 user: drh tags: cleanup-testing)
09:26
Squelch two OMIT-flag-related warnings reported in forum post 388243d9882067a9. No functional changes. (check-in: 1d671605 user: stephan tags: trunk)
2024-05-09
18:54
Reformulate a for-in loop to a for loop in wasm.xWrap() to work around downstream frameworks modifying the JS Array prototype, as reported in forum post b549992634b55104. (check-in: ce2eb6d8 user: stephan tags: branch-3.45)
18:39
Add a maintenance-reminder comment explaining [dc58ed65492857]. (check-in: 857f5d7f user: stephan tags: trunk)
18:00
Reformulate a for-in loop to a for loop in wasm.xWrap() to work around downstream frameworks modifying the JS Array prototype, as reported in forum post b549992634b55104. (check-in: dc58ed65 user: stephan tags: trunk)
17:45
Fix a problem causing the recovery extension to use excessive memory and CPU time in some cases. (check-in: bc394acb user: dan tags: branch-3.45)
2024-05-08
17:57
Rename a shadowed local var, as reported in forum post 2ba65af31. No functional changes. (check-in: d030c87c user: stephan tags: trunk)
17:42
Allow arbitrary expressions as the second argument to RAISE(). (Closed-Leaf check-in: 003e1c8c user: drh tags: enhanced-raise)
11:51
Fix a hyperlink typo in session documentation. (check-in: 42d67c6f user: drh tags: trunk)
2024-05-07
19:45
Fix bug in test script sessionconflict.test. (check-in: e29decb8 user: dan tags: trunk)
17:58
Ensure successive scans of pragma virtual tables return consistent rowids. (check-in: 6838bf3a user: dan tags: trunk)
13:20
Fix a compilation error in test/lemon-test01.y, reported in forum post f0ad095705. (check-in: 576b68c8 user: stephan tags: trunk)
2024-05-06
20:21
When extracting links from sqlar archives, clobber any existing file or link, and do not call utimes() to set the timestamp - it looks through the link and operates on the target. (check-in: 2bf8c3f9 user: dan tags: trunk)
20:18
Omit redundant unary + operators from the AST. (check-in: f81cc149 user: drh tags: trunk)
19:04
Avoid unnecessary recursion in sqlite3ExprDeleteNN(). This complicates the code, but it is needed to prevent nuisance "stack overflow" reports from OSSFuzz while it is running the latest ASAN. (check-in: 70abc144 user: drh tags: trunk)
17:55
Add new sessions API sqlite3changegroup_add_change(). (check-in: 5eaab43c user: dan tags: trunk)
17:32
Edit comments in sqlite3session.h. (Closed-Leaf check-in: 49f84878 user: dan tags: changegroup-add-change)
11:27
Fix problem in sqlar_uncompress() when being used to extract symbolic links. (check-in: 4d90c3f1 user: dan tags: trunk)
2024-05-05
10:00
Add comment to the test/lemon-test01.y file indicating that it does not work and is for historical reference only. (check-in: 9bdf73a8 user: drh tags: trunk)
2024-05-04
21:10
Add new sessions API sqlite3changegroup_add_change(). (check-in: 73647db1 user: dan tags: changegroup-add-change)
16:50
Add test cases to test/in7.test. No code changes. (check-in: 8c3086f9 user: dan tags: trunk)
15:10
Assume that an SQL function is able to return a subtype if any of its arguments are SQL functions that are able to return subtypes. This closes a corner-case hole in the patch at [ba789a7804ab96d8]. (check-in: b36d499e user: drh tags: trunk)
15:04
Assume that a function is able to return a subtype if either (1) it is itself marked with SQLITE_RESULT_SUBTYPE, or (2) one of its arguments is a function that is able to return a subtype. This check-in backs out the code changes from the previous two on this same branch, but keeps the test cases from the previous two. (Closed-Leaf check-in: f16b200f user: drh tags: func-rw-subtype)
2024-05-03
19:35
The coalesce(), ifnull(), and iif() functions pass through subtype values from their arguments, and hence need to have the SQLITE_RESULT_SUBTYPE flag set. (check-in: cdd1610c user: drh tags: func-rw-subtype)
2024-05-02
19:22
Fix a problem with queries that use "IN(...) ORDER BY ... NULLS LAST" or similar introduced by [d7648e21605a0b38]. (check-in: 26b2d939 user: dan tags: trunk)
18:16
Avoid an assert failure accessible only when internal testing features are enabled. dbsqlfuzz crash-66abacda6bca6bd531e25595e8c8068e2c710326.txt. (check-in: fbc446da user: dan tags: trunk)
17:46
Fix a case where the recovery extension might write uninitialized data to the recovered database. (check-in: 8519b4d0 user: dan tags: trunk)
14:48
Avoid an OP_Next in cases where an IN(...) query against a UNIQUE index may return at most 1 row. (check-in: d7648e21 user: dan tags: trunk)
12:14
Fix the CREATE TABLE performance issue described by forum thread 4cf69794d9dfff7c in two different ways: (1) Omit the call to PRAGMA integrity_check('X') that was being done after CREATE TABLE "X" because the result was being ignored and the integrity_check was not doing anything other than burning CPU cycles. (2) Do not interpret the argument to PRAGMA integrity_check as a number if it is in fact a string that looks like a number. (check-in: 71f08b91 user: drh tags: trunk)
12:00
Add a test case to the fix to PRAGMA integrity_check in the previous check-in. (Closed-Leaf check-in: 39a57b59 user: drh tags: faster-create)
11:51
Omit the OP_SqlExec to "PRAGMA integrity_check" added by [348fa7aaf7958b3f] because it is a no-op. Even if the integrity_check failes, the CREATE TABLE is stull successful. The OP_SqlExec just burns CPU cycles for no reason. (check-in: 532795ac user: drh tags: faster-create)
2024-05-01
19:48
Avoid an OP_Next in cases where an IN(...) query against a UNIQUE index may return at most 1 row. (Closed-Leaf check-in: 560f6415 user: dan tags: unique-in-opt)
16:25
Fix another problem in the recovery extension where a corrupt sqlite_schema table could lead to excessive memory consumption. (check-in: 1c7e33a8 user: dan tags: trunk)
14:42
Fix a problem causing the recovery extension to use excessive memory and CPU time in some cases. (check-in: 8de85170 user: dan tags: trunk)
2024-04-30
19:34
Avoid 32-bit overflow when calculating ncycle for ".scanstats vm". (check-in: 2858efa0 user: dan tags: trunk)
2024-04-26
19:10
Fix issues in LIMIT/OFFSET support for virtual tables. The first problem was reported by forum post c243b8f856. That report prompted an enhancement to the generate_series() (also included in this merge) which in turn identified other similar issues. (check-in: 5f6c079d user: drh tags: trunk)
18:42
Internal JS doc touchups. No functional changes. (check-in: 626b997b user: stephan tags: trunk)
18:24
Additional internal docs in the wasm utilities. (check-in: 5a2245a9 user: stephan tags: trunk)
18:13
Allow virtual table implementations to handle OFFSET but not LIMIT, but not LIMIT but not OFFSET. (Closed-Leaf check-in: 90e5c822 user: dan tags: vtab-limit-fix)
12:01
Add test demonstrating the problem at forum post c243b8f856. No fix yet. (check-in: 1685495c user: dan tags: vtab-limit-fix)
11:32
Fix the TreeView display of a LIMIT clause on a compound query. Debugging code only - not part of production builds. (check-in: 38f1e5ce user: drh tags: trunk)
2024-04-25
23:26
Improvement to the way that affinity is determined for columns of a compound subquery. The affinity is the affinity of the left-most arm of the compound subquery that has an affinity other than NONE, adjusted to accommodate the data types coming out of the other arms. (check-in: e6df846f user: drh tags: trunk)
17:52
Further improvements to the computation of affinity for compound subqueries: make sure that the selected affinity is compatible with a literal values in arms to the left of the arm that is used to determine affinity. (Closed-Leaf check-in: bbdf22e3 user: drh tags: compound-subquery-affinity)
06:52
wasm: add a makefile comment about the static sqlite3.h/c version info injected into the JS files possibly differing from the runtime-emited version info when a user provides their own sqlite3.c. (check-in: d99a01a0 user: stephan tags: trunk)
2024-04-24
19:49
An experimental minor tweak to the way affinities are computed for compound subqueries, when the actual affinity is ambiguous. (check-in: 779723ad user: drh tags: compound-subquery-affinity)
16:36
If a RETURNING clause contains a subquery that references the table that is being updated in the statement that includes the RETURNING clause, then mark the subquery as correlated so that it is recomputed for each result and not just computed once and reused. See forum post 2c83569ce8945d39. (check-in: 9ea6bcc8 user: drh tags: trunk)
14:18
Fix a case where a corrupt stat4 record could go unrecognized due to integer overflow. (check-in: 240a4a48 user: dan tags: trunk)
11:51
Add comments linking the assert() added in [cef4d9e3ba586735] to the places where the precondition that the assert() tests are actually required. (check-in: 6f0e7e19 user: drh tags: trunk)
11:40
Avoid slowdown when exprNodeIsConstant() is called on deeply nested SQL functions. (check-in: 1c0b0345 user: dan tags: trunk)
11:21
Ensure that temporary SrcItem objects created by trigger processing have either SrcItem.zName or SrcItem.pSelect defined. Every SrcItem should have one or the other. (check-in: cef4d9e3 user: drh tags: trunk)
06:43
Remove an undocumented feature from the JS Worker1.open API because it relies on broken behavior which has no VFS-agnostic workaround. (check-in: 3a640038 user: stephan tags: trunk)
2024-04-23
12:02
Fix a problem with vector IN operators used with an index where the affinities and collations for the various vector terms are different. (check-in: 86e8c782 user: drh tags: trunk)
11:56
Fix an uninitialized variable problem in the new code on this branch. (Closed-Leaf check-in: 85625b38 user: dan tags: vector-in-fix)
06:49
Remove some dead WASM-side code. (check-in: 0a07ee27 user: stephan tags: trunk)
06:36
Minor touchups in JS docs and exception messages. (check-in: 9e7fc937 user: stephan tags: trunk)
05:38
When running the 'dist' target in ext/wasm for an SEE-capable build, ensure that the resulting zip file and directory name include '-see'. (check-in: 04c552b1 user: stephan tags: trunk)
2024-04-22
20:09
Add extra tests for aborting conflicts in the sessions module. (check-in: b4a6d326 user: dan tags: trunk)