SQLite

Timeline
Login

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

926 check-ins using file src/utf.c version f2316568

2024-07-17
18:38
Fixes for platforms with 32-bit pointers that require 64-bit values to be aligned. (Leaf check-in: 539e4f66 user: dan tags: trunk)
16:27
Add extra assert() statements to the fixes on this branch. (Closed-Leaf check-in: 81b63600 user: dan tags: alignment-fixes)
2024-07-15
10:13
Slight doc touchup for [af41a1e6fc8b36e9bf65]/[c7519d98ff09e] based on feedback. No code changes. (Leaf check-in: a61997c3 user: stephan tags: branch-3.46)
10:11
Slight doc touchup for [af41a1e6fc8b36e9bf65] based on feedback. No code changes. (check-in: be7b1fc0 user: stephan tags: trunk)
2024-07-13
18:16
Improve one of the JS test cases. (check-in: 3767d8be user: stephan tags: trunk)
16:53
Fixes for platforms with 32-bit pointers that require 64-bit values to be aligned. (check-in: 2212d748 user: dan tags: alignment-fixes)
15:42
Add JS binding for sqlite3_column_decltype(). (check-in: 5252d292 user: stephan tags: trunk)
15:21
JS doc touchups. No code changes. (check-in: a8e24049 user: stephan tags: trunk)
14:07
Add JS bindings for sqlite3_stmt_busy() and sqlite3_stmt_explain(). (check-in: b772edfb user: stephan tags: trunk)
13:22
Add missing sqlite3_bind_parameter_name() binding to JS. (check-in: 6dcfcc7e user: stephan tags: trunk)
12:50
Add JS bindings and tests for sqlite3_interrupted(), is_interrupted(), and db_readonly(). (check-in: 5589ba56 user: stephan tags: trunk)
11:47
Remove a stray/harmless duplicate wasm function export entry. (check-in: 5402e4fb user: stephan tags: trunk)
01:40
Add several convenience links to the OPFS VFS concurrency tester app for launching it with various combinations of options. (check-in: 397d6a18 user: stephan tags: trunk)
01:02
Add an option to the opfs-sahpool VFS which tells it to ignore a previous init failure and retry, as an opt-in workaround for a browser quirk which occasionally denies OPFS access on the first attempt and permits it on subsequent attempts. This resolves issue #79 of the npm distribution. (check-in: fbf3948a user: stephan tags: trunk)
00:55
Rename the new opfs-sahpool init-retry flag to the suitably descriptive, and suitably onerous, forceReinitIfPreviouslyFailed, based on feedback. (Closed-Leaf check-in: c9f0a609 user: stephan tags: sahpool-reinit-fallback)
2024-07-12
14:41
sqldiff: fail if the 2nd db argument cannot be opened read-only. (check-in: e8b33525 user: stephan tags: trunk)
13:51
Work around a difficult-to-trigger Atomics API message-passing quirk in the OPFS VFS which appears in rare instances in some browsers when running high I/O loads. This resolves issue #12 of the npm distribution. (check-in: c7519d98 user: stephan tags: branch-3.46)
13:49
Work around a difficult-to-trigger Atomics API message-passing quirk in the OPFS VFS which appears in rare instances in some browsers when running high I/O loads. This resolves issue #12 of the npm distribution. (check-in: af41a1e6 user: stephan tags: trunk)
13:45
sqldiff: if the first db argument does not exist, fail instead of creating an empty db. Resolving that for the second argument is trickier, as discussed in forum post ec2d429e32. (check-in: 0547ccf7 user: stephan tags: trunk)
2024-07-11
19:50
Reformulate the forceReinitIfFailed handling based on feedback, to correct the type-checking and resolve a potential race condition. (check-in: c4f46830 user: stephan tags: sahpool-reinit-fallback)
14:07
Remove the timing and counter metrics from the OPFS VFS, as they're long-since unused so are just wasted CPU cycles. (Closed-Leaf check-in: 67c035c3 user: stephan tags: opfs-errant-op)
12:57
Add some docs explaining [64f4f3cd878b1a72]. (check-in: 4fdf9a32 user: stephan tags: opfs-errant-op)
12:36
Proposed workaround for the "errant op" case in the OPFS VFS, as discussed in issue #12 of the npm distribution. (check-in: 64f4f3cd user: stephan tags: opfs-errant-op)
11:04
Add an option to force the opfs-sahpool VFS init to re-run after it fails on a first attempt, as a workaround for flaky environments where initial access to OPFS sync access handles is rejected but then permitted on a second attempt. Reported and discussed in issue #79 of the npm distribution. (check-in: 5286e0f6 user: stephan tags: sahpool-reinit-fallback)
2024-07-10
08:33
Rename some JS files for consistency. This affects only the build process, not the deliverables. (check-in: bcef3f71 user: stephan tags: trunk)
2024-07-08
17:39
Fix a use-after-free that could occur following an OOM introduced by [d8cedbe0]. (check-in: 4fabfacf user: dan tags: trunk)
16:01
Improve the error message returned when fts5 finds a row is missing from its content table. (check-in: 9b1afd4a user: dan tags: trunk)
2024-07-05
13:55
Use a mini Bloom filter to help reduce the number of pointless searches for prior SubrtnSig objects when generating code for IN operators with subqueries as their right operand. (check-in: d8cedbe0 user: drh tags: trunk)
10:08
Improved reuse of subqueries associated with IN operators, especially when the IN operator is duplicated due to predicate push-down. (Leaf check-in: 2a07caad user: drh tags: bedrock-3.46)
10:03
When constructing an ephermeral table to use as the right-hand side of an IN operator, also construct a Bloom filter to speed membership testing. (check-in: 557a14a2 user: drh tags: bedrock-3.46)
09:56
Improved reuse of subqueries associated with IN operators, especially when the IN operator is duplicated due to predicate push-down. (check-in: c9a34981 user: drh tags: trunk)
01:05
Small performance optimizations. (Closed-Leaf check-in: 99fd34b5 user: drh tags: reuse-subqueries)
2024-07-04
18:56
Add test cases to in7.test. (check-in: 07817efc user: dan tags: reuse-subqueries)
18:26
Disable the reuse of IN-clause subqueries if the subquery is an explicit "SELECT ALL". The ALL keyword is almost never used in actual practice (most developers don't even know it can be used) so this should not interfere with the optimization, but it does give us a convenient way to turn it off for testing purposes. (check-in: a81299be user: drh tags: reuse-subqueries)
17:49
Update EXPLAIN output to include P4_SUBRTNSIG. (check-in: 61e56923 user: dan tags: reuse-subqueries)
16:57
Be more aggressive about reusing subqueries that appear on the RHS of IN operators that have been replicated due to the predicate push-down optimization. (check-in: 2accf32b user: drh tags: reuse-subqueries)
11:15
Add comment using the name "predicate push-down optimization" to what we have also called "WHERE-clause push down". No changes to code. (check-in: be77fe70 user: drh tags: trunk)
09:45
For shell completion, use pragma_table_xinfo instead of pragma_table_info, so that generated columns are handled, as reported in forum post f0735e05d8d7e857. (check-in: a204ffc0 user: stephan tags: trunk)
2024-07-03
20:30
When constructing an ephermeral table to use as the right-hand side of an IN operator, also construct a Bloom filter to speed membership testing. (Leaf check-in: 0bb306eb user: dan tags: bedrock-3.45-in-bloom)
20:19
When constructing an ephermeral table to use as the right-hand side of an IN operator, also construct a Bloom filter to speed membership testing. (check-in: baa83b46 user: drh tags: trunk)
20:10
Show the creation of IN-operator Bloom filters in the EXPLAIN QUERY PLAN output. (Closed-Leaf check-in: c10a1b99 user: drh tags: in-bloom)
18:56
Add a new sqlite3FaultSim() call to OP_NotFound to use for testing purposes. (check-in: 84fd275b user: drh tags: in-bloom)
17:51
Use a Bloom filter to improve performance of IN operators when the RHS of the IN operator is a subquery. (check-in: 19334965 user: drh tags: in-bloom)
2024-07-02
13:54
Add assert() statements to FTS5 to hush-up warnings from scan-build. (check-in: 77a76654 user: drh tags: trunk)
12:16
Rework the deliberate_fall_through macro along the lines suggested by forum post 7ec11023dd so that it works better with LLVM, while preserving compatibility with MSVC and older GCCs. (check-in: fc248a4a user: drh tags: trunk)
11:30
In the CLI, if the XDG_CONFIG_HOME environment variable is not set, then also search in ~/.config/sqlite3/sqliterc for the initialization file. See forum thread 5cc6d059e9e092ed. (check-in: 33841c9c user: drh tags: trunk)
2024-06-29
15:57
Fix a typo in a comment in a test case. No changes to code. (check-in: f501166d user: drh tags: trunk)
12:22
Add a NEVER() around a branch in sqlite3ExprAffinity() that is designed to prevent an infinite loop, but which can now never be reached due to recent changes. (check-in: da0b7948 user: drh tags: trunk)
2024-06-28
18:21
Update fts5 comment/docs to include the order matches are visited in by the xPhraseFirst/xPhraseNext API. (check-in: e41930ef user: dan tags: trunk)
18:07
Additional steps to make sure calls to sqlite3ExprToRegister() are sane. (check-in: 1c42d717 user: drh tags: trunk)
17:14
Do not convert an expression node that is already TK_REGISTER into a new TK_REGISTER. This is a follow-up to [663f5dd32d9db832] that fixes a bug discovered by dbsqlfuzz. (check-in: fcb669cf user: drh tags: trunk)
2024-06-27
18:18
Avoid 32-bit overflow when calculating ncycle for ".scanstats vm". (Leaf check-in: 78022f90 user: dan tags: bedrock-3.45)
15:03
Merge all the latest trunk enhancements into the recursive-cte-orderby-fix branch. (Leaf check-in: 5f159e54 user: drh tags: recursive-cte-orderby-fix)
14:54
Merge the latest trunk enhancements into the exists-to-join branch. (Leaf check-in: fc643f8a user: drh tags: exists-to-join)
2024-06-26
16:33
Do not use integer constants like 100_000 in the shell code on this branch. They are not supported until 3.46. (check-in: 8362edb4 user: dan tags: bedrock-3.45)
2024-06-24
18:06
Fix an incorrect tcl comment that appeared in many fts5 test files. (check-in: d07085e2 user: dan tags: trunk)
16:08
Fix some problems with calling fts5 api functions from within non-full-text queries. (check-in: 56d265f9 user: dan tags: trunk)
15:05
Enhance the output of ".scanstats vm" to include the absolute number of ticks for each VM instruction, instead of just the percentage of the total. (check-in: d826236e user: dan tags: bedrock-3.45)
14:53
Enhance the output of ".scanstats vm" to include the absolute number of ticks for each VM instruction, instead of just the percentage of the total. (check-in: 15358283 user: dan tags: trunk)
2024-06-20
12:07
Do not attempt the exists-to-join optimization if the FROM clause is full. (check-in: 8e3a1d28 user: drh tags: exists-to-join)
2024-06-19
18:54
Revert Lemon so that it only shows -D options that are actually used. Though the change to display the options in sorted order is retained. (check-in: e54eb217 user: drh tags: trunk)
18:46
In lemon, show all the -D options in the generated header, even if none of them are used. (check-in: 2aa009c3 user: drh tags: trunk)
16:38
Enhance lemon.c so that when it shows the compile-time options in the header comment of the generated output file, it shows all options, even those not used, and it shows them in sorted order. (check-in: eed76e66 user: drh tags: trunk)
11:08
Remove some extraneous flags from the fiddle-debug build. Internal doc tweaks in the main wasm makefile. (check-in: afae2c9e user: stephan tags: trunk)
2024-06-18
22:03
Minor cleanups in the new fiddle build code. (check-in: d356aebd user: stephan tags: trunk)
21:50
Rework the fiddle build to build separate debug and non-debug bundles, with the latter in ./fiddle-debug. (check-in: a9f1758f user: stephan tags: trunk)
20:47
Remove an extraneous CSS file and import its CSS into the one HTML file which uses it. (check-in: 66085ca4 user: stephan tags: trunk)
20:40
Add fiddle-debug make target to ext/wasm. It builds the same target files as a non-debug build, as opposed to a new copy, but adds various debug-related flags. (check-in: 993143c5 user: stephan tags: trunk)
19:36
Add instructions for how to do debugging builds of the CLI on Windows. (check-in: abe81c18 user: drh tags: trunk)
12:19
Update sqlite3_analyzer to report on the number of WITHOUT ROWID tables and to provide separate aggregate statistics for WITHOUT and WITH ROWID tables. (check-in: 41528944 user: drh tags: trunk)
09:58
Internal doc typo fixes, as reported in the forum. No code changes. (check-in: ea16b286 user: stephan tags: trunk)
2024-06-17
13:06
Improve the JS-exception-to-C-result-code conversion to account for the case of a file disappearing while the OPFS VFS is waiting to acquire a lock on it. (check-in: d34e7880 user: stephan tags: branch-3.46)
2024-06-16
17:06
Remove some dead JS code. (check-in: 754e6e05 user: stephan tags: trunk)
2024-06-14
23:13
Do not omit the ORDER BY clause from a recursive CTE just because the query that contains the CTE also contains an ORDER BY clause. Plus other changes imported from the recursive-cte-orderby-fix branch. (check-in: 13242289 user: drh tags: trunk)
19:27
Fix harmless comment typo. (check-in: ca063802 user: drh tags: recursive-cte-orderby-fix)
18:33
Improvement to treeview.c: Show the DESC and BIGNULL flags when printing out ExprList objects. (check-in: e87966cf user: drh tags: recursive-cte-orderby-fix)
18:06
Add tests for the change on this branch. (check-in: ae19ff9b user: dan tags: exists-to-join)
17:16
Do not omit the ORDER BY clause from a recursive CTE just because the outer query that uses the CTE also contains an ORDER BY clause. (check-in: 5e700f2c user: drh tags: recursive-cte-orderby-fix)
2024-06-12
22:15
Remove some dead JS code. Improve the exception-to-C-result-code conversion to account for the case of a file disappearing while the OPFS VFS is waiting to acquire a lock on it. (check-in: 5bd9fd5f user: stephan tags: trunk)
21:08
Fix a potential db corruption case triggered by the OPFS VFS's xCheckReservedLock() implementation. (check-in: a7cd07d9 user: stephan tags: branch-3.46)
21:01
Remove some JS docs which no longer apply. No code changes. (check-in: f253cab3 user: stephan tags: trunk)
17:01
Do not attempt the exists-to-join optimization for expressions from the ON clause of joins. (check-in: 4666433c user: dan tags: exists-to-join)
15:50
Fix a problem with rolling back hot journals using the unix-dotfile VFS. (check-in: a4470313 user: dan tags: trunk)
15:29
Omit tests that depend on sqlite3_release_memory() in lock5.test when running the memsubsys1 or memsubsys2 permutations. (Closed-Leaf check-in: 9d63033b user: dan tags: unix-dotfile-fix)
12:36
Fix a potential db corruption case triggered by the OPFS VFS's xCheckReservedLock() implementation, as discussed in forum thread a2f573b00cda1372. (check-in: c298b8ba user: stephan tags: trunk)
12:17
Doc updates in JS code. No functional changes. (check-in: 587ed3a5 user: stephan tags: trunk)
11:41
Do not attempt to run hot journal rollback tests in lock5.test with the "inmemory_journal" permutation, which cannot generate hot journals. (check-in: 1e6fa95b user: dan tags: unix-dotfile-fix)
11:39
Slight API doc tweak for xCheckReservedLock(), based on forum feedback. No code changes. (check-in: 2af7a96f user: stephan tags: trunk)
10:17
Improvements to the layout and comments for the new round() implementation. (Leaf check-in: d6b1df1a user: drh tags: round-up-2)
00:30
Test cases for the round() function for values within one epsilon of the 5 round-up threshold. (check-in: 552b1b10 user: drh tags: round-up-2)
2024-06-11
22:47
A second approach to working on the round() function so that it gives a small boost to numbers that are ...49999999 such that they round up. (check-in: 44dd6328 user: drh tags: round-up-2)
20:28
Handle the case where unix-dotfile is used with URI parameter nolock=1. (check-in: 3925a5b9 user: dan tags: unix-dotfile-fix)
20:03
Fix a problem with rolling back hot journals using the unix-dotfile VFS. (check-in: 4ae3300b user: dan tags: unix-dotfile-fix)
18:22
Provide the ability to disable the exists-to-join optimization using SQLITE_TESTCTRL_OPTIMIZATIONS. Provide tree-trace output for the optimization. (check-in: 33a3f327 user: drh tags: exists-to-join)
17:37
Merge trunk enhancements into the exists-to-join branch. (check-in: 5f25a951 user: drh tags: exists-to-join)
17:04
Remove some dead JS code and update some JS docs. (check-in: 6935ac71 user: stephan tags: trunk)
17:04
When compiling shell.c in SQLITE_SHELL_FIDDLE mode, ensure that the shell_main_exit goto label is reachable. (check-in: 06e6f645 user: stephan tags: trunk)
14:36
Change constant expressions to pre-computed constants, because apparently MSVC on ARM requires that. Forum thread 4feb1685cced0a8e. (check-in: 6c103aee user: drh tags: trunk)
2024-06-10
19:45
Add missing calls to sqlite3exprSkipCollateAndLikely() to the enchancement on this branch. (check-in: 078537d0 user: dan tags: exists-to-join)
19:31
Fix a crash that could occur when the SELECT in an EXISTS(SELECT ...) used an unknown collation sequence. (check-in: f3009a6d user: dan tags: exists-to-join)
18:30
The aggressive rounding behavior is now only accessible using the internal sqlite3MPrintf() function. The round() SQL function uses that internal function so it can access the aggressive rounding. But ordinary extensions and the format() SQL function cannot. Update: Superseded by round-up-2 branch (Closed-Leaf check-in: 3dec4b35 user: drh tags: round-up)
18:10
More aggressive rounding behavior for the round() function only. Format() still uses the classic behavior, and the same behavior exhibited by printf() in glibc. (check-in: a1b57288 user: drh tags: round-up)
14:31
Change the rounding behavior of float point to decimal conversions such that if the next digit is 4 but the value is within one epsilon of the next digit being 5 and if the epsilon is small compared the number of digits to be rendered, then go ahead and round up anyhow, even though the correct behavior would be to round down. (check-in: 4a790d3b user: drh tags: round-up)
12:43
Improved header comment on the sqlite3FpDecode() implementation. For the fpdecode() SQL function (available in debug builds only) limit the value of the third parameter (mxRound) to be positive. (check-in: 56af06fa user: drh tags: trunk)
12:29
Check-in contained undesired test code. (Leaf check-in: 43f376ce user: drh tags: mistake)
2024-06-09
18:02
Disable the omit-noop-join optimization when there are 64 or more terms in the ORDER BY clause. (Leaf check-in: d2d37e6d user: drh tags: branch-3.45)
17:58
Disable the omit-noop-join optimization when there are 64 or more terms in the ORDER BY clause. (check-in: a7fe90c1 user: drh tags: branch-3.46)
17:34
Disable the omit-noop-join optimization when there are 64 or more terms in the ORDER BY clause. (check-in: 40de3939 user: drh tags: trunk)
2024-06-08
18:13
Add extra tests for the changes on this branch. (check-in: a6365c77 user: dan tags: exists-to-join)
2024-06-07
21:00
Experimental optimization to rewrite a SELECT with an EXISTS(...) expression in the WHERE clause as a join. (check-in: 972a33db user: dan tags: exists-to-join)
19:48
At attempt at improving the performance of unixRead(). Partly successfuly, but the improvement is not that much and there is question whether or not the improvement is worth the extra complication and code space. (Leaf check-in: aebc790a user: drh tags: fast-read)
2024-06-06
23:56
Allow the query planner access to the argument of LIMIT even if that argument is a bound parameter. (check-in: c4a9dda2 user: drh tags: trunk)
23:22
Omit bogus tests accidentally added by the privious commit. (Closed-Leaf check-in: e94dfe99 user: drh tags: var-in-limit)
15:03
Better optimize queries that use parameters in the LIMIT clause. (check-in: e58cb304 user: drh tags: var-in-limit)
12:22
Re-enable [dcc2bb2c562e97e090174], as [296eeb26c816bc73] corrects the wasi-sdk build problem the former check-in triggered. Reported in forum post 143e40d7f4e79c66. (check-in: f66608bd user: stephan tags: trunk)
01:21
Adjust the parser so that the value of TK_ISNOT is similar to the value of TK_IS. This helps the compiler generate faster switch() statements on the Expr.op fields when there are cases for TK_ISNOT and other common operators. (check-in: 34f05c3d user: drh tags: trunk)
01:00
Small performance optimization in the operatorMask routine of the WHERE clause analysis logic. (check-in: 9d69fc1c user: drh tags: trunk)
00:49
Small performance optimization in the allowedOp() routine of the WHERE clause analysis code. (check-in: 4ba8be54 user: drh tags: trunk)
2024-06-05
20:54
Harmonize function names. (Leaf check-in: db43d7aa user: mistachkin tags: concatb)
20:52
Add an experimental concatb() function. (check-in: 07d84202 user: mistachkin tags: concatb)
20:50
Fix harmless compilation issues seen with MSVC. (check-in: 816d4749 user: mistachkin tags: trunk)
20:41
Small performance optimization in the codeEqualityTerm() routine of the code generator. (check-in: 8080c6ea user: drh tags: trunk)
16:50
Fix an fts5 problem with secure-delete mode causing integrity-check to erroneously report a corrupt index. (check-in: 0a7fa0a4 user: drh tags: branch-3.46)
14:47
Fix an fts5 problem with secure-delete mode causing integrity-check to erroneously report a corrupt index. (check-in: 80bef4d6 user: dan tags: trunk)
11:36
Fix a very obscure issue where the name resolver could get confused if aliases like "sqlite_schema" or "sqlite_master" were used in a query involving the sqlite_temp_schema table. (check-in: a096eb75 user: dan tags: trunk)
2024-06-04
19:21
Fix harmless compiler warnings seen with MSVC. (check-in: 93ac8573 user: mistachkin tags: trunk)
17:26
Better handle WHERE terms that are common to two or more OR branches when planning virtual table queries. Fix for ticket [6e3ace1270f29930]. (check-in: 1976c3f7 user: dan tags: trunk)
16:24
Merge 11a4178f0e6cd760303a587, from the bedrock branch just after the 3.45 release, into this branch. This is to pick up test cases only. (check-in: 66c88581 user: dan tags: bedrock-3.45)
15:47
Fix another problem with the sqlite3_log() message identifying the table or index that a conflicting page belongs to. (check-in: 885e01ae user: dan tags: bedrock-3.45)
15:33
Fix a problem in SQLITE_DIRECT_OVERFLOW_READ builds that could allow a concurrent transaction to be committed even if it read from an overflow page that was modified concurrently, in cases where the overflow page was written without also writing the b-tree page to which it is linked. (check-in: f1d17258 user: dan tags: bedrock-3.45)
15:33
Improve the log message emitted when a BEGIN CONCURRENT transaction cannot be committed due to conflicts so that it identifies the conflicting table in a few more cases. (check-in: eed5aa7c user: dan tags: bedrock-3.45)
15:07
Fix a couple of memory leaks in the shell tool code that could occur when processing errors. (check-in: e84f09d4 user: dan tags: trunk)
14:32
Allow shell command "testctrl pending_byte" to be used in unsafe-testing mode only. (check-in: afa45c4f user: dan tags: trunk)
2024-06-03
18:04
Address a corner-case associated with the call-function-once optimization of check-in [663f5dd32d9db832] that was causing a (harmless) use of an uninitialized bytecode register. dbsqlfuzz 8a44f675401a8b1f68a43bf813c4f4f72ad8f0ea (check-in: b37ac2d0 user: drh tags: trunk)
12:36
Omit an unused #define. (check-in: 9c2de28a user: drh tags: trunk)
07:22
Modify three #if checks in os_unix.c to improve handling of SQLITE_OMIT_WAL on WASI builds. Based on the discussion in/around forum post 57e918431735128a. (check-in: 296eeb26 user: stephan tags: trunk)
2024-06-02
10:52
Be more aggressive about freeing memory associated with the sqlite3_index_info.idxStr field. (Closed-Leaf check-in: 85dcd0a8 user: drh tags: xbestindex-or-terms)
2024-06-01
17:56
Have fts5.xBestIndex return SQLITE_CONSTRAINT, instead of a large cost, when no usable plan can be found. (check-in: 7c470945 user: dan tags: xbestindex-or-terms)
2024-05-31
20:32
Further tests for OR constraints on virtual tables. (check-in: ff4a3005 user: dan tags: xbestindex-or-terms)
19:26
Better handle WHERE terms that are common to two or more OR branches when planning virtual table queries. (check-in: 4edd9b29 user: dan tags: xbestindex-or-terms)
15:39
Do not even try star-schema detection if the join has fewer than 5 tables, since 5 is the minimum for a positive detection. (check-in: a07ec16b user: drh tags: trunk)
14:39
Document the OP_Explain opcode. Add the WhereLoop.rRun value as P3 in OP_Explain opcodes associated with WhereLoops, for testing purposes. (check-in: 996c46e6 user: drh tags: trunk)
2024-05-30
21:54
Back out [dcc2bb2c562e97e090174], as it breaks the --with-wasi-sdk builds. (check-in: 62199562 user: stephan tags: trunk)
17:56
Remove the unconditional SQLITE_OMIT_WAL when building in wasi-sdk mode, per requests in the forum. (check-in: dcc2bb2c user: stephan tags: trunk)
13:27
Ensure that the second pass call to wherePathSolver() always reports a positive value for the estimated number of output rows. This fixes a long-standing (though exceedingly minor) problem that was only revealed by a new assert() added yesterday. dbsqlfuzz 545d6debc2da496ab2b915e33ea34d9a35a935df (check-in: a47c644f user: drh tags: trunk)
11:25
Experimentally enable linenoise multiline mode in shell.c. (Closed-Leaf check-in: 33ad9d8a user: stephan tags: linenoise-multiline)
11:14
Update shell.c to use the msteve fork of linenoise, per /chat discussion. (check-in: ee92fa83 user: stephan tags: trunk)
2024-05-29
15:16
Remove an unused parameter from fts5ConfigParseSpecial(). Compiler-warning fix only - no functional changes. (check-in: c08dd245 user: drh tags: trunk)
15:08
Use a heuristic of artifically lowering the cost of fact tables in a star-schema query in order to prevent plans where the fact tables are in outer loops from being trimmed by the path limiter. This helps to generate better (faster) query plans in those particular cases. (check-in: 38db9b5c user: drh tags: trunk)
14:32
Change an assert() (incorrectly) added by the previous check-in into a testcase(). (Closed-Leaf check-in: 5e64b541 user: drh tags: star-schema)
14:04
Small performance enhancement in wherePathSolver() (check-in: bdab6964 user: drh tags: star-schema)
13:29
Improvements to comments and debugging output. (check-in: 85164ee1 user: drh tags: star-schema)
10:40
Remember the amount of the heuristic cost adjustment associated with star schemas and compensate when computing whether or not to use Bloom filters. (check-in: 21daf246 user: drh tags: star-schema)
09:53
Fix typos in the star-schema test cases. (check-in: 40809373 user: drh tags: star-schema)
03:35
Fix sqldiff out-of-bounds char classification error mentioned in the forum. (check-in: b31933d8 user: larrybr tags: trunk)
00:38
Use a heuristic in the query planner to help it better cope with large star schema queries. (check-in: a98be0f5 user: drh tags: star-schema)
2024-05-28
19:08
Fix a couple of assert() statements so that they cannot fire when the SQLITE_TESTCTRL_INTERNAL_FUNCTIONS debugging capability is activated. dbsqlfuzz f5b347cf167a62fbe08062b2feee65cb9306e363. (check-in: 273504b7 user: drh tags: trunk)
18:53
Tweaks to the query planner so that it is better able to deal with star queries with many dimensions and bad indexes. (check-in: 1e490810 user: drh tags: trunk)
18:41
Fix another problem with the sqlite3_log() message identifying the table or index that a conflicting page belongs to. (Leaf check-in: 19d5fd8a user: dan tags: bedrock)
18:35
Fix another problem with the sqlite3_log() message identifying the table or index that a conflicting page belongs to. (Leaf check-in: d033d943 user: dan tags: begin-concurrent)
15:37
For query planning purposes, assume every table holds at least 100 rows, as this seems to give better worst-case performance if the table row count estimate turns out to be inaccurate. Park this change on a branch for now and consider it for a future enhancement. (Leaf check-in: 76c7d933 user: drh tags: min-row-estimate)
12:41
Increase the number of parallel paths in the query solver from 12 to 20. In the .wheretrace output, sort the parallel paths in order of increasing cost. (check-in: 8ba2c2f5 user: drh tags: trunk)
11:24
Documentation typo fix. Forum post 772d6688f5. (check-in: 1f2f9c70 user: drh tags: trunk)
10:57
Fix a problem with the error message reported by fts5 in some OOM cases. (check-in: c7aaa28f user: dan tags: trunk)
00:16
Improve the automatic-index decision such that no attempt is made to create an automatic index on a column that is known to be non-selective because if its use in other indexes that have been analyzed. See ticket [8ff324e120d5e9bd] and forum post b21c2101a559be0a. (check-in: 2a7603c3 user: drh tags: trunk)
00:01
Query planner tuning: Increase the maximum number of simultaneous solutions to track int eh solver from 10 to 12. (check-in: fe2e1dad user: drh tags: trunk)
2024-05-27
21:55
Avoid creating an automatic index on a column that is known to be not very selective. (Closed-Leaf check-in: 70409763 user: drh tags: auto-index-improvements)
19:52
The previous check-in was a little two aggressive about skipping the initialization of entries in the CellArray.ixNx array. Fixed here. (check-in: 1b6d1fbc user: drh tags: trunk)
18:15
Fix typo in comment used to generate parts of the documentation. Forum post da5a2ca4db. (check-in: 428aadf0 user: drh tags: trunk)
15:13
Very small performance increase and size reduction by removing unnecessary ALWAYS() macros from the btree balance logic and replacing them with special initialization of CellArray and some assert()s. (check-in: 32b79041 user: drh tags: trunk)
13:41
Doc typo fix. No code changes. (check-in: eaf07fe6 user: stephan tags: trunk)
13:24
For compatibility with PostgreSQL, when right-hand side of the ->> operator is negative, it should index from the right side of the JSON array on the left-hand side. (check-in: 82365a45 user: drh tags: trunk)
11:38
Fix a possible buffer overwrite in the ".import" command. (check-in: 55eee9f9 user: drh tags: branch-3.46)
11:35
Fix a possible buffer overwrite in the ".import" command. forum post 0c447f0548. (check-in: 0fd958fa user: dan tags: trunk)
11:31
Add new assert() statements to help out a static analyzer. Response to forum post 17fe8ac32e0de4f5. (check-in: 857f6d53 user: drh tags: trunk)
2024-05-25
23:17
Ensure that sqlite3ViewGetColumnNames() returns non-zero on any error. (check-in: 01ead0a2 user: drh tags: branch-3.46)
23:13
Ensure that sqlite3ViewGetColumnNames() returns non-zero on any error. dbsqlfuzz d9de2a508f693e5a228d7a01d5341e3c64326fbb. (check-in: 57aeb3a2 user: drh tags: 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. (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:34
Increase the version number to 3.46.1 (check-in: 170e3a91 user: drh tags: branch-3.46)
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 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:09
Version 3.46.0 for the bedrock branch (check-in: 483d112a user: drh tags: bedrock)
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 (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:24
Merge the latest trunk enhancements into the bedrock branch. (check-in: c65a82f1 user: drh tags: bedrock)
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. (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-14
19:41
Optimize queries against fts5vocab(row) tables that do use the "cnt" column. (Closed-Leaf check-in: 96a591c2 user: dan tags: fts5-delay-tokenizer)
19:09
Avoid calculating the value of the "cnt" column for fts5vocab(row) queries that do not use it. (check-in: c0c91e30 user: dan tags: fts5-delay-tokenizer)
17:16
Have fts5 tables delay initializing the tokenizer until it is first used in all cases where the tokenizer is not "trigram". (check-in: ca4fdcb8 user: dan tags: fts5-delay-tokenizer)
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)
18:10
The sqlite3FaultSim(300) error from [1e8863909ac369e5] must be treated as an OOM, since it simulates an OOM. Also fix deferred deletion of Expr objects from [a53bdd311c4154fd] so that it does not corrupt the AST if an OOM occurs. (check-in: c623d9a5 user: drh tags: cleanup-testing)
17:05
Improvements to the ".testctrl fault_install" command in the CLI. (check-in: 48b34ded user: drh 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)
17:21
Add tests for sqlite3changegroup_add_change(). (check-in: 9d67bedc 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)
11:31
Functions that pass through the sqlite3_value of one of their arguments must also be marked as SQLITE_RESULT_SUBTYPE, in case one of their arguments has a subtype. (check-in: 2f9fba93 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:52
Do not accept a string that looks like a number used as an argument to PRAGMA integrity_check as a number. Treat it as a table name that just happens to look like a number. (check-in: b04e7a23 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)
17:19
Have where.c ignore any plan from a virtual table that tries to use LIMIT/OFFSET without also using all WHERE constraints. (check-in: 7d305964 user: dan tags: vtab-limit-fix)
17:09
Further fixes and improvements to the generate_series() enhancements on this branch. (check-in: b7d9bd7e user: drh tags: vtab-limit-fix)
14:36
Use hex flag masks rather than decimals in ext/misc/series.c. (check-in: a94e2cd0 user: drh tags: vtab-limit-fix)
14:32
Fix a problem allowing a LIMIT constraint to be passed to a virtual table in cases where there exist WHERE terms that cannot also be passed. (check-in: 72c8ed96 user: dan tags: vtab-limit-fix)
13:38
Fix handling of LIMIT and OFFSET in virtual tables that are part of a compound SELECT. (check-in: 40421c1c user: drh tags: vtab-limit-fix)
13:30
Enhance the generated_series() table-valued-function to respond to LIMIT and OFFSET. Use this to add new test cases for LIMIT and OFFSET on virtual tables in a compound SELECT. (check-in: 408d47ec user: drh 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)
16:55
Back out the previous change on this branch. In its place: Determine the affinity of a subquery by the left-most arm of the subquery that has an affinity other than NONE. In other words, scan from left to right looking for an arm of the compound subquery with an affinity of BLOB, TEXT, INTEGER, or REAL and pick the first one found. Or stay with NONE if no arm has a defined affinity. Test cases added. (check-in: b8ec8511 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)
17:03
Minor cleanups to [8fbda563d2f5]. (check-in: 5ee2594b user: stephan tags: trunk)
16:46
Extend the JS/WASM SEE build support by (A) filtering SEE-related bits out of the JS when not building with SEE and (B) accepting an optional key/textkey/hexkey option to the sqlite3.oo1.DB and subclass constructors to create/open SEE-encrypted databases with. Demonstrate SEE in the test app using the kvvfs. This obviates the changes made in [5c505ee8a7]. (check-in: 8fbda563 user: stephan tags: trunk)
13:31
Extra robustness in the code that causes cursors to return NULL when they are participating in an OUTER JOIN. (check-in: 672c2869 user: drh tags: trunk)
11:48
For sqlite3.oo1.DB JavaScript classes, bypass execution of any on-open() SQL in SEE-capable builds because it would necessarily run before the client has an opportunity to provide their decryption key, which would leave the db handle in an unusable state and cause the ctor to throw. This currently affects only the OPFS VFSes. We may want to consider extending the ctor options object to optionally accept an SEE key and apply it when opening the db. (check-in: 5c505ee8 user: stephan tags: trunk)
00:42
Continuation of the fix at [8c0f69e0e4ae0a44]: If a viaCoroutine FROM clause term is participating in a RIGHT or FULL JOIN, we have to create an always-NULL pseudo-cursor for that term when processing the RIGHT join. dbsqlfuzz 6fd1ff3a64bef4a6c092e8d757548e95698b0df5. (check-in: e1040e51 user: drh tags: trunk)
2024-04-21
23:35
Fix an indentation problem in debugging routine sqlite3ShowSrcList(). No changes to production code. (check-in: 5560df27 user: drh tags: trunk)
2024-04-20
19:19
Slight performance improvement for the new code on this branch. (check-in: 500c67f1 user: dan tags: vector-in-fix)
15:14
Fix a problem where an expression like (a, b) IN (SELECT ...) might not use an index on (a, b) if the affinities and collation sequences of "a" and "b" are not identical. (check-in: 4d870fd8 user: dan tags: vector-in-fix)
2024-04-18
16:11
Correct handling of OUTER JOIN when on or the other operand is a subquery implemented using the VALUES-as-coroutine optimization. dbsqlfuzz bde3bf80aedf25afa56e2997a0545a314765d3f8. (check-in: 8c0f69e0 user: drh tags: trunk)
2024-04-17
19:48
Prevent tokenize-blobs from being used with non-contentless tables. Fix some other issues with the new code on this branch. (Leaf check-in: 6a640ea4 user: dan tags: fts5-tokenize-blob)
2024-04-16
14:23
Add some tests for the fts5 tokenize-blob functionality on this branch. (check-in: c2f9d125 user: dan tags: fts5-tokenize-blob)
2024-04-15
20:43
The first assert() added in [0ebc65481f4a3e79] is not necessarily true in a corrupt database file. So add a term to make it true. (check-in: 6b21cccd user: drh tags: trunk)
20:24
Add experimental way to specify an alternative tokenizer when writing to or querying an fts5 table. (check-in: 6c51c9c6 user: dan tags: fts5-tokenize-blob)
14:59
Merge version 3.45.3 patches into the reuse-schema-3.45 sub-branch. (Leaf check-in: a1ff4153 user: drh tags: reuse-schema-3.45)
14:45
Merge all of the latest trunk enhancements into the bedrock branch. (check-in: 16dac180 user: drh tags: bedrock)
14:39
Merge the latest trunk enhancements into the wal2 branch. (check-in: 4a72acbc user: drh tags: wal2)
14:36
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: eedf6bed user: drh tags: begin-concurrent)
14:29
Merge from wrong branch. Bedrock should be updated from wal2, not from trunk. (Closed-Leaf check-in: 4c23cad9 user: drh tags: mistake)
14:21
Merge all 3.45.3 changes into the wal2-3.45 branch. (Leaf check-in: 2ccc0185 user: drh tags: wal2-3.45)
14:18
Merge all 3.45.3 changes into the begin-concurrent-3.45 subbranch. (Leaf check-in: 3dda82e0 user: drh tags: begin-concurrent-3.45)
13:34
Version 3.45.3 (check-in: 8653b758 user: drh tags: release, branch-3.45, version-3.45.3)
2024-04-12
18:46
If a build fails in testrunner.tcl, do not attempt to run the jobs that depend on that build. Instead, report those jobs as having been skipped. (check-in: b40580be user: drh tags: trunk)
16:52
Adjustment to EQP output in one test case. (check-in: 08dd2b92 user: drh tags: branch-3.45)
15:10
Increase the version number to 3.45.3. (check-in: 119b3b3c user: drh tags: branch-3.45)
15:06
Mark the BTree cell overflow cache as invalid whenever the rowid goes invalid. (check-in: 5266bb6d user: drh tags: branch-3.45)
15:02
Fixes and new tests logic to ensure that the btree overflow page cache is only used when it is consistent. This resolves the malfunction observed in forum post 284955a3cd454a15. (check-in: 5dede50d user: drh tags: trunk)
13:05
Add assert() statements to help verify the overflow page cache. (Closed-Leaf check-in: 0ebc6548 user: drh tags: btree-ovfl-cache)
12:32
New assert() statements to verify the correctness of the BTCF_AtLast flag on btree cursors. (check-in: 4efecd61 user: drh tags: btree-ovfl-cache)
11:28
Test case for the fix in the previous check-in. (check-in: 0cf4d835 user: drh tags: btree-ovfl-cache)
02:57
Mark the BTree cell overflow cache as invalid whenever the rowid goes invalid. (check-in: 74c9e19c user: drh tags: btree-ovfl-cache)
2024-04-11
19:09
Fix handling of the SQLITE_OMIT_WAL check in one place. Resolves forum post 87cc13302de160eb. (check-in: ce86d30d user: stephan tags: branch-3.45)
19:08
Fix handling of the SQLITE_OMIT_WAL check in one place. Resolves forum post 87cc13302de160eb. (check-in: 5dae6e6d user: stephan tags: trunk)
2024-04-10
16:36
Fix the pragma4.test script so that it works with SQLITE_OMIT_VIRTUALTABLE. (check-in: 61060c7d user: dan tags: branch-3.45)
2024-04-09
19:23
Fix a "shift exponent is too large" usan error that could occur in the fts3 snippet() function when a query phrase contains more than 64 tokens. (check-in: 6d2c7ac4 user: dan tags: trunk)
15:18
Avoid some performance problems in the recover extension when recovering strategically corrupted databases. (check-in: d83b0ffe user: dan tags: branch-3.45)
15:09
Avoid some performance problems in the recover extension when recovering strategically corrupted databases. (check-in: e66a834b user: dan tags: trunk)
14:07
Ignore CHECK constraints when qualifying the xfer optimization while running VACUUM. (check-in: bb6f9908 user: drh tags: branch-3.45)
13:57
The read-only CHECK-constraint optimization of [34ddf02d3d21151b] inhibits the xfer optimization for tables with CHECK constraints. However, the xfer optimization is required for correct operation of VACUUM INTO on tables that contain generated columns. Fix this by ignoring CHECK constraints when qualifying the xfer optimization while running VACUUM. Problem reported by forum post 3ec177d68fe7fa2c. (check-in: a6e26e77 user: drh tags: trunk)
2024-04-08
17:55
Update tests in returning1.test to account for [c7896e88]. (check-in: c02956cd user: dan tags: trunk)
12:02
Merge the latest trunk enhancements, and especially the enhancement to the WHERE-clause push-down optimization, into the bedrock branch. (check-in: 0f93b52c user: drh tags: bedrock)
11:57
Merge the latest trunk enhancements into the wal2 branch. (check-in: 59ccea7d user: drh tags: wal2)
11:50
Enhance the WHERE-clause push-down optimization so that it is able to push down WHERE clause terms that contain uncorrelated subqueries. (check-in: 69ec714b user: drh tags: trunk)
11:45
Fix a harmless compiler warning in the ICU extension due to [acddbc489d5231da]. (check-in: 3d8750e8 user: drh tags: trunk)
06:37
Enhancements to the fuzzer invariant checker to turn optimizations on and off. (Closed-Leaf check-in: 67594481 user: drh tags: pushdown-subquery)
2024-04-07
18:55
Merge trunk testing enhancements into the pushdown-subquery branch. (check-in: 287ff24b user: drh tags: pushdown-subquery)
18:36
Omit all rowid-in-view restrictions from the fuzzinvariant.c test module as they are no longer necessary, as of the previous check-in. (check-in: 6431538f user: drh tags: trunk)
18:23
If SQLITE_ALLOW_ROWID_IN_VIEW is set to 2, then all rowids for views return a value of NULL. (check-in: 0a53dde2 user: drh tags: trunk)
10:30
Merge trunk enhancements into the pushdown-subquery branch. (check-in: 27865e31 user: drh tags: pushdown-subquery)
10:27
Add comments to note the name abiguity between the MySQL push-down optimization and the WHERE-clause push-down optimization. (check-in: 3d5fb1ec user: drh tags: trunk)
2024-04-06
23:09
Add comments to note the name abiguity between the MySQL push-down optimization and the WHERE-clause push-down optimization. (Leaf check-in: 681dfe2d user: drh tags: wrong-branch)
18:30
Do not allow changes to sqlite3ExprIsTableConstant() that support pushdown of subqueries interfere with the hash-join logic. (check-in: 8682931f user: drh tags: pushdown-subquery)
17:42
Merge testing logic fixes on trunk into the pushdown-subquery branch. (check-in: a4e1f03d user: drh tags: pushdown-subquery)
17:37
Improvements to the accurancy of the fuzzinvariants.c testing module when SQLITE_ALLOW_ROWID_IN_VIEW is defined and the test query involves rowids. (check-in: c6e873d4 user: drh tags: trunk)
12:19
Generalize pushdown to allow any uncorrelated subquery to be pushed down. (check-in: 87c45fb0 user: drh tags: pushdown-subquery)
11:59
Generalize the pushdown of IN right-hand sides to cover more SELECTs. (Closed-Leaf check-in: 4120bc74 user: drh tags: pushdown-IN-table)
2024-04-05
20:01
Experimental enhancement in which expressions of the form "expr IN table" can be pushed down into subexpressions. (check-in: 2cbd7838 user: drh tags: pushdown-IN-table)
15:04
Merge all recent trunk enhancements into the reuse-schema branch. (check-in: e556f3d3 user: drh tags: reuse-schema)
14:54
Merge the latest trunk enhancements into the bedrock branch. (check-in: 7a2a64b6 user: drh tags: bedrock)
14:50
Merge the latest trunk enhancements into the wal2 branch. (check-in: a8a8a2db user: drh tags: wal2)
14:46
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 4ff83342 user: drh tags: begin-concurrent)
14:06
Fix obscure issues associated with SQLITE_ALLOW_ROWID_IN_VIEW and indexes on virtual columns in a RIGHT JOIN. (check-in: 4b3a253f user: drh tags: branch-3.45)
13:56
Check-in [a9657c87c53c1922] is wrong: the IndexedExpr.bMaybeNullRow flag is required for virtual columns if they are part of an outer join. Add a test case (derived from dbsqlfuzz b9e65e2f110df998f1306571fae7af6c01e4d92b) to prove it. (check-in: 4484ec6d user: drh tags: trunk)
11:23
When compiling with SQLITE_ALLOW_ROWID_IN_VIEW, if the RETURNING clause of an UPDATE of a view specifies a rowid, then return NULL for the value of that rowid. dbsqlfuzz 7863696e9e5ec10b29bcf5ab2681cd6c82a78a4a. (check-in: c7896e88 user: drh tags: trunk)
2024-04-04
22:53
Optimize sqlite3.oo1.DB.exec() for the rowMode='object' case to avoid converting the object property keys (column names) from native code to JS for each row. This speeds up large data sets considerably and addresses the report in forum post 3632183d2470617d. (check-in: 8b41ef86 user: stephan tags: trunk)
14:26
Add the "interstage-heuristic" that attempts to avoid wildly inefficient queries that use table scans instead of index lookups because the output row estimates are inaccurate. (check-in: 7bf49e2c user: drh tags: trunk)
13:36
Fix an ASAN problem in part of the test harness. No changes to SQLite itself. (check-in: 797cda7d user: drh tags: trunk)
13:07
Fix test cases due to an error message change. (check-in: c49ec239 user: drh tags: trunk)
12:37
Fix exception propagation when the opfs-sahpool VFS fails to initialize to address report in forum post be0141c639. (check-in: db31d178 user: stephan tags: branch-3.45)
12:36
Fix exception propagation when the opfs-sahpool VFS fails to initialize to address report in forum post be0141c639. (check-in: cdb3a900 user: stephan tags: trunk)
2024-04-02
21:55
Add an optional 3rd argument to the icu_load_collation() function that specifies the "strength" of the comparison. (check-in: acddbc48 user: drh tags: trunk)
14:12
Fix typos in comments. Provided ".wheretrace" debugging output for the interstage heuristic module. Do omit automatic index loops in the interstage heuristic. (Closed-Leaf check-in: 186dcae1 user: drh tags: interstage-heuristic)
11:44
Add a heuristic in between the two solver() passes of the query planner that tries to prevent a very slow query plan in cases where the output row count estimate is imprecise. (check-in: 8018417b user: drh tags: interstage-heuristic)
2024-04-01
15:38
Improved comments in the query planner logic that computes the cost for a particular step in a query plan. No code changes. (check-in: 0b2ac2cd user: drh tags: trunk)
2024-03-30
14:11
Make explicit that sqlite3_keyword_name()'s index is 0-based, per forum request. Doc changes only. (check-in: 090943dc user: stephan tags: trunk)
2024-03-29
18:19
Fix handling of an OOM case broken by [11015b4e]. (check-in: 1f3a805d user: dan tags: bedrock)
18:16
Fix handling of an OOM case broken by [49263c91]. (check-in: 9e6b64de user: dan tags: begin-concurrent)
18:07
Fix a problem in SQLITE_DIRECT_OVERFLOW_READ builds that could allow a concurrent transaction to be committed even if it read from an overflow page that was modified concurrently, in cases where the overflow page was written without also writing the b-tree page to which it is linked. (check-in: 11015b4e user: dan tags: bedrock)
18:04
Improve the log message emitted when a BEGIN CONCURRENT transaction cannot be committed due to conflicts so that it identifies the conflicting table in a few more cases. (check-in: 19ff2d4e user: dan tags: bedrock)
17:58
Fix a problem in SQLITE_DIRECT_OVERFLOW_READ builds that could allow a concurrent transaction to be committed even if it read from an overflow page that was modified concurrently, in cases where the overflow page was written without also writing the b-tree page to which it is linked. (check-in: 49263c91 user: dan tags: begin-concurrent)
17:32
Improve the log message emitted when a BEGIN CONCURRENT transaction cannot be committed due to conflicts so that it identifies the conflicting table in a few more cases. (check-in: 5d30e362 user: dan tags: begin-concurrent)
2024-03-28
10:58
Document that the order of an update hook call is unspecied vis-a-vis the final result of the operation which triggers that hook. Doc changes only. (check-in: 3d4b1f07 user: stephan tags: trunk)
2024-03-27
20:34
Update comments in fts5.h. (check-in: 862945d5 user: dan tags: trunk)
2024-03-26
18:07
Add extra tests to vtabL.test. (check-in: fe209099 user: dan tags: trunk)
11:14
Avoid expanding integer values in columns with real affinity to the full 8-byte representation when editing records as part of a DROP COLUMN command. (check-in: a49296de user: dan tags: trunk)
10:48
Merge all recent trunk enhancements into the reuse-schema branch. (check-in: e469b022 user: drh tags: reuse-schema)
10:45
Merge all recent trunk enhancements into the bedrock branch. (check-in: 33d3453f user: drh tags: bedrock)
10:42
Merge all recent trunk enhancements into the wal2 branch. (check-in: c2139d82 user: drh tags: wal2)
10:42
Merge all recent trunk enhancements into the begin-concurrent branch. (check-in: 9b854e54 user: drh tags: begin-concurrent)
2024-03-25
20:35
The RAISE() operator is not a constant expression and cannot participate in the VALUE-as-coroutine optimization. dbsqlfuzz 74cf7c9904360322a6c917e4934b127543d1cd51 (check-in: 6a06dc73 user: drh tags: trunk)
20:00
Add further tests for sqlite3_declare_vtab(). (check-in: f3c4433f user: dan tags: trunk)
19:31
Simplifications to the sqlite3_declare_vtab() implementation. Changes some conditionals into assert() statements, for coverage. (check-in: ff7b898a user: drh tags: trunk)
18:30
Fix a theoretical OOB memory access in sqlite3_stmt_scanstatus_v2(). (check-in: 87be9580 user: dan tags: trunk)
18:24
Revert the previous change. Instead, do a pre-check of the CREATE TABLE statement that is the second argument to sqlite3_declare_vtab() and if the first two keywords are not "CREATE" and "TABLE", then raise an SQLITE_MISUSE error. (check-in: 6a2ff835 user: drh tags: trunk)
17:43
Remove an ALWAYS() from a condition that can be true. (check-in: 715fcf03 user: drh tags: trunk)
14:44
Fix an inaccuracy in automatic indexes that was exposed by the fix at [80c4223098c1827f]. (check-in: fdc9406f user: drh tags: trunk)
13:18
Fix the pragma4.test script so that it works with SQLITE_OMIT_VIRTUALTABLE. (check-in: f8fe6fb6 user: drh tags: trunk)
12:28
Fix recent test case changes so that they also work on Windows. (check-in: 38578b5a user: drh tags: trunk)
11:34
Use the SQLITE_CONSTRAINT return value from xBestIndex to prohibit bad query plans in the pragma virtual table. (check-in: b1259d44 user: drh tags: trunk)
10:55
Improvements to the vtablog.c extension: Eliminate memory leaks. More diagnostic output for xBestIndex. (check-in: 92e9a71b user: drh tags: trunk)
10:28
Flag sqlite3_trace() and sqlite3_profile() as deprecated so that the doc generator for funclist.html sees them as such, and add 'Deprecated' to their page's title for consistency with other deprecated APIs. Comment changes only. Addresses forum post 0901025836. (check-in: 87c54f93 user: stephan tags: trunk)
00:38
Improvements to the vtablog.c extension, for better logging of virtual table interactions. (check-in: e253bb36 user: drh tags: trunk)
2024-03-24
21:18
Fix the xBestIndex method of the pragma virtual table so that it correctly gives a higher cost to plans where the schema hidden parameter is unconstrained. (check-in: ec791413 user: drh tags: branch-3.45)
21:10
Fix the xBestIndex method of the pragma virtual table so that it correctly gives a higher cost to plans where the schema hidden parameter is unconstrained. Fix for the problem reported by forum post 85b6a8b6705fb77a. (check-in: bc516ff5 user: drh tags: trunk)
20:26
Improved "wheretrace" debugging output for calls to xBestIndex. No changes to release code. (check-in: 33966bb0 user: drh tags: trunk)
19:08
Fix the SQLITE_ALLOW_ROWID_IN_VIEW bug-compatibility option so that it works again. Add the SQLITE_CONFIG_ROWID_IN_VIEW sqlite3_config() value to optionally disable the bug-compatibility mode at start-time. Enable testing of SQLITE_ALLOW_ROWID_IN_VIEW. (check-in: 7a3d0027 user: drh tags: branch-3.45)
16:33
Do not automatically assume that ROWID is NOT NULL when compiled with SQLITE_ALLOW_ROWID_IN_VIEW. dbsqlfuzz 31b38eeb63a4e1562de665078f52b7b47a7543cf (check-in: 80c42230 user: drh tags: trunk)
2024-03-23
15:17
Fix an adverse interaction between CREATE TABLE AS and the new VALUES-as-coroutine optimization. dbsqlfuzz c2c5e7e08b7e489d270a26d895077a03f678c33b (check-in: 84b6fdea user: drh tags: trunk)
2024-03-22
10:32
Fix incorrect boundary assert()s on the new OP_IfSizeBetween opcode. (check-in: 8eda4797 user: drh tags: trunk)
2024-03-21
22:18
Test case for the assert() problem fixed by [9ba3cff9d48fe8fc]. (check-in: 865f0de7 user: drh tags: trunk)
22:12
Fix a assert() that is incorrect, though harmless. Also add a test case. (check-in: 90537ce0 user: drh tags: branch-3.45)
15:52
Add comments (only, no code) to the JS sqlite3_config() bindings reminding us why SQLITE_CONFIG_ROWID_IN_VIEW is specifically not included. JNI does not need this treatment because it explicitly supports only a very small subset of config options. (check-in: 4fea3962 user: stephan tags: trunk)
11:46
Enhancements to testrunner.tcl: (1) Add the "--config CONFIGS" option, to that only configuration named on the comma-separated list CONFIGS are run. (2) Add the "--omit CONFIGS" to omit configuration on the CONFIGS list (3) Add the Android configuration to "release" (check-in: 4ccb3729 user: drh tags: trunk)
11:37
Have os_unix.c reuse cached file-descriptors in the case when a read-write fd is requested on a read-only file and a read-only fd returned. (check-in: a678e854 user: dan tags: trunk)
10:35
Fix all test cases so that they work with SQLITE_ALLOW_ROWID_IN_VIEW. (check-in: 66c69e2f user: drh tags: trunk)
2024-03-20
16:56
Change EXPLAIN QUERY PLAN output to say "USE TEMP B-TREE FOR LAST TERM OF ORDER BY", or "LAST N TERMS OF ORDER BY", instead of "RIGHT PART OF ORDER BY". (check-in: 7e13a2c7 user: dan tags: trunk)
16:27
Change EXPLAIN QUERY PLAN output to say "USE TEMP B-TREE FOR LAST TERM OF ORDER BY", or "LAST N TERMS OF ORDER BY", instead of "RIGHT PART OF ORDER BY". (Closed-Leaf check-in: cd547c50 user: dan tags: eqp-orderby)
10:45
Fix the SQLITE_ALLOW_ROWID_IN_VIEW bug-compatibility option so that it works again. Add the SQLITE_CONFIG_ROWID_IN_VIEW sqlite3_config() value to optionally disable the bug-compatibility mode at start-time. Enable testing of SQLITE_ALLOW_ROWID_IN_VIEW. (check-in: b6802565 user: drh tags: trunk)
10:40
Fix a typo in a comment. (Closed-Leaf check-in: 54680d0f user: drh tags: rowid-in-view)
09:45
Fix typos in the SQLITE_CONFIG_ROWID_IN_VIEW documentation. (check-in: 1ad1ca49 user: drh tags: rowid-in-view)
2024-03-19
23:01
Change the SQLITE_CONFIG_NO_ROWID_IN_VIEW configuration option to be just SQLITE_CONFIG_ROWID_IN_VIEW (without the "_NO_" in the middle) and give it the ability to turn the option on and off. Otherwise, it is difficult to test. (check-in: 5d412edc user: drh tags: rowid-in-view)
19:56
Return the error "ambiguous column name: rowid", instead of "no such column: rowid", when a "rowid" reference is ambiguous. (check-in: 0615bdae user: drh tags: rowid-in-view)
19:48
Add the --no-rowid-in-view option to the --help output of the CLI. (check-in: 134da9c3 user: drh tags: rowid-in-view)
19:42
Make sure the new u1.nRow value is copied when making a copy of a SrcItem object. This fixes a problem in [ac6f095e13e43d66] from yesterady. (check-in: 262f8f9d user: drh tags: trunk)
16:51
Update test scripts to account for [8fcea4cd]. (check-in: 0c543c51 user: dan tags: rowid-in-view)
16:34
In the name resolver when SQLITE_ALLOW_ROWID_IN_INDEX is enabled, if there are multiple views that might resolve to the "rowid" but only one real table, then use that one real table and ignore the views. (check-in: 8fcea4cd user: drh tags: rowid-in-view)
15:27
Update tests to work with SQLITE_ALLOW_ROWID_IN_VIEW. (check-in: 495b8c7b user: dan tags: rowid-in-view)
14:55
Return the error "ambiguous column name: rowid", instead of "no such column: rowid", when a "rowid" reference is ambiguous. (Closed-Leaf check-in: 021f34fc user: dan tags: ambiguous-rowid-error)
14:38
Fix the fuzzinvariants.c test module so that it does not generate invariants that depend on rowid when SQLITE_ALLOW_ROWID_IN_VIEW is used, since rowid values can be unreliable in that context. (check-in: 0d711aaa user: drh tags: rowid-in-view)
14:21
Improvements to the first check-in on this branch, causing less collateral damage. (check-in: 7bc88289 user: drh tags: rowid-in-view)
13:55
On second thought, change SQLITE_TESTCTRL_ROWID_IN_VIEW into a start-time option SQLITE_CONFIG_NO_ROWID_IN_VIEW. (check-in: b8e045c9 user: drh tags: rowid-in-view)
13:31
When compiled with SQLITE_ALLOW_ROWID_IN_VIEW, rowid-in-view is on by default but can now be turned off using SQLITE_TESTCTRL_ROWID_IN_VIEW. Without the compile-time option, rowid-in-view is always off. (check-in: 8a6196ab user: drh tags: rowid-in-view)
10:58
Fix a problem involving infinities int the Kahan-Babushka-Neumaier summation algorithm. (check-in: 8af58781 user: drh tags: branch-3.45)
10:41
Adjustments to the test cases for the previous check-in to make them cross-platform Linux/Mac/Windows. Test changes only. No change to core code. (check-in: 0dddadbd user: drh tags: trunk)
10:16
Fix another problem from [c63e26e705f5e967] involving infinities and the Kahan-Babushka-Neumaier summation algorithm. Problem reported by forum post 23b8688ef4. (check-in: 45d272ef user: drh tags: trunk)
02:30
First steps toward getting -DSQLITE_ALLOW_ROWID_IN_VIEW to work again. That compile-time option is untested, undocumented, and unsupported. But it was mentioned in the release notes for version 3.36.0, so I think that means we need to support it forever. (check-in: 7c46ff64 user: drh tags: rowid-in-view)
2024-03-18
21:08
Fix asan problems in sqlite3rbu.c. Enable RBU for sanitizer release tests. (check-in: ad2ae771 user: dan tags: trunk)
20:52
Avoid spurious SQLITE_IOERR_DATA errors when reading partial pages from a cksumvfs database using a SQLITE_DIRECT_OVERFLOW_READ build. (check-in: 0f485dbe user: dan tags: trunk)
18:56
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: c2d4adab user: drh tags: reuse-schema)
18:55
Merge the latest trunk enhancements into the bedrock branch. (check-in: 10ab5e85 user: drh tags: bedrock)
18:51
Merge the latest trunk enhancements into the wal2 branch. (check-in: c0af1242 user: drh tags: wal2)
18:47
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 50b43b02 user: drh tags: begin-concurrent)
18:03
Remove unnecessary blank lines from build commands in the default Makefile.in. (check-in: 76fb3a90 user: drh tags: trunk)
18:00
Add the "VALUES-as-coroutine" optimization. Large VALUES clauses on an INSERT, for example, prepare and run in about half the time and with half the memory. This check-in also includes enhancements to the internal sqlite3ExprIsConstant() routine to recognize pure SQL functions as constant if they have constant arguments. (check-in: a120c923 user: drh tags: trunk)
17:13
Fix harmless compiler (scan-build) warnings. (Closed-Leaf check-in: c86f9f2a user: drh tags: exp-values-clause2)
16:30
Allow the VALUES-as-coroutine optimization to be applied to later rows of a VALUES clause even if earlier rows do not qualify. (check-in: 9a47ea7f user: drh tags: exp-values-clause2)
15:10
Change a test case to use a window function rather than random() to disable the VALUES clause optimization. (check-in: c589149a user: drh tags: exp-values-clause2)
13:31
Add assert() statements to validate access to the SrcItem.u1.nRow union member. (check-in: 21f616d9 user: drh tags: exp-values-clause2)
13:10
Fix the patch at [10ee6fcba08ab128] so that it works on reduced-size Expr nodes. (check-in: 260bd764 user: drh tags: exp-values-clause2)
12:49
Improvements to EXPLAIN QUERY PLAN output for multi-row VALUES claues. (check-in: ac6f095e user: drh tags: exp-values-clause2)
11:12
Ensure the database schema has been loaded and the database encoding gleaned before beginning to code a multi-row VALUES clause. (check-in: 2ff476eb user: dan tags: exp-values-clause2)
10:54
Fix a problem caused by a non-aggregate function with an OVER clause in a multi-row VALUES clause. (check-in: 10ee6fcb user: dan tags: exp-values-clause2)
2024-03-17
16:01
Omit the "noop(X)" test SQL function. Accomplish the same thing using the idiom: "coalesce(X,random())". (check-in: 0eb2fbb8 user: drh tags: exp-values-clause2)
00:13
Add an ALWAYS on an unreachable branch. (check-in: 0dce6211 user: drh tags: exp-values-clause2)
2024-03-16
21:12
Recognize when an SQL function is constant and can occur inside an optimized VALUES clause. (check-in: c0e5ceb8 user: drh tags: exp-values-clause2)
21:04
Fix a assert() that is incorrect, though harmless. (Closed-Leaf check-in: 9ba3cff9 user: drh tags: enhanced-expr-is-const)
20:15
Further expand the scope of usage for the enhacement to expr-is-constant. (check-in: d7eadcf7 user: drh tags: enhanced-expr-is-const)
19:48
Assert that the eCode is always non-zero upon entry into exprNodeIsConstant(). (check-in: f71b28f6 user: drh tags: enhanced-expr-is-const)
19:36
Activate the enhanced constant-expression for the [constant propagation optimization](/info/f4229707ac08d66c). (check-in: 92afea38 user: drh tags: enhanced-expr-is-const)
17:04
Extend the scope expr-is-constant for function to cover the IN-to-EQ optimization. (check-in: dae66924 user: drh tags: enhanced-expr-is-const)
14:27
Fix exprNodeIsConstantFunction() so that it returns WRC_Continue, not WRC_Abort, if the function really is constant. (check-in: d85dd4de user: dan tags: enhanced-expr-is-const)
13:18
Enhance the sqlite3ExprIsConstant() function so that it recognizes constant functions. So far the enhancement only applies to the multi-row VALUES clause, but it could possibly be applied in many other places. (check-in: c9e0488c user: drh tags: enhanced-expr-is-const)
2024-03-15
17:57
New options for testrunner.tcl: --stop-on-error and --stop-on-coredump. (check-in: 82035b9c user: drh tags: trunk)
17:04
Fix (totally harmless) memory leaks in Lemon to avoid warnings during ASAN builds. (check-in: ce009205 user: drh tags: trunk)
13:16
Tweaks to the func4.test test module (which tests the rarely used totype.c extension) so that it works on i586 compiled using gcc-13 with -O0. Details at forum post 0a7553b0f734c033. (check-in: d0fbe779 user: drh tags: trunk)
12:59
Attempt to use the Dekker high-precision floating point algorithm in the ext/misc/totype.c extension. This check-in should have been derived from trunk, not the exp-values-clause2 branch. But that's ok, because both trunk and the branch are the same in all aspects that relate to this check-in and this check-in is just parking the proposed enhancement for future consideration - it is not a serious proposal at this point. (Leaf check-in: dd41db3b user: drh tags: totype-dekker)
2024-03-14
20:39
Fix testcase to account for new behaviors with this branch. (check-in: 823e5793 user: drh tags: exp-values-clause2)
19:31
Fix a problem with ALTER TABLE and correlated multi-row VALUES clauses. (check-in: d543c829 user: dan tags: exp-values-clause2)
19:01
Fix a problem handling "INSERT INTO ... SELECT ... UNION VALUES(...), (...)" and similar statements. (check-in: e8a2a819 user: dan tags: exp-values-clause2)
17:04
Avoid some OP_SCopy instructions in "INSERT INTO .. VALUES" statements that insert more than one row in cases where the VALUES clause contains a value for all columns of the table. (check-in: 988f0ea7 user: dan tags: exp-values-clause2)
13:18
JS: remove an unused function argument and some debug-related comments. No functional changes. (check-in: f1570943 user: stephan tags: trunk)
11:45
Add further tests for VALUES clauses in various contexts. (check-in: 973d197d user: dan tags: exp-values-clause2)
2024-03-13
20:04
Change the way parse.y handles multi-row VALUES clauses to save a few cycles. (check-in: 88d5bc91 user: dan tags: exp-values-clause2)
18:41
Remove unreachable code from this branch. (check-in: 657c7b4f user: dan tags: exp-values-clause2)
18:00
Merge the latest trunk enhancements into the bedrock branch. (check-in: 5c8e80f4 user: drh tags: bedrock)
17:55
Merge the latest trunk enhancements into the wal2 branch. (check-in: 2b12da72 user: drh tags: wal2)
17:51
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 238fa84a user: drh tags: begin-concurrent)
17:33
Fix some OOM handling problems on this branch. (check-in: 2085c7f1 user: dan tags: exp-values-clause2)
16:49
Do not automatically activate SQLITE_ENABLE_SHARED_SCHEMA in the Makefile. Instead, enhance the mdevtest and sdevtest targets of testrunner.tcl to set that option sometimes and sometimes not. (check-in: 693b8f93 user: drh tags: reuse-schema)
16:35
Merge the testrunner.tcl enhancement from trunk. (check-in: da471515 user: drh tags: reuse-schema)
16:32
Minor change to the "mdevtest" and "sdevtest" in testrunner.tcl, to make it easier to add configurations in branches. (check-in: 9349d94e user: drh tags: trunk)
15:59
Merge the latest trunk enhancements into the reuse-schema branch. Fix the reuse-schema build of the CLI so that it works again. (check-in: 70ef3784 user: drh tags: reuse-schema)
15:47
Merge trunk into this branch. (check-in: 38635651 user: dan tags: exp-values-clause2)
15:44
Ensure that if a multi-row VALUES cannot be coded while being parsed, the SF_MultiValue flag is correctly set. (check-in: 94791824 user: dan tags: exp-values-clause2)
15:34
Avoid creating a co-routine incrementally for a VALUES clause that has affinities other than NONE. (check-in: 4229b12b user: dan tags: exp-values-clause2)
13:43
If the NJOB environment variable is a positive integer, it causes testrunner.tcl to run that many jobs. (check-in: 924281b9 user: drh tags: trunk)
13:27
Document the testrunner.tcl --explain option in doc/testrunner.md. (check-in: 5a7b5fc9 user: drh tags: trunk)
13:09
Add the --explain option to testrunner.tcl. (check-in: f0c9eb03 user: drh tags: trunk)
11:46
Improve one of the error messages from testrunner.tcl. (check-in: 233155c1 user: drh tags: trunk)
11:29
Minor tweaks to the testrunner documentation. (check-in: 3128b98d user: drh tags: trunk)
10:55
Improvements to the "help" message generated by testrunner.tcl. Add the special "list" permutation that does nothing but list all allowed values for the PERMUTATION argument to testrunner.tcl. (check-in: 1f5bfc6a user: drh tags: trunk)
10:54
Add pointer to documentation to testrunner.tcl help message. (check-in: eff85510 user: dan tags: trunk)
10:47
Have testrunner.tcl set SQLITE_TMPDIR on windows as well. (check-in: 64f4dad1 user: dan tags: trunk)
00:37
On testrunner.tcl: (1) Add the "help" command. (2) Add the "script" command to the help message. (3) Improve the error message generated by "script" when an incorrect CONFIG option is provided. (check-in: 1b7f0be4 user: drh tags: trunk)
2024-03-12
20:10
Correctly initialize the SrcItem.iCursor field to -1 when creating a co-routine from a multi-values VALUES clause. (check-in: c32953ff user: dan tags: exp-values-clause2)
18:33
Have testrunner.tcl have each test store its temp files in its working directory. To avoid unlikely, but possible, collisions. (check-in: 18842d0d user: dan tags: trunk)
18:04
Have testrunner.tcl have each test store its temp files in its working directory. To avoid unlikely, but possible, collisions. (Closed-Leaf check-in: 775a10d1 user: dan tags: testrunner-tmpdir-fix)
12:12
Merge all version-3.45.2 patches into the reuse-schema-3.45 subbranch. (check-in: 20d9618d user: drh tags: reuse-schema-3.45)
12:00
Merge all 3.45.2 pages into the bedrock-3.45 subbranch. (check-in: 33b9cf7c user: drh tags: bedrock-3.45)
11:55
Merge all 3.45.2 patches into the wal2-3.45 subbranch. (check-in: 64d740c5 user: drh tags: wal2-3.45)
11:51
Merge all version 3.45.2 patches into the begin-concurrent-3.45 subbranch. (check-in: f0723258 user: drh tags: begin-concurrent-3.45)
11:06
Version 3.45.2 (check-in: d8cd6d49 user: drh tags: release, branch-3.45, version-3.45.2)
10:47
First attempt at version 3.45.2, but failed to set the version number correctly in the source tree. (Closed-Leaf check-in: 78bed2b0 user: drh tags: mistake)
2024-03-11
23:28
Merge the latest branch-3.45 patches into the reuse-schema-3.45 subbranch. (check-in: e22e0e1e user: drh tags: reuse-schema-3.45)
23:26
Merge the latest branch-3.45 changes into the bedrock-3.45 subbranch. (check-in: 516b7e13 user: drh tags: bedrock-3.45)
23:23
Merge the branch-3.45 patches into the wal2 branch. (check-in: f8cee91f user: drh tags: wal2-3.45)
23:18
Merge the latest branch-3.45 changes into the begin-concurrent branch. (check-in: 98ea2ca2 user: drh tags: begin-concurrent-3.45)
20:34
Fix another testrunner.tcl problem on windows. (check-in: 7805844b user: dan tags: trunk)
19:43
Fix a missing brace problem in testrunner.tcl introduced by the previous commit. (check-in: 1f5e334d user: dan tags: trunk)
19:33
Update mdevtest and sdevtest to do shell builds in parallel. And only if one or more of the tcl scripts run requires it. (check-in: 6eae4547 user: dan tags: trunk)
18:21
Run shell*.test modules with "make mdevtest". (check-in: 76c47106 user: drh tags: trunk)
17:27
Attempt to reduce the memory used by VALUES clauses in as many statements as possible, not just INSERT. This branch still has problems. (check-in: 17d1f7cf user: dan tags: exp-values-clause2)
11:26
Fix the ".import" command in the CLI so that it works correctly with tables that contain computed columns. (check-in: b26f2444 user: drh tags: branch-3.45)
11:24
Fix the ".import" command in the CLI so that it works correctly with tables that contain computed columns. forum post ca014d7358. (check-in: 95a9c88b user: drh tags: trunk)
09:39
Add more docs for the OPFS delete-before-open feature. (check-in: cb8d9c26 user: stephan tags: trunk)
09:34
Add delete-before-open=1 URI flag to the 'opfs' VFS to tell it to xDelete the db file before opening it, primarily to enable users to work around a corrupt db without having to reach into OPFS-specific APIs to remove the db file. (check-in: e87cf0d7 user: stephan tags: trunk)
09:32
Add delete-before-open=1 URI flag to the 'opfs' VFS to tell it to xDelete the db file before opening it, primarily to enable users to work around a corrupt db without having to reach into OPFS-specific APIs to remove the db file. (Closed-Leaf check-in: e83f9788 user: stephan tags: opfs-delete-before-open)
2024-03-09
18:41
Fix the .expert command in the shell so that it does not leak memory if not followed by SQL and so that it works with reverse_unordered_selects. (check-in: 7ead022e user: drh tags: trunk)
13:31
Fuzzcheck is run automatically by testrunner.tcl, so there is no need to include fuzzcheck as a separate dependency for the releasetest target in the MSVC makefile. (check-in: 76629b2b user: drh tags: trunk)
13:17
Reenable the use of SQLITE_OMIT_VIRTUALTABLE by fixing a misplaced #endif caused by the merge at [c080560c2d0d753c]. (check-in: 71120ea8 user: drh tags: branch-3.45)
13:10
Fix the rtreeJ.test module to align it with [cd017c28d516399e]. (check-in: 111b3d82 user: drh tags: branch-3.45)
12:30
Handle an OOM case in fts5 code to query tokendata=1 tables. (check-in: ebf59fa3 user: drh tags: branch-3.45)
00:38
The NOT NULL strength reduction optimization should be applied to the WHERE clause only. (check-in: be266c71 user: drh tags: branch-3.45)
2024-03-08
21:37
The NOT NULL strength reduction optimization from [de9c86c9e4cdb34f] should be applied to the WHERE clause only. Otherwise, the operand of the IS NULL or IS NOT NULL operator might be a reference to a bare column of an aggregate table, and we can't tell if it is NULL or not based only on its NOT NULL attribute. Forum post 440f2a2f17. (check-in: 51704fea user: drh tags: trunk)
19:03
One of the assert()s added by the previous check-in was not quite correct. This commit fixes it. (check-in: d4013583 user: drh tags: trunk)
15:39
Add new assert() statements, which if they had existed three years ago, would have detected the code generator problem fixed by the previous check-in. (check-in: 166d1e5d user: drh tags: trunk)
14:11
Silently ignore redundant ON CONFLICT clauses in an UPSERT. (check-in: 46245855 user: drh tags: branch-3.45)
14:01
Silently ignore redundant ON CONFLICT clauses in an UPSERT. Only the first ON CONFLICT for each index is active. Do not issue an error, since that might break legacy queries. But ignore the redundant ON CONFLICT clauses to prevent problems such as described in forum post 919c6579c8. (check-in: d0ea6b6b user: drh tags: trunk)
13:49
Omit some extra tests for the intck extension in OMIT_VIRTUAL_TABLE or OMIT_PRAGMA builds. (check-in: 29d9eb7d user: dan tags: trunk)
11:13
Fix pragma6.test so that it works with ENABLE_OVERSIZE_CELL_CHECK builds. (check-in: a02551de user: dan tags: trunk)
11:08
Do not run tests for the intck extension in OMIT_VIRTUAL_TABLE or OMIT_PRAGMA builds. (check-in: de8130c0 user: dan tags: trunk)
03:24
Must use sqlite3IntFloatCompare() for accurate comparisons between very large integer and floating point values in RTREE. Otherwise the comparison does not work on all platforms. Further fix to [027e5336acc26f57]. (check-in: 820f106a user: drh tags: trunk)
2024-03-07
19:29
Introducing JS worker1 promiser v2, which initializes via Promise (instead of a callback function) and can be loaded as an ESM module. (check-in: 2fbaf2f5 user: stephan tags: trunk)
18:53
Resolve duplicate loading of promiser v2 demo code (a side effect of having done precisely what it was told to do). Consolidate demo-worker1-promiser(-esm).html/(m)js variants into central copies processed with c-pp. (Closed-Leaf check-in: 9347d9b9 user: stephan tags: wasm-promiser1-v2)
18:47
Improved error handling. (Leaf check-in: cf2d1ad0 user: drh tags: exp-values-clause)
17:56
wasm promiser.v2 is essentially working but the demo code is double-loading the module for as-yet-undetermined reasons. (check-in: aa877ce0 user: stephan tags: wasm-promiser1-v2)
17:11
Simplify the parser changes on this branch. (check-in: 89a6c7b5 user: dan tags: exp-values-clause)
16:25
Merge all the latest trunk enhancements into the exp-values-clause branch. (check-in: c4923f26 user: drh tags: exp-values-clause)
16:04
Initial work at getting sqlite3Worker1Promiser.v2() to return a Promise instead of using an onready() callback, and also creating an ESM build for promiser1 per user request. It seems to work but requires more testing. (check-in: 0e272123 user: stephan tags: wasm-promiser1-v2)
15:58
Fix harmless compiler warnings in test code for the intck extension. (check-in: 7fbdc1a8 user: drh tags: trunk)
15:44
Add further tests for the code on this branch. (check-in: 5d8065e8 user: dan tags: exp-values-clause)
12:34
Do not allow the query planner to be tricked into thinking that an index on a constant expression might be useful for something. Problem reported on forum post ecdfc02339. This is a follow-up to the fixes at [44200596aa943963] and [2d2b91cc0f6fed8c]. (check-in: 720ce06d user: drh tags: trunk)
2024-03-06
21:53
Fix a memory leak in new memdb1.test test cases that were added by [e638d5e408ea2e18]. No changes to SQLite itself. (check-in: f0a49dc8 user: drh tags: branch-3.45)
21:22
Fix harmless compiler warning seen with MSVC. (check-in: 5aa809bc user: mistachkin tags: branch-3.45)
21:08
Fix harmless compiler warnings seen with MSVC. (check-in: c0f61524 user: mistachkin tags: branch-3.45)
21:06
Fix a minor test file locking issue on Windows. (check-in: a4475280 user: mistachkin tags: branch-3.45)
21:00
Work around obscure floating point issue seen with older versions of MSVC. (check-in: 6055715f user: mistachkin tags: branch-3.45)
20:59
Fix two -Werror=lto-type-mismatch warnings reported in forum post ef62b57bd5. (check-in: d4e423f3 user: mistachkin tags: branch-3.45)
20:58
The quote() SQL function should convert +Inf into 9.0e+999 and -Inf into -9.0e+999. See forum post 6675b25108. (check-in: 07a9ef88 user: mistachkin tags: branch-3.45)
20:58
Make sure key comprisons are done correctly if the index key contains NaN values that have not been shifted into NULLs. That can only happen due to database corruption, but we need to deal with it nevertheless. (check-in: 7ed922d9 user: mistachkin tags: branch-3.45)
20:56
When inserting a 3-byte cell into a btree, ensure that the extra padding byte is 0x00. This is not necessary for security, as far as I can tell, but it seems like a reasonable precaution. (check-in: f3e84187 user: mistachkin tags: branch-3.45)
20:55
Rig sqlite3_serialize() so that it will initialize a previously uninitialized database prior to serializing it, so that it does not have a zero-byte size and does not return NULL (except for OOM). Forum thread 498777780e16880a. (check-in: 22a33f13 user: mistachkin tags: branch-3.45)
20:54
When doing a text-affinity comparison between two values where one or both have both a text and a numeric type, make sure the numeric type does not confuse the answer. This is a deeper fix to the problem observed by forum post 3776b48e71. The problem bisects to [25f2246be404f38b] on 2014-08-24, prior to version 3.8.7. (check-in: 6d385ccd user: mistachkin tags: branch-3.45)
20:52
Ensure that the replace() SQL function always returns a TEXT value even when its first argument is numeric and its second argument is an empty string. Fix for the issue reported by forum post 3776b48e71. (check-in: a7c98c8f user: mistachkin tags: branch-3.45)
20:49
Add the json_pretty() SQL function. (check-in: ceb51c1c user: drh tags: trunk)
20:38
Add test cases for json_pretty(). (Closed-Leaf check-in: 6448b907 user: drh tags: json-pretty)
20:34
Avoid making too many calls to sqlite3Select/sqlite3WhereBegin() when processing large VALUES clauses. (check-in: 356158c1 user: dan tags: exp-values-clause)
20:24
Work around obscure floating point issue seen with older versions of MSVC. (check-in: 42d39f91 user: mistachkin tags: trunk)
14:55
Handle VALUES clauses having different number of values in different rows. Also the case where SQLITE_LIMIT_COMPOUND_SELECT is set to 0. (check-in: f5074b29 user: dan tags: exp-values-clause)
14:42
Add a couple of json_pretty() examples to /fiddle. (check-in: d5e1687b user: stephan tags: json-pretty)
14:30
Add the json_pretty(J) function for pretty-printing of JSON. An optional 2nd argument is text used for indentation, with a default value being four spaces. (check-in: 39552bd3 user: drh tags: json-pretty)
12:28
Correction to the previous check-in. (check-in: 483fa296 user: drh tags: trunk)
11:35
Fix handling of "id=?" corner cases in rtree when the value on the RHS is a real value. Problem reported by forum post 1bb055be17. (check-in: 027e5336 user: dan tags: trunk)
08:45
Wasm build tweaks to attempt to get the node.js-for-node.js build to use Emscripten's nodefs filesystem driver for persistent storage. This is completely untested - validating it requires a nodeist. (Closed-Leaf check-in: 0bcbde7c user: stephan tags: wasm-nodefs)
2024-03-05
20:33
Add comments for the new code on this branch. (check-in: 551caba9 user: dan tags: exp-values-clause)
18:41
Remove code that added a P4 parameter to the OP_Variable opcode. This is no longer required. (check-in: dd5977c9 user: dan tags: trunk)
18:03
Merge trunk changes into this branch. (check-in: a003fffa user: dan tags: exp-values-clause)
17:48
Fix a problem with large values clauses and named variables. (check-in: 4784a92e user: dan tags: exp-values-clause)
17:39
Reformulate [34439fe3aeea7cbb] slightly to resolve a false-positive OOM reported in forum post 2eadfe94e3. (check-in: 320ccb5d user: stephan tags: branch-3.45)
17:33
Reformulate [34439fe3aeea7cbb] slightly to resolve a false-positive OOM reported in forum post 2eadfe94e3. (check-in: 82906467 user: stephan tags: trunk)
17:23
Simplify changes on this branch by avoiding any special handling until SQLITE_LIMIT_COMPOUND_SELECT rows are reached. (check-in: 9cbceaac user: dan tags: exp-values-clause)
16:59
The value returned by the json_each.json field needs to survive longer than the json_each virtual table itself, in the event that the value is used in an aggregate expression. dbsqlfuzz 5120bd0b3bb0b73eebbcb79ac37c6b0663fccad6 (check-in: 040946b3 user: drh tags: branch-3.45)
16:47
The value returned by the json_each.json field needs to survive longer than the json_each virtual table itself, in the event that the value is used in an aggregate expression. dbsqlfuzz 5120bd0b3bb0b73eebbcb79ac37c6b0663fccad6 (check-in: 952ed71b user: drh tags: trunk)
12:48
/fiddle: reorder/replace example entries to make them more coherent when tried in order and clear the example selection list when the input area is cleared, both based on forum feedback. (check-in: b4ce270b user: stephan tags: trunk)
08:48
/fiddle 'Mandlebrot' typo fix reported in the forum. (check-in: ceefe6ba user: stephan tags: trunk)
07:55
Update fiddle.make to account for Makefile changes in [178b7d46f9]. (check-in: 7a5d8105 user: stephan tags: trunk)
06:31
/fiddle: before resetting a db, roll back any transactions (resolves problem reported in forum post 0b41a25d65) and remove an obsolete/broken reference to a long-gone API which could cause initialization to fail prematurely. (check-in: ee164ca7 user: stephan tags: trunk)
2024-03-04
18:50
Fix some problems with "VALUES(...) UNION ..." and similar on this branch. (check-in: 5d679771 user: dan tags: exp-values-clause)
18:22
Fix a compiler warning in date.c. Update makefiles to include all necessary dependencies for building shell.c. (check-in: 178b7d46 user: drh tags: trunk)
18:02
The ability to DROP multiple tables (or views or indexes or triggers) at once, as implemented by this branch, appears to work. However, this branch adds over 1000 bytes to the code footprint. And the changes is significant, adding risk. The benefit of being able to drop multiple tables in a single statement is not seen to be enough to overcome those downsides, and so there are no immediate plans to merge this branch. (Leaf check-in: 1a49788a user: drh tags: multi-drop)
16:44
Change test results in corruptC.test to account for the added detail in the output of "PRAGMA integrity_check" from [b736519d3d2e93c7]. (check-in: 0d19eeaa user: drh tags: trunk)
16:18
Fix harmless compiler warnings in the increment integrity_check extension. (check-in: 596668e6 user: drh tags: trunk)
13:58
Adjust date/time functions so that they do a better job of keeping track of whether the current time is UTC or localtime, and no-op the 'utc' and 'localtime' modifiers accordingly. See forum post e7a939e074. Also add the datedebug() function, available only under -DSQLITE_DEBUG, for improved visibility of the DateTime object during debugging and testing. (check-in: dc569683 user: drh tags: trunk)
11:12
Fix assert() statements in date/time computations: The month and day numbers can be zero if an error has been seen. (check-in: fc773f6c user: drh tags: trunk)
09:56
Document why the wasm build does not use Emscripten's -sSTRICT=1 flag and account for a behaviour change in emsdk 3.1.55 regarding the HEAPxyz symbols. (check-in: f6e88720 user: stephan tags: trunk)
09:23
When warning about multiple invocations of JS's sqlite3ApiBootstrap(), use the warning logger installed by the first invocation, rather than console.warn. (check-in: d162af2d user: stephan tags: trunk)
06:54
After wasm bootstrapping has read the optional global-scope config objects, delete those objects because any further changes would not have any useful effect. Expand the docs regarding the sqlite3ApiBootstrap() config object and explain the necessary evil of a separate global-scope object for that configuration. (check-in: e6b14f73 user: stephan tags: trunk)
2024-03-03
20:15
Back out the previous change. Replace it with new date modifiers "ceiling" and "floor". (check-in: f0831cce user: drh tags: trunk)
2024-03-02
21:02
New date/time modifiers "mnth" and "yr" work like "month" and "year" but resolve day-of-month overflow by truncating rather than rolling over into the next month. Forum thread 232d1abb5d (check-in: 5d392c16 user: drh tags: trunk)
20:50
Change the magic time-interval names that do truncate-to-same-month to be "mnth" and "yr" - "month" and "year" without the vowels. (Closed-Leaf check-in: 296b46c5 user: drh tags: month-truncate)
20:39
Attempt to use less memory when handling a large VALUES clause attached to an INSERT statement. This branch is buggy. (check-in: 6d4f1ae2 user: dan tags: exp-values-clause)
13:38
Proof-of-concept for new time-interval operator "pg-month" and "pg-year" that use the truncate-to-month algorithm for month overflow instead of the wrap-to-next-month algorithm that is used by SQLite by default. (check-in: b606c096 user: drh tags: month-truncate)
12:17
Remove an unused line of code. (check-in: 26272590 user: drh tags: multi-drop)
11:02
Simplifications to multi-DROP logic. (check-in: e70d6be7 user: drh tags: multi-drop)
00:29
Improved rebustness against OOM and corruption. (check-in: 3992f450 user: drh tags: multi-drop)
2024-03-01
22:42
When doing DROP TABLE or DROP INDEX, use a heap to ensure that the various btrees are dropped in the right order for autovacuum. (check-in: e5bf9556 user: drh tags: multi-drop)
19:08
RTREE uses multi-DROP to erase shadow tables. (check-in: cf8a58d6 user: drh tags: multi-drop)
18:05
Omit unreachable branches in the parser. (check-in: 90de1f73 user: drh tags: multi-drop)
15:56
Fix harmless compiler warning. (check-in: 33d3bb84 user: drh tags: multi-drop)
14:47
Improved handling of foreign-key constraints on a multi-drop of tables. (check-in: 144e332f user: drh tags: multi-drop)
12:21
When doing a multi-drop, delete btrees beginning with the largest root page first and working toward smaller root pages, to avoid problems with root page renumbering due to autovacuum. (check-in: 37d4c5e2 user: drh tags: multi-drop)
2024-02-29
19:40
Attempt to fix multi-object DROP. Working better, but still not perfect. (check-in: 02f9fc73 user: drh tags: multi-drop)
13:44
Add the ability to DROP one or more objects of the same class in a single statement by listing the objects as multiple arguments to the DROP command. (check-in: 2266086c user: drh tags: multi-drop)
10:55
Fix two -Werror=lto-type-mismatch warnings reported in forum post ef62b57bd5. (check-in: 803481f2 user: stephan tags: trunk)
03:45
Fix two -Werror=lto-type-mismatch warnings reported in forum post ef62b57bd5. (Closed-Leaf check-in: 29f94610 user: stephan tags: lto-type-mismatch)
2024-02-28
19:44
Put NEVER() on a branch in STAT4 that appears to be unreachable. (Closed-Leaf check-in: 0ca35e92 user: drh tags: mistake)
15:32
Add in a VdbeCoverage() macro needed by STAT4 that should have been part of check-in [63ef234e88857a65]. (check-in: d51c699a user: drh tags: trunk)
01:12
Always convert 32-bit integer literals into EP_IntValue notation, even if they contain "_" separators. (check-in: 2dfc427f user: drh tags: trunk)
2024-02-27
20:19
Fix an eputf() macro without its argument in the CLI. (check-in: c2f5e257 user: drh tags: trunk)
19:57
Add an assert() to help scan-build recognize that a variable is initialized. (check-in: 10d26f1e user: drh tags: trunk)
16:36
Adjust a VdbeCoverage() macro in PRAGMA integrity_check to account for the fact that arguments to the OP_Eq opcode used are never NULL. (check-in: 759ccea3 user: drh tags: trunk)
16:25
Adjust a VdbeCoverage() macro in PRAGMA integrity_check to account for the fact that arguments to the OP_Eq opcode used are never NULL. (Closed-Leaf check-in: 8c788fc4 user: drh tags: wrong-branch)
15:56
Fix typo in the help text of the CLI - a typo that prevented the display of help for the ".imposter" command. Turns out the comma is deliberate. The ".imposter" command is deliberately undocumented to avoid confusing non-devs. (Closed-Leaf check-in: 0d9a2596 user: drh tags: mistake)
15:33
Remove unreachable branches from the PRAGMA integrity_check enhancement of [b736519d3d2e93c7]. (check-in: 6d02fb23 user: drh tags: trunk)
14:31
Ensure memory cells are properly freed before they are overwritten by OP_IntegrityCk. (check-in: e50acaf9 user: dan tags: trunk)
11:03
Have "PRAGMA quick_check" compare the number of entries in tables and indexes. (check-in: b736519d user: dan tags: trunk)
11:02
Extend sqlite3.c makefile rule to support EXTRA_SRC=list-of-c-files to append to the generated sqlite3.c, as discussed in/around forum post ccda88cf6f1754c5. (check-in: 61676f1e user: stephan tags: trunk)
10:52
Allow "_" characters to appear between any two digits in an integer, real or hexadecimal SQL literal. (check-in: 0e6700f4 user: dan tags: trunk)
00:58
Bring the extra-src branch up to date with the trunk. (Closed-Leaf check-in: 12ff5c5c user: stephan tags: extra-src)
2024-02-26
22:28
The quote() SQL function should convert +Inf into 9.0e+999 and -Inf into -9.0e+999. See forum post 6675b25108. (check-in: 85dd79a6 user: drh tags: trunk)
15:27
When inserting a 3-byte cell into a btree, ensure that the extra padding byte is 0x00. This is not necessary for security, as far as I can tell, but it seems like a reasonable precaution. (check-in: 5766f127 user: drh tags: trunk)
12:16
Add the intck extension. For performing incremental integrity-check on a database. (check-in: 141d8bb0 user: dan tags: trunk)
11:51
Fix header comments on test scripts. (Closed-Leaf check-in: 9fe9670c user: drh tags: incr-integrity-check)
11:43
Remove a local variable from sqlite3IntFloatCompare() that was being optimized out anyhow, in order to get back to 100% MC/DC. (check-in: 52b13d6a user: drh tags: trunk)
10:56
Merge latest trunk changes into this branch. (check-in: b6371ff9 user: dan tags: incr-integrity-check)
2024-02-25
21:30
Make sure key comprisons are done correctly if the index key contains NaN values that have not been shifted into NULLs. That can only happen due to database corruption, but we need to deal with it nevertheless. (check-in: 7e4c743f user: drh tags: trunk)
2024-02-24
19:58
Add two GIFs that contain the feather logo. (check-in: 5f21e6a8 user: drh tags: trunk)
16:26
Add further tests for the intck module. (check-in: c253e276 user: dan tags: incr-integrity-check)
2024-02-23
20:51
Add tests for the new code on this branch. (check-in: 351d46b2 user: dan tags: incr-integrity-check)
18:21
Add the ".intck ?STEPS_PER_UNLOCK?" command to the shell tool. (check-in: cfd05183 user: dan tags: incr-integrity-check)
18:02
Typo fixes reported in the forum. No code changes. (check-in: 67d8bae0 user: stephan tags: trunk)
17:10
Fix detection of surplus index entries when all indexed fields are NULL. (check-in: 5f310fb7 user: dan tags: incr-integrity-check)
15:13
Fix problems with resuming integrity-check operations on indexes with mixed ASC and DESC columns, and on indexes that contain NULL values. (check-in: 0f68b35a user: dan tags: incr-integrity-check)
2024-02-22
18:15
Fix harmless compiler warning seen with MSVC. (check-in: e5db0899 user: mistachkin tags: trunk)
00:50
Fix debugging code so that it compiles on MSVC. (check-in: ce5df19d user: drh tags: trunk)
2024-02-21
20:58
Fix various issues in sqlite3intck.c. (check-in: 8a7bfa74 user: dan tags: incr-integrity-check)
20:21
Fix typo in comment. Fossil forum post cc20266bf2. (check-in: 7e3c46ee user: drh tags: trunk)
19:31
Simplify the way the restart key is saved internally by the intck extension. (check-in: 0e39962b user: dan tags: incr-integrity-check)
19:17
Add documentation to ext/intck/sqlite3intck.h. (check-in: 4cc19bd7 user: dan tags: incr-integrity-check)
16:15
Ensure intck tests are run by testrunner.tcl. (check-in: 11d6816c user: dan tags: incr-integrity-check)
16:12
Merge trunk changes into this branch. (check-in: 63e8846a user: dan tags: incr-integrity-check)
2024-02-20
20:18
Have the intck extension better handle corruption at the b-tree layer. (check-in: ecd775d1 user: dan tags: incr-integrity-check)
18:17
Use fewer cycles to generate the "next key" value used by sqlite3_intck_suspend() function in the intck extension. (check-in: 95f01426 user: dan tags: incr-integrity-check)
16:04
Consider using "=" and IS operators with even low-quality indexes in cases where they are selected explicitly using an INDEXED BY clause. (check-in: 43cbbea8 user: dan tags: incr-integrity-check)
15:38
Fixes to comments associated with the recent PRAGMA optimize enhancements. No changes to code. (check-in: 27a2113d user: drh tags: trunk)
13:11
Remove an unreachable branch from printf(). Change it into an assert(). (check-in: 4c9886b6 user: drh tags: trunk)
13:10
Remove an unused variable from the merge in the previous check-in. (check-in: 5c26bf37 user: drh tags: trunk)
12:48
Enhancements to PRAGMA optimize and ANALYZE. Add the 0x10000 flag to PRAGMA optimize. ANALYZE now records zero-size partial indexes in the sqlite_stat1 table. PRAGMA optimize looks for both growth and shrinkage in table sizes, and uses tighter bounds (10x rather than 25x) to trigger a re-analyze. PRAGMA optimize automatically uses are reasonable analysis_limit to prevent excessive runtimes. (check-in: 63ef234e user: drh tags: trunk)
12:14
Another simplification of the PRAGMA optimize logic for improved coverage. (Closed-Leaf check-in: 6c5a0c85 user: drh tags: better-pragma-optimize)
2024-02-19
23:58
Minor fixes. (check-in: ed5afebc user: drh tags: better-pragma-optimize)
20:47
Fix a minor hiccup in the computation of the number of btrees to be scanned. (check-in: 91302d9b user: drh tags: better-pragma-optimize)
20:15
Use more efficient SQL to verify that indexes contain entries that match their tables. (check-in: c01e008c user: dan tags: incr-integrity-check)
20:12
If there is no mention of a table in sqlite_stat1, use OP_Rewind to see if the table is empty prior to invoking ANALYZE. (check-in: 0cc93b19 user: drh tags: better-pragma-optimize)
19:56
In PRAGMA optimize, scale back the analysis_limit when many different tables and indexes must be scanned. (check-in: 63661535 user: drh tags: better-pragma-optimize)
18:55
Merge trunk fixes into the better-pragma-optimize branch. (check-in: 2cf78a5b user: drh tags: better-pragma-optimize)
18:03
Add implementation of sqlite3_intck_suspend(). (check-in: c36ada86 user: dan tags: incr-integrity-check)
16:22
If a table has one or more rows and it has a partial index has zero rows, still make an entry in the sqlite_stat1 table for the partial index, so that we know that "PRAGMA optimize" does not need to redo the whole table. (check-in: e147b189 user: drh tags: better-pragma-optimize)
13:50
Simplifications to PRAGMA optimize to make it easier to use. It always tries to ANALYZE unanalyzed indexes. The 0x10000 flag just makes it check for size changes in all tables. (check-in: 44ed7f4c user: drh tags: better-pragma-optimize)
13:06
Change the 0x20000 bit (use analysis limit) to 0x10, meaning that this feature is on by default. The default analysis limit is changed to 2000 which is almost always sufficient for accurate analysis results. (check-in: 4abd47b5 user: drh tags: better-pragma-optimize)
12:20
Extend the strerror_r() result type discrepancy check in os_unix.c to include the Android NDK, as reported in forum post 3f13857fa4062301. The NDK's strerror_r() signature is version-dependent, whereas this change assumes int return (POSIX semantic) across all versions. (check-in: f18b2524 user: stephan tags: trunk)
2024-02-18
01:12
Hold a transaction during PRAGMA optimize, for performance. (check-in: d13b79ea user: drh tags: better-pragma-optimize)
2024-02-17
20:55
Add start of extension for incremental integrity-checks to ext/intck/. (check-in: 444e3c92 user: dan tags: incr-integrity-check)
16:39
Add new MASK bits to PRAGMA optimize: 0x70000. (check-in: dd449706 user: drh tags: better-pragma-optimize)
03:36
Fix rounding in zero-precision %f and %g printf conversions. (check-in: 1ebea57f user: drh tags: branch-3.45)
03:32
Fix rounding in zero-precision %f and %g printf conversions. Forum post 393708f4a8. This bug was introduced by check-in [32befb224b254639] and first appeared in version 3.43.0. (check-in: 7fca1bc4 user: drh tags: trunk)
01:12
The PRAGMA optimize command invokes ANALYZE if a table shrinks by 25 times in addition to if it grows by 25 times. (check-in: 40532ffb user: drh tags: better-pragma-optimize)
2024-02-16
21:34
Fix the subtype on the value column from json_each/json_tree for cases when the value is an array or object. (check-in: b278ae39 user: drh tags: branch-3.45)
21:30
Fix the subtype on the value column from json_each/json_tree for cases when the value is an array or object. Fix for the bug reported by forum post ecb94cd210. (check-in: 1c33c5db user: drh tags: trunk)
18:34
Retweak last check-in to retain compile-time checking of xprintf() arguments. (check-in: 67017491 user: larrybr tags: trunk)
16:04
Work around a __VA_ARGS__ complaint in fiddle builds. (check-in: 7d750248 user: stephan tags: trunk)
12:57
Rename the TF_StatsUsed flag to TF_MaybeReanalyze, to more accurately reflect its usage. No logic changes. (check-in: b4790da5 user: drh tags: trunk)
11:41
Handle an OOM case in fts5 code to query tokendata=1 tables. (check-in: 01222d96 user: dan tags: trunk)
11:05
Fix a problem with the sqlite3_log() message identifying the table or index that a conflicting page belongs to. (check-in: 11a4178f user: dan tags: bedrock)
11:03
Fix a problem with the sqlite3_log() message identifying the table or index that a conflicting page belongs to. (check-in: d6c629f1 user: dan tags: begin-concurrent)
2024-02-13
18:44
Fix a bug in PRAGMA integrity_check introduced by enhancement (8a) in release 3.42.0. (check-in: 60dccb23 user: drh tags: branch-3.45)
18:41
Fix a bug in PRAGMA integrity_check introduced by enhancement (8a) in release 3.42.0 and first reported by forum post ee4f6fa5ab. (check-in: 460353df user: drh tags: trunk)
17:11
Changes to vtabCallConstructor() to avoid a harmless static analyzer warning and to help prove that the UAF reported by forum post cafbe582e8 is a false-positive. (check-in: 4892440b user: drh tags: trunk)
2024-02-12
19:12
Replace the assert() that was removed by [f023cb541b5dd72c] because [1cd5d4623f44af25] made it true again. (check-in: 189a49f1 user: drh tags: trunk)
17:01
Have rtree avoid keeping a blob handle open following an error. (check-in: 26978f34 user: drh tags: branch-3.45)
16:12
Have rtree avoid keeping a blob handle open following an error. (check-in: 1cd5d462 user: dan tags: trunk)
14:44
Add a new sqlite3FaultSim() to btree for better fault analysis. (check-in: 2c675bd3 user: drh tags: trunk)
13:51
Add a new sqlite3FaultSim() call in the btree logic, for testing. (Closed-Leaf check-in: e0558f79 user: drh tags: new-btree-faultsim)
13:28
Add support for the ".testctrl fault_install" dot-command in the CLI when launched with the --unsafe-testing option. (check-in: 5ba7fee1 user: drh tags: trunk)
2024-02-11
23:25
Cherrypick multiple fixes for trifling faults from trunk, so that all 834 dbsqlfuzz run clean with ASAN on branch-3.45. dbsqlfuzz. (check-in: c080560c user: drh tags: branch-3.45)
22:56
In the RTREE extension, allow the xBeginTransaction() entry point to be invoked multiple times without intervening calls to xEndTransaction(). (check-in: f023cb54 user: drh tags: trunk)
20:53
If a term of an ORDER BY or GROUP BY contains an aggregate function or column, then it is not an alias that needs to be resolved, so don't try to. This fixes a harmless assertion found by dbsqlfuzz. This yet another problem that orginated at check-in [6e6b3729e0549de0]. (check-in: d4ec2a5d user: drh tags: trunk)
18:53
Improved AggInfo tracing in debug builds. No changes to deliverable code. (check-in: bb31f9c4 user: drh tags: trunk)
2024-02-10
03:12
Further clarify sqlite3_exec() callback parameter lifetime. (check-in: 044ce823 user: larrybr tags: branch-3.45)
03:11
Further clarify sqlite3_exec() callback parameter lifetime. (check-in: 993a1a84 user: larrybr tags: trunk)
2024-02-08
01:23
Mention limited lifetime of string arrays passed to sqlite3_exec() callback. (check-in: d14a9d81 user: larrybr tags: branch-3.45)
01:19
Mention limited lifetime of string arrays passed to sqlite3_exec() callback. (check-in: 717f67f3 user: larrybr tags: trunk)
2024-02-07
20:45
Fix an #endif (added in the wrong place by [8f4b1ceafe4a271b]) so that the build works with SQLITE_OMIT_VIRTUAL_TABLE. (check-in: 7070924e user: drh tags: trunk)
19:52
Bring test cases into alignment with the latest enhancements. (check-in: cd017c28 user: drh tags: trunk)
19:17
Turns out the branch is reachable, so back out the NEVER(). (check-in: 0af36a32 user: drh tags: trunk)
19:09
Checked into the wrong branch. (Closed-Leaf check-in: 81bd7aee user: drh tags: mistake)
14:16
Detect and respond to an OOM on the jsonStringTerminate() call of jsonReturnStringAsBlob() routine. (check-in: 77431aca user: drh tags: branch-3.45)
14:05
Detect and respond to an OOM on the jsonStringTerminate() call of jsonReturnStringAsBlob() routine. (check-in: 881f814c user: drh tags: trunk)
2024-02-06
18:33
Slight change to OOM handling in JSON to catch a corner case found by dbsqlfuzz. (check-in: 6a2b3266 user: drh tags: trunk)
13:36
Return SQLITE_ABORT if the underlying shadow tables change in the middle of an rtree query in such a way as to invalidate an rtree internal priority queue entry. This replaces the SQLITE_ABORT_ROLLBACK mechanism added in [97cffff331b]. (check-in: 061af0d7 user: drh tags: branch-3.45)
08:59
Correct docs about the first OFPS VFS's importDb() method being synchronous (it's not, whereas the second VFS's importDb() is). (check-in: ae7505fa user: stephan tags: trunk)
08:25
Make explicit that using the importDb() methods of the OPFS VFSes has undefined results if the being-imported db is currently open. Doc changes only. (check-in: f28b9924 user: stephan tags: trunk)
2024-02-05
17:54
Return SQLITE_ABORT if the underlying shadow tables change in the middle of an rtree query in such a way as to invalidate an rtree internal priority queue entry. This replaces the SQLITE_ABORT_ROLLBACK mechanism added in [af5c4251]. (check-in: 32f85a5c user: dan tags: trunk)
17:35
Return SQLITE_ABORT if the underlying shadow tables change in the middle of an rtree query in such a way as to invalidate an rtree internal priority queue entry. (Closed-Leaf check-in: 478280ef user: dan tags: rtree-fix)
03:56
Extend [d294a23ed6d] to apply to all wasm speedtest1 builds. (check-in: 26f848e5 user: stephan tags: trunk)
03:37
wasm: pass the promiser function to the promiser onready() callback to simplify access to it in certain usage patterns. (check-in: f8a8b9ee user: stephan tags: trunk)
02:36
wasm: squelch a new (and, in our case, invalid) warning from emcc 3.1.52. (check-in: d294a23e user: stephan tags: trunk)
2024-02-04
04:18
Fix a minor test file locking issue on Windows. (check-in: 6cd70b71 user: mistachkin tags: trunk)
04:01
Fix harmless compiler warnings seen with MSVC. (check-in: e52c8742 user: mistachkin tags: trunk)
2024-02-03
19:41
Following a ROLLBACK that reverts changes to an RTREE, any pending queries against that same RTREE abort with code SQLITE_ABORT_ROLLBACK. (check-in: 97cffff3 user: drh tags: branch-3.45)
19:19
Following a ROLLBACK that reverts changes to an RTREE, any pending queries against that same RTREE abort with code SQLITE_ABORT_ROLLBACK. dbsqlfuzz de7d17b72d0e842352c998dd86a47b7d0f707be9. (check-in: af5c4251 user: drh tags: trunk)
2024-02-02
18:42
More extensive use of SQLITE_CORRUPT_PGNO. (check-in: 3838332c user: drh tags: trunk)
16:51
Have "PRAGMA quick_check" compare the number of entries in tables and indexes. (Closed-Leaf check-in: cc294c04 user: dan tags: quick-check-counts)
11:37
Fix typo in vdbe.c comment. No changes to code. (check-in: 62010ba4 user: dan tags: trunk)
2024-02-01
15:42
Ensure the fts5 xIntegrity method correctly returns error codes unrelated to corruption or missing SQL elements. (check-in: d18d9a05 user: dan tags: trunk)
15:21
Ensure the fts3 xIntegrity method correctly returns error codes unrelated to corruption or missing SQL elements. (check-in: 1bdb8cba user: dan tags: trunk)
14:57
In PRAGMA integrity_check, defer running xIntegrity on virtual tables until after all ordinary tables have been checked. (check-in: 8f4b1cea user: drh tags: trunk)
14:17
Add tracing logic to the shared-cache locks in btree.c. The tracing is off by default. Enable by changing a single "#if 0" into "#if 1" and recompiling. Debugging code only - no changes to release builds. (check-in: f2b943f9 user: drh tags: trunk)
11:38
Add the test_oom_breakpoint() routine on debug builds, to serve as a convenient breakpoint to intercept OOM conditions. (check-in: e45df7dc user: drh tags: trunk)
2024-01-31
20:11
Replace an conditional assignment that was made obsolete by [d4c193f0b49f4950] with an assert(). The conditional was added by [d6fd512f50513ab7] as a fix for tickets [c36cdb4afd504dc1], [4051a7f931d9ba24], and [d6fd512f50513ab7] which means now [d4c193f0b49f4950] is the correct fix for those tickets. that check-in (check-in: 44b5524d user: drh tags: trunk)
15:29
Allow control characters in JSON5 string literals. Forum thread 05182119f69c3a92. (check-in: 380f09c1 user: drh tags: trunk)
15:20
Add NEVER() and ALWAYS() macros for the JSON5-control-character change. Also fix an incorrect comparison used to determine if a buffer needed to be resized. (Closed-Leaf check-in: e3c0c0e6 user: drh tags: json5-ctrl-char)
14:44
Fix failure to detect unterminated string literals in json_valid() in the previous check-in. (check-in: 5d725644 user: drh tags: json5-ctrl-char)
13:46
Allow control characters in JSON5 string literals. (check-in: 34709c7c user: drh tags: json5-ctrl-char)
12:15
Fix a memory allocation bug in the (debug-use-only) json_parse() SQL function. (check-in: 32ce7dac user: drh tags: trunk)
2024-01-30
17:02
Merge the 3.45.1 patches into the reuse-schema branch. (check-in: f98a99fc user: drh tags: reuse-schema-3.45)
16:56
Merge the 3.45.1 patch release changes into the bedrock branch. (check-in: 5955853a user: drh tags: bedrock-3.45)
16:53
Merge the changes from the 3.45.1 patch release into the wal2 branch. (check-in: 5e980265 user: drh tags: wal2-3.45)
16:50
Merge the 3.45.1 patch release into the begin-concurrent branch. (check-in: d1f20a47 user: drh tags: begin-concurrent-3.45)
16:01
Version 3.45.1 (check-in: e876e51a user: drh tags: release, branch-3.45, version-3.45.1)
2024-01-29
21:29
Detect malformed nested JSONB earlier and stop rendering to avoid long delays. (check-in: ab40e282 user: drh tags: branch-3.45)
21:09
Detect malformed nested JSONB earlier and stop rendering to avoid long delays. (check-in: 72f3e1d0 user: drh tags: trunk)
20:36
When generated text JSON from JSONB, do not continue descending into nested structures after an error is seen. This avoids long loops and wait times. (check-in: 97666ec0 user: drh tags: trunk)
19:30
Consider an index for queries like "SELECT count(DISTINCT col) FROM ...", even if the index records are not smaller than the table records. (check-in: ad068688 user: dan tags: trunk)
16:49
Avoid a potential buffer overread when handling corrupt json blobs. (check-in: ac402cc5 user: drh tags: branch-3.45)
15:30
Avoid a potential buffer overread when handling corrupt json blobs. (check-in: 738473dc user: dan tags: trunk)
12:58
When rendering JSONB back into text JSON, report an error if a zero-length integer or floating-point node is encountered. Otherwise, if the node occurs at the very end of the JSONB, the rendering logic might read one byte past the end of the initialized part of the BLOB byte array. OSSFuzz 66284. (check-in: 3ab08ac7 user: drh tags: branch-3.45)
12:50
When rendering JSONB back into text JSON, report an error if a zero-length integer or floating-point node is encountered. Otherwise, if the node occurs at the very end of the JSONB, the rendering logic might read one byte past the end of the initialized part of the BLOB byte array. OSSFuzz 66284. (check-in: b0eb279e user: drh tags: trunk)
2024-01-28
20:42
Use __ppc__ instead of __POWERPC__ to identify 32-bit PowerPC processors. Forum post 34794846ce. (check-in: c974d931 user: drh tags: trunk)
17:44
Automatically disable the DISTINCT optimization during query planning if the ORDER BY clause exceeds 63 terms. (check-in: 6edbdcc0 user: drh tags: branch-3.45)
17:39
Automatically disable the DISTINCT optimization during query planning if the ORDER BY clause exceeds 63 terms. dbsqlfuzz afd1d61fc27d14938a0d78a50970fa1e9fbfee58. (check-in: d4c193f0 user: drh tags: trunk)
00:35
Apply the same fix found in [99057383acc8f920] to descending scans. (check-in: 593d6a1c user: drh tags: branch-3.45)
00:31
Apply the same fix found in [99057383acc8f920] to descending scans. dbsqlfuzz afd1d61fc27d14938a0d78a50970fa1e9fbfee5. (check-in: e1d463c2 user: drh tags: trunk)
2024-01-27
20:17
Improvements to parser stack overflow testing. Forum post 99e181b5bf. (check-in: 556c43a9 user: drh tags: trunk)
12:47
Performance enhancements to the parser template. (check-in: 2db8b30a user: drh tags: trunk)
12:25
Use an alternative memory allocator for parser stack space that includes a call to sqlite3FaultSim() to facilitate testing. (check-in: 7c36d560 user: drh tags: trunk)
11:35
Allocate new parser stack space from the heap if needed, eliminating the possibility of a "parser stack overflow" error as long as heap memory is available. (check-in: d87a2054 user: drh tags: trunk)
02:21
Optimizations to ParseFinalize() to make up for the extra cleanup associated with the allocated parser stack. This branch now runs faster than trunk and is less than 300 bytes larger. (Closed-Leaf check-in: f7290db6 user: drh tags: growable-parser-stack)
01:35
Omit the "parser stack overflow" error message, since it no longer occurs. Replace it with an ordinary "out of memory". (check-in: 33f17ec2 user: drh tags: growable-parser-stack)
2024-01-26
20:57
Bug fixes in the function that expands the parser stack. (check-in: e91179fe user: drh tags: growable-parser-stack)
20:34
Experimental changes that prevent parser stack overflows by growing the parser stack with heap memory when it reaches its limit. (check-in: 3fd06290 user: drh tags: growable-parser-stack)
2024-01-24
21:08
Add NEVER() to a branch that is no longer reachable. (check-in: 9411337a user: drh tags: trunk)
19:54
Update ext/wasm/SQLTester for recent internal-API reorgs. (check-in: 996cfdf9 user: stephan tags: trunk)
2024-01-23
21:10
Slight adjustment to test results for Windows in mmap1.test due to the previous check-in. (check-in: a8043eae user: drh tags: branch-3.45)
21:10
Slight adjustment to test results for Windows in mmap1.test due to the previous check-in. (check-in: 5cf9ea9b user: drh tags: trunk)
16:17
In os_unix.c and os_win.c, do not allow xFetch() to return a pointer to a page buffer that is right at the end of the mapped region - if the database is corrupted in a specific way such a page buffer might be overread by several bytes. (check-in: d131cab6 user: drh tags: branch-3.45)
16:09
In os_unix.c and os_win.c, do not allow xFetch() to return a pointer to a page buffer that is right at the end of the mapped region - if the database is corrupted in a specific way such a page buffer might be overread by several bytes. (check-in: 2684feac user: dan tags: trunk)
15:04
Fix harmless "unused parameter" compiler warning in the new fts3IntegrityMethod implementation. (check-in: 9d459f6b user: drh tags: branch-3.45)
14:45
Improved error message when a double-quoted identifier name cannot be resolved - ask the user if they intended to use a string literal. (check-in: efc5c3c5 user: drh tags: trunk)
13:58
Bump the version number to 3.45.1 (check-in: 54d34edb user: drh tags: branch-3.45)
13:53
When a JSON input is a blob, but it looks like valid JSON when cast to text, then accept it as valid JSON. This replicates a long-standing bug in the behavior of JSON routines, and thus avoids breaking legacy apps. (check-in: 4c2c1b97 user: drh tags: branch-3.45)
13:51
When a JSON input is a blob, but it looks like valid JSON when cast to text, then accept it as valid JSON. This replicates a long-standing bug in the behavior of JSON routines, and thus avoids breaking legacy apps. Forum thread 012136abd5292b8d. (check-in: e5dc81d5 user: drh tags: trunk)
13:28
Fix typo in the tag-20240123-a in a comment. (Closed-Leaf check-in: 1f09541e user: drh tags: blob-as-json)
13:21
If a BLOB looks like JSON when cast to text, then treat it as if it really were JSON. This replicates a long-standing bug in the JSON processing routines, and thereby avoids breaking legacy. (check-in: d79a3769 user: drh tags: blob-as-json)
12:51
Change the shell's --help flag to exit with code 0 instead of 1, per /forum and /chat discussions. (check-in: df563a18 user: stephan tags: trunk)
11:20
Add extra checks for the validity of a numeric literal to sqlite3DequoteNumber(). (Closed-Leaf check-in: d57407ef user: dan tags: digit-separators)
10:47
Ensure that the xIntegrity methods of fts3 and fts5 work on read-only databases. (check-in: e79b9736 user: dan tags: branch-3.45)
2024-01-22
20:49
Simplification of the error reporting logic. (Closed-Leaf check-in: 59eb9d29 user: drh tags: improved-dqs-error-msg, blob-as-json)
19:42
Fix a problem in the previous commit with hex literals that start with "0X" instead of "0x". (check-in: c063c89b user: dan tags: digit-separators)
19:38
Allow underscores to occur in hex literals. (check-in: 81a56229 user: dan tags: digit-separators)
19:00
Add extra tests for the code on this branch. (check-in: b15bbb20 user: dan tags: digit-separators)
17:18
Do not allow digit separators that are not surrounded on both sides by digits. (check-in: 5bbc378a user: drh tags: digit-separators)
15:26
Improved error message when a double-quoted string is used and it seems likely that the user wanted a single-quoted string literal. (check-in: 0a834bd8 user: drh tags: improved-dqs-error-msg, blob-as-json)
14:16
The -DSQLITE_JSON_BLOB_INPUT_BUG_COMPATIBLE compile-time option causes blob inputs to JSON functions that are not JSONB to be processed as if they where text, immulating historical bugging behavior which some applications have come to rely upon. See forum thread 012136abd5292b8d for discussion. (check-in: 65572223 user: drh tags: blob-as-json)
14:01
Fix test script literal.test so that it works with SQLITE_OMIT_ALTER_TABLE builds. (check-in: 4dc00f57 user: dan tags: trunk)
12:56
Fix userauth so that it works together with SQLITE_OMIT_SHARED_CACHE. (Forum post 0bfc5888a384d430). However, also change to code to issue a deprecation warning whenever SQLITE_USER_AUTHENTICATION is used. (check-in: 249048b0 user: drh tags: trunk)
12:30
Add a notice to the user-authentication documentation to say that the extension is deprecated and may disappear in the future. (check-in: fe6fc7b9 user: drh tags: trunk)
11:12
Fix test script literal.test so that it works with SQLITE_OMIT_ALTER_TABLE builds. (check-in: b57327be user: dan tags: digit-separators)
01:11
Make CLI .dump immune to pragma reverse_unordered_selects, as reported in Forum thread c42be01880e961eb. (check-in: 488caed2 user: larrybr tags: trunk)
2024-01-21
21:20
Fix a harmless typo in a comment. (check-in: 382a8f94 user: drh tags: trunk)
2024-01-20
18:45
Merge trunk changes into this branch. (check-in: 03ade4a8 user: dan tags: digit-separators)
18:41
Ensure that values generated by DEFAULT clauses that specify real numbers that can be expressed as 64-bit integers (e.g. -1234.0) are not silently converted to integers. (check-in: 298d6977 user: dan tags: trunk)
18:26
Simplifications to the strftime() logic. (check-in: aaa5a044 user: drh tags: trunk)
18:21
Fix a memory leak in new memdb1.test test cases that were added by [e638d5e408ea2e18]. No changes to SQLite itself. (check-in: bb2b7a65 user: drh tags: trunk)
16:46
Add test cases for the new code on this branch. (check-in: 49f29a7b user: dan tags: digit-separators)
16:38
Make sure that %V and %G are testing for every since day in between 1970-01-01 and 2023-01-19. (check-in: 39c475f5 user: drh tags: trunk)
16:29
Rig sqlite3_serialize() so that it will initialize a previously uninitialized database prior to serializing it, so that it does not have a zero-byte size and does not return NULL (except for OOM). Forum thread 498777780e16880a. (check-in: e638d5e4 user: drh tags: trunk)
16:18
Allow "_" characters to appear following any digit in an integer or real SQL literal. (check-in: 401650aa user: dan tags: digit-separators)
15:13
When doing a text-affinity comparison between two values where one or both have both a text and a numeric type, make sure the numeric type does not confuse the answer. This is a deeper fix to the problem observed by forum pose 3776b48e71. The problem bisects to [25f2246be404f38b] on 2014-08-24, prior to version 3.8.7. (check-in: 709841f8 user: drh tags: trunk)
13:18
Ensure that the replace() SQL function always returns a TEXT value even when its first argument is numeric and its second argument is an empty string. Fix for the issue reported by forum post 3776b48e71. (check-in: 01868ebc user: drh tags: trunk)
12:19
When backing out a character in a constructed string in JSON, first make sure the string has not been reset by on OOM. (check-in: 950bf9fe user: drh tags: branch-3.45)
12:13
When backing out a character in a constructed string in JSON, first make sure the string has not been reset by on OOM. dbsqlfuzz 2fffbea91a5376526ea118d4fe4188c8dd35e317. (check-in: 666690eb user: drh tags: trunk)
12:00
Fix the version number in the TEA configure script. This should have been changed by [1481baf3d55effcc] three check-ins ago. It is unclear how testing missed this. (check-in: eaf2cf73 user: drh tags: trunk)
00:31
Implement a new algorithm for computing ISO week values in strftime() based on the idea (from Nuno Cruces) of shifting the date being tested to the Thursday of the same week. (check-in: b06ab46a user: drh tags: trunk)
2024-01-19
16:51
Allow large hexadecimal literals to be used as DEFAULT values. (check-in: 8cccc1f2 user: dan tags: trunk)
2024-01-18
16:52
Increase the version number to 3.46.0 to begin the next development cycle. (check-in: 1481baf3 user: drh tags: trunk)
16:50
Add support in the strftime() SQL function for conversion letters %G, %g, %U, and %V. (check-in: e1155d6a user: drh tags: trunk)
2024-01-16
16:14
Fix harmless "unused parameter" compiler warning in the new fts3IntegrityMethod implementation. (check-in: bb1fe53a user: drh tags: trunk)
16:05
Ensure that the xIntegrity methods of fts3 and fts5 work on read-only databases. (check-in: b855886c user: dan tags: trunk)
15:04
Clutter the code with "fall-through" comments in order to suppress nuisance compiler warnings. No logic changes. (check-in: 05d2cf5e user: drh tags: trunk)
14:54
Remove the LLONG_MAX preprocessor macro from the series.c extension as it is apparently only C99 and later. Forum post 4af649419b. (check-in: f106bc0d user: drh tags: trunk)
14:28
wasm build: reformulate an awk invocation to account for awks which do not support the -e flag. Problem reported on the forum via a docker-hosted build. (check-in: 90dd5115 user: stephan tags: branch-3.45)
14:24
Various build- and code-reorg cleanups for ext/wasm. No functional changes. (check-in: 835bd4a1 user: stephan tags: trunk)
2024-01-15
17:01
Version 3.45.0 (check-in: 1066602b user: drh tags: trunk, release, version-3.45.0)
2024-01-13
20:38
Merge latest trunk changes into this branch. (check-in: bb9a7157 user: dan tags: reuse-schema)
20:36
Merge latest wal2 changes into this branch. (check-in: c39f6585 user: dan tags: bedrock)
20:21
Merge latest trunk changes into this branch. (check-in: 68c2b8d0 user: dan tags: wal2)
19:57
Merge latest trunk changes into this branch. (check-in: 95bf4bc2 user: dan tags: begin-concurrent)
2024-01-12
11:44
Have the shell tool automatically enable SQLITE_CONFIG_DQS_DDL when executing a ".dump" script against an empty db. (check-in: f47a5f4e user: dan tags: trunk)
2024-01-11
16:10
wasm build: reformulate an awk invocation to account for awks which do not support the -e flag. Problem reported on the forum via a docker-hosted build. (Closed-Leaf check-in: 58366579 user: stephan tags: wasm-post-3.45)
14:21
Internal JS doc cleanups. (check-in: c8284170 user: stephan tags: wasm-post-3.45)
14:13
Fix a comment in sessions. No functional changes. Forum post 8c20dc935b. (check-in: b0eb6d36 user: drh tags: trunk)
14:03
In fts5, flush the contents of the in-memory hash table whenever the secure-delete option is toggled. This prevents spurious corruption reports under some circumstances. (check-in: ccf55231 user: dan tags: trunk)
12:56
Remove some dead JS code. Minor doc cleanups. (check-in: bf23cf20 user: stephan tags: wasm-post-3.45)
12:31
Split the JS vfs/vtab helper code into discreet units as a step towards a build which optionally elides those pieces. This is an internal restructuring change and does not affect the API. (check-in: ede945fd user: stephan tags: wasm-post-3.45)
2024-01-10
20:13
Fix a few compiler gripes. Update 2024-04-16: Closed, since the solution to Windows console I/O already on trunk is better. (Closed-Leaf check-in: 2e74a938 user: larrybr tags: win-dupe-crt-fio)
05:52
For CLI shell and other utilities, optionally avoid C runtime file I/O on Windows in favor of WIN32 calls, while nominally preserving FILE* API interfaces. (a WIP, awaiting build and testing) (check-in: 6be68be1 user: larrybr tags: win-dupe-crt-fio)
2024-01-09
23:15
Put an SQLITE_ENABLE_SETLK_TIMEOUT branch inside the appropriate ifdef with an assert on the else since the condition is always false if SETLK_TIMEOUT is not available. (check-in: d81e7a03 user: drh tags: trunk)
12:28
Improved resolution of unqualified names in the REINDEX command. Forum thread 74cd0ceabd. (check-in: 97709ce2 user: drh tags: trunk)
2024-01-08
19:55
Automatically turn off DEFENSIVE mode in the shell tool when executing scripts generated by the ".dump" command against an empty database. Add a warning to the top of generated ".dump" scripts that populate virtual tables. (check-in: cd016f26 user: dan tags: trunk)
18:53
Fix date on new file shell9.test. (Closed-Leaf check-in: c82da712 user: dan tags: shell-dump-fix)
18:46
Automatically turn off DEFENSIVE mode in the shell tool when executing scripts generated by the ".dump" command against an empty database. Add a warning to the top of generated ".dump" scripts that populate virtual tables. (check-in: 6e9e96b7 user: dan tags: shell-dump-fix)
15:23
Minor change to os_unix.c to facilitate 100% MC/DC testing. (check-in: 0dfa7b4d user: drh tags: trunk)
13:38
Ensure that SQLITE_PROTOCOL is not returned too early when a SQLITE_ENABLE_SETLK_TIMEOUT build fails to open a transaction on a wal mode database in cases where blocking locks are not being used. (check-in: a8e9af13 user: dan tags: trunk)
07:52
Make explicit which JS APIs are for internal use only by moving the JS-bound internal-use-only functions out of client-visible reach and renaming the WASM-exported ones from sqlite3_wasm... to sqlite3__wasm... (with two underscores). These have always been documented as internal-use-only, so this is not a breaking change except for clients which have ignored the docs. (check-in: 0eddc20f user: stephan tags: wasm-post-3.45)
2024-01-07
20:27
Remove an ALWAYS() from RTREE. Dbsqlfuzz found a way to make it false. (check-in: 40f0a29e user: drh tags: trunk)
00:45
Updates to RTREE to facility testing. (check-in: 7a5b42ff user: drh tags: trunk)
2024-01-06
19:16
Ensure that SQLITE_PROTOCOL is not returned too early when a SQLITE_ENABLE_SETLK_TIMEOUT build fails to open a transaction on a wal mode database in cases where blocking locks are not being used. (Closed-Leaf check-in: b934a336 user: dan tags: enable-setlk-fix)
15:22
Update JSON performance testing procedures for clarity and to describe how to do performance testing of JSONB. (check-in: b115b4f7 user: drh tags: trunk)
13:58
Update extension ext/misc/totext.c to avoid both ubsan warnings and dubious real->integer conversions. (check-in: 54143600 user: dan tags: trunk)
2024-01-05
15:53
Update extension ext/misc/totext.c to avoid both ubsan warnings and dubious real->integer conversions. (Closed-Leaf check-in: c626aa10 user: dan tags: totype-fix)
2024-01-04
17:33
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: e07f2451 user: drh tags: reuse-schema)
17:13
Avoid errors with SQLITE_OMIT_VIRTUALTABLE builds in json106.test and unionall.test. (check-in: 8940e2a1 user: drh tags: trunk)
16:28
Merge the latest trunk enhancements into the bedrock branch. (check-in: 707f79c7 user: drh tags: bedrock)
16:16
Merge the latest trunk enhancements into the wal2 branch. (check-in: 8fb42df8 user: drh tags: wal2)
16:15
Testing code left in by accident. (Closed-Leaf check-in: 90e8a233 user: dan tags: mistake)
15:49
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: c407d3bb user: drh tags: begin-concurrent)
13:01
Restructure some code to fix what appears to be a false-positive UBSAN warning. (check-in: fe952c12 user: drh tags: trunk)
2024-01-03
20:40
Fix a #ifdef in sqlite3_test_control() that was preventing builds with SQLITE_OMIT_WSD. (check-in: d546a9c9 user: drh tags: trunk)
16:41
Convert the JSON functions to use lookaside memory allocation whenever feasible, to avoid hitting the global memory allocator mutex. (check-in: a79a2449 user: drh tags: trunk)
15:49
Change a constant from decimal to hex to avoid a compiler warning on Mac. (check-in: e3acb8a4 user: drh tags: trunk)
14:13
Enhance sqlite3_analyzer.exe so that it uses the ext/consio extension. (check-in: 769de0b9 user: drh tags: trunk)
12:26
Update the sqldiff.exe utility program so that it uses the sqlite3_str string interface, and so that it does console output using the ext/consio extension. (check-in: 4443b7e5 user: drh tags: trunk)
2024-01-02
22:49
Back out [b517a52fa36df0a0] which is no longer reachable due to early error detection enhancements in [166e82dd20efbfd3]. (check-in: 704943e9 user: drh tags: trunk)
21:37
Adjust the sqlite3PagerDirectReadOk() routine (part of the SQLITE_DIRECT_OVERFLOW_READ optimization) to use less code and to be more easily testable. (check-in: eed670ea user: drh tags: trunk)
21:08
Fix a problem in fts5 caused by a COMMIT involving fts5 data that immediately follows a ROLLBACK TO that does not. (check-in: 55c61f6a user: dan tags: trunk)
20:34
Increase the default "max_page_count" to its theoretical maximum of 4294967294. (check-in: ffb35f17 user: drh tags: trunk)
09:20
Elaborate on the various build flavors used by ext/wasm/. Doc changes only. (check-in: d489232a user: stephan tags: trunk)
09:03
Update and clean up the in-makefile docs for ext/wasm. (check-in: 7a7b295e user: stephan tags: trunk)
2024-01-01
23:28
Back out [99d11e6d0ae6] (enabling of STAT4 in WASM/JNI), per /chat discussion. (check-in: cd7929ee user: stephan tags: trunk)
19:20
New logic to avoid using indexes that ANALYZE has identified as of little practical use. Also a performance optimization in ANALYZE. (check-in: bcac9375 user: drh tags: trunk)
17:58
Remove some unnecessary computations from ANALYZE so that ANALYZE runs with fewer CPU cycles. These changes were spotted while working on the nearby enhanced-stat1 branch. So even if enhanced-stat1 is abandoned, that effort put into it will not have been in vain. (Closed-Leaf check-in: 5527e8c4 user: drh tags: avoid-low-quality-indexes)
17:48
Extra steps taken to avoid using low-quality indexes in a query plan. This branch accomplishes the same end as the nearby enhanced-stat1 branch, but with much less change and hence less risk. (check-in: c030e646 user: drh tags: avoid-low-quality-indexes)
15:49
Improved defenses against deliberately corrupted sqlite_stat1 tables. (Closed-Leaf check-in: ee34db31 user: drh tags: enhanced-stat1)
15:35
Fix a harmless compiler warning. (check-in: b5aa1aea user: drh tags: enhanced-stat1)
14:13
Omit the uneven=N argument in sqlite_stat1 and replace it with var=N1,N2,... so that the variation in each column is reported separately. Omit the "slow" argument from sqlite_stat1, computing that flag internally. PRAGMA stats is enhanced with a new column "est" that shows the aiRowLogEst array for each index after it has been modified by "var=..." and also the "slow" flag. (check-in: 4a8fc173 user: drh tags: enhanced-stat1)
06:58
JNI: move the ByteBuffer-using APIs from public to package visibility for the time being because they have UB-inducing possibilities which need to be worked out. Update test code to account for a change in custom FTS5 columntext() impls. (check-in: dc501275 user: stephan tags: trunk)
05:58
WASM: various build cleanups and add initial infrastructure for a build which elides the oo1 API and its dependents (worker1 and promiser). Sidebar: an attempt was made to move generation of the build rules to an external script, but the mixed-mode make/script was even less legible than the $(eval) indirection going on in the makefile. (check-in: 563d3131 user: stephan tags: trunk)
2023-12-31
20:04
Better comments. Slight tuning of parameters. (check-in: 1cc32ecc user: drh tags: enhanced-stat1)
12:38
Ensure that all elements of aiRowLogEst[] have been initialized even if the stat entry is truncated. (check-in: c216921b user: drh tags: enhanced-stat1)
04:01
Use SQLITE_ENABLE_STAT4 in both the WASM and JNI builds. (check-in: 99d11e6d user: stephan tags: trunk)
2023-12-30
22:00
In sqlite_stat1, revert the number of rows to the average, not adjusted for the maximum. Instead add "uneven=NNN" where NNN is a multiplier to apply to the average to get the maximum. "uneven" is only reported if NNN is 10 or more. Also add the "slow" argument is the maximum number of rows reported by a full equality match is so large that a table scan seems likely to be faster. (check-in: 41773fa7 user: drh tags: enhanced-stat1)
15:07
Omit the "noquery" argument in sqlite_stat1. Instead, add the "uneven" argument for indexes that have an uneven distribution of values. Modify the query planner to avoid doing equality look-ups on uneven indexes. (check-in: 0ec4b880 user: drh tags: enhanced-stat1)
2023-12-29
21:07
Revise the "noquery" decision algorithm again. The index now must select more than 150 rows on average, and the number of rows select must be enough that it seems faster to do a full scan of the associated table. (check-in: f516ef80 user: drh tags: enhanced-stat1)
20:31
Fix an issue in the "noquery" decision in the previous check-in. Also add comments explaining the algorithm. (check-in: 6aaa65ad user: drh tags: enhanced-stat1)
20:08
Add the "noquery" argument as an option for the stat column of sqlite_stat1. If set, then the index will not be used to optimize a query. Enhance ANALYZE to set that argument on very low selectivity indexes. (check-in: e514d3fa user: drh tags: enhanced-stat1)
19:03
Attempt to improve the ANALYZE command so that it does a better job of detecting lopsided indexes and makes appropriate changes to the sqlite_stat1 table. (check-in: 4b70b946 user: drh tags: enhanced-stat1)
04:29
Minor doc touchup in the JS bits. (check-in: 8d2120c3 user: stephan tags: trunk)
2023-12-28
21:02
Enable SQLITE_DIRECT_OVERFLOW_READ unless it is specifically disabled using the -DSQLITE_DIRECT_OVERFLOW_READ=0 compile-time option. (check-in: 630604a4 user: drh tags: trunk)
20:54
Update fts5origintext4.test to work with SQLITE_DIRECT_OVERFLOW_READ. (check-in: 15ed002a user: dan tags: trunk)
19:18
Performance improvement by unwinding a loop in jsonAppendString(). (check-in: 190ab3c0 user: drh tags: trunk)
16:25
Fix harmless compiler warnings in FTS5. (check-in: 3cd5ef44 user: drh tags: trunk)
16:21
Enhance the (undocumented, debug-only) json_parse() SQL function so that it returns the text rendering of the JSONB parse of the input, rather than printing the rendering on stdout. (check-in: 056de8d5 user: drh tags: trunk)
14:07
Merge the latest trunk changes into the reuse-schema branch. (check-in: 3d1b0403 user: drh tags: reuse-schema)
14:01
Merge the latest trunk changes into the bedrock branch. (check-in: 5a17b972 user: drh tags: bedrock)
13:44
Merge the latest trunk enhancements into the wal2 branch. (check-in: 1f592dd3 user: drh tags: wal2)
13:40
Merge recent trunk enhancements into the begin-concurrrent branch. (check-in: b3a2adfd user: drh tags: begin-concurrent)
2023-12-27
16:24
Fix a problem in the shell tool (not library) causing an out-of-bounds write if an ".open" command failed, then the user pressed ctrl-c to interrupt a query running on the substitute in-memory database. (check-in: 026618b9 user: dan tags: trunk)
2023-12-26
15:52
Ensure that the xColumnText(), xQueryPhrase() and xPhraseFirstColumn() APIs all return SQLITE_RANGE if they are passed a bad column or phrase number. (check-in: 1a8a9b1c user: dan tags: trunk)
13:20
Improved handling of malformed unicode within JSON strings. (check-in: e252bdf5 user: drh tags: trunk)
2023-12-24
12:02
Remove an ALWAYS() added in [c50e6c2ace49d092] because it is sometimes false. dbsqlfuzz c393a4f783d42efd9552772110aff7e5d937f15e. (check-in: b9daf37e user: drh tags: trunk)
11:43
Fix harmless compiler warnings associated with [5db30bcc338aac1c] (check-in: e55d1c23 user: drh tags: trunk)
11:31
Avoid signed integer overflow during integrity_check of FTS5. (check-in: 5937df3b user: drh tags: trunk)
2023-12-23
19:03
Improvements to the query planner to address the inefficiency described by forum post 2568d1f6e6. (check-in: 72fcc12c user: drh tags: trunk)
11:31
Add debugging output routines sqlite3ShowWhereLoop(X) and sqlite3ShowWhereLoopList(X) that can be invoked from a debugger to show a summary of the content of a single WhereLoop object or a list of WhereLoop objects. No change in release builds. (check-in: 5db30bcc user: drh tags: trunk)
2023-12-22
21:22
Change parameters on a debugging function to include "const". (check-in: 94c3e111 user: drh tags: trunk)
16:03
Add the -fno-sanitize-recover=undefined to the sanitizer builds used for sdevtest and release testing. To ensure that any test that provokes undefined behaviour fails. (check-in: 89563311 user: dan tags: trunk)
15:41
Update #ifdef checks in pager.c and util.c to account for [0462a2612d1fc1d0] to resolve the build problem reported in forum post 9819032aac. (check-in: 0f22d809 user: stephan tags: trunk)
14:47
Fix a usan complaint about signed integer overflow. (check-in: e65907e0 user: dan tags: trunk)
12:57
Add a new comment to debugging output routine sqlite3WhereLoopPrint() to remind us of what the various fields of the debug output mean. No changes to code. (check-in: da5f34fd user: drh tags: trunk)
2023-12-21
18:08
Add internal core-developer-only documentation of the JSONB format. (check-in: 4d304788 user: drh tags: trunk)
2023-12-20
19:33
Fix SQLITE_ENABLE_SETLK_TIMEOUT assert() statements in os_unix.c to avoid reading past the end of the unixShmNode.aMutex[] array. (check-in: 029a05cd user: dan tags: trunk)
11:34
Avoid harmless integer overflow in pager status statistics gathering. Response to forum post 7f4cdf23f9. (check-in: 206d8c65 user: drh tags: trunk)
2023-12-19
21:39
In JSON - minor code cleanup and refactoring with a small size reduction and performance increase. (check-in: 215fabda user: drh tags: trunk)
15:51
Remove redundant conditional from sqlite3ExprCanBeNull(). (check-in: 257f96a2 user: drh tags: trunk)
15:10
On second thought, we don't really need sqlite_dbdata accessible to the CLI. (check-in: 36fe6a61 user: drh tags: trunk)
15:06
Fix harmless compiler warning in the randomjson.c extension. (check-in: debe7060 user: drh tags: trunk)
14:54
More precise computation of the size of data structures in the query planner. Response to Forum post 7d8685d49d. (check-in: 0c8d88e4 user: drh tags: trunk)
14:53
Add ALWAYS() and NEVER() on branches made unreachable by recent changes. (check-in: c50e6c2a user: drh tags: trunk)
13:45
Ignore COLLATE operators when determining whether the result of a subexpression should be shallow-copied or deep-copied. (check-in: 34ae36a4 user: drh tags: trunk)
13:00
Test case for the previous check-in. (check-in: df5a07e1 user: drh tags: trunk)
12:49
When unable to resolve an identifier, change the Expr node into TK_NULL rather than TK_COLUMN, to prevent any downstream misuse of the non-existent column. dbsqlfuzz 71869261db80a95e4733afa10ff5724bf3c78592. (check-in: d2e6117e user: drh tags: trunk)
12:23
Always make the sqlite_dbdata virtual table available in the CLI. (check-in: e5fd3b32 user: drh tags: trunk)
11:57
Extra ALWAYS() macros to verify state in the sqlite3ExprCanBeNull() routine. (check-in: be19b84c user: drh tags: trunk)
00:07
Remove a stray comment in the JSON code. (check-in: 6618bdf0 user: drh tags: trunk)
2023-12-18
19:18
New JSON invariant test cases. (check-in: a6a1367b user: drh tags: trunk)
18:50
Add NEVER() to an unfalsifiable branch. (check-in: 9a0c67db user: drh tags: trunk)
18:31
Fix JSON to JSONB translation so that it deals correctly with Infinity and NaN. (check-in: 178cb84f user: drh tags: trunk)
15:53
Ensure that the insert/delete size delta on JSONB objects in the JSON cache are always set to zero. (check-in: 4b458166 user: drh tags: trunk)
14:24
Add randomjson.c to testfixture. Use it for a new set of invariant tests against JSON functions. (check-in: f1c04060 user: drh tags: trunk)
14:16
Ensure that all object labels for individual objects generated by randomjson.c are unique. (check-in: 29c46aca user: drh tags: trunk)
13:51
Bug fix in the randomjson.c extension. (check-in: 1f3a33df user: drh tags: trunk)
12:18
Enhancements to ext/misc/randomjson.c. (check-in: a4e6d1f8 user: drh tags: trunk)
2023-12-17
20:41
Enhancements to the "randomjson.c" extension. Automatically load that extension into fuzzcheck. (check-in: 70620405 user: drh tags: trunk)
2023-12-16
15:48
Enable SQLITE_STRICT_SUBTYPE for default builds of the shell, fuzzcheck, and testfixture. (check-in: 5a0c517e user: drh tags: trunk)
10:50
New test case based on Chromium bug report 1511689. (check-in: 2c7ef4b4 user: drh tags: trunk)
2023-12-15
20:13
In the count-of-view optimization, deferring freeing obsolete parts of the parse tree, on the off-chance that some other part of the code might be holding a pointer to those parts. (check-in: da442578 user: drh tags: trunk)
19:26
Avoid expiring prepared statements in the middle of an integrity-check. (check-in: 88beb484 user: dan tags: trunk)
16:28
Add mention of --buildonly and --dryrun to the testrunner.tcl usage screen. (check-in: 23b92d91 user: drh tags: trunk)
15:22
Fix a new JSON test case so that it works even if SQLITE_OMIT_VIRTUALTABLE is defined. (check-in: b995aae5 user: drh tags: trunk)
15:17
Do not run test script fts5origintest4.test with either "memsubsys1" or "mmap" permutations. (check-in: 05a63d96 user: dan tags: trunk)
14:33
Avoid running the "no_mutex_try" tests with SQLITE_ENABLE_SETLK_TIMEOUT builds as part of the release test. (check-in: 6b4e1344 user: dan tags: trunk)
13:38
Correct --enable-sab flag in ext/wasm/GNUmakefile to fix a silent alhttpd args-parsing error. (check-in: 7b9b757d user: stephan tags: trunk)
2023-12-14
22:01
Use SQLITE_STRICT_SUBTYPE=1 by default for the JNI and WASM builds unless they're explicitly built with SQLITE_STRICT_SUBTYPE=0. (check-in: 99021135 user: stephan tags: trunk)
16:34
Add assert()s to FTS5 to fix static analyzer warnings. (check-in: 27d4a89a user: drh tags: trunk)
15:38
Fix harmless compiler warnings in JSON and FTS5. (check-in: 90135efc user: drh tags: trunk)
15:31
Improve the error message returned by an fts5 'rebuild' command on an external content table if there is a problem with the content table or view. (check-in: 0fbf4b8a user: dan tags: trunk)
15:11
Enhance aggregate order-by so that it transmits subtype information through the sorter. Fix for the deficiency reported by forum post 87347ad2fb5a8f76. (check-in: d302a389 user: drh tags: trunk)
13:58
Pass subtype information through the aggregate ORDER BY sorter for aggregate functions that use subtype information. (Closed-Leaf check-in: 3536f403 user: drh tags: agg-orderby-subtype)
2023-12-13
20:37
In CLI, fix .read inability to open 2GB+ files on WIN32. (check-in: 56c80a62 user: larrybr tags: trunk)
16:45
Avoid invoking sqlite3ExprColUsage() on an unresolve column reference. dbsqlfuzz fc34aa62df4de103705d11b807074687ffafbda5. (check-in: ac9314c0 user: drh tags: trunk)
15:27
Bug fix in the JSONB validator. dbsqlfuzz ac6fa521a08609a642198e7decf64180e750b3c4 (check-in: 3e940a6a user: drh tags: trunk)
14:31
Improvements to UTF8 handling, and especially the handling of invalid UTF8, in the JSON routines. (check-in: 1b229c11 user: drh tags: trunk)