SQLite

Timeline
Login

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

131 check-ins using file src/vdbe.c version 3b1793c5d2

2024-11-04
17:33
Avoid loading the entire record into memory for an sqlite3_preupdate_old() call that retrieves an IPK value. (Leaf check-in: f9a90a0d2c user: dan tags: branch-3.46)
2024-10-17
12:17
Fix the OPFS VFS's xOpen() to honor the read-only flag. Fix the OPFS SAHPool VFS to enable re-installation of the VFS after calling OpfsSAHPoolUtil.removeVfs(). (check-in: 63ee358420 user: stephan tags: branch-3.46)
2024-10-07
12:24
Fix handling of U+fffd in the LIKE optimization. (check-in: 242cb4bbee user: drh tags: branch-3.46)
2024-09-05
23:44
Ensure that the WhereInfo.revMask bitmap is adjusted when tables are removed from the FROM clause by the Omit-Noop-Join optimization. (check-in: 2b543fbc28 user: drh tags: branch-3.46)
2024-09-04
16:45
Fix a bug in the parsing of some corner-case JSON PATH strings that contain escaped double-quotes. (check-in: c49c2a8c00 user: drh tags: branch-3.46)
2024-08-29
17:18
Fix a case where the BTCF_AtLast flag was being left set incorrectly. This was causing obscure window function queries to fail. (check-in: 45778b0bb8 user: drh tags: branch-3.46)
2024-08-26
23:32
Earlier error detection while processing complex aggregate queries. dbsqlfuzz 5242c2f07f4aa031aa3c80461f18e9b7619ede9b (The previous check-in on this branch really should have been this cherrypick.) (check-in: f9c6cbc1d3 user: drh tags: branch-3.46)
23:19
Early termination of updateAccumulators() after error detection. (check-in: faecd4505d user: drh tags: branch-3.46)
16:15
Bind the new debug parameters in fuzzinvariants.c. (check-in: 29e9bcfa2e user: drh tags: branch-3.46)
2024-08-24
17:37
Avoid a stack overflow that could be caused by a recursively defined WINDOW() with a strategically embedded error. (check-in: 074002718b user: drh tags: branch-3.46)
2024-08-20
14:16
When the database encoding is UTF-16LE and the GLOB optimization is used, it is ok to use the range search over an index, but it is not ok to disable the actual GLOB function call. (check-in: db917d50fd user: drh tags: branch-3.46)
12:15
The LIKE/GLOB optimization restricts its attention to the pattern prefix that is all ASCII. (check-in: 5815f13263 user: drh tags: branch-3.46)
2024-08-19
14:23
Fix leap-year handling for dates prior to 0400-03-01. (check-in: 6767bf1c67 user: drh tags: branch-3.46)
2024-08-13
09:16
Version 3.46.1 (check-in: c9c2ab54ba user: drh tags: release, branch-3.46, version-3.46.1)
2024-08-10
16:29
Revision to check-in d9f726ade6b258f8 so that OOM and other unrelated failures are not overridden by a syntax error in the tokenizer spec. (check-in: fc956353d3 user: drh tags: branch-3.46)
14:56
Fix behavior change in the offset() SQL function introduced by check-in f0b671183f44d0ae. (check-in: d6fc6e5f0a user: drh tags: branch-3.46)
13:45
Cherrypick ALTER TABLE fixes from trunk so that ALTER TABLE no longer returns SQLITE_INTERNAL instead of SQLITE_ERROR after malformed input. (check-in: 6decf00f7c user: drh tags: branch-3.46)
11:02
Cherrypick various minor fixes from trunk into branch-3.46. (check-in: 6047b18ee3 user: drh tags: branch-3.46)
10:14
Enhancements to covering-index prediction. Add early detection of over-prediction of covering-indexes so that sqlite3_prepare() will return an error rather than just generate bad bytecode. (check-in: 4afe3201f0 user: drh tags: branch-3.46)
2024-08-09
12:20
Remove unused static var cBadGroup from ext/consio/console_io.c to resolve a compiler warning reported in the fossil forum. This is a build fix, not a functional change. (check-in: be3de2e600 user: stephan tags: branch-3.46)
2024-08-08
15:42
Ensure sqlite3expert.c unregisters any SQL user-functions it registers with the database handle before returning. (check-in: 2708314448 user: dan tags: branch-3.46)
14:49
Do not let the number of terms on a VALUES clause be limited by SQLITE_LIMIT_COMPOUND_SELECT, even if the VALUES clause contains elements that appear to be variables due to the use of double-quoted string literals. (check-in: 05dbfad70c user: drh tags: branch-3.46)
10:55
Move a misplaced va_end, as reported in forum post 702c79e9da. (check-in: 569824c7ff user: stephan tags: branch-3.46)
2024-08-06
22:54
Improved robustness of parsing of tokenize= arguments in FTS5. (check-in: 7a65ac42c2 user: drh tags: branch-3.46)
2024-07-15
10:13
Slight doc touchup for [af41a1e6fc8b36e9bf65]/[c7519d98ff09e] based on feedback. No code changes. (check-in: a61997c315 user: stephan tags: branch-3.46)
2024-07-12
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: c7519d98ff user: stephan tags: branch-3.46)
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: d34e788044 user: stephan tags: branch-3.46)
2024-06-12
21:08
Fix a potential db corruption case triggered by the OPFS VFS's xCheckReservedLock() implementation. (check-in: a7cd07d96e user: stephan tags: branch-3.46)
2024-06-09
17:58
Disable the omit-noop-join optimization when there are 64 or more terms in the ORDER BY clause. (check-in: a7fe90c158 user: drh tags: branch-3.46)
2024-06-05
16:50
Fix an fts5 problem with secure-delete mode causing integrity-check to erroneously report a corrupt index. (check-in: 0a7fa0a434 user: drh tags: branch-3.46)
2024-05-27
11:38
Fix a possible buffer overwrite in the ".import" command. (check-in: 55eee9f920 user: drh tags: branch-3.46)
2024-05-25
23:17
Ensure that sqlite3ViewGetColumnNames() returns non-zero on any error. (check-in: 01ead0a2d9 user: drh tags: branch-3.46)
2024-05-23
23:34
Increase the version number to 3.46.1 (check-in: 170e3a91d5 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: 7fe11274fc user: drh tags: branch-3.46)
14:58
Increase the version number to 3.47.0 to begin the next development cycle. (check-in: 20e228a22e user: drh tags: trunk)
13:25
Version 3.46.0 (check-in: 96c92aba00 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: 3210e1ca4d user: dan tags: trunk)
14:54
Do not attempt to run mmapcorrupt.test with builds that do not support mmap(). (check-in: 54a49f1847 user: dan tags: trunk)
13:34
Fix harmless compiler warnings. (check-in: aab59f9f7c 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: de8182cf17 user: drh tags: trunk)
2024-05-20
19:59
Omit a capi3 test from 2007 that depends upon undefined behavior (UAF). (check-in: a60a0b7513 user: drh tags: trunk)
19:51
Do not run the tests in recovercorrupt4.test with the inmemory_journal permutation. (check-in: c13205d66b 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: 08058d66d1 user: drh tags: trunk)
16:00
Improvements to the sqlite3_vtab_distinct() documentation. (Closed-Leaf check-in: 6ee041d34f 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: 922731ce98 user: drh tags: vtab-distinct-fix)
15:21
JS error message and doc typos reported in the forum. No code changes. (check-in: 1a073f9acf user: stephan tags: trunk)
2024-05-17
22:51
Improvements to a VDBE comment. No changes to anything that affects queries. (check-in: c2188da860 user: drh tags: trunk)
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: b41e71208a 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: 5fa0c2a026 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: 1ec2961a03 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: 953271f29e 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: 3120c7c8a3 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: b79a8be37b user: dan tags: alter-table-fix)
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: 8eb326c249 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: 96a591c202 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: c0c91e306c 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: ca4fdcb8ae 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: 69ef47eeee user: dan tags: fts5-delay-tokenizer)
2024-05-11
16:44
Add tests to bestindexC.test. No changes to code. (check-in: 58d938c0e0 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: c6fd70b3c2 user: drh tags: trunk)
18:15
Add a test for the fixes on this branch. (Closed-Leaf check-in: 716088d673 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: c623d9a51e user: drh tags: cleanup-testing)
17:05
Improvements to the ".testctrl fault_install" command in the CLI. (check-in: 48b34ded82 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: 1e8863909a user: drh tags: cleanup-testing)
09:26
Squelch two OMIT-flag-related warnings reported in forum post 388243d9882067a9. No functional changes. (check-in: 1d6716054d user: stephan tags: trunk)
2024-05-09
18:39
Add a maintenance-reminder comment explaining [dc58ed65492857]. (check-in: 857f5d7fad 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: dc58ed6549 user: stephan tags: trunk)
2024-05-08
17:57
Rename a shadowed local var, as reported in forum post 2ba65af31. No functional changes. (check-in: d030c87c4d user: stephan tags: trunk)
11:51
Fix a hyperlink typo in session documentation. (check-in: 42d67c6fed user: drh tags: trunk)
2024-05-07
19:45
Fix bug in test script sessionconflict.test. (check-in: e29decb8b1 user: dan tags: trunk)
17:58
Ensure successive scans of pragma virtual tables return consistent rowids. (check-in: 6838bf3ac1 user: dan tags: trunk)
13:20
Fix a compilation error in test/lemon-test01.y, reported in forum post f0ad095705. (check-in: 576b68c8b5 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: 2bf8c3f99a user: dan tags: trunk)
20:18
Omit redundant unary + operators from the AST. (check-in: f81cc149e5 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: 70abc144ca user: drh tags: trunk)
17:55
Add new sessions API sqlite3changegroup_add_change(). (check-in: 5eaab43ce4 user: dan tags: trunk)
17:32
Edit comments in sqlite3session.h. (Closed-Leaf check-in: 49f84878e2 user: dan tags: changegroup-add-change)
17:21
Add tests for sqlite3changegroup_add_change(). (check-in: 9d67bedc20 user: dan tags: changegroup-add-change)
11:27
Fix problem in sqlar_uncompress() when being used to extract symbolic links. (check-in: 4d90c3f179 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: 9bdf73a8d4 user: drh tags: trunk)
2024-05-04
21:10
Add new sessions API sqlite3changegroup_add_change(). (check-in: 73647db1dd user: dan tags: changegroup-add-change)
16:50
Add test cases to test/in7.test. No code changes. (check-in: 8c3086f9fe 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: b36d499e4c 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: f16b200f25 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: 2f9fba931d 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: cdd1610c44 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: 26b2d9390f user: dan tags: trunk)
18:16
Avoid an assert failure accessible only when internal testing features are enabled. dbsqlfuzz crash-66abacda6bca6bd531e25595e8c8068e2c710326.txt. (check-in: fbc446daac user: dan tags: trunk)
17:46
Fix a case where the recovery extension might write uninitialized data to the recovered database. (check-in: 8519b4d039 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: d7648e2160 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: 71f08b9122 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: 39a57b596d 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: b04e7a2347 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: 532795acd1 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: 560f64157d 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: 1c7e33a8aa 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: 8de85170d5 user: dan tags: trunk)
2024-04-30
19:34
Avoid 32-bit overflow when calculating ncycle for ".scanstats vm". (check-in: 2858efa06d 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: 5f6c079d84 user: drh tags: trunk)
18:42
Internal JS doc touchups. No functional changes. (check-in: 626b997b4e user: stephan tags: trunk)
18:24
Additional internal docs in the wasm utilities. (check-in: 5a2245a9eb 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: 90e5c8226a 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: 7d30596496 user: dan tags: vtab-limit-fix)
17:09
Further fixes and improvements to the generate_series() enhancements on this branch. (check-in: b7d9bd7ee2 user: drh tags: vtab-limit-fix)
14:36
Use hex flag masks rather than decimals in ext/misc/series.c. (check-in: a94e2cd028 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: 72c8ed9698 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: 40421c1c4e 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: 408d47ecaa user: drh tags: vtab-limit-fix)
12:01
Add test demonstrating the problem at forum post c243b8f856. No fix yet. (check-in: 1685495c0a 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: 38f1e5ce4e 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: e6df846f36 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: bbdf22e3d9 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: b8ec8511b1 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: d99a01a0f6 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: 779723ad79 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: 9ea6bcc8fd user: drh tags: trunk)
14:18
Fix a case where a corrupt stat4 record could go unrecognized due to integer overflow. (check-in: 240a4a48b2 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: 6f0e7e1952 user: drh tags: trunk)
11:40
Avoid slowdown when exprNodeIsConstant() is called on deeply nested SQL functions. (check-in: 1c0b034545 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: cef4d9e3ba 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: 3a640038c7 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: 86e8c782e7 user: drh tags: trunk)
06:49
Remove some dead WASM-side code. (check-in: 0a07ee27bd user: stephan tags: trunk)
06:36
Minor touchups in JS docs and exception messages. (check-in: 9e7fc9370d 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: 04c552b12e user: stephan tags: trunk)
2024-04-22
20:09
Add extra tests for aborting conflicts in the sessions module. (check-in: b4a6d32662 user: dan tags: trunk)
17:03
Minor cleanups to [8fbda563d2f5]. (check-in: 5ee2594b65 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: 8fbda563d2 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: 672c2869ef 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: 5c505ee8a7 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: e1040e51eb user: drh tags: trunk)