/ Timeline
Login

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

1079 check-ins using file test/json105.test version 11670a4387

2022-08-16
00:04
Replace the RC4-based PRNG with one based on ChaCha20 (RFC 7539). 3x faster. (Leaf check-in: 084d8776fa user: drh tags: chacha20-prng)
2022-08-15
19:23
Extra test for SQLITE_MAX_COMPOUND_SELECT. (Leaf check-in: c271096736 user: dan tags: trunk)
18:36
The new --script option to dbtotxt.c looks for an SQL script at the head of the file and generates a CLI script that will construct the database then run the SQL. (check-in: 6170e638eb user: drh tags: trunk)
12:26
In the documentation emphasize that the use of shared cache is discouraged. Fix test cases so that they all work with shared cache disabled. (check-in: 52c3ae063e user: drh tags: trunk)
2022-08-13
17:13
Add worker-style variant of the tests added in [ae24ac0f7dd9], but building this with wasmfs causes them to throw inexplicable exceptions from the Emscripten glue (without wasmfs it builds and runs fine, but storage is not persistent). (Leaf check-in: 6401595e59 user: stephan tags: fiddle-opfs)
16:36
wasmfs: use unix-none VFS by default to avoid locking errors in non-OPFS mode. (check-in: 75561dea1a user: stephan tags: fiddle-opfs)
16:11
Add scratchpad/test app for WASMFS/OPFS running in the main window thread. Enable WASMFS by default in the library build. (check-in: ae24ac0f7d user: stephan tags: fiddle-opfs)
13:56
Cleanups in the wasmfs/opfs integration but disable it in order to get the build into a known-working state before continuing with experimentation. (check-in: 41045be752 user: stephan tags: fiddle-opfs)
13:51
Remove OPFS from the fiddle build for the time being - will re-enable once the breakage is figured out via testing with the core API. (check-in: 3bc510a614 user: stephan tags: fiddle-opfs)
13:46
wasm OO API #1: added DB.callInTransaction() and Stmt.stepFinalize(). (check-in: e37dddc1dd user: stephan tags: fiddle-opfs)
13:42
Corrected TextDecoder.decode() usage to run when its input references a SharedArrayBuffer. (check-in: d4d773405c user: stephan tags: fiddle-opfs)
2022-08-12
18:54
Use new -DSQLITE_DEFAULT_UNIX_VFS="unix-none" for fiddle build to bypass OPFS locking errors. (check-in: b3a93ec75a user: stephan tags: fiddle-opfs)
18:46
Add the (undocumented) SQLITE_DEFAULT_UNIX_VFS compile-time option. (check-in: 49828bdec5 user: drh tags: trunk)
18:07
Updated fiddle deps to ensure that sqlite3.c is built first. (check-in: f0ca026114 user: stephan tags: fiddle-opfs)
17:57
Build fiddle with WASMFS OPFS support and attempt to use it if available. It does not work because of an inexplicable exception in Emscripten-generated code and perpetually-locked db, but it's not yet clear why. (check-in: a16f0a46ec user: stephan tags: fiddle-opfs)
17:55
Minor wasm-related doc clarification and remove an obsolete code comment. (check-in: 1b1f650a08 user: stephan tags: trunk)
13:07
wasm: document the role of sqlite3-wasm.c. Other minor doc updates. (check-in: 4c10b9b18f user: stephan tags: trunk)
09:32
wasm: corrected (in as-yet unused code) a flags check. (check-in: 06b6113783 user: stephan tags: trunk)
2022-08-11
15:45
Wasm-related doc additions and tweaks. (check-in: ec55a3aa44 user: stephan tags: trunk)
09:18
Merge in wasm-cleanups branch, reorganizing and updating the wasm-related components. (check-in: c072594d3d user: stephan tags: trunk)
2022-08-10
18:40
Fix another harmless comment typo that causes a typo in the documentation. (check-in: bb084adb53 user: drh tags: trunk)
18:33
Remove (harmless) duplicate words in comments used to generate parts of the documentation. [forum:/forumpost/54abbe9ccd|forum post 54abbe9ccd] (check-in: b5e4f0db09 user: drh tags: trunk)
15:29
Fix handling of columns with names that are SQL keywords in the ".expert" command. (check-in: 5e1b8221c3 user: dan tags: trunk)
13:22
wasm opfs: error handling fix for an impossible-to-reach error case. Minor cosmetic tweaks in the wasm JSON enum. (Closed-Leaf check-in: 683a3b937e user: stephan tags: wasm-cleanups)
11:26
wasm refactoring part 2 of (apparently) 2: moved ext/fiddle/... into ext/wasm and restructured the core API-related parts of the JS/WASM considerably. (check-in: 27f9da4eaa user: stephan tags: wasm-cleanups)
09:36
wasm/fiddle refactoring part 1 of N: move fiddle app from ext/fiddle to ext/wasm/fiddle, which only contains files intended to be pushed to the live site. Disabled build of the non-fiddle wasm parts, pending a later step of the refactoring. (check-in: fb4eb93080 user: stephan tags: wasm-cleanups)
07:58
Merged in trunk for pending tree refactoring. (check-in: c3a3cb0103 user: stephan tags: wasm-cleanups)
2022-08-09
16:13
Allow the name of an index to collide with a table in a different schema. (check-in: f963c25238 user: drh tags: trunk)
14:28
Omit the (undocumented) SQLITE_PCACHE_SEPARATE_HEADER compile-time option. (check-in: 60947da687 user: drh tags: trunk)
2022-08-08
19:29
Avoid some cases of signed integer overflow in fts5 by casting to unsigned values. (check-in: 46a78c8c0e user: dan tags: trunk)
16:25
Avoid trying to cast an over-sized floating point value into an integer. (check-in: 3518cd7cb1 user: drh tags: trunk)
13:04
Remove an unreachable branch in the numericType() helper routine. (check-in: a99cc008e4 user: drh tags: trunk)
12:19
Do not attempt to convert an oversized floating point value into an integer. (check-in: 6c4fc8385e user: drh tags: trunk)
2022-08-06
15:28
Fix a rounding error caused by scalar->logarithm->scalar conversion when using stat4 data to estimate some range scans. (check-in: 86e30d7c4b user: dan tags: trunk)
2022-08-05
19:37
Avoid having fts3 read uninitialized values when processing deferred tokens. (Leaf check-in: 8e2bfe5803 user: drh tags: branch-3.39)
17:16
Avoid having fts3 read uninitialized values when processing deferred tokens. (check-in: 98729c5fa6 user: dan tags: trunk)
05:30
Fix harmless compiler warning seen with MSVC. (check-in: e36217f253 user: mistachkin tags: trunk)
2022-08-04
17:17
Fix a problem with the query optimizer for LIMIT/OFFSET queries when underlying query is a UNION ALL and both arms of the UNION ALL are subqueries with an ORDER BY clause. (check-in: 5e1db87cfa user: drh tags: branch-3.39)
17:15
Fix a problem with the query optimizer for LIMIT/OFFSET queries when underlying query is a UNION ALL and both arms of the UNION ALL are subqueries with an ORDER BY clause. This bug was reported at [forum:/forumpost/6b5e9188f0657616|forum post 6b5e9188f0657616]. The problem was introduced in 2015 (SQLite version 3.9.0) by check-in [4b631364354068af]. See also ticket [b65cb2c8d91f6685]. (check-in: 6c806f64bb user: drh tags: trunk)
14:02
Fix a typo on a comment used to generate bytecode documentation. (check-in: 64348d0b66 user: drh tags: trunk)
2022-08-03
19:53
Performance optimization to the math opcodes of the bytecode engine. (check-in: 597347d9c3 user: drh tags: trunk)
19:37
Small performance increase on the binding interfaces. (check-in: aab24c37fb user: drh tags: trunk)
17:27
Improvement on the previous check-in. (check-in: 0d0c31117a user: drh tags: branch-3.39)
17:26
Improvement on the previous check-in. (check-in: c1ab0ea295 user: drh tags: trunk)
16:04
For an IN operator used with a RIGHT JOIN, use the number of terms in the vector, not the number of equality terms, to size the column map. dbsqlfuzz 14cfdad6ca45e607163f54049ddf5065183dc657. (check-in: 003e4eee6b user: drh tags: branch-3.39)
15:58
For an IN operator used with a RIGHT JOIN, use the number of terms in the vector, not the number of equality terms, to size the column map. dbsqlfuzz 14cfdad6ca45e607163f54049ddf5065183dc657. (check-in: b184c8d922 user: drh tags: trunk)
2022-08-01
13:17
Bump the version number up to 3.39.3. (check-in: d0f7f22a8f user: drh tags: branch-3.39)
13:15
In the xUpdate method of the GeoPoly virtual table, make sure that the number of updated columns does not exceed the underlying implementation, even if the virtual table object records an excess number of column in the nAux field due to table constraints in the table definition. Fix for the problem reported by [forum:/forumpost/a096ab7d96bb057a|forum post a096ab7d96bb057a]. (check-in: a8ae721617 user: drh tags: branch-3.39)
13:14
In the xUpdate method of the GeoPoly virtual table, make sure that the number of updated columns does not exceed the underlying implementation, even if the virtual table object records an excess number of column in the nAux field due to table constraints in the table definition. Fix for the problem reported by [forum:/forumpost/a096ab7d96bb057a|forum post a096ab7d96bb057a]. A test case for this problem is in dbsqlfuzz. (check-in: a04dd475c2 user: drh tags: trunk)
2022-07-26
19:10
Restore a VDBE coverage macro that is mistakenly deleted for check-in [92ac01d41d46ab73]. (check-in: 01de7ec44f user: drh tags: trunk)
18:43
Fix another problem related to aggregate query LEFT JOIN flattening. (check-in: 8e12c6f59b user: dan tags: trunk)
15:41
Omit a unused variable initialization in order to suppress a harmless compiler warning. (check-in: 2d703c5e94 user: drh tags: trunk)
15:39
Add test cases related to fix [e717e029]. (Closed-Leaf check-in: 2909f36bfb user: dan tags: flatten-left-join)
15:32
Make sure IF_NULL_ROW expressions receive a separate slot in the sorter used to implement GROUP BY. (check-in: 2bda4fca06 user: drh tags: flatten-left-join)
14:37
Improved AggInfo.aCol debugging output, intended to debug a problem with LEFT JOIN flattening into an aggregate query with GROUP BY. (check-in: e717e029bd user: drh tags: flatten-left-join)
10:16
Add a OOM term to a single assert() statement. (check-in: 217fc3ebd4 user: drh tags: trunk)
01:20
Performance optimization: avoid unnecessary calls to computeLimitRegisters(). (check-in: f48bd8f85d user: drh tags: trunk)
2022-07-25
23:34
Fix an assert() that was made out-of-date by [b52393ac28debe98]. (check-in: db8230e80e user: drh tags: trunk)
23:01
Performance optimization by only invoking sqlite3FkCheck() when it is actually needed. (check-in: 98b0e830bc user: drh tags: trunk)
22:31
Performance optimization in sqlite3ViewGetColumnNames(). (check-in: 390717e688 user: drh tags: trunk)
22:02
Fix a harmless compiler warning. (check-in: 9aba7417c6 user: drh tags: trunk)
21:37
In-line a call to sqlite3ExprCode() in insert.c, for a size reduction and performance increase. (check-in: 35066b1446 user: drh tags: trunk)
20:21
Performance optimization in computing the Expr.nHeight field. (check-in: 1798ce97c8 user: drh tags: trunk)
19:05
Small performance increase and size reduction by splitting out the sqlite3VdbeGetLastOp() from sqlite3VdbeGetOp(). (check-in: 92ac01d41d user: drh tags: trunk)
16:06
Fix an error in the aggregate query LEFT JOIN flattening optimization from [2cf373b10c9bc4cb] and further enhance that optimization so that it works even if there is a GROUP BY clause. (check-in: b52393ac28 user: drh tags: trunk)
15:54
Allow subqueries on the right-hand side of a LEFT JOIN to be flattened even if they contain a GROUP BY clause. (Closed-Leaf check-in: 816da9a893 user: drh tags: flatten-left-join)
14:05
TK_IF_NULL_ROW expressions must be accumulated in the same way as TK_COLUMN expressions in an aggregate query. Proposed fix for the problem identifyed by dbsqlfuzz 8e17857db2c5a9294c975123ac807156a6559f13. (check-in: 40d0880720 user: drh tags: flatten-left-join)
11:19
If the LHS of a LEFT JOIN is flattened into an aggregate parent query, avoid executing OP_IfNullRow on an unopened cursor by disallowing the index-only optimization. (Later:) Does not work if automatic indexes are disabled. (Closed-Leaf check-in: dbe522b011 user: dan tags: nonworking-flatten-left-join)
11:04
Reduce a timeout in walsetlk.test from 2000ms to 1100ms so that the test runs a bit faster. (check-in: 836fa09706 user: dan tags: trunk)
2022-07-23
12:51
Simplifications to sqlite3FinishCoding() for a small size reduction and performance increase. (check-in: a995614b9a user: drh tags: trunk)
00:53
Remove a branch that is no longer reachable due to the previous check-in. (check-in: 8b4d1b9317 user: drh tags: trunk)
00:44
Use sqlite3ParserAddCleanup() rather than pParse->pConstExpr to implement sqlite3ExprDeferredDelete(). This is a better solution than check-in [c538d07535092722]. (check-in: 2a6f6971fa user: drh tags: trunk)
2022-07-22
20:48
Updates to the 'vtshim' extension. (Leaf check-in: 163c6cdf93 user: mistachkin tags: xShadowName2)
20:24
Add experimental 'xShadowName2' method for virtual table modules. (check-in: 57beb700c0 user: mistachkin tags: xShadowName2)
19:28
Omit the EP_MemToken flag that was made obsolete by [e1f1cfe7f4387b60], for a size reduction and performance increase. (check-in: 28934a9d92 user: drh tags: trunk)
18:25
In a TK_BLOB Expr node, the Expr.zToken might not be a well-formed BLOB literal if there has been a prior OOM. dbsqlfuzz 23871e5805d6c45b392f9b7aa1e8a2b98f3c27cd. (check-in: c538d07535 user: drh tags: trunk)
14:52
Update the documentation for SQLITE_OPEN_NOFOLLOW to state more clearly that nothing in the database path is allowed to be a symbolic link. (check-in: de9222697b user: drh tags: trunk)
2022-07-21
18:37
Fix harmless compiler warning seen with MSVC. (check-in: 648172de20 user: mistachkin tags: trunk)
16:07
Merge the fixes from branch-3.39 into the reuse-schema branch. (Leaf check-in: 578538baf2 user: drh tags: reuse-schema-3.39)
15:24
Version 3.39.2 (check-in: 698edb7753 user: drh tags: release, branch-3.39, version-3.39.2)
12:26
In the query planner, restore the former aggressiveness in reordering of FROM clause terms that existed prior to version 3.39.0 for queries that contain no RIGHT or FULL JOINs. (check-in: 9141e873c5 user: drh tags: branch-3.39)
2022-07-20
20:36
Make use of the sqlite3ExprDeferredDelete() interface in the previous check-in, and in another place where it might be helpful. (check-in: 22f90e9683 user: drh tags: trunk)
17:01
Simplify the logic that converts the "1" expression in "ORDER BY 1" into a copy of the expression that defines the first output column. (check-in: 449935914c user: drh tags: branch-3.39)
16:42
Simplify the logic that converts the "1" expression in "ORDER BY 1" into a copy of the expression that defines the first output column. (check-in: e1f1cfe7f4 user: drh tags: trunk)
10:09
Merged in trunk. (check-in: d662796c65 user: stephan tags: wasm-cleanups)
2022-07-19
21:12
Improve accuracy of julian day milliseconds calculation. (check-in: e5e9311863 user: larrybr tags: trunk)
2022-07-18
19:32
Remove a few unsuitable scripts from the "veryquick" test suite. Also have every second testrunner.tcl process favour running test scripts that contain text like "testrunner: slow" before any others. (check-in: 22d280a5cd user: dan tags: trunk)
18:13
Add the "testrunner" makefile target. (check-in: 954c659315 user: drh tags: trunk)
15:27
Increase the size of loop variables in the printf() implementation to avoid integer overflow on multi-gigabyte string arguments. CVE-2022-35737. (check-in: 26db4fc22f user: drh tags: branch-3.39)
15:02
Increase the size of loop variables in the printf() implementation to avoid integer overflow on multi-gigabyte string arguments. CVE-2022-35737. (check-in: aab790a16e user: drh tags: trunk)
13:55
Enhance the REGEXP extension so that it will accept the start-of-input mark ("^") in the middle of parentheses. [forum:/forumpost/0d6a9160f81ef1a8|Forum post 0d6a9160f81ef1a8]. (check-in: ed8a8ebd62 user: drh tags: trunk)
13:10
Fix a problem in the REGEXP extension for the {M,N} construct where M is zero. See [forum:/forumpost/8694e55a2c29963c|forum post 8694e55a2c29963c] for more information. (check-in: af15bb7530 user: drh tags: trunk)
11:44
Enhance the ext/misc/regexp.c code so that when it is compiled with SQLITE_DEBUG, a new function named regexp_bytecode() is available that prints out the compiled NFA as human-readable text, for debugging purposes. (check-in: cb5c08978f user: drh tags: trunk)
2022-07-16
18:08
Fixes for the generated "mallocs.tcl" and "leaks.tcl" scripts generated by running tcl tests with the --malloctrace=1 option. (check-in: 449799e2d5 user: dan tags: trunk)
2022-07-15
20:39
In the query planner, restore the former aggressiveness in reordering of FROM clause terms that existed prior to version 3.39.0 for queries that contain no RIGHT or FULL JOINs. (check-in: 92d60b64eb user: drh tags: trunk)
15:24
Fix harmless compiler warnings seen with MSVC. (check-in: 2be8fa158e user: mistachkin tags: branch-3.39)
15:11
Fix a memory leak in fts3 that could occur when processing a corrupt database. (check-in: 48f323b956 user: dan tags: branch-3.39)
15:08
Fix a memory leak in fts3 that could occur when processing a corrupt database. (check-in: d74f6f6d51 user: dan tags: trunk)
12:34
Fix the whereKeyStats() routine (part of STAT4 processing only) so that it is able to cope with row-value comparisons against the primary key index of a WITHOUT ROWID table. [forum:/forumpost/3607259d3c|Forum post 3607259d3c]. (check-in: 2a6f761864 user: drh tags: branch-3.39)
12:16
Fix the whereKeyStats() routine (part of STAT4 processing only) so that it is able to cope with row-value comparisons against the primary key index of a WITHOUT ROWID table. [forum:/forumpost/3607259d3c|Forum post 3607259d3c]. (check-in: 0620e419a9 user: drh tags: trunk)
12:07
Update some faulty assert() statements in fts3. (check-in: 958d104bcf user: dan tags: branch-3.39)
11:34
Update some faulty assert() statements in fts3. (check-in: b072851be1 user: dan tags: trunk)
2022-07-14
21:17
Ensure all testrunner.tcl processes use the same pending-byte value when accessing testrunner.db. Otherwise locking doesn't work and the db is corrupted. (check-in: b65225653e user: dan tags: trunk)
18:09
Update testrunner.tcl so that it can run the test suites defined in permutation.test. (check-in: 15ce937ef4 user: dan tags: trunk)
01:54
Bump the version number up to 3.39.2. (check-in: c4dbcb282d user: drh tags: branch-3.39)
01:49
When applying the omit-ORDER-BY optimization, defer deleting the AST of the deleted ORDER BY clause until after code generation ends. (check-in: b88d6c4b81 user: drh tags: branch-3.39)
01:48
When applying the omit-ORDER-BY optimization, defer deleting the AST of the deleted ORDER BY clause until after code generation ends. (check-in: f22f95b838 user: drh tags: trunk)
2022-07-13
21:28
Fix testrunner.tcl so that it can detect the number of logical cores on osx. (check-in: 14918f2822 user: dan tags: trunk)
21:10
Minor change to help message in testrunner.tcl. (check-in: e4f9cb01d7 user: dan tags: trunk)
21:02
Add new script test/testrunner.tcl. For running a set of test scripts using multiple processes. (check-in: 0122e93dc1 user: dan tags: trunk)
20:26
Fix a problem preventing "testrunnter.tcl all" from working. (Leaf check-in: 0ed1e83c6f user: dan tags: testrunner)
19:57
Update testrunner.tcl to allow the user to specify which tests to run on the command line. (check-in: 900febcf36 user: dan tags: testrunner)
19:41
Version 3.39.1 (check-in: 7c16541a0e user: drh tags: release, branch-3.39, version-3.39.1)
17:46
Fix testrunner.tcl so that it checks for memory leaks. (check-in: 106f6724d5 user: dan tags: testrunner)
16:06
The query flattener should not run if the subquery is a compound that contains a RIGHT JOIN in any arm and the subquery is not the first element of the outer query. Otherwise, prior elements of the outer query will not have the JT_LTORJ flag set. Fix for the problem reported in [forum:/forumpost/174afeae5734d42d|forum post 174afeae5734d42d]. (check-in: cf9ed7f2e1 user: drh tags: branch-3.39)
15:52
The query flattener should not run if the subquery is a compound that contains a RIGHT JOIN in any arm and the subquery is not the first element of the outer query. Otherwise, prior elements of the outer query will not have the JT_LTORJ flag set. Fix for the problem reported in [forum:/forumpost/174afeae5734d42d|forum post 174afeae5734d42d]. (check-in: 274e244c85 user: drh tags: trunk)
11:27
Fix test case error messages so that they work with after the removal of the unnecessary zErrMsg clearing from [44d77a7f807f5dc3]. (check-in: 7b167b87d6 user: drh tags: branch-3.39)
2022-07-12
20:31
Add test/testrunner.tcl, an experimental script for distributing the work of veryquick.test between multiple processes. (check-in: ef229cbb7f user: dan tags: testrunner)
15:53
Renamed the SQLITE_SHELL_WASM_WEB_MODE to SQLITE_SHELL_FIDDLE, which seems to be more in line with project convensions and indicates that that flag is only intended for /fiddle mode, as opposed to arbitrary wasm-on-the-web use. (check-in: d1d019bfa2 user: stephan tags: trunk)
15:17
Fix another test case error message similar to those fixed in [b3d6b3c3]. (check-in: 6d0f677291 user: dan tags: trunk)
15:12
Update makefiles to fix building the non-amalgamation testfixture with SQLITE_DEBUG. (check-in: 1ca7056417 user: dan tags: branch-3.39)
15:10
Update makefiles to fix building the non-amalgamation testfixture with SQLITE_DEBUG. (check-in: d9c4a9d09b user: dan tags: trunk)
10:46
Fix a bug in wapptest.tcl introduced by [51255bad4c1fb607]. (check-in: b26d097e09 user: drh tags: trunk)
09:40
Renamed SQLITE_SHELL_WASM_MODE to SQLITE_SHELL_WASM_WEB_MODE and no longer automatically enable it if __EMSCRIPTEN__ is defined, in order to facilitate using Emscripten to build the shell for CLI-based WASM runtimes (which cannot make use of the web-specific user input changes). The fiddle build now explicitly passes the new flag on at compile-time. (check-in: ee059ad5a8 user: stephan tags: trunk)
07:13
Back out the pager performance enhancement at [a1c090e08139f99d3], because it turns out we should never allow a zero key into the pcache interface according to the design specs, even if that page is immediately released without ever being used. (check-in: ec96293ead user: drh tags: trunk)
2022-07-11
22:20
Add the --config option to wapptest.tcl. The argument is a glob pattern. All configurations must match the glob pattern in order to run. The default value is "*". (check-in: 51255bad4c user: drh tags: trunk)
21:40
Update the expected error messages in some OOM test cases to account for [44d77a7f807]. (check-in: b3d6b3c3fc user: dan tags: trunk)
19:48
Use 64-bit memory allocation APIs in the sqlite_stmt virtual table, to avoid harmless compiler warnings. (check-in: 4c40b38cbe user: drh tags: branch-3.39)
19:47
Use 64-bit memory allocation APIs in the sqlite_stmt virtual table, to avoid harmless compiler warnings. (check-in: afb9e60ee3 user: drh tags: trunk)
19:29
Fix harmless compiler warnings. (check-in: 9931bb202e user: drh tags: branch-3.39)
19:12
In the sqlite_stmt extension, store the result of strlen() in a 64-bit integer to avoid a compiler warning, even though we know that the length will always fit comfortably in 32 bits. (check-in: 3fe1945249 user: drh tags: trunk)
18:26
Fix harmless compiler warnings about unused debugging functions in treeview.c. (check-in: 4d6f907712 user: drh tags: trunk)
18:11
Back out the optimization at [1a8c2e54375ee2cf7] because there are some cases where it does not work. (check-in: fe39c8d5fd user: drh tags: trunk)
14:44
Increase the version number to 3.39.1. (check-in: 88b1b0327f user: drh tags: branch-3.39)
14:43
Ensure that the Parse.nErr flag is set following an SQLITE_TOOBIG error on a nested parse. Fix for the problem identified by [forum:/forumpost/d5a82ba9eedee30c | forum post d5a82ba9eedee30c]. Also, remove unnecessary clearing of the Parse.zErrMsg field following a nested parse. (check-in: eaef7b7190 user: drh tags: branch-3.39)
14:39
Fix a problem in fts3 to do with deferred tokens and OR expressions. (check-in: bbe999e345 user: drh tags: branch-3.39)
14:36
Ensure that the Parse.nErr flag is set following an SQLITE_TOOBIG error on a nested parse. Fix for the problem identified by [forum:/forumpost/d5a82ba9eedee30c | forum post d5a82ba9eedee30c]. Also, remove unnecessary clearing of the Parse.zErrMsg field following a nested parse. (check-in: 44d77a7f80 user: drh tags: trunk)
14:26
Fix a problem in fts3 to do with deferred tokens and OR expressions. (check-in: d0bfe5c574 user: dan tags: trunk)
2022-07-10
21:12
When an OOM occurs and sets the Parse.nErr value, also set the Parse.nErr value for all outer Parse objects. dbsqlfuzz d33f60aaa67733aa700cd69dacf8e0e23a327a29 (check-in: 9a494d2594 user: drh tags: trunk)
2022-07-08
20:03
Performance optimizations in the WHERE clause processing of the query planner. (check-in: 50c8e8de52 user: drh tags: trunk)
18:23
Omit an unnecessary structure initialization in whereLoopAddAll(), replacing it with an assert() to show that the initialization has already occurred, for a small performance increase and size reduction. (check-in: 27be9e9634 user: drh tags: trunk)
17:57
Size reduction and performance optimization in whereLoopAddBtreeIndex(). (check-in: 64d2312c12 user: drh tags: trunk)
16:56
In wherePathSolver(), defer initializing variables until they are actually needed, in case they are not needed. This gives a small performance increase. (check-in: 6f28a9652a user: drh tags: trunk)
15:06
Upgrade the TEA build system used to build the Tcl package. (check-in: ace65da8fa user: dan tags: trunk)
13:57
Fix typo in autoconf/tea/win/makefile.vc. (Closed-Leaf check-in: 094b2aadd5 user: dan tags: tea-upgrade)
11:55
Remove an obsolete statement from a comment. No changes to code. (check-in: 99afb3f41b user: drh tags: trunk)
11:21
Update options in the TEA package msvc makefile to match other builds. (check-in: d72e12b99d user: dan tags: tea-upgrade)
11:14
Update the build options used for the TEA package to match those used to build the binaries at download.html. (check-in: 9d6d9dba66 user: dan tags: tea-upgrade)
2022-07-07
22:59
Very small size reduction and performance increase in btree.c. (check-in: 9a7c031a82 user: drh tags: trunk)
21:04
Size reduction and performance increase in defragementPage() of btree.c. (check-in: 1b03f197b5 user: drh tags: trunk)
20:49
Upgrade the TEA build system in autoconf/tea/. To match tclconfig commit 20fe9e6f59 and Tcl Sample Extension be47fb0446. (check-in: 1531f73918 user: dan tags: tea-upgrade)
20:29
Size reduction and performance increase in the pageFindSlot() routine of btree.c. (check-in: 5d247e3856 user: drh tags: trunk)
20:11
Size reduction and performance increase in the freeSpace() routine of btree.c. (check-in: 7d7aed053f user: drh tags: trunk)
2022-07-06
23:50
Fix harmless compiler warnings seen with MSVC. (check-in: 61e2094afb user: mistachkin tags: trunk)
15:44
Avoid ignoring the last line of a csv file if the final field is empty and there is no trailing CFLS. Also have the csv extension treat the last line of a file in the same way as any other line if it is short fields. (check-in: 587795d47f user: dan tags: trunk)
13:59
Avoid dropping error codes in the xBegin() method of virtual table sqlite_dbpage. (check-in: 570e2bce59 user: dan tags: trunk)
2022-07-05
19:56
Fix for builds with both SQLITE_DEBUG and SQLITE_OMIT_WINDOWFUNC defined. (check-in: dfe46de2d4 user: dan tags: branch-3.39)
19:53
Fix for builds with both SQLITE_DEBUG and SQLITE_OMIT_WINDOWFUNC defined. (check-in: 77916947ce user: dan tags: trunk)
17:49
Fix a problem in the csv extension that was triggered when the very first field in the csv file is zero bytes in size. (check-in: b12ddabf07 user: dan tags: trunk)
10:40
Fix an assert() in btree to be more precise, as the previous form of that asser might fail due to recent performance optimizations. (check-in: 4774938134 user: drh tags: trunk)
2022-07-04
15:14
Size reduction and performance optimization in sqlite3WalFindFrame(). (check-in: 1a8c2e5437 user: drh tags: trunk)
09:41
In the getNormalPage() routine of pager.c, consolidate pgno error checking into a single spot for small size reduction and performance increase. (check-in: a1c090e081 user: drh tags: trunk)
2022-07-03
18:12
Enhance the REGEXP extension so that the end-of-input indicate ("$") is allowed to occur on one branch of an OR ("|"). [forum:/forumpost/0107d5d40dd273e2|Forum post 0107d5d40dd273e2], second issue. (check-in: 3c04d21e6c user: drh tags: trunk)
14:32
Fix the initial-prefix optimization for the REGEXP extension such that it works even if the prefix contains characters that require a 3-byte UTF8 encoding. This should fix the problem reported by [forum:/forumpost/96692f8ba5|forum post 96692f8ba5]. (check-in: 7a32ccccef user: drh tags: branch-3.39)
14:25
Fix the initial-prefix optimization for the REGEXP extension such that it works even if the prefix contains characters that require a 3-byte UTF8 encoding. This should fix the problem reported by [forum:/forumpost/96692f8ba5|forum post 96692f8ba5]. (check-in: c94595a6e1 user: drh tags: trunk)
11:16
Improved comment on sqlite3VdbeSwap(). No changes to code. (check-in: 6a8e4fb72a user: drh tags: trunk)
11:12
Remove debugging code that has always been commented out. Cosmetic change. (check-in: b54064170c user: drh tags: trunk)
2022-07-01
21:03
Do not attempt the OP_Count optimization on queries with HAVING clauses. This fixes a problem exposed by [2cf373b10c9bc4cb]. (check-in: 566b7842ee user: dan tags: trunk)
19:42
Performance improvement in resolveP2Values(). Save over 1 million CPU cycles by omitting the loop termination condition and exiting when the OP_Init (always the first opcode in any VDBE program) is encountered. (check-in: bb179140c8 user: drh tags: trunk)
12:09
In the sqlite_stmt virtual table, add two ALWAYS() macros on branches that have been come always true due to the [84a91c255e3d7772] optimization. <b>REVISED:</b> Dbsqlfuzz found a case where the ALWAYS() is false. (Closed-Leaf check-in: bf34eddb66 user: drh tags: mistake)
2022-06-30
22:46
Small performance improvement to sqlite3_finalize(). (check-in: 8a6913b66c user: drh tags: trunk)
14:19
Fix documentation and test-script typos and a dependency problem on a Makefile. Fix the sqlite_stmt extension virtual table so that it shows the state of all prepared statements for a single instant in time. (check-in: 0a9e08be6d user: drh tags: branch-3.39)
11:01
Add missing "finish_test" command to the end of test script merge1.test. (check-in: 13cb3f1e63 user: dan tags: trunk)
2022-06-29
15:16
Have the sqlite_stmt table buffer all data for the current scan within the xFilter method. (check-in: 84a91c255e user: dan tags: trunk)
2022-06-28
21:52
Merge latest fixes from begin-concurrent-pnu-wal2 branch. (Leaf check-in: 77fe737610 user: dan tags: begin-concurrent-report-wal2)
2022-06-27
21:43
Merge in fix for wal2 recovery. (Leaf check-in: 41d4f14bc6 user: dan tags: begin-concurrent-pnu-wal2)
21:42
Fix a problem causing false corruption reports following recovery of a *-wal file that contains one or more transactions and a *-wal2 file that contains a valid header but no valid transactions. (Leaf check-in: f6eafb65a4 user: dan tags: wal2)
11:28
Fix a missing dependency for json.lo in Makefile.in (check-in: 65930a5c06 user: drh tags: trunk)
2022-06-25
21:41
wasm: corrected the isInt32() check to account for negative values. (check-in: 7223f4bb58 user: stephan tags: wasm-cleanups)
20:32
Put an ALWAYS() on an unreachable branch. (check-in: 58caa50a41 user: drh tags: trunk)
19:43
Allow flattening of a subquery that is the right operand of a LEFT JOIN in an aggregate query as long as there is no GROUP BY clause. (The GROUP BY clause will interfere with the operation of the TK_IF_NULL_ROW expression nodes.) (check-in: 2cf373b10c user: drh tags: trunk)
19:30
Increase the version number to 3.40.0 so as to begin the next development cycle. (check-in: 4542e32302 user: drh tags: trunk)
19:07
wasm: added bindings for sqlite3_extended_result_codes(), sqlite3_open_v2(), and the SQLITE_OPEN_... flags. (check-in: ac876ab991 user: stephan tags: wasm-cleanups)
18:55
Fix documentation type. [forum:/forumpost/8d900996ed|forum post 8d900996ed]. (check-in: 869061f18d user: drh tags: trunk)
18:18
wasm: lots of doc additions and refactoring. Refactored the WASM memory heap usage to hopefully eventually account for a runtime-growable heap. Differentiate between supported TypedArray types for input SQL strings vs binding/fetching blobs. Might (untested) have implemented the ability to bind UtfNNArray values as blobs, where NN is one of 16 or 32. (check-in: e10d57dfba user: stephan tags: wasm-cleanups)
17:20
Merge version 3.39.0 into the reuse-schema branch. (Leaf check-in: bee9903df5 user: drh tags: reuse-schema)
17:08
Merge version 3.39.0 into the begin-concurrent-pnu-wal2 branch. (check-in: 09cfef38da user: drh tags: begin-concurrent-pnu-wal2)
16:53
Merge version 3.39.0 into the wal2 branch. (check-in: ad3a7005e7 user: drh tags: wal2)
16:43
Merge version 3.39.0 into the begin-concurrent-report branch. (Leaf check-in: 7726389cd5 user: drh tags: begin-concurrent-report)
16:24
Merge version 3.39.0 into the begin concurrent branch. (Leaf check-in: fb45624a31 user: drh tags: begin-concurrent)
14:57
Version 3.39.0 (check-in: 14e166f40d user: drh tags: trunk, release, major-release, version-3.39.0)
10:30
wasm: added utility C code to generate a JSON-format "enum" of the numerous SQLITE_xyz constants so that we do not risk those getting out of sync in the JS code. Renamed initSqlite3Module to sqlite3InitModule. Cleanups in the TypedArray handling. (check-in: 778062e3b4 user: stephan tags: wasm-cleanups)
07:42
wasm: eliminated the need for Stmt objects to keep ahold of memory allocated for bound strings and blobs. Added alternate string/blob bind impls which are hypothetically more efficient but not yet proven to be so. (check-in: da1d3151a4 user: stephan tags: wasm-cleanups)
06:46
wasm: eliminated the dependency on the deprecated emcc-provided allocate() function. Adjacent cleanups in blob binding. (check-in: 140618b212 user: stephan tags: wasm-cleanups)
03:53
wasm: corrected the propagation of text/blob values via UDFs. DB.exec()'s sql may now be an array of strings which get concatenated together before passing it on to sqlite3_prepare_v2(). DB.exec()'s callback now applies to the first statement which has result columns instead of only the first statement. Fixed a precedence but which caused isInt32() to report false positives. (check-in: 37a8fecb56 user: stephan tags: wasm-cleanups)
02:54
Minor wasm doc tweaks. (check-in: 42dc500819 user: stephan tags: wasm-cleanups)
02:39
Change a harmless assert() into a testcase(). The actually test case code is in TH3. Fix for the problem described at [forum:/info/ed29e196d5c4f3d5|forum post ed29e196d5c4f3d5]. (check-in: cd6254fcd3 user: drh tags: trunk)
02:37
wasm binding: consolidated the two sqlite3_prepare_v2() bindings behind a single dispathcer. Various internal cleanups and refactoring. Branched because trunk is in pencils-down mode for pending 3.39 release. (check-in: ab3e50dab4 user: stephan tags: wasm-cleanups)
2022-06-24
16:15
Merge the 3.39.0 release candidate 1 changes into the reuse-schema branch. (check-in: 506a3e6f24 user: drh tags: reuse-schema)
15:26
Merge the latest changes into the begin-concurrent-pnu-wal2 branch. (check-in: d3fa692179 user: drh tags: begin-concurrent-pnu-wal2)
15:15
Merge 3.39.0 release candidate 1 into the wal2 branch. (check-in: 5a5e6e368f user: drh tags: wal2)
15:04
Merge the version 3.39.0 release candidate 1 changes into the begin-concurrent-report branch. (check-in: 1b28ad2caa user: drh tags: begin-concurrent-report)
14:55
Merge 3.39.0 release candidate 1 changes into the begin-concurrent branch. (check-in: 5ae706a401 user: drh tags: begin-concurrent)
12:56
Fix a harmless UBSAN warning associated with PRAGMA schema_version found by OSSFuzz. (check-in: e93fd170ce user: drh tags: trunk)
11:05
In sqlite3WhereBegin, do not proceed with coding the loop if an error is detected as part of WHERE expression analysis. For for the assertion-fault described by [forum:/forumpost/c3496cf6b1|forum post c3496cf6b1]. (check-in: db5266dec6 user: dan tags: trunk)
11:02
A minor fix to test/fuzzinvariants.c so that it works even with column names that originally contain a ':' and that are disambiguated. (check-in: 8d9b1fff9d user: drh tags: trunk)
2022-06-23
22:43
New test cases for query flattening with LEFT JOIN. (Closed-Leaf check-in: 27f68e4732 user: drh tags: flatten-left-join)
20:56
Reintroduce flattener constraint (3c), but this time make it apply only if the outer query holds a GROUP BY, not if the outer query is an aggregate. (check-in: 641dfb9182 user: drh tags: flatten-left-join)
15:15
Add back the ability to flatten a LEFT JOIN subquery - previously removed due to ticket [cad1ab4cb7b0fc344]. (check-in: f8fe936ad4 user: drh tags: flatten-left-join)
12:36
Minor correction to a comment. No code changes. (check-in: 5fa00959eb user: drh tags: trunk)
2022-06-22
18:51
Enhance the TCL scrip that generates sqlite3-all.c so that it outputs all text in its original order. (check-in: 83ff1a28e3 user: drh tags: trunk)
18:33
Fix requirements marks that changed due to typo fixes in the documentation. (check-in: 5247df0599 user: drh tags: trunk)
15:55
More comment fixes. No changes to code. (check-in: 5c9133ef43 user: drh tags: trunk)
14:43
Allow more line with on the debugging output for SrcItem elements in the parse tree. This affects debugging builds only and is a no-op for production builds. (check-in: edbe24e7fc user: drh tags: trunk)
14:25
Additional enhancements to comments. No changes to code. (check-in: d9a320448f user: drh tags: trunk)
14:00
Give dbtotxt an option to prepend .open --hexdb (check-in: afeee6125d user: larrybr tags: trunk)
12:54
Fix a typo in a comment. No changes to code. (check-in: ef9de201b3 user: drh tags: trunk)
2022-06-21
18:38
Disable the short-cut query planner if the NOT INDEXED modifier is used. [forum:/forumpost/454d706296|Forum post 454d706296]. (check-in: bd87d107fe user: drh tags: trunk)
13:41
Allow a HAVING clause on any aggregate query, even if there is no GROUP BY clause. This brings SQLite into closer agreement with PostgreSQL and fixes the concern raised by [forum:/forumpost/1a7fea4651|forum post 1a7fea4651]. (check-in: 9322a7c21f user: drh tags: trunk)
12:54
<s>When doing a push-down of a WHERE clause into an aggregate subquery that has no FROM clause, do not convert the WHERE clause into a HAVING clause as should normally be done for an aggregate, but leave it as a WHERE clause.</s> We will use a different approach to address [forum:/forumpost/1a7fea4651|forum post 1a7fea4651]. (Leaf check-in: 1f57584102 user: drh tags: backout)
2022-06-20
19:12
Add an ALWAYS() macro to an always-true branch. (check-in: 364645d8fe user: drh tags: trunk)
18:26
Do not allow FROM-clause terms on the left side of a RIGHT or FULL JOIN to be reordered. [forum:/forumpost/6650cd40b5634f35|forum post 6650cd40b5634f35]. This is probably more strict that necessary to get correct behavior, but for the first release that supports RIGHT/FULL JOIN it is perhaps better to be correct than fast. A less strict constraint might be to prohibit FROM-clause terms that originate on the left side of a RIGHT JOIN from crossing from the right side to the left side of a LEFT JOIN. Revisit this later. (check-in: 238453ffab user: drh tags: trunk)
17:04
Do not allow an ON clause to references tables to its right if there is a RIGHT or FULL join anywhere in the query. Other RDBMSes prohibit this always, but SQLite must allow ON clauses to reference tables to their right for legacy compatibility, unless there is a RIGHT or FULL join someplace in the query, in which case there is no legacy to support. (check-in: e615dbe02c user: drh tags: trunk)
12:42
The fix at [cab9b4cccd13bf0a] was incomplete, as demonstrated by [forum:/forumpost/57bdf2217d|forum post 57bdf2217d]. This check-in should complete the fix. (check-in: fb0a23b678 user: drh tags: trunk)
2022-06-19
16:55
Follow-up to check-in [0057bbb508e7662b] - ensure that the database page has been initialized prior to continuing with the optimization. If the page is not initialized, that indicates that the database is corrupt. dbsqlfuzz 09ee46becd5e6d1b2a55c9f8ad767335a90aadb0. (check-in: 11162446f1 user: drh tags: trunk)
2022-06-18
20:20
Enable query invariant checking in fuzzcheck by default. There is no way to turn it off. Update the invariant checking logic to be consistant with dbsqlfuzz. (check-in: 66ca729bbb user: drh tags: trunk)
14:50
Abandon a query-invariant check in fuzzcheck if the call to sqlite3_bind_value() returns anything other than SQLITE_OK or SQLITE_RANGE. (check-in: d31e1cd2ab user: drh tags: trunk)
10:26
In the --query-invariants option of fuzzcheck, correctly deal with OOMs causing the return value of sqlite3_column_name() to be NULL. (check-in: eabbee4a51 user: drh tags: trunk)
2022-06-17
21:31
Fix the OP_Concat operator such that when concatenating a BLOB with an odd number of bytes on a database that is UTF16, the size of the resulting string is reduced to a multiple of two. (check-in: 5eb2c23635 user: drh tags: trunk)
17:11
Omit the --query-invariants processing in fuzzcheck for queries that contain the implies_nonnull_row() test function. (check-in: 0602a08448 user: drh tags: trunk)
16:52
Do not run --query-invariants on statements that make use of sqlite_offset(). (check-in: c5ac4cbfb1 user: drh tags: trunk)
16:39
Various fixes and improvements to the --query-invariants option of fuzzcheck. (check-in: 09aca89b7c user: drh tags: trunk)
16:32
Allow integers and floating point numbers to compare equal. (Closed-Leaf check-in: 0fe2e465ba user: drh tags: query-invariants)
16:09
Improve query-invariants to the point that it would have discovered the [f23a429d4153518d] bug if that bug had not already been fixed. (check-in: 2a7251ed9c user: drh tags: query-invariants)
15:52
Only run query-invariant checks after the original query has run to completion, so that we know it does not error-out on a subsequent row. (check-in: d1fc857bb8 user: drh tags: query-invariants)
15:11
Fix the virtual table detection mechanism to avoid false-positives that were blocking all failures. Then fix a few of the additional problems that are revealed by that fix. More fixes are needed. (check-in: 42b2e6676f user: drh tags: query-invariants)
12:25
Fix the new --query-invariants option on fuzzcheck so that it does not use an unprotected sqlite3_value object as an argument to sqlite3_value_int64(). (check-in: d9f820151d user: drh tags: trunk)
11:39
Avoid omitting the rhs of FULL JOINs in cases where it is only correct to omit the rhs of a LEFT JOIN. Fix for the problem reported by [forum:/forumpost/5610c17c3d|forum post 5610c17c3d]. (check-in: f23a429d41 user: dan tags: trunk)
00:24
Tiny fiddle cleanups. (Closed-Leaf check-in: 01969ba568 user: stephan tags: fiddle-indexeddb)
2022-06-16
23:55
fiddle: initial proof of concept of using Emscripten's IndexedDB virtual filesystem for a persistent db. There's still much work to do to integrate this into something useful for clients but the concept is now proven. (check-in: 65c152d335 user: stephan tags: fiddle-indexeddb)
20:29
Minor fix to the query invariant testing logic of fuzzcheck. (check-in: 447e62a094 user: drh tags: trunk)
13:57
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 7f405fe209 user: drh tags: reuse-schema)
13:56
Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 82e7e83601 user: drh tags: begin-concurrent-pnu-wal2)
13:44
Merge the latest trunk enhancements into the wal2 branch. (check-in: c8ad869938 user: drh tags: wal2)
13:44
Merge the latest trunk enhancements into the begin-concurrent-report branch. (check-in: 8b446d0b85 user: drh tags: begin-concurrent-report)
13:37
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 221e07ed78 user: drh tags: begin-concurrent)
2022-06-15
20:18
Improvements to query invariants in fuzzcheck. (check-in: 3a461f61b4 user: drh tags: trunk)
16:26
Improvements to query invariant checking in fuzzcheck. (check-in: 56c60a35ea user: drh tags: trunk)
14:57
When running an incremental vacuum, detect growth in the size of the database file (which can only occur if the file is corrupt) and fail with SQLITE_CORRUPT. (check-in: cd7a441245 user: drh tags: trunk)
12:50
Add the --query-invariants option to fuzzcheck. No changes to the SQLite core. (check-in: fef282f9fb user: drh tags: trunk)
12:32
Dbsqlfuzz discovered a case where a bytecode branch is in fact taken, so change the designator from VdbeCoverageNeverTaken() to VdbeCoverage(). Test case in TH3. (check-in: 988a2a759f user: drh tags: trunk)
10:46
Add the --query-invariants flag to fuzzcheck. The query invariant checks are only run if that flag is enabled. (Closed-Leaf check-in: d13b462129 user: drh tags: query-invariant-tests)
10:37
Improvements to query invariant testing. Almost working now. (check-in: e039820418 user: drh tags: query-invariant-tests)
2022-06-14
22:21
Fix the OP_NullRow opcode so that it works even if it applied to an ephemeral cursor that has not yet been created. (check-in: 0e925654c2 user: drh tags: trunk)
21:34
Add missing SQLITE_FCNTL_SIZE_HINT call to a path taken during transaction rollback. (check-in: 6c3266c1b4 user: dan tags: trunk)
19:12
Attempt to enhance fuzzcheck to do some simple invariant testing on queries. This is an incremental check-in for a work-in-progress. (check-in: ce2d780163 user: drh tags: query-invariant-tests)
2022-06-13
12:42
Do not remove the EP_CanBeNull flag from expressions during a LEFT JOIN strength reduction if the query also contains a RIGHT JOIN. Fix for the problem identified by [forum/forumpost/b40696f50145d21c|forum post b40696f50145d21c]. (check-in: b1be2259e2 user: drh tags: trunk)
2022-06-10
16:41
The same restrictions on the use of WHERE clause terms to drive indexes in the presence of RIGHT JOINs also apply to the use of WHERE clause terms to manufacture automatic indexes. This fixes a problem identified by [forum:/forumpost/51e6959f61|forum post 51e6959f61]. (check-in: 342c501f53 user: drh tags: trunk)
15:43
fiddle: minor style tweaks, including using swapped colors for the input/output fields to help (hopefully) reduce the "which field is which?" dissonance. (check-in: e25dad868f user: stephan tags: trunk)
11:28
Do not allow constant propagation between WHERE-clause terms and ON-clause terms as this can confuse RIGHT JOIN. Fix for the problem reported by [forum:/forumpost/8e4c352937e82929|forum post 8e4c352937e82929]. (check-in: cab9b4cccd user: drh tags: trunk)
10:10
Fix a faulty assert() statement identified by [forum:/forumpost/0b91a75039|forum post 0b91a75039]. (check-in: 1f132bb03a user: drh tags: trunk)
09:31
fiddle: modernized the UI based on related code in fossil's /pikchrshow. Changed the color scheme to match sqlite.org. (check-in: c4523ffcc0 user: stephan tags: trunk)
2022-06-09
20:26
Do not allow the subtype of a value to cross a subquery boundary. This fixes the problem identified by [forum:/forumpost/3d9caa45cbe38c78|forum post 3d9caa45cbe38c78]. (check-in: bbaf1f2eb1 user: drh tags: trunk)
17:17
Prevent subtype values from slipping across a subquery boundry when the subquery is implemented as a co-routine. (Closed-Leaf check-in: 9e51a6c0fb user: drh tags: subtype-subquery)
16:19
The subtype of a value should not propagate across a subquery boundary. Proposed fix for the problem reported by [forum:/forumpost/3d9caa45cbe38c78|forum post 3d9caa45cbe38c78]. Additional works is needed as not all cases are covered. (check-in: 08af1fe27e user: drh tags: subtype-subquery)
2022-06-08
18:29
Move an #ifdef in shell.c to avoid a harmless "unused function" compiler warning. (check-in: 5abb5ef500 user: drh tags: trunk)
18:20
Avoid zeroing the value returned by sqlite3_changes() when a DML statement is automatically reprepared in sqlite3_step(). (check-in: 09c8f9f197 user: dan tags: trunk)
17:48
Improved comments on the new query flattener restriction of the previous check-in. Also a NEVER() macro on an unreachable branch. (check-in: 8c9e2d6315 user: drh tags: trunk)
15:38
Fix the query flattener so that it refuses a flattening that might leave both an inner-join and outer-join ON-clause constraint (or equivalent) on the same term of the FROM clause. (check-in: f6c4fb48b6 user: drh tags: trunk)
15:30
Add restriction (29) to the query flattener - do not allow flattening that would leave both EP_InnerON and EP_OuterON constraints on the same join term. (Leaf check-in: c585d6a467 user: drh tags: right-join-query-flattener)
13:13
New test cases refute check-in [3f45007d544e5f78]. (check-in: 12d3c96c39 user: drh tags: right-join-query-flattener)
12:46
Do not allow a partial index scan on the left table of a RIGHT JOIN, because since the index is partial, some rows will be omitted from the scan, and those rows will subsequently be picked up by the no-match logic in the right-join post-processing loop. [forum:/forumpost/c4676c4956|forum post c4676c4956]. (check-in: 615c002611 user: drh tags: trunk)
12:35
Minor fix to test/index9.test so that it can be invoked with other index tests using a wildcard. (check-in: ccbd6e7749 user: drh tags: trunk)
12:20
Update the routine that determines whether or not a partial index can be used so that it is not specific to LEFT JOIN. (check-in: 5a107fd7fa user: drh tags: trunk)
2022-06-07
13:09
Fix the query flattener to deal with a RIGHT JOIN corner case described by [forum:/forumpost/323f86cc30|forum post 323f86cc30]. (check-in: 3f45007d54 user: drh tags: trunk)
11:02
Test cases for [forum:/forumpost/323f86cc30|forum post 323f86cc30] added to join8.test, though commented out so that they do not (yet) run. (check-in: 7f97cb67d0 user: drh tags: trunk)
10:14
Preserve the database encoding on the CAST operator in the sqlite3ValueFromExpr() routine. [forum:/forumpost/800eecf5e6cdc3f4|Forum thread 800eecf5e6cdc3f4]. Test case in TH3. (check-in: 3f6a442099 user: drh tags: trunk)
2022-06-06
23:22
More precise determination of when a WHERE clause can be used to drive an index on an outer join. (check-in: 318543a911 user: drh tags: trunk)
22:33
More precise determination of when a WHERE/ON clause term can be used as an indexed join constraint. Testcase macros added to ensure test coverage. (Closed-Leaf check-in: f419e98c51 user: drh tags: outer-join-tests)
21:08
Extra test cases for outer joins. (check-in: c750576528 user: dan tags: outer-join-tests)
15:27
Do not allow a WHERE clause constraint to be used to drive an index for the right operand of a RIGHT JOIN, since this can cause problem if the constraint implies a not-NULL value for one of the columns for the left operand of the same join. See [forum:/forumpost/206d99a16dd9212f|forum post 206d99a16dd9212f]. (check-in: 4a31b7942a user: drh tags: trunk)
15:22
In CLI, drop .dbinfo command when build options prevent it from working. (check-in: 4b50a55165 user: larrybr tags: trunk)
14:00
Sync w/trunk, pickup fts3corrupt6.test change. (Closed-Leaf check-in: 268072f636 user: larrybr tags: dbinfo-guard)
06:29
fiddle: replaced the huge file selection widget with a smaller proxy button. (check-in: f7c17449ea user: stephan tags: trunk)
06:17
Fix a test case in fts3corrupt6.test. Was failing due to [f1dfbc4f]. (check-in: 04b2e47784 user: dan tags: trunk)
04:09
shell: in WASM mode, permit ATTACH because the filesystem is a virtual sandbox and ATTACH can be used to provide more import/export options. Minor doc updates in sqlite3-api.js. (check-in: f28de5b726 user: stephan tags: trunk)
2022-06-05
22:58
In CLI, drop .dbinfo command when build options prevent it from working. (check-in: 2512d2f68d user: larrybr tags: dbinfo-guard)
22:40
Create new branch named "dbinfo-guard" (check-in: 8d942ba72e user: larrybr tags: dbinfo-guard)
2022-06-03
14:08
Fix to test case in fts3corrupt.test. No changes to source code. (check-in: d18818afc6 user: dan tags: trunk)
13:52
Fix a 1-byte overread in fts3 that could occur when processing corrupt records. (check-in: f1dfbc4f74 user: dan tags: trunk)
2022-06-02
16:26
Fix a problem with flattening and window functions causing an "IS <column>" to be transformed to "IS TRUE" or "IS FALSE" when <column> is a view or sub-select expression that is the literal value "TRUE" or "FALSE". (check-in: 2a952c7738 user: dan tags: trunk)
02:45
Avoid a direct use of abort() in debug builds to prevent a compilation issue for Windows CE. (check-in: 8eb9a7dd07 user: mistachkin tags: trunk)
2022-06-01
20:08
New test cases for row values and RIGHT JOIN. (check-in: 5f0582b90f user: drh tags: trunk)
16:05
Ensure that subqueries associated with row-values are invoked before being used when processing a RIGHT JOIN. Fix for the problem described by [forum:/forumpost/087de2d9ec87305b|forum post 087de2d9ec87305b]. (check-in: 5a9465dcc0 user: drh tags: trunk)
16:04
fiddle: added another UI element to the list of those which are disabled during long-running activities. Added DB.close() binding to the Worker-based wasm binding. (check-in: 5933163ed1 user: stephan tags: trunk)
15:53
Ensure that all necessary row-value subqueries are invoked while running the right-join post processing. (Closed-Leaf check-in: e4e71b4cd4 user: drh tags: row-value-right-join)
14:52
Minor tweaks to, and consolidation of, the wasm-related build flags. (check-in: f0ad6b1b32 user: stephan tags: trunk)
14:32
Fix a minor problem in the Tcl "incrblob" command. This does not affect the SQLite core. (check-in: e96feccc21 user: dan tags: trunk)
13:32
Candidate fix for the problem with row-value WHERE clause constraints on a RIGHT JOIN. (check-in: fdd782a7bb user: drh tags: row-value-right-join)
13:32
Only include the code for sqlite_offset() if compiled with -DSQLITE_ENABLE_OFFSET_SQL_FUNC. (check-in: 382cd7e10b user: drh tags: trunk)
13:01
Fix a typo in a comment in a test case. No changes to code. (check-in: 570efa45dd user: drh tags: row-value-right-join)
11:58
Additional enhancements to the test cases. (check-in: 55cfad74ca user: drh tags: row-value-right-join)
11:46
Fix test cases in the previous check-in to make them postgres-compatible. (check-in: f223ba72b6 user: drh tags: row-value-right-join)
11:43
Test case for [forum:/forumpost/087de2d9ec|forum post 087de2d9ec] showing a problem when a row-value constraint is used with RIGHT JOIN. (check-in: d1e3e0d26e user: drh tags: row-value-right-join)
11:20
The Worker-specific variants of the most significant DB-class JS bindings are implemented, most notably various uses of DB.exec(). (check-in: 371d6f7497 user: stephan tags: trunk)
11:05
Move the sqlite_offset() function implementation to be an in-line function, thereby avoiding special case code and freeing up a bit in the FuncDef.flags field. (check-in: 1c9812c458 user: drh tags: trunk)
08:09
Initial proof of concept code for a JavaScript binding which runs in the main window thread but acts on a db handle running in a Worker thread. Expanded the DB.exec() and DB() constructor to simplify certain use cases. (check-in: d9efe3e92d user: stephan tags: trunk)
00:00
Initial bits for a JS API variant in which the client operates in the main thread and sqlite3 in a Worker. This is far from complete. (check-in: f6d6f96979 user: stephan tags: trunk)
2022-05-31
18:18
New FULL JOIN test cases. No changes to code. (check-in: 13e89ef664 user: drh tags: trunk)
17:24
More JOIN test cases inspired by the problem fixed in [3869fd9a2b9483cb]. (check-in: f2d224c5fa user: drh tags: trunk)
15:18
Fix an assert that is incorrect for a corrupt database. (check-in: fe0a840805 user: drh tags: trunk)
14:19
Many new PG-confirmed test cases in joinD.test. (check-in: 481e89c764 user: drh tags: trunk)
11:22
Restore an ON-clause test case (removed by [3869fd9a2b9483cb]) that turns out to be necessary for correct operation. Fix for [forum:/forumpost/c2554d560bac97c5|forum post c2554d560bac97c5]. (check-in: f407ec678f user: drh tags: trunk)
11:13
Add back in a test case for ON-clauses that was removed yesterday by [3869fd9a2b9483cbf] but which turned out to be necessary after all. (Closed-Leaf check-in: aba52a90ee user: drh tags: right-join-bug-20220531)
10:48
Add test cases for [forum:/forumpost/c2554d560bac97c5|forum post c2554d560bac97c5]. (check-in: e66d5ae86c user: drh tags: right-join-bug-20220531)
02:03
Updated the wasm builds to generate gzip'ed copies of relevant files to take advantage of althttpd's new capability of substituting gzip files in place of requested files. This cuts over-the-wire size of the fiddle app by more than half. (check-in: 40925585f1 user: stephan tags: trunk)
2022-05-30
17:33
For an outer join, then ON-clause constraints need to be evaluated at just the right moment - not too early and not too late. Fix for the problem reported by [forum:/forumpost/3902c7b833|forum post 3902c7b833]. (check-in: 3869fd9a2b user: drh tags: trunk)
2022-05-28
15:01
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 4d46296ef6 user: drh tags: reuse-schema)
14:51
Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 4d65f45b31 user: drh tags: begin-concurrent-pnu-wal2)
14:44
Merge the latest trunk enhancements into the wal2 branch. (check-in: 934656f13d user: drh tags: wal2)
14:32
Merge the latest trunk enhancements into the begin-concurrent-report branch. (check-in: 034d2c511a user: drh tags: begin-concurrent-report)
14:25
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: d6f6ee5cbc user: drh tags: begin-concurrent)
14:03
Apply the UPDATE-FROM file from check-in [98b3816bbaf539ea] to update-delete-limit builds. (check-in: 7e87892c24 user: drh tags: trunk)
11:59
fiddle: changed the internal key of the session/local storage to avoid conflicts with the pikchr fiddle app (which is derived from this one) when running from the same HTTP origin as an instance of that app in a dev environment. (check-in: fd668da5cc user: stephan tags: trunk)
11:29
fiddle: corrected a piece of far-corner-case error handling and made the various checkbox config options persistent. (check-in: 2ba429a4f8 user: stephan tags: trunk)
2022-05-27
18:06
Mark an always-true conditional as ALWAYS(). (check-in: 3492fe8a21 user: drh tags: trunk)
17:36
Minor simplification to ALTER TABLE logic. (check-in: 01beb0365c user: drh tags: trunk)
17:13
Corrected a broken HTML comment (was using a C-style comment closer). (check-in: db742e3e7d user: stephan tags: trunk)
15:33
Fix another problem with ALTER TABLE and UPDATE...FROM in triggers. (check-in: 33cf12235e user: dan tags: trunk)
15:04
Fix further issues with ALTER TABLE and triggers that contain UPDATE..FROM statements. (check-in: 53fbc269dd user: dan tags: trunk)
14:41
Omit an unnecessary branch. (check-in: f56473f9cc user: drh tags: trunk)
03:27
fiddle: added an option to completely wipe/reset the db. The Options area can now be toggled on/off via tapping the label at its top. Running the input SQL is now limited to the selected area if any text is currently selected, per suggestion in the forum. (check-in: d100283e37 user: stephan tags: trunk)
2022-05-26
19:10
Fix issues with ALTER TABLE and triggers containing "UPDATE...FROM" statements. (check-in: 2fba0d41b7 user: dan tags: trunk)
17:33
Correct handling of outer joins in the FROM clause of an UPDATE statement that occurs inside of a trigger. Follow-on to [98b3816bbaf539ea]. (check-in: 664a49fa81 user: drh tags: trunk)
14:46
Clarification of the meaning of the N parameter in sqlite3_db_name(). Documentation only. No changes to code. (check-in: f22f41d2c8 user: drh tags: trunk)
05:18
Fixed a minor cut/paste mistake in the previous checkin. Affects only internal docs. (check-in: 37e3764839 user: stephan tags: trunk)
05:08
Makefile.in: added explanations, intended for maintainers and hackers, of the various emcc flags used for building the wasm files. No code or build rule changes. (check-in: 1a15915909 user: stephan tags: trunk)
2022-05-25
13:10
Slight increase in the accuracy of log10(). (check-in: c48a735bd4 user: drh tags: trunk)
12:49
Do not allow the right operand of a RIGHT JOIN to be reordered with other FROM clause terms that are even further to the right. Fix for the issue identified by [forum:/forumpost/5cfe08eed6|forum post 5cfe08eed6]. (check-in: 4be0c60e38 user: drh tags: trunk)
11:17
Add in a VdbeCoverage() macro accidentally omitted from [d64ae49a1f251317]. (check-in: 18b5cea039 user: drh tags: trunk)
11:09
Fix the UPDATE-FROM logic so that it works the same as PostgreSQL when the FROM clause contains an outer join. (check-in: 98b3816bba user: drh tags: trunk)
08:51
Got the sqlite3-api JS bits wrapped up in deferred-load module. Whether that's going to be easier to use, in practice, remains to be seen. Consolidated two of the test-related JS files. (check-in: dd83cc05f2 user: stephan tags: trunk)
04:38
Renamed EXPORTED_FUNCTIONS.sqlite3 to EXPORTED_FUNCTIONS.sqlite3-api to avoid any potential confusion about that file (not) being an sqlite3 database. (check-in: 3d6245c6f9 user: stephan tags: trunk)
04:35
Add the ability to import/export db files into/from fiddle. (check-in: e0c30438a4 user: stephan tags: trunk)
04:20
Further minor cleanups and docs in the fiddle app and worker. (Closed-Leaf check-in: 199e01799d user: stephan tags: fiddle-local-db)
03:08
fiddle: refactored so that it no longer exposes any global symbols. Doing so with the main sqlite3.api module will be much tricker. (Edit: it _does_ export a global symbol, but it's the function to init the module instead of the module itself. Not sure that's any cleaner.) (check-in: cd227be805 user: stephan tags: fiddle-local-db)
02:32
An attempt to get UPDATE FROM working when the FROM clause contains a RIGHT or FULL JOIN. (Closed-Leaf check-in: a124e4f96f user: drh tags: update-from-right-join)
2022-05-24
22:16
fiddle: added support for exporting (downloading) the current db file. To do this we had to fall back to named dbs, instead of defaulting to an in-memory one, but the virtual filesystem is an in-memory FS, so the end effect is the same. (check-in: 7c7fd34c8a user: stephan tags: fiddle-local-db)
19:01
fiddle: initial work on loading a client-side db file. Works but requires some cleanup. Export is not yet implemented. (check-in: 0fa8378c00 user: stephan tags: fiddle-local-db)
16:05
When an ON clause on an INNER JOIN references a table to the right of of the join, just convert the ON clause to an ordinary WHERE clause term, in order to be compatible with older versions of SQLite. See [forum:/forumpost/687b0bf563a1d4f1|forum thread 687b0bf563a1d4f1] for details. (check-in: 2b6ebba26d user: drh tags: trunk)
14:45
Use more descriptive var names in ext/fiddle/Makefile. (check-in: 2f9a42fb14 user: stephan tags: trunk)
14:36
fiddle: lots of generic refactoring, restructuring, and cleanup in the higher-level code. Added push-fiddle ext/fiddle/Makefile target to push the fiddle app to a remote server via rsync. (check-in: ed19fef345 user: stephan tags: trunk)
01:15
wasm/JS: minor doc updates, corrected bind()ing of the undefined value to behave as documented, removed some superfluous code. (check-in: 526c8c7280 user: stephan tags: trunk)
00:35
wasm/JS: documented DB.selectValue() and corrected the fetching of NULL columns via Stmt.get(). (check-in: 70f91fab82 user: stephan tags: trunk)
00:22
wasm/JS: added support for scalar UDFs. Fixed a deallocation problem with bind()ed strings/blobs. (check-in: 325a9ee31a user: stephan tags: trunk)
2022-05-23
19:38
wasm: minor refactoring and doc updates. (check-in: 6044605b2a user: stephan tags: trunk)
16:54
fiddle: cleaned up and documented the status-loading progress mechanism in prep for reusing it in the sqlite3-api worker. (check-in: 107e349786 user: stephan tags: trunk)
13:55
wasm: added missing 'use strict' and fixed an undeclared var use caught by that. (check-in: c16a7f4950 user: stephan tags: trunk)
13:52
wasm: corrected isSupportedBindType() to behave as documented. (check-in: 7e2d2e8072 user: stephan tags: trunk)
12:37
New test cases to further demonstrate the difference in name matching rules for LEFT JOIN versus RIGHT JOIN that protect legacy behavior. [forum:/forumpost/e90a8e6e6fa652ac|Forum thread e90a8e6e6fa652ac]. (check-in: 2c586060a0 user: drh tags: trunk)
11:51
Add an assert() to clear a harmless static-analyzer warning. (check-in: 919ba2f047 user: drh tags: trunk)
10:57
Do not run the subroutine that materializes a view or subquery until just before the materialization is actually needed, so that if the materialization turns out to never been needed, unnecessary work can be avoided. (check-in: d64ae49a1f user: drh tags: trunk)
01:11
WASM: removed the in64-related bindings, as MDN says that calling a wasm function which has an int64 type in its signature will currently throw because JS has no 64-bit integer support. Those bindings now use doubles and simply hope that the user doesn't exceed their integer precision (2^53-1, approx 9 quadrillion). (check-in: 392e848282 user: stephan tags: trunk)
2022-05-22
22:10
WASM: an arg handling fix for DB.exec({multi:true...}). (check-in: 0d6332f706 user: stephan tags: trunk)
22:00
WASM: added exec(), execMulti(), and several getters. Various touchups and fixes. (check-in: b790c91b85 user: stephan tags: trunk)
19:09
Implemented Stmt.get() and friends for WASM OO #1 wrapper. Added basic tests for prepare/step/get. Restructured module init output to introduce only 1 global-scope symbol instead of 2. (check-in: 601dc3fa29 user: stephan tags: trunk)
16:25
WASM: added bindings for sqlite3_compileoption_get/used(), moved OO #1 into sqlite3-api.js since it can only be used from the same thread as that API and separating them complicates client-side use. Started adding test utilities and tests for the OO1 API. (check-in: f3bc0328c8 user: stephan tags: trunk)
14:07
WASM OO wrapper #1: prepare() and bind() APIs are in place but are untested, pending fetch/get APIs. (check-in: 84c8f63a1c user: stephan tags: trunk)
00:27
Build refactoring for the fiddle/wasm bits. Set up wasm binding of a chunk of the core C API and added some infastructure for creating test pages for it. (check-in: dea098b64e user: stephan tags: trunk)
2022-05-21
21:13
Minor fiddle-related build restructuring to support upcoming development of the C-style wasm sqlite3 interface, plus some commentary about the plans and goals for that. (check-in: c7cfdd4c36 user: stephan tags: trunk)
18:03
Defer materializing a view or subquery until the materialization is actually needed, so that if it is not needed, not useless work is performed. (Closed-Leaf check-in: 16bf350683 user: drh tags: deferred-materialize)
15:54
Fix a typo in a comment. (check-in: 34d7045b2c user: drh tags: deferred-materialize)
15:12
Use the newer OP_BeginSubrtn opcode instead of OP_Integer to start the subroutine used to matrialize a view. This does not change execution but does make the byte code a little easier to read. (check-in: cebd4fd606 user: drh tags: deferred-materialize)
14:19
fiddle: refactor into main thread (UI) and worker thread (wasm module). Added bits needed to support triggering sqlite3_interrupt() but do not yet have a second SharedWorker to test it with. (check-in: 5ff3326856 user: stephan tags: trunk)
00:45
fiddle: add a selection list of example queries. (check-in: 74abf03977 user: stephan tags: trunk)
00:01
In the shell WASM build, call open_db() early so that we can get access to the global db handle from certain experimentation-only function without having to first run some SQL code. (check-in: 31706ef851 user: stephan tags: trunk)
2022-05-20
13:50
Added the standard sqlite license header to the the fiddle JS files. Minor internal renamings in those same files. (check-in: 67e40d99ff user: stephan tags: trunk)
13:27
Add a terminal-style view to the fiddle app, based on jquery.terminal. (Leaf check-in: 82b57f2e21 user: stephan tags: fiddle-terminal-view)
2022-05-19
22:04
#if'd out the '.nonce' and '.check' commends in WASM builds. (check-in: 326f79ea54 user: stephan tags: trunk)
21:56
#if'd out the the '.cd' and '.clone' commands for WASM builds. (check-in: fa391868dd user: stephan tags: trunk)
18:14
fiddle: consolidated two duplicate CSS rules. Internal doc typo fix. (check-in: d3175a793f user: stephan tags: trunk)
17:47
Added a disclaimer about fiddle's experimental and subject-to-change/removal nature. (check-in: 75b4f57408 user: stephan tags: trunk)
16:59
Merge the changes to support the "fiddle" extension. (check-in: 58585f01aa user: drh tags: trunk)
16:49
When building fiddle from its own directory (e.g. from emacs instead of the normal build process), force -O0 the sake of compilation speed. The top-level build now defaults to -Oz, which is more appropriate for that case. (Closed-Leaf check-in: 56b82ae806 user: stephan tags: fiddle)
16:42
Tweaks to the fiddle make target so that it builds with all of the same extensions as the standard CLI. (check-in: d46a6cb974 user: drh tags: fiddle)
16:30
Added a toggle to swap input/output field positions and simplified setup of checkboxes which toggle a CSS class on a given element. (check-in: eae3ab10c8 user: stephan tags: fiddle)
16:11
Default to top/bottom layout with input on the bottom. Offer a toggle to swap input/output positions. (check-in: 362d236aca user: stephan tags: fiddle)
15:58
Numerous layout tweaks, the most significant being that the layout now adapts to the window size. Swapped positions of the input/output areas. This version supports, by uncommenting a few bits, a jquery.terminal-based view but alternatives to that 300kb dependency are still under investigation. (check-in: 1aad3642c9 user: stephan tags: fiddle)
10:58
fiddle make target now accepts fiddle_cflags=... from the CLI to overrid -Ox and such for one-off builds. (check-in: 4609a4f862 user: stephan tags: fiddle)
10:38
Ensure that the output area is cleared of any init-time messages which the emscripten bootstrapping process emits when downloading of the wasm module is slow. (check-in: 1d8d059357 user: stephan tags: fiddle)
10:24
#if'd out the '.log' command in WASM builds. Cleaned up the user-visible parts of the WASM module initialization. (check-in: b5fa12f824 user: stephan tags: fiddle)
09:55
Split the fiddle JS code into separate pre-/post-init files to simplify editing. emcc will combine these into the final fiddle.js, so the number of output deliverables does not change. (check-in: d3d8ea0118 user: stephan tags: fiddle)
09:22
Added an option to auto-clear the output area before submitting the input. Experimentally inverted the colors in the input/output areas. (check-in: 1a1e4e7fdb user: stephan tags: fiddle)
01:12
Replaced the toggle for the notes/caveats section of the fiddle UI with a button to remove that section. (check-in: 6661d60527 user: stephan tags: fiddle)
00:38
#if'd out the '.import' command in WASM builds. Several minor cosmetic UI tweaks. (check-in: e4f87eb7c3 user: stephan tags: fiddle)
2022-05-18
23:40
#if out the '.load' command in WASM builds. Several UI layout tweaks. (check-in: 67d98297f0 user: stephan tags: fiddle)
22:58
In wasm builds, ifdef out shell commands which require file I/O, pipes, or which trigger an exit() (.quit and .exit). Documented some of the quirks and limitations of the C/WASM crossover. Keep the JS code from calling into the C code after an exit() has been triggered. (check-in: bee436e62a user: stephan tags: fiddle)
21:18
Improved handling/reporting of conditions which trigger an exit() from native code, e.g. calling the '.read' command. Added a Help button which simply submits the '.help' command. Added commented-out variants of various -Ox flags to simplify experimenting with them. (check-in: bf06ddf412 user: stephan tags: fiddle)
20:44
Experimental code to provide a SIZE_HINT when writing the -wal file. (Leaf check-in: 3b29080dbf user: drh tags: wal-size-hint)
18:10
Code style fixes: s/char const/const char/. (check-in: 9bf042b2eb user: stephan tags: fiddle)
17:40
The fiddle input/output areas now stretch and shrink as needed to account for their available space. (check-in: 4eec05457f user: stephan tags: fiddle)
17:22
Increased default size of the fiddle output area, changed the .nullvalue default in the input area, and minor CSS tweaks. (check-in: 281aaae731 user: stephan tags: fiddle)
17:14
Initial version of an sqlfiddle-style application using a WASM build of the sqlite3 shell. (check-in: af9c21c9e0 user: stephan tags: fiddle)
2022-05-17
15:33
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 495f0353db user: drh tags: reuse-schema)
15:11
Fix harmless compiler warnings in the new unixFullPathname implementation. (check-in: f7e1ceb5b5 user: drh tags: trunk)
15:01
Avoid treating constant expressions like "? IN ()" or "? NOT IN ()" as integers if they appear in a GROUP BY or ORDER BY clause. (check-in: d8b249e8cd user: dan tags: trunk)
14:59
Add the sqlite3_db_name() interface. (check-in: 2ad152236c user: drh tags: trunk)
2022-05-16
16:55
Add memory barriers to multi-threaded code in test4.c. (check-in: 9260f4e0fd user: dan tags: trunk)
16:10
Fix a problem in test file swarmvtab3.test causing occasional failures. (check-in: f935c155ef user: dan tags: trunk)
2022-05-14
19:05
Do not allow an index scan on an index-on-expression for a RIGHT JOIN because the index might not be positioned on the correct row when running the the right-join no-match loop. dbsqlfuzz 39ee60004ff027a9e2846cf76e02cd5ac0953739 (check-in: 2277f9ba70 user: drh tags: trunk)
17:40
Improved debugging comment generation for the OP_Column opcode. (check-in: 3e073bfddf user: drh tags: trunk)
15:59
Improvements to the decision of when to check ON constraints for an inner join that is an operand to a RIGHT JOIN. Fix for issue identify by [forum:/forumpost/c06b10ad7e|forum post c06b10ad7e]. (check-in: 9d17233c7d user: drh tags: trunk)
2022-05-13
23:01
Change an unreachable branch into an assert(). (check-in: 778e57a558 user: drh tags: trunk)
20:11
Transitive equality constriants do not work on a RIGHT JOIN, since the right-hand side might be a non-matched row. (check-in: 0f96810b84 user: drh tags: trunk)
19:50
Walk back the optimization from check-in [cc458317bd77046c] that tries to reuse the same ephemeral cursor of a list subquery when that subquery is reused, as it does not work in cases where the list subquery is used both for lookups and for scans. (check-in: 12ee29d632 user: drh tags: trunk)
17:45
Defer generating WHERE clause constraints for a RIGHT JOIN until after the ON-clause processing for the RIGHT JOIN has done its own row elimination. This fixes and incorrect output from some RIGHT JOINs that was identified by [forum:/forumpost/41cc3851d864c5e6|forum post 41cc3851d864c5e6]. (check-in: 238d9c247c user: drh tags: trunk)
16:38
Redefine the acccess rules for the Expr.w union so that the Expr.w.iJoin member is accessible on either EP_OuterON or EP_InnerON. (check-in: 6f741d6cfb user: drh tags: trunk)
15:36
Corrections to the header comment to the new joinE.test script. Add the generator TCL as a comment at the bottom of the script. (check-in: 2f4456f67f user: drh tags: trunk)
15:31
New test cases for outer joins. Case joinE-32 currently gets an incorrect answer. See [forum:/forumpost/41cc3851d8|forum post 41cc3851d8] for the bug report. (check-in: 02b24863e6 user: drh tags: trunk)
14:52
Improved names for flags on the Expr object: EP_FromJoin becames EP_OuterON and EP_InnerJoin becomes EP_InnerON. (check-in: 1ffea07ff9 user: drh tags: trunk)
2022-05-12
17:09
Fix a harmless compiler warning in the CLI. (check-in: 7a2ac303d1 user: drh tags: trunk)
11:56
Ensure that ON clauses are applied to the correct outer join. (check-in: c7e3a13a32 user: drh tags: trunk)
11:45
Add IS NOT DISTINCT FROM and IS DISTINCT FROM binary operators which are equivalent to IS and IS NOT, respectively, for compatability with PostgreSQL and hence standard SQL. (check-in: db27611e17 user: drh tags: trunk)
11:01
Fix the ".echo" command of the CLI so that it shows the results of input lines immediately, before invoking sqlite3_prepare(). (check-in: cf7fdabdba user: drh tags: trunk)
2022-05-11
20:29
Zap stray --help output from intermediate version. (Closed-Leaf check-in: deb7372b18 user: larrybr tags: echo-sql)
19:59
Change .echo on effect so that SQL is echoed before prepare. This slightly alters echoed output when multiple SQL statements are submitted at once. Also sync with trunk. (check-in: c1eff632c4 user: larrybr tags: echo-sql)
17:57
The unix interface now resolves all symbolic links in filenames before actually using those filenames. (check-in: d55273e36e user: drh tags: trunk)
17:45
Use osReadlink() in os_unix.c, not readlink() directly. (Closed-Leaf check-in: c3da4c1611 user: drh tags: resolve-symlinks)
16:46
For the unix VFS, rewrite the xFullPathname method so that it automatically resolves all symbolic links, rendering a canonical pathname that contains no symlinks. (check-in: 40c9273d0e user: drh tags: resolve-symlinks)
03:42
Fix .import leak in CLI and add shell leak testing to debug builds and the Tcl test suite. (check-in: df842ebc79 user: larrybr tags: trunk)
03:29
Sync w/ trunk (Closed-Leaf check-in: 1284225b0a user: larrybr tags: import-leak-plug)
2022-05-10
23:28
Fix a bug in the sqlite3WhereMalloc() routines that were added by chekc-in [f237e1d8cc41b937]. The bug was detected by dbsqlfuzz test case 4c5e3e89bc251d28378be88233f531b84ec66901. (check-in: 764b71267e user: drh tags: trunk)
22:32
Make tester.tcl work on more Windows Tcl installations. And sync w/ trunk. (check-in: d25fbdf877 user: larrybr tags: import-leak-plug)
18:43
New requirement marks. (check-in: e8479e56c6 user: drh tags: trunk)
18:18
Fix a stale requirement mark. (check-in: fcda7fb1f1 user: drh tags: trunk)
17:42
Fix a stale requirement mark. (check-in: 3eda4030f7 user: drh tags: echo-sql)
15:55
Fix a harmless UBSAN warning. (check-in: 8f9355028b user: drh tags: trunk)
14:57
Sync w/ trunk (check-in: b7285f92bb user: larrybr tags: echo-sql)
14:55
For CLI, add ".echo sql" dot-command. (check-in: 35cef458ca user: larrybr tags: echo-sql)
13:06
Merge all recent trunk changes into the reuse-schema branch. (check-in: 9f6d6e6135 user: drh tags: reuse-schema)
12:45
Merge the latest trunk enhancements into theh begin-concurrent-pnu-wal2 branch. (check-in: d28af1f8a5 user: drh tags: begin-concurrent-pnu-wal2)
12:39
Merge recent trunk enhancements into the wal2 branch. (check-in: 33d77fea40 user: drh tags: wal2)
12:24
Merge the latest trunk enhancements into the begin-concurrent-report branch. Had to restore the sqlite3VdbeSerialPut() routine that was removed in check-in [6f4d6f212a3558c2] when it was inlined because that routine is used again in a different place by this branch. (check-in: e6b5224d71 user: drh tags: begin-concurrent-report)
12:00
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: f65bd76760 user: drh tags: begin-concurrent)
06:04
Sync w/trunk (check-in: 536691ed0f user: larrybr tags: import-leak-plug)
01:11
Cause most shell tests to be run under Tcl suite valgrind config. (check-in: cd085b36ff user: larrybr tags: import-leak-plug)
00:24
Simplified "hidden" and "no-expand" handling in the *-expander. (check-in: c6c3115f3a user: drh tags: trunk)
2022-05-09
21:57
Update this branch with latest changes from trunk, and the fts5 fix for "BEGIN CCONCURRENT" transactions. (check-in: c013544116 user: dan tags: begin-concurrent-report-wal2)
18:33
Create new branch named "echo-sql" (check-in: 042f2935c9 user: larrybr tags: echo-sql)
17:55
Minor STAT4 test case change due to the ANALYZE enhancement of [eb59c46a5aed69bc|check-in eb59c46a5aed69bc]. (check-in: 8ce2fecb58 user: drh tags: trunk)
16:29
Add ALWAYS() on two unreachable branches in the * expander. (check-in: 387c852375 user: drh tags: trunk)
14:22
Ensure that fts5 closes the read-only blob handle used to read the fts index at the end of each xUpdate operation. This doesn't matter for stock SQLite, as the handle will be closed in the subsequent xRollback or xSync call, but prevents "BEGIN CONCURRENT" transactions from being committed on this branch. (check-in: 093b60846c user: dan tags: begin-concurrent-pnu-wal2)
12:59
Simplify a branch in the "*" expansion logic. New test case for an INSTEAD OF trigger on a RIGHT and FULL outer join. (check-in: d2717348f4 user: drh tags: trunk)
12:29
Simplify .import leak plug and arrange for CLI to be run under valgrind. (check-in: 0d3e238019 user: larrybr tags: import-leak-plug)
2022-05-07
03:53
Stop a memory leak in .import, and add leak complaint to CLI debug builds. (check-in: f5f09368b3 user: larrybr tags: import-leak-plug)
02:21
Create new branch named "import-leak-plug" (check-in: 4a4cecab23 user: larrybr tags: import-leak-plug)
2022-05-06
22:29
Perserve the requested reserved-bytes size for the database file when doing a VACUUM. (check-in: dac6d87c71 user: drh tags: trunk)
17:06
Merge the 3.38.5 fix into the 3.38 subbranch of reuse-schema. (Leaf check-in: bfccca2ba3 user: drh tags: reuse-schema-3.38)
16:52
Merge the 3.38.5 fix into the begin-concurrent-wal2 subbranch for 3.38. (Leaf check-in: 0586b3e963 user: drh tags: begin-concurrent-wal2-3.38)
15:25
Version 3.38.5 (Leaf check-in: 78d9c993d4 user: drh tags: release, branch-3.38, version-3.38.5)
01:02
Prevent an infinite loop on SQLITE_ERROR_RETRY when trying to modify a corrupt schema while PRAGMA writeable_schema=ON is active. dbsqlfuzz ded83609f475cc989c7339d45efb5151c1495501 (check-in: 7fcdb760a4 user: drh tags: branch-3.38)
00:43
Prevent an infinite loop on SQLITE_ERROR_RETRY when trying to modify a corrupt schema while PRAGMA writeable_schema=ON is active. dbsqlfuzz ded83609f475cc989c7339d45efb5151c1495501 (check-in: 217b33234d user: drh tags: trunk)
2022-05-05
10:04
Update the version number to 3.38.5 (check-in: bf73b57f70 user: drh tags: branch-3.38)
10:03
Backout check-in [9fb20a21feb8f697] which was incorrect. (check-in: 66f65b322a user: drh tags: branch-3.38)
10:02
Backout check-in [9fb20a21feb8f697] which was incorrect. (check-in: 99225618a8 user: drh tags: trunk)
03:49
Cause CLI to use ExportHandler interface for its query output, and implement built-in subclasses of it, all in preparation for supporting implementations by shell extensions. (a WIP) (Leaf check-in: 9b37e0be1a user: larrybr tags: cli_extension)
2022-05-04
18:43
Improvements for name resolution for parenthsized joins. (check-in: 006b2d9c52 user: drh tags: trunk)
17:43
New test cases for RIGHT and FULL JOIN, focusing on cases that make use of Bloom filters, and a bug fix related to when ON-clause constraints are applied. (check-in: 67510354e6 user: drh tags: trunk)
17:30
Code EP_InnerJoin constraints at the same time that EP_FromJoin constraints are coded. (Closed-Leaf check-in: b57033d2af user: drh tags: joinD)
16:46
Merge version-3.38.4 into the reuse-schema-3.38 subbranch. (check-in: d5b0fd8434 user: drh tags: reuse-schema-3.38)
16:36
Merge the version 3.38.4 fixes into the begin-concurrent-wal2-3.38 branch. (check-in: 8473718d19 user: drh tags: begin-concurrent-wal2-3.38)
15:45
Version 3.38.4 (check-in: d402f49871 user: drh tags: release, branch-3.38, version-3.38.4)
14:46
Merge ON-clause constraint usage fix from trunk into the joinD branch. (check-in: 0a20d4a859 user: drh tags: joinD)
14:45
Fix ON-clause constraint usage for FULL and RIGHT JOINs. (check-in: 544268a723 user: drh tags: trunk)
11:49
New test cases using various join types and Bloom filters. Two cases differ from PG and need to be resolved. (check-in: befa8cbc06 user: drh tags: joinD)
03:48
Fix CLI use of wrong allocator for free(). (check-in: 4f83c442c9 user: larrybr tags: branch-3.38)
03:45
Fix CLI use of wrong allocator for free(). (check-in: 9fb20a21fe user: larrybr tags: trunk)
02:01
In the query planner, do not let tables commute across any outer join. (check-in: 8cee538823 user: drh tags: trunk)
2022-05-03
21:58
Typos cleared from README.md (check-in: be3a1879c8 user: larrybr tags: trunk)
19:51
Fix multi-byte column name rendition on .import and display of NULL in columnar modes. (check-in: f863aabe9d user: larrybr tags: branch-3.38)
16:26
Merge Bloom filter bug fix from trunk into the right-join branch. (Closed-Leaf check-in: 72131ad1bd user: drh tags: right-join)
16:18
Fix a typo in a comment. (check-in: c19c3c4869 user: drh tags: right-join)
14:26
Increase the version number to 3.38.4. (check-in: def971a0e9 user: drh tags: branch-3.38)
14:25
Fix the Bloom filter pull-down optimization so that it jumps to the correct place if it encounters a NULL key. Fix for the bug described by [forum:/forumpost/2482b32700384a0f|forum thread 2482b32700384a0f]. (check-in: 3dc9fc2f2d user: drh tags: branch-3.38)
14:01
Fix the Bloom filter pull-down optimization so that it jumps to the correct place if it encounters a NULL key. Fix for the bug described by [forum:/forumpost/2482b32700384a0f|forum thread 2482b32700384a0f]. (check-in: 6eda9b1a77 user: drh tags: trunk)
12:11
Add assert()s to show that jumps always land an an instruction that is between 1 and Vdbe.nOp-1. Had these assert()s been in place before, they would have caused an assertion fault for the byte-code error reported by [forum:/forumpost/2482b32700|forum post 2482b32700]. (check-in: 8f8a58feb7 user: drh tags: trunk)
2022-05-02
20:49
Organize the various flag bits of the ExprList_item object into a substructure so that the whole lot can be copied all at once. Faster and smaller code. (check-in: 5341d4bbe9 user: drh tags: right-join)
20:14
Merge trunk fixes into the right-join branch. (check-in: e01f4c05c2 user: drh tags: right-join)
20:04
Improved comments. (check-in: 158b80bed6 user: drh tags: right-join)
19:59
Name resolution and "*" wildcard expansion for parenthesized FROM clauses seems to work the same as PG. The code is chaos, however, and needs some cleanup. (check-in: 6f9c0b07aa user: drh tags: right-join)
15:47
Remove a testcase() macro taht was made obsolete by [a8da85c57e07721d]. (check-in: 053cf45eca user: drh tags: trunk)
15:31
Document (in comments) that the SQLITE_FlttnUnionAll bit has a specific value needed by TH3. (check-in: bcaa4a4474 user: drh tags: trunk)
15:23
Fix a harmless compiler warning in sqlite3TreeViewWinFunc() (a routine that does not even appear in release builds). (check-in: daff607003 user: drh tags: trunk)
15:10
Merge the latest trunk fixes and enhancements into the right-join branch. (check-in: afbcf075c1 user: drh tags: right-join)
14:32
Improvement on check-in [a193749730d6cfba] so that the subroutine call to the IN operator right-hand side generator from the RIGHT JOIN no-match logic does not generate unreachable byte code. (check-in: cc458317bd user: drh tags: trunk)
11:24
Bring the comments on sqlite3FindInIndex() into closer alignment with what that routine actually does. (check-in: 40f3274745 user: drh tags: trunk)
2022-05-01
14:26
Remove FILE* from shell extension interface. (check-in: 27ff5ce517 user: larrybr tags: cli_extension)
04:55
Get sqlite3x.exe and extensions tested with MSVC build. (check-in: d2b16c29fc user: larrybr tags: cli_extension)
2022-04-30
19:55
Defensive code in sqlite3TreeViewWindow() to fix a compiler warning. (check-in: b250c218b4 user: drh tags: trunk)
18:40
Simplified fix to the problem with subroutine reuse in the RIGHT JOIN no-match logic for a subquery on the right-hand side of an IN operator. The code still needs simplification. (check-in: a193749730 user: drh tags: trunk)
17:22
Fix another problem with subroutine reuse in the RIGHT JOIN no-match code for the subquery on the right-hand side of an IN operator. The current code works for all known cases, but seems unnecessarily complex and in need of simplification. <i>Later:</i> The fuzzer finds memory leaks with this version. (Closed-Leaf check-in: ad32da8045 user: drh tags: not-working)
12:55
Preserve the COLLATE operator on an index on an expression when resolving the use of that expression into a reference to the index. See [forum:/info/7efabf4b03328e57|forum thread 7efabf4b03328e57] for details. (check-in: ef72f9e289 user: drh tags: branch-3.38)
12:35
Preserve the COLLATE operator on an index on an expression when resolving the use of that expression into a reference to the index. See [forum:/info/7efabf4b03328e57|forum thread 7efabf4b03328e57] for details. (check-in: a8da85c57e user: drh tags: trunk)
00:06
Further improvements to codeEqualityTerm() for cases when an IN operator with a right-hand side subquery is used as a constraint that needs to be processed by the RIGHT JOIN non-matched logic. (check-in: bb2798be3f user: drh tags: trunk)
00:05
Enhance the TreeView debugging output for Expr with opcode TK_IN so as to show the RHS table and the subroutine address. (check-in: aec1e4cd59 user: drh tags: trunk)
2022-04-29
21:38
For Tcl extension, get Tk option into MSVC build. (check-in: c3494fa757 user: larrybr tags: cli_extension)
19:00
Enhance the codeEqualityTerm() routine inside the code generator so that it is able to reuse an IN operator that has an invariant subquery on its right-hand side while coding the non-matched loop of a RIGHT JOIN. dbsqlfuzz 19f1102a70cf966ab249de56d944fc20dbebcfcf (check-in: 56dd306546 user: drh tags: trunk)
18:36
Get MSVC build going for sqlite3x.exe and extensions. And sync w/trunk. (check-in: cd5e57e0fe user: larrybr tags: cli_extension)
17:45
With TreeView, only show the table columns for a SrcItem if the data source is a subquery rather than a persistent table. (check-in: 7b4a0d0fa1 user: drh tags: trunk)
17:13
Multiple enhancements to the TreeView output for SrcItem, cherrypicked from the right-join experimental branch. (check-in: 293afa8111 user: drh tags: trunk)
17:03
Show the USING clause as part of the tree-view display of SrcItem. (check-in: 9cba3ce577 user: drh tags: right-join)
12:09
Minor typo fix in a comment, for the benefit of broken IDE syntax highlighters. (check-in: 680ccecbc8 user: drh tags: trunk)
2022-04-28
18:33
Fix problem with SQLITE_OMIT_VIRTUALTABLE builds. (check-in: a99ee612b9 user: dan tags: trunk)
18:17
In treeview.c, show the columns of the table associated with each SrcItem. (check-in: 3aafccb5c3 user: drh tags: right-join)
17:35
Tweaks to the name resolution on parenthesized joins. A small number of tests fail now due to extra columns appearing in the expansion of "*". (check-in: c86804917e user: drh tags: right-join)
12:52
Merge trunk enhancements into the right-join branch. (check-in: 3fd9706bba user: drh tags: right-join)
2022-04-27
21:10
The -DSQLITE_MXFILENAMESZ=N option for some non-negative integer value N prevents SQLite from ever creating a hole larger than N bytes in a named file for which a size hint has been issued. The exception code never runs, except for cases when the application deliberately corrupts the size hint. (Leaf check-in: 0c2da4ff64 user: drh tags: mkfileholesz)
18:38
Fix a harmless typo in a comment. (check-in: e1f4a115df user: drh tags: trunk)
16:41
When computing STAT1 values using ANALYZE, if a ratio comes out to be between 1.0 and 1.1, then round it down to 1 rather than the using the default rounding rule of changing it to 2. The reduces the estimation error for the case where a column value is very nearly, but not quite unique. (check-in: eb59c46a5a user: drh tags: trunk)
13:33
Fix a test problem in rbubusy.test causing a crash under some circumstances. (check-in: bc5bbd9fa6 user: dan tags: trunk)
13:12
Merge the version 3.38.3 fixes into the reuse-schema-3.8 subbranch. (check-in: 436d0a5837 user: drh tags: reuse-schema-3.38)
13:00
Merge version 3.38.3 fixes onto the begin-concurrent-wal2-3.38 branch. (check-in: 5590f0a4e6 user: drh tags: begin-concurrent-wal2-3.38)
12:03
Version 3.38.3 (check-in: 9547e2c38a user: drh tags: release, branch-3.38, version-3.38.3)
2022-04-26
20:58
Modify utility function sqlite3SetString() so that it may be used safely on Parse.zErrMsg. Fuzzer test case "crash-1604e5d76c92574e21e437049dab9b672e06b767.txt". (check-in: b9c7d2c1bd user: drh tags: branch-3.38)
19:48
Cherry-pick various minor fixes from trunk into branch-3.38. (check-in: fece097c70 user: drh tags: branch-3.38)
19:16
Update corruptL.test so that it works with SQLITE_ENABLE_OVERSIZE_CELL_CHECK builds. (check-in: b1bec72043 user: dan tags: trunk)
2022-04-25
23:00
Reverse the order of two tests to stop a harmless initialized value warning from MSAN - reported by OSSFuzz. (check-in: fb7e1a07a9 user: drh tags: branch-3.38)
21:31
Fix a problem with using multiple SQLITE_SUBTYPE function as window functions in a single query. (check-in: 9caca6cb3e user: drh tags: branch-3.38)
21:22
Increase the version number to 3.38.3. (check-in: b113afa224 user: drh tags: branch-3.38)
21:21
Fix a problem with automatic indexes introduced by check-in [664b461bb5063d980] and reported by [forum:/forumpost/0d3200f4f3bcd3a3|forum post 0d3200f4f3bcd3a3]. (check-in: 4fbb9ffe72 user: drh tags: branch-3.38)
20:56
Fix a problem with automatic indexes introduced by check-in [664b461bb5063d980] and reported by [forum:/forumpost/0d3200f4f3bcd3a3|forum post 0d3200f4f3bcd3a3]. (check-in: 134cfb18ff user: drh tags: trunk)
20:47
Do not allow the push-down optimization on the right table of a RIGHT JOIN. (Closed-Leaf check-in: 05917bfa02 user: drh tags: autoindex-fix)
20:38
The pushDownWhereTerms() routine should be using sqlite3ExprIsTableConstraint(), not sqlite3ExprIsTableConstant(). This fixes many problems, but still an error persists in join7.test. (check-in: 10bf0e6138 user: drh tags: autoindex-fix)
19:40
Failed first attempt to fix a problem with automatic indexes introduced by check-in [664b461bb5063d980] and reported by [forum:/forumpost/0d3200f4f3bcd3a3|forum post 0d3200f4f3bcd3a3]. I thought that I had tested this prior to check-in and that it worked. But after checking it in, I find that there are many test failures. (check-in: 7ca3456c00 user: drh tags: autoindex-fix)
14:59
Add a new optimizer disabling bit to disable just the UNION ALL branch of the query flattener. (check-in: c0f9ebab54 user: drh tags: trunk)
14:49
Avoid unintended side-effects on Parse.nSelect in the sqlite3ViewGetColumnNames() routine. (check-in: 59789fe1e7 user: drh tags: trunk)
10:43
Remove NEVER() on branches formerly thought to unreachable (see check-in [71272caff5874137]) in order to fix the first bug reported by [forum:/forumpost/28821db852|forum post 28821db852]. (check-in: bd6811d811 user: drh tags: trunk)
2022-04-24
20:00
Get CLI conformed to revised doc for it, and take recent fixes. (check-in: 60e85c7e71 user: larrybr tags: cli_extension)
2022-04-23
19:26
Merge enhancements and fixes from trunk into the right-join branch. (check-in: 2fb165cf8b user: drh tags: right-join)
19:21
Prevent the ORDER BY LIMIT optimization from running if the innermost loop is a right-join, as doing so will get an incorrect answer. (check-in: 3aefc874d3 user: drh tags: trunk)
18:46
In debug builds, add extra code to verify that there are no jumps that try to escape from the right-join body subroutine. (check-in: 45fe919266 user: drh tags: trunk)
18:34
Fix false-positives in sqlite3VdbeNoJumpsOutsideSubrtn(). All tests pass now. (Closed-Leaf check-in: 1300d978d5 user: drh tags: right-join-subrtn-check)
18:04
For debug builds, if the RIGHT JOIN body subroutine contains a jump that escapes the subroutine, then abort the prepared statement with a descriptive error and SQLITE_INTERNAL. This extra sanity check causes many tests to fail. (check-in: 2c5bb2bff2 user: drh tags: right-join-subrtn-check)
14:30
Fix an operator typo - This indicates that the branch needs further investigation and verification. (check-in: f6ab67965b user: drh tags: right-join)
07:31
Correctly resolve left and right USING columns of an outer join in a parenthesized subjoin. (check-in: ea91aba88c user: drh tags: right-join)
07:29
Fix minor problems with the new join table name resolution logic. (Closed-Leaf check-in: 3a6b0db451 user: drh tags: right-join-colnames)
2022-04-22
23:18
Add the ability to access the USING columns of the right or left tables of an OUTER JOIN even if the OUTER JOIN is in parentheses. Prototype code only. (check-in: c3a427575f user: drh tags: right-join-colnames)
19:52
Merge the latest enhancements and fixes from trunk onto the right-join branch. (check-in: 7f8983345d user: drh tags: right-join)
18:07
Make use of the "%!S" format when running ExplainSubquery. (check-in: 9425d79cb4 user: drh tags: trunk)
17:36
Improve EXPLAIN QUERY PLAN output and comments on bytecode listings by distinguishing between "subquery" and "join" and using consistent names across EQP and bytecode. (check-in: a2d3ee9242 user: drh tags: trunk)
16:15
Honor the MATERIALIZED keyword on a common table expression by not flattening the CTE into an outer query. (check-in: 8d631a6b9e user: drh tags: trunk)
15:18
Add test cases to check the handling of SQLITE_BUSY in rbu. (check-in: 6fccc733c6 user: dan tags: trunk)
13:34
Simplification of data structures in the wildcard expander for SF_NestedFrom queries. (check-in: f7c1826234 user: drh tags: trunk)
12:46
Minor simplification to the result-set wildcard expander for SF_NestedFrom. (check-in: d942530a65 user: drh tags: right-join)
09:57
Merge the latest trunk fixes into the right-join branch. (check-in: c74dc574c3 user: drh tags: right-join)
2022-04-21
23:34
Previous fix to join8.test needs a return. (check-in: 7b4cd705a0 user: drh tags: trunk)
23:01
Disable join8.test if the build lacks support for virtual tables. (check-in: 94e1916a2f user: drh tags: trunk)
19:38
Add support for RIGHT and FULL JOIN. (check-in: f766dff012 user: drh tags: trunk)
19:25
Fix harmless compiler warnings. (check-in: 2925566412 user: drh tags: right-join)
19:20
Fix a harmless uninitialized variable warning in MSVC. (check-in: b870d2a2fa user: drh tags: trunk)
19:14
Fix harmless compiler warnings in the CLI. (check-in: dfd2100bc4 user: drh tags: trunk)
14:48
Make sure the code generator knows to invoke row-value subroutines which running the right-join post-processing loop. (check-in: fd328e52ae user: drh tags: right-join)
14:08
Ensure correct fg.isNestedFrom values even on crazy parses. (check-in: e611e8e62c user: drh tags: right-join)
13:11
Avoid materializing columns of SF_NestedFrom subqueries that are never used. Other code improvements manually imported from the right-join-paren branch. (check-in: cd8272fc2a user: drh tags: right-join)
12:11
Further attempts to get name resolution to work correctly with parenthisized FROM clauses. Work-in-progress. Lots of crashes and wrong answers. (Closed-Leaf check-in: 6b326b3bcf user: drh tags: right-join-paren)
01:49
Attempting to improve name resolution for parenthesized FROM clauses. Only partially working. (check-in: 959b718214 user: drh tags: right-join-paren)
2022-04-20
22:41
For CLI, fix how columnar mode fills in empty portions of wrapped row outputs. (check-in: 77aed89192 user: larrybr tags: trunk)
21:58
Try to avoid materializing unused columns when processing a parenthesized FROM clause. (check-in: 07906e3c4f user: drh tags: right-join-paren)
18:12
Small correction to the new bUsed logic of sqlite3ProcessJoin(). (check-in: ba04142e09 user: drh tags: right-join)
16:54
Merge window function fix from trunk. (check-in: b6b9e185f8 user: drh tags: right-join)
16:53
Remove an unnecessary assignment operation. (check-in: ed46527aca user: drh tags: right-join)
16:42
Fix a problem with using multiple SQLITE_SUBTYPE function as window functions in a single query. (check-in: 9430ead7ba user: dan tags: trunk)
16:26
Comment fixes and improvements in sqlite3ProcessJoin(). (check-in: 1118655f4d user: drh tags: right-join)
15:07
Improved tracking of nested SELECT objects used to implement parenthensized FROM terms. (check-in: 0da2232624 user: drh tags: right-join)
12:15
Also show the ENAME_SPAN value in sqlite3TreeViewExprList(), if there is one. (check-in: c1d4286177 user: drh tags: right-join)
12:14
Improved TreeView output for ExprList: Show the ENAME_TAB value, if there is one. (check-in: eb3f883b45 user: drh tags: right-join)
12:02
Add a new comment to the body of lookupName(). No code changes. (check-in: 22fa9b9b45 user: drh tags: right-join)
2022-04-19
23:00
Merge the ALTER TABLE fix from trunk. (check-in: d5ceaef3fc user: drh tags: right-join)
20:47
Fix a problem in ALTER TABLE with handling "table.*" expressions within SELECT statements in triggers. (check-in: 24755fd065 user: dan tags: trunk)
19:51
Improved comment on the JF_LTORJ constant definition. (check-in: e0744da95f user: drh tags: right-join)
18:23
Fix a NULL-pointer dereference that can occur on an aggregate query that uses FULL JOIN. dbsqlfuzz 496a35dd4eefcd7935aaaeb0c69056bf49785d28. (check-in: 63b8f8aec2 user: drh tags: right-join)
15:56
Mark an unreachable "just-in-case" branch as unreachable. (check-in: b966d52437 user: drh tags: right-join)
15:01
Add 512 new join test cases derived from PostgreSQL output. (check-in: 78d58e461f user: drh tags: right-join)
09:39
Remove unnecessary cases for the resolver. (check-in: 5bc9aa68e2 user: drh tags: right-join)
02:03
Add the omitted "finish_test" to the end of joinA.test. (check-in: 0907505cc9 user: drh tags: right-join)
00:24
New test cases for RIGHT and FULL JOIN. (check-in: 5c2f670e0f user: drh tags: right-join)
2022-04-18
23:20
Fix the query flattener so that it does not flatten a RIGHT or FULL JOIN into any position of the outer query other than the first. (check-in: 837322aa95 user: drh tags: right-join)
22:51
New test cases, including one that gets a different result than Postgres. (check-in: 49ea11a4a5 user: drh tags: right-join)
19:48
Disable the unused EU4_EXPR mode for the IdList object. (check-in: 5bcf4aa3bf user: drh tags: right-join)
19:34
Even more test cases. (check-in: 5f4310a104 user: drh tags: right-join)
19:28
New test cases for parenthesized NATURAL FULL JOINs. (check-in: e34250efd3 user: drh tags: right-join)
18:01
New test case demonstrating the ability to invoke OP_NullRow on a cursor that has never been opened. (check-in: d173edc242 user: drh tags: right-join)
16:23
Merge the btree bug-fix from trunk. (check-in: a333c0b50c user: drh tags: right-join)
16:20
Ensure that left-hand side WITHOUT ROWID tables are set to OP_NullRow prior to running the right-join loop. This fixes a problem introduced by the previous check-in. (check-in: aab7665ce6 user: drh tags: right-join)
16:10
Fix problems with WHERE clauses that follow multiple FULL JOINs. This introduces some new faults in the tests, probably due to something unrelated. (check-in: 95b242d4c2 user: drh tags: right-join)
15:56
Avoid an assert() failure in allocateSpace() triggered by a corrupt database. dbsqlfuzz f022eb0ce64d27808574d1dcde5cf7d002dabde8. (check-in: 2de7f8cc7f user: dan tags: trunk)
14:41
Merge the latest fixes from trunk. (check-in: 1ba3b3ccf1 user: drh tags: right-join)
14:15
Improved comment field in the bytecode generated for OP_Column and OP_Rowid. (check-in: 1b2c5cef95 user: drh tags: trunk)
13:57
Improved comment field in the bytecode generated for OP_Column and OP_Rowid. (check-in: 009bbf8026 user: drh tags: right-join)
13:08
New RIGHT JOIN test cases, one of which is currently failing. (check-in: 9168cbbedd user: drh tags: right-join)
11:22
Change the row-value initialization subroutine call from within the right-join body subroutine from an issue to an optimization opportunity. (check-in: 829d49f27c user: drh tags: right-join)
10:26
Do not allow an empty table bypass to jump outside of a right-join body subroutine. (check-in: 1549dcd235 user: drh tags: right-join)
10:09
Fix the sqlite3SrcListAppendList() routine so that it correctly adds the JT_LTORJ attribute to the first SrcItem, if needed. (check-in: 07ed0dca31 user: drh tags: right-join)
09:59
Leave sqlite3ProcessJoin() early if an OOM is encountered in the NATURAL to USING converter. This avoids NULL pointer dereferences further along in the code. (check-in: 0ccb224e13 user: drh tags: right-join)
00:57
Fix to the coalesce() function generation in the resolver. (check-in: 584bd55e20 user: drh tags: right-join)
00:04
When converting a NATURAL JOIN into a JOIN USING, make sure to insert the name correctly into the IdList even if it is a wierd quoted name. (check-in: e62156b696 user: drh tags: right-join)
2022-04-17
23:46
Fix to the logic that computes coalesc() functions to resolve USING terms. (check-in: 20388548d8 user: drh tags: right-join)
22:58
Deal with OP_Return bypass in the RIGHT JOIN subroutine by adding extra OP_Returns where needed. (check-in: 71abe5641f user: drh tags: right-join)
21:03
Get docs caught up with the .shxload change. (check-in: e21964480f user: larrybr tags: cli_extension)
20:30
Change OP_Return such that if P3 is 1, the Return is a no-op when the P1 register contains a NULL. (check-in: c90602328a user: drh tags: right-join)
19:22
Move shell extension load functionality into its own .shxload command for usage and code simplicity. (check-in: e2c8c88b4b user: larrybr tags: cli_extension)
18:46
Further improvements to USING() processing for RIGHT and FULL JOINs. All currently known issues are now resolved. Performace is improved. (check-in: 9fd3f22e22 user: drh tags: right-join)
00:48
For sqlite3x, rudimentary testing in place as make target shellxtest . More to come. (check-in: b73928befb user: larrybr tags: cli_extension)
2022-04-16
23:38
New test cases, one of which is failing, indicating a bug that needs fixing. (check-in: bd5fd68435 user: drh tags: right-join)
22:57
Fix the USING to ON translation so that it works correctly for a sequence of two or more joins where one of the joins to the right-hand side of the list is a RIGHT or FULL JOIN. (check-in: 9ffc2b2319 user: drh tags: right-join)
19:13
Since the query planner is unable to cope with a LEFT JOIN on the left-hand side of a RIGHT JOIN, detect that situation early and raise a parsing error. This is a temporary measure that needs to be fixed. (check-in: 6d5d6e0403 user: drh tags: right-join)
18:33
Additional SELECT trace logic: Show the tree after result-set wildcard expansion but before name resolution. (check-in: a7babf7541 user: drh tags: right-join)
17:53
Make shell auto-column work with lots of columns when log() is missing. (check-in: 82366436ef user: larrybr tags: trunk)
15:46
Fix a problem with "ON DELETE RESTRICT" and "ON UPDATE RESTRICT" foreign keys in attached databases scanning child tables in the wrong schema. (check-in: 04d5b637f0 user: dan tags: trunk)
13:55
New test cases. One of the new test cases shows a flaw in the base design of RIGHT JOIN. (check-in: 4c3ce6475a user: drh tags: right-join)
12:40
RIGHT JOIN USING now appears to work the same as PG-14. Legacy tests pass. (check-in: 5bfb862419 user: drh tags: right-join)
2022-04-15
21:21
Get sqlite3x and extensions testing from Makefile setup, and some of wapptest changes done to run same. (a WIP) (check-in: d238fcf4be user: larrybr tags: cli_extension)
19:53
Revamp the USING clause processing so that it works (mostly) with RIGHT and FULL JOIN. (check-in: 719c8d920b user: drh tags: right-join)
19:49
Avoid deleting substructure of the Expr node in lookupName() until after the error message is generated. (Closed-Leaf check-in: b8e7176639 user: drh tags: right-join-using)
19:27
Progress toward a working USING for FULL JOIN. (check-in: fed2646ade user: drh tags: right-join-using)
18:30
When expanding "*" in the result set of a SELECT, do not attach a table name to columns that are in subsequent USING clauses. (check-in: 91530990e0 user: drh tags: right-join-using)
17:08
The sqlite3ProcessJoin() routine converts a NATURAL JOIN into a JOIN USING so that henceforth the NATURAL keyword can be ignored. (check-in: 8378e1e0d2 user: drh tags: right-join)
15:47
Enhance the IdList object to exist in a single memory allocation (rather than a separate allocate for the base object and the array of IDs). Also permit an IdList object to store an Expr pointer together with each name. (check-in: 40f3c95871 user: drh tags: right-join)
15:15
Add the "3" in the name of the sqlite3ProcessJoin() function. (check-in: b925f72b6f user: drh tags: right-join)
2022-04-14
20:43
Record the three known big issues with the current RIGHT JOIN design in the join8 test module, with tests that deliberately fail in order to remind us to fix the issues. (check-in: 2c4ee723f4 user: drh tags: right-join)
19:48
Cherry pick subroutine indentation improvements and the hardening of OP_Gosub from the right-join branch back into trunk. (check-in: 12645f100d user: drh tags: trunk)
19:05
Another instance of indenting a subroutine. (check-in: 73f4036b04 user: drh tags: right-join)
18:19
Check for interrupts and invoke the progress handler following a Gosub opcode, to avoid and recover from infinite subroutine loops. (check-in: 647211e044 user: drh tags: right-join)
16:34
Rerun the subroutines that compute row-values if necessary from within the RIGHT JOIN body subroutine. (check-in: 9b9038bcd0 user: drh tags: right-join)
15:55
Adjust the output formatting of bytecode listings so that subroutines used to implement subqueries are indented one level. (check-in: 079b7b1252 user: drh tags: right-join)
14:58
Disable autoindexing for the RIGHT JOIN loop. (check-in: 402a89e33e user: drh tags: right-join)
14:40
Adjust assert() statements to account for the new always-NULL cursor type added by [4526c5d316508093]. (check-in: 7822faa48a user: drh tags: right-join)
14:19
Previous check-in accidentally inverted a test on an assert(). Fix that. (Closed-Leaf check-in: 5ec4f806c5 user: drh tags: right-join, right-join-fix)
12:59
Fix assert() statements associated with artifical null-value cursors created by RIGHT JOIN. (check-in: f5bce5f152 user: drh tags: right-join, right-join-fix)
2022-04-13
19:00
Fix a harmless (false-positive) unused variable compiler warning on MSVC. (check-in: 63b04c63de user: drh tags: right-join)
18:32
Make the sqlite3TreeViewSrcList() routine a no-op if called with a NULL SrcList object. (check-in: 185d2720e7 user: drh tags: right-join)
18:20
Fix an assert() in OP_Column so that it accounts for the new type of pseudo-cursor that always returns NULL for any column. (check-in: 371ddc97be user: drh tags: right-join)
17:41
If the OP_NullRow opcode is given a cursor that has not yet been opened, then go automatically open it to a special pseudo-cursor that allows returns NULL for every column. Used by the new RIGHT JOIN implementation. (check-in: 4526c5d316 user: drh tags: right-join)
16:46
Move the explain comment for the RIGHT-JOIN post-processing loop to the verify beginning of the loop - to make the start of the loop clearer to human bytecode readers. (check-in: 7ed2a271e6 user: drh tags: right-join)
12:34
This was the original landing of the RIGHT and FULL OUTER JOIN changes to trunk. It was moved back onto a branch due to problems discovered. (check-in: fa9d206f90 user: drh tags: right-join)
12:12
The rows of a RIGHT JOIN might come out in any arbitrary order. So disable the ORDER-BY/GROUP-BY optimizations if a RIGHT JOIN is involved. (check-in: d168f245ec user: drh tags: right-join)
10:49
Fix an assert() in btree.c that might not be true for a corrupt database file. (check-in: dbd8e2e46c user: drh tags: trunk)
03:48
Extension interface cleanup, and rename MetaCommand to DotCommand (to better match docs) (check-in: f78d7b8b89 user: larrybr tags: cli_extension)
01:52
Add missing VdbeCoverage() macros on new branch byte-code opcodes. (check-in: 218c7167e5 user: drh tags: right-join)
2022-04-12
20:20
Ensure that the JT_LTORJ bit in the SrcItem.fg.jointype is preserved during query flattening. (check-in: 6125905015 user: drh tags: right-join)
18:40
For the bad join type error message "unknown or unsupported join type" remove the "or unsupported" clause, because we now support all valid join types. (check-in: ab0a0562dd user: drh tags: right-join)
18:04
Factor out the RIGHT JOIN non-matched row loop from sqlite3WhereEnd(). This reduces the register pressure on that routine and helps it to run faster in the common case where there is no RIGHT JOIN. (check-in: beeecf1604 user: drh tags: right-join)
17:43
Merge the latest enhancements from trunk into the right-join branch. (check-in: b3e57ba120 user: drh tags: right-join)
17:02
Earlier detection of corruption in balance_nonroot(). dbsqlfuzz 9191ade77ebd3b7a3356e074957aa85b0c669d14. (check-in: bff4f083eb user: dan tags: trunk)
14:23
The multi-index OR optimization does not work for RIGHT join, so disallow it. (check-in: 34c2f7b237 user: drh tags: right-join)
13:46
Always explicitly set each table cursor to NullRow before doing the RIGHT-JOIN unmatched row pass. This is a cheap opcode, and it adds an extra layer of defense against incorrect results. (check-in: a3d14e61ca user: drh tags: right-join)
11:02
Modify utility function sqlite3SetString() so that it may be used safely on Parse.zErrMsg. Fuzzer test case "crash-1604e5d76c92574e21e437049dab9b672e06b767.txt". (check-in: 09c5a4ec13 user: dan tags: trunk)
10:06
Further clarification of Tcl extension intro. (check-in: 29ab6e9037 user: larrybr tags: cli_extension)
2022-04-11
23:08
Tcl extension doc, minor clarifications and spelling improvements (check-in: 6ccdd9b751 user: larrybr tags: cli_extension)
23:01
Fix CLI mishandling of SQL "execute" tokens, go and / (check-in: 1a117b0388 user: larrybr tags: cli_extension)
21:00
Fix RIGHT JOIN for virtual tables. (check-in: 75a9116e98 user: drh tags: right-join)
20:15
The query flattener must add TK_IF_NULL_ROW opcodes on substituted values that land on the left operand of a RIGHT JOIN, just as it already does for the right operand of a LEFT JOIN. (check-in: 8e02cdf5b1 user: drh tags: right-join)
18:54
New test cases added. (check-in: bdd1499c0f user: drh tags: right-join)
18:42
Fix mis-renditions of help text. (check-in: 1a7a6b6f48 user: larrybr tags: cli_extension)
17:27
Fix handling of "continue" and "break" from inside the loop for the right operand of a RIGHT JOIN. (check-in: b6e773a26c user: drh tags: right-join)
14:43
Do not attempt the LEFT JOIN strength reduction optimization on a FULL JOIN. (check-in: 7ef3e99a73 user: drh tags: right-join)
14:26
Show LEFT and RIGHT JOIN processing in the EXPLAIN QUERY PLAN output. (check-in: d91faeffea user: drh tags: right-join)
13:13
New test cases. (check-in: d5f6791b86 user: drh tags: right-join)
12:38
Make a distinction between (1) WHERE clause constraints, (2) ON/USING constraints on outer joins, and (3) ON/USING clause constraints on inner joins. Formerly, there was no distinctionb between 1 and 3, but RIGHT JOIN needs to know the difference. Make RIGHT JOIN aware of this difference and add test cases. (check-in: 0f6f61c366 user: drh tags: right-join)
11:59
Fix some comments that refer to LEFT JOIN that should refer to OUTER JOIN. No changes to code. (check-in: 5be5ede5cc user: drh tags: right-join)
11:48
Merge the Expr.w.iJoin name change from trunk into the right-join branch. (check-in: 29927926eb user: drh tags: right-join)
11:25
Rename the Expr.w.iRightJoinTable to just Expr.w.iJoin, so that the words "RightJoin" in the former name do not lead readers to believe that this has something to do with RIGHT JOINs in particular. (check-in: e8c00442d2 user: drh tags: trunk)
10:38
Ensure that the JT_LTORJ flag is preserved when flattening a subquery that is on the left side of a RIGHT JOIN. (check-in: ccb61fb1f3 user: drh tags: right-join)
08:07
Add embedded doc, Intro to Tcl Extension (check-in: 3359183332 user: larrybr tags: cli_extension)
00:54
Show the JT_LTORJ flag in TreeView debugging output. (check-in: 21eb44919f user: drh tags: right-join)
00:21
Do not allow query flattening nor the push-down optimization on the right operand of a RIGHT JOIN. (check-in: 5aa0c9ea9c user: drh tags: right-join)
2022-04-10
23:48
Cannot use an automatic index on the right table of a RIGHT JOIN because automatic indexes must be WHERE_IDX_ONLY, but the RIGHT JOIN post-processing does not know how to work with an index-only scan. (check-in: beb4401dc0 user: drh tags: right-join)
23:01
Revisit [f84b2beca7197589]: disallow co-routine implementations of tables that are to the left of a RIGHT JOIN, to avoid other complications. (check-in: cf00ebfc4b user: drh tags: right-join)
20:28
Minor improvements to the sqlite3SrcListShiftJoinType() routine. This started out to be an effort to convert RIGHT JOIN to LEFT JOIN if the join was on the first pair of relations, but that messes up the "*" expansion and so won't work. (check-in: a48902c71e user: drh tags: right-join)
19:51
When the left-most table of a RIGHT JOIN is implemented as a co-routine, make sure all its columns are flushed to NULL when it finishes so that they appear to be NULL during the RIGHT JOIN post-processing. (check-in: f84b2beca7 user: drh tags: right-join)
17:14
More test cases and bug fixes. (check-in: 140e97fde9 user: drh tags: right-join)
16:13
More RIGHT JOIN test cases and a bug fix. (check-in: 19e8ad690a user: drh tags: right-join)
09:17
Create parallel C and C++ test/demo shell extensions, with header tweaks to make that work. Fix a bug exposed when multiple shell extensions were loaded. (check-in: 2596e7c439 user: larrybr tags: cli_extension)
2022-04-09
20:11
Add a simple test case. (It is not difficult to create additional test cases that assert, at this point.) (check-in: f2201d5dcf user: drh tags: right-join)
19:39
Sync w/trunk, for .import fix. (check-in: 861ab023be user: larrybr tags: cli_extension)
18:51
Fix .import bug reported at https://sqlite.org/forum/forumpost/14db09d7e765b819 . zAutoColumn made to deliver characters, not bytes. (check-in: 21e96600d9 user: larrybr tags: trunk)
18:48
Bug fixes. A basic FULL OUTER JOIN now works. (check-in: 34bbeeb77b user: drh tags: right-join)
14:57
Get tclshext made with Tk, optionally, and make unknown work as in tclsh. (check-in: 43eb311e51 user: larrybr tags: cli_extension)
14:48
Add byte-code that computes unmatched rows on the right table of a RIGHT JOIN. Compiles, and the code looks semi-reasonable, but still does not run. Incremental check-in. (check-in: 2db5a498e7 user: drh tags: right-join)
12:27
The interior of the RIGHT JOIN loop is now a subroutine. (check-in: 549f5a7ee6 user: drh tags: right-join)
03:16
A few bits and bobs of code generation toward getting RIGHT JOIN to work. Much more remains to do. (check-in: 55b4543122 user: drh tags: right-join)
03:12
Merge the sqlite3WhereMalloc() routine from trunk into the right-join branch. (check-in: b1b3845aa3 user: drh tags: right-join)
03:12
Fix TCL extension build issue. (check-in: 0b3bb0e793 user: larrybr tags: cli_extension)
03:06
The sqlite3WhereMalloc() routine allocates memory that is automatically deleted when the corresponding WhereInfo object is destroyed. (check-in: f237e1d8cc user: drh tags: trunk)
02:31
For shell extensions, generate a single-file header. For TCL extension, provide Makefile target, and make Tk opt-in rather than default. (a WIP) (check-in: 2cd49df502 user: larrybr tags: cli_extension)
2022-04-08
19:20
Preliminary code to support RIGHT JOIN. Everything seems to work, except that the code to compute the unmatched rows for the RIGHT JOIN has not yet been added, so the result of a RIGHT JOIN is currently the same as an INNER JOIN. (check-in: 415abd6731 user: drh tags: right-join)
17:01
Enhance the sqlite_dbpage fix at [/info/642a0b4752743216|check-in 642a0b4752743] from about a month ago such that it still takes a transaction on all attached databases, but it only starts a read transaction for read-only operations, rather than starting a write transaction for everything. (check-in: 8efd61e851 user: drh tags: trunk)
15:11
Improved explanation and commentary on the sqlite3JoinType() routine. One of the error messages changes slightly, but besides that everything works the same. (check-in: 48f2e5a1fb user: drh tags: trunk)
12:50
Grammar rules for a hypothetical FOR EACH ROW statement. No new keywords required. However, the sqlite3_complete() machine had to be reworked because of the fact that FOR EACH ROW can contain internal semicolon tokens. (Leaf check-in: 32ae9ee712 user: drh tags: foreachrow-statement)
10:35
Tokenizer and grammar rules sufficient for the MERGE command. (Leaf check-in: 2deee326e8 user: drh tags: merge-statement)
04:24
Sync w/trunk, including all CLI updates (check-in: ad8b48d632 user: larrybr tags: cli_extension)
03:40
For shell, silence some clang warnings, and cure one bona-fide gripe. (check-in: 52be866850 user: larrybr tags: cli_extension)
03:20
Revamp and simplify shell help extension interface, and provide for scripted shell extensions to be seen in .help output. (check-in: aa785473d9 user: larrybr tags: cli_extension)
2022-04-07
20:45
Fix two unreachable branches introduced by the recent sqlite3TriggersExist() optimization. (check-in: 1b5475d212 user: drh tags: trunk)
19:06
Enhance the EXPLAIN output formatting in the CLI so that the subroutine that implements the loop body for the multi-index OR optimization is indented. (check-in: c2965fea9d user: drh tags: trunk)
18:17
The ".testctrl optimizations 0x400000" command disables the generation of OP_ReleaseReg opcodes. OP_ReleaseReg opcodes are usually only generated for SQLITE_DEBUG builds and are used to verify that registers are descoped propertly. But they can get in the way of code understanding when studying bytecode dumps. So this new optimization setting is provided to temporarily turn OP_ReleaseReg opcodes off. (check-in: fa5276725f user: drh tags: trunk)
14:13
Fix the parsing of C-style comments in Lemon, as reported by [forum:/forumpost/b6edc69548|forum post b6edc69548]. This has no affect on SQLite itself. (check-in: 201569e09b user: drh tags: trunk)
14:03
Optimization to sqlite3TriggersExist() saves over 700K CPU cycles. (check-in: 5043a3507e user: drh tags: trunk)
13:48
Avoid compiler warnings about the new sqlite3Show() debugging routines begin "defined but not used". (check-in: 47ddc26974 user: drh tags: trunk)
12:10
Omit an unnecessary initialization in tokenExpr(). (check-in: 8f6ae68601 user: drh tags: trunk)
10:11
Fix harmless compiler warnings. (check-in: 61095b5bcb user: drh tags: trunk)
01:11
Improved technique for parsing the ON and USING clauses of a join is faster and uses less memory. (check-in: 158156a3e3 user: drh tags: trunk)
2022-04-06
19:46
Faster parsing of the FROM clause in joins for the common case where there is no INDEXED BY clause. (check-in: 848b7a0ea9 user: drh tags: trunk)
18:30
Improvements to the display of AST for DML statements. (check-in: 84c239a071 user: drh tags: trunk)
17:07
Get shell.c past clang preprocessor, silently. (check-in: 588c351228 user: larrybr tags: cli_extension)
16:47
Add sqlite3x target to other makefiles. (check-in: efc9f08dcb user: larrybr tags: cli_extension)
16:19
Add sqlite3x build target. Cure CLI build warning. Tweak CLI test. (check-in: 45736d46cd user: larrybr tags: cli_extension)
15:41
Attempt to show triggers in the TreeView output from DELETE, INSERT, and UPDATE statements. (check-in: b0939d6f4d user: drh tags: trunk)
12:54
Corrections and updates to the header comment describing the TriggerStep object. No changes to code. (check-in: abb34c0830 user: drh tags: trunk)
12:25
Add the sqlite3Show() family of debugging interfaces under SQLITE_DEBUG. No changes to deliverable builds. Rename SQLITE_ENABLE_SELECTTRACE to SQLITE_ENABLE_TREETRACE in ctime.c. (check-in: bc33168cf1 user: drh tags: trunk)
11:08
Rename debugging defines and variables from SELECTTRACE to TREETRACE (and similar) since the functionality has how expanded to include data structures beyond SELECT statements. Should not affect deliverable builds. (check-in: 393fa32e18 user: drh tags: trunk)
10:37
Add additional tree display routines for DELETE and UPDATE. No changes to deliverable code. (check-in: fbd288ff3d user: drh tags: trunk)
00:29
Add new diagnostic "sqlite3TreeView" routines for IdList, Upsert, and for INSERT statements. This is all debugging code. There are no changes to release builds. (check-in: f308412203 user: drh tags: trunk)
2022-04-04
20:20
Small performance and size improvement to OP_Found. (check-in: 81587a18b7 user: drh tags: trunk)
19:58
Tag an always-taken branch using ALWAYS(). (check-in: ad8bc3d744 user: drh tags: trunk)
19:43
Optimizations to the OP_Found opcode save about 600K cycles in speedtest1. (check-in: 5c3357ad62 user: drh tags: trunk)
18:17
Use unpacked keys for OP_Found in foreign key processing. (check-in: 328dc76657 user: drh tags: trunk)
17:27
For shell extension writers, reduce boilerplate (mimicing SQLITE_EXTENSION_INIT# macros) (check-in: 761208132d user: larrybr tags: cli_extension)
15:26
Fix two minor problems in the JSON functions associated with JSON Paths for object labels that require quoting. (check-in: 4a1553b55f user: drh tags: branch-3.38)
15:15
When constructing the JSON Path for the "fullpath" column of the json_tree() and json_each() table-valued functions, be sure to quote object labels where necessary. (check-in: 0fbbe7881c user: drh tags: trunk)
14:24
Fix the JSON Path parser so that it will accept zero-length object labels. [forum:/forumpost/c082aeab43|Forum thread c082aeab43]. (check-in: 84fe95d2a5 user: drh tags: trunk)
11:38
Performance optimization and stronger assert()s in the comparison opcodes. (check-in: e0305e640b user: drh tags: trunk)
06:33
For TCL extension: Adjust provided "gui" command, and document it. For shell: Separate shell variables from binding parameters, mainly so they live longer, in the shell DB. Add .vars dot command to reflect this separation, and specialized for shell variables. Much code shuffling to share code between .parameters and .vars commands. (check-in: fa492ff57c user: larrybr tags: cli_extension)
01:12
Only invoke sqlite3VdbeClearObject() from a single location, so that the compiler is more likely to in-line the code. Performance increase and size reduction. (check-in: c6947a96e6 user: drh tags: trunk)
2022-04-03
22:35
Performance optimization in the sqlite3VdbeHalt() routine. (check-in: 9564d72a08 user: drh tags: trunk)
20:39
Performance optimization and size reduction in the OP_Halt opcode. (check-in: 21948e6e1c user: drh tags: trunk)
19:13
Omit the Vdbe.runOnlyOnce flag (simplifying the prepared statement implementation) and accomplish the same result by adding an "OP_Expire 1 1" opcode to prepared statements that would normally have runOnlyOnce set. (check-in: 6e20e1c46d user: drh tags: trunk)
10:42
Performance optimization and slight size reduction in the OP_Transaction opcode. (check-in: 7bee8c195f user: drh tags: trunk)
2022-04-02
22:47
Expand the getVarint32() macro in a few places, as the C-compiler seems to be able to optimize better when that macro is expanded manually. (check-in: cd4fe34b98 user: drh tags: trunk)
20:08
Fix harmless compiler warnings. (check-in: 8a3a348635 user: drh tags: trunk)
19:21
Ensure that a zero-blob does not cause in invocation of memcpy() with a zero length and a NULL source pointer. (check-in: 35441eb5e1 user: drh tags: trunk)
15:19
Minor loop optimization in OP_MakeRecord. (check-in: 4350983b37 user: drh tags: trunk)
14:30
In-line the sqlite3VdbeSerialPut() routine into the OP_MakeRecord opcode. This allows some duplicate comparisons to be omitted, resulting in a size reduction and performance increase. (check-in: 6f4d6f212a user: drh tags: trunk)
2022-04-01
21:01
The putVarint32() macro does not optimize well. So expand it into in-line code in places were performance is an issue. (check-in: 390c239e53 user: drh tags: trunk)
20:39
Loop optimization in the OP_MakeRecord opcode. (check-in: 47a61fbd63 user: drh tags: trunk)
20:19
It is not necessary to de-ephermeralize the output registers in the OP_ResultRow opcode. Omit that step for a size reduction and performance increase. (check-in: 8a07745aed user: drh tags: trunk)
19:13
There is no need for sqlite3_step() to check for an OOM condition prior to starting up. (check-in: 44be7f46ba user: drh tags: trunk)
19:04
Omit the Vdbe.doingRerun field for a slight size reduction and performance gain. (check-in: e93297a9d7 user: drh tags: trunk)
18:45
New macro ROUND8P() which works like ROUND8() but assumes that the input is already a multiple of the size of a pointer. It becomes a no-op for 64-bit machines, giving a small size reduction and speed boost. (check-in: d126f304cd user: drh tags: trunk)
18:19
Provide and use a version of sqlite3VdbeFreeCursor() that guarantees the cursor pointer is not NULL. This saves a few bytes of code space and a few CPU cycles. (check-in: cb5e6f8e26 user: drh tags: trunk)
17:23
Remove an unnecessary branch from sqlite3VdbeReset(). (check-in: a7d79560a0 user: drh tags: trunk)
17:01
Refactor the Vdbe.iVdbeMagic field into Vdbe.eVdbeState. Split the RUNNING state into separate RUNNING and READY. This gives a size reduction and performance increase. (check-in: 5a50a42fde user: drh tags: trunk)
16:22
Avoid a harmless uninitialized variable warning in PRAGMA incremental_vacuum. (check-in: 6d976f90df user: drh tags: trunk)
15:31
Have the sqlite3_context object carry the encoding for the prepared statement that it represents, so that sqlite3_result() and similar can set the encoding according to the prepared statement, even if the database encoding has changed. dbsqlfuzz c409b10d0a6bccf78ab00f47e1d29d42ee5b3565 (check-in: d4e19314f5 user: drh tags: trunk)
2022-03-31
21:15
Split out the RUN state into separate READY and RUN states. (Closed-Leaf check-in: d698826b08 user: drh tags: vdbe-state-refactor)
20:04
Rename Vdbe.iVdbeMagic to eVdbeState. Remove unnecessary states. This is a preliminary step toward splitting RUN_STATE out into several other states. (check-in: ff91191d23 user: drh tags: vdbe-state-refactor)
16:09
Fix harmless compiler warnings. (check-in: b916087aac user: drh tags: trunk)
11:12
Refinement to [3f9887d4a58cbfdb]: The SQLITE_CONSTRAINT error should only be returned if the prepared statement came from sqlite3_prepare_v2(). The legacy sqlite3_prepare() is documented to return only SQLITE_ERROR. (check-in: f2d9262e44 user: drh tags: trunk)
04:05
Make CLI build after an incomplete rename completed. (check-in: 4f11e639f0 user: larrybr tags: cli_extension)
03:45
For TCL extension: Add Tk and means to run it, optionally. Implement ScriptSupport interface. For shell: Get scripting support thru an object interface like the others. Rename OutMode* to Export*. For both: Provide a way to pass arguments to an extension upon load and get them into TCL's argv. (check-in: d2446e5080 user: larrybr tags: cli_extension)
2022-03-30
17:56
Faster and slightly smaller implementation of sqlite3Step(). (check-in: c6901a8c78 user: drh tags: trunk)
17:36
Small size reduction and performance increase in sqlite3FinishCoding(). (check-in: 9248ce50f5 user: drh tags: trunk)
11:12
Incorporate fix noted as absent by forum post https://sqlite.org/forum/forumpost/aefd62fcc7ebd8b6 (check-in: 336851b191 user: larrybr tags: branch-3.38)
2022-03-29
22:57
In setResultStrOrError(), if the input string pointer is NULL and hence the value gets set to an SQL NULL, then the Mem.enc field is uninitialized. So do not read it. This is a harmless OSSFuzz/ASAN found problem. (check-in: 47d0b1c4cf user: drh tags: trunk)
21:11
For TCL extension: Cleanup TCL library interaction and interpreter management. Group code into more purpose oriented functions. Add .unknown dot command, delegating to TCL commands with "dot" names. Drop planned .eval new dot command. For shell: Implement undocumented .unknown dot command, doing little. Make dispatcher call .unknown's implementation for unknown dot command. Fix a command lookup bug exposed by above change to unknown handling. Add .eval dot command. Add options to .x command aimed at control of errors in command sequences. (a WIP) Make dispatcher report ambiguous dot command lookups, even with no extension. (check-in: 7616a6f4ab user: larrybr tags: cli_extension)
20:50
Ensure that sqlite3VdbeMemSetStr() always leaves the value in a consistent state even if there is an error. (check-in: c86ab289ec user: drh tags: trunk)
19:19
Reverse the order of two tests to stop a harmless initialized value warning from MSAN - reported by OSSFuzz. (check-in: 800b8fdad7 user: drh tags: trunk)
13:16
Avoid unnecessary calls to balance() from sqlite3BtreeDelete(). (check-in: d0966d1bdd user: drh tags: trunk)
01:43
Fix the sqlite3_result_xxxxx() routines so that they all check for and perform any necessary text encoding conversions and check for oversize strings and BLOBs. Thus those checks can be done where they are most efficient and avoided in cases like OP_Function where they are more expensive. (check-in: d50b162b2f user: drh tags: trunk)
2022-03-28
21:42
TCL extension polished and more smoothly integrated. A couple of bugs related to takedown fixed. Help for added features. Code cleaned up and commented. (check-in: 4ee7df1180 user: larrybr tags: cli_extension)
18:34
Further size and performance optimizations for sqlite3VdbeMemSetStr(). (check-in: 310a3e102d user: drh tags: trunk)
17:34
Slightly smaller and faster sqlite3VdbeMemSetStr(). (check-in: 06928e745c user: drh tags: trunk)
15:06
Performance increase in the loop that frees an opcode array. (check-in: 4ccebb86aa user: drh tags: trunk)
14:56
Another small performance gain by using sqlite3DbFreeNN(). (check-in: daa924af98 user: drh tags: trunk)
14:18
Use sqlite3DbFreeNN() instead of sqlite3DbFree() in a few hot spots for better performance. (check-in: b12de0ecc7 user: drh tags: trunk)
13:22
Performance optimization in the memsys5 memory allocator. (check-in: 949133231f user: drh tags: trunk)
05:57
In TCL shell extension, wrap shell DB for use from TCL. (check-in: 41cc84336b user: larrybr tags: cli_extension)
2022-03-27
23:33
TCL extension made to use shell's line inputter with prompting and line editing/history. (check-in: fbf0eb0d12 user: larrybr tags: cli_extension)
03:08
In TCL shell extension, add TCL command "udb". This gets the TCL environment to near parity with pre-extended utility, except for query result display (TBD soon). (check-in: c9aa76bf88 user: larrybr tags: cli_extension)
2022-03-26
17:39
Merge the version 3.38.2 patches with the begin-concurrent-pnu-wal2 branch to create this new sub-branch. (check-in: 73a15377ef user: drh tags: begin-concurrent-wal2-3.38)
14:14
Merge the version 3.38.2 patches into the reuse-schema-3.38 sub-branch. (check-in: 07fc5c6eff user: drh tags: reuse-schema-3.38)
13:51
Version 3.38.2 (check-in: d33c709cc0 user: drh tags: release, branch-3.38, version-3.38.2)
2022-03-25
20:39
Sync w/trunk (check-in: 8402e5e78a user: larrybr tags: cli_extension)
19:16
The "PRAGMA writable_schema=ON" flag should not allow OOM errors to pass while parsing the schema. dbsqlfuzz 9cc49e1a53e1cef8e3a1496a88c683aa20483163. (check-in: 4977d8f453 user: drh tags: branch-3.38)
18:27
CLI preparation for shell's db to be used from TCL (check-in: 57501e7fbd user: larrybr tags: cli_extension)
17:43
Do not allow an #ifdef inside of an assert(), as gcc tells us that is not portable. (check-in: b193156c2a user: drh tags: branch-3.38)
06:46
Get shell TCL extension more smoothly integrated. (check-in: 29fd246fb2 user: larrybr tags: cli_extension)
01:37
Bump the version number to 3.38.2. (check-in: bb3ef206ab user: drh tags: branch-3.38)
01:31
Fix the Bloom-filter optimization so that it does not use IS NULL or IS NOT NULL constraints from the WHERE clause when operating on a LEFT JOIN. [forum:/forumpost/031e262a89b6a9d2|Forum thread 031e262a89b6a9d2]. (check-in: 8246bfbc16 user: drh tags: branch-3.38)
01:23
Fix the Bloom-filter optimization so that it does not use IS NULL or IS NOT NULL constraints from the WHERE clause when operating on a LEFT JOIN. [forum:/forumpost/031e262a89b6a9d2|Forum thread 031e262a89b6a9d2]. (check-in: 1a6328f2a5 user: drh tags: trunk)
2022-03-24
14:01
The "PRAGMA writable_schema=ON" flag should not allow OOM errors to pass while parsing the schema. dbsqlfuzz 9cc49e1a53e1cef8e3a1496a88c683aa20483163. (check-in: a7abb725c7 user: drh tags: trunk)
12:49
TCL shell extension delegates to dot commands (check-in: 353943108b user: larrybr tags: cli_extension)
2022-03-23
21:03
Scripting support roughed in, with a demo extension. More work is needed to make this truly useful. Tests are missing. (check-in: abf0316b3f user: larrybr tags: cli_extension)
10:04
Use trickery to code the UTF-8 BOM for the --bom option on .output, .once, and .excel in the CLI, to work around a warning in some Microsoft compilers. [https://fossil-scm.org/forum/forumpost/bd0844268f0fab71|Fossil forum post bd0844268f0fab71]. (check-in: 43143ad131 user: drh tags: trunk)
2022-03-22
23:47
Ensure that database corruption does not cause the cursor passed into sqlite3BtreeDelete() to be invalid. dbsqlfuzz 209bf3de9ee11ae440848ab9bc9c13858f9be2e4. (check-in: 780d00d4ec user: drh tags: branch-3.38)
23:33
Ensure that database corruption does not cause the cursor passed into sqlite3BtreeDelete() to be invalid. dbsqlfuzz 209bf3de9ee11ae440848ab9bc9c13858f9be2e4. (check-in: a85126f966 user: drh tags: trunk)
20:02
Harden the xShmLock method of both the unix and Windows VFSes so that they are robust against being invoked when the SHM file is not open. (check-in: 06d4c4d17c user: drh tags: branch-3.38)
19:41
Harden the xShmLock method of both the unix and Windows VFSes so that they are robust against being invoked when the SHM file is not open. (check-in: 67d8b434f6 user: drh tags: trunk)
11:22
Make the sqlite3_serialize() and sqlite3_deserialize() interfaces accessible to loadable extensions. (check-in: 81f8746bc6 user: drh tags: trunk)
03:03
expose sqlite3_{deserialize,serialize}() in sqlite3ext.h (Closed-Leaf check-in: da874180d3 user: larrybr tags: extapi-serializing)
02:53
Create new branch named "extapi-serializing" (check-in: a1220a2170 user: larrybr tags: extapi-serializing)
2022-03-21
20:08
Do not allow an #ifdef inside of an assert(), as gcc tells us that is not portable. (check-in: c7a2047e93 user: drh tags: trunk)
18:48
Some branches are no longer reachable after the previous change. Mark them accordingly. Also improve comments. (check-in: 88d69f60cc user: drh tags: trunk)
18:23
Strengthen the defenses against corrupt databases in the sqlite3BtreeInsert() function of the btree module. [forum:/forumpost/c7ec29905f|Forum post c7ec29905f]. (check-in: 883fec9c3a user: drh tags: branch-3.38)
18:17
Strengthen the defenses against corrupt databases in the sqlite3BtreeInsert() function of the btree module. [forum:/forumpost/c7ec29905f|Forum post c7ec29905f]. (check-in: 4df301c861 user: drh tags: trunk)
16:34
The previous assert() fix was not correct when building with -DSQLITE_ENABLE_OFFSET_SQL_FUNC. This is the fix. (check-in: b4210bc0ba user: drh tags: branch-3.38)
15:42
The previous assert() fix was not correct when building with -DSQLITE_ENABLE_OFFSET_SQL_FUNC. This is the fix. (check-in: c0a4767fef user: drh tags: trunk)
13:55
Fix the assert() that attempts to verify that the table-reference to index-reference translator finds all required translations. [forum:/forumpost/929168fdd6|Forum post 929168fdd6]. (check-in: ccd2a2a7e1 user: drh tags: branch-3.38)
13:47
Fix the assert() that attempts to verify that the table-reference to index-reference translator finds all required translations. [forum:/forumpost/929168fdd6|Forum post 929168fdd6]. (check-in: fa9bd1fce4 user: drh tags: trunk)
11:50
Fix an assert() in sqlite3TableAffinity() that might have been false if there was a prior syntax error in the query. (check-in: 940f1a400b user: drh tags: branch-3.38)
11:32
Fix an assert() in sqlite3TableAffinity() that might have been false if there was a prior syntax error in the query. (check-in: 23fdb169ca user: drh tags: trunk)
2022-03-19
15:19
In the CLI, disable the zipfile and sqlar extensions in --safe mode. (check-in: d8b65a2dab user: drh tags: trunk)
14:27
macro-ize extension boiler-plate, improve exit processing (check-in: 7996d3a359 user: larrybr tags: cli_extension)
12:53
Fix the zipfile extension so that it knows that a zero-length BLOB returns a NULL pointer. [forum:/forumpost/ae86934905|Forum post ae86934905]. (check-in: b75c6bad3a user: drh tags: branch-3.38)
12:48
Fix the zipfile extension so that it knows that a zero-length BLOB returns a NULL pointer. [forum:/forumpost/ae86934905|Forum post ae86934905]. (check-in: 5f6d56737c user: drh tags: trunk)
2022-03-18
16:00
Further migration to centralized error reporting (check-in: 898088008e user: larrybr tags: cli_extension)
2022-03-17
23:49
Change a conditional into an assert() due to the change in [387ab17b8a0a4b87]. (check-in: 13b584869f user: drh tags: trunk)
22:09
Add a 4th output code (value 3) from the sqlite3_vtab_distinct() interface that indicates that SQLite wants distinct results that are sorted. (check-in: 135d8b97b0 user: drh tags: trunk)
18:03
Updates a comment and an assert(). (Closed-Leaf check-in: 0c5be14aac user: drh tags: vtab-distinct-ordered)
11:37
Another fix for a corner-case in sqlite_offset() - this one having to do with computed virtual columns in a WITHOUT ROWID table. Also an assertion fault problem with sqlite_offset(). (check-in: 9e72cae2f1 user: drh tags: branch-3.38)
11:23
Another fix for a corner-case in sqlite_offset() - this one having to do with computed virtual columns in a WITHOUT ROWID table. (check-in: 84ddd19bce user: drh tags: trunk)
2022-03-16
19:28
Add extra test cases. (check-in: 0a922d1417 user: dan tags: vtab-distinct-ordered)
14:51
Update the sqlite3_vtab_distinct() documentation. (check-in: 88929d85e2 user: drh tags: vtab-distinct-ordered)
12:06
Experimental change to have sqlite3_vtab_distinct() return 3 to indicate that results should sorted and duplicates may be removed. (check-in: 11f4508895 user: dan tags: vtab-distinct-ordered)
2022-03-15
17:57
Make CLI complain about incomplete input at EOF. Fix for regression reported at https://sqlite.org/forum/forumpost/718f489a43be3197 (check-in: 72029cf7cd user: larrybr tags: trunk)
10:07
For CLI, begin centralizing argument checking/complaining. (check-in: 3457f87c5d user: larrybr tags: cli_extension)
2022-03-14
23:50
Calling sqlite3_value_dup() on a pointer value results in an ordinary NULL. [forum:/forumpost/ae8592cc73|Forum post ae8592cc73]. Test cases in TH3. (check-in: fff1243b59 user: drh tags: trunk)
22:58
Fix an assert() statement in the covering index optimization for the corner case of dealing with an sqlite_offset() SQL function call. (check-in: 3950b7d006 user: drh tags: trunk)
20:39
Disable trigger coding while running sqlite3_declare_vtab(). dbsqlfuzz 97e1865771b4226f29e6e482411c1cae14133f50 (check-in: 5b8a0460a2 user: drh tags: branch-3.38)
20:31
Disable trigger coding while running sqlite3_declare_vtab(). dbsqlfuzz 97e1865771b4226f29e6e482411c1cae14133f50 (check-in: 387ab17b8a user: drh tags: trunk)
16:54
Foreign key constraint failures should return SQLITE_CONSTRAINT_FOREIGNKEY even if there is a RETURNING clause. See [forum:/forumpost/e6be6e82c86aa59b|forum thread e6be6e82c86aa59b]. (check-in: 3f9887d4a5 user: drh tags: trunk)
2022-03-12
15:30
Merge the version 3.38.1 patches into a sub-branch of reuse-schema. (check-in: 934276d15e user: drh tags: reuse-schema-3.38)
15:21
Merge the latest trunk changes into the reuse-schema branch. (check-in: f3fa81963e user: drh tags: reuse-schema)
15:11
Merge the latest trunk changes into the begin-concurrent-pnu-wal2 branch. (check-in: 0071d9da18 user: drh tags: begin-concurrent-pnu-wal2)
15:04
Merge the lates trunk enhancements into the wal2 branch. (check-in: bafaefc6ab user: drh tags: wal2)
14:54
Merge trunk enhancements, including 3.38.1 patches, into the begin-concurrent-report branch. (Leaf check-in: c4a61135d5 user: drh tags: begin-concurrent-report-3.28)
14:47
Merge the latest trunk enhancements, including the 3.38.1 patches plus additional performance enhancements, into the begin-concurrent branch. (check-in: aa8b5e9558 user: drh tags: begin-concurrent)
13:37
Version 3.38.1 (check-in: 38c210fdd2 user: drh tags: release, branch-3.38, version-3.38.1)
2022-03-11
22:59
CLI extension's registerMetaCommand done, and used by test_shellext.c (demo code) (check-in: 9be5e0b503 user: larrybr tags: cli_extension)
15:42
Add a comment linking a part of the UPDATE constraint checking code to one of the corresponding TH3 test cases. (check-in: 0606e8e93e user: drh tags: trunk)
15:16
Fix a harmless compiler warning. (check-in: 5d739aff96 user: drh tags: trunk)
14:20
Fix a harmless compiler warning and restore performance in the sqlite3BtreeIndexMoveto() last-page optimization. (check-in: 8b032293b3 user: drh tags: trunk)
12:40
Fix a case in fts5 where a corrupt database could cause a crash. (check-in: 1894577c8e user: drh tags: branch-3.38)
12:02
Fix a case in fts5 where a corrupt database could cause a crash. (check-in: 5e95df261c user: dan tags: trunk)
2022-03-10
23:37
Another corruption detection case in the sqlite3BtreeIndexMoveto() last page optimization. (check-in: 531e6ad038 user: drh tags: trunk)
22:54
In the sqlite3BtreeIndexMoveto() last-page optimization, make sure to return SQLITE_CORRUPT if corruption is detected. (check-in: 4ef19ba9b5 user: drh tags: trunk)
21:14
Stronger defenses against corrupt schemas in the ALTER TABLE logic. (check-in: 29744e69f4 user: drh tags: branch-3.38)
21:04
Stronger defenses against corrupt schemas in the ALTER TABLE logic. (check-in: 13fbde2817 user: drh tags: trunk)
19:53
Doc improvements re sqlite3_column_text*() endianness (no code change) (check-in: a37c20d40f user: larrybr tags: branch-3.38)
19:44
Amend sqlite3_column_*() doc table. (no code change) (check-in: 1f47309977 user: larrybr tags: trunk)
16:28
Prevent a NULL-pointer dereference when trying to parse a illegal schema entry that contains a window function while doing a RENAME COLUMN. [forum:/forumpost/ec2a2e0deb|Forum post ec2a2e0deb]. (check-in: 2c39322825 user: drh tags: branch-3.38)
16:26
Prevent a NULL-pointer dereference when trying to parse a illegal schema entry that contains a window function while doing a RENAME COLUMN. [forum:/forumpost/ec2a2e0deb|Forum post ec2a2e0deb]. (check-in: 58de3c2b1a user: drh tags: trunk)
16:01
Refactor Window.pFunc into Window.pWFunc to disambiguate from other uses of the variable or field named "pFunc". (check-in: d9475ebcde user: drh tags: trunk)
11:48
Only run atof1.test on x86_64 machines. (check-in: 4173819cd2 user: drh tags: trunk)
11:10
Improve formatting of changes doc for this branch (Leaf check-in: 2129cfb8c5 user: larrybr tags: shell-tweaks)
02:23
Mention that sqlite3_column_text16() returns have native endianness (check-in: 25b7f88fcb user: larrybr tags: trunk)
01:15
Check-in [642a0b4752743216] fixing sqlite_dbpage is not exactly correct. This patch should fix it. (check-in: b6c4c8a09a user: drh tags: branch-3.38)
01:10
Check-in [642a0b4752743216] fixing sqlite_dbpage is not exactly correct. This patch should fix it. (check-in: 6ba36714ca user: drh tags: trunk)
2022-03-09
22:16
Sync w/Trunk, finish doc/sh_tweak_changes.md (check-in: 5a1797c225 user: larrybr tags: shell-tweaks)
18:30
Further refinements to the sqlite_offset() fix from [6029514b08b88e3f]. (check-in: 98799d7bbb user: drh tags: branch-3.38)
18:29
Further refinements to the sqlite_offset() fix from [6029514b08b88e3f]. (check-in: 6f838305e2 user: drh tags: trunk)
14:29
Fix the sqlite_dbpage virtual table so that it starts a write transaction on all attached schemas. (check-in: e92c4fdb99 user: drh tags: branch-3.38)
14:22
Fix the sqlite_dbpage virtual table so that it starts a write transaction on all attached schemas. (check-in: 642a0b4752 user: drh tags: trunk)
13:22
Do not use va_arg() as an l-value, because [forum:/forumpost/45e39c1311|AIX does not allow that], from what we are told. (check-in: 46d1a6de62 user: drh tags: trunk)
12:20
Improve the defenses against bad pathnames input into the findCreateFileMode() function of os_unix.c in order to quiet static-analyzer warnings. There are no demonstrated problems in the prior code, but this change makes the code easier to prove correct and more robust against future changes. (check-in: a9cda38997 user: drh tags: trunk)
2022-03-08
16:44
(WIP) Add DB-dispatch for dot commands upon shell extension load. (check-in: 19f2a747b8 user: larrybr tags: cli_extension)
16:12
Fix a potentially uninitialized local variable in the ".import" command of the CLI - introduced by [741651fd4b1b776b]. This same change is part of the nearby [/info/5e30c6ea707f9d38|"Fix compiler warnings"] check-in. (check-in: ce9e3d903c user: drh tags: branch-3.38)
15:49
Fix a minor typo in a comment. (check-in: cf61419f88 user: drh tags: trunk)
13:59
Fix compiler warnings. (check-in: 5e30c6ea70 user: drh tags: trunk)
03:10
Add a .md summarizing CLI changes on this branch and their motivation or purpose. (check-in: 5ddccc2f28 user: larrybr tags: shell-tweaks)
01:02
CLI regularization and code cleanup (check-in: 16af0e4560 user: larrybr tags: cli_extension)
2022-03-07
19:00
Sync with trunk (check-in: 1194093a58 user: larrybr tags: cli_extension)
18:42
Add multi-threaded test for the features on this branch. Fix a misuse of xShmLock(). (check-in: 1ec05168c9 user: dan tags: begin-concurrent-pnu-wal2)
18:38
Disable an assert in moveToRoot() when the database is corrupt. [forum:/forumpost/e9a176b7bd|Forum post e9a176b7bd]. (check-in: ab744a5da8 user: drh tags: branch-3.38)
18:32
Disable an assert in moveToRoot() when the database is corrupt. [forum:/forumpost/e9a176b7bd|Forum post e9a176b7bd]. (check-in: ae464a18d7 user: drh tags: trunk)
17:19
In the stay-on-last-page optimization for sqlite3BtreeIndexMoveto() (check-in [0057bbb508e7662b] about 16 hours ago), be sure to clear the BTCF_ValidOvfl flag, since the overflow cache is invalidated by the search on the last page. OSSFuzz issue 45329. (check-in: 0021bebc16 user: drh tags: trunk)
16:40
Do not allocate new Trigger objects in the parser following a syntax error, to avoid violating invariants associated with Expr nodes. See [forum:/forumpost/2024e94071ef1531|forum thread 2024e94071ef1531] for more information. (check-in: 369d240455 user: drh tags: branch-3.38)
16:22
Do not allocate new Trigger objects in the parser following a syntax error, to avoid violating invariants associated with Expr nodes. See [forum:/forumpost/2024e94071ef1531|forum thread 2024e94071ef1531] for more information. (check-in: 5e0ed49b3d user: drh tags: trunk)
14:59
Fix the code generated for vector IN operator constraints on virtual tables so that they work even if the "omit" field in the sqlite3_index_info object is off. This has apparently never worked correctly before. Presumably, nobody has ever before written a virtual table that can use vector IN operator constraints and that relies on bytecode to double-check the constraints. Test cases in TH3. Problem discovered by dbsqlfuzz cab8e26194a40147627094f3c6849c0a7b1e0310. (check-in: 4a2040d5c7 user: drh tags: branch-3.38)
14:51
Fix the code generated for vector IN operator constraints on virtual tables so that they work even if the "omit" field in the sqlite3_index_info object is off. This has apparently never worked correctly before. Presumably, nobody has ever before written a virtual table that can use vector IN operator constraints and that relies on bytecode to double-check the constraints. Test cases in TH3. Problem discovered by dbsqlfuzz cab8e26194a40147627094f3c6849c0a7b1e0310. (check-in: 21b656572d user: drh tags: trunk)
01:29
Optimizations to sqlite3BtreeIndexMoveto() avoid unnecessary comparisons if the cursor is already near the end of the table and is not moving far. This case is more common that you would expect. The optimization saves almost 4 million CPU cycles. (check-in: 0057bbb508 user: drh tags: trunk)
01:28
Fix the .import problem in the CLI reported by [forum:/forumpost/72a024c957|forum post 72a024c957]. (check-in: d753285bcb user: drh tags: branch-3.38)
00:14
Disentangle variable use in last checkin (check-in: 4c3a02600f user: larrybr tags: trunk)
2022-03-06
23:41
For CLI .import, revert to importing into temp or main when given table is found there and no -schema option used. And plug an obscure leak. (check-in: bf9d127884 user: larrybr tags: trunk)
20:22
Fix obsolete but harmless comments in btree. No changes to code. (check-in: 4838b888e4 user: drh tags: trunk)
17:53
(WIP) Shell meta-command objectification done, ready for dbShell to be loaded and used for extension meta-commands (check-in: a88983ecb7 user: larrybr tags: cli_extension)
11:44
The sqlite_offset() function should be non-deterministic. dbsqlfuzz 3df8230bb940870db87ffca2c0fc759c1e7fa356. (check-in: 8083757606 user: drh tags: branch-3.38)
11:43
The sqlite_offset() function should be non-deterministic. dbsqlfuzz 3df8230bb940870db87ffca2c0fc759c1e7fa356. (check-in: e1a185e60a user: drh tags: trunk)
03:22
(WIP) shell extension load and ShellState internal/external partitioning in place, passing shell tests with trivial exceptions (check-in: a85679d3e9 user: larrybr tags: cli_extension)
00:01
Remove a NEVER() associated with sqlite_offset()> (check-in: bf2501e26c user: drh tags: branch-3.38)
2022-03-05
23:52
Remove a NEVER() associated with sqlite_offset()> (check-in: e29dffcdba user: drh tags: trunk)
20:20
Fix the 'localtime' modifier in date/time functions so that it preserves fractional seconds. [forum:/forumpost/2ffbaa2c3fd7fb82|Forum post 2ffbaa2c3fd7fb82]. (check-in: 6833f4aeef user: drh tags: branch-3.38)
20:12
Fix the 'localtime' modifier in date/time functions so that it preserves fractional seconds. [forum:/forumpost/2ffbaa2c3fd7fb82|Forum post 2ffbaa2c3fd7fb82]. (check-in: 1c875b0764 user: drh tags: trunk)
19:46
Increase the version number to 3.38.1. (check-in: cd87e77dd0 user: drh tags: branch-3.38)
19:39
Cherry-pick all bug fix changes since the 3.38.0 release. (check-in: 45a5d5acf7 user: drh tags: branch-3.38)
19:36
Further improvements to the sqlite_offset() function. (check-in: 4230e2f5e0 user: drh tags: trunk)
14:44
Fix the sqlite_offset() function so that it gives the correct answer even if the argument is a virtual column in an index-only query. Test cases in TH3. (check-in: 6029514b08 user: drh tags: trunk)
11:57
Update obsolete text in the ICU README.txt file talking about SQLite's robustness (or lack thereof) in the face of corrupt database files. (check-in: dc88fc62f0 user: drh tags: trunk)
2022-03-04
20:54
Do try to evaluate the Bloom filter on a LEFT JOIN early, as doing so essentially converts it into an INNER JOIN. See [forum:/forumpost/544af7eee2|forum thread 544af7eee2]. (check-in: d46d0e67c9 user: drh tags: trunk)
16:28
When setting an sqlite3_value object to a pointer value, make sure any prior memory allocations associated with that object have been cleared first. dbsqlfuzz 33f842d1a09afaad5f078c3e1162a54b78e5f2ab. (check-in: 31e1bde4b2 user: drh tags: trunk)
2022-03-03
19:40
Restore the ability to push-down OR subterms of the WHERE clause when processing a multi-index OR. (check-in: d71fb6fdc3 user: drh tags: trunk)
16:48
Make sure the xParseCell and xCellSize methods of the MemPage object are initialized consistently even if the page is detected as being corrupt. dbsqlfuzz fd21f341f3b4f582401d2feb2a1c0c4cc2c26caa. (check-in: 725a06434b user: drh tags: trunk)
15:59
Fix for the problem identified in [forum:/forumpost/0cd8e058bf|forum post 0cd8e058bf]: When evaluating an multi-index OR, do not push down auxiliary WHERE clause terms that involve subqueries into the OR-subqueries. Otherwise, the covering-index optimizer might convert table-references into index-references for the particular OR index that is active for the branch in which the subquery subroutine is coded, and those index-references will not work if the subquery subroutine is invoked from a different OR branch that uses a different index. (check-in: 61a1c6dbd0 user: drh tags: trunk)
15:00
Add the new OP_BeginSubrtn opcode (which is really an alias for OP_Integer) and make other changes so that the span of a subroutine that implements a subquery is more readily apparent in bytecode listings. (check-in: b822674870 user: drh tags: trunk)
2022-03-02
21:04
Bloom filter pull-down optimization is incompatible with Skip-Scan. Make sure the query planner does not try to to both. [forum:/info/50a1bbe08ce4c29c|Forum post 50a1bbe08ce4c29c]. (check-in: ad3ffa1a75 user: drh tags: trunk)
17:50
Faster version of sqlite3VdbeMemRelease(). (check-in: 86c5fa2f30 user: drh tags: trunk)
13:45
Reinstate the releaseMemArray() performance optimization of [bb520293d8c11518] with corrections. (check-in: 1291080d11 user: drh tags: trunk)
11:39
The optimization at [ece326db50201937] is not quite right, so back it out for now. (check-in: b218a4b9fe user: drh tags: trunk)
01:02
Fix a harmless compiler warning. (check-in: 6497997aa8 user: drh tags: trunk)
00:50
The performance optimizations at [bb520293d8c11518] is not quite right, so it has to be backed out. (check-in: 15f73b121c user: drh tags: trunk)
2022-03-01
20:15
The MemPage.aDataEnd field should point to the end of the data buffer for the page, not just the end of the usable portion of that buffer. The purpose aDataEnd is to detect cells that overflow the page, and that won't work on a page with reserved bytes and a cell that starts in the reserved region, unless the boundary is at the very end of the page. Chromium issue 1276294. (check-in: f839c0bc83 user: drh tags: trunk)
19:19
Fix a minor typo in a comment. (check-in: 86ba06aa4c user: drh tags: trunk)
16:22
Fix two assert() statements in btree.c which were not true in the case of a corrupt database file. [forum:/forumpost/14819f2063|Forum post 14819f2063]. (check-in: 3b36ed79d8 user: drh tags: trunk)
15:48
Fix slightly-incorrect assert() statements. [forum:/forumpost/f1e83b77b5ff37db|Forum post f1e83b77b5ff37db] (check-in: 3c9f5c9def user: drh tags: trunk)
14:13
Increase the max_page_count on ROLLBACK, if necessary, so that it is sufficient to cover the entire database. Fix for the problem identified by [forum:/forumpost/3b9e894312|forum post 3b9e894312]. (check-in: 12c012162c user: drh tags: trunk)
2022-02-28
16:44
Fix the Xfer-optimization on the INSERT statement so that it is omitted if there is a RETURNING clause, since that optimization is not able to deal with RETURNING. See [forum:/forumpost/595e132f71|forum thread 595e132f71] for details. (check-in: 1d3760a517 user: drh tags: trunk)
14:26
Reorganize the bits in Mem.flags. Free up one bit for reuse. (check-in: fe454291d9 user: drh tags: trunk)
13:38
Expand the comment on the definition of the Mem object to better explain the meanings of the various flag bits. (check-in: f2f0426035 user: drh tags: trunk)
12:16
Performance optimization in initMemArray() saves about 750K cycles with only a 4-byte increase in code size. (check-in: c3e9cd5e74 user: drh tags: trunk)
12:08
The performance increase in the previous check-in of this branch was due to the revised loop in initMemArray() and reordering fields of Mem - not the call the memcpy(). Changing the code to avoid memcpy() results in an even better gain, and code that is far less dodgy. (Closed-Leaf check-in: d74aa97953 user: drh tags: optimize-init-mem)
03:25
An optimization to initMemArray() saves almost 500K cycles. But it seems a little dodgy. I want to think about this more before merging to trunk. Perhaps there is a cleaner way to accomplish the same. (check-in: 7fefd86761 user: drh tags: optimize-init-mem)
02:35
Avoid unnecessary deinitialization of the Mem.flags field. (check-in: bb520293d8 user: drh tags: trunk)
2022-02-27
21:10
Cache values of UnpackedRecord.aMem[0] into new fields of UnpackedRecord. This avoids extra indirections and saves about 750K cycles. (check-in: 7cf2d1f039 user: drh tags: trunk)
18:54
Bypass a single branch in vdbeRecordCompareString() in the common case, for a performance increase of over 600K CPU cycles. (check-in: 36f0f07e50 user: drh tags: trunk)
2022-02-26
23:01
Remove an unnecessary local variable for a small performance increase and size reduction. (check-in: 9bda611f0d user: drh tags: trunk)
14:39
Allow the OP_Column opcode to read rows that are larger than SQLITE_LIMIT_LENGTH as long as the specific field being read out is less than or equal to SQLITE_LIMIT_LENGTH. (check-in: 1bf4848995 user: drh tags: trunk)
2022-02-25
20:11
Revise the initialization processing for OP_Column to make it about 1.8 million cycles faster. (check-in: 3b7259ebd5 user: drh tags: trunk)
18:51
Fix the OP_NullRow documentation so that it accurately describes what it actually does for a pseudo-cursor. (check-in: 4e26990209 user: drh tags: trunk)
18:15
Dead branch: Superseded by [3b7259ebd5b9b1f7] (Closed-Leaf check-in: 09a47f32a4 user: drh tags: simplify-cursor-state)
16:21
Do not do a deferred seek on a cursor that is marked nullRow. (check-in: 1c026bcb3c user: drh tags: simplify-cursor-state)
15:44
This branch proposes to consolidate various state fields of VdbeCursor (specifically, nullRow, deferredMoveto, and cacheStatus) into a single eCurState field. This first check-in adds the new eCurState field while retaining and continuing to use the legacy state fields. (check-in: 7953716c12 user: drh tags: simplify-cursor-state)
13:29
Improved comment on the codeDeferredSeek() routine. No code changes. (check-in: 54f49f65ac user: drh tags: trunk)
11:30
Fix unimportant typos in comment text. (check-in: 3934601329 user: drh tags: trunk)
01:23
Invoking SQLITE_TESTCTRL_INTERNAL_FUNCTIONS causes the flags field of the PRAGMA function_list to show all bits, including internal-use-only bits, rather than just the bits that are part of the API. (check-in: ad1be34828 user: drh tags: trunk)
01:10
Remove unused P4 types on the Opcode object. Saves a few bytes of code space and simplifies the code. (check-in: aca5384359 user: drh tags: trunk)
00:09
Merge shell-tweaks enhancements (with 3.38) (check-in: 4c7d94d3f3 user: larrybr tags: cli_extension)
2022-02-24
14:44
Change the OP_Next and OP_Prev opcodes so that they invoke sqlite3BtreeNext() and sqlite3BtreePrevious() directly rather than through a function pointer, for improved performance and a decrease in code size. (check-in: 9d13cbbef3 user: drh tags: trunk)
11:09
Spell fix, no code change (check-in: f2597fae3c user: larrybr tags: trunk)
04:29
Regularize CLI .mode processing (check-in: 6d0557244f user: larrybr tags: cli_extension)
01:41
Fix an assert() so that it is still valid following OOM with the latest enhancements. (check-in: ecf832f71f user: drh tags: trunk)
01:08
Update the version number of version 3.39.0 for the next development cycle. (check-in: 9542e9bebb user: drh tags: trunk)
2022-02-23
22:56
Add a new subclass for MemPage.xCellSize specifically for the case of a leaf page in a B+Tree, that is optimized for that cases. This gains a half million cycles or more at the cost of less than 200 bytes of code space. (check-in: 7ad829224a user: drh tags: trunk)
18:23
Optimize calls to get2byte() in btree.c for almost a one-million cycle performance gain and a few bytes less code. (check-in: 41061f2996 user: drh tags: trunk)
17:16
Defer the check for error check Pgno zero until after the page fetch misses, to gain a few CPU cycles and a small size reduction. (check-in: ece326db50 user: drh tags: trunk)
17:00
Store the page number for the PENDING_BYTE page in the Pager object, rather than computing the page number every time it is needed, because it turns out that number is needed quite frequently. This saves a few hundred thousand CPU cycles and a few bytes of code space. (check-in: 5aa9c3eb45 user: drh tags: trunk)
10:10
Sync with 3.38 (check-in: b9b27d74b9 user: larrybr tags: cli_extension)
2022-02-22
22:28
Sync w/3.38, add .parameter ls to CLI (check-in: 8c9a5fb26b user: larrybr tags: shell-tweaks)
20:38
Don't reload the schema on PRAGMA database_list. (check-in: 630fe446da user: drh tags: reuse-schema)
20:29
For the "PRAGMA database_list" statement, do not check to see if the schema is up-to-date and do not try to reload the schema. (check-in: 710de6a213 user: drh tags: trunk)
20:04
Merge version 3.38.0 into the reuse-schema branch. (check-in: 8fe85dcdb1 user: drh tags: reuse-schema)
19:56
Merge version 3.38.0 into the begin-concurrent-pnu-wal2 branch. (check-in: 8387e4f3af user: drh tags: begin-concurrent-pnu-wal2)
19:46
Merge version 3.38.0 into the wal2 branch. (check-in: de24c8ee41 user: drh tags: wal2)
19:37
Merge version 3.38.0 into the begin-concurrent-report branch. (check-in: 0bbf7be25d user: drh tags: begin-concurrent-report)
19:30
Merge version 3.38.0 into the begin-concurrent branch. (check-in: c5998c43c1 user: drh tags: begin-concurrent)
18:58
Version 3.38.0 (check-in: 40fa792d35 user: drh tags: trunk, release, major-release, version-3.38.0)
15:47
Fix an undersized memory allocation in the test harness for RTREE. This error was in test logic only, not in the SQLite library itself. [forum:/forumpost/35470a0a72a005e1|forum post 35470a0a72a005e1] (check-in: 7e3c959439 user: drh tags: trunk)
2022-02-21
16:49
Merge the latest trunk changes into the reuse-schema branch. (check-in: b3c26f4a34 user: drh tags: reuse-schema)
14:30
Fix compiler warnings for older compilers (ex: gcc 4.0.1 powerpc-apple-darwin). (check-in: 5c188243d7 user: drh tags: trunk)
13:44
Remove stray tab characters from auxiliary source code files. (check-in: e25e33582b user: drh tags: trunk)
13:02
Add SQLITE_OMIT_JSON to the compile-time option test sequence. (check-in: f36325a6e2 user: drh tags: trunk)
00:23
Do not allow error messages from sqlite3NestedParse() to leak up into the main parse. (check-in: 9c4e21abdc user: drh tags: trunk)
2022-02-19
21:25
Improve .backup and .save help text (check-in: 741651fd4b user: larrybr tags: trunk)
15:57
Add a NEVER() to a branch that is unreachable for STAT4. (check-in: e4e97505af user: drh tags: trunk)
2022-02-17
17:24
Enhance the documentation on sqlite3_stmt_readonly() to explain that EXPLAIN and EXPLAIN QUERY PLAN do not affect the return value. Add test cases to verify this. Add new test cases and requirements marks for complete requirements test coverage on this interface. (check-in: a6fbb7ba05 user: drh tags: trunk)
14:33
Remove references to the now-defunct SQLITE_ENABLE_JSON1 compile-time option. (check-in: db950192c9 user: drh tags: trunk)
14:29
Fix a testing error on Windows that was recently added to shell5.test. (check-in: 6cace54320 user: drh tags: trunk)
2022-02-16
15:11
Make the sqlite3_error_offset() interface accessible from TCL using the new "erroroffset" method on the sqlite3 object. (check-in: 3454a1222b user: drh tags: trunk)
2022-02-15
20:56
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: b9ba43fcb3 user: drh tags: reuse-schema)
20:47
Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 1336d2f23f user: drh tags: begin-concurrent-pnu-wal2)
20:37
Merge recent trunk enhancements into the wal2 branch. (check-in: 7dba818893 user: drh tags: wal2)
20:24
Merge recent trunk enhancements into the begin-concurrent-report branch. (check-in: 213df7a063 user: drh tags: begin-concurrent-report)
20:18
Merge the latest trunk changes into the begin-concurrent branch. (check-in: 94838f16ba user: drh tags: begin-concurrent)
17:04
Sync with trunk (check-in: 2b4a295c58 user: larrybr tags: shell-tweaks)
13:23
Improved rendering of floating point numbers without a fractional part in ".dump" output from the CLI. [forum:/forumpost/550d877659f37cb2|Forum post 550d877659f37cb2]. (check-in: 9edaeed56f user: drh tags: trunk)
11:46
New assert() statements to help prove correctness of memjournal.c. (check-in: d74ec88c2f user: drh tags: trunk)
2022-02-14
21:11
Generalize the in-memory journal so that it is able to accept writes that begin at any offset less than or equal to the current file size. (check-in: c039d5476e user: drh tags: trunk)
18:55
CLI .import can auto-rename non-unique column names when it creates a new table (check-in: 4b5d07ea7e user: larrybr tags: trunk)
18:18
Minor correction to the early corruption detection added by [a6fda39e81d0da98|check-in a6fda39e81d0da98] so that it works even if the page being cleared in page 1 of the database. (check-in: a5ec16907e user: drh tags: trunk)
13:53
Fix a bad assert() (it needs an "||CORRUPT_DB" term) in b-tree, discovered by dbsqlfuzz. (check-in: f5f263cc62 user: drh tags: trunk)
01:12
CLI's .import column rename made more minimal, and reports renames. (Leaf check-in: c626cff7f9 user: larrybr tags: auto-column)
2022-02-13
22:18
Sync w/trunk, fix zAutoColumns placement blunder, all to pass all TCL tests (check-in: 67dc59f46d user: larrybr tags: auto-column)
2022-02-12
18:56
Do not run merge1.test with SQLITE_OMIT_VIRTUALTABLE builds. (check-in: bf8dbfd499 user: dan tags: trunk)
16:02
Fix a possible user-after-free in ALTER TABLE found by asan. (check-in: 9252619d41 user: dan tags: trunk)
13:45
Update fuzz.test to account for a change in error message made in the core. (check-in: c57601b51f user: dan tags: trunk)
13:37
Avoid dropping SQLITE_TOOBIG errors in the quote() function. (check-in: 115c3051a1 user: dan tags: trunk)
13:12
For .import auto-column, aid build-time override of rename decoration. (check-in: 433e5ead2b user: larrybr tags: auto-column)
10:48
Fix auto-column bug noted by post https://sqlite.org/forum/forumpost/d102c15d63 (check-in: 689137e1b5 user: larrybr tags: auto-column)
02:15
Sync w/trunk, allow build-time override of auto-column decorating character (check-in: caaef4c592 user: larrybr tags: auto-column)
2022-02-11
21:20
Fix a test in without_rowid1.test so that it is disabled without ALTER TABLE support, as it uses ALTER TABLE. (check-in: ca22a64e6f user: drh tags: trunk)
19:41
Update some OOM tests of the ALTER TABLE command to account for an error message which may be returned if opening the temp db fails. (check-in: 3409fd4150 user: dan tags: trunk)
17:47
Load recent dbsqlfuzz finds into test/fuzzdata8.db. (check-in: b275ad250d user: drh tags: trunk)
17:47
Reference the wayback machine for the dead hyperlink to the MS support page in the comments about why the extra typedef for va_arg(). No code changes. (check-in: ab1a9b5b78 user: drh tags: trunk)
17:33
Fix an assert() in the pager by adding "|| CORRUPT_DB", in as much as the assert() is not necessarily true if the database size in the header is wrong. dbsqlfuzz f2f996065b90988aa9b0ae425b66dbb296546a08. (check-in: a51402e8c2 user: drh tags: trunk)
16:10
Fix a problem in [c006515ae6faff65] causing an assert() to fail with some build configurations. (check-in: d7ff262d6d user: dan tags: trunk)
14:08
Use the enhanced SQLITE_TESTCTRL_LOCALTIME_FAULT (2) capability to do better testing of the 'localtime' and 'utc' modifiers to date/time functions. (check-in: f38071946a user: drh tags: trunk)
13:40
Upon .import column renaming, issue message saying so. Test this. (check-in: 8b6ca9304b user: larrybr tags: auto-column)
12:06
Fix the bind2.test test script so that it works even if SQLITE_ENABLE_PREUPDATE_HOOK is not defined. Fix for test-case breakage from check-in [c006515ae6faff65]. (check-in: 937d3a45b3 user: drh tags: trunk)
11:37
Work around the MSVC bug that prevents the use of function pointer types in the second argument of va_arg() by adding a typedef. (check-in: eae3ab0a05 user: drh tags: trunk)
01:21
CLI auto-column rename revamped after forum discussion. (check-in: 2da1f8e45e user: larrybr tags: auto-column)
2022-02-10
23:12
Fix SQLITE_TESTCTRL_LOCALTIME_FAULT so that it works even if mutexes are enabled. (check-in: 64537a0669 user: drh tags: trunk)
21:26
Enhance SQLITE_TESTCTRL_LOCALTIME_FAULT so that is able to install an alternative localtime() interface so that the localtime logic an be better tested. (check-in: 6e25cb0890 user: drh tags: trunk)
15:40
Performance improve to the 'localtime' and 'utc' modifiers for date/time functions. (check-in: 85cb601475 user: drh tags: trunk)
12:57
Faster implementation of the date(), time(), and datetime() functions. (check-in: fa1b393bdb user: drh tags: trunk)
12:31
Fix the test harness so that it builds without SQLITE_ENABLE_PREUPDATE_HOOK. Has been broken since [c006515ae6faff65]. (check-in: 4565f71129 user: drh tags: trunk)
03:21
A CLI feature. auto .import (new table) columns. WIP (check-in: 7e3be36dfc user: larrybr tags: auto-column)
02:09
Create new branch named "auto-column" (check-in: 066febe893 user: larrybr tags: auto-column)
01:01
Fix a typo in documentation. No code changes. (check-in: e97c6ad4c9 user: drh tags: trunk)
2022-02-09
18:47
When process first moves a database into WAL mode and then tries to run sqlite3_wal_checkpoint() without first performing a transaction, first try to run a synthesized transaction to get the Pager caught up before attemptingn the checkpoint. [forum:/forumpost/fd0f19d229156939|forum post fd0f19d229156939]. (check-in: eee6de1967 user: drh tags: trunk)
18:42
Fix a problem with using sqlite3_bind_value() with sqlite3_value objects obtained from sqlite3_preupdate_new() when an integer value is written to a column with real affinity. (check-in: c006515ae6 user: dan tags: trunk)
16:18
Prototype implementation of IF EXISTS and IF NOT EXISTS clauses on the various forms of ALTER TALE. (Leaf check-in: 460abf93ac user: drh tags: alter-table-if-exists)
2022-02-08
15:14
Writes to the subjournal should be all-or-nothing. Fix for dbsqlfuzz fe3c397fb90029313446c4e0f4a6cd0c81dd9621. (check-in: 22cc55e84f user: drh tags: trunk)
13:41
Provide sqlite3_error_offset() data for some new errors. (check-in: 1269206db8 user: drh tags: trunk)
12:24
comment-only change to sqlite3.h (check-in: f815cf4a5f user: larrybr tags: trunk)
12:13
Do not show the error code number of CLI error messages unless the error is something other than 1 (SQLITE_ERROR). (check-in: b471601892 user: drh tags: trunk)
11:52
Improved error message formatting in the shell. Distinguish between "Parse errors" and "Runtime errors". (check-in: ae3e322a02 user: drh tags: trunk)
2022-02-07
18:52
Disable the sqlite3_error_offset() when the error occurs in a trigger or view or some other bit of text that is not part of the original statement. (check-in: 0e909e34fa user: drh tags: trunk)
01:09
When create table/view fails due to name taken, say which took it. (check-in: 9a206e37fb user: larrybr tags: trunk)
2022-02-06
23:54
Fix unreachable branches in the sqlite3_error_offset() logic. (check-in: 031381aea3 user: drh tags: trunk)
22:13
The sqlite3_vtab_in() interface should return false for a vector IN constraint. (check-in: 245d0241c7 user: drh tags: trunk)
21:13
With the new ALTER TABLE under PRAGMA writable_schema=ON processing, do not ignore non-parser errors such as OOMs. (check-in: 36653ccef6 user: drh tags: trunk)
14:30
CLI extended parsing, new .parameter subcommands, and .x features fairly well tested (check-in: 9c664984fd user: larrybr tags: shell-tweaks)
11:51
Faster computation of Expr.nHeight. (check-in: a7a5af327b user: drh tags: trunk)
11:26
Record the error offset on INTEGER tokens. (check-in: 38e057a580 user: drh tags: trunk)
00:30
Further improvements to localization of errors in input SQL. (check-in: fa34676042 user: drh tags: trunk)
00:07
Sync with trunk. More shell9.test tests to come. (check-in: 2e72dc4621 user: larrybr tags: shell-tweaks)
2022-02-05
23:45
CLI cleanup, mode push/pop, parameter list beautification (check-in: 53d4582a0e user: larrybr tags: shell-tweaks)
23:11
Enhance sqlite3_error_offset() to report the position of unresolved identifiers. (check-in: 5b8d257790 user: drh tags: trunk)
21:49
Record the position of many identifiers in the parse using the new Expr.w.iOfst field. This is done with the idea of providing offset results for sqlite3_error_offset() for a more kinds of errors, though that part is not yet implemented. (check-in: 32a3a53b62 user: drh tags: trunk)
15:26
Fix CLI Windows build, refine its help, re-org ShellState (check-in: 991a06a480 user: larrybr tags: shell-tweaks)
13:27
Update stale evidence marks on sqlite3_vtab_rhs_value() test cases. (check-in: 46744b83d5 user: drh tags: trunk)
12:39
When PRAGMA writable_schema=ON, allow ALTER TABLE to proceed even if there are entries in the sqlite_schema table that do not parse. (check-in: fc4c82e569 user: drh tags: trunk)
12:05
Fix a NULL pointer dereference that can occur after OOM. Problem introduced by check-in [197cbabf1767d060]. (Closed-Leaf check-in: d4e6b9f0f7 user: drh tags: relaxed-alter-table)
11:13
Fix documentation typo. (check-in: 1a7d8bb5ea user: drh tags: trunk)
01:01
Typo fixes in documentation. (check-in: 1ec747d1c3 user: drh tags: trunk)
2022-02-04
21:49
CLI .param save/load done; many other small refinements (check-in: 6d415ac2c1 user: larrybr tags: shell-tweaks)
20:16
Test case for permissive ALTER TABLE RENAME when writable_schema=ON. (check-in: 7ee44f66c8 user: drh tags: relaxed-alter-table)
20:07
One more case of disabling errors for ALTER TABLE RENAME when writable_schema=ON. (check-in: c52d0dd8f4 user: drh tags: relaxed-alter-table)
19:13
Add a compile-time option to include vt02.c in fuzzcheck. (check-in: c404c8c726 user: drh tags: trunk)
18:12
Merge trunk enhancements into the reuse-schema branch. (check-in: 5744e1020b user: drh tags: reuse-schema)
18:02
Merge recent trunk changes into the begin-concurrent-pnu-wal2 branch. (check-in: cb045aba7c user: drh tags: begin-concurrent-pnu-wal2)
17:52
Merge trunk enhancements into the wal2 branch. (check-in: d2de02f372 user: drh tags: wal2)
17:51
Merge all recent trunk enhancements into the begin-concurrent-report branch. (check-in: 1c88bcfff5 user: drh tags: begin-concurrent-report)
17:40
Merge trunk enhancements into the begin-concurrent branch. (check-in: 85054a8691 user: drh tags: begin-concurrent)
16:43
Allow ALTER TABLE RENAME COLUMN to proceed even if there are errors in the schema, as long as PRAGMA writable_schema=ON is active. (check-in: 197cbabf17 user: drh tags: relaxed-alter-table)
13:15
Fix various harmless compiler warnings. (check-in: 70049342d5 user: drh tags: trunk)
13:05
For the MULTI-INDEX-OR optimization, when pushing down WHERE clause terms from the main query into the various OR-term subqueries, do not push down slices of a vector comparison, since the right-hand operand of the comparison might have only been initialized in a different OR branch that was not taken. dbsqlfuzz 80a9fade844b4fb43564efc972bcb2c68270f5d1. (check-in: 9f67ad00cd user: drh tags: trunk)
09:39
Fix .param edit unable to edit script vars (bad assert) (check-in: 62d212d0da user: larrybr tags: shell-tweaks)
2022-02-03
21:07
Sync to trunk. Shell tests pass. (check-in: 79275b81dc user: larrybr tags: shell-tweaks)
20:57
Scripting and .parameter enhancements most in; all in working (check-in: a1581118b0 user: larrybr tags: shell-tweaks)
18:14
Minor typo fix in comment. No code changes. (check-in: f9b763042c user: drh tags: trunk)
14:37
Do not allow the vdbe-compress.tcl script to generate structures named "do" or "if". (check-in: e35ab16dd0 user: drh tags: trunk)
14:19
Prohibit schema changes within xBestIndex callbacks. (check-in: bb0f056b3f user: drh tags: trunk)
2022-02-02
21:06
Improvement to the sqlite3_vtab_in_first() documentation. (check-in: 403e7ac900 user: drh tags: trunk)
19:51
Add the sqlite3_vtab_in() interface that allows virtual tables to process IN constraints all at once, rather than one value at a time. (check-in: 52559af093 user: drh tags: trunk)
19:30
Additional test cases. (Closed-Leaf check-in: 733d81c3a6 user: drh tags: batch-in-operator)
19:15
Test cases for sqlite3_vtab_in() and sqlite3_vtab_distinct(). (check-in: 21afb81d0a user: drh tags: batch-in-operator)
18:47
Improved documentation for sqlite3_vtab_in(). No code changes. (check-in: c99df4ab5d user: drh tags: batch-in-operator)
16:24
Relax the restriction that the RHS of the IN operator must be a list in order for sqlite3_vtab_in() to work. Change an unreachable branch into an assert(). (check-in: 3bf2153440 user: drh tags: batch-in-operator)
15:10
Be sure that sqlite3_vtab_in_first() and _next() set the correct encoding. (check-in: 04edf36ee8 user: drh tags: batch-in-operator)
14:36
Refactor sqlite3_vtab_in() to make use of the existing sqlite3_value_pointer() mechanism for passing the list of IN operator RHS values into xFilter, for improved memory safety. (check-in: 8965929be2 user: drh tags: batch-in-operator)
11:37
Fix a harmless code indentation issue. (check-in: 41d8d26e48 user: drh tags: trunk)
2022-02-01
21:59
Tweaks to the sqlite3_vtab_in() interface. (check-in: 75040183b8 user: drh tags: batch-in-operator)
16:30
Index in 2nd argument to sqlite3_vtab_in() should be on the aConstraint[] array, not the internal array of all constraints. (check-in: 5acf90a931 user: drh tags: batch-in-operator)
15:08
Take CLI's wordwrap from trunk (check-in: 768c70a926 user: larrybr tags: shell-tweaks)
14:58
Add new interfaces to enable virtual table to process IN operator constraints all at once, rather than one element at a time. (check-in: eb84b80e1f user: drh tags: batch-in-operator)
13:17
CLI: Take extra care to not split a multi-byte unicode character when doing wordwrap. (check-in: 00b1b7020a user: drh tags: trunk)
12:28
CLI: Add the --ww option as an alias for --wordwrap. Improve the wordwrap algorithm so that it breaks at punctuation if it cannot find space. Always wordwrap with --ww even if there is a .width setting for the column. (check-in: 1b528e31f8 user: drh tags: trunk)
02:50
Add "--wordwrap on/off" option for CLI columnar modes, qwbox shortcut (check-in: 10dbc27870 user: larrybr tags: trunk)
00:00
CLI: In ".mode column" output, if any row contains a newline or wraps, then put a single blank line in between each pair of rows to provide additional visual separately. (check-in: fd42f4c304 user: drh tags: trunk)
2022-01-31
22:14
CLI: for columnar output modes, make sure the header is not too big. Also, improve the help text. (check-in: 070fae3a09 user: drh tags: trunk)
20:39
CLI: Fix a problem with tabs in the new qbox mode. (check-in: ca96ab3ef7 user: drh tags: trunk)
19:52
Sync to trunk (check-in: f51a17b627 user: larrybr tags: shell-tweaks)
16:29
Fix harmless compiler warnings in MSVC. (check-in: 3ec6141c41 user: drh tags: trunk)
15:59
Do not attempt to limit the number of columns used in a table to a prefix if the table will be used to construct an automatic index or bloom filter. dbsqlfuzz 787d9bd73164c6f0c85469e2e48b2aff19af6938. (check-in: f8766231d2 user: drh tags: trunk)
14:14
CLI: Enhancements to columnar output modes. (See [forum/forumpost/5b53cd851f66441f9|forum post 5b53cd851] for discussion.) New output mode "qbox". New output options "--quote" and "--wrap N". (check-in: 539cef5214 user: drh tags: trunk)
12:29
Fix an obscure problem in sqlite3_backup_init() caused by [6a45d8fe8bfbc11a|check-in 6a45d8fe8bfbc11a]. See [forum:/forumpost/8b39fbf3e7b5c278|forum post 8b39fbf3e7] for the original bug report. (check-in: 639fc7633b user: drh tags: trunk)
10:55
CLI: Fix the new ".mode box" output so that it works with unicode characters. (check-in: 454af48724 user: drh tags: trunk)
2022-01-30
21:09
CLI: For columnar modes ("box", "column", "table", "markdown") the ".width" is now both the minimum and maximum width of the column. Text that spans multiple lines or that contains tabs is properly formatted. If any part of the output contains multi-line text, then extra separators are provided between each row. (check-in: c10ed4a7fe user: drh tags: trunk)
11:44
Always enable all JSON tests, now that JSON is included by default. (check-in: 8c9f350182 user: drh tags: trunk)