SQLite

Timeline
Login

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

16540 check-ins using file ext/fts1/fulltext.c version 37698e19

2024-09-18
18:04
Improvements to the scope of valueFromFunction(). (Leaf check-in: b021399a user: drh tags: branch-3.28)
2024-06-07
00:20
Allow the query planner access to the argument of LIMIT even if that argument is a bound parameter. (check-in: 148d505c user: drh tags: branch-3.28)
2024-06-06
16:06
Better optimize queries that use parameters in the LIMIT clause. (Closed-Leaf check-in: b44f2676 user: drh tags: branch-3.28-var-in-limit)
2024-04-02
18:48
Fix typos in comments. Provided ".wheretrace" debugging output for the interstage heuristic module. Do omit automatic index loops in the interstage heuristic. (check-in: 357d9513 user: drh tags: branch-3.28)
18:31
Fix table-valued functions so that they will work as the right table in a LEFT JOIN. Ticket [2ae0c599b735d59e] (check-in: 1f97086d user: drh tags: branch-3.28)
11:54
Add a heuristic in between the two solver() passes of the query planner that tries to prevent a very slow query plan in cases where the output row count estimate is imprecise. (check-in: 74b247d9 user: drh tags: branch-3.28)
2023-11-29
16:26
Fix a duplicate assert() caused by the second cherrypick in the previous check-in. (check-in: f10d4fc4 user: drh tags: branch-3.28)
16:07
Remove Window objects from the corresponding Select.pWin list when they are deleted, as they are, for example, when the ORDER BY clause is optimized out. (check-in: f9c6e6a7 user: drh tags: branch-3.28)
2023-10-19
21:05
Ensure that when an ephemeral cursor is reopened with a second invocation of to OP_OpenEphemeral, the sequence counter is reset and the cache marked as stale. Fix for [9cdc5c46]. (check-in: d4bfa8d2 user: drh tags: branch-3.28)
2023-09-15
20:04
Drop support for the view-scan optimization as it was causing multiple performance regressions. In its place, reduce the estimated row count for DISTINCT subsqueries by a factor of 8. (check-in: 796a65fa user: drh tags: branch-3.28)
2023-02-26
11:52
In the omit-unused-subquery-columns optimization, be sure to remove the EP_Skip and EP_Unlikely flags from the result set expressions that get nulled-out. dbsqlfuzz bf1d3ed6e0e0dd8766027797d43db40c776d2b15. Also fix an incorrect ".selecttrace" code block. (check-in: 83a7f13e user: drh tags: branch-3.28)
2023-02-16
21:01
Fix an #ifdef that uses a different macro name from the main branch. (check-in: ad6ac5d3 user: drh tags: branch-3.28)
19:04
Back-port omit-unused-subquery-column enhancements into the 3.28 branch. (check-in: 57a4e91f user: drh tags: branch-3.28)
14:29
Do not compute result columns of subqueries that are never used. Make those columns NULL instead. This optimization potentially resolves the enhancement request described by [ticket baa5bb76c35a124c]. (check-in: 0163b697 user: drh tags: branch-3.28)
01:29
Do not compute unused result columns of subqueries. This optimization will potentially resolve the performance optimization request of [ticket baa5bb76c35a124c]. (Closed-Leaf check-in: 0c21b6a5 user: drh tags: branch-3.26)
01:21
Update test cases so that they work with TCL 8.7 and later. (check-in: e9b762de user: drh tags: branch-3.26)
2023-02-15
13:00
Update the configure script so that it contains the correct version number. (check-in: a7cbf308 user: drh tags: branch-3.26)
2023-01-25
17:24
Change the instrumentation messages on this branch so that they contain "v=7" instead of "v=6". (Leaf check-in: acea12d9 user: dan tags: schema-version-instr)
17:09
Experimental patch to put page buffers on an internal per-connection list for reuse instead of free()ing them when the page-cache is reset. (check-in: 1e4cfd2f user: dan tags: schema-version-instr)
2023-01-19
21:05
Add test logging around the pcache1FreePage() loop in pcache1TruncateUnsafe(). (check-in: a057f9cb user: dan tags: schema-version-instr)
2023-01-16
20:33
Another version of the debug-only logging on this branch. (check-in: 906caf89 user: dan tags: schema-version-instr)
2023-01-14
19:36
Add OOM check, per tip at forum post 933479b2d5 (Leaf check-in: c66c7734 user: drh tags: branch-3.40)
19:27
Add OOM check, per tip at forum post 933479b2d5 (check-in: eda84dcf user: larrybr tags: trunk)
19:09
Doc-only fix, per forum post 0cfaf6876b (check-in: eac135fd user: larrybr tags: trunk)
2023-01-13
20:49
Fix another lsm compression-mode bug. (check-in: f9fafc94 user: dan tags: trunk)
19:32
In expression nodes of type REGISTER with sub-type COLUMN, ensure that the iColumn field is set correctly, as otherwise the "IS NULL" operator might be incorrectly optimized. Fix for the problem described by forum post d010a26798915b53. (check-in: 76b440c5 user: drh tags: branch-3.40)
19:29
In expression nodes of type REGISTER with sub-type COLUMN, ensure that the iColumn field is set correctly, as otherwise the "IS NULL" operator might be incorrectly optimized. Fix for the problem described by forum post d010a26798915b53. (check-in: 0819a186 user: drh tags: trunk)
19:00
Fix an error in debugging output discovered while working on the problem with RETURNING reported by forum post d010a26798. (Leaf check-in: 3ae9127f user: drh tags: returning-is-null-fix)
18:20
Add missing "const" on variables in recent RBU fixes. (check-in: 9b8dcd79 user: drh tags: trunk)
15:54
Enhance query planning so that it check for sqlite3_interrupt() calls and periodically invokes the progress handler callback (if any) during long query analyses. (check-in: bd8fa10e user: drh tags: trunk)
15:31
Update documentation for sqlite3_progress_handler(). (Closed-Leaf check-in: 41b4c407 user: drh tags: progress-during-prepare)
11:31
Remove an incorrect legacy assert(). (check-in: 3006b3b3 user: drh tags: progress-during-prepare)
2023-01-12
20:36
Reduce the frequency of calls to sqlite3ProgressCheck(). (check-in: 795aca4a user: drh tags: progress-during-prepare)
19:51
Fix sqlite3_prepare() so that it only invokes the progress handler on every N-th call to sqlite3ProgressCheck(), where N is the progress handler step count. Also fix faulty asserts exposed by the ability to interrupt in the middle of sqlite3_prepare(). (check-in: 05461651 user: drh tags: progress-during-prepare)
19:43
Merge latest trunk changes, including fixes for RBU pass-through mode, with this branch. (check-in: deb26d03 user: dan tags: reuse-schema)
19:28
Do not attempt to run new test file rbupass.test if the "demo" VFS is not available. (check-in: c5d958eb user: dan tags: trunk)
19:11
Avoid crashing when using an RBU VFS with a version 1 parent VFS. (check-in: d149772d user: dan tags: trunk)
17:13
When deleting any old OAL file before starting an RBU update or vacuum, use the same VFS as will be used for the target database, even if this is not the system default. (check-in: 5a86c6cb user: dan tags: trunk)
15:44
Fix a startup race condition that could occur if a wal file grows from 0 bytes while a BEGIN CONCURRENT transaction is running. Cherrypick of [c1feca4d]. (check-in: 2c14f383 user: dan tags: begin-concurrent-pnu-wal2)
15:30
Fix a startup race condition that could occur if a wal file grows from 0 bytes while a BEGIN CONCURRENT transaction is running. (check-in: c1feca4d user: dan tags: begin-concurrent)
13:25
Attempt to provide a mechanism to do early termination of long-running statement preparation by invoking the progress handler at strategic points during sqlite3_parpare(). This experiment shows that sqlite3_prepare() might leave the resulting prepared statement uninitialized following an interrupt. (check-in: 79636f2d user: drh tags: progress-during-prepare)
2023-01-11
22:45
Merge trunk into wasi-patches branch and add missing yes/no result to the configure script's output for the --with-wasi-sdk=PATH test. (check-in: adc0ede0 user: stephan tags: wasi-patches)
20:52
Fix duplicate semicolon in btreeInt.h. Forum post 8db1711ca2 (check-in: 7526c466 user: drh tags: trunk)
17:59
Fix a false-positive in the out-of-range jump detection logic that was added as part of RIGHT JOIN. (check-in: ab5bcb91 user: drh tags: trunk)
17:50
If OP_Rewind has P2 of zero, that is an assertion that the table is never empty. This fixes a false-positive in the out-of-subroutine jump detection logic added in version 3.39.0, and which was causing the assertion on the previous check-in. (Closed-Leaf check-in: 33fd9997 user: drh tags: code-generator-20230111)
16:44
Add an assert() to the byte-code engine that goes off if the OP_Halt opcode is invoked with SQLITE_INTERNAL. This causes the RIGHT JOIN error "Opcode jumps to ... which is outside the subroutine ..." to fail immediately, causing it to come more readily to tester's attention. There is at least one testcase in test/fuzzdata8.db that asserts due to this change. (check-in: b8f99441 user: drh tags: code-generator-20230111)
16:25
Fix problems with compressed LSM databases larger than 2GiB. (check-in: f8842245 user: dan tags: trunk)
16:17
Improved progress-handler and interrupt detection during PRAGMA integrity_check. (check-in: 6db42780 user: drh tags: trunk)
16:02
Fix another 64-bit offset problem in lsm. (Closed-Leaf check-in: 1f3d0bdc user: dan tags: lsm-compress-fixes)
00:27
Add a new sqlite3_is_interrupted() interface that can be used by long-running app-defined functions and similar to see if they need to exit early due to an sqlite3_interrupt() call. (check-in: d030f341 user: drh tags: trunk)
2023-01-10
19:57
When computing the datatypes for columns in a view, use the same datatype name as the underlying table if such is available and is consistent with the computed affinity of the column. Forum thread 7fb1fe9dcf310ef5. (check-in: 497a9836 user: drh tags: trunk)
15:07
Fix handling of unix paths that contain ".." components such that "/" is considered its own parent directory. Forum thread caa46bd1f2f2a255. (check-in: b829dd1b user: dan tags: trunk)
14:33
Improvements to the SQLITE_DIRECTONLY documentation. (check-in: b277ba40 user: drh tags: trunk)
14:31
Fix handling of unix paths that contain ".." components such that "/" is considered its own parent directory. (Closed-Leaf check-in: 3c6cadb3 user: dan tags: unix-path-fix)
2023-01-09
21:10
Fix some problems with large, compressed, lsm databases. (check-in: 956e985f user: dan tags: lsm-compress-fixes)
18:42
Clarify help for .quit. (check-in: 8004a2b7 user: larrybr tags: trunk)
12:01
Fix JSON functions so that they work correctly under PRAGMA trusted_schema. Forum thread c88a671ad083d153. (check-in: 51a5d83c user: drh tags: trunk)
2023-01-07
22:28
Doc-only update, sqlite3_preupdate_hook() return (check-in: 2da51d7e user: larrybr tags: trunk)
13:40
Account for read-only connections on LSM databases with non-default block or page sizes. (check-in: 3a2075b0 user: dan tags: trunk)
2023-01-06
19:03
Fix the threshold for logging "PRAGMA schema_version" slowness. (check-in: ca3854cb user: dan tags: schema-version-instr)
2023-01-05
19:48
One more iteration of "PRAGMA schema_version" instrumentation. (check-in: 0d908106 user: dan tags: schema-version-instr)
14:41
Changes a testcase() into an assert() due to the [e58bba93717cd6ff] change. (check-in: a6251d72 user: drh tags: trunk)
13:55
Remove the unused sqlite3IsMemdb() routine, to avoid a harmless compiler warning. (check-in: 4f512a39 user: drh tags: branch-3.40)
13:41
Fix a problem with applying integer affinity to a MEM_IntReal value. Forum post d270125fae. (check-in: d28d9398 user: drh tags: branch-3.40)
13:35
Fix a problem with applying integer affinity to a MEM_IntReal value. Forum post d270125fae. (check-in: e58bba93 user: dan tags: trunk)
01:32
Increase the version number to 3.40.2. (check-in: 43375ef8 user: drh tags: branch-3.40)
01:29
In the zipfile extension (which is not part of the SQLite amalgamation, but which is included in the CLI by default) ensure that fopen() is not invoked using a NULL filename. Fix for the issue reported by forum post d1c96a9032e564f8. (check-in: e4de5777 user: drh tags: branch-3.40)
01:26
In the zipfile extension (which is not part of the SQLite amalgamation, but which is included in the CLI by default) ensure that fopen() is not invoked using a NULL filename. Fix for the issue reported by forum post d1c96a9032e564f8. (check-in: d32757dd user: drh tags: trunk)
2023-01-04
18:32
Adjustments to the tool/warnings.sh script to account for compiler differences. (check-in: 863c03be user: drh tags: trunk)
17:46
Ensure that LIMIT clauses may be passed through to virtual table implementations even if the WHERE clause uses operators that may only be optimized by virtual, not built-in, tables (!=, functions, MATCH etc.). (check-in: f38caab2 user: dan tags: trunk)
16:54
Employ deliberate_fall_through macro to quiet some compilers. (check-in: 869635fb user: larrybr tags: trunk)
15:18
Enhance PRAGMA integrity_check so that it verifies that the string values stored in indexes are byte-for-byte identical to the values in the table, and not just equivalent according to the collating sequence. dbsqlfuzz 686e2e205e0c0594d3fb524bea0c25e621d1a870. (check-in: 9302e4bf user: drh tags: trunk)
11:58
Remove the unused "sqlite3StackAllocZero()" macro. (check-in: f0ca5720 user: drh tags: trunk)
11:57
Elaborate on the open-in-read-only fallback behavior of the SQLITE_OPEN_READWRITE flag, per user request. Unrelated trailing EOL whitespace cleanups. (check-in: 1003144f user: stephan tags: trunk)
03:14
Remove the JS-side SQLITE_WASM_DEALLOC sanity check which triggers the problem mentioned in [688c5c13d156] and [ae0196d86ee8], for reasons covered in the code comments, per discussion in forum post e5b20e1feb. (check-in: 65ff3200 user: stephan tags: trunk)
2023-01-03
19:27
Small performance increase in the symbol hash table. (check-in: a19597b4 user: drh tags: trunk)
18:51
Avoid an unnecessary call to strlen() in the sqlite3VdbeMemStringify() routine, for a performance increase and size reduction. (check-in: 284382d3 user: drh tags: trunk)
15:11
Small performance improvement in the btreeOverwriteCell() routine. (check-in: df5ea471 user: drh tags: trunk)
2023-01-02
20:52
Add some docs explaining a particular piece of [ae0196d86ee8]. No code changes. (check-in: 7f96803c user: stephan tags: trunk)
20:07
Another reformulation of SQLITE_WASM_DEALLOC to attempt to work around a Safari-specific quirk reported in forum post e5b20e1feb. (check-in: ae0196d8 user: stephan tags: trunk)
2023-01-01
12:22
An alternative solution to mapping SQLITE_WASM_DEALLOC to the proper function pointer in JS, to account for a Safari-specific quirk reported in forum post e5b20e1feb. (check-in: 688c5c13 user: stephan tags: trunk)
2022-12-31
05:26
Remove redundant assignment in kvvfs's decoding. (check-in: 2ffbf0c7 user: peter.d.reid tags: trunk)
05:19
Avoid an infinite loop when an unexpected character is being decoded by kvvfs (check-in: 6909195f user: peter.d.reid tags: trunk)
2022-12-29
18:54
A call to sqlite3_declare_vtab() should not cause DML/DDL authorization failures. (check-in: eed1e030 user: drh tags: trunk)
2022-12-28
14:55
Merge the 3.40.1 changes into the reuse-schema branch. (Leaf check-in: 126c68bd user: drh tags: reuse-schema-3.40)
14:03
Version 3.40.1 (check-in: df5c253c user: drh tags: release, version-3.40.1, branch-3.40)
2022-12-27
22:46
Add sqlite3changeset_new/old_js(), which work like sqlite3_preupdate_new/old_js() but on changesets. (check-in: e8afad63 user: stephan tags: trunk)
14:34
Expose sqlite3_preupdate_hook() and friends to the JS API. (check-in: cc02783a user: stephan tags: trunk)
14:14
Fix a broken assert() in fts5. (check-in: ff1d4561 user: dan tags: branch-3.40)
14:12
Fix a faulty assert() in fts5. (check-in: 4acff807 user: dan tags: branch-3.40)
14:11
Fix an assert() in fts5. Simplify memdb xLock/xUnlock some. (check-in: 43079c52 user: dan tags: branch-3.40)
14:06
Fix a missing 0 at the end of an integer literal in the MEMSYS5 fix. (check-in: e3bc10e8 user: drh tags: branch-3.40)
14:03
Fix a missing 0 at the end of an integer literal in check-in [8da0f0c38a458c57] (check-in: e3776796 user: drh tags: trunk)
13:52
Fix a broken assert() in fts5. (check-in: ff5a9b05 user: dan tags: trunk)
12:25
Add links to module-symbols.html for newly-added APIs. (check-in: 335ef03e user: stephan tags: trunk)
12:17
Add two more tests to [f99f8e3ecfe20]. (check-in: 9cffccd3 user: stephan tags: trunk)
12:13
Expose sqlite3_commit/rollback/update_hook() to JS API. (check-in: f99f8e3e user: stephan tags: trunk)
11:53
Fix minor problems in test scripts where.test and recover1.test. (check-in: 64588bd5 user: dan tags: branch-3.40)
11:40
Add an optional argument to oo1.DB.transaction() to specify an explicit BEGIN qualifier. (check-in: 507335c1 user: stephan tags: trunk)
2022-12-26
17:15
Expose the auto-extension API to JS and reorganize some nearby code. (check-in: 52b229d1 user: stephan tags: trunk)
17:09
Fix an unsafe use of sqlite3_mprintf() in sqlite3_overload_function() identified by forum post: https://sqlite.org/forum/forumpost/95b338860d. (check-in: a3152226 user: drh tags: branch-3.40)
17:02
Prevent the sessions rebaser from generating changesets containing UPDATE records for which non-PK fields are present in the old.* but not the new.* record. Also update the changeset iterator to work around such changesets. (check-in: 629dbe25 user: drh tags: branch-3.40)
16:54
In the unix backend, when implementing the defenses against small file descriptors, delete a file just created if it was opened with O_EXCL|O_CREAT so that it can be created again the next time through the loop. Fix for the problem described by forum post 699af709ab3a8ccf. (check-in: 174acf32 user: drh tags: branch-3.40)
16:45
Fix an over-zealous assert() reported by Yong Heng. (check-in: 1e9dbb5a user: drh tags: branch-3.40)
16:24
Ensure the RETURNING clause is honoured when a row of a temp table is updated by an ON CONFLICT clause. (check-in: ac9568cf user: drh tags: branch-3.40)
16:12
Add the SQLITE_FCNTL_RESET_CACHE verb. Use it to ensure that the page cache is purged before and after a the recovery extension is run. (check-in: 71dd920f user: drh tags: branch-3.40)
16:03
Fix corner cases in UTF8 handling in the REGEXP extension. Forum post 3ffe058b04. (check-in: 93e68b39 user: drh tags: branch-3.40)
15:55
Fix a off-by-one error in code generation that comes up when doing a DISTINCT query against a virtual table with an OR term in the WHERE clause and where the ORDER BY clause has 64 or more references to the result set. Forum post dfe8084751. The error is harmless in production builds, but might cause an assertion fault in a debugging build. (check-in: cbcd7d9b user: drh tags: branch-3.40)
15:44
Fix safe mode authorizer callback to reject disallowed UDFs. Reported at Forum post 07beac8056151b2f. (check-in: 70964b8a user: drh tags: branch-3.40)
15:21
Fix an infinite loop in the MEMSYS5 auxiliary memory allocator that occurs for memory allocations between 500MiB and 1GiB in size. Error introduced by check-in [949133231f8f751a]. The problem only affects builds that include the SQLITE_ENABLE_MEMSYS5 compile-time option. (check-in: c10d40ca user: drh tags: branch-3.40)
15:14
Fix an infinite loop in the MEMSYS5 auxiliary memory allocator that occurs for memory allocations between 500MiB and 1GB in size. Error introduced by check-in [949133231f8f751a]. The problem only affects builds that include the SQLITE_ENABLE_MEMSYS5 compile-time option. (check-in: 8da0f0c3 user: drh tags: trunk)
15:08
Document sqlite3.capi.sqlite3_prepare_v3() as accepting an ArrayBuffer and ensure that it can. (check-in: ae3ae92e user: stephan tags: trunk)
14:55
Correct some internal-use JS docs and update the 'string:flexible' type conversion to accept an ArrayBuffer (as it was recently documented to). (check-in: eff5d3be user: stephan tags: trunk)
14:25
Only add an on-db-close cleanup entry for collations if adding the collation succeeds and xCompare is-a JS function. (check-in: 18a5480f user: stephan tags: trunk)
13:45
Extend [0e69b2c379e618] to support uninstalling stale JS-to-WASM function pointers added on behalf of UDFs. (check-in: 7a46e629 user: stephan tags: trunk)
13:00
Add JS infrastructure which enables sqlite3.capi.sqlite3_close_v2() to clean up stale JS-to-WASM collation function conversions installed on behalf of a given db handle. The same for UDF mappings is TODO. (check-in: 0e69b2c3 user: stephan tags: trunk)
11:13
Reimplement sqlite3.capi.sqlite3_close_v2() and sqlite3session_delete() as a hand-written bindings so that they can attempt to clean up certain (potentially) FuncPtrAdapter-installed functions before closing. Correct the create-function family of JS-to-function-pointer automated conversions to include the UDF's arity as part of the mapping's key so that (un)binding a UDF to different functions for different arities works (and add tests confirming it). Correct a broken doc link in module-symbols.html. (check-in: 60b262ef user: stephan tags: trunk)
01:44
Grammar fixup in comment re SQLITE_TRACE_PROFILE trace event. (check-in: b6dc80cb user: larrybr tags: trunk)
2022-12-25
23:54
module-symbols.html: add some missing links to C-side API docs for recently-added JS counterparts. (check-in: 7d4f4e96 user: stephan tags: trunk)
23:45
Update JS worker #1 API and related tests for recent API changes. (check-in: d797e183 user: stephan tags: trunk)
22:55
Rename the new wasm.irSizeof() to sizeofIR() because that seems clearer. (check-in: 49a83ca3 user: stephan tags: trunk)
22:49
Minor internal API doc correction and extend a test for oo1.DB.selectValues(). (check-in: b7295b1c user: stephan tags: trunk)
22:44
Add sqlite3.oo1.DB.selectValues(). Correct a logic error which could cause DB.selectValue(), DB.selectArray(), and DB.selectObject() to fail to finalize a statement if a call to bind() failed. Add more session API tests. (check-in: 6adc8a10 user: stephan tags: trunk)
20:25
Merge wasm-session-api branch into trunk, adding the session API to the JS/WASM components. (check-in: dfb8b651 user: stephan tags: trunk)
20:22
Add basic session API JS tests. (Closed-Leaf check-in: 64e03260 user: stephan tags: wasm-session-api)
20:05
Add sqlite3.wasm.irSizeof() and extend certain allocation functions to make use of it. (check-in: 1cbc7b18 user: stephan tags: wasm-session-api)
17:12
Add tests confirming that JS sqlite3_exec()'s SQL argument participates in the 'string:flexible' type conversion. (check-in: 926d0c61 user: stephan tags: trunk)
17:09
Replace the "manual" implementation of sqlite3.capi.sqlite3_exec() with a briefer "automated" one via the [7f9ace1b11a67] feature addition. Minor code-adjacent internal cleanups. (check-in: 4888957b user: stephan tags: trunk)
16:20
Remove duplicated JS binding of sqlite3changeset_apply_v2(). (check-in: 2e8336b6 user: stephan tags: wasm-session-api)
15:28
Add the address of the associated db handle to the sqlite3_trace_v2() output originating from sqlite3.oo1.DB's trace flag. (check-in: 0a36568c user: stephan tags: wasm-session-api)
15:14
Update the session-related JS bindings to account for today's internal API changes. (check-in: be63944d user: stephan tags: wasm-session-api)
14:13
Merge trunk into wasm-session-api branch. (check-in: 7f8f1acd user: stephan tags: wasm-session-api)
14:04
Add missing sqlite3_context_db_handle() JS binding. Reimplement sqlite3_set_authorizer() and sqlite3_set_auxdata() JS bindings to take advantage of [7f9ace1b11a67]. Teach FuncPtrAdapter to emit a console.warn() message if it is invoked after the library is bootstrapped, the goal being to inform users that it's an internal API and should not be invoked from client-side code. (check-in: 8e3d4f62 user: stephan tags: trunk)
12:51
Enhance sqlite3.wasm.xWrap.FuncPtrAdapter to be able to handle sqlite3_create_function() and friends and reimplement those bindings to use this feature (this will also simplify certain session API bindings). Interal API changes only with no client-side breakage. (check-in: 7f9ace1b user: stephan tags: trunk)
10:22
Simplify the signature for JS functions, as opposed to function pointers, passed to sqlite3_exec(), eliminating the superfluous initial two arguments. Update related tests to demonstrate both function-passing approaches. (check-in: e7cc70cd user: stephan tags: trunk)
2022-12-24
15:34
Incorporate wasi-sdk RANLIB configure script patch from the VMware OCTO team. (check-in: 478fe96e user: stephan tags: wasi-patches)
15:31
Merge trunk into wasi-patches branch. (check-in: 52f40ab1 user: stephan tags: wasi-patches)
15:28
Replace JS-side use of SQLITE_TRANSIENT with the new SQLITE_WASM_DEALLOC, reducing the amount allocation/copying required by sqlite3_bind_blob/text() and sqlite3_result_blob/text(). Remove the 'experimental' log message from the virtual table tests. (check-in: ffe2999a user: stephan tags: trunk)
14:16
Extend oo1.Stmt.bind() to accept ArrayBuffer instances to bind as blobs. (check-in: f76bd301 user: stephan tags: trunk)
13:46
Add a test for the (failure) case of client-level code calling the oo1.Stmt constructor directly. (check-in: 6a37874d user: stephan tags: trunk)
11:16
oo1.DB.exec() rowMode="$columnName": a minor optimization and a preemtive fix for a hypothetical corner-case bug. (check-in: 0b2df22b user: stephan tags: trunk)
01:59
If sqlite3.oo1.DB.exec()'s callback returns a literal false, stop step()ing over results as if the end of the result set had been reached. Unrelated minor code-adjacent cleanups. (check-in: 33a58c8e user: stephan tags: trunk)
2022-12-23
23:46
Reimplement JS's sqlite3_bind_text/blob() with hand-written bindings to permit more flexible inputs. Add automated JS-to-C function conversion to sqlite3_busy_handler(). sqlite3.wasm.xWrap()'s '*' argument conversion no longer treats JS strings as C-strings: those conversions require explicit opt-in via the 'string' converter (or equivalent). (check-in: 96ba4494 user: stephan tags: trunk)
21:23
Merge trunk into wasm-session-api branch. (check-in: 6cdb036d user: stephan tags: wasm-session-api)
21:10
Internal JS cleanups. Correct part of [ac136925a645] to account for the eTextRep flag being able to hold flags other than the encoding. (check-in: 1dfc03ab user: stephan tags: trunk)
19:33
Merge trunk into wasm-session-api branch. (check-in: f1decc83 user: stephan tags: wasm-session-api)
19:16
Consolidate/unify how the JS bindings of the create_function/collation family of functions react to a non-UTF8 encoding: they now treat a falsy value as SQLITE_UTF8 and fail with SQLITE_FORMAT for an invalid encoding. (check-in: deffe6fb user: stephan tags: trunk)
19:11
Add base64() and base85() to shell sources for the non-configured makefiles, too. (check-in: ac136925 user: larrybr tags: trunk)
19:04
Add base64() and base85() text/blob conversions to the CLI. (check-in: 4bc98a2d user: larrybr tags: trunk)
18:38
Explicitly omit threading and extension loading from the ext/wasm/c-pp binary build to avoid a link error on some systems. (check-in: 5d9a1471 user: stephan tags: trunk)
18:25
Add SQLITE_ENABLE_MATH_FUNCTIONS to the list of feature flags in sqlite3-wasm.c. (check-in: 58503cd1 user: stephan tags: trunk)
18:19
Cherry-pick [c4dab53b8ea3401abd] for sqlite3.wasm.xWrap() optimizations. (check-in: 9b97412d user: stephan tags: trunk)
18:14
Internal cleanups and minor speed optimizations in the sqlite3.wasm.xWrap() infrastructure. (check-in: c4dab53b user: stephan tags: wasm-session-api)
15:05
Another iteration of "PRAGMA schema_version" instrumentation. (check-in: d5a8d6cf user: dan tags: schema-version-instr)
14:49
Fix lots of harmless, nuisance compiler warnings, mostly unused parameter warnings in extensions. (check-in: c14bbe16 user: drh tags: trunk)
14:11
Add sqlite3.capi JS bindings for the sqlite3session_...(), sqlite3changeset_...() and sqlite3changegroup_...() APIs, noting that they are completely untested. Aside from missing tests, these bindings reveal a slight string-argument-type shortcoming in the callback function pointer "reverse binding" which should ideally be resolved before publishing them. (check-in: 0a39172e user: stephan tags: wasm-session-api)
11:46
Additional fixes for yet more completely harmless compiler warnings. (check-in: 7d3772f0 user: drh tags: trunk)
11:46
Initial pieces for binding the session API to JS. Far from complete. See forum post 210e36a1e3 for the discussion. (check-in: cd8c1008 user: stephan tags: wasm-session-api)
11:32
Squelch a new (and, in this case, harmless) compiler warning. (check-in: a02e19dd user: stephan tags: trunk)
2022-12-22
21:32
Asserts added to ensure that the iCompare variable in the bytecode engine is correctly initialized before it is used. (check-in: 7b5900a1 user: drh tags: trunk)
19:12
Avoid having to reinitialize Vdbe.pResultRow upon each call to sqlite3_step() for a small size reduction and performance increase. (check-in: 6a00d67f user: drh tags: trunk)
18:44
Rename the Vdbe.pResultSet field to pResultRow in order to better distinguish it from other variables with similar names. (check-in: 1fd6211e user: drh tags: trunk)
18:35
Small performance optimization associated with shared cache in the byte-code engine. (check-in: 3181331c user: drh tags: trunk)
17:36
Small performance optimization on the OP_Insert opcode. (check-in: 781fdcb9 user: drh tags: trunk)
15:04
Fix an error in the previous commit causing timings to be logged for every "PRAGMA schema_version" command, not just those that are slower than 2 seconds. (check-in: 1e8220c1 user: dan tags: schema-version-instr)
14:29
Different version of "PRAGMA schema_version" instrumentation. (check-in: b9efbc53 user: dan tags: schema-version-instr)
10:53
sessionfuzz.c: use lt/gt brackets instead of double-quotes when #including zlib.h, as reported in forum post 91a104bd65. (check-in: 7d7780c3 user: stephan tags: trunk)
2022-12-21
21:01
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 1bfae9b3 user: drh tags: reuse-schema)
20:43
Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: bcab19d2 user: drh tags: begin-concurrent-pnu-wal2)
20:28
Merge the latest trunk enhancements into the wal2 branch. (check-in: 21ebd4cf user: drh tags: wal2)
20:17
Merge the latest trunk enhancements into the begin-concurrent-report branch. (Leaf check-in: 397fb07b user: drh tags: begin-concurrent-report)
20:07
Update the begin-concurrent branch with the latest enhancements on trunk. (check-in: 0c198aee user: drh tags: begin-concurrent)
19:11
More efficient implementation of large precisions on the "%c" format for the built-in printf(). This is an effort to avoid a reported timeout on a (ridiculous) query generated by OSSFuzz. (check-in: 371f9b88 user: drh tags: trunk)
18:28
Sync w/trunk prior to branch-purpose changes. (Leaf check-in: ae8f623f user: larrybr tags: extension_opts)
14:13
Ensure that the expression of a virtual column really is an expression and not just a reference to another column, as a real expression is necessary for the indexed expression coverage optimization to work properly. Forum thread 07b36e3899a9ae21. (check-in: 40549bac user: drh tags: trunk)
12:18
New WHERETRACE entries for adding and removing objects from the Parse.pIdxEpr list as part of indexed expression coverage. Debug and testing changes only - no affect on production builds. (check-in: 4dc438a9 user: drh tags: trunk)
2022-12-20
15:22
Add about 150 new fuzzer cases to test/fuzzdata8.db. (check-in: a8d8d9cd user: drh tags: trunk)
15:02
Add ALWAYS() to always-true branches in the locking logic of the memdb VFS. (check-in: 01fa7602 user: drh tags: trunk)
14:02
Improvement to the dbsqlfuzz fix of [f113eebdbe68246f]. (check-in: 79d62956 user: drh tags: trunk)
01:48
Do not use indexed expressions to replace the expression being indexed on a RIGHT JOIN as that leads to problems, as shown by dbsqlfuzz a644e70d7683a7ca59c71861a153c1dccf8850b9. (check-in: f113eebd user: drh tags: trunk)
2022-12-19
20:14
Fix a faulty assert() in fts5. (check-in: 56901817 user: dan tags: trunk)
19:04
Remove an unused variable. (check-in: 5c4d9414 user: drh tags: trunk)
18:42
Hack for special gettimeofday() instrumentation of "PRAGMA schema_version". (check-in: 44dd01e3 user: dan tags: schema-version-instr)
14:46
Minor sed script tweak in the wasm GNUmakefile for BSD portability, as reported in forum post 4a97813fcbd4f63e. (check-in: 49efcf6d user: stephan tags: trunk)
14:43
Update test-opfs-vfs.js to account for recent API changes. Reported in forum post 4a97813fcbd4f63e. (check-in: 2a636746 user: stephan tags: trunk)
14:06
Fix an assert() in fts5. Simplify memdb xLock/xUnlock some. (check-in: 7fe158aa user: dan tags: trunk)
12:25
Fix a minor problem with the printAggInfo() routine (used on during debugging). (check-in: c8329967 user: drh tags: trunk)
2022-12-18
12:00
JS namespace updates in ext/wasm/api/README.md. (check-in: ca59e736 user: stephan tags: trunk)
10:27
WIP, pre-sync-to-trunk check-in to capture extensive changes to shell source. (WASM and usual shell tweaks) (check-in: 3db119c8 user: larrybr tags: cli_extension)
2022-12-17
22:10
Fix an unnecessarily restrictive assert() in the aggregate logic. dbsqlfuzz 699bee2aa26c5dc84afabf6894685c316d936485 (check-in: 8cc0af81 user: drh tags: trunk)
19:56
Remove slew of inadvertant tabs in favor of spaces. (check-in: 0aa6da69 user: larrybr tags: trunk)
12:49
Add NEVER/ALWAYS to branches that have become unreachable due to recent enhancements. (check-in: b4281db4 user: drh tags: trunk)
11:14
Update wasmfs.make to get WASMFS building again, but changes made to OPFS-over-WASMFS since we last tested it have made it incompatible with how we used it. It can now only be used from worker threads, eliminating the one benefit it had over the sqlite3_vfs OPFS implementation. Remove/amend references to WASMFS in the docs and remove all WASMFS-specific test app links from index.html. (check-in: 32dc98c8 user: stephan tags: trunk)
2022-12-16
18:32
Disallow some of the query invariant tests on SQL statements that contain a GROUP BY since output terms that are no covered by the GROUP BY are indeterminant. (check-in: 28ba1fec user: drh tags: trunk)
13:04
Expose a JS-friendly subset of sqlite3_config() to JS, with the notable caveats that (1) setting up the JS bindings requires starting the library, making sqlite3_config() illegal to call and (2) calling sqlite3_shutdown() in order to make it legal to call sqlite3_config() may undo certain JS-side library initialization. Move sqlite3_(de)serialize() into the int64-mode-only bindings because of their int64 args. (check-in: 62e0c931 user: stephan tags: trunk)
12:07
In the fuzzer invariant checker, do not add new WHERE clause terms that make use of an ambiguous column name. (check-in: d5b46541 user: drh tags: trunk)
11:33
Add a test confirming that exceptions are not passed through C-space if a JS-side sqlite3_set_authorizer() callback throws. (check-in: 5a77c2c7 user: stephan tags: trunk)
11:13
Add sqlite3_set_authorizer() support and related tests to JS. (check-in: 551b8488 user: stephan tags: trunk)
2022-12-15
20:03
Create a new affinity called FLEXNUM that works like NUMERIC except that it never tries to convert integer to real or real to integer. The affinity is only used internally - it is not possible to create a table column with this affinity. This affinity is used on subqueries and views that are built off of a compound SELECT and where the datatype is controlled by a CAST expression. dbsqlfuzz c9ee6f9a0a8b8fefb02cf69de2a8b67ca39525c8 (check-in: 44135d6e user: drh tags: trunk)
18:56
Fix an incompatibility between the Tcl interface and the "memdb" vfs by allowing memdb to accept filenames that begin with '\' characters. (check-in: bd537f20 user: dan tags: trunk)
18:50
Added a couple missing 'not part of the public API' tags on functions in sqlite3-wasm.c. No code changes. (check-in: eb27feec user: stephan tags: trunk)
15:37
Omit the columnTypeImpl() function from the build when SQLITE_OMIT_DECLTYPE is defined, because it is no longer used in that case. (check-in: 751e344f user: drh tags: trunk)
13:45
Fix harmless compiler warnings. (check-in: ddb260cc user: drh tags: trunk)
11:39
Update a test case in scanstatus2.test to account for recent planner enhancements. (check-in: 53e07dc6 user: dan tags: trunk)
11:31
Fix an unsafe use of sqlite3_mprintf() in sqlite3_overload_function() identified by forum post: https://sqlite.org/forum/forumpost/95b338860d. (check-in: 9fa2b94c user: dan tags: trunk)
02:28
Internal refactoring of how sqlite3.wasm.xWrap() handles JS-to-C function pointer conversions, to enable similar conversions to be added more easily. (check-in: 10cfe3fa user: stephan tags: trunk)
02:26
Remove an unnecessary/obsolete Emscripten-specific export. (check-in: fa278022 user: stephan tags: trunk)
2022-12-14
23:53
Fix minor problems in the new sqlite3ExprDataType() function. (check-in: c1d5261b user: drh tags: trunk)
18:34
Adjust the query planner to be more aggressive about using co-routines rather than materializing subqueries and views. Implementation of enhancement request [73ebbb3a3d1a7bd3]. (check-in: 0b58d1b3 user: drh tags: trunk)
18:06
Rename the new peek/pokeF32() and peek/pokeF64() to peek/poke32f() and peek/poke64f() for consistency with related APIs and because they're easier on both the eyes and the fingers. (check-in: cc86f03e user: stephan tags: trunk)
17:52
Merge all the latest trunk enhancements into the coroutines-exp2 enhancement branch. (Closed-Leaf check-in: ea278438 user: drh tags: coroutines-exp2)
17:46
Rework the code that computes the datatypes and affinities for subqueries and views. If the subquery/view is constructed from a compound SELECT where the affinity varies across arms of the compound, set the affinity for the corresponding column in the constructed view to be BLOB so that it is allowed to take on any data type. (check-in: 27655c93 user: drh tags: trunk)
16:40
Slight reformulation of some test code to test multi-arg wasm.peek() call form. (check-in: 349bb28f user: stephan tags: trunk)
14:41
If the SELECT that implements a subquery or a VIEW or a CREATE TABLE AS is a compound with different result datatypes on two or more arms of the compound, then the overall column type becomes BLOB (ANY). (Closed-Leaf check-in: 6ebb178c user: drh tags: refactor-subquery-types)
14:40
Use the new peek/poke() variants throughout tester1.js. (check-in: ef7b7835 user: stephan tags: trunk)
14:28
Add convenience variants of sqlite3.wasm.peek/poke() for each numeric type to help reduce errors related to typos in the final argument (type-name strings). If wasm.xWrap.FuncPtrAdapter is called as a function, instead of a constructor, it now behaves as if it were called as a constructor (previously it threw an exception). (check-in: 14e3fc01 user: stephan tags: trunk)
09:06
Back out the part of the change in [88a05141c28e5ff1] that adds affinity to the materialization of a view, as the affinity can be undefined for a compound query. This passes all TCL tests, but shows failures in the TH3 tests derived from forum post 6f842bc5b2dadcb2, presumably because the WHERE clause of the query uses constraints of the form "source_crs_code='8675'" instead of "source_crs_code=8675". Perhaps further changes on this branch should reimplement affinity on joins in cases where the affinity is unambiguous. (check-in: fe5a77bc user: drh tags: refactor-subquery-types)
08:12
Add a test to demonstrate/verify which object acts as "this" in a oo1.DB.exec() callback. (check-in: 8fc4b3f1 user: stephan tags: trunk)
08:01
A micro-optimization in sqlite3.oo1.DB.exec(). Changed the rowMode option of that method to only accept $X instead of $X, @X, and :X, as the extra options are entirely superfluous and may lead to confusion. (check-in: 82a6c7fd user: stephan tags: trunk)
2022-12-13
19:52
Fix a comment in ext/session/test_session.c. (check-in: bd814af1 user: dan tags: trunk)
19:40
Prevent the sessions rebaser from generating changesets containing UPDATE records for which non-PK fields are present in the old.* but not the new.* record. Also update the changeset iterator to work around such changesets. (check-in: f9cd23df user: dan tags: trunk)
16:59
Remove an unused variable from sqlite3SubqueryColumnTypes(). (check-in: c6e3ff39 user: drh tags: refactor-subquery-types)
16:55
Use standard datatype names for the column datatypes in views and subqueries. (check-in: baf2c241 user: drh tags: refactor-subquery-types)
15:54
Refactor the sqlite3SelectAddColumnTypeAndCollation() routine. Improved comments. Now called sqlite3SubqueryColumnTypes(). (check-in: 4dfb1b45 user: drh tags: refactor-subquery-types)
14:59
Add extra test cases for applying sessions module changesets to databases that have been modified using "ALTER TABLE .. ADD COLUMN". (check-in: a7b404f2 user: dan tags: trunk)
13:33
Slightly faster implementation of sqlite3ExprAffinity(). (check-in: 01cf3278 user: drh tags: trunk)
10:54
Document the role of the sqlite3.client JS API property. (check-in: 5f11f1c7 user: stephan tags: trunk)
08:25
Extend the sqlite3.wasm function pointer argument converter to be able to handle the "two-layered context" of sqlite3_create_collation() and friends and make use of FuncPtrAdapter to perform JS-to-WASM function conversion for them. (check-in: 0a60b721 user: stephan tags: trunk)
00:51
Merge recent trunk changes into the coroutine-exp2 branch. (check-in: c43f433b user: drh tags: coroutines-exp2)
2022-12-12
21:22
Further fix for ticket [57c47526c34f01e8]. If a subquery has a result set column of the form "CAST(expr AS NUMERIC)" do not give that column NUMERIC affinity. NUMERIC affinity always goes to an integer if able, but a CAST to numeric is a no-op if the input is a number. So the two are not equivalent. (check-in: f0325359 user: drh tags: trunk)
18:58
If a subquery has a result column of the form "CAST(... AS NUMERIC)" then give that column no affinity rather than NUMERIC affinity. This is because casting to numeric preserves real values that could be integers but numeric affinity does not. By using no affinity on the column, we make the behavior consistent if the subquery is implemented as a co-routine or is materialized. (Closed-Leaf check-in: ece07d09 user: drh tags: cast-to-numeric)
18:42
Revert part of [9386d6f63468] because the new automatic function pointer binding cannot properly track per-context function mappings when the context is more complex than a single context-type pointer. e.g. it is fine for sqlite3_trace_v2() but it breaks down with sqlite3_create_collation() because that one needs to use the collation name as part of the context key and we cannot sensibly do so with the current code. (check-in: 6cd21b79 user: stephan tags: trunk)
17:33
Add new logging code SQLITE_NOTICE_RBU and use it when logging for the spurious error that RBU injects into SQLite as part of applying an update. (check-in: cd881d35 user: dan tags: trunk)
14:31
Move JS-to-C binding signatures from sqlite3-api-prologue.js to sqlite3-api-glue.js to allow for use of the new/experimental sqlite3.wasm.xWrap() feature which automatically binds JS functions to WASM/C as needed, which simplifies creation of bindings which take C function pointers. Reimplement sqlite3_exec(), sqlite3_create_collation(), sqlite3_progress_handler() to use this new feature. (check-in: 9386d6f6 user: stephan tags: trunk)
11:38
ext/wasm/module-symbols.html: for C APIs which have extended JS-side semantics, link to the JS-side API docs instead of the C docs. (check-in: d5570152 user: stephan tags: trunk)
11:22
ext/wasm/module-symbols.html: add a hyperlink to the API docs for each exported sqlite3_...() function. (check-in: 01d3a9bb user: stephan tags: trunk)
08:16
Rework the internals of how argument/result types are converted to/from wasm in prep for attempting to support automated conversions of function pointer argument types. (check-in: 58052d82 user: stephan tags: trunk)
07:52
Add sqlite3.mjs to the new 'quick' wasm build for the sake of the snapshot build. (check-in: 5a3f2224 user: stephan tags: trunk)
07:31
Expose sqlite3_txn_state() to wasm. (check-in: f6f3397a user: stephan tags: trunk)
07:27
Expose a number of infrequently-used sqlite3_...() functions to wasm whose absences were noticed while documenting. (check-in: 3144e7c0 user: stephan tags: trunk)
2022-12-11
07:53
Minor build tweaks in ext/wasm to create a faster-running build for the common dev-mode cases. No code changes. (check-in: 6a61b14a user: stephan tags: trunk)
2022-12-10
19:22
Ensure that the types and collation sequences of a view are taken from the leftmost component of compound SELECTs, even when column names are explicitly provided for the view. Fix for ticket [679ed6a282a97c51] (check-in: 6f0bf892 user: dan tags: trunk)
17:54
Ensure that the types and collation sequences of a view are taken from the leftmost component of compound SELECTs, even when column names are explicitly provided for the view. Possible fix for [679ed6a2]. (Closed-Leaf check-in: b0e49aa8 user: dan tags: tkt-679ed6a2)
17:45
Remove -flto from wasm build flags, as it increases build time and doesn't seem to have a measurable benefit. (check-in: 35a88747 user: stephan tags: trunk)
17:20
Correct wasm heap corruption introduced in test code added in [e144fd5c88fa4] which led to unpredictable failures. (check-in: 6c1e07e3 user: stephan tags: trunk)
15:41
Remove two incorrect calls to structType.dipose() which prematurely freed objects in use by the virtual table test/demo code. (check-in: 060eb284 user: stephan tags: trunk)
15:13
Expose sqlite3_column_value() to WASM and add sqlite3_column_js(). (check-in: 7783aa4a user: stephan tags: trunk)
12:06
Rerun autoconf using version 2.69 to minimize configure script differences with trunk. (check-in: b6334283 user: drh tags: wasi-patches)
10:24
Refactor the internal JS routines for converting UDF results and errors to JS into public APIs. (check-in: 35d1d63c user: stephan tags: trunk)
07:02
Imply configure flag --disable-shared when --with-wasi-sdk is active because libtool is running gcc for linking the shared lib, which cannot work in a wasi build. (check-in: 9253ba43 user: stephan tags: wasi-patches)
06:44
Add --with-wasi-sdk=DIR flag to configure.ac. This mode compiles but fails to link the DLL because libtool is apparently hard-coded to gcc for the DLL. (check-in: 39c9f441 user: stephan tags: wasi-patches)
05:52
Run configure.ac through autoupdate, as required by autoconf for rebuilding configure. These (many) changes were made entirely by the autotools, except that some whitespace-only changes were reverted by hand to reduce noise, and are a preliminary step to adding a new flag to configure.ac. (check-in: 2be2d5d4 user: stephan tags: wasi-patches)
05:00
Merge trunk into wasi-patches branch. (check-in: 13dade95 user: stephan tags: wasi-patches)
2022-12-09
18:26
Remove the SQLITE_PREPARE_SAFEOPT flag. The name is obsolete and it is at the wrong level. Instead use the SF_UpdateFrom flags on the Select object. (check-in: 78723a9a user: drh tags: coroutines-exp2)
17:33
Do not allow OOM faults in EQP messages associated with automatic indexes on co-routines to go unreported. (check-in: d125d5af user: drh tags: coroutines-exp2)
15:26
Export sqlite3_result_subtype() and sqlite3_value_dup/free/subtype() to WASM. (check-in: 4600a7bb user: stephan tags: trunk)
15:12
Expose sqlite3_value_frombind/nochange/numeric_type() to WASM. Add a flag to sqlite3_value_to_js() to cause it to return undefined, instead of throwing, if no conversion can be found. (check-in: de8fc4bf user: stephan tags: trunk)
14:46
Refactor the sqlite3_value-to-JS conversion from an internal detail to sqlite3.capi.sqlite3_value_to_js() for use with routines like sqlite3_module::xFilter(). (check-in: f6dbf280 user: stephan tags: trunk)
13:49
Fix typo in the SQLITE_DBCONFIG_LOOKASIDE documentation. (check-in: c6e7582a user: drh tags: trunk)
12:12
Remove some unused sqlite3_status() codes from the JS API. Add custom JS wrappers for sqlite3_create_collation/_v2() which accept JS functions (plus tests). Expand the argument options for sqlite3_wasm_db_error() to enable it to translate exception objects to C-level errors. (check-in: 073a2f1e user: stephan tags: trunk)
09:23
Rename the oft-used, verbose sqlite3.wasm.get/setMemValue() and get/setPtrValue() to peek/poke() and peek/pokePtr(). The old names are retained as aliases just in case any client code actually uses them, but they are now deprecated. (check-in: ad0a8139 user: stephan tags: trunk)
08:44
Micro-optimization in the oft-activated JS-to-WASM arguments conversion step. (check-in: ee47e9b8 user: stephan tags: trunk)
07:17
Correct a test bug which broke the previous checkin's wasm tests in higher optimization levels. Test bug - it should not have worked in -O0 mode. (check-in: f07141b7 user: stephan tags: trunk)
05:47
Export sqlite3_status() and sqlite3_stmt_status() to wasm. Expand the arg/return semantics of wasm.get/setPtrValue() and get/setMemValue() to simplify handling of multiple pointers. Edit: tests pass when built with -O0 but fail with -Oz. Moving to branch to work out the breakage. Edit: it was a test bug - one too many levels of pointer indirection. It shouldn't have worked in low-optimization mode. (check-in: e144fd5c user: stephan tags: trunk)
02:23
JS API doc updates. (check-in: 4f80fd3b user: stephan tags: trunk)
02:12
Expose sqlite3_table_column_metadata() to wasm. (check-in: c31eb509 user: stephan tags: trunk)
01:49
Expose sqlite3_db_status() and sqlite3_db_config() to wasm, noting that the latter requires several internal wrappers to account for the various varidic forms (C varargs cannot be bound to wasm). (check-in: d5753668 user: stephan tags: trunk)
00:50
Reorganization and renaming in the new VFS/vtab JS pieces. (check-in: 1c2dda17 user: stephan tags: trunk)
2022-12-08
21:05
Support ".scanstats est" to enable including planner estimates in query profiles. (check-in: 0fe71287 user: dan tags: trunk)
18:18
Further docs and minor cleanups in the JS virtual table helper. (check-in: c31e7488 user: stephan tags: trunk)
17:07
Ease-of-use/legibility improvements in the virtual table JS helpers. (check-in: 54c7ad7e user: stephan tags: trunk)
16:47
Improved comments on the new co-routine logic. Fix a C++-ism in the code. Update test cases to accommodate the more aggressive use of co-routines. (check-in: 9243e850 user: drh tags: coroutines-exp2)
15:00
Initial support for virtual tables implemented in JavaScript. (check-in: a1454744 user: stephan tags: trunk)
13:56
Do not use a co-routine on a subquery that is participating in a self-join. (check-in: ea4306a0 user: drh tags: coroutines-exp2)
12:51
Describe the SQLITE_DBCONFIG_RESET_DATABASE flag's policy regarding virtual tables, per /chat discussion. (check-in: 53dcb81b user: stephan tags: trunk)
10:06
More work on the JS vtable tests. (Closed-Leaf check-in: 51e3c3b5 user: stephan tags: wasm-vtab)
09:06
Got JS non-eponymous vtable working thanks to a hint from Dan. (check-in: 750719b4 user: stephan tags: wasm-vtab)
04:19
Remove some dead JS code and tweak some docs. (check-in: 0ee49545 user: stephan tags: wasm-vtab)
2022-12-07
21:19
Merge the latest fixes and enhancements from trunk into the coroutines-exp2 branch. (check-in: 1c5f4198 user: drh tags: coroutines-exp2)
20:09
Reduce the overhead of SQLITE_ENABLE_STMT_SCANSTATUS some. (check-in: 212927e9 user: dan tags: trunk)
19:51
Fix harmless compiler warning in the dynamic continuation prompt of the CLI. (check-in: 68947b0a user: drh tags: trunk)
19:29
Omit CLI use of pragma_table_xinfo when it is not defined in the build. (check-in: 976c2352 user: larrybr tags: trunk)
17:29
Have sqlite3_stmt_scanstatus() report cycle, loop and row counts separately for creating an automatic index and using that automatic index. (check-in: 3bc9df82 user: dan tags: trunk)
16:58
Streamline and improve testing of the locking in the memdb VFS. Follow-on to [15f0be8a640e7bfa]. (check-in: d71a0837 user: drh tags: trunk)
07:22
Work on an alternate (slightly simpler) approach to binding JS vtabs. Non-eponymous vtabs are not working, for reasons as yet unknown. (check-in: 6a0fefb9 user: stephan tags: wasm-vtab)
03:42
Add addOnDispose() method to Jaccwabyt and code-adjacent minor internal cleanups. (check-in: 6a2723fe user: stephan tags: wasm-vtab)
00:14
Fix a (harmless) off-by-one error in code generation that comes up when doing a DISTINCT query against a virtual table with an OR term in the WHERE clause and where the ORDER BY clause has 64 or more references to the result set. Forum post dfe8084751. NB: The bug is "harmless" in the sense that no harm comes of it in a production build. However, an assertion fault might occur in a debugging build given some really wonky SQL inputs without this fix. (check-in: 04af7ef7 user: drh tags: trunk)
2022-12-06
19:32
Enhance CLI .sha3sum to warn of text fields that are not to-blob-to-text reversible. (check-in: bbde0f36 user: larrybr tags: trunk)
19:25
Merge from trunk prepratory to branch end. (Closed-Leaf check-in: 1d01f848 user: larrybr tags: sha3sum_text_validation)
19:20
Avoid several -Wall warnings in textfixture build. (check-in: 03ae8680 user: larrybr tags: trunk)
18:48
For CLI .sha3sum, emit warning to stderr for any invalidly encoded text fields. (check-in: 8e833ecc user: larrybr tags: sha3sum_text_validation)
18:48
Have sqlite3_stmt_scanstatus_v2() return an NCYCLE value for all loops, not just virtual tables ones. The value returned is the sum of the NCYCLE counts for the various opcodes that move or read data from the table or index cursor associated with the loop. (check-in: 9499b2f5 user: dan tags: trunk)
17:59
Clear a few more -Wall warnings and simplify dynaprompt feature keep/omit macros. (check-in: 540e895d user: larrybr tags: trunk)
15:24
Simplified experimental changes to promote the use of co-routines. Less cruft than the coroutines-exp1 branch, but still does not work. Checked in as a work-in-progress. (check-in: e2318a30 user: drh tags: coroutines-exp2)
15:11
Fix compiler warnings in the new dynamic continuation prompt logic of the CLI. (check-in: 0d80500d user: drh tags: trunk)
13:12
In the unix backend, when implementing the defenses against small file descriptors, delete a file just created if it was opened with O_EXCL|O_CREAT so that it can be created again the next time through the loop. Fix for the problem described by forum post 699af709ab3a8ccf. (check-in: c0cfe058 user: drh tags: trunk)
11:41
Support an SQLITE_SCANSTAT_NCYCLE statistic for "CO-ROUTINE" elements. (check-in: d3f6a207 user: dan tags: trunk)
11:21
JS vtables: add infrastructure related to accessing and modifying sqlite3_index_info. (check-in: 0d77c348 user: stephan tags: wasm-vtab)
09:49
Remove deprecated symbol sqlite3.opfs.OpfsDb, which was renamed to sqlite3.oo1.OpfsDb on 2022-11-29. (check-in: 0ce51bed user: stephan tags: wasm-vtab)
08:46
Rename wasm.cstringToJs() to wasm.cstrToJs() for consistency with other wasm.cstr... APIs. (check-in: cbf483ea user: stephan tags: wasm-vtab)
08:39
Add wasm.cArgvToJs() to support sqlite3_module::xConnect(). (check-in: c3ebdccf user: stephan tags: wasm-vtab)
08:21
Minor internal JS code/docs cleanups. (check-in: 21331bdd user: stephan tags: wasm-vtab)
06:21
Merge trunk into wasm-vtab branch. (check-in: d106edb9 user: stephan tags: wasm-vtab)
06:16
Minor test tweaks. (check-in: f902f3b2 user: stephan tags: wasm-vtab)
06:09
Add a demonstration sqlite3_vtab/module implemented in JS, based on ext/misc/templatevtab.c. Add oo1.selectArrays() and selectObjects(). (check-in: 60482c97 user: stephan tags: wasm-vtab)
05:31
Add optional feature: A CLI continuation prompt which reflects open lexemes and parens, similarly to PG shell. (check-in: f41f18b1 user: larrybr tags: trunk)
05:09
Add optional feature: A CLI continuation prompt which reflects open lexemes and parens, similarly to PG shell. (Leaf check-in: dac2ddc2 user: larrybr tags: dynamic_prompt)
00:54
Highly experimental (and non-working) changes aimed at increasing the number of occasions where a subquery can be implemented using a co-routine rather than being materialized. This is just saving work in progress. (Closed-Leaf check-in: e7d323c1 user: drh tags: coroutines-exp1)
2022-12-05
19:16
Enhance the sqlite3_stmt_scanstatus() API and add sqlite3_stmt_scanstatus_v2(). For creation of enhanced query performance reports. (check-in: 4893b4e3 user: dan tags: trunk)
18:52
Update comments in sqlite.h.in to account for sqlite3_stmt_scanstatus_v2(). (Closed-Leaf check-in: 009462f2 user: dan tags: scanstatus_v2)
18:26
Merge latest trunk changes. (check-in: 1a72777b user: dan tags: scanstatus_v2)
18:19
Add loops and rows counters to "USE TEMP B-TREE FOR ORDER BY" records. Also fix the sqliteHwtime() function so that it returns a 64-bit value. (check-in: 41a0e05e user: dan tags: scanstatus_v2)
15:05
Remove two features of jaccwabyt which were fundamentally flawed, along with approx. 250 lines of unit tests which heavily relied on them. Thankfully, none of the sqlite3.js-level code used those bits. (check-in: a190abc3 user: stephan tags: wasm-vtab)
14:32
Jaccwabyt (JS) doc updates. (check-in: a329a809 user: stephan tags: wasm-vtab)
14:23
Fix a problem in the memdb vfs xLock() function allowing clients to upgrade to EXCLUSIVE locks when other connections are holding SHARED. (check-in: d18cce37 user: drh tags: branch-3.40)
14:20
Regenerate the configure script so that it includes the correct patch number. (check-in: e2ae2ea1 user: drh tags: branch-3.40)
14:20
Add test case that should have been part of previous commit. (check-in: dc7dd2d3 user: dan tags: trunk)
14:13
Expose sqlite3_get/set_auxdata() to wasm. Minor test app CSS tweaks. (check-in: 44659ad3 user: stephan tags: wasm-vtab)
14:12
Fix a problem in the memdb vfs xLock() function allowing clients to upgrade to EXCLUSIVE locks when other connections are holding SHARED. Forum post 5adb92e2baca3678. (check-in: 15f0be8a user: dan tags: trunk)
13:33
Export collation-related APIs and strncmp()/strnicmp() to wasm. (check-in: c3c56d9b user: stephan tags: wasm-vtab)
13:12
Export sqlite3_vtab_collation() to wasm. Rename 'flexible-string' JS argument adapter to 'string:flexible' for consistency. (check-in: 15f8042f user: stephan tags: wasm-vtab)
13:07
Remove SQLITE_EXPERIMENTAL tag from sqlite3_vtab_collation() and fix a related doc typo. (check-in: 35d670b3 user: stephan tags: trunk)
11:54
Rename 'static-string' argument adapter to 'string:static'. Replace JS unit tests which were lost via editing a generated copy of tester1.js instead of the original tester1.c-pp.js input file. (check-in: 9d81d51d user: stephan tags: wasm-vtab)
11:30
Export sqlite3_bind/value/result_pointer() to wasm. Add 'static-string' argument converter to support the lifetime requirements of bind/result_pointer()'s string argument. Correct an endless loop in wasm.cstrlen() when passed a non-C-string argument. (check-in: a9455243 user: stephan tags: wasm-vtab)
10:50
Remove obsolete "experimental" comments on the virtual-table interface documentation in sqlite.h.in. (check-in: 28fc32ab user: drh tags: trunk)
07:51
More work on the JS side of the virtual table APIs. (check-in: cb9881ec user: stephan tags: wasm-vtab)
05:45
Remove some dead code. Improve some error checks and comments. (check-in: 6712fbe4 user: stephan tags: wasm-vtab)
05:30
Initial infrastructure for adding virtual table/table-valued function support to WASM. (check-in: c202d7a0 user: stephan tags: wasm-vtab)
02:52
Improved query planner cost estimates. Fix for ticket [e8b674241947eb3b]. (check-in: 1b779afa user: drh tags: trunk)
02:42
Use the smaller estimated row size for searching IPK tables, but use the original larger row size estimate for scanning, since the leaves can have large rows. (Closed-Leaf check-in: df381899 user: drh tags: qp-tuning)
2022-12-04
23:20
Fix safe mode authorizer callback to reject disallowed UDFs. Reported at Forum post 07beac8056151b2f. (check-in: cefc0324 user: larrybr tags: trunk)
22:13
Fix safe mode authorizer callback to reject disallowed UDFs. Tests to follow. UPDATE: checked into the wrong branch. (Closed-Leaf check-in: 4d934f00 user: larrybr tags: wrong branch.)
08:16
Export sqlite3_result_zeroblob/zeroblob64() to wasm. (check-in: a60e5662 user: stephan tags: trunk)
2022-12-03
21:24
Enhance SQLITE_SCANSTAT_NCYCLE so that it reports on virtual tables. (check-in: 622d8eb3 user: dan tags: scanstatus_v2)
19:04
Increase the nominal row size for IPK index lookups slightly, for better balance. (check-in: 1a61c500 user: drh tags: qp-tuning)
18:21
Add TOTAL rows to the output generated by tool/vdbe_profile.tcl. (check-in: 98005863 user: drh tags: qp-tuning)
18:16
Add CYCLES scanstat measurement to "USE TEMP B-TREE FOR ORDER BY" lines. (check-in: 365011ae user: dan tags: scanstatus_v2)
17:23
Add a test case to show that ticket [e8b674241947eb3b] has been fixed. (check-in: e20de6d4 user: drh tags: qp-tuning)
17:19
Make conglomerateur help with extension packaging. Otherwise a WIP check-in. (check-in: c4214d8d user: larrybr tags: extension_opts)
17:09
Further improvements to the estimated cost of sorting. Take into account the number of columns to be sorted. (check-in: f3290cf8 user: drh tags: qp-tuning)
16:09
Cause CLI .sha3sum to warn of text fields that do not survive CAST(CAST(t as BLOB) AS TEXT) due to invalid UTF encoding. (check-in: 123f2a07 user: larrybr tags: sha3sum_text_validation)
15:41
Correct a memory leak in tester1.js. (check-in: e42b052d user: stephan tags: trunk)
14:58
sqlite3.wasm.allocFromTypedArray() now optionally accepts an ArrayBuffer as its argument. (check-in: 75a1a796 user: stephan tags: trunk)
13:10
Rename wasm.xWrap.resultAdapter() X:free entries to X:dealloc for consistency with wasm.dealloc(). Add an undocumented feature to replace wasm.alloc/dealloc/realloc() with the C-standard allocators (after an allocator misuse led down a several-hour rabbit hole trying to discover a mis-free() violation). Related test updates. (check-in: d9807656 user: stephan tags: trunk)
13:05
Doc typo fix for SQLITE_MAX_ALLOCATION_SIZE in malloc.c. No code changes. (check-in: ed1ed212 user: stephan tags: trunk)
11:51
Move kvvfs xRead()/xWrite() buffer from function-local stack memory to heap memory to accommodate changes in emsdk 3.1.27. (check-in: f1da3241 user: stephan tags: trunk)
11:16
JavaScript: add sqlite3.wasm.realloc(), sqlite3.capi.SQLITE_MAX_ALLOCATION_SIZE, and related tests. (check-in: eeb84ba5 user: stephan tags: trunk)
03:06
wasm build: rename the path to the wasm docs checkout, for clarity and consistency. (check-in: b820db32 user: stephan tags: trunk)
02:42
wasm snapshot and doc-related build automation tweaks. (check-in: 13eb1abd user: stephan tags: trunk)
01:59
Rework the oo1.DB's distinct-per-VFS post-open() step to accept either a batch of SQL or a callback function. Increase OPFS's busy timeout to 10s. (check-in: 9feefe25 user: stephan tags: trunk)
00:52
Tuning the query planner by adjusting the weights that predict the relative performance of sorting and index lookup. (check-in: 9f2806da user: drh tags: qp-tuning)
2022-12-02
20:32
Enhance the sqlite3_stmt_scanstatus() API and add sqlite3_stmt_scanstatus_v2(). For creation of easier to read query performance reports. (check-in: 55800833 user: dan tags: scanstatus_v2)
18:56
Minor internal tweaks to the OPFS VFS. Resolve a missing result code which lead to a null deref in xFileSize(). (check-in: 57dd593e user: stephan tags: trunk)
18:06
OPFS VFS: translate createSyncAccessHandle() exceptions which appear to be locking violations to SQLITE_BUSY. This seems to improve concurrency considerably even with a reduced retry count of 5 (was 6). (check-in: 0d36021d user: stephan tags: trunk)
17:52
For the sqlite3_bind and sqlite3_result interfaces for UTF16 strings, round the number of bytes down to the next even number, to avoid creating a UTF16 string that is an odd number of bytes. Forum post 411199488d065f83. (check-in: b57e3c3d user: drh tags: trunk)
15:31
Use sqlite3_result_int64() instead of sqlite3_result_int() when returning potentially large values from the DBSTAT virtual table, to avoid integer overflows in the result. Forum post ada2ab044f. (check-in: 5652154a user: drh tags: trunk)
11:35
Minor touchups to the JS test index page and test server push rules. (check-in: 0881f3e9 user: stephan tags: trunk)
10:43
wasm builds: explicitly set a default stack size because emsdk 3.1.27 reduced it from 4MB to only 64kb, leading to memory corruption when kvvfs is used (it requires at least twice that for I/O). (check-in: 75811246 user: stephan tags: trunk)
09:23
wasm: after building snapshot zip file, emit instructions for pushing it to the test server. (check-in: 9615c779 user: stephan tags: trunk)
08:51
Correct the problem which triggered the rollback in [7eec635562f6]: an incorrect default db page size (not a multiple of 512 bytes). (check-in: e06e490c user: stephan tags: trunk)
08:38
Roll back the SQLITE_DEFAULT_PAGE_SIZE part of [c260895faacb34] because kvvfs does not work at all with a page size of 8kb. (check-in: 7eec6355 user: stephan tags: trunk)
08:29
sqlite3-wasm.c: code legibility and coding style tweaks. Increase SQLITE_DEFAULT_PAGE_SIZE from 4k to 8k, as that improves OPFS speedtest1 performance by roughly 12%. (check-in: c260895f user: stephan tags: trunk)
07:14
Expand JS tests for db export/import and document reason it cannot currently work with kvvfs. Fix a minor JS build dependencies bug. Update page title with PASS/FAIL prefix for tester1.js to improve overview when launching multiple test tabs. Add ability of tester1 should-run-test predicates to report why a given test is disabled. (check-in: 75f610d3 user: stephan tags: trunk)
03:37
Remove extraneous/unused sqlite3.oo1.version object. Add httpd makefile target. (check-in: 8e4d30ac user: stephan tags: trunk)
03:35
Experimental branch for more flexible selection of extensions and localization of details of incorporation by host. A WIP for now. (check-in: 98be19ba user: larrybr tags: extension_opts)
2022-12-01
15:22
sqlite3_js_create_file() now accepts an ArrayBuffer data source. Add test for OPFS-based export/re-import. The (sqlite3*) argument converter now optionally accepts sqlite3.oo1.DB instances. (check-in: 14a84b67 user: stephan tags: trunk)
04:45
Reformulate and simplify some JS tests related to the previous checkin. (check-in: 9ea2d3dc user: stephan tags: trunk)
03:55
Expand "sqlite3_vfs*" JS-to-WASM function argument conversions to accept VFS names (JS strings) and capi.sqlite3_vfs instances. Implement sqlite3_js_vfs_create_file() to facilitate creation of file-upload features which store the file in VFS-specific storage (where possible, e.g. "unix" and "opfs" VFSes). Correct an argument type check in the SQLite3Error and WasmAllocError constructors. (check-in: e1009b16 user: stephan tags: trunk)
2022-11-30
21:18
Add a testcase() macro to verify that the case of a NOT NULL error message hitting the string length limit. (check-in: 91f50964 user: drh tags: trunk)
20:22
Fix an over-zealous assert() reported by Yong Heng. (check-in: 6ee61f8c user: drh tags: trunk)
19:11
Attempt to rationalize the bits associated with ".wheretrace". Provide a decoder key in sqliteInt.h for what each bit is intended to do. (check-in: 8ec36169 user: drh tags: trunk)
18:21
Rename some JS files from X.js to X.c-pp.js to keep the maintainer, and downstream build customizers, aware that those files contain constructs specific to the c-pp preprocessor and will not run as-is in JS. (check-in: 2eade7c7 user: stephan tags: trunk)
13:44
Always use nanosleep() (instead of usleep() or sleep) if the _POSIX_C_SOURCE macro says it should be available. See Fossil Forum post ab2e2593ae307946 for driver behind this enhancement. (check-in: 6620c57b user: drh tags: trunk)
11:50
Install sqlite3_malloc/sqlite3_free() as the JS-side WASM allocator (as opposed to replacing C-level's malloc()/free() with them). All tests work and this eliminates the potential for allocator discrepancies when using the (de)serialize APIs. (check-in: 95c78f6b user: stephan tags: trunk)
10:05
Merge trunk into wasi-patches branch. (check-in: 64cf34a8 user: stephan tags: wasi-patches)
08:37
Simplify how the OPFS VFS async proxy copies initial state sent to it from the synchronous side of the connection. Make the lock-wait time a multiple of the wait-loop timeout interval. (check-in: eddafaff user: stephan tags: trunk)
07:48
OPFS VFS: remove an invalid TODO and fix a property name typo which caused xCheckReservedLock() to always report false. (check-in: 3b037caa user: stephan tags: trunk)
07:17
Rename some OPFS JS files. Prevent JS bindings of sqlite3_uri_...() from performing JS-to-C-string argument conversion on their first argument, as doing so is specifically illegal. (check-in: 79832808 user: stephan tags: trunk)
05:27
Refactor a significant chunk of the OPFS sqlite3_vfs init code into sqlite3.VfsHelper, and internal-use-only API encapsulating code relevant to creating new VFSes in JS. Intended to assist in pending experimentation with an alternative OPFS VFS. (check-in: e25d7b08 user: stephan tags: trunk)
03:08
Doc and logging text tweaks in the OPFS async proxy and test app. (check-in: 7ce8608e user: stephan tags: trunk)
2022-11-29
18:28
sqlite3.oo1.OpfsDb: default to journal_mode=persist, as current tests show it to be marginally faster than truncate/delete in Chrome v109. Also increase default busy_timeout from 2 seconds to 3, admittedly on a whim. (check-in: d0c8fa30 user: stephan tags: trunk)
18:00
OPFS speedtest1: hide a currently-broken/to-fix WASMFS-build link. (check-in: cde95d38 user: stephan tags: trunk)
17:52
Change the handling of hwtime.h to make it easier to compile performance measurement builds that make use of hwtime.h. This should not affect productions builds. (check-in: f64a2242 user: drh tags: trunk)
11:28
Fix legacy build system main.mk to include basexx.c in testfixture builds. (check-in: 8c9200b7 user: dan tags: trunk)
06:56
Rename one instance of opfs.OpfsDb to oo1.OpfsDb, as per [0c5c51f4fb04]. (check-in: 75b04c9b user: stephan tags: trunk)
06:09
Minor internal cleanups and docs in the OPFS sqlite3_vfs. (check-in: 61799b05 user: stephan tags: trunk)
05:25
Internal restructuring of the OPFS sqlite3_vfs in order to facilitate certain experimentation and improve error reporting/hints if it cannot be activated. Deprecate the name sqlite3.opfs.OpfsDb, preferring sqlite3.oo1.OpfsDb for consistency with JsStorageDb and any future DB subclasses. (check-in: 0c5c51f4 user: stephan tags: trunk)
02:23
Add an explicit warning about the current API-instability of the sqlite3.opfs namespace, which may need to be eliminated based on re-thinking of how the OPFS sqlite3_vfs is registered. Comment changes only - no code. (check-in: 0cb2fd14 user: stephan tags: trunk)
2022-11-28
21:17
Check-in [8d5b76593d82b3a5] contained an error that was causing some obscure error codes to be lost. Fixed here. (check-in: 46cdd363 user: drh tags: trunk)
21:09
Get ext/misc/basexx.c into the testfixture.exe build for MSC. (check-in: bb2c5d08 user: larrybr tags: trunk)
20:08
Fix harmless compiler warnings. (check-in: 8d5b7659 user: drh tags: trunk)
19:42
Implementation of enhancement request [695a1a53dea6b240]: The query planner has improved awareness of when indexes on expressions are covering and adjusts their costs accordingly. (check-in: e3474d79 user: drh tags: trunk)
18:41
Add the SQLITE_FCNTL_RESET_CACHE verb. Use it to ensure that the page cache is purged before and after a the recovery extension is run. (check-in: 6db0bc4b user: dan tags: trunk)
18:17
Test cases added derived from the enhancment ticket. (Leaf check-in: c022c015 user: drh tags: covering-indexed-expr)
16:11
Merge trunk changes into covering-index-expr branch. (check-in: 89d775ad user: drh tags: covering-indexed-expr)
15:23
Rework the covering index checking routine, whereIsCoveringIndex(), so that it can return a "maybe" result for aggregate queries where we are not exactly sure. The index is scored as if it is covering, but the main table is still opened. (check-in: b8eec421 user: drh tags: covering-indexed-expr)
14:51
Add (optional) base64 and base85 UDF extensions. (check-in: b44ab10c user: larrybr tags: trunk)
14:11
Sync w/trunk, zap surplus space. (Closed-Leaf check-in: b8345630 user: larrybr tags: base_convert)
13:47
Ensure the RETURNING clause is honoured when a row of a temp table is updated by an ON CONFLICT clause. (check-in: a2449bcc user: dan tags: trunk)
02:28
Conform CLI .trace arg handling to its help. (check-in: 31546ea3 user: larrybr tags: trunk)
2022-11-27
00:57
Document an OPFS API change in Chrome v108 which does not break our code but does change several formerly async methods to synchronous. No code changes. (check-in: e9dd87e2 user: stephan tags: trunk)
2022-11-26
20:52
Better reporting of when the WHERE clause analysis thinks that an index is covering. (check-in: 17ebcf31 user: drh tags: covering-indexed-expr)
20:48
Show which AggInfo.aCol an Expr node represents in the tree trace debugging logic. Does not affect production builds. (check-in: b8076f4d user: drh tags: trunk)
20:13
Merge trunk fixes into the covering-indexed-expr branch. (check-in: 9ac67ff9 user: drh tags: covering-indexed-expr)
20:12
Fix an incorrect assertion-fault in the "TREETRACE" debugging logic on select.c. The problem does not affect production builds. (check-in: f11bb422 user: drh tags: trunk)
15:24
OPFS VFS: add the opfs-unlock-asap=1 URI flag which tells the VFS to release implicit locks ASAP instead of during VFS idle time. This improves concurrency notably in the test app but brings a significant performance penalty in speedtest1 (roughly 4x slowdown). This is not the final word in OPFS concurrency, but gets us a step further. (check-in: 9542f9ce user: stephan tags: trunk)
14:19
Experimental changes to help the query planner detect when an expression index is coverting. Works somewhat, but there are tests that fail. (check-in: 968c189b user: drh tags: covering-indexed-expr)
2022-11-25
17:05
Relax restriction (8) on the push-down optimization so that it only applies if one or more columns uses a collating sequence other than BINARY. See forum post 3824ced748baa808 and check-in [346a3b12b861ce7b]. (check-in: adbca344 user: drh tags: trunk)
16:32
Fix #ifdefs so that restrictions (8) and (9) of the push-down optimization are still enforced even if compiled with SQLITE_OMIT_WINDOWFUNC. This fixes a bug introduced by check-in [346a3b12b861ce7b]. (check-in: 09e1e42e user: drh tags: trunk)
16:10
Improve the query planner such that it is able to make use of indexed expressions within an aggregate query with GROUP BY. This implements enhancement request [99378177930f87bd]. (check-in: b9190d3d user: drh tags: trunk)
15:52
Add restriction (9) to the push-down optimization: If the subquery is a compound then all arms of the compound must have the same affinity. dbsqlfuzz 3a548de406a50e896c1bf7142692d35d339d697f. (check-in: 1ad41840 user: drh tags: trunk)
13:26
Remove a redundant assert() statement. (Closed-Leaf check-in: e3e1b453 user: drh tags: agg-with-indexed-expr)
13:15
Improve the robustness of the updateAccumulator() routine against OOM. (check-in: d2844f57 user: drh tags: agg-with-indexed-expr)
13:08
Improved comments. Add assert()s to verify that the AggInfo structure is unchanged after registers have been assigned. (check-in: 5200b841 user: drh tags: agg-with-indexed-expr)
2022-11-24
23:35
Correctly deal with IF-NULL-ROW operators when dealing with indexed expressions in aggregates. (check-in: 939cb470 user: drh tags: agg-with-indexed-expr)
20:11
Speed up base85() conversions and sync w/trunk. (check-in: 17b82350 user: larrybr tags: base_convert)
19:02
Take care not to try to add comments to a TK_AGG_COLUMN opcode that does not have an associated Table object because it is a reference to an indexed expression. (check-in: 5fc23863 user: drh tags: agg-with-indexed-expr)
18:45
Change a NEVER() into an assert(). (check-in: a0fd44f4 user: drh tags: agg-with-indexed-expr)
17:58
Fix a test case in fts3expr4.test to account for different locales. (check-in: a2b6883a user: dan tags: trunk)
17:53
More work on the OPFS concurrency testing app. (Closed-Leaf check-in: c0458cac user: stephan tags: opfs-unlock-asap)
16:03
JS documentation cleanups. No code changes. (check-in: 18e89a43 user: stephan tags: trunk)
15:32
Update multiplex3.test to account for the fact that the multiplexor xDelete method may return an error even if it manages to delete the first chunk of a file. (check-in: 1a7f3254 user: dan tags: trunk)
15:04
Add NEVER() and ALWAYS() macros on branches that are believed to be unreachable. (check-in: 3a901e88 user: drh tags: agg-with-indexed-expr)
13:19
New test cases. Fix the logic so that it works for GROUP BY aggregates that do not require sorting. (check-in: ef6ebe79 user: drh tags: agg-with-indexed-expr)
02:59
Speed up base64 conversions, and add test with more data for the baseNN conversion to grind. (check-in: 6c84ae4b user: larrybr tags: base_convert)
02:35
Add sqlite3.oo1.DB.prototype.checkRc() and tests for both that method and its class-level counterpart. (check-in: f7eaa6ba user: stephan tags: trunk)
01:41
Merge the latest trunk changes into the agg-with-indexed-expr branch to simplify diffs. (check-in: 38c3d3f1 user: drh tags: agg-with-indexed-expr)
01:40
Add explanatory comment to the new optimization. And add a test case. (check-in: e6c20f61 user: drh tags: agg-with-indexed-expr)
2022-11-23
21:09
Minor JS doc updates. (check-in: 27efd63a user: stephan tags: trunk)
21:03
Add optional zSchema argument to sqlite3_js_db_export(). (check-in: 9c23644b user: stephan tags: trunk)
20:49
OPFS concurrency test: add a URL flag to enable/disable unlock-asap mode. (check-in: 1c1bf22e user: stephan tags: opfs-unlock-asap)
19:03
Add an experimental OPFS VFS-specific URI flag, opfs-unlock-asap, which tells the VFS to release implicit locks ASAP. This permits higher concurrency but hurts performance considerably. This may or may not be obsoleted by other concurrency-related experimentation. (check-in: d23c9170 user: stephan tags: opfs-unlock-asap)
18:51
Aggregates with GROUP BY now make use of expressions on indexes. This code works and gets the correct answer for the test case in the ticket. Lots more testing and documentation is needed, however. (check-in: 8dcf9f20 user: drh tags: agg-with-indexed-expr)
17:56
This attempt at modifying AggInfo to make use of indexed expressions does not work. It gets an incorrect answer for the test case shown in the ticket. (check-in: 84c06023 user: drh tags: agg-with-indexed-expr)
16:39
Initial infrastructure for adding a mode to the OPFS VFS which causes implicit locks to be released ASAP, which increases concurrency at the cost of performance. (check-in: c5b7a971 user: stephan tags: opfs-unlock-asap)
16:08
Update Makefile.in to include new target "sqlite3r.c". For generating "sqlite3r.c" and "sqlite3r.h", versions of the amalgamation that include the recover extension. To build the shell tool against these files, add -DSQLITE_HAVE_SQLITE3R. (check-in: 5f135575 user: dan tags: trunk)
15:52
Remove a bit of over-cleverness which breaks loading of sqlite3.js in some main-thread cases. Broken by [96f76e7616]. (check-in: 220cc4c6 user: stephan tags: trunk)
15:33
OPFS concurrency tester: ensure that the work interval timer does not overlap with the work time. (check-in: 8f207655 user: stephan tags: trunk)
14:13
Further foundation prep work prior to starting to flesh-out the optimizeAggregateUseOfIndexedExpr() routine. (check-in: 23145fe9 user: drh tags: agg-with-indexed-expr)
2022-11-22
22:46
Add more baseNN tests, get oversize error trapping working, and sync w/trunk (check-in: 03819e93 user: larrybr tags: base_convert)
20:58
Merge enhancements and fixes from trunk. (check-in: f8932e04 user: drh tags: agg-with-indexed-expr)
20:37
Add the stub function: optimizeAggregateUsingIndexedExpr(). The hope is that we can fill this in with a routine that does useful optimizations. (check-in: d85bb724 user: drh tags: agg-with-indexed-expr)
20:04
Avoid naming collision between the sha1 and shathree extensions. (check-in: 9ec923b5 user: mistachkin tags: trunk)
19:56
Include the treetrace bitmap comment accidentally omitted from the previous check-in. (check-in: db07471c user: drh tags: trunk)
19:51
Merge trunk fixes and enhancements into the agg-with-indexed-expr branch. (check-in: 07063478 user: drh tags: agg-with-indexed-expr)
19:49
Rename the SELECTTRACE macro to TREETRACE, so that is corresponds to the new CLI command. Renumber all of the bits in the bitmask used to enable various kinds of tracing, and add a trace bitmap decoder in sqliteInt.h. Changes to debugging logic only. No (intentional) changes to production code. (check-in: 8036445a user: drh tags: trunk)
19:12
Sync w/trunk. Ready for merge to trunk. (check-in: ff67460e user: larrybr tags: base_convert)
19:04
Add test/basexx1.test to test is_base85(t), base85(x) and base64(x). Sync w/trunk. (check-in: 4e433454 user: larrybr tags: base_convert)
18:24
Fix the error message in the CLI for "no such VFS". Forum post 1217fdd6b3. (check-in: b344f33d user: drh tags: branch-3.40)
18:24
Fix the error message in the CLI for "no such VFS". Forum post 1217fdd6b3. (check-in: 861af465 user: drh tags: trunk)
16:12
Add Makefile.in targets for sqlite3r.c and sqlite3r.h, versions of the amalgamation that include the recover extension. (Closed-Leaf check-in: 59a837cf user: dan tags: make-sqlite3r.c)
15:48
Bump the version number to 3.40.1. (check-in: d0ca348b user: drh tags: branch-3.40)
15:47
Fix last function pointer in sqlite3Apis init. Reported at forum post eba0faa96d. (check-in: b3795d28 user: drh tags: branch-3.40)
15:43
Since the memory registers used by the columns and functions of an AggInfo object are sequential, it is not neecessary to remember each register separately. We can simply remember the first one and do the math when others are needed. (check-in: dc5bd349 user: drh tags: agg-with-indexed-expr)
15:41
Fix last function pointer in sqlite3Apis init. Reported at forum post eba0faa96d. (check-in: 6d5dc9ee user: larrybr tags: trunk)
14:31
Omit the unnecessary AggInfo.mnReg field. (check-in: d79c58ef user: drh tags: agg-with-indexed-expr)
14:10
Factor out the allocation of registers for aggregates into a separate subroutine. (check-in: 4475799d user: drh tags: agg-with-indexed-expr)
13:33
This is the first in what is anticipated to be a long sequence of incremental changes aimed at improving aggregate query processing, and in particular helping aggregate queries take better advantage of indexes on expression. The end goal is to resolve ticket [99378177930f87bd], though it remains to be seen whether or not I can get there with this approach. (check-in: cba837ea user: drh tags: agg-with-indexed-expr)
12:47
Convert an ALWAYS() in sqlite3DbSpanDup() into an assert(), for a performance increase and size reduction. (check-in: 21e80a29 user: drh tags: trunk)
2022-11-21
17:40
Split out the debugging code that dumps an AggInfo object into a separate subroutine called printAggInfo() so that it can be invoked interactively during debugging. No changes to production code. (check-in: dc33cfbe user: drh tags: trunk)
16:40
Change the name of the Parse.pIdxExpr field to pIdxEpr so that the name is distinct from all other identifiers in the code and thus less confusing. (check-in: a2962d01 user: drh tags: trunk)
16:03
Merge trunk into wasi-patches branch to clean up the diff view. (check-in: 95de6742 user: stephan tags: wasi-patches)
16:00
OPFS contention test: give each worker a distinct recognizable name instead of a random one. (check-in: 5f564bf7 user: stephan tags: trunk)
15:55
Performance optimization and size reduction in insertCell() by omitting the "pRC" argument and instead returning the result code as an integer. (check-in: bee94d1b user: drh tags: trunk)
14:13
Performance optimization to sqlite3BtreeInsert(). (check-in: b8976ebf user: drh tags: trunk)
13:35
Small performance improvement in sqlite3BtreeTransferRow(). (check-in: dab959ea user: drh tags: trunk)
06:07
Add new JS tests dir to those pushed to the test server. (check-in: 07182dca user: stephan tags: trunk)
05:18
More tweaking of OPFS concurrency measures and the related test app. (check-in: a8d4da15 user: stephan tags: trunk)
04:12
Resolve missing SQLITE_LOCKED result code which triggered a new (since last checkin) exception in the OPFS VFS. Improve output of the OPFS contention tester app. (check-in: 2debbbca user: stephan tags: trunk)
03:50
Add test app for experimenting with multi-worker OPFS concurrency. Tweak OPFS VFS to significantly improve the otherwise "unfortunate" concurrency situation. (check-in: 96f76e76 user: stephan tags: trunk)
02:18
Get clean builds for MS tools. Add build examples for extension glommer (basexx.c) Make sure extensions build for dynamic load and built into shell. (check-in: da940d50 user: larrybr tags: base_convert)
00:11
Fix a base64 decode bug. Provide for convenient inclusion of extension(s) built into the CLI, to simplify testing and for its own sake. Improve comments. Cure collision between base64.c and base85.c when both are in the same translation unit. (check-in: 07543d23 user: larrybr tags: base_convert)
2022-11-20
15:30
Remove check for WASM_WASI macro when detecting wasi compilation mode, as that macro is project-specific. Rely only on __wasi__ (exposed by clang) to detect wasi compilation mode. (check-in: d469ac0c user: stephan tags: wasi-patches)
05:47
js dist: account for a file rename in the previous checkin. (check-in: 469f9011 user: stephan tags: trunk)
05:36
Further minor cleanups in the JS build related to vanilla vs ESM. (check-in: 100a5968 user: stephan tags: trunk)
04:14
Remove an obsolete reference to WASMFS from ext/wasm/index.html. (check-in: 51ff6818 user: stephan tags: trunk)
04:14
Generic cleanups and doc additions in the wasm build files. (check-in: d10f385e user: stephan tags: trunk)
04:13
Add 'snapshot' target to create distinctly-named snapshot builds of the wasm deliverables zip file. (check-in: f7620aa0 user: stephan tags: trunk)
01:15
Minor cleanups in the ESM-related preprocessor filtering. (check-in: 205884a2 user: stephan tags: trunk)
2022-11-19
20:10
New assert()s confirm that BTREE_PREFORMAT must be the same value as OPFLAG_PREFORMAT. (check-in: f40bf2c6 user: drh tags: trunk)
19:37
Performance optimization in sqlite3BtreeInsert(). (check-in: 9776fa31 user: drh tags: trunk)
18:43
Performance improvement and size reduction in balance_nonroot(). (check-in: 715bc81e user: drh tags: trunk)
18:17
Small performance improvement and size reduction in btree. (check-in: daa07149 user: drh tags: trunk)
16:16
Get tester1.js working via an ES6 worker module and add that variant to the dist zipfile. (check-in: 90480586 user: stephan tags: trunk)
15:03
Elide a wasi-incompatible shell.c block in SQLITE_WASI builds. (check-in: 9b8b15a7 user: stephan tags: wasi-patches)
14:18
Improved comments on the pageFreeArray() routine of btree.c. No changes to code. (check-in: 0c2adc6d user: drh tags: trunk)
13:09
Streamline the decodeFlags() routine in btree.c for a small performance increase. (check-in: 4cb28521 user: drh tags: trunk)
07:44
Default to SQLITE_THREADSAFE=0 and SQLITE_OMIT_LOAD_EXTENSION for wasi builds. (check-in: 382ba3b2 user: stephan tags: wasi-patches)
07:39
Account for lack of mmap(), getpid(), and shared memory APIs in wasi. (check-in: 80ff026f user: stephan tags: wasi-patches)
07:17
Preliminary patches to get sqlite3.c building as-is in WASI environments. (check-in: 19c04d71 user: stephan tags: wasi-patches)
05:26
Add build of sqlite3.mjs (ES6 module), add a test app for it, and include it in the dist build. (check-in: 2e783670 user: stephan tags: trunk)
02:58
Integrate a custom preprocessor to the JS build process to facilitate creation of both vanilla JS and ES6 Module builds from the same source files. There is still some build-level reworking pending to make an ESM build a first-class deliverable. (check-in: 10c723d9 user: stephan tags: trunk)
02:51
More work towards creation of a ES6 JS module. (Closed-Leaf check-in: 6b826e70 user: stephan tags: js-cpp)
02:39
New extensions for base85 and base64 conversion UDFs (check-in: 5cc1fe1d user: larrybr tags: base_convert)
02:32
Create new branch named "base_convert" (check-in: 0cbf5540 user: larrybr tags: base_convert)
00:22
Small performance optimization in btree.c. (check-in: f710cce1 user: drh tags: trunk)
00:08
Databases created using sqlite3_deserialize() should report their filename as an empty string, not as "x". Fix for ticket [53043c9793715f08]. (check-in: ff494449 user: drh tags: trunk)
2022-11-18
17:57
Update the version number to 3.41.0 to begin the next development cycle. (check-in: 5c669f5f user: drh tags: trunk)
17:50
Add the SQLITE_DBCONFIG_LENIENT_JSON configuration option. Modify the built-in JSON routines such that when this setting is active, arguments that that ought to be JSON but still give a reasonable result (ex: NULL) rather than raising an error. (Leaf check-in: 186db57d user: drh tags: lenient-json)
15:22
shell.c.in: on non-Windows platforms, check for $XDG_CONFIG_HOME/sqlite3/sqliterc before ~/.sqliterc, per request in forum post 7a16582b1e403c81. (check-in: 17065d09 user: stephan tags: trunk)
02:29
Replace use of cpp with the fit-to-purpose c-pp to avoid cpp's C-centric/JS-unfriendly quirks. (check-in: 49d70f07 user: stephan tags: js-cpp)
2022-11-17
19:24
Fix corner cases in UTF8 handling in the REGEXP extension. Forum post 3ffe058b04. (check-in: abb18f61 user: drh tags: trunk)
15:21
Merge trunk into js-cpp branch. (check-in: e047b33d user: stephan tags: js-cpp)
14:40
Use the log10() and log2() functions from the standard C library to implement the equivalent SQL functions, in the hope that this will prevent reported precision problems. See forum post cfceb1230bdcfd84 and the surrounding thread. (check-in: 7c572d02 user: drh tags: trunk)
13:58
Split out the documentation for sqlite3_value_encoding() into its own page and make it clear that this interface is intended for testing and debugging only. Forum thread c9f445453da950ad. Comment changes only - no changes to code. (check-in: 9048a766 user: drh tags: trunk)
01:24
Raise an error if an attempt is made to compile the CLI with the SQLITE_OMIT_COMPLETE option, since sqlite3_complete() really is necessary for the CLI to operate sanely. (check-in: a119a9e2 user: drh tags: trunk)
2022-11-16
21:52
Change a self.X JS reference to X to account for a symbol resolution discrepancy between vanilla JS and ES6 modules, as explained in forum post 801d8f77e5115141. (check-in: 0590de4d user: stephan tags: trunk)
21:39
wasm build: include FTS5 instead of FTS4, per /chat and HN discussions. (check-in: 85c3f2ac user: stephan tags: trunk)
19:57
Fix harmless typo in comment, reported by Debian in Fossil https://fossil-scm.org/forum/forumpost/15f7327318. (check-in: 5689f0d9 user: drh tags: trunk)
19:53
Avoid returning SQLITE_SCHEMA if the first query run on a connection is "SELECT nosuchcolumn" or similar. Forum post c1798f77ef (check-in: 3dc4f75d user: drh tags: trunk)
16:14
Merge version 3.40.0 into the reuse-schema branch. (check-in: 2aec00a7 user: drh tags: reuse-schema)
16:11
Merge the 3.40.0 release into the begin-concurrent-pnu-wal2 branch. (check-in: a090de41 user: drh tags: begin-concurrent-pnu-wal2)
16:05
Merge the 3.40.0 release changes into the begin-concurrent-report branch. (check-in: 9fc62410 user: drh tags: begin-concurrent-report)
16:00
Merge the 3.40.0 release into the wal2 branch. (check-in: 2df915ef user: drh tags: wal2)
15:59
Merge 3.40.0 into the begin-concurrent branch. (check-in: a06d57ee user: drh tags: begin-concurrent)
12:10
Version 3.40.0 (check-in: 89c459e7 user: drh tags: trunk, release, major-release, version-3.40.0)
2022-11-14
19:42
Previous change to the fake_big_file command in the test harness was not correct. This one should fix the problem. (check-in: 6ee57a2e user: drh tags: trunk)
18:57
Change the fake_big_file test command so that it fails for files larger than 2MB on Windows, as we have observed that Window10 will sometimes bluescreen when operating on very large sparse files. (check-in: d39ffd2a user: drh tags: trunk)
17:48
Avoid running bigsort.test with SQLITE_DEBUG builds. The assert() statements added in [7c96a56] make it too slow. (check-in: fa68dd89 user: dan tags: trunk)
13:41
Merge the 3.40.0 rc1 changes into the reuse-schema branch. (check-in: 886788b6 user: drh tags: reuse-schema)
13:18
Merge the 3.40.0 rc1 changes into the begin-concurrent-pnu-wal2 branch. (check-in: b0e2b9aa user: drh tags: begin-concurrent-pnu-wal2)
13:10
Merge the 3.40.0 rc1 changes into the wal2 branch. (check-in: a5a610a6 user: drh tags: wal2)
12:54
Merge the 3.40.0 rc1 changes into the begin-concurrent-report branch. (check-in: 4d3f2531 user: drh tags: begin-concurrent-report)
12:44
Merge 3.40.0 rc1 into the begin-concurrent branch. (check-in: 5ba588e7 user: drh tags: begin-concurrent)
2022-11-13
19:29
Remove some outdated code comments. No code changes. (check-in: 80ff592a user: stephan tags: trunk)
2022-11-12
17:17
Disable the ability to change the schema_version cookie when SQLITE_DBCONFIG_DEFENSIVE mode is enabled. This is a security enhancement inspired by the question in forum post 2b9cc3dae1f1e5f6. (check-in: 1d81381e user: drh tags: trunk)
2022-11-10
23:10
Remove unnecessary tabs in the ChaCha20 implementation. Forum post 0cdce5db8c. (check-in: b7179efb user: drh tags: trunk)
19:19
Avoid returning SQLITE_SCHEMA if the first query run on a connection is "SELECT nosuchcolumn" or similar. Forum post c1798f77ef (Closed-Leaf check-in: d31c019f user: dan tags: schema-error-fix)
13:22
Automatically relinquish implicitly-acquired OPFS file locks during VFS idle time in an attempt to help alleviate cross-tab locking contention like that described in forum post 58a377083cd24a. (check-in: 8daf24ff user: stephan tags: trunk)
13:14
Rework automatically acquired OPFS locks to be released during idle time. This eliminates the performance hit reported in [46304ba057707c]. (Closed-Leaf check-in: a7fe91af user: stephan tags: opfs-lock-without-xlock)
11:35
OPFS: if an op which needs a lock is called when no lock has been obtained, automatically lock it at the start of the op and unlock it at the end of that op. This is an attempt to alleviate the cross-tab contention described in forum post 58a377083cd24a but it increases speedtest1 run time by approximately 4x. Perhaps auto-lock can be combined with the older idle-time-based auto-unlock to unlock such locks (but not those from xLock()) to improve this? (check-in: 46304ba0 user: stephan tags: opfs-lock-without-xlock)
2022-11-09
11:17
Better handle an error in the fts5 integrity-check code. dbsqlfuzz e87c62f9b67ea21aebdc36ab71cab7cc3eda8dc3. (check-in: ae43e970 user: dan tags: trunk)
11:02
Additional defense against corrupt database files in dbdata.c. (check-in: 2e70d1e5 user: drh tags: trunk)
10:17
Increase the precision of the nData parameter to the dbdataValue() routine inside the sqlite_dbdata virtual table, to avoid the possibility of integer overflow. (check-in: 295447b4 user: drh tags: trunk)
2022-11-08
20:04
Fix a problem with URI formatting in calls to sqlite3rbu_vacuum(zDb, NULL) causing problems on win32. First reported here <https://sqlite.org/forum/forumpost/a7ae915a9d>. (check-in: 77ccc8ea user: dan tags: trunk)
19:36
Do not attempt to run test script dbpagefault.test with SQLITE_OMIT_VIRTUALTABLE builds. (check-in: 901918c4 user: dan tags: trunk)
15:49
Fix a problem in main.mk preventing the amalgamation-testfixture target from building. (check-in: ccf00a0e user: dan tags: trunk)
2022-11-07
19:40
Further improvements to the handling of the u32 and u16 typedefs in the shell.c source file. (check-in: 55a19677 user: drh tags: trunk)
18:36
Improve the ability of mkshellc.tcl to remove redundant typedefs from the generated shell.c code. This is needed to get shell.c to build on older C compilers. (check-in: 3645585f user: drh tags: trunk)
18:09
Update this branch to match latest trunk changes. (check-in: 833f6374 user: dan tags: reuse-schema)
18:00
Add the sqlite3rbu_rename_handler() API. To override the default routine that RBU uses to rename files. (check-in: ebbb1f88 user: dan tags: trunk)
17:21
Minor doc updates in speed-check.sh. No code changes. (check-in: d2ed4116 user: stephan tags: trunk)
15:23
Fix an obsolete comment. (check-in: e377c0a1 user: drh tags: trunk)
15:01
Fix typo in comment. (check-in: c3b94d7d user: drh tags: trunk)
13:06
Add sqlite3.wasm.alloc.impl() as a "public back door" into the low-level non-throwing allocator. Correct sqlite3.WasmAllocError constructor to behave like its usages expect it to and add tests for that. (check-in: cea8bf9a user: stephan tags: trunk)
12:21
Fix requirements marks so that they match documentation corrections. (check-in: 10d6189d user: drh tags: trunk)
12:12
Minor wasm doc touchups. No code changes. (check-in: 2c448368 user: stephan tags: trunk)
11:19
Fix the documentation regarding negative length parameters for sqlite3_result_text() interfaces, to point out that the length parameter to sqlite3_result_text64() cannot be negative. Forum post cf1d043b07. Comment/documentation change only. (check-in: 80165076 user: drh tags: trunk)
11:05
Make sure that the recoverStrlen() function (used internally by the new recovery extension) is 64-bit safe. (check-in: ea30a6bf user: drh tags: trunk)
2022-11-06
17:19
The recoverAssertMutexHeld() function is for testing and verification only and should be a harmless no-op for production builds. [forum/forumpost/b4f2c7d402|Forum post b4f2c7d402]. (check-in: d7550471 user: drh tags: trunk)
13:12
shell.c.in: on non-Windows platforms, check for $XDG_CONFIG_HOME/sqlite3/sqliterc before ~/.sqliterc, per request in forum post 7a16582b1e403c81. (Closed-Leaf check-in: 49c6e438 user: stephan tags: sqliterc-xdg-config)
2022-11-05
19:26
Update test file dbpagefault.test to account for the restriction on using SQLITE_VTAB_DIRECTONLY virtual tables from within triggers. (check-in: 2b68fc8a user: dan tags: trunk)
17:52
Fix harmless compiler warnings. (check-in: fe44e7ef user: drh tags: reuse-schema)
15:31
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 224eaf26 user: drh tags: reuse-schema)
2022-11-04
19:09
Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: aa2e247b user: drh tags: begin-concurrent-pnu-wal2)
18:58
Merge the latest trunk enhancements into the wal2 branch. (check-in: ca63a1be user: drh tags: wal2)
18:47
Merge the latest trunk enhancements into the begin-concurrent-report branch. (check-in: d8568a84 user: drh tags: begin-concurrent-report)
18:33
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: b361ee98 user: drh tags: begin-concurrent)
18:32
Tweaks to recover module test scripts to work with various permutations. (check-in: 454c61e8 user: dan tags: trunk)
17:07
Another test case fix for auto-vacuum builds. (check-in: c1c47eff user: dan tags: trunk)
16:39
Fixes to recover module test scripts so that they may be used with SQLITE_DEFAULT_AUTOVACUUM and SQLITE_SECURE_DELETE builds. (check-in: 0e5597ce user: dan tags: trunk)
15:17
Fix Tcl tests so that they again build and run with SQLITE_OMIT_VIRTUALTABLE defined. (check-in: 06a9dbea user: dan tags: trunk)
12:59
Remove an unimportant testcase() macro that is no longer reachable due to the improvement in corruption detection. (check-in: cd7e3568 user: drh tags: trunk)
11:59
Add another test case for the OP_Found fix. (check-in: 6cdd64a4 user: dan tags: trunk)
11:54
Enhance the ability of the OP_Found and similar opcodes to detect truncated index records and report SQLITE_CORRUPT. dbsqlfuzz 2b12f90aeff8e081706c7e9b58834f04869f446c. Test cases in TH3. (check-in: 059a09da user: drh tags: trunk)
09:02
Correct sqlite3-wasm.c's SQLITE_DEFAULT_CACHE_SIZE (it's measured in kb, not bytes). (check-in: 479ad980 user: stephan tags: trunk)
2022-11-03
22:51
Add experimental esm target to ext/wasm/GNUmakefile to tell emcc to generate sqlite3.mjs (ES6 module) instead of sqlite3.js. Related to discussion at ed4596cf8496a39b. (check-in: e55d8eba user: stephan tags: trunk)
22:14
Experimentally use clang's C preprocessor to filter #ifdef's out of the generated sqlite3-api.js, the goal being to see if we can feasibly use cpp to include ES6 module-specific code in the main code base and conditionally filter it out. (check-in: 718a6d37 user: stephan tags: js-cpp)
21:21
Globally replace '' with "" for empty JS strings to please C preprocessor. (check-in: e92e1f42 user: stephan tags: trunk)
21:08
Experimental changes that try to identify indexes as covering when they contain expressions which do cover all data uses. This check-in does not work, because the AggInfo object might still refer to individual columns. The purpose of this check-in is to preserve the idea. I might come back to it later. (Leaf check-in: 018914a5 user: drh tags: indexed-expr-exp)
2022-11-02
14:08
Minor build cleanups and fix a harmless race condition in the OPFS part of tester1.js. (check-in: 70ee6ee0 user: stephan tags: trunk)
14:08
Clarify documentation regarding the --recovery-db option to ".recover" and the magic 789 configuration option it is associated with. (check-in: f6fa0cff user: drh tags: trunk)
13:09
Minor improvements to API documentation in comments for the recovery extension. (check-in: ed1c3515 user: drh tags: trunk)
11:53
Add sqlite3_wasm_vfs_create_file() to replace Emscripten's FS.createDataFile() in a (mostly) VFS-agnostic way. Add a test for worker1's export (to bytearray) support. Re-add worker1 open-from-bytearray using sqlite3_wasm_vfs_create_file() but it's untested (requires a new interactive test app or maybe reconsideration). (check-in: b35e1225 user: stephan tags: trunk)
11:25
Emcc seems confused by SQLITE_DEBUG, for reasons unknown. Use NDEBUG instead to simplify the #ifdef logic in sqlite3recover.c. (check-in: 2610779a user: drh tags: trunk)
08:49
Fix a symbol name typo which broke and exception-handling case in OPFS xOpen(). (check-in: 5bc83d56 user: stephan tags: trunk)
08:10
Fix a missing symbol in non-SQLITE_DEBUG builds. (check-in: 17cdcad6 user: stephan tags: trunk)
2022-11-01
21:42
Fix a harmless compiler warning. (check-in: 663a8916 user: drh tags: trunk)
19:35
Instead of (const char*), use a special type - sqlite3_filename - as the filename argument passed to VFS method xOpen(). (check-in: 90df04e5 user: dan tags: trunk)
18:56
Fix harmless compiler warnings. (Closed-Leaf check-in: de829770 user: drh tags: sqlite3_filename)
17:43
Instead of (const char*), use a special type - sqlite3_filename - as the filename argument passed to VFS method xOpen(). (check-in: bd1fe4de user: dan tags: sqlite3_filename)
14:13
Fix compilation errors in the recover API seen with MSVC. (check-in: 78d17c4f user: mistachkin tags: trunk)
13:12
Fix a #ifdef involving SQLITE_OS_KV that was adding code unnecessarily. (check-in: b6c1b6e4 user: drh tags: trunk)
12:10
Enforce affinity on materialized tables for subqueries and views. Also, do not allow UNION ALL flattening if the affinity of a result column varies between different arms of the compound. This is a fix for ticket [57c47526c34f01e8]. (check-in: 88a05141 user: drh tags: trunk)
12:01
Improvements to comments. Change the "optimization_control" TCL command in the test harness so that it returns the new optimization mask, for verification. (Closed-Leaf check-in: a3a50012 user: drh tags: tkt-57c47526)
11:09
Minor internal cleanups in the js pieces. (check-in: 271391b4 user: stephan tags: trunk)
07:49
Significant cleanups and expansion of the sqlite3.opfs utilities. Add oo1.DB.dbVfsName(). Add VFS name to worker1:open's arguments and result. (check-in: 86a341d7 user: stephan tags: trunk)
01:07
Do not flatten a UNION ALL subquery where the column affinities do not match on all arms. Force that subquery to be materialized. (check-in: 1b8a1288 user: drh tags: tkt-57c47526)
00:52
Enforce column affinity on the materialization of a subquery or view. (check-in: b6692de3 user: drh tags: tkt-57c47526)
2022-10-31
18:11
Make the UPDATE method of the sqlite_dbpage virtual table rebust against OOM errors. Forum post bbcf0dd6ca. Test case in TH3. (Leaf check-in: 852f2c95 user: drh tags: branch-3.39)
18:04
Extra OOM check in shell_error_context() of the CLI. forum post 5708841db0. (check-in: d6893183 user: drh tags: branch-3.39)
18:01
Make the UPDATE method of the sqlite_dbpage virtual table rebust against OOM errors. Forum post bbcf0dd6ca. Test case in TH3. (check-in: d15c9a4a user: drh tags: trunk)
13:50
Worker1: use a list, rather than a single slot, to manage the default db link so that we can keep the least-recently-opened db as the default. Re-introduce worker1.export() but do not yet expose it until an equivalent import() (or open() option) is implemented. (check-in: c7750c10 user: stephan tags: trunk)
11:53
Internal tweaks to the OPFS VFS result codes. (check-in: 32e1a2d2 user: stephan tags: trunk)
11:09
Add oo1.DB.exec() 'returnValue' option, which specifies what exec() should return. Defaults to the db object and enables direct return of the result rows array or a list of the individual SQL statements. Other code-adjacent internal cleanups. (check-in: 69d36a6a user: stephan tags: trunk)
10:53
Avoid a segfault that could occur when running the recover API on a database handle with memory-mapping enabled. (check-in: e02c6972 user: dan tags: trunk)
01:22
Extra OOM check in shell_error_context() of the CLI. forum post 5708841db0. (check-in: cb12ac5d user: drh tags: trunk)
2022-10-30
11:39
Add oo1.DB.selectArray() and selectObject(). (check-in: 7660db2a user: stephan tags: trunk)
11:22
Refactoring towards being able to distinguish locking-related errors from non-locking errors in OPFS VFS operations. On a branch because it's not yet clear whether this is a misuse of the SQLITE_IOERR_... codes. Edit: indeed, this is a misuse of the result codes. (Closed-Leaf check-in: 646fe2ce user: stephan tags: opfs-locking-result-codes)
10:24
Adjust automatic OPFS locking retries such that they will wait up to a total of 3 seconds spanning 4 attempts. (check-in: bbce49d8 user: stephan tags: trunk)
09:47
Minor WASM build cleanups. Enable custom Module.instantiateWasm() when not in WASMFS mode (where it doesn't work). Add sqlite3.debugModule URL param to enable some module-init-time debugging output. (check-in: 50f67884 user: stephan tags: trunk)
08:39
Reduce wasm module's starting memory from 128mb to 16mb. The latter value is needed only for WASMFS-based batch-runner.js, as WASMFS builds cannot be configured for dynamic memory growth without a tremendous performance hit. (check-in: ed9d93c4 user: stephan tags: trunk)
07:01
Minor updates to the Windows batch tools. (check-in: b42f5620 user: mistachkin tags: trunk)
2022-10-29
12:31
Update ext/wasm/README.md for recent developments. (check-in: c76ec31e user: stephan tags: trunk)
10:14
More styling of module-symbols.html. (check-in: a36f42a8 user: stephan tags: trunk)
09:45
Expand and document the wasm doc-update make rules. Extend the dist rules to fail more readily if there's a problem. (check-in: 362ec11e user: stephan tags: trunk)
07:54
Move the sqlite3.capi.wasm namespace to sqlite3.wasm. This causes a tiny bit of naming confusion with the sqlite3.wasm *file*, but seems to make more sense than having it as a sub-namespace of capi. (check-in: 3f16eb18 user: stephan tags: trunk)
2022-10-28
18:52
Fix harmless compiler warnings in testing code. (check-in: 2f536123 user: drh tags: trunk)
18:35
Add sqlite3recover() support to fuzzcheck. (check-in: e65c5bdc user: drh tags: trunk)
14:33
Remove sqlite3_interrupt() from the WASM build, as it is essentially impossible to employ in JS's threading model. (check-in: e8538759 user: stephan tags: trunk)
11:40
Add ext/wasm/module-symbols.html. Adjacent minor JS touchups. (check-in: 24f12e68 user: stephan tags: trunk)
10:36
Minor sqlite3.oo1 API reorg prompted by documenting. (check-in: 55237924 user: stephan tags: trunk)
2022-10-27
23:17
Fix a minor problem with sqlite_dbdata. (check-in: 58c2e492 user: drh tags: trunk)
20:27
Fix another crash in the recover extension triggered by a corrupt database. (check-in: d1253773 user: dan tags: trunk)
19:06
Fix another problem to do with recovering from in-memory databases. (check-in: 5a7bfd4a user: dan tags: trunk)
19:02
Ensure that the VFS wrapper in the recover extension does not attempt to invoke undefined methods on the underlying VFS. (check-in: 347c5751 user: dan tags: trunk)
18:35
Fix an assert() failure in the recover extension triggered by a zero value as the first page-number in an overflow page chain. (check-in: 44c0874c user: dan tags: trunk)
18:20
In the CLI, ensure that input to utf8_width_print is not NULL, or if it is, change it to an empty string. For for the problem reported by forum post 2961cf13eec61876. (check-in: 9ecc9d25 user: drh tags: trunk)
18:19
Change the name of the ".recover" command option "--freelist-corrupt" to "--ignore-freelist". (check-in: afce8443 user: dan tags: trunk)
14:41
speedtest1.html: when vfs==kvvfs, increase --size from 2 to 4, as enabled by [a4d40f6346e7]. --size 5 is 4.96mb out of (supposedly) 5mb, which works but is a bit too close to the edge. (check-in: a608d584 user: stephan tags: trunk)
14:28
Automatically set temp_store=MEMORY if the VFS is kvvfs. (check-in: a4d40f63 user: drh tags: trunk)
14:00
Do not accept a NULL pointer for the filename in KVVFS. (check-in: fdecbd3b user: drh tags: trunk)
12:46
The kvvfs VFS should remember the page size when writing to the database. (check-in: fc5503c8 user: drh tags: trunk)
11:32
Re-enable the .recovery and .dbinfo commands in shell.c.in in the fiddle build, as those were fixed by [3d20d77a3511] and [cd0aa27d1732]. (check-in: ba3a7a4a user: stephan tags: trunk)
11:25
Do not use sqlite3_result_text16() in the recover extension if SQLITE_OMIT_UTF16 is defined. (check-in: 3d20d77a user: dan tags: trunk)
11:12
Fix a problem with running ".recover" on an in-memory database. (check-in: 87b4cca2 user: dan tags: trunk)
10:51
Do not use sqlite3_mutex_xxx() functions in sqlite3recover.c when built with SQLITE_THREADSAFE=0. (check-in: cd0aa27d user: dan tags: trunk)
03:57
Minor doc typo fixes. (check-in: ed8d3f25 user: stephan tags: trunk)
03:56
Restructure and simplify the feature-detection #defines of the recovery support in shell.c.in and disable it when building fiddle because it uses features we elide from the wasm build (e.g. utf16), leading to link errors. (check-in: ddd10c05 user: stephan tags: trunk)
03:03
Expose sqlite3_randomness() to WASM and add a custom binding for it which can populate a JS byte array. Add WhWasmUtil.isPtr(). (check-in: 333e6707 user: stephan tags: trunk)
2022-10-26
21:14
Disable the push-down optimization for sub-queries that are INTERSECT, UNION or EXCEPT compounds. dbsqlfuzz a34f455c91ad75a0cf8cd9476841903f42930a7a. This corrects an issue that was introduce 12 days earlier by [ed14863dd72e35fa]. (check-in: 346a3b12 user: dan tags: trunk)
20:12
Remove an unused variable from the recovery extension. (check-in: a029dddf user: drh tags: trunk)
18:41
Add the "recover" extension in ext/recover/, for salvaging data from corrupt databases. (check-in: a8207925 user: dan tags: trunk)
18:29
Remove an undefined left-shift operation from the recover extension. (Leaf check-in: a6708235 user: dan tags: recover-extension)
18:22
Merge further changes from trunk, including fix to dbdata.c. (check-in: bcf6b48d user: dan tags: recover-extension)
18:04
Make the shell .recover command and the dbdata.c module more robust in the face of corrupted databases. (check-in: 4eef562a user: dan tags: trunk)
15:40
Correct misuse of localhost-mode-only symbol S in fiddle-worker.js, which should fix the outage reported in forum post 67d985ac0bbe407f. (check-in: 3b5aa50c user: stephan tags: trunk)
15:34
Corrected link to fiddle in ext/wasm/index.html (broken by [3d7b4f36b7dd]). (check-in: 6efa0bae user: stephan tags: trunk)
11:27
Replace the newly-removed oo1.DB.getFilename() with DB.dbFilename() with the hope that the distinction from the dbInstance.filename property is clearer. (check-in: 0b80543d user: stephan tags: trunk)
11:12
Remove oo1.DB.hasFilename() and getFilename(), as they are unnecessary. (check-in: 75c546b9 user: stephan tags: trunk)
11:11
Remove the sqlite3StdTypeMap global constant that was made obsolete by [aa6e908619624867]. (check-in: 3dfdfb3f user: drh tags: trunk)
06:05
Add --download-version flag to ext/wasm/version-info.c and correct dist target's output version format to match. (check-in: 6f2a40d0 user: stephan tags: trunk)
2022-10-25
16:57
Add doc page link to the wasm dist README.txt. (check-in: c2380668 user: stephan tags: trunk)
16:04
Correct -O level for fiddle build when built from the top-most directory (-Os instead of -O0). (check-in: ff4fc29c user: stephan tags: trunk)
15:59
Rename fiddle.html to index.html and move fiddle push-to-server rules from GNUmakefile into fiddle.make. (check-in: 3d7b4f36 user: stephan tags: trunk)
15:38
speedtest1: use the current (or default) vfs->xDelete method to unlink the db. This is specifically necessary when running the opfs vfs in a wasm build of speedtest1. This worked without this fix until recently because the affected test code was performing similar acrobatics in its stead. (check-in: d3c830bd user: stephan tags: trunk)
13:46
Fix the ".dump" command in the CLI so that it is more rebust against corrupt database files. At the same time, enhance the sqlite3_strglob() and sqlite3_strlike() interfaces so that they will do sensible things with NULL string pointers. (check-in: 681c85ef user: drh tags: branch-3.39)
13:44
Enhance the sqlite3_strglob() and sqlite3_strlike() interfaces so that they will do sensible things with NULL string pointers. This is an extra layer of defense against bugs such as reported by forum post 730b554179. (check-in: 8ba9c884 user: drh tags: trunk)
13:42
Make the ".dump" command of the CLI more robust against malformed databases. See forum post 730b554179. (check-in: 0573edfb user: drh tags: trunk)
11:05
Merge latest trunk changes with this branch. (check-in: 757e3f58 user: dan tags: recover-extension)
08:41
Minor doc tweaks in the JS GNUmakefile. (check-in: 9c8df130 user: stephan tags: trunk)
08:15
Remove persistence from the 'reverse log order?' checkbox in tester1.js to eliminate an inconsistency between the main-thread and worker-thread modes (the latter having no option for persistence of that setting). (check-in: ecf906b0 user: stephan tags: trunk)
08:06
Minor cleanups and doc improvements in the OPFS sqlite3_vfs proxy. (check-in: 48645f7b user: stephan tags: trunk)
2022-10-24
21:58
This check-in attempts to make the SrcItem object smaller by combining the zDatabase and pSchema fields into a single union. It mostly works, but there are some issues, and the performance savings is minimal. So it is side-tracked onto this dead-end branch. (Closed-Leaf check-in: 80fbb30f user: drh tags: failed-opt-attempt)
18:42
Fix typo in comment. (check-in: f65c9565 user: drh tags: trunk)
18:33
Add a comment to a previously undescribed member of the Walker union. (check-in: 69d70422 user: drh tags: trunk)
15:51
Use the same "PRAGMA synchronous" setting for the output of a "VACUUM INTO" as are configured for the database being vacuumed. (check-in: 86cb21ca user: dan tags: trunk)
13:50
Improve the ability of the query planner to recognize covering indexes even on tables with more than 63 columns and where the index is over columns beyond the 63rd column. (check-in: 3d1992de user: drh tags: branch-3.28)
13:20
Improve the ability of the query planner to recognize covering indexes even on tables with more than 63 columns and where the index is over columns beyond the 63rd column. (check-in: f058773e user: drh tags: trunk)
12:38
Update the fuzzinvariant logic in fuzzcheck to the latest code from dbsqlfuzz. (check-in: 739ad584 user: drh tags: trunk)
11:10
Fix built-in documentation for the ".mode qbox" command in the CLI. (check-in: 3d7ea33b user: drh tags: trunk)
11:02
Test cases for covering indexes on wide tables. (Closed-Leaf check-in: 64c3777e user: drh tags: covering-index-enh)
2022-10-23
20:09
The wide-table covering index detection must take into account aggregate queries. (check-in: 9ac73f83 user: drh tags: covering-index-enh)
2022-10-22
23:09
More frequently send the complete SELECT statement into sqlite3WhereBegin() so that it can more accurately determine index coverage. (check-in: f6d09c5a user: drh tags: covering-index-enh)
20:13
Enhance the query planner with the ability to discern when an index is covering even when it indexes columns well beyond the 63rd column. (check-in: 1390417b user: drh tags: covering-index-enh)
14:16
This branch attempts to improve the detection of covering indexes. This first check-in merely improves a parameter name to sqlite3WhereBegin() to be more descriptive of what it contains, and ensures that a subroutine is not inlines so that sqlite3WhereBegin() runs slightly faster. (check-in: cadf5f6b user: drh tags: covering-index-enh)
13:49
Clarification on the meaning of SrcList and SrcItem and especially the SrcItem.colUsed and Index.colNotIdxed fields. Comment changes only - no changes to code. (check-in: d96f6cc8 user: drh tags: trunk)
2022-10-21
20:12
Begin transitioning the fixed-length (64-bit) bitmap used to keep track of the subset of columns of a table that are used by a query into a more general structure that can work with wide tables. Experimental. (Closed-Leaf check-in: 5dd78588 user: drh tags: column-set)
17:48
Add SQLITE_DQS to the compileoptions_used list, per request in forum post 8b1060122b. Force DQS=0 in sqlite3-wasm.c. (check-in: fcd9e0db user: stephan tags: trunk)
17:37
Macro name typo fix in OS_KV builds. (check-in: 9cf1142b user: stephan tags: trunk)
17:18
Ensure that the RtreeCell object in rtreeUpdate has all bytes initialized. (check-in: 1e38742b user: drh tags: trunk)
06:58
Add kvvfs tests to tester1.js. Fix a scopedAlloc() misuse in oo1.DB ctor caused by refactoring earlier this morning (and caught by these new tests). (check-in: 8e0f001a user: stephan tags: trunk)
06:26
Add timing info and OPFS sanity tests to tester1.js (check-in: 99915b00 user: stephan tags: trunk)
05:27
Expose sqlite3_vfs_unregister() to WASM and unregister kvvfs in Worker threads to avoid its unintended use there (in contexts other than local/sessionStorage). Correct registration of window functions, extend oo1.DB.createFunction() to support window functions, and add window function tests to tester1.js. Correct an incorrect 1-arg handling case for DB.exec(). Add per-test assertion counts to tester1.js. (check-in: f07ce154 user: stephan tags: trunk)
2022-10-20
23:48
Make semantics for UDF xFinal() result handling and error reporting handling more flexible. (check-in: 89f3e198 user: stephan tags: trunk)
21:28
Add more JS tests. Flesh out the aggregate UDF tests to use sqlite3_aggregate_context() so that they can each be used multiple times in the same statement. Add sqlite3_js_aggregate_context() convenience helper. (check-in: 9d034ef5 user: stephan tags: trunk)
18:58
Apply magic.txt correction and addition reported in forum post 2d2366a04a0385. (check-in: 9bf26e2a user: stephan tags: trunk)
18:31
Rename sqlite3_web_... to sqlite3_js_... Document the worker1.close.unlink option. Fix unlink usage in speedtest1.html. Minor JS build cleanups. (check-in: ac9af71b user: stephan tags: trunk)
16:30
Add a bit to the optimization disabling mask for the indexed expression optimization. (check-in: 56df1482 user: drh tags: trunk)
16:22
Add test case for previous commit. (check-in: 535867a9 user: dan tags: trunk)
16:12
Only enable the bMaybeNullRow flag on IndexedExpr for an index on an expression, not on a virtual column. But do enable it for the right operand of a right join. (check-in: a9657c87 user: drh tags: trunk)
13:36
The generalized indexed expression optimization of [2435112867fbd7b6] makes the prior [a47efb7c8520a011] enhancement from 2017 obsolete. This check-in removes the older optimization. (check-in: 56442c9b user: drh tags: trunk)
10:46
Fix minor problems in test1.c test code. (check-in: 6e545e2b user: dan tags: trunk)
05:14
Rework sqlite3_wasm_vfs_unlink(), add sqlite3_wasm_db_vfs(), update some docs. (check-in: cdd46858 user: stephan tags: trunk)
04:00
Minor internal JS cleanups. (check-in: 818ef0b5 user: stephan tags: trunk)
2022-10-19
18:04
In the CLI, never use strcmp() or strncmp() directly. Instead use wrapper functions cli_strcmp() and cli_strncmp() that work correctly even if the input is a NULL pointer. Forum post 142b868da7560d0b. (check-in: 7450a561 user: drh tags: trunk)
18:03
Move file /ext/misc/dbdata.c to the /ext/recover/ directory. (check-in: f6d5ac80 user: dan tags: recover-extension)
11:58
Fix references to "SrcList_item" in comments as that object has since [bfd5bf2c73110fcb] (2021-02-21) been called "SrcItem". Comment changes only. No changes to code. (check-in: e3648a07 user: drh tags: trunk)
11:22
If a query uses an index where one or more of the columns of the index is an expression and if the corresponding expression is used elsewhere in the query, then strive to read the value of the expression out of the index, rather than recomputing it. This is the "Indexed Expression Optimizations". (check-in: 3da10328 user: drh tags: branch-3.28)
10:56
If a query uses an index where one or more of the columns of the index is an expression or a virtual column, and if the corresponding expression is used elsewhere in the query, then strive to read the value of the expression out of the index, rather than recomputing it. This is the "Indexed Expression Optimizations". (check-in: 24351128 user: drh tags: trunk)
07:51
Update the wasm/js 'push' rule to account for this morning's changes. (check-in: c4a0f745 user: stephan tags: trunk)
07:34
Rename several demo/test files and include more of them in the end-user dist archive. (check-in: 9c85835f user: stephan tags: trunk)
06:14
Minor wasm/js build tweaks. (check-in: bcbee1ec user: stephan tags: trunk)
06:06
Update the dist rules for this evening's js/wasm build changes and include an index.html specifically for the subset of apps included in the dist archive. (check-in: a0ef0f32 user: stephan tags: trunk)
04:44
Apply considerable acrobatics to get the JS/WASM deliverables building to and loadable from a directory other than the one which contains the app-level code. Requires an only-slightly-leaky abstraction of passing a URL argument when loading sqlite3.js but provides much greater flexibility in where the JS/WASM files are located. (check-in: 6d468dab user: stephan tags: trunk)
01:07
Considerable wasm/js build cleanups and reworking. Remove wasmfs builds from the end-user deliverables and disable the wasmfs build by default, per /chat discussion, as it doubles our deliverable count for only marginal gain. Attempt to move the sqlite3.js/wasm files into subdirectories but rediscovered that that breaks loading in Worker mode because URI resolution of the wasm files differs depending on whether the main script is loaded from a script tag or a Worker. (check-in: 5b23e067 user: stephan tags: trunk)
2022-10-18
22:37
If a virtual column whose value is constant gets indexed, do not include that column in the IndexedExpr list. dbsqlfuzz 59ac17a99b9a5c4930ee71cc153c9428a0c0e794 (Closed-Leaf check-in: c21eb903 user: drh tags: index-expr-opt)
20:36
More work on the JS end-user deliverables. Add tool/stripccomments.c to support that. (check-in: 2156f074 user: stephan tags: trunk)
20:27
Improved byte-code comments for the OP_Column opcodes used by the indexed expression optimization. (check-in: bf6d837f user: drh tags: index-expr-opt)
16:47
Fix the indexed expression resolver for generated columns so that it picks the correct table in a self-join. (check-in: 54c3eb08 user: drh tags: index-expr-opt)
16:32
Merge recent trunk fixes into the index-expr-opt branch. (check-in: 6198ab4b user: drh tags: index-expr-opt)
15:02
Add new test file windowE.test, to test the window functions modules response to an inconsistent collation sequence. (check-in: 740a2eb0 user: dan tags: trunk)
13:27
Correct sort order for serial-type 10 entries in the database file. This is a continuation of [4fb77e96fa89a23a]. (check-in: 904b5462 user: drh tags: trunk)
11:28
Merge trunk fixes into the index-expr-opt branch. (check-in: c7b9cc64 user: drh tags: index-expr-opt)
10:27
Fix sqlite3VdbeRecordCompareWithSkip() so that it sorts the internal-use serial-type of 10 together with NULLs. dbsqlfuzz 5ff35e9d49a5fcca5051e23960ff2f483a538bab (check-in: 4fb77e96 user: drh tags: trunk)
2022-10-17
17:36
Add ext/wasm/README-dist.txt, intended to have been in the previous checkin. (check-in: c9080b65 user: stephan tags: trunk)
17:34
Initial draft of archive generation for the wasm/js deliverables. (check-in: f6cee114 user: stephan tags: trunk)
16:47
Repair version-info.c after a local mishap caused all of the intended edits from [36e197cb3d0c]/[e9b407a4d0a0] to get deleted before checkin. Simplify version-info build (only requires sqlite3.h, not the library). (check-in: 6e511df5 user: stephan tags: trunk)
16:31
Merge trunk changes into the index-expr-opt branch. (check-in: a1485ce6 user: drh tags: index-expr-opt)
16:29
Fix a potential call to strlen() with a null argument in the command-line shell following an OOM error. forum post 9c4f2ebe22. (check-in: 67bb8eda user: drh tags: branch-3.39)
16:09
Fix a potential call to strlen() with a null argument in the command-line shell following an OOM error. forum post 9c4f2ebe22. (check-in: b6413a6d user: drh tags: trunk)
15:53
Missing file-rename for the previous checkin. (check-in: e9b407a4 user: stephan tags: trunk)
15:52
Rework ext/wasm/version-info.c to make it more useful for the upcoming dist build rules. (check-in: 36e197cb user: stephan tags: trunk)
14:46
Improved comments and function names. No logic changes. (check-in: 8f460b3b user: drh tags: index-expr-opt)
14:30
Get the indexed expression optimization working for virtual generated columns. (check-in: 8a510cb0 user: drh tags: index-expr-opt)
14:29
Merge trunk enhancements into index-expr-opt branch. (check-in: 56ef97e6 user: drh tags: index-expr-opt)
10:15
Make use of alloca() in wherePathSolver() when SQLITE_USE_ALLOCA is defined. (check-in: 45752471 user: drh tags: trunk)
09:56
Remove a use of alloca() that does more harm than good. (check-in: 2ab3cf4d user: drh tags: trunk)
2022-10-16
23:33
Typo fix. (check-in: 650126c9 user: stephan tags: trunk)
18:57
Minor tweak to get bring an edge case of oo1.DB.createFunction() into aggreement with its docs. (check-in: 8d59ccd9 user: stephan tags: trunk)
18:50
Add aggregate function support to sqlite3.oo1.DB.createFunction(). Change signature of the options object used by that function so that the callback property names match those of the corresponding C APIs. (check-in: a7db6e4b user: stephan tags: trunk)
16:38
JS: add build-time-generated version info to the sqlite3.version object. Remove some stray debug output from tester1.js. (check-in: b5f462c2 user: stephan tags: trunk)
15:38
Add a top-level license and build-time version info header to generated sqlite3*.js. Correct a broken link in ext/wasm/index.html. (check-in: 0f1a06e8 user: stephan tags: trunk)
2022-10-15
19:18
Exclude slow test recovercorrupt.test from veryquick.test. (check-in: ff9a7335 user: dan tags: recover-extension)
18:26
Add missing comments and fix other code issues. (check-in: 8ed4e4a8 user: dan tags: recover-extension)
15:39
Merge latest trunk changes. (check-in: 42255ead user: dan tags: recover-extension)
12:01
Enable the index-on-expression optimization even when the expression is used as an argument to an aggregate function. (check-in: 462b3c7f user: drh tags: index-expr-opt)
11:27
Only extract an expression from an index when the index is not a null row in an outer join. (check-in: 08b033c7 user: drh tags: index-expr-opt)
2022-10-14
19:56
Merge fixes from trunk. (check-in: 1cb65f36 user: drh tags: index-expr-opt)
19:30
Fix a problem with using the push-down optimization on compound SELECTs where component SELECTs use different collation sequences. dbsqlfuzz 11516f050100243e5a845f5a2b48a90ed2efaf2e. This problem appears to go all the way back to the beginning of the push-down optimization in check-in 6df18e949d367629 in SQLite 3.8.11. (check-in: ed14863d user: dan tags: trunk)
19:21
Add missing initializer from the extension loader. Fix for check-in [d6d449978245b4fa]. (check-in: 565d74c3 user: drh tags: trunk)
15:52
Generic minor cleanups and docs in the OPFS async proxy. (check-in: a4423ca2 user: stephan tags: trunk)
15:46
Handle recovering databases with reserved bytes at the end of each page. (check-in: 52d0235e user: dan tags: recover-extension)
15:10
Fix a problem in the LIKE and GLOB operators that may occur when the character immediately following a "%" or "*" wildcard is U+80. Reported by forum post 61bf7ccbdf. (check-in: 2da677c4 user: dan tags: trunk)
13:26
Remove a resolved TODO comment. (check-in: 32fd4ac3 user: stephan tags: trunk)
02:00
Cancel IndexExpr objects when they go out of scope. (check-in: 09635193 user: drh tags: index-expr-opt)
2022-10-13
21:08
This experimental branch attempts to use columns for an index-on-expression in place of the expression that is being indexed. This particular check-in mostly works, but there are still issues. (check-in: 2e8d4fd4 user: drh tags: index-expr-opt)
20:06
Add tests for detecting page size of databases. (check-in: 31f9e236 user: dan tags: recover-extension)
16:48
Move the rest of testing1.js into tester1.js and eliminate the dependency on jaccwabyt_test.c. Extend the list of default config-related #defines in sqlite3-wasm.c and reorganize them for maintainability. (check-in: 4e2a8aff user: stephan tags: trunk)
15:09
Optimize the IS NULL and IS NOT NULL operators so that they avoid loading large strings or blobs off of disk if all it needs to know is whether or not the string or blob is NULL. (check-in: cb943501 user: drh tags: trunk)
14:54
Improvements to the description of the OPFLAG_TYPEOFARG option to OP_Column. (Closed-Leaf check-in: 5e9c67ba user: drh tags: isnull-opt)
14:35
Adjust the implementation of sqlite3VdbeTypeofColumn() to make it easier to test (and slightly smaller). (check-in: 79fdd021 user: drh tags: isnull-opt)
14:01
Fix a typo in the documentation of the OP_Column opcode. Forum post a2b5bd6d43. (check-in: 043e76e6 user: drh tags: trunk)
12:47
Proposed optimization to the IS NULL and NOT NULL operators that avoids loading the entire content of larges strings and BLOBs. Response to forum post 3c08d4715dc05b00. (check-in: 45f17156 user: drh tags: isnull-opt)
08:03
Port the first 180-odd unit tests from testing1.* into the new tester1.*. Fix a stray-keystroke-induced typo which broke pstack.allocChunks(). (check-in: ef689e33 user: stephan tags: trunk)
2022-10-12
18:40
Updates to the fuzzer query invariant checker - tracking changes made over in dbsqlfuzz. (check-in: 4ca16a30 user: drh tags: trunk)
18:30
Changes to Makefile.msc to fix the build on Windows following the previous merge. (check-in: 368fa6b2 user: drh tags: trunk)
18:13
Merge fiddle-opfs branch into trunk. (check-in: 98f95494 user: stephan tags: trunk)
16:35
Merge trunk into fiddle-opfs as a preliminary step for a clean merge in the other direction. (Closed-Leaf check-in: 5e1848ce user: stephan tags: fiddle-opfs)
15:54
Add initial infrastructure for setting up function/regression tests for the JS/WASM APIs. (check-in: 7f5db982 user: stephan tags: fiddle-opfs)
15:40
Minor doc cleanups and corrections in sqlite3-wasm.c (check-in: 5144c122 user: stephan tags: fiddle-opfs)
14:39
Correct mismatched H1 tags in test code. Minor CSS tweaks. (check-in: 4d8eb90a user: stephan tags: fiddle-opfs)
12:49
Add the sqlite3_value_encoding() interface. (check-in: d6d44997 user: drh tags: trunk)
2022-10-11
13:57
Enhance the OP_IsType opcode so that it is slightly smaller and faster and so that it works correctly with invalid serial-type codes 10 and 11. (check-in: 846f863e user: drh tags: trunk)
12:02
Improved the ability of the CLI to handle very long input lines. Potentially a fix for the bug reported by forum post fa4bb2941a. (check-in: d0e107ee user: drh tags: trunk)
2022-10-10
23:54
Enhance the "PRAGMA integrity_check" statement so that it verifies datatype constraints on non-STRICT tables: (1) Columns with TEXT affinity should not contain numeric values, and (2) columns with NUMERIC affinity should not contain TEXT values that could be converted into numbers. (check-in: aa6e9086 user: drh tags: trunk)
21:21
Code clean-up for the integrity_check enhancement. (Closed-Leaf check-in: a1401731 user: drh tags: integrity_check_datatypes)
19:38
Fix corner-case bugs in the new integrity_check logic. All tests pass now. (check-in: dbab9d52 user: drh tags: integrity_check_datatypes)
18:25
An attempt to enhance PRAGMA integrity check so that it does data type checking on non-STRICT tables. Specifically: (1) Columns with TEXT affinity should not contain numeric values, and (2) columns with numeric affinity should not contain text values that can be converted to numeric. (check-in: 8b1e7f05 user: drh tags: integrity_check_datatypes)
12:10
Improved detection of database corrupting when moving pages on an autovacuumed database when creating a new btree. dbsqlfuzz 9a55397eae13cec64aebf1fd35489c3a90bdaac5 (check-in: 835e1912 user: drh tags: branch-3.39)
12:02
Improved detection of database corrupting when moving pages on an autovacuumed database when creating a new btree. dbsqlfuzz 9a55397eae13cec64aebf1fd35489c3a90bdaac5 (check-in: 327965bc user: drh tags: trunk)
2022-10-09
17:08
Remove some extraneous debug output. (check-in: 56ff4205 user: stephan tags: fiddle-opfs)
17:03
Remove a now-unnecessary --cachesize flag for the OPFS sqlite3_vfs speedtest1-worker.html invocation. (check-in: 08b516d6 user: stephan tags: fiddle-opfs)
15:12
Minor cleaups in the post-init async phase of sqlite3 module initialization. (check-in: 2e024a6b user: stephan tags: fiddle-opfs)
13:35
Remove ext/wasm/kvvfs.make which was inadvertently resurrected in [92b500da70a3]. (check-in: 2e7fa085 user: stephan tags: fiddle-opfs)
13:33
Cherrypick [ea370b9b05f7ed7eaa] and part of [92b500da] into kv-vfs branch. (Leaf check-in: 81263803 user: stephan tags: kv-vfs)
13:26
Refactor kvvfs JS bits to make use of [ea370b9b05f7ed7eaa]. At main-thread startup, if kvvfs is available, replace the kvvfs I/O methods with JS impls. Checkin part 2 of 2, to account for cherrypicking [ea370b9b05f7ed7eaa] into the kv-vfs branch. (check-in: a9047e02 user: stephan tags: fiddle-opfs)
13:19
Refactor os_kv.c so that the kvvfs read/write/delete methods can be swapped out at runtime by JS implementations. This eliminates the kvvfs dependency on Emscripten. Checkin part 1 of 2, to account for cherrypicking. (check-in: ea370b9b user: stephan tags: fiddle-opfs)
11:42
Add -DSQLITE_OS_KV_OPTIONAL to speedtest1 flags for kvvfs testing purposes. (check-in: 92b500da user: stephan tags: fiddle-opfs)
2022-10-08
17:27
When casting an odd-length BLOB into a TEXT with encoding UTF16, omit the last byte. dbsqlfuzz c5df68b5bbdf6c9f3c1851e41e88f49ac05c9969 (check-in: 1e2796b3 user: drh tags: trunk)
2022-10-07
19:11
Fix a problem causing the seek-scan optimization to skip over valid rows that could occur when it is used with expressions of the form (a IN (?,?..) AND b >= ?). dbsqlfuzz ab1db6dc0efb04cba1cd3431ee6da4894fdc4520. (check-in: b6be4ce6 user: drh tags: branch-3.39)
18:57
Fix a problem causing the seek-scan optimization to skip over valid rows that could occur when it is used with expressions of the form (a IN (?,?..) AND b >= ?). dbsqlfuzz ab1db6dc0efb04cba1cd3431ee6da4894fdc4520. (check-in: 63d9efe2 user: dan tags: trunk)
18:06
Fix a problem that occurred when using a bloom filter to optimize an (ipk = ?) lookup in the case where the RHS of the expression is a TEXT value. First reported by forum post f61a8b7053. (check-in: dc01d9d8 user: drh tags: branch-3.39)
17:58
Increase the version number to 3.39.5. (check-in: 8eb0048e user: drh tags: branch-3.39)
15:55
Improved tracing output for showing all registers used by the OP_SeekGE opcode. This applies to debugging builds only. (check-in: 0aa6dee7 user: drh tags: trunk)
2022-10-06
21:00
Ensure the page-size, auto-vacuum and other settings are copied into the recovered database. (check-in: 078520f2 user: dan tags: recover-extension)
17:20
Add code to determine the database page-size by searching for well-formed pages. (check-in: 0dbd0cce user: dan tags: recover-extension)
14:10
Fix a problem that occurred when using a bloom filter to optimize an (ipk = ?) lookup in the case where the RHS of the expression is a TEXT value. First reported by forum post f61a8b7053. (check-in: 8e14c351 user: dan tags: trunk)
2022-10-05
16:58
Improve handling of corruption in the sqlite_schema table b-tree structure. (check-in: 2be0dba1 user: dan tags: recover-extension)
2022-10-04
19:47
Merge latest trunk changes. (check-in: b0feecaa user: dan tags: recover-extension)
19:43
Better handling for databases with corrupt headers. (check-in: 17f68d80 user: dan tags: recover-extension)
17:06
Replace time-based auto-unlock of opfs sync handles with lock acquisition/release via sqlite3_io_methods::xLock/xUnlock(). (check-in: 2625b7cf user: stephan tags: fiddle-opfs)
14:50
Attempt to clarify the operation of the xLock and xUnlock VFS I/O methods. Assert() statements added to prove that they behave as the documentation says. (check-in: 3efa8112 user: drh tags: trunk)
11:14
Tweaks to the opfs async wait/relinquish times. (check-in: 35f33c23 user: stephan tags: fiddle-opfs)
10:35
Change the name of the autoconf-generated configuration file from "config.h" to "sqlite_cfg.h" to work around a bug in a dependency checker, reported in a tweet from Joey Castillo. (check-in: 897e187c user: drh tags: trunk)
09:12
Update ext/wasm/api/README.md to account for recent changes. (check-in: 9d488081 user: stephan tags: fiddle-opfs)
09:12
OPFS async proxy: add a wait-and-retry policy to the get-sync-handle step to help account for cross-tab locking. (check-in: 45c48c63 user: stephan tags: fiddle-opfs)
08:58
Update the 'start in speedtest kvvfs' link in speedtest1-worker to account for recent changes. (check-in: f4d5ba41 user: stephan tags: fiddle-opfs)
01:21
Minor pstack doc update. (check-in: 6b4fb7c4 user: stephan tags: fiddle-opfs)
01:11
Minor cleanups and additions in sqlite3.capi.wasm.pstack. (check-in: 97bd670d user: stephan tags: fiddle-opfs)
00:54
Add a test/debug mechanism to shut down the OPFS async listener so that it can be inspected (it normally can't be because its tight event-listening loop ties up the thread) and then restarted. (check-in: 7d0bcff4 user: stephan tags: fiddle-opfs)
2022-10-03
23:13
Set default page cache size to 16mb in wasm builds. Fix an off-by-one counter in sqlite3_wasm_enum_json(). Minor coding style conformance tweaks. (check-in: 72a9e589 user: stephan tags: fiddle-opfs)
22:51
Add a --cachesize flag to the speedtest1-worker-opfs link in index.html because opfs is much faster with that. (check-in: 5b8f8e33 user: stephan tags: fiddle-opfs)
22:38
Minor JS doc updates and typo fixes. (check-in: 3cfcc14d user: stephan tags: fiddle-opfs)
18:23
In os_kv.c, every xWrite method call on a database should record the page size. (check-in: e9411c74 user: drh tags: kv-vfs)
18:07
Add configurable cache_size to batch-runner and speedtest1-worker. Add SQL tracing to demo-123.js just for demonstration's sake. (check-in: 2ab06513 user: stephan tags: fiddle-opfs)
18:05
Omit WAL mode from the wasm build. (check-in: 88efe2a6 user: stephan tags: fiddle-opfs)
15:22
Adjust the --help output for speedtest1 to clarify that the argument to the --cachesize option is in pages, not bytes. (check-in: d7c2be6b user: drh tags: trunk)
14:01
Merge the speedtest1 enhancements from trunk (and fiddle-opfs) into the kv-vfs branch. (check-in: 3d350aa0 user: drh tags: kv-vfs)
13:56
Copy all of the fiddle-opfs changes to speedtest1 into trunk. (check-in: f3d31c99 user: drh tags: trunk)
13:46
Resolve/remove a TODO. (check-in: 2ea35fea user: stephan tags: fiddle-opfs)
13:45
Add the --vfs option to speedtest1. (check-in: aeb88402 user: drh tags: trunk)
13:24
Merge the latest trunk enhancements into the kv-vfs branch. (check-in: f4aefe63 user: drh tags: kv-vfs)
13:03
Export sqlite3_trace_v2() to wasm and use it to ensure that the new per-VFS post-open SQL support in the DB ctor works. Default opfs vfs to journal_mode=truncate, as it's faster in that mode. Add 't' DB open-mode flag to enable SQL tracing to console.log(). (check-in: 508f7f6d user: stephan tags: fiddle-opfs)
11:42
Reimplement fiddle_reset_db() so that it works with all VFSes. (check-in: 18462052 user: stephan tags: fiddle-opfs)
11:33
Experimentally relinquish the OPFS VFS sync access handle when the db is idle and reacquire it on demand, the goal being to help alleviate cross-tab locking issues. (check-in: 2703ac98 user: stephan tags: fiddle-opfs)
11:23
Add journal=MODE to the list of supported URL flags for speedtest1-worker.html. (check-in: 5c43e8d2 user: stephan tags: fiddle-opfs)
09:21
OPFS VFS now lazily opens its sync access handle, as a step towards experimenting with relinquishing it during idle times to help avoid cross-tab and page-reload locking issues. (check-in: a984e1ba user: stephan tags: fiddle-opfs)
08:30
Partial revert of [a82e6faaa642] to remove the 'I' alias for 'j' wasm function signature letter. In hindsight, that change seems premature. (check-in: dcd46af9 user: stephan tags: fiddle-opfs)
08:21
Minor JS API tweaks prompted by documenting them. (check-in: a82e6faa user: stephan tags: fiddle-opfs)
2022-10-02
22:50
More cleanups in the UDF argument and result handling, in particular int64. Consolidate some duplicate int64/bigint range checking code. Expose the UDF low-level utilities (arg/result conversion) to client code. Add the sqlite3_context pointer to the JS-side UDF wrappers for API consistency. (check-in: 10ab77af user: stephan tags: fiddle-opfs)
20:13
Minor doc typo fix in sqlite.h.in. (check-in: 372802aa user: stephan tags: trunk)
20:08
JS: clean up create_function() wrapper and add support for create_window_function(). Eliminate an extraneous blob copy when a UDF returns a blob. Make use of newfound JS-fu to clean up how sqlite3ApiBootstrap() config is initialized. (check-in: d3bad934 user: stephan tags: fiddle-opfs)
18:47
js: implement a hand-written wrapper for sqlite3_create_function_v2() which converts, if necessary, JS-function-type args to WASM function wrappers. Replace DB.createFunction() impl with the new one. (check-in: 435ab333 user: stephan tags: fiddle-opfs)
03:14
Doc typo fixes. (check-in: e528675d user: stephan tags: fiddle-opfs)
03:11
More fleshing out of sqlite3.capi.wasm.pstack. (check-in: eb572667 user: stephan tags: fiddle-opfs)
01:48
Document the roles of the new (this past week) JS files added to the build process. (check-in: 8b3bc731 user: stephan tags: fiddle-opfs)
00:09
General internal cleanups in the oo1 API. (check-in: f9db664f user: stephan tags: fiddle-opfs)
2022-10-01
20:27
Performance optimization in sqlite3_prepare() (discovered while working on the stmt-cache branch). (check-in: cd494240 user: drh tags: trunk)
19:21
Correct fiddle db export breakage caused by a post-testing API change made in [1fa019c88dea]. (check-in: e73cc44e user: stephan tags: fiddle-opfs)
18:55
Pedantic constness tweak. (check-in: c8a173cf user: stephan tags: fiddle-opfs)
18:47
wasm: correct a memleak caused by a shadowed var in the previous checkin. Add a stack-like allocator, sqlite3.capi.wasm.pstack, as a faster way of managing short-lived pointers (like the one which got shadowed). (check-in: 1fa019c8 user: stephan tags: fiddle-opfs)
16:01
Fiddle: fix makefile dependency issue and duplicate inclusion of post-js.js. Reimplement db export using sqlite3_serialize(). (check-in: 29db7de7 user: stephan tags: fiddle-opfs)
13:45
Merge trunk into fiddle-opfs branch. (check-in: 64ebcbe4 user: stephan tags: fiddle-opfs)
13:38
Tweak sqlite3-worker1.js to be able to load either sqlite3.js or sqlite3-wasmfs.js, noting that the latter still does not load in a Worker because of an Emscripten loader bug. (check-in: 000ef705 user: stephan tags: fiddle-opfs)
13:28
Merge the Parse.prepFlags change from trunk. (Leaf check-in: c8d77f39 user: drh tags: stmt-cache)
13:17
Replace the Parse.disableVtab field with Parse.prepFlags for increased generality, a small size reduction, and a small performance increase. (check-in: b7da0bcd user: drh tags: trunk)
12:04
Note two wasm-related potential TODOs. (check-in: 5636e828 user: stephan tags: fiddle-opfs)
12:00
Merge the latest trunk enhancements into the stmt-cache branch. (check-in: 7812aea6 user: drh tags: stmt-cache)
2022-09-30
23:49
Remove a couple of weird quirks of the Worker1 and Promiser APIs. The Worker1 (now undocumented) unlink capability needs to be reevaluated to work equivalently for all storage backends. (check-in: 9f2b331a user: stephan tags: fiddle-opfs)
23:02
Tweaks to the Worker1 and Promiser APIs prompted by documenting them. (check-in: c68b9aa1 user: stephan tags: fiddle-opfs)
22:40
Remove one of the NEVER() macros added by [5166acf3f0040459] because it is reachable after all. (check-in: bd8ae5fe user: drh tags: trunk)
20:59
New test cases in fuzzdata8.db (check-in: aa367a3c user: drh tags: trunk)
20:53
Fix a bug in the demoDelete fix from [d76a301e22e05722]. (check-in: 7e761a02 user: drh tags: trunk)
20:48
Add NEVER() to two error-detection tests that were made unreachable by the previous check-in. (check-in: 5166acf3 user: drh tags: trunk)
20:35
Add JS wrapper for sqlite3_exec() which knows how to handle a JS callback. Add some console.error() reporting of module-load failures, as they otherwise often get silently swallowed up by the loader's mechanisms. Add 'flexible-string' JS-to-WASM argument converter which performs more X-to-string conversions than the 'string' arg converter does. (check-in: 96818aa8 user: stephan tags: fiddle-opfs)
20:15
Better handle a case of database corruption where a b-tree page is one of its own ancestor pages. (check-in: a24e4680 user: dan tags: trunk)
16:49
Add sqlite3.version object. Add more state to the Worker #1 config-get response, including sqlite3.version. (check-in: 711f458d user: stephan tags: fiddle-opfs)
15:46
Add oo1.JsStorageDb.clearStorage/storageSize() methods, copies of capi.sqlite3_web_kvvfs_clear/size(). (check-in: 1e09efe7 user: stephan tags: fiddle-opfs)
15:24
batch-runner.js: force WebSQL batches to not abort for a failed statement (necessary for apples-to-apples-ish benchmark comparisons). (check-in: 60f0c5cb user: stephan tags: fiddle-opfs)
14:35
Improvements to the "demoDelete" method in the demovfs, suggested by forum post cad18961c2. (check-in: d76a301e user: drh tags: trunk)
14:14
Merge recent trunk enhancements into the reuse-schema branch. (check-in: b119a5e8 user: drh tags: reuse-schema)
14:04
Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 68a61513 user: drh tags: begin-concurrent-pnu-wal2)
13:54
Merge recent trunk enhancements into the wal2 branch. (check-in: c22c7c87 user: drh tags: wal2)
13:42
Merge the latest trunk changes into the begin-concurrent-report branch (check-in: 4d6141f3 user: drh tags: begin-concurrent-report)
13:29
Merge all recent trunk enhancements into the begin-concurrent branch. (check-in: ba2539f6 user: drh tags: begin-concurrent)
12:27
Merge version 3.39.4 changes into the reuse-schema-3.39 branch. (Leaf check-in: 81025928 user: drh tags: reuse-schema-3.39)
12:10
Expose sqlite3_msize() to wasm. (check-in: aa6ad34f user: stephan tags: fiddle-opfs)
11:01
Add oo1.JsStorageDb() as a convenience wrapper for oo1.DB(...,'kvvfs'). Minor doc cleanups. (check-in: 8a799870 user: stephan tags: fiddle-opfs)
10:55
wasm: expose sqlite3_de/serialize(), sqlite3_malloc/free() and friends, noting that the former explicitly lies on use of the latter for memory management so is not generically safe for use in wasm. (check-in: fbc0edb5 user: stephan tags: fiddle-opfs)
2022-09-29
22:08
Add JS infrastructure to ostensibly allow us to customize the wasm imports, which will hypothetically allow us to eliminate the dependency on EM_JS(), but the corresponding Emscripten glue-level feature currently breaks fatally with WASMFS builds so it's disabled. (check-in: 88d9253b user: stephan tags: fiddle-opfs)
17:35
Ensure that the wasm builds always, even when passing -Ox flags from the CLI, use -g3 to avoid problems caused by symbol minification with optimization levels -O2 and higher. (check-in: 27d24d5d user: stephan tags: fiddle-opfs)
16:54
Finish eliminating explicit Emscripten module dependencies in test code and fiddle. The only remnant in public code is the Emscripten-generated module load/init interface. (check-in: 7be78dd4 user: stephan tags: fiddle-opfs)
15:55
Version 3.39.4 (check-in: a29f9949 user: drh tags: release, branch-3.39, version-3.39.4)
13:17
Rework the Emscripten-emitted module loader/init function such that it passes on the sqlite3 module, instead of the Emscripten module, to the first then() of sqlite3InitModule()'s returned Promise. This eliminates any need to mention the Emscripten module object in client-side code unless they want to configure it in advance for loading-status reports. (check-in: 0dbaa0e2 user: stephan tags: fiddle-opfs)
2022-09-28
19:19
Fix misuse of the sqlite3_set_auxdata() interface in the ICU extension. (check-in: 6607dd01 user: drh tags: branch-3.39)
19:14
Fix misuse of the sqlite3_set_auxdata() interface in the ICU extension. (check-in: f25cf634 user: drh tags: trunk)
18:10
Wasm: expose sqlite3_exec() and use it to simplify the db-reset logic in batch-runner.js a bit. (check-in: 2e2821f7 user: stephan tags: fiddle-opfs)
17:52
More work on batch-runner.html/js to facilitate speed comparisons between various VFSes and WebSQL. (check-in: 3bd1bc24 user: stephan tags: fiddle-opfs)
17:10
Prototype implementation of "PRAGMA reset_database". This pragma differs from SQLITE_DBCONFIG_RESET_DATABASE in that the pragma only works if the database is reasonably well-formed, whereas the dbconfig works regardless. (Leaf check-in: cf0999d4 user: drh tags: reset-database)
13:38
Remove a NEVER macro in defragmentPage() that dbsqlfuzz discovered can be true. crash-32d9312f145cdce41613573f6431d9a3e439e3d7 (check-in: a4342fc0 user: drh tags: branch-3.39)
13:01
Correct duplicate copies of sqlite3-api.js being embedded in the wasmfs-based builds. (check-in: bbfcfba2 user: stephan tags: fiddle-opfs)
07:53
Work around broken -Os wasm builds by adding the -g3 flag. Unrelated documentation tweaks. (check-in: f5d6bf86 user: stephan tags: fiddle-opfs)
2022-09-27
17:03
Minor doc correction. (check-in: 093f6e4b user: stephan tags: fiddle-opfs)
17:00
Fix a potential division by zero error in this version of RBU that might occur if an external client checkpoints a wal file created by a suspended RBU process. (Leaf check-in: 73edd93a user: dan tags: branch-3.14)
16:35
Provide the SQLITE_MAX_ALLOCATION_SIZE compile-time option for limiting the maximum memory allocation size. (check-in: 584de6a9 user: drh tags: trunk)
14:31
Comment the -Os wasm builds as being broken (mysteriously missing JS bits). (check-in: f61475ef user: stephan tags: fiddle-opfs)
13:40
WASM API renaming. Reworked JS API bootstrap's async post-init into a generic mechanism, no longer OPFS-specific. (check-in: c42a8cb0 user: stephan tags: fiddle-opfs)
09:17
wasm/js: rename /persistent to /opfs to account for potential future persistent storage options. Minor flag-handling cleanups in the speedtest1 pages. Minor API tweaks in oo1. (check-in: 4dc972a3 user: stephan tags: fiddle-opfs)
02:04
Enhance defensive mode so that it disallows CREATE TRIGGER statements if the statements within the trigger attempt to write on a shadow table. Also make the legacy FTS3 code more robust against integer overflow during memory allocation. (check-in: c41f25e6 user: drh tags: branch-3.39)
01:53
Make the legacy FTS3 code more robust against integer overflow during memory allocation. (check-in: 5517bc50 user: drh tags: trunk)
00:56
Enhance defensive mode so that it disallows CREATE TRIGGER statements if the statements within the trigger attempt to write on a shadow table. (check-in: 3283bbd1 user: drh tags: trunk)
2022-09-26
20:51
Modify implementation of recovery to break recovery of the lost_and_found table into multiple steps. (check-in: adedfd04 user: dan tags: recover-extension)
13:55
Fiddle: replace db export routine with a C-side one which works for both Emscripten FS-hosted and OPFS-hosted db files. Minor code-adjacent cleanups. (check-in: 3579a8d6 user: stephan tags: fiddle-opfs)
11:38
Get fiddle db export working for OPFS VFS. Add root dir handle to the main OPFS VFS worker to enable creation of certain utility functions without delegating to the async worker. Add sqlite3.capi.sqlite3_wasm_rc_str() to map integer result codes back to their SQLITE_xxx counterparts. Minor doc touchups. (check-in: 9b2244e1 user: stephan tags: fiddle-opfs)
11:34
wasm: change StructBinder signature for sqlite3_file::pMethods from 'P' to 'p' to eliminate an unnecessary and inconsistent level of magic. (check-in: 85f2e877 user: stephan tags: fiddle-opfs)
2022-09-24
19:54
Add the SQLITE_RECOVER_SLOWINDEXES option, for specifying that indexes should be created and populated along with tables, instead of separately at the end of the recovery operation. (check-in: ad9dba9d user: dan tags: recover-extension)
19:17
Add sqlite3_recover_step() to header file sqlite3recover.h. Update the API docs in this file. (check-in: 47f41615 user: dan tags: recover-extension)
18:05
Update things to use sqlite3_recover_step() internally. (check-in: f4b15aad user: dan tags: recover-extension)
11:32
Fiddle: move, rather than copy, data buffers between the threads. Fix the case of an uploaded db failing to install because its filename is the same as the opened db. (check-in: bcec4f96 user: stephan tags: fiddle-opfs)
10:15
Resolve "already configured" warnings from shell's main() when starting it up in fiddle mode. (check-in: 114ef355 user: stephan tags: fiddle-opfs)
10:12
Reworked out the OPFS async proxy metrics are fetched so that they play more nicely with the tight event-polling loop. (check-in: ef503ced user: stephan tags: fiddle-opfs)
07:36
Refactoring towards getting fiddle to support OPFS as a first-class citizen. Certain operations, e.g. import, export, and unlink, are not OPFS-aware. (check-in: 1b923ed6 user: stephan tags: fiddle-opfs)
2022-09-23
21:01
Internal changes to the recover extension towards a step() style interface. (check-in: 73926d5c user: dan tags: recover-extension)
11:40
Fix various compiler warnings in new code on this branch. (check-in: ae49e9ef user: dan tags: recover-extension)
11:30
Merge latest trunk changes into this branch. (check-in: e87fa70a user: dan tags: recover-extension)
2022-09-21
20:24
Reformulate some JS to work around a buggy/broken code transformation in one of the Emscripten-driven code optimizers. (check-in: e1249369 user: stephan tags: fiddle-opfs)
19:51
Put pieces in place for fiddle to support opfs, but more cleanup is required in the sqlite3.js/fiddle connection. bigIntEnabled now defaults to whether the Emscripten's module has bigint enabled. Add wasm-sensible defaults for several SQLITE_ENABLE/OMIT flags in sqlite3-wasm.c. (check-in: 7c7fb753 user: stephan tags: fiddle-opfs)
18:21
Reduced and improved comments on the constraintCompatibleWithOuterJoin() function. (check-in: 38aaf26e user: drh tags: trunk)
16:21
shell.c.in: when building in fiddle mode, define _POSIX_SOURCE (ifndef) so that emcc's string.h reveals strdup(). (check-in: fb85b269 user: stephan tags: fiddle-opfs)
14:02
Correct mistyped --shrink-memory flag in speedtest1-worker. Minor OPFS proxy cleanups. (check-in: 86e2b55e user: stephan tags: fiddle-opfs)
12:27
Doc cleanups and additions. Add a way for the OPFS async runner to propagate exception text to the calling thread. (check-in: 5c5e8065 user: stephan tags: fiddle-opfs)
12:25
Added some structure to the wasm demo link list. (check-in: 777077c4 user: stephan tags: fiddle-opfs)
09:54
The RIGHT JOIN logic added to version 3.39.0 added a new restriction on the query flattener which resulted in a performance regression for some queries, as documented by forum post 96b9e5709cf47cda. This change removes that restriction (thus restoring performance) and fixes the problem that RIGHT JOIN was having in a different way. (check-in: 501609ed user: drh tags: trunk)
08:41
Add a link to fiddle.html in the wasm test app index.html. (check-in: 96c734c0 user: stephan tags: fiddle-opfs)
08:39
Move fiddle build rules into the wasm-centric build files. Add rule to push wasm bits to the wasm test server. (check-in: 113f8204 user: stephan tags: fiddle-opfs)
00:16
Break out the decision of whether or not a constraint term is usable by an outer join into a subroutine: constraintCompatibleWithOuterJoin(). (Closed-Leaf check-in: c7fbc9b0 user: drh tags: flattener-omit-restriction-29)
2022-09-20
22:19
Do not allow EP_InnerON terms to be used on a outer join. (check-in: f47aa745 user: drh tags: flattener-omit-restriction-29)
21:07
Add new test cases that (current) get an incorrect answer. (check-in: fe5c3773 user: drh tags: flattener-omit-restriction-29)
19:45
New test cases for query flattening when there are ON clauses and outer joins. (check-in: db55387b user: drh tags: flattener-omit-restriction-29)
19:22
Modify the OP_IfNotOpen opcode so that the jump is taken if the cursor is open but was previously set to a NULL row using OP_NullRow. (check-in: 1292d68c user: drh tags: flattener-omit-restriction-29)
18:18
Remove code that has been previously commented out. (check-in: 852b385a user: drh tags: flattener-omit-restriction-29)
17:43
Merge the fuzzcheck fix from trunk into the flattener improvement branch. (check-in: 930a8c15 user: drh tags: flattener-omit-restriction-29)
17:21
Update the fuzz invariant checker to conform to the latest changes in dbsqlfuzz. (check-in: 8d8c1243 user: drh tags: trunk)
16:57
Is the query flattener restriction 29 (do not allow both EP_InnerON and EP_OuterON constraints on the same FROM clause term) really necessary? This branch explores what happens if we omit that restriction. This is an effort to address the performance regression reported by forum post 96b9e5709cf47cda that is caused by flattener restriction 29. (check-in: 19270577 user: drh tags: flattener-omit-restriction-29)
16:20
Correct a too-strict is-opfs-available check. (check-in: 1b5f1b4a user: stephan tags: fiddle-opfs)
16:10
Merge kv-vfs-magic-names branch into fiddle-opfs branch and make some kvvfs-relevant tweaks. (check-in: e3d36dcd user: stephan tags: fiddle-opfs)
14:52
Export the sqlite3_uri_...() family of functions to wasm. (check-in: 72bebc84 user: stephan tags: fiddle-opfs)
14:39
Merge opfs-proxy-atomics branch into the fiddle-opfs branch. (check-in: 25a36920 user: stephan tags: fiddle-opfs)
14:36
When compiled with SQLITE_OS_KV_OPTIONAL, the magic names ":localStorage:" and ":sessionStorage:" are recognized and converted to use the kv-vfs. (Leaf check-in: c5db9262 user: drh tags: kv-vfs-magic-names)
14:21
Remove an obsolete file. (Closed-Leaf check-in: 1e438554 user: stephan tags: opfs-proxy-atomics)
13:25
Speed up de/serialization of func args and return values in the OPFS VFS proxy. (check-in: 5bf235bb user: stephan tags: opfs-proxy-atomics)
10:47
OPFS proxy: remove one sanity-checking-only level of proxy function to shave off a few microseconds. (check-in: b534831f user: stephan tags: opfs-proxy-atomics)
10:11
Remove extraneous result-code SAB slots. Doc additions. (check-in: 88de2071 user: stephan tags: opfs-proxy-atomics)
08:27
An alternative messaging strategy for the OPFS VFS proxy which uses only SharedArrayBuffer and Atomics, instead of worker messages, for communication (only the initial one-time handshake during initialization uses worker messages). It runs speedtest1 approx. 15-20% faster but still 20-ish% slower than WASMFS Edit: further tests showed it to be very close to the same speed as the Worker-message variant, inconsistently faster or slower within a small margin of error. The former impl is easier to understand, though. (check-in: a83ee308 user: stephan tags: opfs-proxy-atomics)
03:31
OPFS VFS: further internal refactoring towards experimenting with a new comms model. (check-in: 5ca412ce user: stephan tags: fiddle-opfs)
01:28
OPFS VFS: moved i/o buffer from per-file to the VFS, and related refactoring, in prep for experimentation with a new inter-worker comms model. (check-in: d4d63e45 user: stephan tags: fiddle-opfs)
2022-09-19
19:25
Clarify comments that describe query flattener restrictions associated with outer joins. No code changes. (check-in: 2647d73b user: drh tags: trunk)
18:22
Further metrics and buffer-copy optimizations in the OPFS proxy, but with little effect. (check-in: d1f1fe6f user: stephan tags: fiddle-opfs)
17:41
Fix a minor comment typo. No changes to code or documentation. (check-in: 8032db4a user: drh tags: trunk)
17:09
Cut the speedtest1 runtime of the OPFS VFS proxy by approximately 3/4ths via xRead/xWrite buffer-copying optimizations. Still slower than the WASMFS impl by approx. 1/5th. (check-in: fb7f2873 user: stephan tags: fiddle-opfs)
14:56
Remove an obsolete file. Update wasmfs build for today's changes. Fix the case that OPFS.xTruncate() is passed a BigInt instead of a Number. (check-in: 97605392 user: stephan tags: fiddle-opfs)
13:44
Add sqlite3_web_vfs_list() to JS API. Corrected OPFS VFS's registering itself as the default VFS. speedtest1-worker now uses the xDelete() of both the default VFS and OPFS, to avoid that it starts up with a persistent OPFS test db (the native app calls unlink(), but that unlink call operates on a different virtual filesystem than the OPFS VFS). (check-in: 2ec7e091 user: stephan tags: fiddle-opfs)
13:16
Merge kv-vfs branch into fiddle-opfs. Adjust various JS APIs and apps to deal with the new method of handling kvvfs. Adjust speedtest1 JS build to include sqlite3-api.js so that it can use kvvfs and opfs VFSes. Permit passing of the vfs as a URL parameter to certain demo/test apps. Milestone: speedtest-worker.html?vfs=opfs runs with the standalone OPFS impl. (check-in: ec09f32f user: stephan tags: fiddle-opfs)
11:47
speedtest1: add --vfs NAME flag and eliminate code duplication in argc size verification for all flags which take a value. (check-in: 281d0986 user: stephan tags: fiddle-opfs)
10:13
Minor doc improvements in demo-123.js. (check-in: 9370ce94 user: stephan tags: fiddle-opfs)
09:58
Generic cleanups in the OPFS VFS proxies. (check-in: 7d5f6adc user: stephan tags: fiddle-opfs)
09:25
Correct OPFS VFS xRead() to copy the result buffer if the result code is SQLITE_IOERR_SHORT_READ. (check-in: 56668f99 user: stephan tags: fiddle-opfs)
05:19
Replace OPFS VFS xSleep() impl with a more efficient one (no Worker round-trip needed). (check-in: b9773f16 user: stephan tags: fiddle-opfs)
03:57
Rename demo-oo1.* to demo-123.* and add demo-123-worker.html, which runs the same demo via a Worker. Doc typo fixes. (check-in: 2e4a005b user: stephan tags: fiddle-opfs)
00:40
Disable build of wasmfs-using components on aarch64 (ARM), as wasmfs won't build there. (check-in: 9a9eeebc user: stephan tags: fiddle-opfs)
2022-09-18
17:59
Remove a NEVER macro in defragmentPage() that dbsqlfuzz discovered can be true. crash-32d9312f145cdce41613573f6431d9a3e439e3d7 (check-in: 90403759 user: drh tags: trunk)
17:32
Numerous cleanups in the JS bits. Removed some now-defunct wasm test files. Expose sqlite3.opfs object containing various OPFS-specific utilities. (check-in: 26e625d0 user: stephan tags: fiddle-opfs)
03:05
Move the OPFS VFS bits back into api/sqlite3-api-opfs.js. Refactor the OPFS VFS init process to use a Promise-returning function which the client must call, as that eliminates any uncertainty about when the VFS (necessarily activated asynchronously) actually becomes available to the client. Rename x-sync-async.* to test-opfs-vfs.* Milestone: first successful test of OPFS without WASMFS. (check-in: b2abf60d user: stephan tags: fiddle-opfs)
02:35
Move the OPFS VFS bits back into api/sqlite3-api-opfs.js. Refactor the OPFS VFS init process to use a Promise-returning function which the client must call, as that eliminates any uncertainty about when the VFS (necessarily activated asynchronously) actually becomes available to the client. (check-in: 1c660970 user: stephan tags: fiddle-opfs)
00:16
Plug OPFS methods in to their sqlite3_vfs/io_methods counterparts. Add URL args to control debug output and running of sanity-checks in the OPFS init code. (check-in: a0e93ed2 user: stephan tags: fiddle-opfs)
2022-09-17
23:47
Correct OPFS xRead() and xWrite() impls and add a very basic sanity test for them. (check-in: cd06cc67 user: stephan tags: fiddle-opfs)
23:29
Implement OPFS xAccess(), albeit with more limited semantics than the VFS API calls for. Add a way for OPFS xDelete() to optionally recursively remove empty dirs left over after deleting a file. (check-in: c342b5d7 user: stephan tags: fiddle-opfs)
21:13
Generic cleanups in the OPFS sync/async proxy. (check-in: f36bddbe user: stephan tags: fiddle-opfs)
20:50
Add the remaining vfs/io_methods wrappers to the OPFS sync/async proxy, but most are not yet tested. (check-in: 44db9132 user: stephan tags: fiddle-opfs)
18:31
Fix an uninitialized variable in the decoder kv-vfs. (check-in: 354726aa user: drh tags: kv-vfs)
18:29
Include the kv-vfs as an optional VFS on unix builds if the SQLITE_OS_KV_OPTIONAL compile-time option is present. (check-in: 852812d1 user: drh tags: kv-vfs)
17:26
Merge the latest trunk enhancements into the kv-vfs branch. (check-in: 37c7ca25 user: drh tags: kv-vfs)
15:08
Add initial bits of an experimental async-impl-via-synchronous-interface proxy intended to marshal OPFS via sqlite3_vfs API. (check-in: 38da059b user: stephan tags: fiddle-opfs)
2022-09-16
20:16
Merge kv-vfs branch into fiddle-opfs branch. Adjust speedtest1 --size flags to account for new size limit. (check-in: afb79050 user: stephan tags: fiddle-opfs)
15:19
Corrections to the xRead method for databases in the os_kv.c VFS so that it correctly reads the header, and thus avoids unnecessary cache flushes. This changes also includes an optimization to the header read logic. (check-in: ef54961c user: drh tags: kv-vfs)
12:49
When calculating kvvfs sessionStorage/localStorage size, multiply it by 2 to account for JS using 16-bit characters. (check-in: 52d1b185 user: stephan tags: fiddle-opfs)
11:45
Merge kv-vfs branch into fiddle-opfs branch for [21915af560b1|synchronous=off fix]. Remove some duplicate debug output in OPFS test code. (check-in: 13899bb9 user: stephan tags: fiddle-opfs)
11:37
Fix os_kv.c so that it uses SQLITE_FCNTL_SYNC and hence works even with PRAGMA synchronous=OFF. (check-in: 21915af5 user: drh tags: kv-vfs)
02:30
Add batch-runner-kvvfs.html, a kvvfs-specific build of batch-runner.html. Reduce the speedtest1 --size X value for the batch list generation to 5 so that the kvvfs batch runner can handle it. (check-in: d8df2592 user: stephan tags: fiddle-opfs)
02:28
Remove --nosync flag from speedtest1-kvvfs.html, as that seems to be the trigger for the 'no such table: z1' error. That app now warns if that flag is passed to it via URL args. (check-in: ad0677e8 user: stephan tags: fiddle-opfs)
01:08
Pull the src/os_kv.c part of [13839759f8f4] into the kv-vfs branch. (check-in: e3344499 user: stephan tags: kv-vfs)
01:05
Add return value checks to kvstorageWrite(), necessary for recognizing storage-full errors in the JS binding. speedtest1-kvvfs.html runs successfully on localStorage with --size 1 to 6 and starts failing with storage shortage at --size 7. (check-in: 13839759 user: stephan tags: fiddle-opfs)
2022-09-15
06:42
More work on the synchronous OPFS experimentation. Numerous wasm/js build tweaks. Add speeedtest-wasmfs.html, the wasmfs/opfs counterpart of speedtest1.html. (check-in: 00ee49a3 user: stephan tags: fiddle-opfs)
03:54
Fix windows builds of recover extension. (check-in: abcbb6ab user: dan tags: recover-extension)
03:16
Remove some stale comments. Get scratchpad-opfs-worker2.js running again in prep for reuse in experimenting with the OPFS all-synchronous API. (check-in: 4cbbd370 user: stephan tags: fiddle-opfs)
03:09
Split wasmfs-enabled build of sqlite3.js/wasm into sqlite3-wasmfs.js/wasm, as enabling wasmfs breaks all tests/demos which run from a Worker thread. (check-in: 08476f3c user: stephan tags: fiddle-opfs)
02:27
Clean up some JS documentation. (check-in: 925fdbfc user: stephan tags: fiddle-opfs)
2022-09-14
20:45
Include recovery extension in configure/make builds of testfixture. (check-in: d2f46521 user: dan tags: recover-extension)
18:57
Extra tests and fixes. (check-in: deed5336 user: dan tags: recover-extension)
16:37
Fix recovery of utf-16 databases. (check-in: 5b05be08 user: dan tags: recover-extension)
2022-09-13
20:40
Add OOM tests for the recovery extension. (check-in: 9b6b4c71 user: dan tags: recover-extension)
19:47
Fix a broken error handling case in the recovery extension. (check-in: 60089547 user: dan tags: recover-extension)
19:27
Add/apply various kvvfs-specific utility APIs to the JS layer to assist in testing and analysis. Correct a backwards default arg check for sqlite3ApiBootstrap(). Add exports for sqlite3_db_handle(), sqlite3_file_control(), and the SQLITE_FCNTL_xxx enum. (check-in: 0d789618 user: stephan tags: fiddle-opfs)
18:08
Add tests. Deal issues surrounding aborting recovery from within the SQL callback, and avoiding the pending-byte page. (check-in: 4e97dd31 user: dan tags: recover-extension)
2022-09-12
22:27
Get testing1.js working with a kvvfs build. (check-in: 333a4572 user: stephan tags: fiddle-opfs)
20:21
Remove an extraneous key-copy op in the EM_JS impl of kvstorageDelete(). (check-in: 1c5aeee4 user: stephan tags: kv-vfs)
20:18
Merge kv-vfs branch into fiddle-opfs and add speedtest1-kvvfs.html test app (which currently fails early on). (check-in: 8b1608a9 user: stephan tags: fiddle-opfs)
20:02
Fix some problems with handling corrupt database in the recovery extension. (check-in: ed318be8 user: dan tags: recover-extension)
19:33
Fix the <sys/time.h> include in os_kv.c. (check-in: 878cc93e user: drh tags: kv-vfs)
19:29
Add a gettimeofday()-based implementation of xCurrentTimeInt64() to os_kv.c. (check-in: e393ed65 user: drh tags: kv-vfs)
19:23
More tests for the recover module. (check-in: 37fb093b user: dan tags: recover-extension)
18:10
Fix a debugging/testing edit in the previous check-in. (check-in: 6fc8d34c user: drh tags: kv-vfs)
17:59
Add sqlite3.oo1.DB.clearKvvfsStorage(). Add controls to kvvfs1.js demo to reset and query the db without requiring the dev console. (check-in: d845c6c2 user: stephan tags: fiddle-opfs)
17:44
Faster text decoder for kv_os.c. (check-in: 3354a2ed user: drh tags: kv-vfs)
16:09
Merge kv-vfs branch into fiddle-opfs branch to add kvvfs-based wasm build and demo. (check-in: a7d8b26a user: stephan tags: fiddle-opfs)
16:07
New run-time options to the speed-check.sh script. (check-in: ff46bc9d user: drh tags: trunk)
15:59
Fix uninitialized variable in rollback-journal processing in os_kv.c (check-in: e49682c5 user: drh tags: kv-vfs)
13:05
Resolve missing kvvfs JS test: sqlite3_initialize() must be called by the client in this build. Add basic sanity test of kvvfs using sessionStorage(). (check-in: 250a935a user: stephan tags: kv-vfs)
12:41
Fix the amalgamation so that it builds with the standard unix backend again. (check-in: 0adf158f user: drh tags: kv-vfs)
12:39
Initial build of kvvfs in wasm. It loads but cannot find the VFS for as-yet-unknown reasons (sqlite3 shell works fine), and most APIs throw "null function or function signature mismatch" from deep within wasm, presumably as a side effect of the "missing" VFS. (check-in: 1a2f24a0 user: stephan tags: kv-vfs)
2022-09-11
16:59
Minor cleanups and documentation in the wasm pieces. (check-in: 4e6ce329 user: stephan tags: fiddle-opfs)
05:44
Correct the result code from kvstorageRead() for the OOM case to be a negative value. (check-in: cdbf09fa user: stephan tags: fiddle-opfs)
05:38
Minor cleanups and docs for the EM_JS() impls of the kvvfs read/write/delete ops. (check-in: 53b7572e user: stephan tags: fiddle-opfs)
04:49
Add EM_JS() impl for kvstorageRead(). (check-in: 06610314 user: stephan tags: fiddle-opfs)
02:43
Initial prototype impls of write/delete-key ops for the pending kvvfs which use sessionStorage or localStorage for db page storage. read-key op is pending. (check-in: a4bd96f5 user: stephan tags: fiddle-opfs)
2022-09-10
20:01
Rework recover extension code for readability. (check-in: 1a254096 user: dan tags: recover-extension)
18:38
Improved comments in os_kv.c. Better names for the key/value name spaces. (check-in: 8e1652a3 user: drh tags: kv-vfs)
18:20
Move the vfskv.c extension to src/os_kv.c and make it part of the amalgamation, activated if and only if SQLITE_OS_KV is true. (check-in: f6632e69 user: drh tags: kv-vfs)
13:50
Enhance the b-tree page sorting code to ensure that sqlite3PagerRekey() never overloads a page number and uses only the PENDING_BYTE page for temporary storage. (check-in: aa6a5b72 user: dan tags: branch-3.39)
2022-09-09
20:44
Further fixes to comments in sqlite3recover.h. Also rework some data structures in sqlite3recover.c. (check-in: 599d1f8e user: dan tags: recover-extension)
17:50
Fix harmless compiler warning seen with MSVC. (check-in: 73c4c68d user: mistachkin tags: trunk)
16:25
Handle recovery of virtual tables by recovering each shadow table individually, then writing the CREATE VIRTUAL TABLE statement directly into the sqlite_schema table. (check-in: 5f2d5ccd user: dan tags: recover-extension)
16:16
Database must be named either "local" or "session". Each has a distinct namespace. (check-in: c8e41279 user: drh tags: kv-vfs)
14:22
Separate sqlite3_io_methods objects for database files and journals. (check-in: 74fbf6c2 user: drh tags: kv-vfs)
11:41
Simple reading and writing now works. (check-in: 00845ac9 user: drh tags: kv-vfs)
05:39
Remove a reference to a completed TODO. (check-in: 757ad696 user: stephan tags: fiddle-opfs)
04:50
speedtest1 wasm: add a link in the worker variant which launches the main-thread variant with the selected CLI flags. Append collected stdout/stderr to the main-thread page after execution is finished to avoid having to open the dev tools (which inexplicably slows down wasm execution). (check-in: 02709ee2 user: stephan tags: fiddle-opfs)
2022-09-08
21:43
Update comments in sqlite3recover.h. (check-in: 14164047 user: dan tags: recover-extension)
21:33
Make use of the --big-transactions flag in the speedtest1 JS apps. (check-in: f2846dcb user: stephan tags: fiddle-opfs)
21:09
Add speedtest1 --big-transactions flag to cause its large tests which rely on implicit transactions to be wrapped in BEGIN/COMMIT, per /chat discussion. Added to support of the WASMFS build, which slows down significantly when thousands of implicit transactions are used. (check-in: 51395c00 user: stephan tags: fiddle-opfs)
20:04
Minor build cleanups and tweaks in the speedtest1 wasm apps. (check-in: 5240fb4d user: stephan tags: fiddle-opfs)
19:53
Experimentally add --nomutex flag to speedtest1 to have it open db with the SQLITE_OPEN_NOMUTEX flag. (check-in: 45ef576b user: stephan tags: fiddle-opfs)
19:22
Update the shell to use the recover extension for the .recover command. (check-in: ae832e77 user: dan tags: recover-extension)
17:42
Fix problems with recovering the sqlite_sequence table. (check-in: 356d2209 user: dan tags: recover-extension)
17:12
Compiles and loads as an extension. Starts to run but quickly hits issues. (check-in: 2e38726f user: drh tags: kv-vfs)
16:27
Compiles without error, but untested. (check-in: a329939c user: drh tags: kv-vfs)
15:48
Code snapshot. Completely untested. Probably does not compile. (check-in: 51e26769 user: drh tags: kv-vfs)
15:30
Add speedtest1-worker.html, an interactive Worker-thread variant of speedtest1.html. Add ext/wasm/index.html to act as a gateway to the various test pages. (check-in: f16c68ee user: stephan tags: fiddle-opfs)
11:04
Add new test file recoverclobber.test. (check-in: cb4e950c user: dan tags: recover-extension)
2022-09-07
20:14
Enhance an assert() to impose for tighter constraints on the operation of pcache. (check-in: 461511cc user: drh tags: branch-3.39)
20:11
Enhance an assert() to impose for tighter constraints on the operation of pcache. (check-in: 42105eb4 user: drh tags: trunk)
19:58
Fix the windows build so that it works with -DSQLITE_OMIT_AUTOINIT. (check-in: 1662eb07 user: drh tags: branch-3.39)
19:50
Ensure that the Rekey() operation does not overwrite an existing page number. (check-in: cd1e4006 user: drh tags: branch-3.39)
19:35
Increase the version number to 3.39.4 (check-in: e98bed12 user: drh tags: branch-3.39)
19:28
An improved technique for ensuring that the Rekey() operation does not overwrite an existing page number. This approach does not change the semantics of the underlying pluggable pcache and it is easier to prove correct. This replaces the changes at [aadd38f99a3e5abc] and [81cff9f1955874aa]. (check-in: 7dbddde7 user: drh tags: trunk)
17:29
Non-working code towards a VFS for text key/value storage. (check-in: f9c89ee8 user: drh tags: kv-vfs)
16:41
Ensure that the recover extension properly escapes CR and NL characters in text mode. Also that it holds transactions open on both input and output databases for the duration of a recovery operation. (check-in: 6cca8913 user: dan tags: recover-extension)
2022-09-06
23:04
Add a note about Emscripten's -sSINGLE_FILE flag, why it would be nice, and why we can't use it. (check-in: 5ea06236 user: stephan tags: fiddle-opfs)
20:17
Get speedtest1.js working with WASMFS/OPFS. (check-in: 40e60f57 user: stephan tags: fiddle-opfs)
19:38
Tests and a fix for the SQLITE_RECOVER_ROWIDS option. (check-in: 1d5000f5 user: dan tags: recover-extension)
16:47
Initial build of speedtest1.wasm and speedtest1.html with which to run it. (check-in: 4441535e user: stephan tags: fiddle-opfs)
16:35
Minor internal doc clarifications. (check-in: 09796cc2 user: stephan tags: fiddle-opfs)
09:59
Merge trunk into fiddle-opfs branch. (check-in: 7f76eaec user: stephan tags: fiddle-opfs)
2022-09-05
22:54
Add the tool/omittest-msvc.tcl script that will try to build using MSVC using various compile-time options, to ensure that the compile-time options all build without errors. (check-in: 6b00ecb5 user: drh tags: trunk)
22:53
Get the tool/omittest-msvc.tcl script working. (Closed-Leaf check-in: 82b89f8a user: drh tags: msvc-omit-test)
21:22
Fix a problem with script mode and lost-and-found tables. (check-in: 09ec588d user: dan tags: recover-extension)
21:00
Add a mode to output SQL statements instead of populating a database to the recover extension. (check-in: 73058416 user: dan tags: recover-extension)
20:42
Add a prototype for a script, similar to tool/omittest.tcl, that is designed to test builds using MSVC to ensure they work with various OMIT options. (check-in: b1e37a0b user: drh tags: msvc-omit-test)
18:17
Fix the windows build so that it works with -DSQLITE_OMIT_AUTOINIT. (check-in: f74a5ea8 user: drh tags: trunk)
15:56
Add the SQLITE_RECOVER_ROWIDS option. To specify that rowid values that are not also explicit INTEGER PRIMARY KEY values should be preserved. (check-in: 69cc9aba user: dan tags: recover-extension)
13:36
Merge patches for version 3.39.3 into the reuse-schema-3.39 branch. (check-in: efd54164 user: drh tags: reuse-schema-3.39)
13:24
Minor cleanups in OO API #1. Add Sudoku SQL to batch-runner.js's list. (check-in: 4488cb57 user: stephan tags: fiddle-opfs)
12:39
Version 3.39.3 patches applied to the begin-concurrent branch. (Leaf check-in: 31304de8 user: drh tags: begin-concurrent-3.39)
11:02
Version 3.39.3 (check-in: 4635f4a6 user: drh tags: release, branch-3.39, version-3.39.3)
2022-09-03
21:08
Add an option to assume the freelist is corrupt when recovering data. (check-in: 253e498f user: dan tags: recover-extension)
20:31
Take the freelist into account when recovering data that is not linked in to any tree associated with a schema entry. (check-in: dbd1f1ef user: dan tags: recover-extension)
20:07
Further work on making the recover extension compatible with the .recover command. (check-in: f2ac3158 user: dan tags: recover-extension)
11:41
wasm: minor text and build cleanups. (check-in: 36ceef94 user: stephan tags: fiddle-opfs)
2022-09-02
21:21
Ensure the Pager.journalOff variable is zeroed if an error occurs while writing the initial header to the journal file. (check-in: fe547035 user: dan tags: branch-3.39)
21:19
Ensure the Pager.journalOff variable is zeroed if an error occurs while writing the initial header to the journal file. (check-in: da7af290 user: dan tags: trunk)
19:18
Remove a NEVER() that is sometimes true. (check-in: 85a8a117 user: drh tags: branch-3.39)
17:26
Fix an assert() associated with the dbsqlfuzz error at [8372468bb5d8922c]. (check-in: f448480e user: drh tags: branch-3.39)
17:25
Fix an assert() associated with the dbsqlfuzz error at [8372468bb5d8922c]. (check-in: 54251f81 user: drh tags: trunk)
16:45
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: 073621af user: drh tags: branch-3.39)
15:53
When an OOM occurs and sets the Parse.nErr value, also set the Parse.nErr value for all outer Parse objects. dbsqlfuzz d33f60aaa67733aa700cd69dacf8e0e23a327a29 (Leaf check-in: b17a2503 user: drh tags: branch-3.39-pcache)
15:19
If sqlite3PcacheMove() moves a page on top of another, swap the two pages, moving the other back to the page number of the original. (check-in: 04eb9f97 user: drh tags: branch-3.39-pcache)
15:09
If sqlite3PcacheMove() really performs a swap, then be sure to renumber the second page. (check-in: 81cff9f1 user: drh tags: trunk)
14:29
Enhance the pcache1 implementation so that during an xRekey operation if another page already exists at the destination, that other page gets moved to the source key. (check-in: aadd38f9 user: drh tags: trunk)
12:12
Mutex protect access to the sqlite3_test_directory and sqlite3_data_directory global variables. See forum thread 719a11e1314d1c70. (check-in: 34c6ec39 user: drh tags: branch-3.39)
11:45
Mutex protect access to the sqlite3_test_directory and sqlite3_data_directory global variables. See forum thread 719a11e1314d1c70. (check-in: 8e6ad3a3 user: drh tags: trunk)
11:12
Improved mutex protection of the sqlite3_temp_directory and sqlite3_data_directory global variables. (Closed-Leaf check-in: ebbe9634 user: drh tags: tempdir-mutex)
00:36
Experimental changes to put sqlite3_temp_directory behind a mutex. (check-in: 5ee3515f user: drh tags: tempdir-mutex)
2022-09-01
21:00
Further work on making recovery extension compatible with the shell tool ".recover" code. (check-in: 8df7c7d0 user: dan tags: recover-extension)
14:33
Defer deleting a transient SELECT statement associated with a flattening of one arm of a compound SELECT until after the parse has completed. (check-in: 8403c0d5 user: drh tags: branch-3.39)
13:51
Defer deleting a transient SELECT statement associated with a flattening of one arm of a compound SELECT until after the parse has completed. This is a follow-up and enhancement to check-in [6e6b3729e0549de0] in response to an assertion fault reported by Chromium. (check-in: 1c4157c7 user: drh tags: trunk)
10:41
In the query planner, add a heuristic that will reduce the cost of a full table scan for a materialized view or subquery if the full scan is the outer-most loop. This is shown to speed up some queries. (check-in: e3754cc1 user: drh tags: branch-3.28)
10:29
In the query planner, add a heuristic that will reduce the estimated cost of a full table scan for a materialized view or subquery if the full scan is the outer-most loop. This is shown to speed up some queries. (check-in: 609fbb94 user: drh tags: trunk)
2022-08-31
20:45
Add new files for an extension to recover data from corrupted databases. (check-in: f8298eeb user: dan tags: recover-extension)
15:04
Enhance the b-tree page sorting code to ensure that sqlite3PagerRekey() never overloads a page number and uses only the PENDING_BYTE page for temporary storage. (check-in: 50077428 user: drh tags: trunk)
14:40
Do not attempt the OP_Count optimization on queries with HAVING clauses. This fixes a problem exposed by [2cf373b10c9bc4cb]. (check-in: 5f93239a user: drh tags: branch-3.39)
00:44
Checked in the wrong change by mistake. (Closed-Leaf check-in: 984a07d7 user: drh tags: mistake)
2022-08-30
17:57
batch-runner.js: add rudimentary metrics export to CSV. Add a toggle to reverse the log output mode (in normal order or most recent first). (check-in: b26e2bc0 user: stephan tags: fiddle-opfs)
16:54
Improved comments in pcache1.c. No changes to code. (check-in: dd017bb1 user: drh tags: trunk)
14:13
Any function call can abort. Take this into account when deciding if a DML statement needs a statement journal. See forum thread 9b9e4716c0d7bbd1 for more information. (check-in: 5bf4c5fd user: drh tags: branch-3.39)
10:26
batch-runner.js: re-enable unlink-before-run so that OPFS speedtest1 batch can work. (check-in: ba08f7a7 user: stephan tags: fiddle-opfs)
10:04
batch-runner.js: move generated SQL files into ./sql and start adding hand-written ones (like the Mandelbrot) to that set. (check-in: 06c106a7 user: stephan tags: fiddle-opfs)
09:51
Remove the .timer script entry from fiddle app because emscripten has removed getrusage(), which breaks the timer. (check-in: 9034f19a user: stephan tags: fiddle-opfs)
09:49
wasm util: remove superfluous function.bind() calls to eliminate a level of call() indirection. (check-in: 1aab9627 user: stephan tags: fiddle-opfs)
00:11
Any function call can abort. Take this into account when deciding if a DML statement needs a statement journal. See forum thread 9b9e4716c0d7bbd1 for more information. (check-in: 5c95ae6c user: drh tags: trunk)
2022-08-29
18:58
Lots of tweaking in batch-runner.js. Minor internal API update in OO #1 API. (check-in: 24b82b95 user: stephan tags: fiddle-opfs)
17:41
Add test descriptions to the speedtest1 '-- begin' markers for potential display by the downstream JS code which uses those markers. (check-in: e5b7006f user: stephan tags: fiddle-opfs)
12:39
Add batch-runner.js for running batch SQL scripts with timing info. (check-in: 11f3ed61 user: stephan tags: fiddle-opfs)
12:31
Add get/setPtrValue() to the common wasm utils. (check-in: 24d70fc4 user: stephan tags: fiddle-opfs)
09:51
Add begin/end comment markers to the test blocks in speedtest1 --script output to facilitate chopping up the output into chunks for JS-side processing. (check-in: ef0b7ef2 user: stephan tags: fiddle-opfs)
08:04
oo #1 api: correct a case where a null callback is called. Rename some vars for clarity. Increase wasm-side memory in order to be able to load the speedtest1 output. (check-in: b5058f14 user: stephan tags: fiddle-opfs)
2022-08-27
16:11
More assert() statements in the page cache. (check-in: 7c96a56c user: drh tags: trunk)
14:43
Ensure that every pcache page always has either the PGHDR_DIRTY or the PGHDR_CLEAN bit set, even during transient page reshuffling during btree balancing. (check-in: e67f03c1 user: drh tags: trunk)
2022-08-25
19:38
Merge changes from trunk into the fiddle-opfs branch. (check-in: 34279797 user: stephan tags: fiddle-opfs)
19:29
Ensure that sqlite3_prepare() inputs always have a semicolon terminator in speedtest1. (check-in: c72756b0 user: drh tags: trunk)
19:19
Add the --script option to speedtest1. (check-in: 1c87d7c5 user: drh tags: trunk)
18:29
Fix the bytecode engine so that it is able to handle an incoming SQLITE_TOOBIG error, which is now possible using the statement cache. (check-in: 7763b98b user: drh tags: stmt-cache)
17:12
Do not attempt to cache DDL statement. (check-in: 8f6a1f77 user: drh tags: stmt-cache)
15:09
Improved documentation of new features. Minor speed enhancements. (check-in: da9aa547 user: drh tags: stmt-cache)
14:31
Merge changes from trunk into the stmt-cache branch. (check-in: bc988ce7 user: drh tags: stmt-cache)
13:32
Remove a NEVER() macro for a condition that is actually reachable following an OOM. dbsqlfuzz crash-6ef3cd3b18ccc5de86120950a0498641acd90a33.txt. (check-in: b573e2cf user: dan tags: trunk)
13:27
Consolidate oo1.DB.exec() and oo1.DB.execMulti() into oo1.DB.exec(). This is a bit less efficient but certainly easier for a client to deal with and lightens the maintenance burden. (check-in: 7eff7213 user: stephan tags: fiddle-opfs)
13:09
If a perpared statement runs the Expire opcode, then disqualify it from being cached. (check-in: f27d919f user: drh tags: stmt-cache)
11:39
Refactor and expand the worker1 docs, consolidating them into the top of their file instead of scattered around the internals. Accommodate an API change from yesterday in demo-oo1.js. (check-in: 0a657470 user: stephan tags: fiddle-opfs)
2022-08-24
23:50
Change sqlite3_prepare_v3() to require SQLITE_PREPARE_CACHE in order for a statement to be a cache candidate. But any statement can pull from the cache. Also add statement cache control to the CLI. (check-in: c9dc536d user: drh tags: stmt-cache)
20:57
Change DB.exec() rowMode default from 'stmt' to 'array', per /chat discussion. Add DB.exec() rowMode option for fetching a specific column by name. Add result column names to worker1 exec() callback interface, as there's otherwise no way to get that info from a worker. (check-in: 1bb37e5c user: stephan tags: fiddle-opfs)
18:39
Expand the worker1 'exec' op handling for per-row callbacks for API-level consistency and smooth some edges between worker1 core and worker1-promiser. Add worker1 'config-get' message to fetch the serializable parts of the sqlite3.config state. Improve the 'open' op's handling of the 'persistent' option (noting that we cannot yet test that case from a worker). (check-in: 509f8839 user: stephan tags: fiddle-opfs)
17:59
Add a mutex to the sqlite3_db_config() interface so that it is threadsafe when two or more threads call it on the same database connection at the same time. (check-in: 459ad884 user: drh tags: trunk)
17:55
First attempt at adding a built-in prepared statement cache. This is mostly working, but still has a few obscure faults. (check-in: c217b763 user: drh tags: stmt-cache)
14:50
js: resolve the mysterious "extra" unhandled exception notification, caused by inadvertently forking one promise into two separate ones (failing to properly reassign a then() result). Fix a typo in new Worker 1 code which caused the DB(filename) name to be incorrect. (check-in: 7467ac88 user: stephan tags: fiddle-opfs)
11:51
Fix an inefficiency in the ".dump" command when outputing large blob literals. (check-in: c055d05d user: dan tags: trunk)
05:59
More work on how to configure the sqlite3 JS API bootstrapping process from higher-level code. Initial version of sqlite3-worker1-promiser, a Promise-based proxy for the Worker API #1. (check-in: b030f321 user: stephan tags: fiddle-opfs)
00:51
The very basics of a Promise-based proxy for the Worker #1 API. Still requires considerable cleanup, testing, and a solution for the exec-callback-via-event-type-name problem. (check-in: 1e447849 user: stephan tags: fiddle-opfs)
00:10
Significant restructuring of the Worker #1 request/response object structures to improve readability and clarity. (check-in: 03b9db9b user: stephan tags: fiddle-opfs)
2022-08-23
20:11
Change the names of the Vdbe.pVNext and Vdbe.ppVPrev fields to make them unique. Change to ppVPrev to save a few bytes and a few CPU cycles. (check-in: 34b8ea31 user: drh tags: trunk)
17:51
Enhance assert() statements to enforce tighter bounds on the P5 operand of the OP_Next and OP_Prev opcodes. (check-in: 4e0a07fc user: drh tags: trunk)
17:02
Wasm build flag tweaks and documentation. (check-in: c8eb3aa8 user: stephan tags: fiddle-opfs)
16:55
Add mksourceid binary to the clean rules and $(TESTPROGS) to distclean. (check-in: ae3e82f5 user: stephan tags: trunk)
2022-08-22
21:37
More experimentation with how client-side config state can be passed on to initialize the JS-side sqlite3 API. (check-in: ea2acc45 user: stephan tags: fiddle-opfs)
16:30
Merge recent trunk enhancements into the reuse-schema branch. (check-in: 9c05a48e user: drh tags: reuse-schema)
16:08
Merge all recent trunk changes into the begin-concurrent-pnu-wal2 branch. (check-in: dde76e91 user: drh tags: begin-concurrent-pnu-wal2)
15:57
Merge all recent trunk enhancements into the wal2 branch. (check-in: 0b7578bf user: drh tags: wal2)
15:48
Merge all recent trunk enhancements into the begin-concurrent-report branch. (check-in: 2ec6e9e1 user: drh tags: begin-concurrent-report)
15:42
Merge all recent trunk enhancements into the begin-concurrent branch. (check-in: 7eac6136 user: drh tags: begin-concurrent)
15:18
Performance enhancement for sqlite3DbFree(). (check-in: c296a9d9 user: drh tags: trunk)
14:03
Merge recent trunk changes into the fiddle-opfs branch. (check-in: e215d55a user: stephan tags: fiddle-opfs)
13:34
Refactor JS API amalgamation such that the bootstrapping/configuration is deferred until the whole amalgamation is available, to facilitate providing clients with a way to initialize the API with their own config (noting that we're still one small level of refactoring away from being able to actually do that). (check-in: 9dbe9a6a user: stephan tags: fiddle-opfs)
08:55
wasm: accommodated a JS API rename. (check-in: 00991335 user: stephan tags: fiddle-opfs)
02:00
Add the new internal interface sqlite3DbNNFreeNN(db,ptr) where both the db and ptr parameters are guaranteed to be non-NULL. Use this where appropriate to save more than 2 million CPU cycles on the standard performance test. (check-in: e5eaa80e user: drh tags: trunk)
2022-08-20
19:45
Merge the test case for dbsqlfuzz 18fe4e257be7fa3ecfb0424ab7427e41e97ef9e3 assertion fault, which is fixed with the previous check-in. (check-in: 2d13ec08 user: drh tags: trunk)
19:33
Enhance the enforcement of SQLITE_VTAB_DIRECTONLY so that it applies to DML statements within triggers. Do not allow DML stratements against virtual tables within triggers unless either the virtual table is SQLITE_VTAB_INNOCUOUS or PRAGMA trusted_schema is ON. (check-in: 9433ea40 user: drh tags: trunk)
2022-08-19
20:10
Add test case for fuzzer case crash-18fe4e. (Closed-Leaf check-in: 8372468b user: dan tags: crash-18fe4e)
2022-08-18
15:53
Add notes to ext/wasm/README.md explaining how to run tests on a remote machine. (check-in: 7a3c444f user: drh tags: fiddle-opfs)
12:21
javascript: rename and simplify DB.callInTransaction() as DB.transaction(). Add DB.savepoint(), which works the same as transaction() but uses savepoints. Correct concatenation of arguments to SQLite3Error to use spaces instead of commas. Test that demo-oo1.js works with persistent OPFS storage (output differs due to persistent rows, but the demo works). (check-in: e8c323f1 user: stephan tags: fiddle-opfs)
11:16
Improve an exception check in demo-oo1.js. (check-in: 55e1b775 user: stephan tags: fiddle-opfs)
2022-08-17
20:18
In the ".dump" command of the CLI, if a schema statement ends with an unterminated comment, try to terminate that comment prior to appending the ";" at the end. Forum post d7be961c5c. (check-in: 96e112da user: drh tags: trunk)
18:07
Enhance the "PRAGMA integrity_check" statement so that it verifies the rows of a WITHOUT ROWID table are in the correct order. (check-in: 62f934bf user: drh tags: trunk)
17:14
Minor code simplification in the code generator for PRAGMA integrity check. (check-in: a3b9c7a6 user: drh tags: trunk)
16:44
Minor cleanups, reorgs, and doc updates for the JS APIs. Renamed sqlite3(-api)-worker.js to sqlite3(-api)-worker1.js, for symmetry with sqlite3-api-oo1.js. (check-in: f5059ee6 user: stephan tags: fiddle-opfs)
2022-08-16
17:29
wasm: minor cleanups in the OO API #1 demo. (check-in: b9cdcc06 user: stephan tags: fiddle-opfs)
17:18
Change the legacy RC4-based PRNG to use the RFC-7539 chacha20 algorithm. (check-in: a0f80115 user: drh tags: trunk)
16:57
Fix obsolete comments. Add new comments. Fix non-standard spacing. (Closed-Leaf check-in: a0d224c6 user: drh tags: chacha20-prng)
16:40
Fix an off-by-one error in the ChaCha20 initialization code. (check-in: 72e220ee user: drh tags: chacha20-prng)
16:36
wasm: add a small demo/presentation app for JS OO API #1 and make a few minor additions to that API. (check-in: d6d79b66 user: stephan tags: fiddle-opfs)
16:16
wasm: move another file and update testing1/testing2 to account for [e38d00c2b82d]. Disable wasmfs by default as it breaks the worker-based module loader (reason as yet unknown). (check-in: 6dad5e05 user: stephan tags: fiddle-opfs)
16:11
wasm: accommodate moving generated sqlite3.js in the previous checkin. (check-in: 41762f95 user: stephan tags: fiddle-opfs)
16:06
wasm: disable shared cache mode by default. Experimentally move wasm-build generated files up one dir to rule the extra dir out as a problem for Emscripten-related worker-loading failures. (check-in: e38d00c2 user: stephan tags: fiddle-opfs)
14:09
Omit an unnecessary test case from corruptN.test that does not work with the new RFC-7539 PRNG. (check-in: d9e8c65e user: drh tags: chacha20-prng)
10:52
Add assert() statements to verify that the SQLITE_OPEN_EXCLUSIVE flag is always passed to the VFS when opening a temporary file. (check-in: e123da49 user: dan tags: trunk)
00:04
Replace the RC4-based PRNG with one based on ChaCha20 (RFC 7539). 3x faster. (check-in: 084d8776 user: drh tags: chacha20-prng)
2022-08-15
19:23
Extra test for SQLITE_MAX_COMPOUND_SELECT. (check-in: c2710967 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: 6170e638 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: 52c3ae06 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). (check-in: 6401595e user: stephan tags: fiddle-opfs)
16:36
wasmfs: use unix-none VFS by default to avoid locking errors in non-OPFS mode. (check-in: 75561dea 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: ae24ac0f 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: 41045be7 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: 3bc510a6 user: stephan tags: fiddle-opfs)
13:46
wasm OO API #1: added DB.callInTransaction() and Stmt.stepFinalize(). (check-in: e37dddc1 user: stephan tags: fiddle-opfs)
13:42
Corrected TextDecoder.decode() usage to run when its input references a SharedArrayBuffer. (check-in: d4d77340 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: b3a93ec7 user: stephan tags: fiddle-opfs)
18:46
Add the (undocumented) SQLITE_DEFAULT_UNIX_VFS compile-time option. (check-in: 49828bde user: drh tags: trunk)
18:07
Updated fiddle deps to ensure that sqlite3.c is built first. (check-in: f0ca0261 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: a16f0a46 user: stephan tags: fiddle-opfs)
17:55
Minor wasm-related doc clarification and remove an obsolete code comment. (check-in: 1b1f650a user: stephan tags: trunk)
13:07
wasm: document the role of sqlite3-wasm.c. Other minor doc updates. (check-in: 4c10b9b1 user: stephan tags: trunk)
09:32
wasm: corrected (in as-yet unused code) a flags check. (check-in: 06b61137 user: stephan tags: trunk)
2022-08-11
15:45
Wasm-related doc additions and tweaks. (check-in: ec55a3aa user: stephan tags: trunk)
09:18
Merge in wasm-cleanups branch, reorganizing and updating the wasm-related components. (check-in: c072594d user: stephan tags: trunk)
2022-08-10
18:40
Fix another harmless comment typo that causes a typo in the documentation. (check-in: bb084adb user: drh tags: trunk)
18:33
Remove (harmless) duplicate words in comments used to generate parts of the documentation. forum post 54abbe9ccd (check-in: b5e4f0db user: drh tags: trunk)
17:03
Merge the branch-3.28a fixes into branch-3.28. (check-in: ba6bf331 user: drh tags: branch-3.28)
15:29
Fix handling of columns with names that are SQL keywords in the ".expert" command. (check-in: 5e1b8221 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: 683a3b93 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: 27f9da4e 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: fb4eb930 user: stephan tags: wasm-cleanups)
07:58
Merged in trunk for pending tree refactoring. (check-in: c3a3cb01 user: stephan tags: wasm-cleanups)
2022-08-09
20:22
Fix a rounding error caused by scalar->logarithm->scalar conversion when using stat4 data to estimate some range scans. (check-in: 68d86f2b user: drh tags: branch-3.28)
16:13
Allow the name of an index to collide with a table in a different schema. (check-in: f963c252 user: drh tags: trunk)
14:28
Omit the (undocumented) SQLITE_PCACHE_SEPARATE_HEADER compile-time option. (check-in: 60947da6 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: 46a78c8c user: dan tags: trunk)
16:25
Avoid trying to cast an over-sized floating point value into an integer. (check-in: 3518cd7c user: drh tags: trunk)
13:04
Remove an unreachable branch in the numericType() helper routine. (check-in: a99cc008 user: drh tags: trunk)
12:19
Do not attempt to convert an oversized floating point value into an integer. (check-in: 6c4fc838 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: 86e30d7c user: dan tags: trunk)
2022-08-05
19:37
Avoid having fts3 read uninitialized values when processing deferred tokens. (check-in: 8e2bfe58 user: drh tags: branch-3.39)
17:16
Avoid having fts3 read uninitialized values when processing deferred tokens. (check-in: 98729c5f user: dan tags: trunk)
05:30
Fix harmless compiler warning seen with MSVC. (check-in: e36217f2 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: 5e1db87c 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 post 6b5e9188f0657616. The problem was introduced in 2015 (SQLite version 3.9.0) by check-in [4b631364354068af]. See also ticket [b65cb2c8d91f6685]. (check-in: 6c806f64 user: drh tags: trunk)
14:02
Fix a typo on a comment used to generate bytecode documentation. (check-in: 64348d0b user: drh tags: trunk)
2022-08-03
19:53
Performance optimization to the math opcodes of the bytecode engine. (check-in: 597347d9 user: drh tags: trunk)
19:37
Small performance increase on the binding interfaces. (check-in: aab24c37 user: drh tags: trunk)
17:27
Improvement on the previous check-in. (check-in: 0d0c3111 user: drh tags: branch-3.39)
17:26
Improvement on the previous check-in. (check-in: c1ab0ea2 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: 003e4eee 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, CVE-2022-3195. This problem was injected by [a193749730d6cfba] which was part of the RIGHT JOIN enhancement for version 3.39.0. (check-in: b184c8d9 user: drh tags: trunk)
2022-08-01
13:17
Bump the version number up to 3.39.3. (check-in: d0f7f22a 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 post a096ab7d96bb057a. (check-in: a8ae7216 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 post a096ab7d96bb057a. A test case for this problem is in dbsqlfuzz. (check-in: a04dd475 user: drh tags: trunk)
2022-07-26
19:10
Restore a VDBE coverage macro that is mistakenly deleted for check-in [92ac01d41d46ab73]. (check-in: 01de7ec4 user: drh tags: trunk)
18:43
Fix another problem related to aggregate query LEFT JOIN flattening. (check-in: 8e12c6f5 user: dan tags: trunk)
15:41
Omit a unused variable initialization in order to suppress a harmless compiler warning. (check-in: 2d703c5e user: drh tags: trunk)
15:39
Add test cases related to fix [e717e029]. (Closed-Leaf check-in: 2909f36b 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: 2bda4fca 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: e717e029 user: drh tags: flatten-left-join)
10:16
Add a OOM term to a single assert() statement. (check-in: 217fc3eb user: drh tags: trunk)
01:20
Performance optimization: avoid unnecessary calls to computeLimitRegisters(). (check-in: f48bd8f8 user: drh tags: trunk)
2022-07-25
23:34
Fix an assert() that was made out-of-date by [b52393ac28debe98]. (check-in: db8230e8 user: drh tags: trunk)
23:01
Performance optimization by only invoking sqlite3FkCheck() when it is actually needed. (check-in: 98b0e830 user: drh tags: trunk)
22:31
Performance optimization in sqlite3ViewGetColumnNames(). (check-in: 390717e6 user: drh tags: trunk)
22:02
Fix a harmless compiler warning. (check-in: 9aba7417 user: drh tags: trunk)
21:37
In-line a call to sqlite3ExprCode() in insert.c, for a size reduction and performance increase. (check-in: 35066b14 user: drh tags: trunk)
20:21
Performance optimization in computing the Expr.nHeight field. (check-in: 1798ce97 user: drh tags: trunk)
19:05
Small performance increase and size reduction by splitting out the sqlite3VdbeGetLastOp() from sqlite3VdbeGetOp(). (check-in: 92ac01d4 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: b52393ac 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: 816da9a8 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: 40d08807 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: dbe522b0 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: 836fa097 user: dan tags: trunk)
2022-07-23
12:51
Simplifications to sqlite3FinishCoding() for a small size reduction and performance increase. (check-in: a995614b user: drh tags: trunk)
00:53
Remove a branch that is no longer reachable due to the previous check-in. (check-in: 8b4d1b93 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: 2a6f6971 user: drh tags: trunk)
2022-07-22
20:48
Updates to the 'vtshim' extension. (Leaf check-in: 163c6cdf user: mistachkin tags: xShadowName2)
20:24
Add experimental 'xShadowName2' method for virtual table modules. (check-in: 57beb700 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: 28934a9d 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: c538d075 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: de922269 user: drh tags: trunk)
2022-07-21
18:37
Fix harmless compiler warning seen with MSVC. (check-in: 648172de user: mistachkin tags: trunk)
16:07
Merge the fixes from branch-3.39 into the reuse-schema branch. (check-in: 578538ba user: drh tags: reuse-schema-3.39)
15:24
Version 3.39.2 (check-in: 698edb77 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: 9141e873 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: 22f90e96 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: 44993591 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. Fix for CVE-2022-3034. Test case in TH3. (check-in: e1f1cfe7 user: drh tags: trunk)
10:09
Merged in trunk. (check-in: d662796c user: stephan tags: wasm-cleanups)
2022-07-19
21:12
Improve accuracy of julian day milliseconds calculation. (check-in: e5e93118 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: 22d280a5 user: dan tags: trunk)
18:13
Add the "testrunner" makefile target. (check-in: 954c6593 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: 26db4fc2 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: aab790a1 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 post 0d6a9160f81ef1a8. (check-in: ed8a8ebd user: drh tags: trunk)
13:10
Fix a problem in the REGEXP extension for the {M,N} construct where M is zero. See forum post 8694e55a2c29963c for more information. (check-in: af15bb75 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: cb5c0897 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: 449799e2 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: 92d60b64 user: drh tags: trunk)
15:24
Fix harmless compiler warnings seen with MSVC. (check-in: 2be8fa15 user: mistachkin tags: branch-3.39)
15:11
Fix a memory leak in fts3 that could occur when processing a corrupt database. (check-in: 48f323b9 user: dan tags: branch-3.39)
15:08
Fix a memory leak in fts3 that could occur when processing a corrupt database. (check-in: d74f6f6d 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 post 3607259d3c. (check-in: 2a6f7618 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 post 3607259d3c. (check-in: 0620e419 user: drh tags: trunk)
12:07
Update some faulty assert() statements in fts3. (check-in: 958d104b user: dan tags: branch-3.39)
11:34
Update some faulty assert() statements in fts3. (check-in: b072851b 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: b6522565 user: dan tags: trunk)
18:09
Update testrunner.tcl so that it can run the test suites defined in permutation.test. (check-in: 15ce937e user: dan tags: trunk)
01:54
Bump the version number up to 3.39.2. (check-in: c4dbcb28 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: b88d6c4b user: drh tags: branch-3.39)
01:48
When applying the omit-ORDER-BY optimization [85ddaf1b59a19cbd], defer deleting the AST of the deleted ORDER BY clause until after code generation ends. Fix for CVE-2022-3039. Test case in TH3. (check-in: f22f95b8 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: 14918f28 user: dan tags: trunk)
21:10
Minor change to help message in testrunner.tcl. (check-in: e4f9cb01 user: dan tags: trunk)
21:02
Add new script test/testrunner.tcl. For running a set of test scripts using multiple processes. (check-in: 0122e93d user: dan tags: trunk)
20:26
Fix a problem preventing "testrunnter.tcl all" from working. (Closed-Leaf check-in: 0ed1e83c 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: 900febcf user: dan tags: testrunner)
19:41
Version 3.39.1 (check-in: 7c16541a 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: 106f6724 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 post 174afeae5734d42d. (check-in: cf9ed7f2 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 post 174afeae5734d42d. (check-in: 274e244c 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: 7b167b87 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: ef229cbb 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: d1d019bf user: stephan tags: trunk)
15:17
Fix another test case error message similar to those fixed in [b3d6b3c3]. (check-in: 6d0f6772 user: dan tags: trunk)
15:12
Update makefiles to fix building the non-amalgamation testfixture with SQLITE_DEBUG. (check-in: 1ca70564 user: dan tags: branch-3.39)
15:10
Update makefiles to fix building the non-amalgamation testfixture with SQLITE_DEBUG. (check-in: d9c4a9d0 user: dan tags: trunk)
10:46
Fix a bug in wapptest.tcl introduced by [51255bad4c1fb607]. (check-in: b26d097e 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: ee059ad5 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: ec96293e 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: 51255bad user: drh tags: trunk)
21:40
Update the expected error messages in some OOM test cases to account for [44d77a7f807]. (check-in: b3d6b3c3 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: 4c40b38c 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: afb9e60e user: drh tags: trunk)
19:29
Fix harmless compiler warnings. (check-in: 9931bb20 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: 3fe19452 user: drh tags: trunk)
18:26
Fix harmless compiler warnings about unused debugging functions in treeview.c. (check-in: 4d6f9077 user: drh tags: trunk)
18:11
Back out the optimization at [1a8c2e54375ee2cf7] because there are some cases where it does not work. (check-in: fe39c8d5 user: drh tags: trunk)
14:44
Increase the version number to 3.39.1. (check-in: 88b1b032 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 post d5a82ba9eedee30c. Also, remove unnecessary clearing of the Parse.zErrMsg field following a nested parse. (check-in: eaef7b71 user: drh tags: branch-3.39)
14:39
Fix a problem in fts3 to do with deferred tokens and OR expressions. (check-in: bbe999e3 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 post d5a82ba9eedee30c. Also, remove unnecessary clearing of the Parse.zErrMsg field following a nested parse. (check-in: 44d77a7f user: drh tags: trunk)
14:26
Fix a problem in fts3 to do with deferred tokens and OR expressions. (check-in: d0bfe5c5 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: 9a494d25 user: drh tags: trunk)
2022-07-08
20:03
Performance optimizations in the WHERE clause processing of the query planner. (check-in: 50c8e8de 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: 27be9e96 user: drh tags: trunk)
17:57
Size reduction and performance optimization in whereLoopAddBtreeIndex(). (check-in: 64d2312c 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: 6f28a965 user: drh tags: trunk)
15:06
Upgrade the TEA build system used to build the Tcl package. (check-in: ace65da8 user: dan tags: trunk)
13:57
Fix typo in autoconf/tea/win/makefile.vc. (Closed-Leaf check-in: 094b2aad user: dan tags: tea-upgrade)
11:55
Remove an obsolete statement from a comment. No changes to code. (check-in: 99afb3f4 user: drh tags: trunk)
11:21
Update options in the TEA package msvc makefile to match other builds. (check-in: d72e12b9 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: 9d6d9dba user: dan tags: tea-upgrade)
2022-07-07
22:59
Very small size reduction and performance increase in btree.c. (check-in: 9a7c031a user: drh tags: trunk)
21:04
Size reduction and performance increase in defragementPage() of btree.c. (check-in: 1b03f197 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: 1531f739 user: dan tags: tea-upgrade)
20:29
Size reduction and performance increase in the pageFindSlot() routine of btree.c. (check-in: 5d247e38 user: drh tags: trunk)
20:11
Size reduction and performance increase in the freeSpace() routine of btree.c. (check-in: 7d7aed05 user: drh tags: trunk)
2022-07-06
23:50
Fix harmless compiler warnings seen with MSVC. (check-in: 61e2094a 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: 587795d4 user: dan tags: trunk)
13:59
Avoid dropping error codes in the xBegin() method of virtual table sqlite_dbpage. (check-in: 570e2bce user: dan tags: trunk)
2022-07-05
19:56
Fix for builds with both SQLITE_DEBUG and SQLITE_OMIT_WINDOWFUNC defined. (check-in: dfe46de2 user: dan tags: branch-3.39)
19:53
Fix for builds with both SQLITE_DEBUG and SQLITE_OMIT_WINDOWFUNC defined. (check-in: 77916947 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: b12ddabf 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: 47749381 user: drh tags: trunk)
2022-07-04
15:14
Size reduction and performance optimization in sqlite3WalFindFrame(). (check-in: 1a8c2e54 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: a1c090e0 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 post 0107d5d40dd273e2, second issue. (check-in: 3c04d21e 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 post 96692f8ba5. (check-in: 7a32cccc 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 post 96692f8ba5. (check-in: c94595a6 user: drh tags: trunk)
11:16
Improved comment on sqlite3VdbeSwap(). No changes to code. (check-in: 6a8e4fb7 user: drh tags: trunk)
11:12
Remove debugging code that has always been commented out. Cosmetic change. (check-in: b5406417 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: 566b7842 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: bb179140 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. REVISED: Dbsqlfuzz found a case where the ALWAYS() is false. (Closed-Leaf check-in: bf34eddb user: drh tags: mistake)
2022-06-30
22:46
Small performance improvement to sqlite3_finalize(). (check-in: 8a6913b6 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: 0a9e08be user: drh tags: branch-3.39)
11:01
Add missing "finish_test" command to the end of test script merge1.test. (check-in: 13cb3f1e 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: 84a91c25 user: dan tags: trunk)
2022-06-28
21:52
Merge latest fixes from begin-concurrent-pnu-wal2 branch. (Leaf check-in: 77fe7376 user: dan tags: begin-concurrent-report-wal2)
2022-06-27
21:43
Merge in fix for wal2 recovery. (check-in: 41d4f14b 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. (check-in: f6eafb65 user: dan tags: wal2)
11:28
Fix a missing dependency for json.lo in Makefile.in (check-in: 65930a5c user: drh tags: trunk)
2022-06-25
21:41
wasm: corrected the isInt32() check to account for negative values. (check-in: 7223f4bb user: stephan tags: wasm-cleanups)
20:32
Put an ALWAYS() on an unreachable branch. (check-in: 58caa50a 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: 2cf373b1 user: drh tags: trunk)
19:30
Increase the version number to 3.40.0 so as to begin the next development cycle. (check-in: 4542e323 user: drh tags: trunk)
19:07
wasm: added bindings for sqlite3_extended_result_codes(), sqlite3_open_v2(), and the SQLITE_OPEN_... flags. (check-in: ac876ab9 user: stephan tags: wasm-cleanups)
18:55
Fix documentation type. forum post 8d900996ed. (check-in: 869061f1 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: e10d57df user: stephan tags: wasm-cleanups)
17:20
Merge version 3.39.0 into the reuse-schema branch. (check-in: bee9903d user: drh tags: reuse-schema)
17:08
Merge version 3.39.0 into the begin-concurrent-pnu-wal2 branch. (check-in: 09cfef38 user: drh tags: begin-concurrent-pnu-wal2)
16:53
Merge version 3.39.0 into the wal2 branch. (check-in: ad3a7005 user: drh tags: wal2)
16:43
Merge version 3.39.0 into the begin-concurrent-report branch. (check-in: 7726389c user: drh tags: begin-concurrent-report)
16:24
Merge version 3.39.0 into the begin concurrent branch. (check-in: fb45624a user: drh tags: begin-concurrent)
14:57
Version 3.39.0 (check-in: 14e166f4 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: 778062e3 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: da1d3151 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: 140618b2 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: 37a8fecb user: stephan tags: wasm-cleanups)
02:54
Minor wasm doc tweaks. (check-in: 42dc5008 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 post ed29e196d5c4f3d5. (check-in: cd6254fc 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: ab3e50da 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: 506a3e6f user: drh tags: reuse-schema)
15:26
Merge the latest changes into the begin-concurrent-pnu-wal2 branch. (check-in: d3fa6921 user: drh tags: begin-concurrent-pnu-wal2)
15:15
Merge 3.39.0 release candidate 1 into the wal2 branch. (check-in: 5a5e6e36 user: drh tags: wal2)
15:04
Merge the version 3.39.0 release candidate 1 changes into the begin-concurrent-report branch. (check-in: 1b28ad2c user: drh tags: begin-concurrent-report)
14:55
Merge 3.39.0 release candidate 1 changes into the begin-concurrent branch. (check-in: 5ae706a4 user: drh tags: begin-concurrent)
12:56
Fix a harmless UBSAN warning associated with PRAGMA schema_version found by OSSFuzz. (check-in: e93fd170 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 post c3496cf6b1. (check-in: db5266de 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: 8d9b1fff user: drh tags: trunk)
2022-06-23
22:43
New test cases for query flattening with LEFT JOIN. (Closed-Leaf check-in: 27f68e47 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: 641dfb91 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: f8fe936a user: drh tags: flatten-left-join)
12:36
Minor correction to a comment. No code changes. (check-in: 5fa00959 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: 83ff1a28 user: drh tags: trunk)
18:33
Fix requirements marks that changed due to typo fixes in the documentation. (check-in: 5247df05 user: drh tags: trunk)
15:55
More comment fixes. No changes to code. (check-in: 5c9133ef 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: edbe24e7 user: drh tags: trunk)
14:25
Additional enhancements to comments. No changes to code. (check-in: d9a32044 user: drh tags: trunk)
14:00
Give dbtotxt an option to prepend .open --hexdb (check-in: afeee612 user: larrybr tags: trunk)
12:54
Fix a typo in a comment. No changes to code. (check-in: ef9de201 user: drh tags: trunk)
2022-06-21
18:38
Disable the short-cut query planner if the NOT INDEXED modifier is used. Forum post 454d706296. (check-in: bd87d107 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 post 1a7fea4651. (check-in: 9322a7c2 user: drh tags: trunk)
12:54
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. We will use a different approach to address forum post 1a7fea4651. (Leaf check-in: 1f575841 user: drh tags: backout)
2022-06-20
19:12
Add an ALWAYS() macro to an always-true branch. (check-in: 364645d8 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 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: 238453ff 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: e615dbe0 user: drh tags: trunk)
12:42
The fix at [cab9b4cccd13bf0a] was incomplete, as demonstrated by forum post 57bdf2217d. This check-in should complete the fix. (check-in: fb0a23b6 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: 11162446 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: 66ca729b 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: d31e1cd2 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: eabbee4a 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: 5eb2c236 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: 0602a084 user: drh tags: trunk)
16:52
Do not run --query-invariants on statements that make use of sqlite_offset(). (check-in: c5ac4cbf user: drh tags: trunk)
16:39
Various fixes and improvements to the --query-invariants option of fuzzcheck. (check-in: 09aca89b user: drh tags: trunk)
16:32
Allow integers and floating point numbers to compare equal. (Closed-Leaf check-in: 0fe2e465 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: 2a7251ed 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: d1fc857b 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: 42b2e667 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: d9f82015 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 post 5610c17c3d. (check-in: f23a429d user: dan tags: trunk)
00:24
Tiny fiddle cleanups. (Closed-Leaf check-in: 01969ba5 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: 65c152d3 user: stephan tags: fiddle-indexeddb)
20:29
Minor fix to the query invariant testing logic of fuzzcheck. (check-in: 447e62a0 user: drh tags: trunk)
13:57
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 7f405fe2 user: drh tags: reuse-schema)
13:56
Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 82e7e836 user: drh tags: begin-concurrent-pnu-wal2)
13:44
Merge the latest trunk enhancements into the wal2 branch. (check-in: c8ad8699 user: drh tags: wal2)
13:44
Merge the latest trunk enhancements into the begin-concurrent-report branch. (check-in: 8b446d0b user: drh tags: begin-concurrent-report)
13:37
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 221e07ed user: drh tags: begin-concurrent)
2022-06-15
20:18
Improvements to query invariants in fuzzcheck. (check-in: 3a461f61 user: drh tags: trunk)
16:26
Improvements to query invariant checking in fuzzcheck. (check-in: 56c60a35 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: cd7a4412 user: drh tags: trunk)
12:50
Add the --query-invariants option to fuzzcheck. No changes to the SQLite core. (check-in: fef282f9 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: 988a2a75 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: d13b4621 user: drh tags: query-invariant-tests)
10:37
Improvements to query invariant testing. Almost working now. (check-in: e0398204 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: 0e925654 user: drh tags: trunk)
21:34
Add missing SQLITE_FCNTL_SIZE_HINT call to a path taken during transaction rollback. (check-in: 6c3266c1 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: ce2d7801 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: b1be2259 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 post 51e6959f61. (check-in: 342c501f 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: e25dad86 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 post 8e4c352937e82929. (check-in: cab9b4cc user: drh tags: trunk)
10:10
Fix a faulty assert() statement identified by forum post 0b91a75039. (check-in: 1f132bb0 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: c4523ffc 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 post 3d9caa45cbe38c78. (check-in: bbaf1f2e 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: 9e51a6c0 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 post 3d9caa45cbe38c78. Additional works is needed as not all cases are covered. (check-in: 08af1fe2 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: 5abb5ef5 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: 09c8f9f1 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: 8c9e2d63 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: f6c4fb48 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: c585d6a4 user: drh tags: right-join-query-flattener)
13:13
New test cases refute check-in [3f45007d544e5f78]. (check-in: 12d3c96c 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 post c4676c4956. (check-in: 615c0026 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: ccbd6e77 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: 5a107fd7 user: drh tags: trunk)
2022-06-07
13:09
Fix the query flattener to deal with a RIGHT JOIN corner case described by forum post 323f86cc30. (check-in: 3f45007d user: drh tags: trunk)
11:02
Test cases for forum post 323f86cc30 added to join8.test, though commented out so that they do not (yet) run. (check-in: 7f97cb67 user: drh tags: trunk)
10:14
Preserve the database encoding on the CAST operator in the sqlite3ValueFromExpr() routine. Forum thread 800eecf5e6cdc3f4. Test case in TH3. (check-in: 3f6a4420 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: 318543a9 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: f419e98c user: drh tags: outer-join-tests)
21:08
Extra test cases for outer joins. (check-in: c7505765 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 post 206d99a16dd9212f. (check-in: 4a31b794 user: drh tags: trunk)
15:22
In CLI, drop .dbinfo command when build options prevent it from working. (check-in: 4b50a551 user: larrybr tags: trunk)
14:00
Sync w/trunk, pickup fts3corrupt6.test change. (Closed-Leaf check-in: 268072f6 user: larrybr tags: dbinfo-guard)
06:29
fiddle: replaced the huge file selection widget with a smaller proxy button. (check-in: f7c17449 user: stephan tags: trunk)
06:17
Fix a test case in fts3corrupt6.test. Was failing due to [f1dfbc4f]. (check-in: 04b2e477 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: f28de5b7 user: stephan tags: trunk)
2022-06-05
22:58
In CLI, drop .dbinfo command when build options prevent it from working. (check-in: 2512d2f6 user: larrybr tags: dbinfo-guard)
22:40
Create new branch named "dbinfo-guard" (check-in: 8d942ba7 user: larrybr tags: dbinfo-guard)
2022-06-03
14:08
Fix to test case in fts3corrupt.test. No changes to source code. (check-in: d18818af user: dan tags: trunk)
13:52
Fix a 1-byte overread in fts3 that could occur when processing corrupt records. (check-in: f1dfbc4f 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: 2a952c77 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: 8eb9a7dd user: mistachkin tags: trunk)
2022-06-01
20:08
New test cases for row values and RIGHT JOIN. (check-in: 5f0582b9 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 post 087de2d9ec87305b. (check-in: 5a9465dc 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: 5933163e 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: e4e71b4c user: drh tags: row-value-right-join)
14:52
Minor tweaks to, and consolidation of, the wasm-related build flags. (check-in: f0ad6b1b user: stephan tags: trunk)
14:32
Fix a minor problem in the Tcl "incrblob" command. This does not affect the SQLite core. (check-in: e96feccc user: dan tags: trunk)
13:32
Candidate fix for the problem with row-value WHERE clause constraints on a RIGHT JOIN. (check-in: fdd782a7 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: 382cd7e1 user: drh tags: trunk)
13:01
Fix a typo in a comment in a test case. No changes to code. (check-in: 570efa45 user: drh tags: row-value-right-join)
11:58
Additional enhancements to the test cases. (check-in: 55cfad74 user: drh tags: row-value-right-join)
11:46
Fix test cases in the previous check-in to make them postgres-compatible. (check-in: f223ba72 user: drh tags: row-value-right-join)
11:43
Test case for forum post 087de2d9ec showing a problem when a row-value constraint is used with RIGHT JOIN. (check-in: d1e3e0d2 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: 371d6f74 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: 1c9812c4 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: d9efe3e9 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: f6d6f969 user: stephan tags: trunk)
2022-05-31
18:18
New FULL JOIN test cases. No changes to code. (check-in: 13e89ef6 user: drh tags: trunk)
17:24
More JOIN test cases inspired by the problem fixed in [3869fd9a2b9483cb]. (check-in: f2d224c5 user: drh tags: trunk)
15:18
Fix an assert that is incorrect for a corrupt database. (check-in: fe0a8408 user: drh tags: trunk)
14:19
Many new PG-confirmed test cases in joinD.test. (check-in: 481e89c7 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 post c2554d560bac97c5. (check-in: f407ec67 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: aba52a90 user: drh tags: right-join-bug-20220531)
10:48
Add test cases for forum post c2554d560bac97c5. (check-in: e66d5ae8 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: 40925585 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 post 3902c7b833. (check-in: 3869fd9a user: drh tags: trunk)
2022-05-28
15:01
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 4d46296e user: drh tags: reuse-schema)
14:51
Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 4d65f45b user: drh tags: begin-concurrent-pnu-wal2)
14:44
Merge the latest trunk enhancements into the wal2 branch. (check-in: 934656f1 user: drh tags: wal2)
14:32
Merge the latest trunk enhancements into the begin-concurrent-report branch. (check-in: 034d2c51 user: drh tags: begin-concurrent-report)
14:25
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: d6f6ee5c user: drh tags: begin-concurrent)
14:03
Apply the UPDATE-FROM file from check-in [98b3816bbaf539ea] to update-delete-limit builds. (check-in: 7e87892c 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: fd668da5 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: 2ba429a4 user: stephan tags: trunk)
2022-05-27
18:06
Mark an always-true conditional as ALWAYS(). (check-in: 3492fe8a user: drh tags: trunk)
17:36
Minor simplification to ALTER TABLE logic. (check-in: 01beb036 user: drh tags: trunk)
17:13
Corrected a broken HTML comment (was using a C-style comment closer). (check-in: db742e3e user: stephan tags: trunk)
15:33
Fix another problem with ALTER TABLE and UPDATE...FROM in triggers. (check-in: 33cf1223 user: dan tags: trunk)
15:04
Fix further issues with ALTER TABLE and triggers that contain UPDATE..FROM statements. (check-in: 53fbc269 user: dan tags: trunk)
14:41
Omit an unnecessary branch. (check-in: f56473f9 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: d100283e user: stephan tags: trunk)
2022-05-26
19:10
Fix issues with ALTER TABLE and triggers containing "UPDATE...FROM" statements. (check-in: 2fba0d41 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: 664a49fa 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: f22f41d2 user: drh tags: trunk)
05:18
Fixed a minor cut/paste mistake in the previous checkin. Affects only internal docs. (check-in: 37e37648 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: 1a159159 user: stephan tags: trunk)
2022-05-25
13:10
Slight increase in the accuracy of log10(). (check-in: c48a735b 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 post 5cfe08eed6. (check-in: 4be0c60e user: drh tags: trunk)
11:17
Add in a VdbeCoverage() macro accidentally omitted from [d64ae49a1f251317]. (check-in: 18b5cea0 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: 98b3816b 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: dd83cc05 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: 3d6245c6 user: stephan tags: trunk)
04:35
Add the ability to import/export db files into/from fiddle. (check-in: e0c30438 user: stephan tags: trunk)
04:20
Further minor cleanups and docs in the fiddle app and worker. (Closed-Leaf check-in: 199e0179 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: cd227be8 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: a124e4f9 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: 7c7fd34c 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: 0fa8378c 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 thread 687b0bf563a1d4f1 for details. (check-in: 2b6ebba2 user: drh tags: trunk)
14:45
Use more descriptive var names in ext/fiddle/Makefile. (check-in: 2f9a42fb 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: ed19fef3 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: 526c8c72 user: stephan tags: trunk)
00:35
wasm/JS: documented DB.selectValue() and corrected the fetching of NULL columns via Stmt.get(). (check-in: 70f91fab user: stephan tags: trunk)
00:22
wasm/JS: added support for scalar UDFs. Fixed a deallocation problem with bind()ed strings/blobs. (check-in: 325a9ee3 user: stephan tags: trunk)
2022-05-23
19:38
wasm: minor refactoring and doc updates. (check-in: 6044605b 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: 107e3497 user: stephan tags: trunk)
13:55
wasm: added missing 'use strict' and fixed an undeclared var use caught by that. (check-in: c16a7f49 user: stephan tags: trunk)
13:52
wasm: corrected isSupportedBindType() to behave as documented. (check-in: 7e2d2e80 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 thread e90a8e6e6fa652ac. (check-in: 2c586060 user: drh tags: trunk)
11:51
Add an assert() to clear a harmless static-analyzer warning. (check-in: 919ba2f0 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: d64ae49a 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: 392e8482 user: stephan tags: trunk)
2022-05-22
22:10
WASM: an arg handling fix for DB.exec({multi:true...}). (check-in: 0d6332f7 user: stephan tags: trunk)
22:00
WASM: added exec(), execMulti(), and several getters. Various touchups and fixes. (check-in: b790c91b 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: 601dc3fa 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: f3bc0328 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: 84c8f63a 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: dea098b6 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: c7cfdd4c 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: 16bf3506 user: drh tags: deferred-materialize)
15:54
Fix a typo in a comment. (check-in: 34d7045b 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: cebd4fd6 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: 5ff33268 user: stephan tags: trunk)
00:45
fiddle: add a selection list of example queries. (check-in: 74abf039 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: 31706ef8 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: 67e40d99 user: stephan tags: trunk)
13:27
Add a terminal-style view to the fiddle app, based on jquery.terminal. (Leaf check-in: 82b57f2e user: stephan tags: fiddle-terminal-view)
2022-05-19
22:04
#if'd out the '.nonce' and '.check' commends in WASM builds. (check-in: 326f79ea user: stephan tags: trunk)
21:56
#if'd out the the '.cd' and '.clone' commands for WASM builds. (check-in: fa391868 user: stephan tags: trunk)
18:14
fiddle: consolidated two duplicate CSS rules. Internal doc typo fix. (check-in: d3175a79 user: stephan tags: trunk)
17:47
Added a disclaimer about fiddle's experimental and subject-to-change/removal nature. (check-in: 75b4f574 user: stephan tags: trunk)
16:59
Merge the changes to support the "fiddle" extension. (check-in: 58585f01 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: 56b82ae8 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: d46a6cb9 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: eae3ab10 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: 362d236a 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: 1aad3642 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: 4609a4f8 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: 1d8d0593 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: b5fa12f8 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: d3d8ea01 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: 1a1e4e7f 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: 6661d605 user: stephan tags: fiddle)
00:38
#if'd out the '.import' command in WASM builds. Several minor cosmetic UI tweaks. (check-in: e4f87eb7 user: stephan tags: fiddle)
2022-05-18
23:40
#if out the '.load' command in WASM builds. Several UI layout tweaks. (check-in: 67d98297 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: bee436e6 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: bf06ddf4 user: stephan tags: fiddle)
20:44
Experimental code to provide a SIZE_HINT when writing the -wal file. (Leaf check-in: 3b29080d user: drh tags: wal-size-hint)
18:10
Code style fixes: s/char const/const char/. (check-in: 9bf042b2 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: 4eec0545 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: 281aaae7 user: stephan tags: fiddle)
17:14
Initial version of an sqlfiddle-style application using a WASM build of the sqlite3 shell. (check-in: af9c21c9 user: stephan tags: fiddle)
2022-05-17
15:33
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 495f0353 user: drh tags: reuse-schema)
15:11
Fix harmless compiler warnings in the new unixFullPathname implementation. (check-in: f7e1ceb5 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: d8b249e8 user: dan tags: trunk)
14:59
Add the sqlite3_db_name() interface. (check-in: 2ad15223 user: drh tags: trunk)
2022-05-16
16:55
Add memory barriers to multi-threaded code in test4.c. (check-in: 9260f4e0 user: dan tags: trunk)
16:10
Fix a problem in test file swarmvtab3.test causing occasional failures. (check-in: f935c155 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: 2277f9ba user: drh tags: trunk)
17:40
Improved debugging comment generation for the OP_Column opcode. (check-in: 3e073bfd 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 post c06b10ad7e. (check-in: 9d17233c user: drh tags: trunk)
2022-05-13
23:01
Change an unreachable branch into an assert(). (check-in: 778e57a5 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: 0f96810b 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: 12ee29d6 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 post 41cc3851d864c5e6. (check-in: 238d9c24 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: 6f741d6c 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: 2f4456f6 user: drh tags: trunk)
15:31
New test cases for outer joins. Case joinE-32 currently gets an incorrect answer. See forum post 41cc3851d8 for the bug report. (check-in: 02b24863 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: 1ffea07f user: drh tags: trunk)
2022-05-12
17:09
Fix a harmless compiler warning in the CLI. (check-in: 7a2ac303 user: drh tags: trunk)
11:56
Ensure that ON clauses are applied to the correct outer join. (check-in: c7e3a13a 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: db27611e 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: cf7fdabd user: drh tags: trunk)
2022-05-11
20:29
Zap stray --help output from intermediate version. (Closed-Leaf check-in: deb7372b 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: c1eff632 user: larrybr tags: echo-sql)
17:57
The unix interface now resolves all symbolic links in filenames before actually using those filenames. (check-in: d55273e3 user: drh tags: trunk)
17:45
Use osReadlink() in os_unix.c, not readlink() directly. (Closed-Leaf check-in: c3da4c16 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: 40c9273d 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: df842ebc user: larrybr tags: trunk)
03:29
Sync w/ trunk (Closed-Leaf check-in: 1284225b 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: 764b7126 user: drh tags: trunk)
22:32
Make tester.tcl work on more Windows Tcl installations. And sync w/ trunk. (check-in: d25fbdf8 user: larrybr tags: import-leak-plug)
18:43
New requirement marks. (check-in: e8479e56 user: drh tags: trunk)
18:18
Fix a stale requirement mark. (check-in: fcda7fb1 user: drh tags: trunk)
17:42
Fix a stale requirement mark. (check-in: 3eda4030 user: drh tags: echo-sql)
15:55
Fix a harmless UBSAN warning. (check-in: 8f935502 user: drh tags: trunk)
14:57
Sync w/ trunk (check-in: b7285f92 user: larrybr tags: echo-sql)
14:55
For CLI, add ".echo sql" dot-command. (check-in: 35cef458 user: larrybr tags: echo-sql)
13:06
Merge all recent trunk changes into the reuse-schema branch. (check-in: 9f6d6e61 user: drh tags: reuse-schema)
12:45
Merge the latest trunk enhancements into theh begin-concurrent-pnu-wal2 branch. (check-in: d28af1f8 user: drh tags: begin-concurrent-pnu-wal2)
12:39
Merge recent trunk enhancements into the wal2 branch. (check-in: 33d77fea 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: e6b5224d user: drh tags: begin-concurrent-report)
12:00
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: f65bd767 user: drh tags: begin-concurrent)
06:04
Sync w/trunk (check-in: 536691ed user: larrybr tags: import-leak-plug)
01:11
Cause most shell tests to be run under Tcl suite valgrind config. (check-in: cd085b36 user: larrybr tags: import-leak-plug)
00:24
Simplified "hidden" and "no-expand" handling in the *-expander. (check-in: c6c3115f 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: c0135441 user: dan tags: begin-concurrent-report-wal2)
18:33
Create new branch named "echo-sql" (check-in: 042f2935 user: larrybr tags: echo-sql)
17:55
Minor STAT4 test case change due to the ANALYZE enhancement of [eb59c46a5aed69bc|check-in eb59c46a5aed69bc]. (check-in: 8ce2fecb user: drh tags: trunk)
16:29
Add ALWAYS() on two unreachable branches in the * expander. (check-in: 387c8523 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: 093b6084 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: d2717348 user: drh tags: trunk)
12:29
Simplify .import leak plug and arrange for CLI to be run under valgrind. (check-in: 0d3e2380 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: f5f09368 user: larrybr tags: import-leak-plug)
02:21
Create new branch named "import-leak-plug" (check-in: 4a4cecab 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: dac6d87c user: drh tags: trunk)
17:06
Merge the 3.38.5 fix into the 3.38 subbranch of reuse-schema. (Leaf check-in: bfccca2b 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: 0586b3e9 user: drh tags: begin-concurrent-wal2-3.38)
15:25
Version 3.38.5 (Leaf check-in: 78d9c993 user: drh tags: release, version-3.38.5, branch-3.38)
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: 7fcdb760 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: 217b3323 user: drh tags: trunk)
2022-05-05
10:04
Update the version number to 3.38.5 (check-in: bf73b57f user: drh tags: branch-3.38)
10:03
Backout check-in [9fb20a21feb8f697] which was incorrect. (check-in: 66f65b32 user: drh tags: branch-3.38)
10:02
Backout check-in [9fb20a21feb8f697] which was incorrect. (check-in: 99225618 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) (check-in: 9b37e0be user: larrybr tags: cli_extension)
2022-05-04
18:43
Improvements for name resolution for parenthsized joins. (check-in: 006b2d9c 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: 67510354 user: drh tags: trunk)
17:30
Code EP_InnerJoin constraints at the same time that EP_FromJoin constraints are coded. (Closed-Leaf check-in: b57033d2 user: drh tags: joinD)
16:46
Merge version-3.38.4 into the reuse-schema-3.38 subbranch. (check-in: d5b0fd84 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: 8473718d user: drh tags: begin-concurrent-wal2-3.38)
15:45
Version 3.38.4 (check-in: d402f498 user: drh tags: release, version-3.38.4, branch-3.38)
14:46
Merge ON-clause constraint usage fix from trunk into the joinD branch. (check-in: 0a20d4a8 user: drh tags: joinD)
14:45
Fix ON-clause constraint usage for FULL and RIGHT JOINs. (check-in: 544268a7 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: befa8cbc user: drh tags: joinD)
03:48
Fix CLI use of wrong allocator for free(). (check-in: 4f83c442 user: larrybr tags: branch-3.38)
03:45
Fix CLI use of wrong allocator for free(). (check-in: 9fb20a21 user: larrybr tags: trunk)
02:01
In the query planner, do not let tables commute across any outer join. (check-in: 8cee5388 user: drh tags: trunk)
2022-05-03
21:58
Typos cleared from README.md (check-in: be3a1879 user: larrybr tags: trunk)
19:51
Fix multi-byte column name rendition on .import and display of NULL in columnar modes. (check-in: f863aabe user: larrybr tags: branch-3.38)
16:26
Merge Bloom filter bug fix from trunk into the right-join branch. (Closed-Leaf check-in: 72131ad1 user: drh tags: right-join)
16:18
Fix a typo in a comment. (check-in: c19c3c48 user: drh tags: right-join)
14:26
Increase the version number to 3.38.4. (check-in: def971a0 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 thread 2482b32700384a0f. (check-in: 3dc9fc2f 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 thread 2482b32700384a0f. (check-in: 6eda9b1a 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 post 2482b32700. (check-in: 8f8a58fe 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: 5341d4bb user: drh tags: right-join)
20:14
Merge trunk fixes into the right-join branch. (check-in: e01f4c05 user: drh tags: right-join)
20:04
Improved comments. (check-in: 158b80be 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: 6f9c0b07 user: drh tags: right-join)
15:47
Remove a testcase() macro taht was made obsolete by [a8da85c57e07721d]. (check-in: 053cf45e user: drh tags: trunk)
15:31
Document (in comments) that the SQLITE_FlttnUnionAll bit has a specific value needed by TH3. (check-in: bcaa4a44 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: daff6070 user: drh tags: trunk)
15:10
Merge the latest trunk fixes and enhancements into the right-join branch. (check-in: afbcf075 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: cc458317 user: drh tags: trunk)
11:24
Bring the comments on sqlite3FindInIndex() into closer alignment with what that routine actually does. (check-in: 40f32747 user: drh tags: trunk)
2022-05-01
14:26
Remove FILE* from shell extension interface. (check-in: 27ff5ce5 user: larrybr tags: cli_extension)
04:55
Get sqlite3x.exe and extensions tested with MSVC build. (check-in: d2b16c29 user: larrybr tags: cli_extension)
2022-04-30
19:55
Defensive code in sqlite3TreeViewWindow() to fix a compiler warning. (check-in: b250c218 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: a1937497 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. Later: The fuzzer finds memory leaks with this version. (Closed-Leaf check-in: ad32da80 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 thread 7efabf4b03328e57 for details. (check-in: ef72f9e2 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 thread 7efabf4b03328e57 for details. (check-in: a8da85c5 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: bb2798be 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: aec1e4cd user: drh tags: trunk)
2022-04-29
21:38
For Tcl extension, get Tk option into MSVC build. (check-in: c3494fa7 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: 56dd3065 user: drh tags: trunk)
18:36
Get MSVC build going for sqlite3x.exe and extensions. And sync w/trunk. (check-in: cd5e57e0 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: 7b4a0d0f user: drh tags: trunk)
17:13
Multiple enhancements to the TreeView output for SrcItem, cherrypicked from the right-join experimental branch. (check-in: 293afa81 user: drh tags: trunk)
17:03
Show the USING clause as part of the tree-view display of SrcItem. (check-in: 9cba3ce5 user: drh tags: right-join)
12:09
Minor typo fix in a comment, for the benefit of broken IDE syntax highlighters. (check-in: 680ccecb user: drh tags: trunk)
2022-04-28
18:33
Fix problem with SQLITE_OMIT_VIRTUALTABLE builds. (check-in: a99ee612 user: dan tags: trunk)
18:17
In treeview.c, show the columns of the table associated with each SrcItem. (check-in: 3aafccb5 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: c8680491 user: drh tags: right-join)
12:52
Merge trunk enhancements into the right-join branch. (check-in: 3fd9706b 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: 0c2da4ff user: drh tags: mkfileholesz)
18:38
Fix a harmless typo in a comment. (check-in: e1f4a115 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: eb59c46a user: drh tags: trunk)
13:33
Fix a test problem in rbubusy.test causing a crash under some circumstances. (check-in: bc5bbd9f user: dan tags: trunk)
13:12
Merge the version 3.38.3 fixes into the reuse-schema-3.8 subbranch. (check-in: 436d0a58 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: 5590f0a4 user: drh tags: begin-concurrent-wal2-3.38)
12:03
Version 3.38.3 (check-in: 9547e2c3 user: drh tags: release, version-3.38.3, branch-3.38)
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: b9c7d2c1 user: drh tags: branch-3.38)
19:48
Cherry-pick various minor fixes from trunk into branch-3.38. (check-in: fece097c user: drh tags: branch-3.38)
19:16
Update corruptL.test so that it works with SQLITE_ENABLE_OVERSIZE_CELL_CHECK builds. (check-in: b1bec720 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: fb7e1a07 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: 9caca6cb user: drh tags: branch-3.38)
21:22
Increase the version number to 3.38.3. (check-in: b113afa2 user: drh tags: branch-3.38)
21:21
Fix a problem with automatic indexes introduced by check-in [664b461bb5063d980] and reported by forum post 0d3200f4f3bcd3a3. (check-in: 4fbb9ffe user: drh tags: branch-3.38)
20:56
Fix a problem with automatic indexes introduced by check-in [664b461bb5063d980] and reported by forum post 0d3200f4f3bcd3a3. (check-in: 134cfb18 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: 05917bfa 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: 10bf0e61 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 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: 7ca3456c 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: c0f9ebab user: drh tags: trunk)
14:49
Avoid unintended side-effects on Parse.nSelect in the sqlite3ViewGetColumnNames() routine. (check-in: 59789fe1 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 post 28821db852. (check-in: bd6811d8 user: drh tags: trunk)
2022-04-24
20:00
Get CLI conformed to revised doc for it, and take recent fixes. (check-in: 60e85c7e user: larrybr tags: cli_extension)
2022-04-23
19:26
Merge enhancements and fixes from trunk into the right-join branch. (check-in: 2fb165cf 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: 3aefc874 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: 45fe9192 user: drh tags: trunk)
18:34
Fix false-positives in sqlite3VdbeNoJumpsOutsideSubrtn(). All tests pass now. (Closed-Leaf check-in: 1300d978 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: 2c5bb2bf 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: f6ab6796 user: drh tags: right-join)
07:31
Correctly resolve left and right USING columns of an outer join in a parenthesized subjoin. (check-in: ea91aba8 user: drh tags: right-join)
07:29
Fix minor problems with the new join table name resolution logic. (Closed-Leaf check-in: 3a6b0db4 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: c3a42757 user: drh tags: right-join-colnames)
19:52
Merge the latest enhancements and fixes from trunk onto the right-join branch. (check-in: 7f898334 user: drh tags: right-join)
18:07
Make use of the "%!S" format when running ExplainSubquery. (check-in: 9425d79c 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: a2d3ee92 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: 8d631a6b user: drh tags: trunk)
15:18
Add test cases to check the handling of SQLITE_BUSY in rbu. (check-in: 6fccc733 user: dan tags: trunk)
13:34
Simplification of data structures in the wildcard expander for SF_NestedFrom queries. (check-in: f7c18262 user: drh tags: trunk)
12:46
Minor simplification to the result-set wildcard expander for SF_NestedFrom. (check-in: d942530a user: drh tags: right-join)
09:57
Merge the latest trunk fixes into the right-join branch. (check-in: c74dc574 user: drh tags: right-join)
2022-04-21
23:34
Previous fix to join8.test needs a return. (check-in: 7b4cd705 user: drh tags: trunk)
23:01
Disable join8.test if the build lacks support for virtual tables. (check-in: 94e1916a user: drh tags: trunk)
19:38
Add support for RIGHT and FULL JOIN. (check-in: f766dff0 user: drh tags: trunk)
19:25
Fix harmless compiler warnings. (check-in: 29255664 user: drh tags: right-join)
19:20
Fix a harmless uninitialized variable warning in MSVC. (check-in: b870d2a2 user: drh tags: trunk)
19:14
Fix harmless compiler warnings in the CLI. (check-in: dfd2100b 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: fd328e52 user: drh tags: right-join)
14:08
Ensure correct fg.isNestedFrom values even on crazy parses. (check-in: e611e8e6 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: cd8272fc 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: 6b326b3b user: drh tags: right-join-paren)
01:49
Attempting to improve name resolution for parenthesized FROM clauses. Only partially working. (check-in: 959b7182 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: 77aed891 user: larrybr tags: trunk)
21:58
Try to avoid materializing unused columns when processing a parenthesized FROM clause. (check-in: 07906e3c user: drh tags: right-join-paren)
18:12
Small correction to the new bUsed logic of sqlite3ProcessJoin(). (check-in: ba04142e user: drh tags: right-join)
16:54
Merge window function fix from trunk. (check-in: b6b9e185 user: drh tags: right-join)
16:53
Remove an unnecessary assignment operation. (check-in: ed46527a 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: 9430ead7 user: dan tags: trunk)
16:26
Comment fixes and improvements in sqlite3ProcessJoin(). (check-in: 1118655f user: drh tags: right-join)
15:07
Improved tracking of nested SELECT objects used to implement parenthensized FROM terms. (check-in: 0da22326 user: drh tags: right-join)
12:15
Also show the ENAME_SPAN value in sqlite3TreeViewExprList(), if there is one. (check-in: c1d42861 user: drh tags: right-join)
12:14
Improved TreeView output for ExprList: Show the ENAME_TAB value, if there is one. (check-in: eb3f883b user: drh tags: right-join)
12:02
Add a new comment to the body of lookupName(). No code changes. (check-in: 22fa9b9b user: drh tags: right-join)
2022-04-19
23:00
Merge the ALTER TABLE fix from trunk. (check-in: d5ceaef3 user: drh tags: right-join)
20:47
Fix a problem in ALTER TABLE with handling "table.*" expressions within SELECT statements in triggers. (check-in: 24755fd0 user: dan tags: trunk)
19:51
Improved comment on the JF_LTORJ constant definition. (check-in: e0744da9 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: 63b8f8ae user: drh tags: right-join)
15:56
Mark an unreachable "just-in-case" branch as unreachable. (check-in: b966d524 user: drh tags: right-join)
15:01
Add 512 new join test cases derived from PostgreSQL output. (check-in: 78d58e46 user: drh tags: right-join)
09:39
Remove unnecessary cases for the resolver. (check-in: 5bc9aa68 user: drh tags: right-join)
02:03
Add the omitted "finish_test" to the end of joinA.test. (check-in: 0907505c user: drh tags: right-join)
00:24
New test cases for RIGHT and FULL JOIN. (check-in: 5c2f670e 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: 837322aa user: drh tags: right-join)
22:51
New test cases, including one that gets a different result than Postgres. (check-in: 49ea11a4 user: drh tags: right-join)
19:48
Disable the unused EU4_EXPR mode for the IdList object. (check-in: 5bcf4aa3 user: drh tags: right-join)
19:34
Even more test cases. (check-in: 5f4310a1 user: drh tags: right-join)
19:28
New test cases for parenthesized NATURAL FULL JOINs. (check-in: e34250ef 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: d173edc2 user: drh tags: right-join)
16:23
Merge the btree bug-fix from trunk. (check-in: a333c0b5 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: aab7665c 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: 95b242d4 user: drh tags: right-join)
15:56
Avoid an assert() failure in allocateSpace() triggered by a corrupt database. dbsqlfuzz f022eb0ce64d27808574d1dcde5cf7d002dabde8. (check-in: 2de7f8cc user: dan tags: trunk)
14:41
Merge the latest fixes from trunk. (check-in: 1ba3b3cc user: drh tags: right-join)
14:15
Improved comment field in the bytecode generated for OP_Column and OP_Rowid. (check-in: 1b2c5cef user: drh tags: trunk)
13:57
Improved comment field in the bytecode generated for OP_Column and OP_Rowid. (check-in: 009bbf80 user: drh tags: right-join)
13:08
New RIGHT JOIN test cases, one of which is currently failing. (check-in: 9168cbbe 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: 829d49f2 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: 1549dcd2 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: 07ed0dca 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: 0ccb224e user: drh tags: right-join)
00:57
Fix to the coalesce() function generation in the resolver. (check-in: 584bd55e 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: e62156b6 user: drh tags: right-join)
2022-04-17
23:46
Fix to the logic that computes coalesc() functions to resolve USING terms. (check-in: 20388548 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: 71abe564 user: drh tags: right-join)
21:03
Get docs caught up with the .shxload change. (check-in: e2196448 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: c9060232 user: drh tags: right-join)
19:22
Move shell extension load functionality into its own .shxload command for usage and code simplicity. (check-in: e2c8c88b 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: 9fd3f22e user: drh tags: right-join)
00:48
For sqlite3x, rudimentary testing in place as make target shellxtest . More to come. (check-in: b73928be 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: bd5fd684 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: 9ffc2b23 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: 6d5d6e04 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: a7babf75 user: drh tags: right-join)
17:53
Make shell auto-column work with lots of columns when log() is missing. (check-in: 82366436 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: 04d5b637 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: 4c3ce647 user: drh tags: right-join)
12:40
RIGHT JOIN USING now appears to work the same as PG-14. Legacy tests pass. (check-in: 5bfb8624 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: d238fcf4 user: larrybr tags: cli_extension)
19:53
Revamp the USING clause processing so that it works (mostly) with RIGHT and FULL JOIN. (check-in: 719c8d92 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: b8e71766 user: drh tags: right-join-using)
19:27
Progress toward a working USING for FULL JOIN. (check-in: fed2646a 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: 91530990 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: 8378e1e0 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: 40f3c958 user: drh tags: right-join)
15:15
Add the "3" in the name of the sqlite3ProcessJoin() function. (check-in: b925f72b 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: 2c4ee723 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: 12645f10 user: drh tags: trunk)
19:05
Another instance of indenting a subroutine. (check-in: 73f4036b 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: 647211e0 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: 9b9038bc 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: 079b7b12 user: drh tags: right-join)
14:58
Disable autoindexing for the RIGHT JOIN loop. (check-in: 402a89e3 user: drh tags: right-join)
14:40
Adjust assert() statements to account for the new always-NULL cursor type added by [4526c5d316508093]. (check-in: 7822faa4 user: drh tags: right-join)
14:19
Previous check-in accidentally inverted a test on an assert(). Fix that. (Closed-Leaf check-in: 5ec4f806 user: drh tags: right-join-fix, right-join)
12:59
Fix assert() statements associated with artifical null-value cursors created by RIGHT JOIN. (check-in: f5bce5f1 user: drh tags: right-join-fix, right-join)
2022-04-13
19:00
Fix a harmless (false-positive) unused variable compiler warning on MSVC. (check-in: 63b04c63 user: drh tags: right-join)
18:32
Make the sqlite3TreeViewSrcList() routine a no-op if called with a NULL SrcList object. (check-in: 185d2720 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: 371ddc97 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: 4526c5d3 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: 7ed2a271 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: fa9d206f 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: d168f245 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: dbd8e2e4 user: drh tags: trunk)
03:48
Extension interface cleanup, and rename MetaCommand to DotCommand (to better match docs) (check-in: f78d7b8b user: larrybr tags: cli_extension)
01:52
Add missing VdbeCoverage() macros on new branch byte-code opcodes. (check-in: 218c7167 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: 61259050 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: ab0a0562 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: beeecf16 user: drh tags: right-join)
17:43
Merge the latest enhancements from trunk into the right-join branch. (check-in: b3e57ba1 user: drh tags: right-join)
17:02
Earlier detection of corruption in balance_nonroot(). dbsqlfuzz 9191ade77ebd3b7a3356e074957aa85b0c669d14. (check-in: bff4f083 user: dan tags: trunk)
14:23
The multi-index OR optimization does not work for RIGHT join, so disallow it. (check-in: 34c2f7b2 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: a3d14e61 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: 09c5a4ec user: dan tags: trunk)
10:06
Further clarification of Tcl extension intro. (check-in: 29ab6e90 user: larrybr tags: cli_extension)
2022-04-11
23:08
Tcl extension doc, minor clarifications and spelling improvements (check-in: 6ccdd9b7 user: larrybr tags: cli_extension)
23:01
Fix CLI mishandling of SQL "execute" tokens, go and / (check-in: 1a117b03 user: larrybr tags: cli_extension)
21:00
Fix RIGHT JOIN for virtual tables. (check-in: 75a9116e 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: 8e02cdf5 user: drh tags: right-join)
18:54
New test cases added. (check-in: bdd1499c user: drh tags: right-join)
18:42
Fix mis-renditions of help text. (check-in: 1a7a6b6f 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: b6e773a2 user: drh tags: right-join)
14:43
Do not attempt the LEFT JOIN strength reduction optimization on a FULL JOIN. (check-in: 7ef3e99a user: drh tags: right-join)
14:26
Show LEFT and RIGHT JOIN processing in the EXPLAIN QUERY PLAN output. (check-in: d91faeff user: drh tags: right-join)
13:13
New test cases. (check-in: d5f6791b 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: 0f6f61c3 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: 5be5ede5 user: drh tags: right-join)
11:48
Merge the Expr.w.iJoin name change from trunk into the right-join branch. (check-in: 29927926 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: e8c00442 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: ccb61fb1 user: drh tags: right-join)
08:07
Add embedded doc, Intro to Tcl Extension (check-in: 33591833 user: larrybr tags: cli_extension)
00:54
Show the JT_LTORJ flag in TreeView debugging output. (check-in: 21eb4491 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: 5aa0c9ea 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: beb4401d 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: cf00ebfc 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: a48902c7 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: f84b2bec user: drh tags: right-join)
17:14
More test cases and bug fixes. (check-in: 140e97fd user: drh tags: right-join)
16:13
More RIGHT JOIN test cases and a bug fix. (check-in: 19e8ad69 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: 2596e7c4 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: f2201d5d user: drh tags: right-join)
19:39
Sync w/trunk, for .import fix. (check-in: 861ab023 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: 21e96600 user: larrybr tags: trunk)
18:48
Bug fixes. A basic FULL OUTER JOIN now works. (check-in: 34bbeeb7 user: drh tags: right-join)
14:57
Get tclshext made with Tk, optionally, and make unknown work as in tclsh. (check-in: 43eb311e 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: 2db5a498 user: drh tags: right-join)
12:27
The interior of the RIGHT JOIN loop is now a subroutine. (check-in: 549f5a7e 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: 55b45431 user: drh tags: right-join)
03:12
Merge the sqlite3WhereMalloc() routine from trunk into the right-join branch. (check-in: b1b3845a user: drh tags: right-join)
03:12
Fix TCL extension build issue. (check-in: 0b3bb0e7 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: f237e1d8 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: 2cd49df5 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: 415abd67 user: drh tags: right-join)
17:01
Enhance the sqlite_dbpage fix at 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: 8efd61e8 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: 48f2e5a1 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: 32ae9ee7 user: drh tags: foreachrow-statement)
10:35
Tokenizer and grammar rules sufficient for the MERGE command. (Leaf check-in: 2deee326 user: drh tags: merge-statement)
04:24
Sync w/trunk, including all CLI updates (check-in: ad8b48d6 user: larrybr tags: cli_extension)
03:40
For shell, silence some clang warnings, and cure one bona-fide gripe. (check-in: 52be8668 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: aa785473 user: larrybr tags: cli_extension)
2022-04-07
20:45
Fix two unreachable branches introduced by the recent sqlite3TriggersExist() optimization. (check-in: 1b5475d2 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: c2965fea 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: fa527672 user: drh tags: trunk)
14:13
Fix the parsing of C-style comments in Lemon, as reported by forum post b6edc69548. This has no affect on SQLite itself. (check-in: 201569e0 user: drh tags: trunk)
14:03
Optimization to sqlite3TriggersExist() saves over 700K CPU cycles. (check-in: 5043a350 user: drh tags: trunk)
13:48
Avoid compiler warnings about the new sqlite3Show() debugging routines begin "defined but not used". (check-in: 47ddc269 user: drh tags: trunk)
12:10
Omit an unnecessary initialization in tokenExpr(). (check-in: 8f6ae686 user: drh tags: trunk)
10:11
Fix harmless compiler warnings. (check-in: 61095b5b 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: 158156a3 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: 848b7a0e user: drh tags: trunk)
18:30
Improvements to the display of AST for DML statements. (check-in: 84c239a0 user: drh tags: trunk)
17:07
Get shell.c past clang preprocessor, silently. (check-in: 588c3512 user: larrybr tags: cli_extension)
16:47
Add sqlite3x target to other makefiles. (check-in: efc9f08d user: larrybr tags: cli_extension)
16:19
Add sqlite3x build target. Cure CLI build warning. Tweak CLI test. (check-in: 45736d46 user: larrybr tags: cli_extension)
15:41
Attempt to show triggers in the TreeView output from DELETE, INSERT, and UPDATE statements. (check-in: b0939d6f user: drh tags: trunk)
12:54
Corrections and updates to the header comment describing the TriggerStep object. No changes to code. (check-in: abb34c08 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: bc33168c 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: 393fa32e user: drh tags: trunk)
10:37
Add additional tree display routines for DELETE and UPDATE. No changes to deliverable code. (check-in: fbd288ff 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: f3084122 user: drh tags: trunk)
2022-04-04
20:20
Small performance and size improvement to OP_Found. (check-in: 81587a18 user: drh tags: trunk)
19:58
Tag an always-taken branch using ALWAYS(). (check-in: ad8bc3d7 user: drh tags: trunk)
19:43
Optimizations to the OP_Found opcode save about 600K cycles in speedtest1. (check-in: 5c3357ad user: drh tags: trunk)
18:17
Use unpacked keys for OP_Found in foreign key processing. (check-in: 328dc766 user: drh tags: trunk)
17:27
For shell extension writers, reduce boilerplate (mimicing SQLITE_EXTENSION_INIT# macros) (check-in: 76120813 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: 4a1553b5 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: 0fbbe788 user: drh tags: trunk)
14:24
Fix the JSON Path parser so that it will accept zero-length object labels. Forum thread c082aeab43. (check-in: 84fe95d2 user: drh tags: trunk)
11:38
Performance optimization and stronger assert()s in the comparison opcodes. (check-in: e0305e64 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: fa492ff5 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: c6947a96 user: drh tags: trunk)
2022-04-03
22:35
Performance optimization in the sqlite3VdbeHalt() routine. (check-in: 9564d72a user: drh tags: trunk)
20:39
Performance optimization and size reduction in the OP_Halt opcode. (check-in: 21948e6e 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: 6e20e1c4 user: drh tags: trunk)
10:42
Performance optimization and slight size reduction in the OP_Transaction opcode. (check-in: 7bee8c19 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: cd4fe34b user: drh tags: trunk)
20:08
Fix harmless compiler warnings. (check-in: 8a3a3486 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: 35441eb5 user: drh tags: trunk)
15:19
Minor loop optimization in OP_MakeRecord. (check-in: 4350983b 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: 6f4d6f21 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: 390c239e user: drh tags: trunk)
20:39
Loop optimization in the OP_MakeRecord opcode. (check-in: 47a61fbd 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: 8a07745a 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: 44be7f46 user: drh tags: trunk)
19:04
Omit the Vdbe.doingRerun field for a slight size reduction and performance gain. (check-in: e93297a9 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: d126f304 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: cb5e6f8e user: drh tags: trunk)
17:23
Remove an unnecessary branch from sqlite3VdbeReset(). (check-in: a7d79560 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: 5a50a42f user: drh tags: trunk)
16:22
Avoid a harmless uninitialized variable warning in PRAGMA incremental_vacuum. (check-in: 6d976f90 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: d4e19314 user: drh tags: trunk)
2022-03-31
21:15
Split out the RUN state into separate READY and RUN states. (Closed-Leaf check-in: d698826b 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: ff91191d user: drh tags: vdbe-state-refactor)
16:09
Fix harmless compiler warnings. (check-in: b916087a 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: f2d9262e user: drh tags: trunk)
04:05
Make CLI build after an incomplete rename completed. (check-in: 4f11e639 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: d2446e50 user: larrybr tags: cli_extension)
2022-03-30
17:56
Faster and slightly smaller implementation of sqlite3Step(). (check-in: c6901a8c user: drh tags: trunk)
17:36
Small size reduction and performance increase in sqlite3FinishCoding(). (check-in: 9248ce50 user: drh tags: trunk)
11:12
Incorporate fix noted as absent by forum post https://sqlite.org/forum/forumpost/aefd62fcc7ebd8b6 (check-in: 336851b1 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: 47d0b1c4 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: 7616a6f4 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: c86ab289 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: 800b8fda user: drh tags: trunk)
13:16
Avoid unnecessary calls to balance() from sqlite3BtreeDelete(). (check-in: d0966d1b 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: d50b162b 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: 4ee7df11 user: larrybr tags: cli_extension)
18:34
Further size and performance optimizations for sqlite3VdbeMemSetStr(). (check-in: 310a3e10 user: drh tags: trunk)
17:34
Slightly smaller and faster sqlite3VdbeMemSetStr(). (check-in: 06928e74 user: drh tags: trunk)
15:06
Performance increase in the loop that frees an opcode array. (check-in: 4ccebb86 user: drh tags: trunk)
14:56
Another small performance gain by using sqlite3DbFreeNN(). (check-in: daa924af user: drh tags: trunk)
14:18
Use sqlite3DbFreeNN() instead of sqlite3DbFree() in a few hot spots for better performance. (check-in: b12de0ec user: drh tags: trunk)
13:22
Performance optimization in the memsys5 memory allocator. (check-in: 94913323 user: drh tags: trunk)
05:57
In TCL shell extension, wrap shell DB for use from TCL. (check-in: 41cc8433 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: fbf0eb0d 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: c9aa76bf 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: 73a15377 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: 07fc5c6e user: drh tags: reuse-schema-3.38)
13:51
Version 3.38.2 (check-in: d33c709c user: drh tags: release, branch-3.38, version-3.38.2)
2022-03-25
20:39
Sync w/trunk (check-in: 8402e5e7 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: 4977d8f4 user: drh tags: branch-3.38)
18:27
CLI preparation for shell's db to be used from TCL (check-in: 57501e7f 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: b193156c user: drh tags: branch-3.38)
06:46
Get shell TCL extension more smoothly integrated. (check-in: 29fd246f user: larrybr tags: cli_extension)
01:37
Bump the version number to 3.38.2. (check-in: bb3ef206 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 thread 031e262a89b6a9d2. (check-in: 8246bfbc 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 thread 031e262a89b6a9d2. (check-in: 1a6328f2 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: a7abb725 user: drh tags: trunk)
12:49
TCL shell extension delegates to dot commands (check-in: 35394310 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: abf0316b 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. Fossil forum post bd0844268f0fab71. (check-in: 43143ad1 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: 780d00d4 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: a85126f9 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: 06d4c4d1 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: 67d8b434 user: drh tags: trunk)
11:22
Make the sqlite3_serialize() and sqlite3_deserialize() interfaces accessible to loadable extensions. (check-in: 81f8746b user: drh tags: trunk)
03:03
expose sqlite3_{deserialize,serialize}() in sqlite3ext.h (Closed-Leaf check-in: da874180 user: larrybr tags: extapi-serializing)
02:53
Create new branch named "extapi-serializing" (check-in: a1220a21 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: c7a2047e user: drh tags: trunk)
18:48
Some branches are no longer reachable after the previous change. Mark them accordingly. Also improve comments. (check-in: 88d69f60 user: drh tags: trunk)
18:23
Strengthen the defenses against corrupt databases in the sqlite3BtreeInsert() function of the btree module. Forum post c7ec29905f. (check-in: 883fec9c user: drh tags: branch-3.38)
18:17
Strengthen the defenses against corrupt databases in the sqlite3BtreeInsert() function of the btree module. Forum post c7ec29905f. (check-in: 4df301c8 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: b4210bc0 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: c0a4767f 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 post 929168fdd6. (check-in: ccd2a2a7 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 post 929168fdd6. (check-in: fa9bd1fc 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: 940f1a40 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: 23fdb169 user: drh tags: trunk)
2022-03-19
15:19
In the CLI, disable the zipfile and sqlar extensions in --safe mode. (check-in: d8b65a2d user: drh tags: trunk)
14:27
macro-ize extension boiler-plate, improve exit processing (check-in: 7996d3a3 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 post ae86934905. (check-in: b75c6bad 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 post ae86934905. (check-in: 5f6d5673 user: drh tags: trunk)
2022-03-18
16:00
Further migration to centralized error reporting (check-in: 89808800 user: larrybr tags: cli_extension)
2022-03-17
23:49
Change a conditional into an assert() due to the change in [387ab17b8a0a4b87]. (check-in: 13b58486 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: 135d8b97 user: drh tags: trunk)
18:03
Updates a comment and an assert(). (Closed-Leaf check-in: 0c5be14a 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: 9e72cae2 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: 84ddd19b user: drh tags: trunk)
2022-03-16
19:28
Add extra test cases. (check-in: 0a922d14 user: dan tags: vtab-distinct-ordered)
14:51
Update the sqlite3_vtab_distinct() documentation. (check-in: 88929d85 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: 11f45088 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: 72029cf7 user: larrybr tags: trunk)
10:07
For CLI, begin centralizing argument checking/complaining. (check-in: 3457f87c user: larrybr tags: cli_extension)
2022-03-14
23:50
Calling sqlite3_value_dup() on a pointer value results in an ordinary NULL. Forum post ae8592cc73. Test cases in TH3. (check-in: fff1243b 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: 3950b7d0 user: drh tags: trunk)
20:39
Disable trigger coding while running sqlite3_declare_vtab(). dbsqlfuzz 97e1865771b4226f29e6e482411c1cae14133f50 (check-in: 5b8a0460 user: drh tags: branch-3.38)
20:31
Disable trigger coding while running sqlite3_declare_vtab(). dbsqlfuzz 97e1865771b4226f29e6e482411c1cae14133f50 (check-in: 387ab17b user: drh tags: trunk)
16:54
Foreign key constraint failures should return SQLITE_CONSTRAINT_FOREIGNKEY even if there is a RETURNING clause. See forum thread e6be6e82c86aa59b. (check-in: 3f9887d4 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: 934276d1 user: drh tags: reuse-schema-3.38)
15:21
Merge the latest trunk changes into the reuse-schema branch. (check-in: f3fa8196 user: drh tags: reuse-schema)
15:11
Merge the latest trunk changes into the begin-concurrent-pnu-wal2 branch. (check-in: 0071d9da user: drh tags: begin-concurrent-pnu-wal2)
15:04
Merge the lates trunk enhancements into the wal2 branch. (check-in: bafaefc6 user: drh tags: wal2)
14:54
Merge trunk enhancements, including 3.38.1 patches, into the begin-concurrent-report branch. (Leaf check-in: c4a61135 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: aa8b5e95 user: drh tags: begin-concurrent)
13:37
Version 3.38.1 (check-in: 38c210fd user: drh tags: release, version-3.38.1, branch-3.38)
2022-03-11
22:59
CLI extension's registerMetaCommand done, and used by test_shellext.c (demo code) (check-in: 9be5e0b5 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: 0606e8e9 user: drh tags: trunk)
15:16
Fix a harmless compiler warning. (check-in: 5d739aff user: drh tags: trunk)
14:20
Fix a harmless compiler warning and restore performance in the sqlite3BtreeIndexMoveto() last-page optimization. (check-in: 8b032293 user: drh tags: trunk)
12:40
Fix a case in fts5 where a corrupt database could cause a crash. (check-in: 1894577c user: drh tags: branch-3.38)
12:02
Fix a case in fts5 where a corrupt database could cause a crash. (check-in: 5e95df26 user: dan tags: trunk)
2022-03-10
23:37
Another corruption detection case in the sqlite3BtreeIndexMoveto() last page optimization. (check-in: 531e6ad0 user: drh tags: trunk)
22:54
In the sqlite3BtreeIndexMoveto() last-page optimization, make sure to return SQLITE_CORRUPT if corruption is detected. (check-in: 4ef19ba9 user: drh tags: trunk)
21:14
Stronger defenses against corrupt schemas in the ALTER TABLE logic. (check-in: 29744e69 user: drh tags: branch-3.38)
21:04
Stronger defenses against corrupt schemas in the ALTER TABLE logic. (check-in: 13fbde28 user: drh tags: trunk)
19:53
Doc improvements re sqlite3_column_text*() endianness (no code change) (check-in: a37c20d4 user: larrybr tags: branch-3.38)
19:44
Amend sqlite3_column_*() doc table. (no code change) (check-in: 1f473099 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 post ec2a2e0deb. (check-in: 2c393228 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 post ec2a2e0deb. (check-in: 58de3c2b 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: d9475ebc user: drh tags: trunk)
11:48
Only run atof1.test on x86_64 machines. (check-in: 4173819c user: drh tags: trunk)
11:10
Improve formatting of changes doc for this branch (Leaf check-in: 2129cfb8 user: larrybr tags: shell-tweaks)
02:23
Mention that sqlite3_column_text16() returns have native endianness (check-in: 25b7f88f user: larrybr tags: trunk)
01:15
Check-in [642a0b4752743216] fixing sqlite_dbpage is not exactly correct. This patch should fix it. (check-in: b6c4c8a0 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: 6ba36714 user: drh tags: trunk)
2022-03-09
22:16
Sync w/Trunk, finish doc/sh_tweak_changes.md (check-in: 5a1797c2 user: larrybr tags: shell-tweaks)
18:30
Further refinements to the sqlite_offset() fix from [6029514b08b88e3f]. (check-in: 98799d7b user: drh tags: branch-3.38)
18:29
Further refinements to the sqlite_offset() fix from [6029514b08b88e3f]. (check-in: 6f838305 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: e92c4fdb 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: 642a0b47 user: drh tags: trunk)
13:22
Do not use va_arg() as an l-value, because AIX does not allow that, from what we are told. (check-in: 46d1a6de 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: a9cda389 user: drh tags: trunk)
2022-03-08
16:44
(WIP) Add DB-dispatch for dot commands upon shell extension load. (check-in: 19f2a747 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 "Fix compiler warnings" check-in. (check-in: ce9e3d90 user: drh tags: branch-3.38)
15:49
Fix a minor typo in a comment. (check-in: cf61419f user: drh tags: trunk)
13:59
Fix compiler warnings. (check-in: 5e30c6ea user: drh tags: trunk)
03:10
Add a .md summarizing CLI changes on this branch and their motivation or purpose. (check-in: 5ddccc2f user: larrybr tags: shell-tweaks)
01:02
CLI regularization and code cleanup (check-in: 16af0e45 user: larrybr tags: cli_extension)
2022-03-07
19:00
Sync with trunk (check-in: 1194093a user: larrybr tags: cli_extension)
18:42
Add multi-threaded test for the features on this branch. Fix a misuse of xShmLock(). (check-in: 1ec05168 user: dan tags: begin-concurrent-pnu-wal2)
18:38
Disable an assert in moveToRoot() when the database is corrupt. Forum post e9a176b7bd. (check-in: ab744a5d user: drh tags: branch-3.38)
18:32
Disable an assert in moveToRoot() when the database is corrupt. Forum post e9a176b7bd. (check-in: ae464a18 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: 0021bebc 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 thread 2024e94071ef1531 for more information. (check-in: 369d2404 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 thread 2024e94071ef1531 for more information. (check-in: 5e0ed49b 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: 4a2040d5 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: 21b65657 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: 0057bbb5 user: drh tags: trunk)
01:28
Fix the .import problem in the CLI reported by forum post 72a024c957. (check-in: d753285b user: drh tags: branch-3.38)
00:14
Disentangle variable use in last checkin (check-in: 4c3a0260 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: bf9d1278 user: larrybr tags: trunk)
20:22
Fix obsolete but harmless comments in btree. No changes to code. (check-in: 4838b888 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: a88983ec user: larrybr tags: cli_extension)
11:44
The sqlite_offset() function should be non-deterministic. dbsqlfuzz 3df8230bb940870db87ffca2c0fc759c1e7fa356. (check-in: 80837576 user: drh tags: branch-3.38)
11:43
The sqlite_offset() function should be non-deterministic. dbsqlfuzz 3df8230bb940870db87ffca2c0fc759c1e7fa356. (check-in: e1a185e6 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: a85679d3 user: larrybr tags: cli_extension)
00:01
Remove a NEVER() associated with sqlite_offset()> (check-in: bf2501e2 user: drh tags: branch-3.38)
2022-03-05
23:52
Remove a NEVER() associated with sqlite_offset()> (check-in: e29dffcd user: drh tags: trunk)
20:20
Fix the 'localtime' modifier in date/time functions so that it preserves fractional seconds. Forum post 2ffbaa2c3fd7fb82. (check-in: 6833f4ae user: drh tags: branch-3.38)
20:12
Fix the 'localtime' modifier in date/time functions so that it preserves fractional seconds. Forum post 2ffbaa2c3fd7fb82. (check-in: 1c875b07 user: drh tags: trunk)
19:46
Increase the version number to 3.38.1. (check-in: cd87e77d user: drh tags: branch-3.38)
19:39
Cherry-pick all bug fix changes since the 3.38.0 release. (check-in: 45a5d5ac user: drh tags: branch-3.38)
19:36
Further improvements to the sqlite_offset() function. (check-in: 4230e2f5 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: 6029514b 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: dc88fc62 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 thread 544af7eee2. (check-in: d46d0e67 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: 31e1bde4 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: d71fb6fd 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: 725a0643 user: drh tags: trunk)
15:59
Fix for the problem identified in 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: 61a1c6db 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: b8226748 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 post 50a1bbe08ce4c29c. (check-in: ad3ffa1a user: drh tags: trunk)
17:50
Faster version of sqlite3VdbeMemRelease(). (check-in: 86c5fa2f user: drh tags: trunk)
13:45
Reinstate the releaseMemArray() performance optimization of [bb520293d8c11518] with corrections. (check-in: 1291080d user: drh tags: trunk)
11:39
The optimization at [ece326db50201937] is not quite right, so back it out for now. (check-in: b218a4b9 user: drh tags: trunk)
01:02
Fix a harmless compiler warning. (check-in: 6497997a user: drh tags: trunk)
00:50
The performance optimizations at [bb520293d8c11518] is not quite right, so it has to be backed out. (check-in: 15f73b12 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: f839c0bc user: drh tags: trunk)
19:19
Fix a minor typo in a comment. (check-in: 86ba06aa 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 post 14819f2063. (check-in: 3b36ed79 user: drh tags: trunk)
15:48
Fix slightly-incorrect assert() statements. Forum post f1e83b77b5ff37db (check-in: 3c9f5c9d 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 post 3b9e894312. (check-in: 12c01216 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 thread 595e132f71 for details. (check-in: 1d3760a5 user: drh tags: trunk)
14:26
Reorganize the bits in Mem.flags. Free up one bit for reuse. (check-in: fe454291 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: f2f04260 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: c3e9cd5e 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: d74aa979 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: 7fefd867 user: drh tags: optimize-init-mem)
02:35
Avoid unnecessary deinitialization of the Mem.flags field. (check-in: bb520293 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: 7cf2d1f0 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: 36f0f07e user: drh tags: trunk)
2022-02-26
23:01
Remove an unnecessary local variable for a small performance increase and size reduction. (check-in: 9bda611f 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: 1bf48489 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: 3b7259eb 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: 4e269902 user: drh tags: trunk)
18:15
Dead branch: Superseded by [3b7259ebd5b9b1f7] (Closed-Leaf check-in: 09a47f32 user: drh tags: simplify-cursor-state)
16:21
Do not do a deferred seek on a cursor that is marked nullRow. (check-in: 1c026bcb 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: 7953716c user: drh tags: simplify-cursor-state)
13:29
Improved comment on the codeDeferredSeek() routine. No code changes. (check-in: 54f49f65 user: drh tags: trunk)
11:30
Fix unimportant typos in comment text. (check-in: 39346013 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: ad1be348 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: aca53843 user: drh tags: trunk)
00:09
Merge shell-tweaks enhancements (with 3.38) (check-in: 4c7d94d3 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: 9d13cbbe user: drh tags: trunk)
11:09
Spell fix, no code change (check-in: f2597fae user: larrybr tags: trunk)
04:29
Regularize CLI .mode processing (check-in: 6d055724 user: larrybr tags: cli_extension)
01:41
Fix an assert() so that it is still valid following OOM with the latest enhancements. (check-in: ecf832f7 user: drh tags: trunk)
01:08
Update the version number of version 3.39.0 for the next development cycle. (check-in: 9542e9be 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: 7ad82922 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: 41061f29 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: ece326db 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: 5aa9c3eb user: drh tags: trunk)
10:10
Sync with 3.38 (check-in: b9b27d74 user: larrybr tags: cli_extension)
2022-02-22
22:28
Sync w/3.38, add .parameter ls to CLI (check-in: 8c9a5fb2 user: larrybr tags: shell-tweaks)
20:38
Don't reload the schema on PRAGMA database_list. (check-in: 630fe446 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: 710de6a2 user: drh tags: trunk)
20:04
Merge version 3.38.0 into the reuse-schema branch. (check-in: 8fe85dcd user: drh tags: reuse-schema)
19:56
Merge version 3.38.0 into the begin-concurrent-pnu-wal2 branch. (check-in: 8387e4f3 user: drh tags: begin-concurrent-pnu-wal2)
19:46
Merge version 3.38.0 into the wal2 branch. (check-in: de24c8ee user: drh tags: wal2)
19:37
Merge version 3.38.0 into the begin-concurrent-report branch. (check-in: 0bbf7be2 user: drh tags: begin-concurrent-report)
19:30
Merge version 3.38.0 into the begin-concurrent branch. (check-in: c5998c43 user: drh tags: begin-concurrent)
18:58
Version 3.38.0 (check-in: 40fa792d 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 post 35470a0a72a005e1 (check-in: 7e3c9594 user: drh tags: trunk)
2022-02-21
16:49
Merge the latest trunk changes into the reuse-schema branch. (check-in: b3c26f4a user: drh tags: reuse-schema)
14:30
Fix compiler warnings for older compilers (ex: gcc 4.0.1 powerpc-apple-darwin). (check-in: 5c188243 user: drh tags: trunk)
13:44
Remove stray tab characters from auxiliary source code files. (check-in: e25e3358 user: drh tags: trunk)
13:02
Add SQLITE_OMIT_JSON to the compile-time option test sequence. (check-in: f36325a6 user: drh tags: trunk)
00:23
Do not allow error messages from sqlite3NestedParse() to leak up into the main parse. (check-in: 9c4e21ab user: drh tags: trunk)
2022-02-19
21:25
Improve .backup and .save help text (check-in: 741651fd user: larrybr tags: trunk)
15:57
Add a NEVER() to a branch that is unreachable for STAT4. (check-in: e4e97505 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: a6fbb7ba user: drh tags: trunk)
14:33
Remove references to the now-defunct SQLITE_ENABLE_JSON1 compile-time option. (check-in: db950192 user: drh tags: trunk)
14:29
Fix a testing error on Windows that was recently added to shell5.test. (check-in: 6cace543 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: 3454a122 user: drh tags: trunk)
2022-02-15
20:56
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: b9ba43fc user: drh tags: reuse-schema)
20:47
Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 1336d2f2 user: drh tags: begin-concurrent-pnu-wal2)
20:37
Merge recent trunk enhancements into the wal2 branch. (check-in: 7dba8188 user: drh tags: wal2)
20:24
Merge recent trunk enhancements into the begin-concurrent-report branch. (check-in: 213df7a0 user: drh tags: begin-concurrent-report)
20:18
Merge the latest trunk changes into the begin-concurrent branch. (check-in: 94838f16 user: drh tags: begin-concurrent)
17:04
Sync with trunk (check-in: 2b4a295c user: larrybr tags: shell-tweaks)
13:23
Improved rendering of floating point numbers without a fractional part in ".dump" output from the CLI. Forum post 550d877659f37cb2. (check-in: 9edaeed5 user: drh tags: trunk)
11:46
New assert() statements to help prove correctness of memjournal.c. (check-in: d74ec88c 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: c039d547 user: drh tags: trunk)
18:55
CLI .import can auto-rename non-unique column names when it creates a new table (check-in: 4b5d07ea 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: a5ec1690 user: drh tags: trunk)
13:53
Fix a bad assert() (it needs an "||CORRUPT_DB" term) in b-tree, discovered by dbsqlfuzz. (check-in: f5f263cc user: drh tags: trunk)
01:12
CLI's .import column rename made more minimal, and reports renames. (Leaf check-in: c626cff7 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: 67dc59f4 user: larrybr tags: auto-column)
2022-02-12
18:56
Do not run merge1.test with SQLITE_OMIT_VIRTUALTABLE builds. (check-in: bf8dbfd4 user: dan tags: trunk)
16:02
Fix a possible user-after-free in ALTER TABLE found by asan. (check-in: 9252619d user: dan tags: trunk)
13:45
Update fuzz.test to account for a change in error message made in the core. (check-in: c57601b5 user: dan tags: trunk)
13:37
Avoid dropping SQLITE_TOOBIG errors in the quote() function. (check-in: 115c3051 user: dan tags: trunk)
13:12
For .import auto-column, aid build-time override of rename decoration. (check-in: 433e5ead user: larrybr tags: auto-column)
10:48
Fix auto-column bug noted by post https://sqlite.org/forum/forumpost/d102c15d63 (check-in: 689137e1 user: larrybr tags: auto-column)
02:15
Sync w/trunk, allow build-time override of auto-column decorating character (check-in: caaef4c5 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: ca22a64e 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: 3409fd41 user: dan tags: trunk)
17:47
Load recent dbsqlfuzz finds into test/fuzzdata8.db. (check-in: b275ad25 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: ab1a9b5b 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: a51402e8 user: drh tags: trunk)
16:10
Fix a problem in [c006515ae6faff65] causing an assert() to fail with some build configurations. (check-in: d7ff262d 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: f3807194 user: drh tags: trunk)
13:40
Upon .import column renaming, issue message saying so. Test this. (check-in: 8b6ca930 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: 937d3a45 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: eae3ab0a user: drh tags: trunk)
01:21
CLI auto-column rename revamped after forum discussion. (check-in: 2da1f8e4 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: 64537a06 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: 6e25cb08 user: drh tags: trunk)
15:40
Performance improve to the 'localtime' and 'utc' modifiers for date/time functions. (check-in: 85cb6014 user: drh tags: trunk)
12:57
Faster implementation of the date(), time(), and datetime() functions. (check-in: fa1b393b 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: 4565f711 user: drh tags: trunk)
03:21
A CLI feature. auto .import (new table) columns. WIP (check-in: 7e3be36d user: larrybr tags: auto-column)
02:09
Create new branch named "auto-column" (check-in: 066febe8 user: larrybr tags: auto-column)
01:01
Fix a typo in documentation. No code changes. (check-in: e97c6ad4 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 post fd0f19d229156939. (check-in: eee6de19 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: c006515a 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: 460abf93 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: 22cc55e8 user: drh tags: trunk)
13:41
Provide sqlite3_error_offset() data for some new errors. (check-in: 1269206d user: drh tags: trunk)
12:24
comment-only change to sqlite3.h (check-in: f815cf4a 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: b4716018 user: drh tags: trunk)
11:52
Improved error message formatting in the shell. Distinguish between "Parse errors" and "Runtime errors". (check-in: ae3e322a 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: 0e909e34 user: drh tags: trunk)
01:09
When create table/view fails due to name taken, say which took it. (check-in: 9a206e37 user: larrybr tags: trunk)
2022-02-06
23:54
Fix unreachable branches in the sqlite3_error_offset() logic. (check-in: 031381ae user: drh tags: trunk)
22:13
The sqlite3_vtab_in() interface should return false for a vector IN constraint. (check-in: 245d0241 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: 36653cce user: drh tags: trunk)
14:30
CLI extended parsing, new .parameter subcommands, and .x features fairly well tested (check-in: 9c664984 user: larrybr tags: shell-tweaks)
11:51
Faster computation of Expr.nHeight. (check-in: a7a5af32 user: drh tags: trunk)
11:26
Record the error offset on INTEGER tokens. (check-in: 38e057a5 user: drh tags: trunk)
00:30
Further improvements to localization of errors in input SQL. (check-in: fa346760 user: drh tags: trunk)
00:07
Sync with trunk. More shell9.test tests to come. (check-in: 2e72dc46 user: larrybr tags: shell-tweaks)
2022-02-05
23:45
CLI cleanup, mode push/pop, parameter list beautification (check-in: 53d4582a user: larrybr tags: shell-tweaks)
23:11
Enhance sqlite3_error_offset() to report the position of unresolved identifiers. (check-in: 5b8d2577 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: 32a3a53b user: drh tags: trunk)
15:26
Fix CLI Windows build, refine its help, re-org ShellState (check-in: 991a06a4 user: larrybr tags: shell-tweaks)
13:27
Update stale evidence marks on sqlite3_vtab_rhs_value() test cases. (check-in: 46744b83 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: fc4c82e5 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: d4e6b9f0 user: drh tags: relaxed-alter-table)
11:13
Fix documentation typo. (check-in: 1a7d8bb5 user: drh tags: trunk)
01:01
Typo fixes in documentation. (check-in: 1ec747d1 user: drh tags: trunk)
2022-02-04
21:49
CLI .param save/load done; many other small refinements (check-in: 6d415ac2 user: larrybr tags: shell-tweaks)
20:16
Test case for permissive ALTER TABLE RENAME when writable_schema=ON. (check-in: 7ee44f66 user: drh tags: relaxed-alter-table)
20:07
One more case of disabling errors for ALTER TABLE RENAME when writable_schema=ON. (check-in: c52d0dd8 user: drh tags: relaxed-alter-table)
19:13
Add a compile-time option to include vt02.c in fuzzcheck. (check-in: c404c8c7 user: drh tags: trunk)
18:12
Merge trunk enhancements into the reuse-schema branch. (check-in: 5744e102 user: drh tags: reuse-schema)
18:02
Merge recent trunk changes into the begin-concurrent-pnu-wal2 branch. (check-in: cb045aba user: drh tags: begin-concurrent-pnu-wal2)
17:52
Merge trunk enhancements into the wal2 branch. (check-in: d2de02f3 user: drh tags: wal2)
17:51
Merge all recent trunk enhancements into the begin-concurrent-report branch. (check-in: 1c88bcff user: drh tags: begin-concurrent-report)
17:40
Merge trunk enhancements into the begin-concurrent branch. (check-in: 85054a86 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: 197cbabf user: drh tags: relaxed-alter-table)
13:15
Fix various harmless compiler warnings. (check-in: 70049342 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: 9f67ad00 user: drh tags: trunk)
09:39
Fix .param edit unable to edit script vars (bad assert) (check-in: 62d212d0 user: larrybr tags: shell-tweaks)
2022-02-03
21:07
Sync to trunk. Shell tests pass. (check-in: 79275b81 user: larrybr tags: shell-tweaks)
20:57
Scripting and .parameter enhancements most in; all in working (check-in: a1581118 user: larrybr tags: shell-tweaks)
18:14
Minor typo fix in comment. No code changes. (check-in: f9b76304 user: drh tags: trunk)
14:37
Do not allow the vdbe-compress.tcl script to generate structures named "do" or "if". (check-in: e35ab16d user: drh tags: trunk)
14:19
Prohibit schema changes within xBestIndex callbacks. (check-in: bb0f056b user: drh tags: trunk)
2022-02-02
21:06
Improvement to the sqlite3_vtab_in_first() documentation. (check-in: 403e7ac9 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: 52559af0 user: drh tags: trunk)
19:30
Additional test cases. (Closed-Leaf check-in: 733d81c3 user: drh tags: batch-in-operator)
19:15
Test cases for sqlite3_vtab_in() and sqlite3_vtab_distinct(). (check-in: 21afb81d user: drh tags: batch-in-operator)
18:47
Improved documentation for sqlite3_vtab_in(). No code changes. (check-in: c99df4ab 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: 3bf21534 user: drh tags: batch-in-operator)
15:10
Be sure that sqlite3_vtab_in_first() and _next() set the correct encoding. (check-in: 04edf36e 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: 8965929b user: drh tags: batch-in-operator)
11:37
Fix a harmless code indentation issue. (check-in: 41d8d26e user: drh tags: trunk)
2022-02-01
21:59
Tweaks to the sqlite3_vtab_in() interface. (check-in: 75040183 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: 5acf90a9 user: drh tags: batch-in-operator)
15:08
Take CLI's wordwrap from trunk (check-in: 768c70a9 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: eb84b80e 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: 00b1b702 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: 1b528e31 user: drh tags: trunk)
02:50
Add "--wordwrap on/off" option for CLI columnar modes, qwbox shortcut (check-in: 10dbc278 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: fd42f4c3 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: 070fae3a user: drh tags: trunk)
20:39
CLI: Fix a problem with tabs in the new qbox mode. (check-in: ca96ab3e user: drh tags: trunk)
19:52
Sync to trunk (check-in: f51a17b6 user: larrybr tags: shell-tweaks)
19:23
Cleanup dot-command handling, make multi-line work, honor exit requests from more contexts (check-in: 5cf66e89 user: larrybr tags: shell-tweaks)
16:29
Fix harmless compiler warnings in MSVC. (check-in: 3ec6141c 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: f8766231 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: 539cef52 user: drh tags: trunk)
12:29
Fix an obscure problem in sqlite3_backup_init() caused by [6a45d8fe8bfbc11a|check-in 6a45d8fe8bfbc11a]. See forum post 8b39fbf3e7 for the original bug report. (check-in: 639fc763 user: drh tags: trunk)
10:55
CLI: Fix the new ".mode box" output so that it works with unicode characters. (check-in: 454af487 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: c10ed4a7 user: drh tags: trunk)
11:44
Always enable all JSON tests, now that JSON is included by default. (check-in: 8c9f3501 user: drh tags: trunk)
11:42
Remove a faulty NEVER(). Fix for dbsqlfuzz 4678cf825d27f87c9b8343720121e12cf944b71a (check-in: d4e40245 user: drh tags: trunk)
01:35
Sync with trunk (check-in: 59693d3e user: larrybr tags: shell-tweaks)
01:21
Enhance shell parser for multi-line dot-commands (check-in: 5ed528e2 user: larrybr tags: shell-tweaks)
2022-01-29
21:41
Documentation enhancements. No code changes. (check-in: 312642d9 user: drh tags: trunk)
2022-01-28
23:44
Add the SQLITE_INDEX_CONSTRAINT_LIMIT and SQLITE_INDEX_CONSTRAINT_OFFSET constraints to the sqlite3_index_info for the xBestIndex method of virtual tables. (check-in: 1e227ad9 user: drh tags: trunk)
23:19
Add a NEVER() on an unreachable branch. (Closed-Leaf check-in: 38892625 user: drh tags: vtab-limit-offset)
21:39
When nesting Parse objects, make sure the new one has nErr set if there has been an OOM error. (check-in: ae088cbc user: drh tags: trunk)
19:53
Include hidden columns of table valued functions that are constrained by the function arguments in the colUsed bitmask. (check-in: 8f8cab0d user: drh tags: vtab-limit-offset)
18:43
Remove a NEVER() that has become reachable now that we have the sqlite3_vtab_rhs_value() interface. (check-in: c4c30df7 user: drh tags: vtab-limit-offset)
13:18
Enable SQLITE_INDEX_CONSTRAINT_LIMIT/OFFSET even if there are vector comparison operators in the WHERE clause. Also: Do not enable sqlite3_vtab_rhs_value() for LIMIT/OFFSET if the value is negative, as this violates an invariant on Expr.u.iValue. (check-in: 140480b3 user: drh tags: vtab-limit-offset)
2022-01-27
21:18
Query planner always honors the aConstraintUsage[].omit flag for the SQLITE_INDEX_CONSTRAINT_OFFSET constraint. (check-in: 38c5151e user: drh tags: vtab-limit-offset)
18:45
Make LIMIT and OFFSET values available to sqlite3_vtab_rhs_value(). (check-in: b2d37c08 user: drh tags: vtab-limit-offset)
16:14
Give the virtual table xBestIndex method access to (some) OFFSET and LIMIT clauses. (check-in: 74fa5757 user: drh tags: vtab-limit-offset)
13:52
Enforce the restriction that 'unixepoch' only works as the first modifier after the time-value. This has been documented since 2004, but has never actually been enforced before. Also add new test cases for date/time functions with evidence marks. (check-in: 64fa9e8c user: drh tags: trunk)
2022-01-25
16:28
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 6e4154d4 user: drh tags: reuse-schema)
16:05
Merge the latest trunk changes into begin-concurrent-pnu-wal2 (check-in: 3d949775 user: drh tags: begin-concurrent-pnu-wal2)
15:57
Merge the latest trunk changes into the wal2 branch. (check-in: 84f737ab user: drh tags: wal2)
15:48
Merge the latest trunk enhancements into the begin-concurrent-report branch. (check-in: 42e6d842 user: drh tags: begin-concurrent-report)
15:20
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: dae81f45 user: drh tags: begin-concurrent)
00:03
Minor adjustment to error handling in sqlite3FinishCoding(). (check-in: a8db6941 user: drh tags: trunk)
2022-01-24
21:47
Remove an unnecessary assert() that is sometimes not true following an OOM. (check-in: e9361d72 user: drh tags: trunk)
20:20
New dbsqlfuzz cases added to test/fuzzdata8.db. (check-in: d1fbf633 user: drh tags: trunk)
20:16
One of the ALWAYS() macros in the previous check-in could sometimes be false, following an OOM. Remove it. Problem found by dbsqlfuzz. (check-in: 11df9187 user: drh tags: trunk)
19:38
Add ALWAYS() macros. Change some existing ALWAYS() into assert(). Other code simplifications. (check-in: 4aa27b4f user: drh tags: trunk)
16:47
Remove many redundant checks for sqlite3.mallocFailed now that any OOM should cause Parse.nErr to be non-zero. (check-in: 1f7fa461 user: drh tags: trunk)
15:34
Make it so that any Parse object is always linked into the database conenction while it is active. Hence, an OOM will cause Parse.nErr to be set. (check-in: 6a45d8fe user: drh tags: trunk)
14:01
Fix testcase for CLI .read recursion. (check-in: 53d44044 user: larrybr tags: trunk)
12:48
Make sure the sqlite3OomFault() routine sets an error in the Parse object if there is a Parse object active and linked to the database connection. (check-in: ad7aace7 user: drh tags: trunk)
11:25
Ensure that any error encountered while coding a trigger program is transfered to the main Parse structure before it is used with any other routine that might set the error code. (check-in: 42936565 user: dan tags: trunk)
07:11
Take CLI input redirect recursion limit from trunk (check-in: 5e702044 user: larrybr tags: shell-tweaks)
06:36
Limit CLI input redirect nesting (check-in: 7a073931 user: larrybr tags: trunk)
04:21
Add CLI .x command, make string redirection work (check-in: 2f2f1aae user: larrybr tags: shell-tweaks)
00:22
CLI prepared for reading string input (check-in: 073ded4d user: larrybr tags: shell-tweaks)
2022-01-23
20:54
Factor out DB protection lift and restore in CLI (check-in: 4462ed89 user: larrybr tags: shell-tweaks)
04:19
Shell refinements, seeargs, booleans, undocumented commands (check-in: 8735caf1 user: larrybr tags: shell-tweaks)
02:53
Create new branch named "shell-tweaks" (check-in: 3f13df29 user: larrybr tags: shell-tweaks)
2022-01-22
22:28
Add support for the sqlite3_vtab_distinct() interface. Virtual table implementations can use this API to determine more detail about the ordering requirements needed by the query plan and perhaps reduce the amount of work required to compute a correct answer. This is an optimization opportunity for the virtual table implementation. The correct answer should still be obtained (though perhaps more slowly) even if sqlite3_vtab_distinct() is ignored. (check-in: e4caf1e3 user: drh tags: trunk)
20:45
Bring sqlite3_vtab_distinct() up to spec so that it works as described in the documentation. (Closed-Leaf check-in: 4289edf3 user: drh tags: sqlite3_vtab_distinct)
19:19
Iimproved documentation for sqlite3_vtab_distinct(). No changes to code. (check-in: 7af03f02 user: drh tags: sqlite3_vtab_distinct)
02:52
Omit the WhereLoopBuilder.pOrderBy field, which is no longer needed. (check-in: a13afc90 user: drh tags: sqlite3_vtab_distinct)
00:18
An initial attempt to implement sqlite3_vtab_distinct(). (check-in: d571262d user: drh tags: sqlite3_vtab_distinct)
2022-01-21
19:26
Update evidence marks for the latest changes to the documentation. (check-in: 19247e91 user: drh tags: trunk)
18:57
Fix some of the new date/time function features to comply with the spec. Update requirement marks. (check-in: 2f5dc7a9 user: drh tags: trunk)
16:47
When computing a vector to be used as a key for an index lookup, do not check for NULL values and abort until after all key values have been computed, in case one of the later key values involves some initialization that is needed by a LEFT JOIN. Fix for the problem identified by Forum post ab95010d410a0a55. (Leaf check-in: 3bc8d162 user: drh tags: branch-3.37)
16:41
When computing a vector to be used as a key for an index lookup, do not check for NULL values and abort until after all key values have been computed, in case one of the later key values involves some initialization that is needed by a LEFT JOIN. Fix for the problem identified by Forum post ab95010d410a0a55. (check-in: 4db5217a user: drh tags: trunk)
01:00
Add the sqlite3_vtab_rhs_value() interface, allowing the xBestIndex method of a virtual table to access known values on the right-hand side of constraint expressions. (check-in: e19a0b13 user: drh tags: trunk)
00:38
Add requirements marks and tuning. (Closed-Leaf check-in: ac951490 user: drh tags: sqlite3_vtab_rhs_value)
2022-01-20
19:00
Test cases for sqlite3_vtab_rhs_value() based on the qpvtab extension. (check-in: 577d3d66 user: drh tags: sqlite3_vtab_rhs_value)
18:27
Enhancements to the qpvtab virtual table to make it more useful for testing and verification of virtual table interfaces. (check-in: 850efc4c user: drh tags: sqlite3_vtab_rhs_value)
17:10
Initial implementation of the sqlite3_vtab_rhs_value() interface and the qpvtab extension used for testing the virtual table interface. (check-in: 0873c76b user: drh tags: sqlite3_vtab_rhs_value)
14:51
A better and more robust fix for the problem of reading a read-only WAL mode database with existing -wal and -shm files, replacing [f426874e005e3c23]. (check-in: 1266220a user: drh tags: branch-3.37)
14:40
A better and more robust fix for the problem of reading a read-only WAL mode database with existing -wal and -shm files, replacing [f426874e005e3c23]. (check-in: 71bfd0b5 user: drh tags: trunk)
12:58
Fix harmless scan-build warnings. (check-in: ab160e8b user: drh tags: trunk)
12:36
Fix the ability to read read-only WAL-mode database when -shm is present, ([00ec95fcd02bb415|check-in 00ec95fcd02bb415]) so that it works for the case of 64K page size. (check-in: 2cc15e2f user: drh tags: branch-3.37)
05:20
A WIP checkin, progress toward what .help promises (Closed-Leaf check-in: 4688e6df user: larrybr tags: script_command)
02:04
Fix the ability to read read-only WAL-mode database when -shm is present, ([00ec95fcd02bb415|check-in 00ec95fcd02bb415]) so that it works for the case of 64K page size. (check-in: f426874e user: drh tags: trunk)
2022-01-19
21:11
Initial help changes for .script (and enhanced .parameter) (check-in: a94ab403 user: larrybr tags: script_command)
20:38
Mistaken branch creation. (Closed-Leaf check-in: 03548c25 user: larrybr tags: mistake)
18:31
Fix a test result for alterauth2.test due to the recent fix to authorizer calls for ALTER TABLE DROP COLUMN. (check-in: e799a35f user: drh tags: trunk)
2022-01-18
16:16
Fix ALTER TABLE DROP COLUMN so that it invokes the authorizer. Fix for forum post fd82b85947541dec. (check-in: aca6c61d user: drh tags: trunk)
2022-01-17
23:53
Allow an "IntReal" value to count as a REAL when checking types for insertion into a generated column on a STRICT table. Forum post fa012c77796d9399. (check-in: b6fb223d user: drh tags: branch-3.37)
23:37
Allow an "IntReal" value to count as a REAL when checking types for insertion into a generated column on a STRICT table. Forum post fa012c77796d9399. (check-in: 1ec44d55 user: drh tags: trunk)
20:01
Merge the latest trunk changes into the reuse-schema branch. (check-in: 769ff857 user: drh tags: reuse-schema)
19:46
Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 45fa7efe user: drh tags: begin-concurrent-pnu-wal2)
19:36
Merge the latest trunk enhancements into the wal2 branch. (check-in: 82f031b4 user: drh tags: wal2)
19:24
Bring the begin-concurrent-report branch up to date with all the latest trunk enhancements. (check-in: ef6fc895 user: drh tags: begin-concurrent-report)
19:17
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: 02daae7a user: drh tags: begin-concurrent)
19:10
Merge the begin-concurrent-pnuu branch into begin-concurrent. (check-in: 22fb5050 user: drh tags: begin-concurrent)
17:22
.ar fixed and constituent line numbers off (until they are right) (check-in: ec363f81 user: larrybr tags: cli_extension)
15:23
Fix incorrect testcase() and assert() macros in json.c. They were not causing problems. The assert() was simply unreachable. The testcase() added an unreachable condition. (check-in: 5623497a user: drh tags: trunk)
14:42
Never allow the b-tree layers view of the number of pages in the database file exceed the actual number of pages in the database file, even when PRAGMA writeable_schema=ON. This helps with earlier detection of corruption, and prevents excess memory usage and CPU cycles in some integrity_check ops. (check-in: 0407c879 user: drh tags: trunk)
03:53
Merge from trunk, w/adapations. (.ar still broken) (check-in: e09a6dd7 user: larrybr tags: cli_extension)
03:25
Bring .import --schema enhancement in. Refine mkshellc include logic. (check-in: e38f45cd user: larrybr tags: cli_extension)
2022-01-16
19:11
Fix test cases so that they all still work even with -DSQLITE_DQS=0. (check-in: 48837766 user: drh tags: trunk)
15:15
Fix ALTER TABLE so that it works even when compiled using -DSQLITE_DQS=0. Forum post 3c1a00b66fca81fe. (check-in: 092ad64f user: drh tags: trunk)
2022-01-14
23:28
Remove code from lemon.c that was made superfluous by [1b22b42e59793af1|check-in 1b22b42e59793af1] in late 2017. (check-in: 6d2f95a4 user: drh tags: trunk)
21:34
Fix a NEVER() in the byte-code engine that can sometimes be true. Test case in TH3. (check-in: 7ac91b53 user: drh tags: trunk)
16:29
For .import schema, quote it as for other identifiers. (check-in: bff9153c user: larrybr tags: trunk)
2022-01-13
21:22
Add --schema S option to .import (check-in: 38d9dbca user: larrybr tags: trunk)
2022-01-12
20:31
When the result of a subquery is to be stored in a register and that subquery has an ORDER BY clause and an OFFSET, NULL out the destination register before starting the ORDER BY so that the register will be set correctly even if the OFFSET is larger than the number of output rows. Fix for the problem reported in forum post 0ec80f12d02acb3f. (check-in: 9282bcde user: drh tags: trunk)
01:42
Make tool/mctimec.tcl effect more regular and obvious (check-in: 02aaa10f user: larrybr tags: trunk)
00:52
Fix mkctimec.tcl with the updated compile-time options for JSON. (check-in: 8ded3f5b user: drh tags: trunk)
00:28
Fix harmless compiler warning seen with MSVC. (check-in: adebb9d7 user: mistachkin tags: trunk)
2022-01-11
23:28
Merge the JSON interface into the core. Add -> and ->> operators for JSON that are compatible with by MySQL and PG. (check-in: 4cbb3e3e user: drh tags: trunk)
22:06
Remove vestigial traces of json_ntype(). (Closed-Leaf check-in: 8da07c8b user: drh tags: json-in-core)
18:01
Fix the PG-compatible -> and ->> path parsing. (check-in: 22d51383 user: drh tags: json-in-core)
2022-01-10
17:43
Fix typo in the json-enhancements.md document. (check-in: feba24ef user: drh tags: json-in-core)
15:43
Implement the new PG-compliant versions of the -> and ->> operators. (check-in: 39eff3b9 user: drh tags: json-in-core)
13:55
New proposal for -> and ->> operators. (check-in: 1108e12a user: drh tags: json-in-core)
2022-01-09
21:16
Update the json-enhancements.md document to match the version in the json-in-core branch, as outside readers have linked to this branch. (Leaf check-in: 2027b3be user: drh tags: json-enhancements)
20:51
Typo fix in doc/json-enhancements.md. (check-in: c3b01d49 user: drh tags: json-in-core)
20:42
Update the doc/json-enhancements.md document to better explain the features of this branch. (check-in: b8ac938f user: drh tags: json-in-core)
19:44
Do not enclude ENABLE_JSON1 in the compile-time options. (check-in: 8bf41bc5 user: drh tags: json-in-core)
19:36
Merge trunk enhancements into the json-in-core branch. (check-in: ea755771 user: drh tags: json-in-core)
16:54
Add a new built-in subtype() function. (check-in: a25f4ce2 user: drh tags: json-in-core)
2022-01-08
21:59
mkshellc.tcl to convert #include to INCLUDE for in-tree includees (check-in: b1f3b317 user: larrybr tags: cli_extension)
21:50
Add NEVER() macros to two branches that became unreachable due to [e199a851e316bd47]. (check-in: 71272caf user: drh tags: trunk)
21:00
Add function format() as an alias for printf(), for compatibility with other systems. (check-in: 68bffc61 user: drh tags: trunk)
15:37
Merge the JSON function enhancements from the json-enhancements branch into json-in-core. (check-in: e116501c user: drh tags: json-in-core)
15:05
Improved commenting of changes in the json1.c extension. (check-in: 4d81425e user: drh tags: json-enhancements)
2022-01-07
18:09
Notes on the JSON enhancement proposals. (check-in: 18160985 user: drh tags: json-enhancements)
17:26
Reverse the meaningn of -> and ->>. ->> raises an error on invalid JSON but -> does not. This allows ->> to behave the same as PG and MySQL. (check-in: 85f81705 user: drh tags: json-enhancements)
17:14
Change the -> operator to use json_extract(). The ->> operator continues to use json_nextract(). (check-in: b4c8a623 user: drh tags: json-enhancements)
17:08
New json_nextract() function that works like json_extract() except that it returns NULL instead of raising an error if the first argument is not well-formed JSON. Or if the first argument is not well-formed JSON and the second argument is '$', then return the first argument quoted. The "->" and "->>" operators are converted to use json_nextract(). (check-in: dc00f528 user: drh tags: json-enhancements)
16:03
Add the json_ntype() SQL function. Works like the 1-argument json_type() except that it returns NULL if the argument is not well-formed JSON, rather than raising an error. (check-in: ed9956f5 user: drh tags: json-enhancements)
15:47
Accept abbreviated JSON Paths on the right-hand side of the -> and ->> operators. (check-in: d1541090 user: drh tags: json-enhancements)
14:58
Add new binary operators "->" and "->>" to the parser that evaluate to 2-argument SQL functions by the same name. Add new "->" and "->>" functions to the JSON extension that are aliases for json_extract(). (check-in: c4e4e3a3 user: drh tags: json-enhancements)
14:09
Merge 3.37.2 changes into the begin-concurrent-pnu branch. (Leaf check-in: e525892d user: drh tags: begin-concurrent-3.37)
2022-01-06
17:13
Add the '-guard:cf' compiler option for Windows 10, per forum post 8d3b4ad694. (check-in: 2d6a16ca user: mistachkin tags: trunk)
14:16
Merge the 3.37.2 patches into the reuse-schema branch. (Leaf check-in: d7ec5a2b user: drh tags: reuse-schema-3.37)
13:25
Version 3.37.2 (check-in: 872ba256 user: drh tags: release, branch-3.37, version-3.37.2)
01:40
An attempt to integrate the JSON functions directly into the SQLite core, rather than holding them as an extension. (check-in: 583b47d8 user: drh tags: json-in-core)
2022-01-05
21:08
Remove two NEVER() macros that can sometimes be true if the database is corrupt. dbsqlfuzz 0414d2c18290fc80fd5fb540def7d3e46c1ae9c6. (check-in: e1871201 user: drh tags: branch-3.37)
21:01
Remove two NEVER() macros that can sometimes be true if the database is corrupt. dbsqlfuzz 0414d2c18290fc80fd5fb540def7d3e46c1ae9c6. (check-in: b6a82f3c user: drh tags: trunk)
18:56
Increase the version number to 3.37.2 (check-in: 7b911356 user: drh tags: branch-3.37)
16:02
Fix an assert() failure that could follow an OOM when coding a RETURNING trigger. dbsqlfuzz case 5d3e2438f15dc32b473d9f29413157857efa1212. (check-in: 93965e67 user: drh tags: branch-3.37)
15:54
Fix an assert() failure that could follow an OOM when coding a RETURNING trigger. dbsqlfuzz case 5d3e2438f15dc32b473d9f29413157857efa1212. (check-in: 7ae596dd user: dan tags: trunk)
12:01
Improved handling of OOM errors in sqlite3ExpandReturning(). dbsqlfuzz 1040b720f0bbc3bdcfe7336acffbf71517e3ef82. (check-in: b9ed2a29 user: drh tags: branch-3.37)
11:49
Improved handling of OOM errors in sqlite3ExpandReturning(). dbsqlfuzz 1040b720f0bbc3bdcfe7336acffbf71517e3ef82. (check-in: 33c6b8e9 user: drh tags: trunk)
2022-01-03
19:33
Test .mode quote blob output (check-in: ef4dcd10 user: larrybr tags: trunk)
01:43
Small performance and size optimization to allocateCursor(). (check-in: 23f04266 user: drh tags: trunk)
2022-01-02
21:53
Remove unnecessary assignment operations in the btree search algorithm, for a small size reduction and performance increase. (check-in: 01bd266e user: drh tags: trunk)
20:54
In the CLI, fix ".mode quote" output for UTF16 BLOBs. Forum post b4bfe62fe6. (check-in: 728e9dcc user: drh tags: trunk)
19:43
Do not open a rollback journal file when the journal_mode is OFF, even if such a file exists on disk. See [forum/forumpost/ec2a102440|forum post ec2a102440] for a description. I so far have been unable to find any harm to come of the problem, other than the assertion fault when in DEBUG mode. (check-in: 71f21f17 user: drh tags: branch-3.37)
19:32
Do not open a rollback journal file when the journal_mode is OFF, even if such a file exists on disk. See [forum/forumpost/ec2a102440|forum post ec2a102440] for a description. I so far have been unable to find any harm to come of the problem, other than the assertion fault when in DEBUG mode. (check-in: fdf9ed66 user: drh tags: trunk)
19:10
Improve formatting of an assert(). No functional changes. (check-in: 4bb78ce8 user: drh tags: trunk)
18:10
Clear the cache of triggers used to implement CASCADE foreign key constraints whenever the schema changes. Fix for the problem identified by forum post 2831335356. (check-in: 4f1313c6 user: drh tags: branch-3.37)
17:46
Earlier detection of corruption in sqlite3BtreeDelete(). Fix for the assertion fault reported by forum post 9d78389221. (check-in: eb072199 user: drh tags: branch-3.37)
17:37
Do not raise an SQLITE_SCHEMA error if in sqlite3Init(). Fix for PoC #2 in forum post b03d86f951. See TH3 for test cases. (check-in: 25beca31 user: drh tags: branch-3.37)
17:24
Fix an obscure problem with releasing savepoints stored in an in-memory journal that could cause subsequent savepoint rollback to fail. (check-in: 3c0806e4 user: drh tags: branch-3.37)
17:14
Remove an obsolete assert() statement that no longer does anything useful and which is not always true. Fix for PoC #1 of forum post b03d86f951. (check-in: 0829c100 user: drh tags: branch-3.37)
17:13
Fix a faulty assert() statement - adding a CORRUPT_DB term - based on a test case derived from [562805cf488a455c]. Also add a test case to that prior issue. (check-in: f9505fcb user: drh tags: branch-3.37)
17:02
Fix harmless compiler warnings seen with MSVC. (check-in: 6e08a542 user: drh tags: branch-3.37)
17:00
Move the pTriggerPrg and pCleanup elements of the Parse object up into the section of that object that is persisted across calls to sqlite3NestedParse(). This fixes a memory leak reported in forum post 24bd1fef7e9323ef. (check-in: ee8b2397 user: drh tags: branch-3.37)
16:48
Performance optimization in btreeParseCellPtr() by unrolling the loop that decodes the rowid. (check-in: fef72368 user: drh tags: trunk)
14:55
Small performance optimization and size reduction in sqlite3BtreeDelete(). (check-in: da0af4dd user: drh tags: trunk)
12:01
Clear the cache of triggers used to implement CASCADE foreign key constraints whenever the schema changes. Fix for the problem identified by forum post 2831335356. (check-in: 5232c977 user: drh tags: trunk)
11:25
Earlier detection of corruption in sqlite3BtreeDelete(). Fix for the assertion fault reported by forum post 9d78389221. (check-in: 13e9ff9e user: drh tags: trunk)
00:16
Bring in trunk shell mods. (check-in: f628c3af user: larrybr tags: cli_extension)
2022-01-01
22:55
Do not raise an SQLITE_SCHEMA error if in sqlite3Init(). Fix for PoC #2 in forum post d7338bf4901f1151. See TH3 for test cases. (check-in: e199a851 user: drh tags: trunk)
20:02
Fix an assert() in pager.c to avoid the possibility of side-effects. (check-in: 1d1fe03c user: dan tags: trunk)
19:55
Attempt to fix a harmless compiler warning in FTS5. (check-in: 8e619c21 user: drh tags: trunk)
19:29
Fix an obscure problem with releasing savepoints stored in an in-memory journal that could cause subsequent savepoint rollback to fail. Problem reported by forum post d7338bf4901f1151, PoC #3. The problem appears to have been introduced at [23ca23894af352ea]. (check-in: 73c2b502 user: dan tags: trunk)
17:21
Remove an obsolete assert() statement that no longer does anything useful and which is not always true. Fix for PoC #1 of forum post d7338bf4901f1151. (check-in: c76a4c0b user: drh tags: trunk)
12:26
Fix a faulty assert() statement - adding a CORRUPT_DB term - based on a test case derived from [562805cf488a455c]. Also add a test case to that prior issue. (check-in: 0dd6b5fc user: drh tags: trunk)
2021-12-31
22:53
Mark the REGEXP operator in the built-in extension as deterministic. (check-in: e654b57a user: drh tags: trunk)
19:20
Simplify the sqlite3RunParser() routine by omitting the third parameter. Results in a binary that is about 100 bytes smaller and 1.4M cycles faster. (check-in: 6fb2a1bb user: drh tags: trunk)
19:08
Fix harmless compiler warnings in the shell. (check-in: f3ea36d7 user: mistachkin tags: trunk)
18:26
Fix harmless compiler warnings seen with MSVC. (check-in: a9bfb621 user: mistachkin tags: trunk)
17:54
Performance optimization and size reduction in sqlite3RunParser(). (check-in: 41ee2bac user: drh tags: trunk)
16:37
Move the pTriggerPrg and pCleanup elements of the Parse object up into the section of that object that is persisted across calls to sqlite3NestedParse(). This fixes a memory leak reported in forum post 24bd1fef7e9323ef. (check-in: 562805cf user: drh tags: trunk)
2021-12-30
17:46
Remove unnecessary conditionals around the ORDER BY resolver calls in multiSelectOrderBy(). (check-in: f2887e01 user: drh tags: trunk)
17:36
When constructing the sqlite3_index_info object for the xBestIndex method of a virtual table, omit constant trims from the ORDER BY clause, as they will always be in the correct order. (check-in: 524c2b87 user: drh tags: trunk)
16:14
Merge the 3.37.1 patches into the reuse-schema branch. (check-in: e9e95c8f user: drh tags: reuse-schema-3.37)
15:30
Version 3.37.1 (check-in: 378629bf user: drh tags: release, version-3.37.1, branch-3.37)
12:26
Disable the atof1.test test module on non-x64 hardware. (check-in: 986a94d0 user: drh tags: branch-3.37)
11:35
Fix windowC tests to specify little-endian or big-endian UTF16, for cross-platform portability. Forum post 559b84a5c6|. And give the correct prefix to tests in the windowC.test module. (check-in: 8af7cb2a user: drh tags: branch-3.37)
11:27
Do not attempt to reprepare a prepared statement that returns SQLITE_SCHEMA if there was an OOM. This enhancement supercedes check-in [fee469925231d074]. (check-in: 103f95db user: drh tags: branch-3.37)
11:13
Change an assert() in FTS3 into assert_fts3_nc(), since it is a harmless condition that can occur when processing a corrupt database file. (check-in: 35e2b27a user: drh tags: branch-3.37)
03:56
Fix a minor issue in the configure script. (check-in: 0413d37e user: drh tags: branch-3.37)
03:22
Following a prior error, an ALWAYS() in sqlite3ExprCanBeNull() might be false. dbsqlfuzz 5dbec6678a20e7595a34dfdd869a3b9722b3ca43. (check-in: b33e4770 user: drh tags: branch-3.37)
03:12
When a table has an INTEGER PRIMARY KEY ON CONFLICT REPLACE and some other uniqueness constraint, and it participates in an upsert on that other constraint, ensure that code that checks for conflicts on the INTEGER PRIMARY KEY is well-formed. Fix for the problem reported by forum post 06b16b8b29f8c8c3. (check-in: 1f1e0b4e user: drh tags: branch-3.37)
02:38
When a table has an INTEGER PRIMARY KEY ON CONFLICT REPLACE and some other uniqueness constraint, and it participates in an upsert on that other constraint, ensure that code that checks for conflicts on the INTEGER PRIMARY KEY is well-formed. Fix for the problem reported by forum post 06b16b8b29f8c8c3. (check-in: 2f09b51b user: drh tags: trunk)
00:37
When implementing a multi-way compound SELECT using merge, try to balance the merge tree. (check-in: bb8522fe user: drh tags: trunk)
2021-12-29
13:32
Minor changes to shell1.test test results to account for the new feature of the shell that points to the specific part of the input line where the error occurs. (check-in: d4870c08 user: drh tags: trunk)
04:31
Ensure that the affinity of columns is honored in the RETURNING clause. See forum post e0c7574ab2 for the bug report. (check-in: 4711fb69 user: drh tags: trunk)
04:13
Add the sqlite3_error_offset() interface. Use it to enhance error reporting in the CLI. (check-in: 416602a8 user: drh tags: trunk)
04:10
Make .read's help tell of piped input (check-in: 155c3e9c user: drh tags: trunk)
04:10
Change an assert() in FTS3 into assert_fts3_nc(), since it is a harmless condition that can occur when processing a corrupt database file. (check-in: e773d621 user: drh tags: trunk)
04:08
Fix the build-breaker bug in test1.c introduced by check-in [7fa20ca4c09ab024]. (Closed-Leaf check-in: 5f804da1 user: drh tags: build-bug)
2021-12-28
05:08
Make .read's help tell of piped input (check-in: e4ddcd8a user: larrybr tags: build-bug)
2021-12-25
23:59
Change an assert() in FTS3 into assert_fts3_nc(), since it is a harmless condition that can occur when processing a corrupt database file. (check-in: c03205ae user: drh tags: build-bug)
00:26
Add the sqlite3_error_offset() interface. Use it to enhance error reporting in the CLI. (Later:) There is a bug in src/test1.c that prevents the code from even building. How did this pass tests? Moving to a branch to prevent fugure bisect problems. (check-in: 7fa20ca4 user: drh tags: build-bug)
00:19
One minor change for an exceptional case in sqlite3_error_offset(). (Closed-Leaf check-in: c93609a8 user: drh tags: improved-error-context)
2021-12-24
20:51
Create new branch named "instr-bidir-more" (Leaf check-in: 4ca96d2d user: larrybr tags: instr-bidir-more)
20:22
Add the sqlite3_error_offset() interface. Use it in the CLI to provide better context for error messages. (check-in: b518ce77 user: drh tags: improved-error-context)
19:44
Fix a minor problem in the CLI introduced by [d156123885abe6bf], apparently. (check-in: 37e6e10f user: drh tags: trunk)
13:30
Raise an error if a schema name is attached to the table-alias name of a subquery or view. See forum post 021a33600b for the bug report. (check-in: 8af8c153 user: drh tags: trunk)
2021-12-23
00:16
Reduce the size of the compiled binary by a couple of hundred bytes by using a thigher packing of a transformation table in date.c. Suggested by forum post 4f6efbb2a9. (check-in: c75ba4fa user: drh tags: trunk)
2021-12-21
16:59
Update the README.md to instruct the user to remove the final comment line from the "manifest" file before using it to compute the check-in hash. (check-in: 7b4f9d95 user: drh tags: trunk)
2021-12-20
23:46
In the json1 extension, which compiling it separately, ensure that either SQLITE_DEBUG macro or the NDEBUG macro is set prior to including assert.h. If neither macro is defined, then assert() statement do generate code but VVA() statements do not, and that is a deadly combination. forum post 858dee399e (check-in: d9f814a6 user: drh tags: trunk)
17:00
Remove old script ext/fts3/mkfts3amal.tcl, as it doesn't work. (check-in: 9e33ee24 user: dan tags: trunk)
2021-12-17
23:56
Improved documentation for the sqlite3_vtab_collation() interface. (check-in: 826f84a9 user: drh tags: trunk)
2021-12-16
19:50
Fix windowC tests to specify little-endian or big-endian UTF16, for cross-platform portability. Forum post 559b84a5c6 (check-in: adf3a1e6 user: drh tags: trunk)
19:43
Give the correct prefix to tests in the windowC.test module. (check-in: fb434563 user: drh tags: trunk)
17:57
In the CLI, omit the ".oom" command (only available in debug builds) and disable the experimental ".expert" commmand in --safe mode. (check-in: 5cda1f7d user: drh tags: trunk)
17:35
New defenses against OOM and corrupt database problems in the CLI. (check-in: 5c9fd7fd user: drh tags: trunk)
17:21
Fix a typo in the result of one of the new test cases. (check-in: 4d02a129 user: drh tags: trunk)
15:29
Fix fts3 and fts4 so that they can still be used even if the other is dropped by a call to sqlite3_drop_modules(). (check-in: a0a8d6c9 user: dan tags: trunk)
14:59
Fix a memory leak in the CLI that occurs after an error in the ".open" command. (check-in: d1561238 user: drh tags: trunk)
14:36
Fix harmless compiler warning in the new Bloom filter logic. (check-in: 9406d95d user: drh tags: trunk)
14:26
Improved robustness against OOM in the expert extension. (check-in: e732c429 user: drh tags: trunk)
13:56
Fix a potential NULL pointer dereference in the CLI logic for printing the schema of virtual tables. (check-in: fe44ebf6 user: drh tags: trunk)
13:29
Add more tests for OOM conditions in the CLI. (check-in: b6fa402d user: drh tags: trunk)
00:36
Change the query planner so that it excludes virtual table constraints that do not have the correct collation. This breaks the expert extension. (Closed-Leaf check-in: da3aae7b user: drh tags: vtab-collation-fix)
2021-12-15
20:48
Simplify the generation of the sqlite3_index_info object during query planning for virtual tables. (check-in: 241dc042 user: drh tags: trunk)
13:48
Update this branch with the latest trunk and wal2 changes, including the checkpoint-on-close wal2 mode fix. (check-in: cffc31bf user: dan tags: begin-concurrent-report-wal2)
13:42
Merge checkpoint-on-close fix from wal2 branch. (check-in: a92eca6c user: dan tags: begin-concurrent-pnu-wal2)
12:51
Fix a problem causing one wal file to be deleted without being checkpointed on close in cases where the last connection to close the db does so with an out of date wal-index header in memory. (check-in: b0a70a23 user: dan tags: wal2)
2021-12-14
20:13
Enhance the virtual table query planner so that it is able to deal with ORDER BY terms that contain COLLATE clauses as long as the specified collation matches the virtual table. This is especially important for UNION ALL since a "COLLATE binary" is added to ORDER BY clauses if no COLLATE clause exists in the original SQL. (check-in: 5c3d398d user: drh tags: trunk)
18:11
Minor fix to the ORDER BY elimination logic in generate_series(). (check-in: a2e50712 user: drh tags: trunk)
00:36
Omit the return value from sqlite3VdbeSerialGet() for a size reduction and performance improvement. (check-in: 788e79f8 user: drh tags: trunk)
2021-12-13
19:59
Small performance optimization and code size reduction in moveToRoot(). (check-in: cdcde00b user: drh tags: trunk)
18:53
Add NEVER() on an unreachable branch in the Bloom filter pull-down logic. (check-in: 47107046 user: drh tags: trunk)
18:43
Fix an off-by-one error in the Bloom filter pulldown logic, found by OSSFuzz. Also fix over-length source code lines in the immediate vicinity. (check-in: 02762652 user: drh tags: trunk)
00:02
Remove unused code. (check-in: b98b24f2 user: drh tags: trunk)
2021-12-11
17:10
Do not allow early evaluation of Bloom filters that use the IN operator as the machinery to deal with the IN operator is not available. dbsqlfuzz 5b51c247518278f79a45cea978702e86e86cd4f9. (check-in: 799db7cb user: drh tags: trunk)
2021-12-10
21:01
Factor out the logic that does quoting for the SQL quote() function, so that it might be reused for other purposes. (check-in: 8e98ba1e user: drh tags: trunk)
18:11
Almost all shell tests except shell8.test pass. (a WIP) (check-in: 653db501 user: larrybr tags: cli_extension)
17:36
Rename the internal routine constructBloomFilter() to sqlite3ConstructBloomFilter(). OSSFuzz is reporting a crash with a garbled stack that we cannot reproduce. Perhaps the original "constructBloomFilter()" name is colliding with some internal name used by OSSFuzz. We'll see if this rename clears the problem. (check-in: 403e7312 user: drh tags: trunk)
2021-12-09
20:06
Add support for Bloom-filters as a performance optimization for joins. (check-in: 633bfeee user: drh tags: trunk)
19:42
Remove unused code and fix comments. Final cleanup before merging. (Closed-Leaf check-in: ce42039f user: drh tags: bloom-filter)
18:44
Enable bloom filters for the right table of a LEFT JOIN. Fix unreachable branches. (check-in: d342ab72 user: drh tags: bloom-filter)
16:45
Pickup trunk .mode upgrade + cosmetic shell changes (check-in: 8dc69c81 user: larrybr tags: cli_extension)
16:26
Add ".mode off" and ".mode count" to the CLI. (check-in: 1eefd957 user: drh tags: trunk)
16:17
Add ".mode off" and ".mode count" to the CLI. (check-in: b11f4d08 user: drh tags: bloom-filter)
14:15
New test cases added to test/fuzzdata8.db (check-in: 70468770 user: drh tags: trunk)
14:09
Do not attempt to reprepare a prepared statement that returns SQLITE_SCHEMA if there was an OOM. This enhancement supercedes check-in [fee469925231d074]. (check-in: 94fdbeff user: drh tags: trunk)
04:45
Closer to passing all Tcl tests (with an odd failure) (check-in: 6956e989 user: larrybr tags: cli_extension)
01:28
Add SQLITE_TESTCTRL_LOGEST and enhance the LogEst utility program. Improvements to testability of bloom filters. (check-in: 88b43d79 user: drh tags: bloom-filter)
2021-12-08
20:36
Clarity tweak for date.c (check-in: db58b2de user: larrybr tags: trunk)
19:50
Improvements on the decision of whether or not to use a Bloom filter. (check-in: 0fb2a4e0 user: drh tags: bloom-filter)
18:50
Enhance the sqlite3SrcListAppendFromTerm() routine so that it sets the Parser error on an OOM, causing an earlier unwind of the stack. (check-in: fee46992 user: drh tags: trunk)
16:15
Merge the WhereClause fix from trunk (check-in: d3250256 user: drh tags: bloom-filter)
16:07
In the WhereClause object, do not assume that all TERM_VIRTUAL terms appear at the end of the list, because that is no longer true. Instead, keep a separate nBase count that is the size of the list excluding the tail of virtual terms. Use nBase instead of nTerm when scanning terms that are not virtual. Add assert()s to validate correctness of WhereClause. (check-in: 6024682c user: drh tags: trunk)
2021-12-07
23:02
For CLI, extensibility refinement and small steps toward embedability (check-in: ad9970bc user: larrybr tags: cli_extension)
22:37
Do not generate a Bloom filter if it cannot be used prior to the next seek, as that leads to a misleading EXPLAIN QUERY PLAN. (check-in: 2739ed51 user: drh tags: bloom-filter)
2021-12-06
23:07
Improved EXPLAIN QUERY PLAN output for Bloom filters. (check-in: 00070e1f user: drh tags: bloom-filter)
21:45
Add SQLITE_STMTSTATUS_FILTER_HIT and _MISS for tracking the effectiveness of Bloom filters. (check-in: 24ba535d user: drh tags: bloom-filter)
20:16
Omit the OP_FilterInit opcode. Use OP_Blob to initialize each Bloom filter instead. Size the Bloom filter based on sqlite_stat1 size estimates rather than a run-time measurement for improved testability. (check-in: 8a9036ee user: drh tags: bloom-filter)
19:11
Merge trunk fixes into the bloom-filter branch. (check-in: edacf803 user: drh tags: bloom-filter)
19:03
Fix an OOB read that could occur in fts5 when processing corrupt records. (check-in: 734606ea user: drh tags: branch-3.37)
18:57
Fix an OOB read that could occur in fts5 when processing corrupt records. (check-in: bb9b1a15 user: dan tags: trunk)
17:23
Create new branch named "ppvar_manage" (Leaf check-in: 74ee8d2b user: larrybr tags: ppvar_manage)
16:56
Do not allow SQLITE_LIMIT_LENGTH to be set lower than 1 as an SQLITE_LIMIT_LENGTH of 0 causes lots of unnecessary problems for users of the sqlite3_str object. (check-in: 286243f3 user: drh tags: branch-3.37)
16:51
Do not allow certain dangerous ".testctrl" commands in safe mode. (check-in: 4602644f user: drh tags: branch-3.37)
16:42
Fix SQLITE_TESTCTRL_IMPOSTER so that it is a harmless no-op if the schema parameter is invalid. (check-in: b15c553c user: drh tags: branch-3.37)
16:36
In the shell tool, avoid modifying internal data structures until after the arguments to ".open" have been parsed. (check-in: cbd69ed8 user: drh tags: branch-3.37)
16:29
Start a new branch on which to cherrypick fixes against 3.37.0. (check-in: cea9e41a user: drh tags: branch-3.37)
16:22
Merge .testctrl safe mode blocks (check-in: a42fc4ac user: larrybr tags: cli_extension)
15:40
Do not allow SQLITE_LIMIT_LENGTH to be set lower than 1 as an SQLITE_LIMIT_LENGTH of 0 causes lots of unnecessary problems for users of the sqlite3_str object. (check-in: 8fd5b8ec user: drh tags: trunk)
15:24
Do not allow certain dangerous ".testctrl" commands in safe mode. (check-in: 080e72d1 user: drh tags: trunk)
15:08
Fix SQLITE_TESTCTRL_IMPOSTER so that it is a harmless no-op if the schema parameter is invalid. (check-in: 2d9a45ab user: drh tags: trunk)
13:07
Attempt to vary the size of Bloom filters based on an estimate of how many keys the filter will hold. (check-in: a7adcf69 user: drh tags: bloom-filter)
2021-12-05
20:19
Run as many Bloom filters as possible before index lookups. (check-in: 06f6fefd user: drh tags: bloom-filter)
00:45
Try to run all Bloom filters before any Seeks. This gives a small performance gain on the Star-Schema Benchmark. (check-in: 5be2470f user: drh tags: bloom-filter)
2021-12-04
21:11
Miscellaneous cleanup of the new Bloom-filter code. (check-in: 201b6dd8 user: drh tags: bloom-filter)
18:45
Add VdbeCoverage() macros. Adjust the Bloom-filter hash function so that it correctly deals with zero-blobs. (check-in: 629ee2e3 user: drh tags: bloom-filter)
18:40
Add design doc for shell extensibility (check-in: 96b8ffb0 user: larrybr tags: cli_extension)
14:24
Apply the Bloom filter only on those terms of an index that have equality constraints. (check-in: a7042959 user: drh tags: bloom-filter)
13:52
Add the "WITH BLOOM FILTER" clause to the EXPLAIN QUERY PLAN output for cases were a Bloom filter is used. (check-in: 8e078c0e user: drh tags: bloom-filter)
13:43
First attempt to use Bloom filters to optimize star-schema queries. (check-in: 28161fba user: drh tags: bloom-filter)
2021-12-03
19:27
Extension interface tweaks in support of planned usage (check-in: ce2a9143 user: larrybr tags: cli_extension)
19:10
Merge the sqlite3WhereBegin() simplification from trunk. (check-in: 41ba2dfd user: drh tags: bloom-filter)
18:53
Factor the noop-join-elimination optimization out of the sqlite3WhereBegin() routine and into a separate "no-inline" subroutine, in order to reduce the complexity of sqlite3WhereBegin() and thereby encourage C compilers to inline sqlite3WhereCodeOneLoopStart(). (check-in: 6225e9ab user: drh tags: trunk)
16:02
Merge recent trunk enhancements into the bloom-filter branch. (check-in: 11d97fb8 user: drh tags: bloom-filter)
15:48
Fix exprAnalyze() after recent performance enhancements so that it is able to handle IF_NULL_ROW opcode correctly, again. (check-in: 8029e6ba user: drh tags: trunk)
14:57
Fix unreachable branches resulting from prior optimizations. (check-in: f3d6853e user: drh tags: trunk)
14:43
Fix an over-length source code line in build.c. No logic changes. (check-in: b9db5c5f user: drh tags: trunk)
13:42
Performance optimization in the B-Tree cursor allocator btreeCursor(), making it about 800K CPU cycles faster in speedtest1, and reducing the executable size by about 100 bytes. (check-in: 9df93971 user: drh tags: trunk)
2021-12-02
20:30
Make shell buildable, fix a potential leak-to-be (check-in: eab1e1af user: larrybr tags: cli_extension)
18:15
Optimizations to exprAnalyze() and sqlite3WhereExprUsage() save about 1.5 million CPU cycles for speedtest1, and result in a smaller binary. (check-in: 1f2252e6 user: drh tags: trunk)
18:09
Merge for CLI fix. (check-in: 98cf1861 user: larrybr tags: cli_extension)
14:28
Move the TK_IS token so that it is adjacent to the TK_IN token, as this allows the C compiler to optimize better, resulting in a slightly smaller and faster executable. (check-in: 8832fa90 user: drh tags: trunk)
14:16
In the shell tool, avoid modifying internal data structures until after the arguments to ".open" have been parsed. (check-in: fcc509d3 user: dan tags: trunk)
13:45
Remove an unnecessary branch from exprAnalyze(), resulting in a small performance gain. (check-in: 3312be1d user: drh tags: trunk)
12:55
Small performance optimization in sqlite3WhereClauseClear(). (check-in: 080b35e6 user: drh tags: trunk)
12:34
More small performance optimizations for sqlite3WhereGetMask(). (check-in: 3de2c557 user: drh tags: trunk)
04:00
Small performance optimization in sqlite3WhereGetMask(). (check-in: 7edec54a user: drh tags: trunk)
02:22
Small performance enhancement for whereScanInit(). (check-in: ed84e124 user: drh tags: trunk)
01:30
Performance improvement in query planning. (check-in: ca59533b user: drh tags: trunk)
2021-12-01
21:07
Merge trunk fixes into the bloom-filter branch. (check-in: 0864bfbf user: drh tags: bloom-filter)
19:17
Check for foreign key constraint errors prior to returning the results from a RETURNING clause. See forum post 793beaf322. (check-in: a818ba2e user: drh tags: trunk)
17:46
Extensible shell builder changes in prep for actual extension load (check-in: 00c5af1f user: larrybr tags: cli_extension)
16:31
Add a Bloom filter to the automatic-index mechanism. (check-in: 50ac4de1 user: drh tags: bloom-filter)
11:03
Add the "static" qualifier to some internal functions in code for various SQLite extensions. (check-in: 8c986782 user: dan tags: trunk)
2021-11-30
23:00
Merge in 3.37 release (check-in: 15780cb2 user: larrybr tags: cli_extension)
22:57
Port recent improvements to extensible shell (check-in: bfa94f3d user: larrybr tags: cli_extension)
14:07
In the automatic index generator logic, be more precise about when a partial automatic index is allowed in order to capture more cases where it is legal to use a partial automatic index. (check-in: 664b461b user: drh tags: trunk)
2021-11-29
18:09
Merge in the proposed date/time function enhancements: (1) Add the unixepoch() function, (2) the 'auto' modifier and (3) the 'julianday' modifier. (check-in: 19c51b46 user: drh tags: trunk)
17:55
Bump the version number up to 3.38.0 in order to begin the next development cycle. (check-in: 8ad1fcaa user: drh tags: trunk)
17:23
Add the unixepoch() function and the 'auto' and 'julianday' modifiers. (Closed-Leaf check-in: 559fdc0a user: drh tags: unixepoch)
2021-11-28
19:54
Following a prior error, an ALWAYS() in sqlite3ExprCanBeNull() might be false. dbsqlfuzz 5dbec6678a20e7595a34dfdd869a3b9722b3ca43. (check-in: 4e207401 user: drh tags: trunk)
2021-11-27
15:12
Merge version 3.37.0 into the reuse-schema branch. (check-in: f83d50d5 user: drh tags: reuse-schema)
15:11
Merge version 3.37.0 into the begin-concurrent-pnu-wal2 branch. (check-in: 2171996a user: drh tags: begin-concurrent-pnu-wal2)
15:00
Merge version 3.37.0 into the wal2 branch. (check-in: 3425af62 user: drh tags: wal2)
14:56
Merge version 3.37.0 into the begin-concurrent-report branch. (check-in: 126d7a1d user: drh tags: begin-concurrent-report)
14:48
Merge version 3.37.0 into the begin-concurrent-pnu branch. (Closed-Leaf check-in: 910001f2 user: drh tags: begin-concurrent-pnu)
14:45
Merge version 3.37.0 into the begin-concurrent branch. (check-in: c5f2ad19 user: drh tags: begin-concurrent)
14:13
Version 3.37.0 (check-in: bd41822c user: drh tags: trunk, release, major-release, version-3.37.0)
12:03
Fix a harmless comment typo. (check-in: 7c567338 user: drh tags: trunk)
2021-11-26
20:26
Add platform "Darwin-arm64" to test/releasetest_data.tcl. (check-in: 1d5c9aac user: drh tags: trunk)
17:10
Improved defenses against integer overflow when computing the size of a memory allocations. No bugs were fixed here. But perhaps future bugs will be prevented. (check-in: eb878c01 user: drh tags: trunk)
15:08
Fixes to internal comments. No changes to code or documentation. (check-in: 1489b196 user: drh tags: trunk)
2021-11-24
21:16
Avoid splitting Failure-Detection test cases in wapptest.tcl. (check-in: 654e6cf8 user: dan tags: trunk)
11:33
Update Makefile.msc to support target "tcltest" in the same way as the autoconf build system. (check-in: 0f131b92 user: dan tags: trunk)
2021-11-23
22:28
Changes a test pattern for RBU so that it works regardless of whether newer TCL versions are used. (check-in: 5a9921c9 user: drh tags: trunk)
12:59
Fix a compiler warning in the dbserialize method of the TCL interface. (check-in: ba71d030 user: drh tags: trunk)
11:34
Exclude two recently added tests in where.test from valgrind runs. They fail due to the subtly different handling of real numbers under valgrind. (check-in: e842d208 user: dan tags: trunk)
2021-11-22
17:08
Merge trunk enhancements into the begin-concurrent-report-wal2 branch. (check-in: 9b2ffa84 user: drh tags: begin-concurrent-report-wal2)
17:01
Merge trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 8a9fad0f user: drh tags: begin-concurrent-pnu-wal2)
16:50
Omit wal mode tests in memdb1.test for builds and configurations that do not support wal mode. (check-in: 0f13c0d9 user: dan tags: trunk)
16:48
Omit wal mode tests in vacuum-into.test for builds and configurations that do not support wal mode. (check-in: 65de1763 user: dan tags: trunk)
16:47
Merge trunk enhancements into the wal2 branch. (check-in: 135133b7 user: drh tags: wal2)
16:43
Do not attempt to run the tests in alterfault.est with SQLITE_OMIT_ALTERTABLE builds. (check-in: 6f6f31c7 user: dan tags: trunk)
16:39
Merge the latest trunk enhancements into the begin-concurrent-report branch. (check-in: ddc11f55 user: drh tags: begin-concurrent-report)
16:27
Fix a typo in memdb1.test preventing tests from passing with -DSQLITE_DEFAULT_AUTOVACUUM=1 builds. (check-in: eff4187c user: dan tags: trunk)
16:27
Merge the latest trunk enhancements into the begin-concurrent-pnu branch. (check-in: aa045e7b user: drh tags: begin-concurrent-pnu)
16:14
Merge the latest trunk changes into the begin-concurrent branch. (check-in: 8f3e6842 user: drh tags: begin-concurrent)
16:06
There are two possible error messages from stat-9.1, depending on compile-time options. Adjust the test case to accept either one. (check-in: 0f567b61 user: drh tags: trunk)
16:05
Merge recent trunk enhancements into the reuse-schema branch. (check-in: d08832cb user: drh tags: reuse-schema)
13:59
In fuzzcheck, improve the defense against long delays due to rogue busy_timeout macros in fuzzer-generated scripts. (check-in: 3024d7ca user: drh tags: trunk)
13:35
Fix the build for SQLITE_OMIT_CTE. (check-in: d7ef96ba user: drh tags: trunk)
12:59
In the previous check-in, do not overwrite the SQLITE_CORRUPT signal with an SQLITE_OK before exiting fts3auxNextMethod(). (check-in: 396688ae user: drh tags: trunk)
08:12
Fix a crash in the fts3aux code that could occur handling corrupt records. (check-in: cdcd65b8 user: dan tags: trunk)
2021-11-20
13:30
New test cases for STRICT and NOT NULL in PRIMARY KEY. (check-in: 0eafbc2f user: drh tags: trunk)
2021-11-19
19:11
Small performance increase and size reduction for sqlite3ExprCompare(). This change also handles some corner cases without the need for ALWAYS(). (check-in: d814ba6e user: drh tags: trunk)
14:02
Fix a benign data race in os_unix.c that might trouble tsan and similar tools. (check-in: 95806ac1 user: dan tags: trunk)
2021-11-18
20:56
Minor tweaks to the way auxiliary tools are built, to make it easier to customize the builds without having to alter the code. (check-in: 90b06b6f user: drh tags: trunk)
20:11
Fix a performance regression in rtree introduced by the previous commit. (check-in: 7f42b8e1 user: dan tags: trunk)
19:15
Fix a problem slowing down the handling of == constraints in the rtree module. (check-in: 509027e9 user: dan tags: trunk)
15:40
Improve CSV quoting in the CLI using the strstr() function. (check-in: b7927bf9 user: drh tags: trunk)
13:25
Fix an obscure problem associated with quoting of CSV output in the CLI. (check-in: 38a9b660 user: drh tags: trunk)
2021-11-17
14:21
Apply the begin-concurrent-report patch to the wal2 branch. (check-in: 8eef8782 user: dan tags: begin-concurrent-report-wal2)
2021-11-16
13:36
Fix a problem causing an OOM within an ALTER TABLE ADD COLUMN command that adds a column with a CHECK constraint to go unreported. (check-in: a33f5e93 user: dan tags: trunk)
2021-11-15
19:10
Strengthen the sticky-CORRUPT idea of check-in [3feb0f1c3840904d] by automatically changing the first COMMIT after an SQLITE_CORRUPT error into a ROLLBACK. (check-in: bd66ab8a user: drh tags: trunk)
18:50
Small performance optimization in sqlite3VdbeHalt(). (check-in: 9e1ecf43 user: drh tags: trunk)
14:11
Fix a problem causing the count(*) optimization to be misapplied in some cases where an aggregate sub-query uses a count() expression that is aggregated against the outer query. (check-in: e3091727 user: dan tags: trunk)
13:22
Improved context shown for the "ABORT-due-to-error" output line when using "PRAGMA vdbe_debug=on" in an SQLITE_DEBUG build. (check-in: c7776369 user: drh tags: trunk)
01:45
Fix a faulty JSON assert() added 30 days ago by check-in [7b8ea2298927fd34]. dbsqlfuzz f30366e7b02562398a387ddcc681422fd4251190. (check-in: 0e0c23fc user: drh tags: trunk)
2021-11-12
14:39
Improved handling of OOM while reallocating a column name to add type information. dbsqlfuzz 5a195b4233649e49e0aa34f1b743ca192d85b198 (check-in: 5995dd4d user: drh tags: trunk)
2021-11-11
23:52
Make sure the rowid value returned by the VUpdate opcode is always initialized. (check-in: 150b5be5 user: drh tags: trunk)
16:26
Remove a NEVER() that was add yesterday. The fuzzer found a new test case to make it happen. (check-in: 83e6ac71 user: drh tags: trunk)
11:23
New assert() statements to help prove correct usage of VdbeCursor objects. (check-in: 7cee62f7 user: drh tags: trunk)
2021-11-10
15:23
Load new test cases into test/fuzzdata8.db (check-in: 8b53ffe9 user: drh tags: trunk)
10:59
Make SQLITE_CORRUPT sticky: If a CORRUPT error is returned, all subsequent write statements within the same transaction also fail early with SQLITE_CORRUPT. (check-in: 3feb0f1c user: drh tags: trunk)
2021-11-09
15:36
Merge all recent trunk changes into the begin-concurrent-report branch. (check-in: 122f4a76 user: drh tags: begin-concurrent-report)
15:26
Merge all recent trunk enhancements into the begin-concurrent-pnu branch. (check-in: b9802d0b user: drh tags: begin-concurrent-pnu)
15:18
Merge all recent trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 07bc1339 user: drh tags: begin-concurrent-pnu-wal2)
15:06
Merge all recent trunk enhancements into the begin-concurrent branch. (check-in: 2d0c8f30 user: drh tags: begin-concurrent)
14:52
Merge the walIndexPage() enhancement from trunk into the begin-concurrent branch. (check-in: ff223839 user: drh tags: begin-concurrent)
14:36
Merge all trunk enhancements prior to the walIndexPage() fix into the begin-concurrent branch. (check-in: 6603f005 user: drh tags: begin-concurrent)
14:00
Merge recent trunk enhancements into the reuse-schema branch. (check-in: 748bce4c user: drh tags: reuse-schema)
13:52
Merge the latest trunk enhancements into the wal2 branch. (check-in: 0894f595 user: drh tags: wal2)
13:31
Change test case error message text to match the current implementation. (check-in: de10795a user: drh tags: trunk)
01:48
Fix lempar.c so that Lemon can compile with NDEBUG defined. Forum post f331adca0b (check-in: ba4fb518 user: drh tags: trunk)
2021-11-08
23:24
Refactor the code that figures out which SELECT in a cascade of nested queries a particular aggregate function belongs to. This fixes the problem reported by forum post c7cc2aa3546e39c1. New test cases in dbsqlfuzz and th3. (check-in: 74aec5dd user: drh tags: trunk)
19:35
Fix the zeroblob() function and related APIs so that they work with SQLITE_OMIT_INCRBLOB builds. (check-in: bc401a75 user: dan tags: trunk)
16:38
Add assert()s that verify that cursor numbers on subqueries are always greater than outer cursor numbers. Except, this is not always true in the presence of query flattening. We might need to relax that constraint. This branch will probably become a dead-end. For now it is saved for reference. (Closed-Leaf check-in: 6f436966 user: drh tags: well-ordered-cursors)
15:46
Fix an assert() in memdbTruncate() that could fail when processing a corrupt database. (check-in: b1e29298 user: dan tags: trunk)
2021-11-07
23:33
Ensure that the window function rewrite does not leave the parse tree in an invalid state that might cause problems downstream before the error is recognized and unwinds the stack. Also take steps such that an invalid parse tree does not cause problems even if it goes unrecognized. Forum post 398e9d5aa9. (check-in: 0f9fc6b6 user: drh tags: trunk)
2021-11-06
20:25
Add ALWAYS() to a branch made unreachable by the previous check-in. (check-in: 0dc963f6 user: drh tags: trunk)
18:22
Return an error if an attempt is made to drop an eponymous virtual table. (check-in: 889dea52 user: dan tags: trunk)
16:46
Merge further changes from trunk into this branch. (check-in: 700876b7 user: dan tags: wal2)
16:36
Merge change [6979efbf07d93e7a] from trunk to this branch. (check-in: 2bb2448d user: dan tags: wal2)
16:10
Merge changes from trunk into this branch. (check-in: 52667bce user: dan tags: wal2)
11:58
Add the rbu_exclusive_checkpoint query parameter to RBU. (Leaf check-in: c15806a4 user: drh tags: reuse-schema-3.36)
10:59
Avoid accessing the sqlite3_module.xShadowName field if (sqlite3_module.iVersion<3). (check-in: a024764c user: drh tags: trunk)
07:08
Avoid accessing the sqlite3_module.xShadowName field if (sqlite3_module.iVersion<3). (check-in: b1fc3de8 user: dan tags: reuse-schema)
2021-11-05
23:32
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: ca09148e user: drh tags: reuse-schema)
22:35
Add the rbu_exclusive_checkpoint query parameter to RBU. (check-in: c2d33ea9 user: drh tags: trunk)
22:23
New test cases for rbu_exclusive_checkpoint query parameter. (Closed-Leaf check-in: 00285ff1 user: drh tags: rbu_exclusive_checkpoint)
19:52
Update an assert() statement to conform to the changes of the previous check-in. (check-in: b5c668ca user: drh tags: trunk)
19:36
Add the SQLITE_OPEN_EXRESCODE flag for sqlite3_open_v2(). (check-in: ff9373f4 user: drh tags: trunk)
19:04
If the target database URI passed to sqlite3rbu_open() is contains the option "rbu_exclusive_checkpoint=1", hold an exclusive lock for the duration of any incremental checkpoint operation. (check-in: 7cb77296 user: dan tags: rbu_exclusive_checkpoint)
14:13
Update sqllimits1.test to account for recent changes to SQL function strftime(). (check-in: 7bba415f user: dan tags: trunk)
12:34
Use the FTS_CORRUPT_VTAB macro rather than a direct call to sqlite3Fts3Corrupt() in [2fad2a89527757b3] so that the build works in all cases. (check-in: 029c59cd user: drh tags: trunk)
11:52
Remove an incorrect NEVER() reported at forum post 5bbabfb7ce. Also use this opportunity to improve the isSimpleCount() function with better formatting, an expanded header comment, and some extra assert() and textcase() macros. (check-in: 2927185b user: drh tags: trunk)
11:26
Fix vacuum3.test so that it works with SQLITE_OMIT_ALTERTABLE builds. (check-in: 07cca2fa user: dan tags: trunk)
11:18
Update a test case in sqllimits1.test to account for the updated implementation of SQL function strftime() (check-in: f474ac37 user: dan tags: trunk)
10:43
Fix a couple of problems with test scripts and SQLITE_OMIT_ALTERTABLE builds. (check-in: 3ab5414d user: dan tags: trunk)
2021-11-04
18:04
Fix a crash that could occur in fts3 when processing a corrupt database. (check-in: 2fad2a89 user: dan tags: trunk)
16:25
Fix corruptN.test so that it works with SQLITE_DEFAULT_AUTOVACUUM=1 builds. (check-in: f60e05bd user: dan tags: trunk)
16:15
Update a test case in corruptN.test to account for the fact that if writable_schema=1 is set, no error is raised if a DELETE statement finds that an index entry is missing ([19e56291a7344c7a]). (check-in: a90c5f0b user: dan tags: trunk)
16:03
Have wapptest.tcl avoid attempting to build fuzztest for SQLITE_OMIT_VIRTUALTABLE configurations. (check-in: 53ee208d user: dan tags: trunk)
15:17
Fix typo in the sqlite3ext.h file. forum post 63802db4ce (check-in: d4a48ee0 user: drh tags: trunk)
14:04
Show the preferred schema table names in the output of "PRAGMA table_list". (check-in: 9147390d user: drh tags: trunk)
11:34
Change a branch made unreachable by the previous check-in into an assert(). (check-in: 685a987c user: drh tags: trunk)
00:51
First the shadow table mechanism so that it works even if the shadow table comes before the virtual table in the sqlite_schema table, as can happen after a VACUUM. (check-in: 005a8642 user: drh tags: trunk)
2021-11-03
16:35
Remove two incorrect assert() statements added by a check-in from earlier today. (check-in: 3206edff user: drh tags: trunk)
15:59
Improved the error message that results when a schema parse fails after ALTER TABLE ADD COLUMN. (check-in: b007a39d user: drh tags: trunk)
14:02
Fix INSERT into STRICT table with STATIC generated columns. (check-in: 24285d91 user: drh tags: trunk)
12:50
Add the --strict option to speedtest1.c (check-in: a247b5d8 user: drh tags: trunk)
11:43
Fix an issue in PRAGMA integrity_check associated reporting NULL values in a NOT NULL column of type ANY in a STRICT table. (check-in: 5dff1f66 user: drh tags: trunk)
2021-11-02
22:24
Correctly handle SeekScan on an IN operator of the middle term of an index when the right-most term is a range constraint. Fix for ticket [5981a8c041a3c2f3]. (check-in: aa24660e user: drh tags: trunk)
20:52
Proposed fix for a problem associated with OP_SeekScan that results in an incorrect answer. See ticket [5981a8c041a3c2f3]. (Closed-Leaf check-in: 266e9cba user: drh tags: seekscan-fix-20211102)
17:55
Ensure that ALTER TABLE RENAME recognizes OOM errors while parsing dependent triggers and handles them appropriately. dbsqlfuzz 53e245eee15d3f19639d773048aa955c30708785. (check-in: 1d9004cd user: drh tags: trunk)
14:01
Fix a minor memory leak in the shell tool. Omit running fuzztest as part of the Device-One release test configuration, as it is now incompatible with SQLITE_OMIT_VIRTUALTABLE. (check-in: 4d70f27b user: dan tags: trunk)
11:24
Add the --remove and --glob options to the .archive command in the CLI. (check-in: ea7b12cd user: drh tags: trunk)
11:09
Add #ifdef logic to os_unix.c so that it builds with SQLITE_OMIT_WAL defined. (check-in: 948c2cb2 user: dan tags: trunk)
10:54
Fix a minor typo in a comment. (Closed-Leaf check-in: 06a5bf43 user: drh tags: archive_remove)
10:47
Add recent dbsqlfuzz cases to test/fuzzdata8.db. (check-in: 8c3f2536 user: drh tags: trunk)
07:32
Fix a broken assert() in fts5 that could fail if the snippet() function were used with a query phrase containing 0 tokens on a detail=none or detail=col table. (check-in: 0a5b94b9 user: dan tags: trunk)
00:18
Add globbing option to shell's .archive command. (check-in: 13fb74ac user: larrybr tags: archive_remove)
2021-11-01
22:33
zap trailing whitespace (check-in: f2a908e9 user: larrybr tags: archive_remove)
22:30
Add a test for .ar -r and fix a use-of-uninitialized-variable bug (check-in: 978d5ed4 user: larrybr tags: archive_remove)
17:22
Add --remove subcommand to shell's .archive command (check-in: 23525449 user: larrybr tags: archive_remove)
12:53
The VVA() macro in json1.c must be active during SQLITE_COVERAGE_TEST because it affects the outcome of testcase() macros. (check-in: 92c3d253 user: drh tags: trunk)
2021-10-30
20:22
Add the sqlite3_autovacuum_pages() interface. (check-in: ca2703c3 user: drh tags: trunk)
18:17
Fix an incorrect assert() statement in sqlite3GenerateConstraintChecks(). dbsqlfuzz 4190cff310aeab359a55f354e560db95d3a6f47d (check-in: 623c0d08 user: drh tags: trunk)
17:58
Fix a memory leak in test code on this branch. (Closed-Leaf check-in: 60cd9da9 user: dan tags: autovacuum-pages-callback)
17:30
Merge trunk changes into this branch. (check-in: 638c1b0c user: dan tags: autovacuum-pages-callback)
2021-10-29
16:19
Reorder a test add earlier today to OP_Transaction for easier testing. (check-in: 8ba73b3c user: drh tags: trunk)
14:04
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 7623132e user: drh tags: reuse-schema)
13:10
Allow "VACUUM INTO" to change the page_size of a database even if the original database is in WAL mode. Enhancement suggested by forum post 033f2c9d1f. (check-in: efc7e8c9 user: drh tags: trunk)
12:29
Add pragmas "multiplex_enabled", "multiplex_chunksize", and "multiplex_filecount" to the multiplexer implementation. (check-in: 39c5e80d user: drh tags: trunk)
09:59
Fix the OP_Transaction opcode so that if an error other than SQLITE_SCHEMA occurs first, the original error is not overwritten by SQLITE_SCHEMA. dbsqlfuzz 85bf7e262017c6c7bddb03ff6d8541511985d36c. (check-in: 5374226d user: drh tags: trunk)
2021-10-28
19:49
Fix .import -skip issue reported at https://sqlite.org/forum/forumpost/4c0816c24fc9d16f?t=h (check-in: 3aadbe17 user: larrybr tags: trunk)
12:07
Minor changes to make it easier for static analyzers to reason about the code. (check-in: ba4104aa user: drh tags: trunk)
00:09
Ensure that the WAL code correctly handles all possible outcomes from the walIndexPage() routine. (check-in: 6979efbf user: drh tags: trunk)
2021-10-27
23:55
Ensure that all possible outcomes for walIndexPage() are accounted for by callers. (Closed-Leaf check-in: 12715c6b user: drh tags: wal-tuneup)
20:23
Avoid the 1-based indexing on the WalHashLoc.aPgno[] array. Make it 0-indexed instead. (check-in: 28f5f709 user: drh tags: wal-tuneup)
19:57
Improve the comment on walIndexPage() to more accurately describe the post-conditions. (check-in: b619e936 user: drh tags: wal-tuneup)
19:05
New assert()s to help prove correctness in sqlite3VdbeMemExpandBlob(). (check-in: 7238d580 user: drh tags: trunk)
17:15
Fix the build for various the OMIT-everything compile-time option. No impact on regular builds. (check-in: 94780571 user: drh tags: trunk)
15:19
Fix a harmless compiler warning in memdb.c. (check-in: 22fdc658 user: drh tags: trunk)
15:16
Fix a harmless compiler warning in fuzzcheck. (check-in: 1cfb7e8a user: drh tags: trunk)
13:16
Change fuzzcheck so that it accepts binary dbsql files. (check-in: c87a2426 user: drh tags: trunk)
12:05
Add the --script option to fuzzcheck. (check-in: 5a9676bd user: drh tags: trunk)
2021-10-26
22:36
Enhance fuzzcheck so that if an argument is an ordinary disk file (not a database) it is read in and processed as a script. (check-in: 978dc89d user: drh tags: trunk)
17:36
Improved CLI error messages. (check-in: 8443a272 user: drh tags: trunk)
16:57
Add phase and error number to CLI error messages. (Closed-Leaf check-in: 7f87a298 user: larrybr tags: detail_cli_errors)
10:16
Fix an RBU problem with restarting an update after the *-oal file is already larger than 4GiB. (check-in: 0e79584a user: drh tags: reuse-schema-3.36)
10:02
Fix an RBU problem with restarting an update after the *-oal file is already larger than 4GiB. (Leaf check-in: e4662603 user: drh tags: branch-3.36)
09:53
Fix the busy_timeout restriction on fuzzcheck so that it can deal with hexadecimal integer literals. (check-in: 4b41535b user: drh tags: trunk)
2021-10-25
18:51
Remove a NEVER() in rebuildPage that is reachable, as is demonstrated by dbsqlfuzz case beac09b2756b5d285aa68f9737fdb06c972f159a. (check-in: ac3f6178 user: drh tags: trunk)
12:54
Do not allow large busy_timeout pragmas in fuzzcheck, as they accomplish nothing other than making the tests unnecessarily slow. (check-in: fba441bf user: drh tags: trunk)
2021-10-23
22:14
Improve the authorizer filter for ATTACH on fuzzcheck. (check-in: 87d49e80 user: drh tags: trunk)
22:11
Provide an assert() to fire for applications that should never open or create a disk-based database file. (check-in: 5218ac78 user: drh tags: trunk)
20:32
The pager now remembers when a VFS reports that a database file is SQLITE_OPEN_MEMORY and treats that database as an in-memory database. (check-in: 967b6562 user: drh tags: trunk)
17:46
Fix the memdb VFS so that it does not allow mmap if it is resizable, and so that it never opens a disk file for any reason. (check-in: 5ee14715 user: drh tags: trunk)
11:30
Update fuzzcheck so that it allows ATTACH statements with memdb filenames. (check-in: 31671237 user: drh tags: trunk)
2021-10-22
11:17
Fix harmless compiler warnings. Improve the independence of some TCL tests. (check-in: 1a038242 user: drh tags: trunk)
2021-10-21
20:08
Enable FTS5 for fuzzcheck. (check-in: 559ba38b user: drh tags: trunk)
19:48
Fix the previous check-in so that it works with virtual tables that add new shadow tables the first time they are referenced. (check-in: f73b499e user: drh tags: trunk)
17:01
Fix the new "table_list" pragma so that it shows the correct number of columns for views and virtual tables even when the object has not been previously used. (check-in: fb0ed8c5 user: drh tags: trunk)
14:37
Merge all recent trunk changes into the begin-concurrent-report branch. (check-in: 0770f320 user: drh tags: begin-concurrent-report)
14:27
Merge trunk enhancements into begin-concurrent-pnu branch. (check-in: 4d972744 user: drh tags: begin-concurrent-pnu)
14:24
Merge trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 1958e6fa user: drh tags: begin-concurrent-pnu-wal2)
14:13
Merge recent trunk enhancements into begin-concurrent branch. (check-in: ae4eed0b user: drh tags: begin-concurrent)
14:10
Merge recent trunk enhancements into the reuse-schema branch (check-in: cd15fc3c user: drh tags: reuse-schema)
14:01
Merge recent trunk enhancements into the wal2 branch. (check-in: 7e2bc836 user: drh tags: wal2)
2021-10-20
20:22
Fix an incorrect JSON assert() that was added 5 days ago by check-in [7b8ea2298927fd34]. (check-in: e162da3a user: drh tags: trunk)
18:17
Fix the finish_test proc in tester.tcl so that it works for Windows test builds. Fix for problem introduced yesterday by check-in [3658417bf300e004]. (check-in: f52b84e6 user: drh tags: trunk)
17:58
Enabled the testcase() macros under SQLITE_DEBUG. (check-in: 0ae8dd13 user: drh tags: trunk)
13:48
Fix a problem with the CARRAY extension when the SQLITE_TRANSIENT destructor is used for non-text arrays. Forum thread 48e525b266. (check-in: cac910c1 user: drh tags: trunk)
12:52
Ensure that valid bytecode is generated for RETURNING clauses even if the schema is corrupt and PRAGMA writable_schema is set so that the schema parse returns no errors. dbsqlfuzz cb21825bdcd6fdb4b686ce4f6e2f45e781d2f220 (check-in: 69911715 user: drh tags: trunk)
11:40
Fix a case in the fts3 offsets() function where a corrupt database record could lead to dereferencing an uninitialized pointer. (check-in: 7b7d31a6 user: dan tags: trunk)
2021-10-19
19:26
Merge multi-module test logic improvements from trunk. (check-in: e00a44ac user: drh tags: autovacuum-pages-callback)
18:59
Improved cleanup in finish_test so that specifying multiple test modules on the "./testfixture" command-line is more likely to work. (check-in: 3658417b user: drh tags: trunk)
18:53
Fix permutations.test so that it can be called with a test file pattern that uses square brackets. (check-in: 55b62418 user: dan tags: trunk)
18:40
Update test scripts to unregister the test devsim VFS after it is used. (check-in: bb0e18ae user: dan tags: trunk)
18:00
Merge trunk enhancements into the autovacuum-pages-callback branch. (check-in: c26c9e50 user: drh tags: autovacuum-pages-callback)
2021-10-17
10:31
Remove an incorrect assert() added 4 days ago by check-in [9e2f06b84f994277]. Replace it with a testcase() macro. (check-in: 03dff719 user: drh tags: trunk)
2021-10-16
19:50
Fix a harmless scan-build warning in FTS5. (check-in: 0bf42bb5 user: drh tags: trunk)
18:53
Add NEVER() macros on branches that become unreachable due to the previous check-in. (check-in: 5fa272cc user: drh tags: trunk)
17:09
Have the btree layer detect when a "DELETE FROM tbl" statement is clearing a database page that is still in use (due to database corruption) and report SQLITE_CORRUPT. (check-in: a6fda39e user: dan tags: trunk)
13:59
Fix an assert() in fts5 that could fail with a corrupt database. (check-in: e9997985 user: dan tags: trunk)
2021-10-15
23:02
Demostrate a prototype sqlite3_autovacuum_pages() interface. (check-in: bb6f2b8b user: drh tags: autovacuum-pages-callback)
17:06
Protect the WhereTerm.u union using nearby assert()s and/or branches. (check-in: 8a56de5b user: drh tags: trunk)
16:15
Protect the JsonNode.u union using nearby assert()s and branches. (check-in: 7b8ea229 user: drh tags: trunk)
2021-10-14
21:13
Fix a signed integer overflow in fts5 leading to a segfault that could occur when processing corrupt records. (check-in: 69a3ff0c user: dan tags: trunk)
19:28
Protect access to the WhereLoop.u union using nearby assert()s and branches. (check-in: bdd84021 user: drh tags: trunk)
17:30
Update requirement marks. No changes to code. (check-in: 3a6887a5 user: drh tags: trunk)
2021-10-13
20:29
New tests added to test/fuzzdata8.db. (check-in: e944d717 user: drh tags: trunk)
20:11
Convert an assert() into a corruption detection branch in sqlite3BtreePayload(). dbsqlfuzz 848171b5d58f6e4a62257466e0e7de16696d4f02. (check-in: f038d7f9 user: drh tags: trunk)
15:09
Attempt to clarify the sqlite3_open_v2() documentation so that people do not come away with the idea that SQLITE_OPEN_EXCLUSIVE is an allowed bit value for the 3rd argument bitmask. (check-in: 1310a126 user: drh tags: trunk)
14:45
Back out the SQLITE_OPEN_EXCLUSIVE changes because it does not work on Windows and it does not work always on unix. (check-in: d008ad79 user: drh tags: trunk)
14:01
Remove a NEVER() macro in ALTER TABLE due to an obscure case of a nested CTE inside an UPDATE within a trigger. dbsqlfuzz e89174cbfad2d904f06b5e24df0a22510b6a1c1e (check-in: 9e2f06b8 user: drh tags: trunk)
13:00
The sqlite3_result_text() routine (and similar) should record OOM errors in addition to SQLITE_TOOBIG errors. dbsqlfuzz (check-in: eca43436 user: drh tags: trunk)
2021-10-12
22:55
Fix the group_concat() inverse function implementation so that it correctly handles BLOB inputs when database text encoding is UTF16. (check-in: 38a1326b user: drh tags: trunk)
18:05
Fix an incorrect assert() in SQLITE_ENABLE_SORTER_REFERENCES logic - a new assert() introduced 5 days ago by [87e2f5eb436fc448]. (check-in: 7cfc839e user: drh tags: trunk)
11:30
Fix a use-after-free in fts3 that could follow an optimize() in the middle of a SELECT statement when the hash table is non-empty. (check-in: 8124b2ce user: dan tags: trunk)
02:26
Fix another harmless compiler warning for MSVC. (check-in: b54c0db0 user: mistachkin tags: trunk)
02:17
Fix harmless compiler warnings in the debug build for MSVC. (check-in: 1ceb73f3 user: mistachkin tags: trunk)
2021-10-11
15:54
Fail a schema parse if a virtual table or view has a positive integer rootpage. (check-in: 02656760 user: drh tags: trunk)
15:21
Use the IsOrdinaryTable() macro, not a test of tnum, to distinguish tables from views and virtual tables. (check-in: 6189b780 user: drh tags: trunk)
09:48
New test cases added to test/fuzzdata8.db (check-in: 2e475fec user: drh tags: trunk)
09:39
Fix an over-zealous assert(). (check-in: e2bb82a4 user: drh tags: trunk)
2021-10-09
16:00
Detect any attempt to use an INDEXED BY clause on a CTE and report an error. (check-in: 35a9de2c user: drh tags: trunk)
2021-10-08
18:15
Further to the previous check-in, remove the "harmless()" macro definition as it is no longer used. (check-in: b8c9a546 user: drh tags: trunk)
18:12
Remove a "harmless()" macro that is no longer relevant. (check-in: 87c357c6 user: drh tags: trunk)
16:39
Add support for "PRAGMA writable_schema=RESET". (check-in: a51b305b user: drh tags: trunk)
16:15
Improved detection of database corruption. (check-in: c7fae46c user: drh tags: trunk)
10:25
Minor improvements to comments in the data structure definitions. No changes to code. (check-in: e77ac405 user: drh tags: trunk)
2021-10-07
23:04
New assert() statements to protect the u1 and u2 unions of SrcList. (check-in: 9b91fbcf user: drh tags: trunk)
20:46
Protect access to the Expr.y union using nearby assert()s and branches. (check-in: 87e2f5eb user: drh tags: trunk)
19:27
Break the tcl release tests into smaller units to better take advantage of multi-processor systems. (check-in: 03cef1c3 user: dan tags: trunk)
17:43
Protect all accesses to the Expr.x union using nearby assert()s and branches. (check-in: 8eaa1d4a user: drh tags: trunk)
14:19
Fix an incorrect assert() on PRAGMA table_xinfo added by the previous check-in. (check-in: f85cb287 user: drh tags: trunk)
13:40
Protect all accesses to the FuncDef.u and Expr.u unions using nearby assert()s or branches. (check-in: 9af863f0 user: drh tags: trunk)
12:11
Protect every access to the Table.u union using a nearby assert() or branch. (check-in: 50e08338 user: drh tags: trunk)
2021-10-06
10:36
Fix a macro typo introduced by [5da112c02f9e8d0b] that prevented coverage tests from working. (check-in: 566e6974 user: drh tags: trunk)
10:04
One corner case for the fix at [8b24c177061c3836] was not quite right. Caught overnight by both OSSFuzz and dbsqlfuzz and repaired here. (check-in: 79e90a82 user: drh tags: trunk)
2021-10-05
22:51
Fix a harmless typo in a comment. forum post 218c116fdf. (check-in: 8ca0c7d8 user: drh tags: trunk)
18:59
Fix harmless compiler warnings, mostly caused by prior efforts to get static analyzers to run without warnings. (check-in: cddd3b38 user: drh tags: trunk)
18:33
Fix more harmless static-analyzer warnings. As of this check-in, no warnings are generated by scan-build for clang-6 or clang-10. (check-in: a7835bea user: drh tags: trunk)
17:41
Fixes for harmless static-analyzer warnings. This also makes the code easier for humans to understand. (check-in: 36177a62 user: drh tags: trunk)
15:30
Fix separate compilation of json1.c, which was apparently broken by check-in [32f33f356931242b]. (check-in: 0c7ece67 user: drh tags: trunk)
13:00
Small change to FTS5 to help static analyzers understand that it is not dereferencing a NULL pointer. (check-in: 0d853df1 user: drh tags: trunk)
12:34
Ensure that geopoly does not invoke sqlite3_result_error_nomem() with a NULL pointer. (check-in: 2483310d user: drh tags: trunk)
11:11
Simplifications to the preupdate_hook logic to make it easier to reason about, and reduce static analyzer warnings. (check-in: 91e3b98e user: drh tags: trunk)
2021-10-04
22:34
Fix harmless static-analyzer warnings. (check-in: 32f33f35 user: drh tags: trunk)
18:59
Merge static-analyzer warning fixes and the new SQLITE_OMIT_AUXILIARY_SAFETY_CHECKS macro. (check-in: 5da112c0 user: drh tags: trunk)
18:57
Some #defines somehow failed to get set correctly in the previous check-in. Fixed here. (Closed-Leaf check-in: 15bbdf9a user: drh tags: fix-warnings)
18:21
Fix harmless static analyzer warnings in sessions, rtree, fts3 and fts5. Add the -DSQLITE_OMIT_AUXILIARY_SAFETY_CHECKS compile-time option to cause ALWAYS() and NEVER() macros to be omitted from the build. (check-in: 1c67f957 user: drh tags: fix-warnings)
16:14
Fix harmless static analyzer warnings in auxiliary build tools, mkkeywordhash.c and lemon.c. No changes to the SQLite core. (check-in: f2f279b2 user: drh tags: trunk)
15:08
Fix harmless static analyzer warnings. (check-in: 1ebcde72 user: drh tags: trunk)
13:30
The pragma_table_list virtual table should have only one "schema" column. (check-in: 886feffa user: drh tags: trunk)
13:18
Fix harmless static analyzer warnings. (check-in: 6604a085 user: drh tags: trunk)
12:16
Merge recent trunk changes into the begin-concurrent-report branch. (check-in: 71b10294 user: drh tags: begin-concurrent-report)
12:09
Merge recent trunk enhancements into begin-concurrent-pnu branch. (check-in: 35ad7bc6 user: drh tags: begin-concurrent-pnu)
12:02
Merge recent trunk changes into the begin-concurrent-pnu-wal2 branch. (check-in: bce02eaa user: drh tags: begin-concurrent-pnu-wal2)
11:54
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: 4f5ef7aa user: drh tags: begin-concurrent)
11:49
Merge recent trunk enhancements into the reuse-schema branch. (check-in: 64234c5c user: drh tags: reuse-schema)
11:44
Merge recent trunk enhancements into the wal2 branch. (check-in: 127173e0 user: drh tags: wal2)
11:10
Fix query plans created by whereShortCut() so that they always check transitive constraints that drive an index. The is analogous to the [f1f9b5de3c59489b] check-in, just for whereShortCut() rather than the full query planner. Fix for the issue described by forum post a65cacbf5e1c41ba. (check-in: 8b24c177 user: drh tags: trunk)
2021-10-03
22:03
In CLI, ensure correct line-accumulation state whenever line(s) are dumped or processed. And test this. (check-in: be211a9c user: larrybr tags: trunk)
00:12
Add the sqlite3ResultStrAccum() internal interface to simplify the the implementation of functions that return strings. (check-in: e548e929 user: drh tags: trunk)
2021-10-02
18:22
Try to fix a harmless static-analyzer warning in sqlite3BtreeTransferRow(). (check-in: 5906a015 user: drh tags: trunk)
17:46
Fix a harmless static-analyzer warning in sqlite3ExprCode(). (check-in: 918c22e8 user: drh tags: trunk)
17:34
Remove an unnecessary static buffer from sqlite3VdbeExpandSql(). (check-in: 953a33b7 user: drh tags: trunk)
17:12
Make the sqlite3_filename_xxxx() interfaces robust against NULL pointer arguments, even though the documentation says the behavior is undefined in that case. (check-in: dd64c60b user: drh tags: trunk)
16:39
Fix harmless compiler warnings (check-in: bdb9dc8a user: drh tags: trunk)
15:34
Fix CLI line processing. (back to start state after meta-command executes) (check-in: 928c2a34 user: larrybr tags: trunk)
2021-10-01
22:48
Fix a problem with group_concat() when it is used as a window function with a sliding window, as described by forum thread ccf3b5673ba852cf. (check-in: f47f7f78 user: drh tags: trunk)
21:01
Fix harmless compiler warnings. (check-in: 94b59691 user: drh tags: trunk)
20:39
Change things so that SQLITE_OMIT_VIRTUALTABLE implies SQLITE_OMIT_ALTER_TABLE. (check-in: 2f7c946c user: dan tags: trunk)
17:06
Fix a potential write outside of array bounds in the --hexdb decoder of the CLI when given corrupt input. (check-in: c7fdd775 user: drh tags: trunk)
15:05
Fix a buffer overread in fts5 that could occur when processing an "ORDER BY rowid DESC" query against corrupt database records. (check-in: fe098a93 user: dan tags: trunk)
02:45
Remove unreachable branches in the fixed group_concat() code. (Closed-Leaf check-in: 8bd721c2 user: drh tags: group_concat-fix-legacy)
02:16
Merge updates from trunk (check-in: 35351371 user: drh tags: group_concat-fix-legacy)
00:25
Fixes to the version of "varsep" group_concat so that (1) it builds under separate compilation and (2) omits tabs in source code and (3) runs faster than trunk. This variant of the group_concat_varsep branch might be preferred over the tip because it preserves (undocumented) legacy behavior about the position of separators relative to terms. (check-in: 04399cf9 user: drh tags: group_concat-fix-legacy)
2021-09-30
21:42
Adjust 3 query result expectations to reflect changed group_concat() behavior with varying separator. (Closed-Leaf check-in: 86f9c07a user: larrybr tags: group_concat_varsep)
18:42
Fix a problem with view handling in SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 6e791a24 user: dan tags: trunk)
17:39
Fix rtreedoc.test so that it works with SQLITE_DEFAULT_AUTOVACUUM=1 builds. (check-in: a300adc2 user: dan tags: trunk)
17:20
Simplify windowed group_concat() by allowing a change in undocumented behavior (fails some new tests) (check-in: 9d8e6167 user: larrybr tags: group_concat_varsep)
10:47
Update a test case in rtreedoc.test to account for the fact that release builds generate fewer VM instructions than debug builds. (check-in: 7d16b302 user: dan tags: trunk)
2021-09-29
20:17
Add NEVER() macros on branches that are not reachable since [a0df216f7c3f8963]. (check-in: 5d771f35 user: drh tags: trunk)
19:18
Fix a typo in altertab3.test. (check-in: 18d38b13 user: dan tags: trunk)
19:15
Have the dbstat module arrange things internally so that there are 256 addressable bytes following each page buffer. This way, small buffer overreads caused by corrupt database pages do not lead to undefined behaviour. (check-in: c4c705ab user: dan tags: trunk)
18:33
Fix another problem with ALTER TABLE and vector UPDATE statements within triggers. (check-in: a0df216f user: dan tags: trunk)
16:38
Add new test file rtreedoc3.test. (check-in: 54604869 user: dan tags: trunk)
16:35
Sync w/trunk (check-in: a4c18b2f user: larrybr tags: group_concat_varsep)
14:14
Add extra tests for the group_concat() fix on this branch. (check-in: 3d148615 user: dan tags: group_concat_varsep)
14:01
Improved testability of changes from check-in [255b0eeed113d83b]. (check-in: bbfd083c user: drh tags: trunk)
13:36
Fix an out-of-bounds read in fts5 that could occur when processing corrupt records. (check-in: 9bbc01fb user: dan tags: trunk)
00:32
Get group_concat() to handle varying separator lengths when windowing (check-in: 98e0f2bf user: larrybr tags: group_concat_varsep)
2021-09-28
10:44
Fix a potential ALTER TABLE problem with expressions like ( (<sub-select>) IN () ). (check-in: df0d7e36 user: dan tags: trunk)
2021-09-27
17:11
Have the dbstat virtual table take a copy of each page buffer that it traverses instead of just a reference to the page-cache object. This avoids problems if an error causes transaction rollback while a dbstat cursor is open. dbsqlfuzz crash-417224040fee04f0f0e62b70265c518893b08769. (check-in: 6ab25f8b user: dan tags: trunk)
15:44
Fix a problem in ALTER TABLE causing table or column references in sub-selects ton the RHS of a vector SET clause in an UPDATE within a trigger (i.e. "SET (a,b) = ( (SELECT...), <expr> )"). (check-in: 255b0eee user: dan tags: trunk)
2021-09-25
20:28
Load recent dbsqlfuzz cases into test/fuzzdata8.db. (check-in: 7a8fcf6d user: drh tags: trunk)
20:19
Fix a memory leak in rtree triggered by corrupt database records. dbsqlfuzz 397ad036a9013d7318da30ef84947d2baaaa6d6c. (check-in: 706322c2 user: dan tags: trunk)
18:21
Fix a bad interaction between the pager cache and the dbstat module that could lead to a malfunction following an OOM. dbsqlfuzz 9ed3e4e3816219d3509d711636c38542bf3f40b1. (check-in: e03554a6 user: dan tags: trunk)
17:07
Add const to parameters on various internal interfaces. (check-in: 70c221c5 user: drh tags: trunk)
2021-09-24
19:57
Dbsqlfuzz (a097eaad43c3c845b236126df92fb49b25449b0c) found a way to reach the assert() that was added to sqlite3_declare_vtab() by [eb94f4a8174436b1]. This check-in fixes the problem. (check-in: 857d26a6 user: drh tags: trunk)
16:14
Add lots of new "const" on internal function parameters. There is opportunity for many more - this is a work in progress. (check-in: a3c71a67 user: drh tags: trunk)
12:59
Ensure that sqlite_stat1 and sqlite_stat4 are ordinary tables (not views or virtual tables) before trying to load them (dbsqlfuzz bc02a0cde82dee801a8d6f653d2831680f87dca1). This prevents sqlite3_declare_vtab() from running with db->init.busy turned on. Even so, enhance sqlite3_declare_vtab() to be able to deal with db->init.busy being on, in case there are undiscovered paths to that state. Each of these two changes are independently sufficient to prevent the problem fixed by the previous check-in [c7560c1329965ab5] but there is no harm in keeping that third layer of protection in place. (check-in: eb94f4a8 user: drh tags: trunk)
02:14
Ensure that the db->init.azInit array is initialized at all times. dbsqlfuzz 0ad6d441f9bf3dfc32626a9900bc1700495b16f9 (check-in: c7560c13 user: drh tags: trunk)
2021-09-23
17:27
Commencing dynamic extensibility transition. (a WIP, may not build) (check-in: 5ea71afe user: larrybr tags: cli_extension)
2021-09-22
14:43
Fix harmless compiler warnings. (check-in: d678ecca user: drh tags: trunk)
14:26
For shell.c.in, define CHAR_BITS to 8 on platforms that do not have that value set by default. This fixes the build on older machines. (check-in: 96610cc8 user: drh tags: trunk)
13:43
Fix harmless compiler warnings in shell.c.in, and a compiler warning in sqlite3expert.c which is a real error, though also harmless. (check-in: 56da0e9c user: drh tags: trunk)
13:07
Fix an incorrect assert() in rtree that was added recently by [f7ad73c49507c943]. Change it to testcase(). (check-in: 3aa0bf3a user: drh tags: trunk)
10:57
Enhance the TCL-based test harness so that it is possible to list multiple test modules on the "testfixture" command-line and have them all run. For example: "./testfixture test/shell*.test" (check-in: 45caf9b8 user: drh tags: trunk)
10:28
Use sqlite3_snprintf() for the ".changes" output formatting in the shell because it now uses %lld, and some older C compilers do not understand that construct. (check-in: 53dadf80 user: drh tags: trunk)
2021-09-21
20:03
Fix .expert name collision bug reported at https://sqlite.org/forum/forumpost/05e6f32984561f57?t=h (check-in: 4a3f98ad user: larrybr tags: trunk)
19:19
Speed and (slightly) simplify shell's input line early processing. (check-in: a1c7f7f8 user: larrybr tags: trunk)
17:26
Add the "PRAGMA table_list" command with its corresponding eponymous table-valued function: "pragma_table_list". (check-in: 2c0e7ae5 user: drh tags: trunk)
2021-09-20
21:42
Accomplish fileio standalone for Win32 with less intervention. (check-in: af5dcc9c user: larrybr tags: trunk)
20:15
Allow fileio extension to be a stand-alone DLL for Win32 (check-in: d1cc3105 user: larrybr tags: trunk)
2021-09-19
18:31
Adjust shell tests for *Nix and Windows test platform anomaly (Leaf check-in: 577544c5 user: larrybr tags: speedy_cli)
2021-09-18
21:35
Sync w/trunk, further streamline shell's resumable prescan. (check-in: 9e00f9f7 user: larrybr tags: speedy_cli)
16:15
Further tests for legacy rtree geom callbacks. (check-in: 99d6bb22 user: dan tags: trunk)
2021-09-17
21:12
Shell's .read pipe now works for Windows too. (check-in: 929bcc40 user: larrybr tags: trunk)
20:43
Add tests for legacy geometry callbacks to rtreedoc2.test. (check-in: 6ad00e52 user: dan tags: trunk)
13:07
Make the affinity() function available even if compiled without SQLITE_DEBUG. Surround the implementation of all test-only SQL functions with #ifndef SQLITE_UNTESTABLE. (check-in: b7e00ef8 user: drh tags: trunk)
2021-09-16
22:23
The dbsqlfuzz fuzzer found a refutation for a recent ALWAYS() macro. (check-in: ebfc18aa user: drh tags: trunk)
20:16
Minor changes to rtree.c so that we can get full branch coverage even when it is compiled without geopoly. (check-in: f05ae9b5 user: drh tags: trunk)
19:50
Add tests to rtreedoc.test. (check-in: b18c6ec4 user: dan tags: trunk)
17:02
Add a single new ALWAYS() to rtree.c, with justification. (check-in: 778e4499 user: drh tags: trunk)
16:41
Add a tag comment in rtree.c. No changes to code. (check-in: 213410fa user: drh tags: trunk)
14:17
Add a reference counter to a structure used internally by the Tcl interface so that it does not segfault if the database connection is closed from any of the various callback scripts that may be invoked. (check-in: e54a33ce user: dan tags: trunk)
14:07
Mark an unreachable branch in rtree. (check-in: e6c4afd5 user: drh tags: trunk)
13:52
Back out a couple of ALWAYS() macros from [4fab9089868bbb05]. Test case added to TH3. (check-in: d26963a5 user: drh tags: trunk)
13:20
For ALTER TABLE RENAME COLUMN, do not try to filter virtual tables out of calls to sqlite_rename_column(). Let the function filter them itself. The WHERE clause can mistakenly let virtual tables through if the sqlite_schema table is corrupt. The sqlite_rename_column() function must deal with them. We might as well let it deal with them always. (check-in: 7c82b43b user: drh tags: trunk)
12:33
Under SQLITE_DEBUG with PRAGMA vdbe_trace=ON, show an output line if the VDBE aborts for any reason. (check-in: 7e3d6810 user: drh tags: trunk)
07:32
Simplify the routine that attempts to estimate the size of an rtree index by looking at the sqlite_stat1 entry for the %_rowid table. (check-in: 06c329c1 user: drh tags: trunk)
05:39
Mark various unreachable branches in rtree.c with ALWAYS() or NEVER(). (check-in: 4fab9089 user: drh tags: trunk)
05:24
New ALWAYS() and assert() to mark unreachable branches in rtree.c. (Closed-Leaf check-in: f7ad73c4 user: drh tags: tree-testing)
2021-09-15
19:53
In rtree.c, remove an incorrect ALWAYS(). Add other ALWAYS() and NEVER(). (check-in: cbaac887 user: drh tags: tree-testing)
19:13
Add more ALWAYS() macros on unreachable branches in rtree.c (check-in: fbba89da user: drh tags: tree-testing)
16:20
Fix the xBestIndex method on rtree so that it correctly recognizes that rowid=? works the same as id=?. (check-in: c74c07cc user: drh tags: trunk)
15:56
Add ALWAYS() macros on some unreachable branches in rtree. (check-in: 9123f680 user: drh tags: trunk)
15:53
Further updates to rtreedoc.test. (check-in: e6672783 user: dan tags: trunk)
14:48
Fix non-build for a test configuration (check-in: c9a4ab05 user: larrybr tags: trunk)
13:09
Simplify some of the corrupt shadow-table detection logic in rtree. (check-in: 0c4f37aa user: drh tags: trunk)
11:15
Squelch needless narrowing warning. (check-in: 5540e6ab user: larrybr tags: trunk)
10:49
Ensure rtreedoc.test is not run for builds without the rtree extension. (check-in: 42dff223 user: dan tags: trunk)
2021-09-14
20:07
Add test cases to rtreedoc.test. (check-in: afe0ec4d user: dan tags: trunk)
18:57
Update requirements marks to reflect recent documentation changes. (check-in: 08cab892 user: drh tags: trunk)
14:16
Add test cases to rtreedoc.test. (check-in: b62de126 user: dan tags: trunk)
11:27
Minor updates to rtreedoc.test. (check-in: b22c75e4 user: dan tags: trunk)
2021-09-13
23:11
Shell to .read any named character source file/device (again.) (check-in: c6fe4f8d user: larrybr tags: trunk)
18:32
Add test cases to rtreedoc.test. (check-in: 4ee99d31 user: dan tags: trunk)
18:16
Add assert() statements to refute forum post 9f4e7f58fbb66ddd. (check-in: 83a83475 user: drh tags: trunk)
16:36
Add new test file rtreedoc.test. (check-in: 8c4b1482 user: dan tags: trunk)
13:53
Fix an incorrect comment and possible integer overflow in pager resulting from check-in [23ca23894af352ea]. Problem reported by forum post e2ea1a3f61. Also change the datatype of Pager.pageSize to i64 even though page size never exceeds 65536, in order to help prevent future problems of this kind. (check-in: f4a552ed user: drh tags: trunk)
2021-09-11
14:33
Fix a case where the system error was not being set correctly. (check-in: 13a524b3 user: dan tags: wal-shm-exceptions)
02:42
CLI prescanner made to match SQLite's rules for delimited identifiers. Tests begun. (check-in: 15b105c5 user: larrybr tags: speedy_cli)
2021-09-10
22:00
Make replace.tcl useful with TCL 8.4 (check-in: 2dd61dd9 user: larrybr tags: trunk)
21:28
If an EXCEPTION_IN_PAGE_ERROR exception is caught, make the underlying OS error code available via sqlite3_system_errno(). (check-in: fdb20e9e user: dan tags: wal-shm-exceptions)
19:45
Make CLI prescan handle goofy identifier delimiters too. Streamline code. (check-in: 968aed69 user: larrybr tags: speedy_cli)
18:35
Fix (luckily harmless) typo in memdb.c per https://sqlite.org/forum/forumpost/15af8872d5999df1 (check-in: d577030c user: larrybr tags: trunk)
01:45
When showHeader set at CLI invocation, do not auto-set it later. (check-in: 733b7d4f user: larrybr tags: trunk)
01:02
Back out changes [00286ca5d998d802] and [6844ede29e1dac93] (replacing the associated branches with NEVER()) and add a single new test to btreeOverwriteCell() that detects when an overflow pages is also mapped into a b-tree page and raises and immediate SQLITE_CORRUPT error before making any changes. dbsqlfuzz 81791bd980fe6935ff2c7334ec8bef11c1c12b82 and others. (check-in: 32210fa4 user: drh tags: trunk)
00:58
Speed-up CLI's processing for huge block comments, for any content (check-in: c4568f9f user: larrybr tags: speedy_cli)
2021-09-09
19:19
Remove a NEVER() in btree that is sometimes reachable. dbsqlfuzz b9140023005430654c8fe544cf0a082ef8d561c1. (check-in: 6844ede2 user: drh tags: trunk)
18:06
Avoid masking off an OOM fault in rtreecheck(). (check-in: 3ebfe712 user: drh tags: trunk)
14:03
Improved database corruption detection in the editPage() subroutine of the btree rebalancer. dbsqlfuzz f035b1b5a100a5f0cffb95c958b6c67d7c5eaf1f. (check-in: 00286ca5 user: drh tags: trunk)
2021-09-08
21:49
Speedup CLI's gulping of many huge block SQL comments. (check-in: 729620c5 user: larrybr tags: trunk)
19:25
Fix PRAGMA integrity_check so that it does not try to enforce types on ANY columns in a STRICT table. (check-in: 57384fda user: drh tags: trunk)
2021-09-07
20:58
For sqldiff, sqlite_schema comparisons must use compound (synthesized) PK. (check-in: 5bdd8466 user: larrybr tags: trunk)
19:23
New test cases added to fuzzdata8.db. No code changes. (check-in: 51e5aada user: drh tags: trunk)
19:04
Make sqldiff able to compare sqlite_schema tables (for detailed schema differences.) (check-in: 7ff92da9 user: larrybr tags: trunk)
16:05
Fix a memory leak in fts5 that could occur when writing to an fts5 table that is being scanned by an fts5vocab cursor. (check-in: 1183552d user: dan tags: trunk)
15:41
Fix a potential NULL pointer deference in the LIKE optimization. The problem was introduced by the addition of generated columns in check-in [b855acf1831943b3] (SQLite version 3.31.0, 2020-01-22). Reported by Wang Ke in [forum/forumpost/699b44b3ee|forum post 699b44b3ee]. (check-in: b9417d40 user: drh tags: trunk)
2021-09-06
16:15
Fix a use-after-free error that could occur if an fts5 table is written while scanning it using an fts5vocab cursor. (check-in: e751c2ec user: dan tags: trunk)
15:59
Fix an issue in the "shrink.test" test script reported by forum post 90a74bd618. (check-in: 6c3734ed user: drh tags: trunk)
11:44
Restore the use of system isnan() that was removed by check-in [ea748edecb261f2b]. See forum thread d7c530ac587f59e6. (check-in: b3cfe23b user: drh tags: trunk)
2021-09-05
18:45
Complete shell.c maker's migration to TCL v.8.4 (check-in: e4b9b5b1 user: larrybr tags: cli_extension)
2021-09-03
18:11
Fix an assertion fault in pcache introduced by [4bc93658aa563f2f] and detected by OSSFuzz. Test case in TH3. (check-in: 2262a494 user: drh tags: trunk)
2021-09-02
16:29
Get shell.c maker acceptable to TCL v8.4 and minor tweaks (check-in: c60f4f90 user: larrybr tags: cli_extension)
01:21
Meld -safe option into CLI (check-in: c7c84998 user: larrybr tags: cli_extension)
2021-08-31
15:53
Have the planner ensure that if one scan uses a subset of the WHERE clause of another, that scan is estimated to cost less and return fewer rows. (check-in: c7b34930 user: dan tags: trunk)
2021-08-30
17:02
Do not disable a rowid=? term used to drive an IPK index if it is a transitive constraint. Commit [f1f9b5de] made the same change for non-IPK indexes. (check-in: 46e28cbc user: dan tags: trunk)
2021-08-27
11:26
Patch lemon to fix "error" token handling, according ot forum post e680f42f53090061. (check-in: 106b5e53 user: drh tags: trunk)
2021-08-26
21:12
Change the structuree exception handler in wal.c to catch EXCEPTION_IN_PAGE_ERROR instead of EXCEPTION_ACCESS_VIOLATION. (check-in: 0c6ab539 user: dan tags: wal-shm-exceptions)
18:31
Add the --safe to the CLI. Also the --nonce option and the .nonce command. (check-in: c76870cb user: drh tags: trunk)
2021-08-24
17:07
Correctly preserve the collating sequence for a column when changing its datatype. Fix for the problem reported by forum post 36be3d3a08da9d92. Test cases in TH3. (check-in: c7f0813c user: drh tags: trunk)
2021-08-23
15:56
Fix a typo in a comment. No changes to code. (check-in: d953646a user: drh tags: trunk)
10:28
Back out the change that allows typeless columns in strict tables. Replace that capability with an ANY type for strict tables that will accept any datatype with BLOB affinity. (check-in: d8fd1a2b user: drh tags: trunk)
2021-08-21
20:54
Allow typeless columns in STRICT tables that are able to accept any data type. (check-in: 1e2dcc2d user: drh tags: trunk)
16:42
Defer deleting subqueries in the compound-SELECT code generator until the end of code generation, in order to avoid deleting expressions out from under the aggregation function sanity checking assert()s that occur near the end of SELECT code generation. This fixes the assertion fault described by forum post cfcb4b461d. The problem goes back to check-in [6e6b3729e0549de0]. (check-in: 600f1991 user: drh tags: trunk)
15:49
Add test cases to ensure that there is at least one test that causes an exception to be thrown from each SEH_INJECT_FAULT macro. (check-in: e480146f user: dan tags: wal-shm-exceptions)
2021-08-20
19:51
Improvement to error handling in Lemon. No impact on SQLite. Forum post 2f468f43cbc48d7f (check-in: 18cc2f85 user: drh tags: trunk)
18:18
Use VVA_ONLY() instead of TESTONLY() in SEH macros so that the build works for coverage testing. (check-in: 9e9d5b56 user: drh tags: wal-shm-exceptions)
17:23
Add missing SEH_INJECT_FAULT macros. (check-in: 27e9bdb3 user: dan tags: wal-shm-exceptions)
16:19
Add some assert() statements and fix small issues with code on this branch. (check-in: bd9b373b user: dan tags: wal-shm-exceptions)
15:44
Support for STRICT tables. A table with the STRICT option only allows a few core datatypes on columns and enforces those types rigidly. Also, PRIMARY KEY columns must be NOT NULL. (check-in: f9c1d344 user: drh tags: trunk)
11:50
Fix a problem on this branch causing checkpoints that do not proceed because they can't get the CHECKPOINT lock to return incorrect output values. (check-in: 5a98820c user: dan tags: wal-shm-exceptions)
08:05
Improved error messages for the SQLITE_CONSTRAINT_DATATYPE error. (Closed-Leaf check-in: 39abca01 user: drh tags: strict-tables)
01:12
Do not allow the xfer-optimization to move the content of an ordinary table into a strict table. (check-in: 1ed1b594 user: drh tags: strict-tables)
2021-08-19
23:10
Enable this branch to run both with and without the -DSQLITE_USE_SEH option. (check-in: 840e0a14 user: drh tags: wal-shm-exceptions)
21:01
If SQLITE_USE_SEH is defined, handle structured-exceptions thrown by MSVC builds if the *-shm file mapping is accessed after it becomes invalid for some reason. (check-in: 5c5fa470 user: dan tags: wal-shm-exceptions)
16:29
Improved comments. Fewer opcodes for integrity_check on strict tables. (check-in: 4ee57fb5 user: drh tags: strict-tables)
02:58
Enhance PRAGMA integrity_check so that it verifies the datatype of all columns in STRICT tables. (check-in: 97c9248b user: drh tags: strict-tables)
00:24
STRICT tables require all fields of the PRIMARY KEY to be NOT NULL. (check-in: 5efdf9ac user: drh tags: strict-tables)
2021-08-18
23:00
Merge the WITHOUT ROWID, NOT NULL ON CONFLICT bug fix into the strict-tables branch. (check-in: 7ee01ee4 user: drh tags: strict-tables)
22:26
Fix ON CONFLICT clause processing for NOT NULL constraints of PRIMARY KEY columns on WITHOUT ROWID tables. Ticket [f2be158c57aaa8c6] (check-in: 13abba09 user: drh tags: trunk)
19:22
Trying to insert an incorrect datatype into a STRICT table raises an SQLITE_CONSTRAINT_DATATYPE error. Seems to work, though lots more testing is needed. (check-in: a19305e5 user: drh tags: strict-tables)
13:13
What would it be like if you could add the keyword "STRICT" after a CREATE TABLE statement to cause the table to (1) allow only a few well-defined datatypes, (2) rigidly enforce those types, (3) require NOT NULL on PK columns, (4) always enforce foreign key constraint, and so forth? This branch seeks to explore that question. (check-in: 78732b9f user: drh tags: strict-tables)
12:05
Rename the Column.eType field to Column.eCType - with an extra "C". (check-in: b9b0dcd5 user: drh tags: trunk)
2021-08-17
19:59
Fix an off-by-one error in the error-handling logic of the Lemon parser-generator. This does not affect SQLite. Forum cff80737bf. (check-in: 7cca8080 user: drh tags: trunk)
2021-08-12
14:22
By default, do not use memory mapping to access the temporary files used for external sorts. The old behaviour (to use memory mapping by default) may be restored by building with SQLITE_ENABLE_SORTER_MMAP defined. (check-in: 306694df user: dan tags: trunk)
2021-08-11
18:56
Fix an RBU problem with restarting an update after the *-oal file is already larger than 4GiB. (Leaf check-in: 56869f54 user: dan tags: rbu-replace-hack)
18:44
If the special "sqlite_rbu_replace_hack" table is present in an RBU database, use REPLACE instead of INSERT when writing index entries to imposter tables. (check-in: 4b73e151 user: dan tags: rbu-replace-hack)
18:43
During DELETE, if an index entry is missing, do not raise the SQLITE_CORRUPT_INDEX error (added by [f339f31f9e9a856b]) if in "PRAGMA writable_schema=ON" mode. (check-in: 19e56291 user: drh tags: trunk)
13:48
Do not apply the push-down optimization to CTE subqueries that will be reused in other contexts in where the same optimization is unlikely to be valid. Fix for the bug reported by forum post d496c3d29bc93736. (check-in: a7ce29a6 user: drh tags: trunk)
13:19
Improved comment on the OP_OpenDup used to get a new cursor for a reused materialized CTE. (check-in: b1926cc0 user: drh tags: trunk)
2021-08-09
19:54
Fix a compiler warning in pcache1. Reduce the maximum size of a pcache1 cache to 2147418112 pages. (check-in: 4bc93658 user: drh tags: trunk)
19:41
Merge recent trunk enhancements into the begin-concurrent-report branch. (check-in: 25a768cb user: drh tags: begin-concurrent-report)
19:33
Merge recent trunk enhancements into the begin-concurrent-pnu branch. (check-in: 514b3cef user: drh tags: begin-concurrent-pnu)
19:15
Sync to trunk (check-in: dd356ace user: larrybr tags: cli_extension)
18:35
Merge recent trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 47a9b759 user: drh tags: begin-concurrent-pnu-wal2)
18:26
Merge recent trunk enhancements into the wal2 branch. (check-in: 84dac820 user: drh tags: wal2)
18:21
Merge recent trunk enhancemenets into the begin-concurrent branch. (check-in: b88b6328 user: drh tags: begin-concurrent)
18:17
Merge recent trunk enhancements into the reuse-schema branch. (check-in: c8d1f17f user: drh tags: reuse-schema)
18:13
Further improvements to the eOpenState bit values. (check-in: d44f74f1 user: mistachkin tags: trunk)
18:07
Ensure that the pcache1 cache size does not get so big that it overflows the integer that is keeping track of the cache size. (check-in: bf9d70fc user: drh tags: trunk)
17:45
Fix harmless compiler warnings and improve the presentation for the new --threadsafe option to the CLI. (check-in: 7929dc2f user: drh tags: trunk)
17:37
Undocumented "--threadsafe N" option added to the CLI for testing purposes. One of SQLITE_CONFIG_SINGLETHREAD, _MULTITHREAD, or _SERIALIZED is called depending on the value of the N integer. (check-in: 2d8f297c user: drh tags: trunk)
17:36
Improved Hamming bit-distance between the SQLITE_STATE constants. (check-in: 5100b045 user: drh tags: trunk)
13:06
Fix comments associated with sqlite3.eOpenState. No logic changes. (check-in: fd8f498f user: drh tags: trunk)
11:03
Merge latest trunk changes into this branch. (check-in: 67ed7422 user: dan tags: wal2)
2021-08-07
23:16
Refactor sqlite3.magic into sqlite3.eOpenState. (check-in: e5d6512a user: drh tags: trunk)
2021-08-06
20:17
Fix an RBU problem with restarting an update after the *-oal file is already larger than 4GiB. (check-in: 087b8b41 user: dan tags: trunk)
19:38
Attempt to fix the showwal.c utility program so that it works on WAL files larger than 4GiB. (check-in: 5c0f9ea9 user: drh tags: trunk)
15:26
Fix harmless compiler warnings. Omit redundant copies of os_common.h and hwtime.h from the amalgamation. (check-in: 09142700 user: drh tags: trunk)
2021-08-05
15:27
Store the collating sequence name for each column of a table as an extension to the column name, for an additional savings in the heap space needed to hold the schema. (check-in: 832ac4c1 user: drh tags: trunk)
2021-08-04
14:50
Add NEVER() macros on recently introduced unreachable branches. (check-in: 806939eb user: drh tags: trunk)
13:42
Always prefer built-in SQL functions over app-defined SQL functions within sqlite3NestedParse(). Formerly this was the case for a few calls to sqlite3NestedParse(), but not for all of them. (check-in: 164662ef user: drh tags: trunk)
11:29
Avoid using LIKE with the target db in RBU. It is possible the user may issue "PRAGMA case_sensitive_like = 1" or override the like() user function, causing RBU to malfunction. (check-in: 7cbd8cd5 user: dan tags: trunk)
2021-08-03
23:23
Fix the build for SQLITE_ENABLE_UPDATE_DELETE_LIMIT. (check-in: 5150d2da user: drh tags: trunk)
18:45
Improved harmony with the reuse-schema branch. (check-in: cbc703f7 user: drh tags: trunk)
17:05
Merge recent trunk enhancements into the begin-concurrent-report branch. (check-in: 385e3b4e user: drh tags: begin-concurrent-report)
16:49
Merge recent trunk changes into the begin-concurrent-pnu branch. (check-in: 2c25f25b user: drh tags: begin-concurrent-pnu)
16:44
Merge recent trunk changes into the begin-concurrent-pnu-wal2 branch. (check-in: 5b6f6514 user: drh tags: begin-concurrent-pnu-wal2)
16:31
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: 8d806cf9 user: drh tags: begin-concurrent)
16:11
Merge recent trunk enhancements into the reuse-schema branch. (check-in: d71adc3f user: drh tags: reuse-schema)
2021-08-02
20:29
Merge recent trunk enhancements into the wal2 branch. (check-in: f615d7ba user: drh tags: wal2)
18:03
Refactor field names in the Column object, zCnName and zCnColl, to make them unique and thus easier to find amid all the other code. (check-in: 8b781dca user: drh tags: trunk)
16:41
Refactor the Table object to reduce its memory footprint. (check-in: bbb6759b user: drh tags: trunk)
2021-07-31
20:30
Refactor the way that DEFAULT expressions are stored on columns, in order to save memory in the common case where the column has no DEFAULT clause. (check-in: 8646547e user: drh tags: trunk)
19:37
Sync to trunk (check-in: d449941b user: larrybr tags: cli_extension)
2021-07-30
23:30
Recognize certain standard datatypes ("INT", "INTEGER", "REAL", "TEXT", and "BLOB") and if a column has one of those datatypes, store the type part of the bit-field information in the Column structure to save space. (check-in: d2da62a9 user: drh tags: trunk)
20:09
If a generated column uses the optional keywords GENERATE ALWAYS, try to avoid putting those keywords in the typename of the column. Forum post ff3ffe09251c105b (check-in: 3c954863 user: drh tags: trunk)
18:39
Avoid clownfeet in the names columns when the column names are quoted in the original CREATE TABLE statement. (check-in: 980f7292 user: drh tags: trunk)
12:47
Reduce clownfooting in the allocation of the Table.aCol array. This reduces the amount of heap space required to hold large schemas by about 11%. (check-in: 2941ded0 user: drh tags: trunk)
2021-07-29
18:34
Enhance the wal.c source file with an ASCII-art schematic of the -shm file header. (check-in: a6c160e0 user: drh tags: trunk)
17:31
Improvements to asserts to enforce magic numbers in the wal-index format. Also improve automatic configure and make builds on legacy PPC iBooks. (check-in: 87b8d478 user: drh tags: trunk)
17:23
Complete warning-free build on old PPC iBook. (Closed-Leaf check-in: ef2a0850 user: drh tags: wal-asserts)
17:01
Fix an error in one of the assert() statements added by [23b08fe9db24a953]. (check-in: ad24334b user: drh tags: wal-asserts)
16:49
Minor tweaks to various TCL build scripts so that they work even for TCL 8.4, which is obsolete, but is also all that is available for some legacy platforms. (check-in: 2269ce64 user: drh tags: wal-asserts)
16:48
Improve comments and add new assert() statements in WAL to help document how everything works. (check-in: 23b08fe9 user: drh tags: wal-asserts)
14:27
Merge the latest enhancements from trunk. (Leaf check-in: 8498d772 user: drh tags: win-blocking-locks)
00:33
Remove ALWAYS() macros that can be true if the internal test function implies_nonnull_row() is used in the result set of a query and contains comparison operator against a computed column. dbsqlfuzz 4c34db5bff6247f33ee49e341a1f3018e72be0a0. (check-in: 4d1dbfa3 user: drh tags: trunk)
2021-07-28
18:13
Add test case to ensure that sessions works with DELETE statements that use the truncate optimization (i.e. a DELETE without a WHERE clause). (check-in: a2fc5311 user: dan tags: trunk)
02:04
Fix a harmless uninitialized variable read that occurs after an error associated with a subquery that uses DISTINCT. Found by a fuzzer. (check-in: e9719f97 user: drh tags: trunk)
01:22
Reduce the scope of a variable in order to fix a harmless compiler warning that occurs under -DSQLITE_OMIT_AUTOMATIC_INDEX. (check-in: 36d5dbbe user: drh tags: trunk)
2021-07-26
19:49
Remove sqldiff --visible-controls option, make it always happen. Add test cases for controls made visible (check-in: ff74c0cc user: larrybr tags: trunk)
18:28
Give sqldiff --visible-controls option to deal with non-graphic text content robustly across platforms (check-in: 68d2373f user: larrybr tags: trunk)
01:35
Manual merge of new .connection shell command (check-in: 0d41f7f9 user: larrybr tags: cli_extension)
2021-07-23
19:26
Merge the ".connection" CLI enhancement from trunk. (check-in: d317d44f user: drh tags: win-blocking-locks)
18:43
Enhance the CLI with the ".connection" command that can switch between up to five different database connections. Used for manual testing of multiple database connections in the same process. (check-in: 54eaf076 user: drh tags: trunk)
14:53
Merge recent enhancements on trunk into the win-blocking-locks branch. (check-in: 9ecad2f8 user: drh tags: win-blocking-locks)
2021-07-22
21:11
Set the checkSchema flag if a CREATE TABLE parse fails because the table already exists, to ensure that the table was not previously deleted by some other connection. (check-in: 91bcb962 user: drh tags: trunk)
18:22
Fix ALTER TABLE DROP COLUMN so that it generates valid bytecode even when operating on a corrupt database and using PRAGMA writable_schema=ON. dbsqlfuzz 5f09e7bcc78b4954d06bf9f2400d7715f48d1fef (check-in: b65f4f76 user: drh tags: trunk)
16:07
One of the optimizations of check-in [de9c86c9e4cdb34f] does not work for terms originating in the ON/USING clause, as demonstrated by forum post 6cf3bb457c3f4685. This check-in disables that optimization for ON/USING terms. Also improve the TreeView display for the resulting "true"/"false" nodes to show that they originate from the ON/USING clause. Add a testcase() to the other optimization to show that it can still be used for ON/USING terms. (check-in: 1f679604 user: drh tags: trunk)
10:44
Fix a problem in the new os_unix.c code. Refine the threadtest3 test case some. (Leaf check-in: 2039d447 user: dan tags: unix-timed-wait-exp)
2021-07-21
15:42
Improved robustness of cursor renumbering in the UNION ALL flattener when operating on vector assignments of an UPDATE FROM. dbsqlfuzz 417d2b053b9b3c9edaf22dd515564f06999e029c (check-in: 60695359 user: drh tags: trunk)
2021-07-20
21:02
Add in-process blocking locks to os_win.c using a similar technique. (check-in: b67c157f user: dan tags: unix-timed-wait-exp)
17:23
Merge changes from the win-blocking-locks branch into this one. (check-in: 85fd18d7 user: dan tags: unix-timed-wait-exp)
16:07
Run a "PRAGMA quick_check", if necessary, on the modified table after an ALTER TABLE ADD COLUMN to verify that added NOT NULL or CHECK constraints are satisfied by existing rows. Abort the ADD COLUMN if not. Forum post c04814903d6ec4f7. (check-in: e3794997 user: drh tags: trunk)
14:57
Avoid a malfunction that could occur if the same correlated column reference appears in both the GROUP BY and the HAVING clause of a sub-select. dbsqlfuzz a779227f721a834df95f4f42d0c31550a1f8b8a2. (check-in: 1e35cc6d user: dan tags: trunk)
08:23
Fix issues in the new ADD COLUMN constraint checking. Add preliminary test cases. (Closed-Leaf check-in: 48434ad3 user: drh tags: add-column-constraint-check)
07:35
Demonstration code to show how NOT NULL and CHECK constraints can be verified after an ALTER TABLE ADD COLUMN. (check-in: 039f5403 user: drh tags: add-column-constraint-check)
02:02
It does not work to deserialized into TEMP, so do not allow it. The sqlite3_deserialize() routine now returns SQLITE_ERROR if you try. (check-in: 18068cc6 user: drh tags: trunk)
00:18
Fix compilation of 'threadtest3' for some older versions of MSVC. (check-in: b5ede6a6 user: mistachkin tags: trunk)
2021-07-19
20:52
More precision in comparing integers and floating point values while processing the integer primary key for OP_SeekGE and similar. Forum post 2bdb86a068. (check-in: f9c6426d user: drh tags: trunk)
20:34
Revise the testthread3.walthread6 test case to better demonstrate the advantages of blocking locks. (check-in: 952b4cae user: dan tags: unix-timed-wait-exp)
17:06
Merge trunk with this branch. (check-in: 853c621b user: dan tags: unix-timed-wait-exp)
16:49
Updates so that "threadtest3[.exe]" can be built for windows with MSVC. (check-in: 4ce585fb user: dan tags: trunk)
14:00
In defensive mode, allow statements that write to shadow tables to be prepared from with virtual-table xSync() calls. (check-in: c8601d83 user: dan tags: trunk)
03:38
Fix minor spacing issues in the MSVC makefile. (check-in: d78c272b user: mistachkin tags: trunk)
03:37
Minor enhancements to new OSTRACE messages. (check-in: 3249a6a3 user: mistachkin tags: win-blocking-locks)
2021-07-16
22:43
Try to omit the ORDER BY clause in subqueries if doing so does not change the result in any way. See Forum post 2d76f2bcf65d256a for details and history. (check-in: 85ddaf1b user: drh tags: trunk)
20:16
Minor comment improvements. (Closed-Leaf check-in: 6854b591 user: drh tags: omit-subquery-order-by)
18:30
Experiment with having SQLITE_ENABLE_SETLK_TIMEOUT builds on unix use a condition variable to wait for wal locks held by other threads. (check-in: 4a9f5ce7 user: dan tags: unix-timed-wait-exp)
17:11
De-typo sqlite3_expanded_sql() doc (check-in: 56b0f541 user: larrybr tags: trunk)
17:04
Modify the generate_series() table-valued functions so that its first argument (the START value) is required. Throw an error if that argument is not supplied. In this was the series.c loadable extension can be used as a demonstration of how to code an xBestIndex function to require certain parameters. Compile with -DZERO_ARGUMENT_GENERATE_SERIES to obtain the legacy behavior. (check-in: 459d85a2 user: drh tags: trunk)
15:30
Fix the "main.mk" makefile so that "series.c" is a dependency of "shell.c". (check-in: ff959917 user: drh tags: trunk)
01:19
Get the "omit ORDER BY in FROM-clause subqueries" optimization working for the core test cases. (check-in: e31c5888 user: drh tags: omit-subquery-order-by)
2021-07-15
23:34
By default, do not emit #line directives in the amalgamation. (check-in: bacfa936 user: mistachkin tags: trunk)
23:12
Initial work on blocking locks for the Win32 VFS. Various other small enhancements. (check-in: 584c2425 user: mistachkin tags: win-blocking-locks)
19:29
Attempt to omit ORDER BY clauses from FROM-clause subqueries if those ORDER BY clauses do not affect the output. See forum thread 2d76f2bcf65d256a for discussion. This can help the query flattener in some cases, resulting in faster query plans. The current implemention does not always work. (check-in: ef97c3e7 user: drh tags: omit-subquery-order-by)
16:39
Change references to the schema table in sqlite3_analyzer to the new SQLITE_SCHEMA name. (check-in: 3beb77d6 user: drh tags: trunk)
2021-07-14
21:18
Fix a use-after-free error in ioerr.test caused by an error in test code. (check-in: 1594056a user: dan tags: trunk)
19:35
Enhance the Windows VFS to recognize SQLITE_FCNTL_LOCK_TIMEOUT and make the value set there available to the winLockFile() function. (check-in: 954b5d61 user: drh tags: win-blocking-locks)
2021-07-13
22:49
Enhance comments pertaining to the interface linkage / calling convention macros. (check-in: c378e992 user: mistachkin tags: trunk)
21:59
Further revisions to #line handling for amalgamation builds. (check-in: 9a843212 user: mistachkin tags: trunk)
20:55
Get correct #line tags into amalgamation for other builds too. (check-in: 999eb800 user: larrybr tags: trunk)
15:30
Remove two incorrect assert() statements from the logic used to derive column names and types from subqueries. This allows the SQL associated with CVE-2020-13871 (ticket [c8d3b9f0a750a529]) to be tested. (Closed-Leaf check-in: d2e67220 user: dan tags: branch-3.28a)
11:59
Get #line tags into amalgamation, subject to configure. (check-in: 5d81b598 user: larrybr tags: trunk)
11:55
Merge from trunk, rename tool option for its effect (Leaf check-in: 9327f73c user: larrybr tags: line_tags)
11:30
Do not attempt to run Tcl sessions tests unless both SQLITE_ENABLE_PREUPDATE_HOOK and SQLITE_ENABLE_SESSIONS are defined. (check-in: 385db794 user: dan tags: trunk)
01:45
Amalgamation has #line directives by default. Minor mksqlite3c.tcl changes (check-in: ba3eff71 user: larrybr tags: line_tags)
2021-07-12
15:00
Fix a defect in the query-flattener optimization identified by ticket [8f157e8010b22af0]. This fix is associated with CVE-2020-15358. (Leaf check-in: bcd014c4 user: dan tags: branch-3.32a)
14:38
Fix a defect in the query-flattener optimization identified by ticket [8f157e8010b22af0]. This fix is associated with CVE-2020-15358. (check-in: 9e001b63 user: dan tags: branch-3.28a)
2021-07-11
12:58
Much self-doc improvement for shell.c generation. Misleading error message fixed. (check-in: 7738ce1b user: larrybr tags: cli_extension)
2021-07-10
14:48
.tables fixup for legacy behavior. (check-in: 827ea61d user: larrybr tags: cli_extension)
03:42
Migration to dispatched meta-commands done (check-in: ac4267da user: larrybr tags: cli_extension)
2021-07-09
23:12
Clarify comment on sqlite3.h's interface decaration macros. (check-in: 7cb09aef user: larrybr tags: trunk)
16:00
Remove disused linkage macros. (Leaf check-in: f14d3571 user: drh tags: disused-link-macros)
14:59
Fix an assert() that might fail if sqlite3_create_function_v2() is invoked with NULL xStep and xFinal callbacks and a non-NULL xDestroy. (check-in: ab1550a6 user: dan tags: trunk)
13:52
Enhance the sqlite3_create_function() interfaces to assume a value of SQLITE_UTF8 is presented with a nonsense value for the preferred encoding. This is undocumented behavior added for robustness. (check-in: c1bb5cff user: drh tags: trunk)
13:29
Merge latest trunk changes into this branch. (check-in: 0e968f9d user: dan tags: reuse-schema)
11:52
Add the usual "#ifdef __cplusplus" magic to header file ext/misc/carray.h. Also update carray.h/carray.c to use SQLITE_API in the usual way. (check-in: 0f97c2a4 user: dan tags: trunk)
00:12
Allow CLI shell build to #include same user-specified header as library build. (check-in: eb8af9a4 user: larrybr tags: trunk)
2021-07-08
23:35
Rename optional SQLITE_CUSTOM_INC define to SQLITE_CUSTOM_INCLUDE. (check-in: 060aec37 user: mistachkin tags: trunk)
22:12
Allow library build to #include a user-specified header. (check-in: 71e6490b user: larrybr tags: trunk)
18:29
Preserve and return to the user any error message returned by a failed xConnect() call on an eponymous virtual table that prevents a query from being compiled. (check-in: bbbbeb59 user: dan tags: trunk)
12:12
Fix an issue with the SQLite Expert extension when a column has no collating sequence. Forum post 78165fa250. (check-in: b1e0c22e user: drh tags: trunk)
2021-07-07
19:44
Fix a harmless compiler warning in the "fuzzcheck" test program. (check-in: 8c432642 user: drh tags: trunk)
19:40
Fix a harmless compiler warning - duplicate local variable named "pRHS". (check-in: 5bc05faf user: drh tags: trunk)
18:43
General cleanup of mkshellc.tcl, + help and options, decruft (check-in: 8bdd5fbf user: larrybr tags: cli_extension)
16:48
Follow-up to [68db1ff9c44fa9c3]: The number of registers needed by PRAGMA foreign_key_check was increased too late for an assert() deep down inside of sqlite3ExprCode(). So move the size increase a little earlier. Forum post 79c9e4797d. (check-in: 7072404a user: drh tags: trunk)
15:52
Fix a recently introduced segfault that might occur if a sub-select were used as a term on the RHS of an IN(...) operator for which the LHS is a row-value. (check-in: f586c06a user: dan tags: trunk)
13:53
Improve the error message in cases where there is a row-value on the LHS of an IN() operator, the RHS is a list (not a sub-select) and at least one element of the list is not a row-value with the correct number of elements. (check-in: 6b22f4e7 user: dan tags: trunk)
11:51
Instead of disallowing writes to fts5 tables if there are fts5vocab cursors open on them (commit [c49a6ed7]), abort any fts5vocab queries if the on-disk structure of the fts5 table changes. (check-in: 9dbdc900 user: dan tags: trunk)
2021-07-06
20:44
Handle "<vector> IN (<vector>, <vector> ...)" in the same way as "<vector> IN (VALUES(<vector>, <vector>, ...)". (check-in: 981d230e user: dan tags: trunk)
15:47
Create new branch named "branch-3.36" (check-in: 5eea151d user: larrybr tags: branch-3.36)
02:07
More commands dispathed. Dispatch translation parameterized. (check-in: 372e3241 user: larrybr tags: cli_extension)
2021-07-05
19:01
Do not allow writes to an fts5 table if there are any open fts5vocab cursors. (check-in: c49a6ed7 user: dan tags: trunk)
18:37
Add the ATOMIC_INTRINSICS compile-time output output. Move sqlite3Int.h in front of ctime.c so that default values that are not overridden are shown in PRAGMA compile-time option output. (check-in: e3069526 user: drh tags: trunk)
17:15
Revert [5204c2c4a7b73a64], restoring the old pre-processor logic for determining the availability of the __atomic_store_n()/__atomic_load_n() primitives. (check-in: e690abb9 user: dan tags: trunk)
11:27
Allow sub-queries in the FROM clause of an UPDATE...FROM statement to access the object being updated without using an alias, as is required in the parent query. (check-in: 740cb430 user: dan tags: trunk)
02:40
Improved rebustness in sqlite3ExprListDup() when it contains a vector assignment from an UPDATE where the initial term is omitted. This can happen during a UNION ALL query flattening while processing a virtual table update in which the first term of the vector is repeated. Forum post 16ca0e9f32. (check-in: 2547cfe3 user: drh tags: trunk)
01:11
Ensure that TK_SELECT_COLUMN Expr nodes always have their iTable field set to to the number of columns in the vector. This is not strictly necessary. It just simplifies the state description and make the code easier to reason about. (check-in: 026f08d4 user: drh tags: trunk)
00:07
Fix an incorrect comment on testcase misc1-27.0. No changes to code. (check-in: 49829ae3 user: drh tags: trunk)
2021-07-04
22:38
Streamline most common command definition (check-in: dd76b41a user: larrybr tags: cli_extension)
22:33
Enhance the treeview debugging mechanism so that it correctly deals with TK_ROW expression nodes. (check-in: e87fdb65 user: drh tags: trunk)
2021-07-03
19:20
Create infrastructure for dynamic shell extension. (check-in: 5e7e0d4e user: larrybr tags: cli_extension)
18:57
Fix a (harmless) typo in a comment. No code changes. (check-in: d2b9b8da user: drh tags: trunk)
02:55
In the PRAGMA foreign_key_check, ensure that sufficient registers are allocated for the virtual machine, even if one or more foreign keys reuses the same column multiple times and has more columns than the table it is part of. Forum post a6b0c05277. (check-in: 68db1ff9 user: drh tags: trunk)
2021-07-02
12:25
Put ALWAYS() on a branch that is always true due to [d4097364c511709b]. Fix a testcase precondition associated with the same check-in. (check-in: 55e2fbeb user: drh tags: trunk)
12:08
Fix a harmless assertion fault discovered by OSSFuzz. The assertion fault is harmless because the assert() checks a condition that that is harmless if false and the assert() is disabled in production builds. (check-in: 79443aab user: drh tags: trunk)
2021-07-01
18:19
Allow unqualified "rowid" references to be used in join queries, provided that only one of the source objects has a rowid. Forum post ab5b077c32636e49 (check-in: d4097364 user: dan tags: trunk)
16:57
Import the updated nmakehlp.c file used by the TCL Extension Architecture (TEA) builds in the amalgamation tarballs. Forum post 5a5001f20a. (check-in: 595bf95b user: drh tags: trunk)
2021-06-30
14:04
Fix a memory leak in fts5 that could occur when processing a query containing multiple classes of error. (check-in: 7c279670 user: dan tags: trunk)
12:11
Fix an assert() in fts5 that might fail when dealing with corrupt records. (check-in: 9e760e25 user: dan tags: trunk)
11:53
Do not enforce the SQLITE_LIMIT_FUNCTION_ARG limit for internally generated SQL. This prevents problems with statements like ALTER TABLE if the function argument limit is set too low. Forum post 17735aa21f3ddab2. (check-in: 763fdec5 user: drh tags: trunk)
2021-06-28
15:25
When generating data for a RETURNING clause, avoid assuming cursor number 0 is available for use. (check-in: 4b2c59ac user: dan tags: trunk)
2021-06-25
14:48
The OP_ReopenIdx opcode should clear the cursor if the cursor is being reused. This prevents leaving the cursor in an initialized state which could cause problems for a subsequent OP_SeekScan opcode. Fix for ticket [6dcbfd11cf666e21] and the OP_SeekScan optimization of check-in [4a43430fd23f8835]. (check-in: d4bf5243 user: drh tags: trunk)
11:21
Remove a redundant "ANALYZE" line from the ".fullschema" output. (check-in: 7b47f420 user: drh tags: trunk)
11:14
Fix a bug in the ".fullschema" dot-command of the CLI brought to light by check-in [a2ddb89b206c1387] - raising an error on at attempt to access the rowid of a subquery or view. (check-in: 36875827 user: drh tags: trunk)
00:25
Document sqlite3_wal_hook() return. (check-in: 8acaf796 user: larrybr tags: trunk)
2021-06-24
18:23
Allow the SQLITE_OPEN_EXCLUSIVE flag in sqlite3_open(). Return the SQLITE_CANTOPEN_EXISTS extended code to indicate that the open failed because the database already exists. (check-in: d091150f user: drh tags: trunk)
2021-06-23
17:41
Make conditional nature of sqlite3_normalized_sql() better known. (check-in: 0e0ece71 user: larrybr tags: trunk)
16:07
Fully incorporate *_changes64() API improvement. (check-in: 6699a2f6 user: larrybr tags: trunk)
11:39
Show CROSS JOINs in the TreeView debuggingn output. (check-in: 72e09b6c user: drh tags: trunk)
11:12
Fix a problem handling ORDER BY terms of the form "ORDER BY likely(<integer>)" within window frames. (check-in: 710f75b9 user: dan tags: trunk)
2021-06-22
23:30
This is another alternative fix to the covering index on WHERE_MULTI_OR in a LEFT JOIN problem that is fixed on trunk nearby. In this alternative, covering indexes are simply disabled for WHERE_MULTI_OR on a LEFT JOIN. This might have run-time impact on some obscure queries. This patch is saved for historical reference only. (Closed-Leaf check-in: 66856410 user: drh tags: multi-or-covidx-fix3)
23:27
This is an alternative fix to the covering index on WHERE_MULTI_OR in a LEFT JOIN problem that is fixed nearby. This one works by having the OP_NullRow opcode create the index if it does not already exist. That is slightly more complex. This patch is saved for historical reference only. (Closed-Leaf check-in: 956bafb6 user: drh tags: multi-or-covidx-fix2)
23:24
When an index is used by all branches of the WHERE_MULTI_OR optimization and becomes a covering index, make sure the index has been created prior to NULLing it in the OP_NullRow opcode of a LEFT JOIN. See forum post 0575376e07. The covering-index for WHERE_MULTI_OR optimization was added by [62678be3df35cdcb]. Test cases are in the orindex01.test module of TH3. (check-in: 787c76a8 user: drh tags: trunk)
18:32
Add the sqlite3_changes64() and sqlite3_total_changes64() API functions. (check-in: 48fdec22 user: dan tags: trunk)
18:06
Fix a problem causing sqlite3_changes() to return an incorrect value following a "DELETE FROM tbl" command on an intkey table (because internal b+tree cells were being included in the count). (check-in: f662ff47 user: dan tags: trunk)
14:59
Ensure that the cell array used in balance_nonroot() is always large enough, even if the pages being balanced are corrupt. (check-in: 53f64e83 user: dan tags: trunk)
2021-06-20
22:52
Load recent dbsqlfuzz cases into test/fuzzdata8.db. (check-in: a766bba0 user: drh tags: trunk)
22:49
Remove a NEVER() that is reachable by a corrupt database. dbsqlfuzz 8456a0f88e39a49fb675d8f77394979ebb2a03c1. Test case in TH3. (check-in: 1c41e86f user: drh tags: trunk)
22:17
Do not allow an SQLITE_CORRUPT error to mask a prior SQLITE_IOERR in balance_nonroot(). dbsqlfuzz 5e1c86e7f18023f2b9abe3429977d7ea726f50d8 (check-in: 50e81876 user: drh tags: trunk)
2021-06-19
20:20
Remove unnecessary (redundant) variable initialization from sqlite3BtreeInsert() for a small size reduction and performance increase. (check-in: 70d18364 user: drh tags: trunk)
18:35
The previous check-in is a significant change to btree, so go ahead and increment the version number for the next development cycle. (check-in: 2eb66970 user: drh tags: trunk)
18:32
Split the sqlite3BtreeMovetoUnpacked() routine into two separate routines sqlite3BtreeTableMoveto() and sqlite3BtreeIndexMoveto(), since we usually know the type of btree in advance. This results in less branching and better performance. (check-in: 3b0d34e5 user: drh tags: trunk)
2021-06-18
19:01
Merge version 3.36.0 (check-in: 79221520 user: drh tags: reuse-schema)
18:36
Version 3.36.0 (check-in: 5c9a6c06 user: drh tags: trunk, release, version-3.36.0)
2021-06-17
17:44
Merge recent trunk changes into branch-concurrent-pnu-wal2 via that wal2 branch. (check-in: 2ff7e562 user: drh tags: begin-concurrent-pnu-wal2)
17:38
Merge recent trunk enhancements into begin-concurrent-report via begin-concurrent-pnu. (check-in: 204dbc15 user: drh tags: begin-concurrent-report)
17:30
Merge recent trunk enhancements into the begin-concurrent-pnu branch. (check-in: 229107b1 user: drh tags: begin-concurrent-pnu)
17:29
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: 59303e69 user: drh tags: begin-concurrent)
17:26
Merge recent trunk enhancements into reuse-schema branch. (check-in: 92d8f967 user: drh tags: reuse-schema)
16:53
Merge the latest trunk enhancements into the wal2 branch. (check-in: 41363fb9 user: drh tags: wal2)
2021-06-16
19:23
Add an ALWAYS on a branch in STAT4-only logic that is now always true due to check-in [c21bc5a2353e660f]. (check-in: 7bd55eee user: drh tags: trunk)
18:58
Omit a handful of tests from pager1.test when testing SQLITE_ENABLE_ZIPVFS builds. (check-in: c3036c28 user: dan tags: trunk)
16:56
Do not run test file sessionbig.test on 32-bit platforms. It uses too much memory. (check-in: 75e53215 user: dan tags: trunk)
15:56
Adjust the mkshellc.tcl script so that the generated code always uses unix-style line endings. (check-in: 9f69af4d user: drh tags: trunk)
13:26
Avoid ominous warning in showdb.c (check-in: f8d7ac01 user: larrybr tags: trunk)
12:26
Adjustments to requirement markings in comments. No changes to code. (check-in: be00e45b user: drh tags: trunk)
11:32
Enhanced defense against integer overflow in ALTER TABLE. (check-in: fb7f094e user: drh tags: trunk)
2021-06-15
20:10
Fix some #ifdefs so that builds work for all supported compile-time options. (check-in: ca7d78f7 user: drh tags: trunk)
20:07
Fix an incorrect ifdef in the previous check-in. (Closed-Leaf check-in: 4b2bb467 user: drh tags: ifdef-update)
18:46
Fix some minor #ifdef issues so that all of the supported compile-time options continue to build. (check-in: d8cf4070 user: drh tags: ifdef-update)
15:36
Update the "nmakehlp.c" utility program sources associated with the TCL Extension Architecture, obtained from https://core.tcl-lang.org/sampleextension/file. Perhaps this new version will sit better with salmonx's static analyzer (ref1), (ref2). (check-in: 603b851d user: drh tags: trunk)
15:15
Add NULL checks on all sqlite3_vfs_find(0) calls. This is not strictly necessary. There are no vulnerabilities here. However, adding these checks avoids unnecessary static analyzer complaints. Forum post ce1193be15. (check-in: 272a15b9 user: drh tags: trunk)
14:34
Prevent an infinite loop in the trim() SQL function if the second argument is a carefully malformed UTF8 string. (check-in: 829343c2 user: drh tags: trunk)
2021-06-14
20:49
Fix typos in testcase() macros from check-in [c09d90eec2a49b94]. (check-in: d4d9869c user: drh tags: trunk)
20:41
In the authorizer, use SQLITE_DROP_INDEX, not SQLITE_DROP_TEMP_INDEX when dropping an index in an attached database. (check-in: e5a5acd6 user: drh tags: trunk)
20:08
Fix an ALTER TABLE problem with handling infinite loops of CTEs in the database schema. (check-in: c09d90ee user: dan tags: trunk)
14:52
Fix a test script problem in corruptN.test. (check-in: 3ddfe9ae user: dan tags: trunk)
14:35
Update this branch with latest changes from trunk. (check-in: f21a53fb user: dan tags: reuse-schema)
14:25
Update this branch with latest changes from wal2. (check-in: 0ab89901 user: dan tags: begin-concurrent-pnu-wal2)
14:12
Update this branch with latest changes from trunk. (check-in: b38c2b8b user: dan tags: wal2)
14:01
Update this branch with latest changes from begin-concurrent-pnu. (check-in: a485d1a1 user: dan tags: begin-concurrent-report)
14:00
An index on the expression "likely(X)" should store the true value of X, even if X is a real number with no fractional part. The optimization of storing some REAL indexed values as INT (see [10d851353c2abead]) should be omitted for index columns that are expressions. Forum post 3b940c437a. (check-in: 791473bc user: drh tags: trunk)
13:49
Update this branch with latest changes from trunk. (check-in: 74b42754 user: dan tags: begin-concurrent-pnu)
12:23
Update this branch with latest trunk changes. (check-in: d8199634 user: dan tags: begin-concurrent)
11:20
Avoid allocating oversized column names in the sqllimit1.test module. (check-in: 7068f1f6 user: drh tags: trunk)
2021-06-13
19:14
The opcode that preceeds OP_SeekScan is usually OP_IdxGT but can sometimes be OP_IdxGE. Adjust asserts accordingly. Follow-up to [9a2ab6092d644fc3]. dbsqlfuzz e41762333a4d6e90a49e628f488d0873b2dba4c5 (check-in: d6803ed8 user: drh tags: trunk)
17:55
Improved defense against OOM errors in sqliteInitOne(). dbsqlfuzz 429db39cd5777c46479641e8637c48c62890042d (check-in: b6c57e0e user: drh tags: trunk)
08:23
Correct link in .ar help. (check-in: de9d0f95 user: larrybr tags: trunk)
2021-06-12
18:12
The sqlite3WithPush() routine might destroy its second argument if there was a prior OOM. Do not use the second argument of sqlite3WithPush() if this happens. (check-in: baa3f962 user: drh tags: trunk)
17:45
An alternative approach to the use-after-free problem. (Closed-Leaf check-in: 6796b7a2 user: drh tags: alternative-oom-fix)
16:17
Fix a use-after-free that could follow an OOM in ALTER TABLE. (Edit:) Still contains problems. (Closed-Leaf check-in: 193b14a5 user: dan tags: original-uaf-fix)
2021-06-11
13:18
Reapply two recent ALTER TABLE error checks that turned out to be necessary after all. dbsqlfuzz fc5a9deefda00dda914748985155a6d4c44174e5. (check-in: 230fedd9 user: drh tags: trunk)
12:41
Avoid bugs in some implementations of dlopen() by avoiding calls to dlopen() with a filename argument that exceeds FILENAME_MAX bytes. Forum post 08a0d6d9bf. (check-in: 01f3877c user: drh tags: trunk)
12:14
Fix a crash in new ALTER TABLE code that could follow an OOM. (check-in: 6f1f2a0a user: dan tags: trunk)
12:02
Remove an unreachable branch added by the previous commit. (check-in: 852ee0e9 user: dan tags: trunk)
11:14
Fix problems with ALTER TABLE and schemas that contain views with some recursive CTEs, or CTEs that reference other CTEs. Forum post 9d965f2956. (check-in: 8b1f9a51 user: dan tags: trunk)
2021-06-10
19:37
Fix an assert() added by the previous commit that could fail with some database schemas. (Closed-Leaf check-in: 5079b5d5 user: dan tags: alter-table-cte-fix-1)
19:08
Fix problems with ALTER TABLE and schemas that contain views with complex CTEs. (check-in: 32e3ecfc user: dan tags: alter-table-cte-fix-1)
14:36
Improved robustness following OOM in the constant propagation optimization. dbsqlfuzz 001a20255c0df7495c21df62a20ea5b51e22c390. (check-in: 8658a64d user: drh tags: trunk)
2021-06-09
14:45
Set the database connection error code for an oversize argument to sqlite3_bind_blob64() or sqlite3_bind_text64(). Forum post a636276f0d451667 and 33821c8db543c. (check-in: 56ff58c0 user: drh tags: trunk)
13:39
Add defensive code to better handle corrupt records in fts5. (check-in: a99c29b5 user: dan tags: trunk)
2021-06-08
23:46
Remove two assert()s in FTS5 that checks for database corruption right before actual code does the same check. dbsqlfuzz 9680db8f5338cb9b6060eb3a02d984555d4472e3. (check-in: f3f82967 user: drh tags: trunk)
17:56
Try to avoid a double-free in the showdb utility program when running pgidx on a corrupt database. See forum post a60ea5a4d4 for context (check-in: e3188a86 user: drh tags: trunk)
12:22
Add an assert() to prevent the value of the SQLITE_VTABRISK macros from being changed in a way that would break logic. (check-in: 33babdb5 user: drh tags: trunk)
12:15
Avoid a buffer overread in fts3 that could occur when handling corrupt data structures. (check-in: 45f459d2 user: dan tags: trunk)
2021-06-07
17:36
Fix a buffer overread that could occur in fts5 when handling corrupt records. (check-in: 078962a2 user: dan tags: trunk)
15:28
Fix a buffer overrun in fts3 that could occur when handling corrupt records and '^' queries. (check-in: 9d0b6b0f user: dan tags: trunk)
14:21
Add recent dbsqlfuzz test cases to test/fuzzdata8.db. (check-in: 16202200 user: drh tags: trunk)
13:50
Avoid use of uninitialized memory while running defragmentPage() on a corrupt database file. dbsqlfuzz 4c45cecc0b255aaf2ea85453ccd17e814fd0b6b2 (check-in: 35e40d75 user: drh tags: trunk)
11:50
Fix an assert() in the OP_ParseSchema opcode that might fail on a corrupt database file when running with PRAGMA writable_schema=ON. dbsqlfuzz e7d743ca65f2767e415095f0c5a49166a0f55eea. (check-in: 10801f65 user: drh tags: trunk)
00:54
Remove unnecessary end-of-line whitespace from the regexp.c extension. (check-in: 17e26a1f user: drh tags: trunk)
00:41
Omit the unnecessary highlighting of the security implications of SQLTIE_DIRECTONLY in the sqlite3_create_function() documentation. No changes to code. (check-in: 2aa9368b user: drh tags: trunk)
2021-06-04
23:26
A better fix for the problem addressed by [4eb80b0cc61526c1]. This fix also avoids reading uninitialized variables. (check-in: 1c71de43 user: drh tags: trunk)
21:46
Make MSVC build examples work when taken literally, and say when they do. (check-in: b53ca8ed user: larrybr tags: trunk)
17:47
Improvements to the OP_SeekScan optimization. Added the SQLITE_TESTCTRL_TUNE test-control. (check-in: 9a2ab609 user: drh tags: trunk)
16:17
Add the (missing) dependency of regexp.c to the shell.c rule in the makefiles. This dependency should have been added by [5d4535bfb603d7c8] but was missed. (check-in: c93be7e6 user: drh tags: trunk)
16:11
Fix harmless compiler warnings. (check-in: 83aca2d8 user: drh tags: trunk)
15:56
Fix more cases in the regexp extension where the 0x00 terminator at the end of the input string is being pattern matched. [forum/forumpost/9104f0d9e7|Forum post 9104f0d9e7]. (check-in: 569e00d4 user: drh tags: trunk)
13:40
Revamp SQLITE_TESTCTRL_TUNE to provide visibility of current turning parameter values. (Closed-Leaf check-in: 677e645e user: drh tags: seekscan-improvements)
13:16
Add support for SQLITE_TESTCTRL_TUNE and the ".testctrl tune ID VALUE" command in the CLI. (check-in: f1199d58 user: drh tags: seekscan-improvements)
12:29
Merge recent trunk enchancements into the seekscan-improvements branch. (check-in: d9e85fe8 user: drh tags: seekscan-improvements)
2021-06-03
18:56
Fix a case where combining row-value UPDATE FROM syntax with window functions over aggregates can cause an error. dbsqlfuzz ae4516bff08d736f203f09934e2f4d31e0b3e7ce (check-in: 4a587c34 user: dan tags: trunk)
18:51
Fix the truncate optimization so that PRAGMA count_changes and changes() return correct values even for a WITHOUT ROWID table. Forum post 07dedbf9a1. (check-in: 820ae3b1 user: drh tags: trunk)
13:51
Add the regexp() and regexpi() extension functions to the CLI. (check-in: 5d4535bf user: drh tags: trunk)
13:44
Fix a bug in the regexp extension in which the "." wildcard would match the 0x00 terminator at the end of the comparison string. (check-in: fa23108b user: drh tags: trunk)
12:31
Fix the case-insensitive version of the regexp() function so that it does not use the prefix optimization incorrectly. Forum post 983b43ef8e. (check-in: 1a8e43cc user: drh tags: trunk)
2021-06-02
19:28
Add an optimization control bit to disable the OP_SeekScan optimization. (check-in: f674c41e user: drh tags: seekscan-improvements)
18:50
Fix an ALWAYS which can be false. (check-in: a87f8ecd user: drh tags: seekscan-improvements)
17:32
Tighten assert() restrictions on the OP_SeekScan opcode. (check-in: dbc33d3a user: drh tags: seekscan-improvements)
17:14
Never use WHERE_IN_SEEKSCAN for the 2nd or subsequent IN operator. (check-in: d0b98619 user: drh tags: seekscan-improvements)
12:44
This is an attempt to address the OP_SeekScan performance issue identified by forum post b4fcb8a598. (check-in: d58efb3f user: drh tags: seekscan-improvements)
2021-06-01
21:07
Fix issue in 'mkopcodeh.tcl' tool that prevented its termination in rare circumstances. (check-in: a8d92113 user: mistachkin tags: trunk)
15:37
Fix a problem with running ALTER TABLE against schemas that contain compound SELECT statements with ORDER BY clauses containing one or more references to the second or subsequent component SELECT statements. This fixes the problem reported by forum post 31ceaa8461. (check-in: 587a3044 user: dan tags: trunk)
2021-05-29
23:07
Do not confuse the ">" operator with IS NOT NULL when checking to see if a partial index is usable. Forum post d813704d7c. (check-in: 8cc23931 user: drh tags: trunk)
21:50
Fix a subtle error in an assert(). dbsqlfuzz eefbd0215c0c1b4bcc32b8141b48b35f7b431300 (check-in: a5ec81eb user: drh tags: trunk)
2021-05-28
14:28
If a subquery is used to drive an index, this change avoids making an extra copy of the result of that subquery. But, such situations are probably sufficiently unusual that the added complexity of this enhancement is not worth the performance gain. So I'm going to park this check-in on a branch. If we later find a use case to justify it, we can merge it to trunk then. This is the "further change" that was promised by the prior check-in comment. (Leaf check-in: 4488cb88 user: drh tags: copy-optimization)
12:48
Make a deep copy of the result of a subquery in case the subquery is reused. Fix for the problem reported by forum post 28216b36ac and introduced by check-in [f30fb19ff763a7cb]. Further changes to try to optimize the new OP_Copy opcode back into either OP_SCopy or OP_Move will be attempted separately. A test case will be in TH3. (check-in: c9f0b9cb user: drh tags: trunk)
12:15
Fix a potential memory leak in json_group_object() following an error. dbsqlfuzz cd32630de3ff039d97089592b63cb3616f8ec9dd (check-in: 21676731 user: drh tags: trunk)
2021-05-27
16:31
Add the merge-test.tcl script to ease verification of LTS branches. (check-in: f958ffbc user: drh tags: trunk)
15:24
The SQLITE_ENABLE_SHARED_SCHEMA compile-time option is on by default in the configure-generated makefile, permitting a complete test of this branch using "./configure && make test". (check-in: e867d226 user: drh tags: reuse-schema)
14:09
Improved comment on the prpagateConstants() routine. No changes to executable code. (check-in: d61a875d user: drh tags: trunk)
10:23
Remove a NEVER that is reachable following OOM in writable_schema=ON mode with a corrupt schema. (check-in: 4eb80b0c user: drh tags: trunk)
2021-05-26
23:10
Improvements to the constant-propagation optimization in order to better deal with unusual affinities. See forum post 6a06202608 for more detail. (check-in: 9be208a6 user: drh tags: trunk)
19:52
Minor optimization to opcode comparison logic in the fixes to the constant-propagation optimization on this branch. (Closed-Leaf check-in: f17dec40 user: drh tags: constant-propagation-fix)
19:37
Add new test file whereM.test. Containing tests for the change on this branch. (check-in: c4c76b82 user: dan tags: constant-propagation-fix)
18:51
Avoid assuming that an expression like "x=10" in a WHERE clause implies that CASE(x AS TEXT)=='10'. (check-in: 389ec669 user: dan tags: constant-propagation-fix)
18:46
Take care that the code is not generated for the same Select object more than once, as transformations that apply during the first pass might cause problems for the second pass. dbsqlfuzz 836b625cd8a41809ef80fc7ebaa6554357bcb463. (check-in: f30fb19f user: drh tags: trunk)
14:32
Update an assert() in wherecode.c that might fail following an unrelated SQL error. (check-in: 3e2c36a8 user: dan tags: trunk)
2021-05-25
16:10
Do not run sessionbig.test as part of the session_strm permutation. It is too slow. (check-in: 708ce7ad user: dan tags: trunk)
15:21
Update an allocation routine in the sessions module to allow it to allocate the maximum size permitted by sqlite3_realloc64(). (check-in: 0b45e821 user: dan tags: trunk)
11:39
Enhance the shell tool ".dump PATTERN" command so that it dumps the contents of shadow tables when a virtual table is identified by the PATTERN. (check-in: b0bc5ab9 user: dan tags: trunk)
2021-05-24
14:35
Fix a problem in the in-memory journal code that could occasionally lead to a segfault when a sub-transaction that modified zero pages was committed. (check-in: 17960165 user: dan tags: trunk)
12:28
Minor comment improvements in fuzzcheck.c. (check-in: 7aca8d52 user: drh tags: trunk)
12:13
New dbsqlfuzz cases added to test/fuzzdata8.db. (check-in: 5bb5c9ec user: drh tags: trunk)
11:35
Fix the TreeView module so that it works with the TK_ERROR exprssion. Also fix an assert() that was failing due to the recent TK_ERROR addition. (check-in: dd56fbe0 user: drh tags: trunk)
00:17
Additional defenses (above and beyond [b986600520696b0c]) to prevent an invalid subquery from causing problems downstream. If an error is found while analyzing a subquery expression, change the expression to TK_ERROR so inhibit further processing on that expression. dbsqlfuzz cf624b8c0484c66e0f552bf6475e3e3f2c22b24e. (check-in: 0be6b6c9 user: drh tags: trunk)
2021-05-23
17:47
Do not push a WITH clause onto the processing stack if prior errors have occurred. dbsqlfuzz 6b7a144674e215f06ddfeb9042c873d9ee956ac0. (check-in: c2066dde user: drh tags: trunk)
2021-05-22
15:05
Merge latest trunk changes into this branch. (check-in: dbc65a69 user: dan tags: reuse-schema)
11:23
Do not invoke sqlite3ExprAffinity() after a syntax error that might have left the tree in an inconsistent state. See also [e8a1515b44380cc5] and forum post 7e484e225c. (check-in: b9866005 user: drh tags: trunk)
11:00
The fix in the previous check-in was only correct if the OOM occurs on the initial allocation. This changes should make it correct for a resize as well. (check-in: 57087ab2 user: drh tags: trunk)
01:30
If an FTS5 Cursor fails to enlarge the space for the aInst array, set the size of the aInst array to zero. dbsqlfuzz 294254b8105cca409f27a711f1eb2e9e63cbcac5. (check-in: 4ae5e5b5 user: drh tags: trunk)
2021-05-21
21:49
If there are errors in a nested CTE, be sure to abandon processing. Do not continue since the parse tree may have been left in a goofy state which could cause use-after-free and segfaults. See forum post aa4a7a3980 for an example. (check-in: 94225d69 user: drh tags: trunk)
17:31
Merge latest changes from wal2 into this branch. (check-in: 4efefb59 user: dan tags: begin-concurrent-pnu-wal2)
16:42
Merge the latest trunk enhancements into the wal2 branch. (check-in: 95cc7783 user: drh tags: wal2)
16:41
Fix a problem with SQLITE_MAX_MEMORY in malloc.c. (check-in: c18dbe2f user: dan tags: trunk)
16:32
Merge the latest trunk changes into begin-concurrent-report branch via the begin-concurrent-pnu branch. (check-in: 1dc6cf51 user: drh tags: begin-concurrent-report)
16:17
Merge recent trunk changes into the begin-concurrent-pnu branch. (check-in: a8d05f8e user: drh tags: begin-concurrent-pnu)
15:33
Merge all recent trunk changes into the begin-concurrent branch. (check-in: 0dba9010 user: drh tags: begin-concurrent)
13:32
Add a new sqlite3_config() option for setting the maximum precision of a printf() substitition. The default value is 100,000. It was formerly more than 2 billion. The default can be changed using the SQLITE_PRINTF_PRECISION_LIMIT compile-time option. (Leaf check-in: fd8b68a4 user: drh tags: compile-time-precision-limit)
2021-05-20
23:25
Fix a faulty assert() statement in sqlite3ExprListDup(). This is a continuation of the fix at [59812e7ef705226c]. (check-in: 240f7494 user: drh tags: trunk)
18:11
Enhance one test case to use various alternative definitions of DUAL. (check-in: 179dcb6b user: drh tags: trunk)
17:15
Ensure that objects within view definitions are not incorrectly resolved to CTEs that are part of the statement using the view. (check-in: f7dcc4b5 user: dan tags: trunk)
11:42
Ensure the required b-tree mutexes are held for "CREATE TABLE IF NOT EXISTS" and "DROP TABLE IF EXISTS" statements on attached databases. (check-in: 67bde016 user: dan tags: trunk)
00:44
Replace [0f0959c6f95046e8] with a new and better solution that also fixes the CTE name resolution problem described in forum post 8590e3f6dc. Test cases for both problems added. (check-in: 5614279d user: drh tags: trunk)
00:10
Fixes and improvements to PRAGMA compile_options. (check-in: 34579549 user: drh tags: trunk)
2021-05-19
23:29
final merge from trunk (Leaf check-in: 06629569 user: larrybr tags: compile_options)
21:55
When constructing the synthensized SELECT statement that is used to choose the rows in an UPDATE FROM, make sure the first table is really the table being updated, and not some common-table expression that happens to have the same name. forum post a274248080. More changes associated with CTE name resolution are pending. (check-in: 0f0959c6 user: drh tags: trunk)
20:01
Incorporate ..._DESERIALIZE revision. (check-in: b70587cc user: larrybr tags: compile_options)
19:55
merge from trunk (check-in: 19ffe3cf user: larrybr tags: compile_options)
19:28
Add a comment with useful information about SHM locking. No changes to deliverable code. (check-in: 4e81ea3b user: drh tags: trunk)
19:27
Fix a formatting error on the comment. (Closed-Leaf check-in: 6f2fb60e user: drh tags: better-comment)
16:55
Add a table of shared-memory lock offsets in a comment in the os_unix.c code. Include some assert()s to help verify the numbers. (check-in: b480aacb user: drh tags: better-comment)
14:49
Allow aggregate sub-selects within ORDER BY and PARTITION BY clauses of window frame definitions. (check-in: 3daab949 user: dan tags: trunk)
12:17
Improved column name and column type determination for the RETURNING clause. (check-in: 699c3399 user: drh tags: trunk)
02:33
Cure some TCL test failures and narrow an object scope. (check-in: 1155696c user: larrybr tags: trunk)
2021-05-18
19:10
In the MULTI-INDEX OR query plan, code for sub-expressions can sometimes be generated twice. But for some subqueries, generating code off of the same tree twice causes problems. So now MULTI-INDEX OR makes a copy of the sub-expressions it uses to avoid code-generating them more than once. dbsqlfuzz 9ebd2140e7206ff724e665f172faea28af801635. (check-in: 4a55f725 user: drh tags: trunk)
12:36
Improved comments on the generated opcodes.h file. (check-in: f2a17f1f user: drh tags: trunk)
00:52
Add a CORRUPT_DB term to an assert() added earlier today. (check-in: 304739d2 user: drh tags: trunk)
2021-05-17
17:14
Fix harmless compiler warnings. (check-in: ace12a39 user: drh tags: trunk)
16:54
Enhance the integer-comparison optimization on the OP_Eq and similar opcodes so that it avoids a lot of useless work. (check-in: 4221f41a user: drh tags: trunk)
16:20
Fix problems with refering to CTEs from within sub-selects in PARTITION BY or ORDER BY clauses of window frame definitions. Also a problem with renaming a column when the schema contains a trigger containing a correlated sub-select within a window frames PARTITION BY or ORDER BY clause. (check-in: 4c6cd54a user: dan tags: trunk)
13:11
When deleting an SQL function that does not exist, return without doing anything at all rather than creating a tombstone function. In this way, function deletes that happen inside virtual-table destructors that are run when a database connection is closing do not create new tombstones in the function table after the function table has already been purged. forum post 726219164b. (check-in: 391c7313 user: drh tags: trunk)
11:19
Performance improvement in sqlite3TableLock(). (check-in: 0d77e371 user: drh tags: trunk)
2021-05-15
19:36
Performance optimization in the memory allocation of allocateCursor. (check-in: 9d16323d user: drh tags: trunk)
13:08
Performance optimization to the clearCell() routine inside of btree. (check-in: c4e02619 user: drh tags: trunk)
2021-05-14
20:01
Small performance improvement for sqlite3BtreeInsert(). (check-in: 4ae64484 user: drh tags: trunk)
15:37
Avoid adding superfluous virtual WHERE clause terms that might arise due to the constant propagation optimization. (check-in: cf63abbe user: drh tags: trunk)
14:26
Attempt the constant propagation optimization on any WHERE clause that has a top-level AND operator, even if the query is not a join. This is an attempt to partially address the concern raised in forum post 830d37b928. (check-in: e994c9f2 user: drh tags: trunk)
13:32
Fix an over-length source code comment in whereexpr.c. No logic changes. (check-in: af5eb902 user: drh tags: trunk)
2021-05-13
18:24
Modify the sqlite3_stmt_readonly() interface so that it returns false for CREATE TABLE IF NOT EXISTS statements even if the table already exists and the statement is really a read-only no-op. Likewise for DROP TABLE, CREATE INDEX, and DROP INDEX. Update the documentation for sqlite3_stmt_readonly() to reflect this new behavior. (check-in: cf8eb465 user: drh tags: trunk)
13:43
The content columns of the index-btree that implements a WITHOUT ROWID table are not ordered and so the query planner should not assume they are ordered. Fix for the issue identified by forum post 6c8960f545. (check-in: c21bc5a2 user: drh tags: trunk)
2021-05-12
22:15
Further simplification of the reverse-order scan logic of the previous check-in. (check-in: b2b0e23b user: drh tags: trunk)
22:02
Fix the query plan for an indexed lookup on a WITHOUT ROWID table with a DESC primary key when the primary key is constrained by an inequality. See forum post 8988341615. Test cases in TH3. (check-in: f65c929b user: drh tags: trunk)
15:39
Fix a race condition that can lead to deadlock in the memdb VFS if one thread is trying to open an existing database at the same moment that another thread that is the only prior user of that database is trying to close it. (check-in: b635375d user: drh tags: trunk)
14:17
Add the new threadtest5 test program for stressing multiple database connections in the same process hammering on a single database. Primarily designed to test memdb, but works on any database. (check-in: 8db1c069 user: drh tags: trunk)
11:55
Enhance the memdb VFS so that it is able to share databases among multiple database connections in the same process, as long as the database filename begins with "/". This provides a way for threads to share an in-memory database without the use of shared-cache mode. (check-in: 533fffc4 user: drh tags: trunk)
02:52
Respond correctly to OOM during mutex allocation. (Closed-Leaf check-in: 98dae595 user: drh tags: memdb-enhancement)
02:09
Mark an unreachable branch as NEVER(). (check-in: 6c20d9d4 user: drh tags: memdb-enhancement)
2021-05-11
11:40
Fix a NEVER() that can sometimes be true. (check-in: 8f9f1cbc user: drh tags: memdb-enhancement)
11:33
Merge changes from branch-3.35. Specifically, fixes for a running RBU with a cksumvfs VFS. (Leaf check-in: ca62c36b user: dan tags: reuse-schema-3.35)
11:25
Fixes for cksmvfs and rbu so that they work together. (Leaf check-in: ce8b589e user: dan tags: branch-3.35)
10:47
Fix a NEVER() that can sometimes be true. dbsqlfuzz 9a86fb3830977e216fde061bfbe1c1e5c2e9bfc4 (check-in: f39666e6 user: drh tags: trunk)
2021-05-10
23:48
Enhance the memdb VFS to provide the ability to share a single database among multiple database connections. (check-in: 0617c66a user: drh tags: memdb-enhancement)
13:28
Add new output columns to the "PRAGMA database_list" statement. (Leaf check-in: 905085a7 user: drh tags: database-list-enhancement)
2021-05-08
17:18
Enable the sqlite3_serialize() and sqlite3_deserialize() interfaces by default. Omit the SQLITE_ENABLE_DESERIALIZE option and replace it with the SQLITE_OMIT_DESERIALIZE option. (check-in: 6df3b03e user: drh tags: trunk)
11:57
Fix help-text typo in the CLI. (check-in: 56075314 user: drh tags: trunk)
2021-05-07
15:46
Detect misuse of aggregate functions in the ORDER BY clause of a query even if the query also contains window functions. (check-in: 0d11d777 user: drh tags: trunk)
14:16
This was suppose to be a merge from trunk. But something went wrong. (Closed-Leaf check-in: c5e2de1d user: dan tags: bad-merge)
2021-05-06
20:47
Fixes for cksmvfs and rbu so that they work together. (check-in: f35f6972 user: dan tags: trunk)
13:45
Remove an assert() in FTS5 that can (rarely) be false in the event of an OOM while processing a corrupt database file. (check-in: 5f12f891 user: drh tags: trunk)
11:02
Improved detection of oversized cells in balance_nonroot(), especially in index b-trees when a cell is being moved from a child page into the parent page in order to become a new divider cell. (check-in: 9080d3d5 user: drh tags: trunk)
2021-05-05
19:46
Provide the sqlite3PrintMem() routine on SQLITE_DEBUG builds, which can be invoked from a debugger to get a summary of the status of an sqlite3_value or Mem object. (check-in: 5ac24179 user: drh tags: trunk)
11:47
Fix an undefined-integer-overflow problem in fts3.c. (check-in: a0bf931b user: dan tags: trunk)
2021-05-04
23:21
When applying the optimization that disables WHERE clause terms that drive indexes, make sure not to do so if the term being disabled is a transitive constraint. Fix for the problem identified by forum post eb8613976a. (check-in: f1f9b5de user: drh tags: trunk)
18:24
Also for the 0x20000 bit of ".wheretrace", show when WHERE clause terms are disabled. (check-in: 625fb253 user: drh tags: trunk)
16:51
Additional debugging output for whereScanNext() showing equivalence classes when the ".wheretrace" setting contains the 0x20000 bit. (check-in: 9280e3d9 user: drh tags: trunk)
12:07
Back out the EXISTS-to-IN optimization. It slows things down rather than speeds them up depending on the query. And (see forum post 8692d94725) it sometimes results in an incorrect answer. We may come back and revisit this optimization later, but for now it seems best just to disable it. (check-in: 16252d73 user: drh tags: trunk)
2021-05-03
13:35
Fix minor coverity warnings in the CLI. (check-in: 204086a9 user: drh tags: trunk)
13:24
Fix a potential memory leak following OOM in the decimal extension. (check-in: 5127f737 user: drh tags: trunk)
2021-05-01
12:09
Back out the NEVER() inserted by [c7309ed3c7588c7e] because it is reachable after all. dbsqlfuzz bc17a306a09329bba0ecc61547077f6178bcf321 (check-in: 20a4f3f1 user: drh tags: trunk)
2021-04-30
16:12
Guard against a NULL-pointer dereference following OOM in the JSON extension. (check-in: ea221f3c user: drh tags: trunk)
12:30
Fix a harmless "unused variable" warning when compiling with -DSQLITE_COVERAGE_TEST. (check-in: 0bef3fb1 user: drh tags: trunk)
2021-04-29
19:30
Reduce API lifetime requirement for objects passed to sqlite3_bind_...() with SQLITE_STATIC. Also fix broken session doc links (by zapping refs.) (check-in: 327eb479 user: larrybr tags: trunk)
18:03
Fix the operation of the "-" argument to --load-dbsql in the fuzzcheck program. (check-in: 1f18b3cb user: drh tags: trunk)
15:49
Fix the IN-early-out optimization so that it works even for the corner case where the NULL bypass fires before the affinity of the LHS operator has been set. Fix for the problem described in forum post 6a3ec138e9. (check-in: eb40248c user: drh tags: trunk)
13:58
Enhanced "PRAGMA vdbe_trace=on" output associated with the seekHit flag. (check-in: 68395000 user: drh tags: trunk)
13:37
Fix harmless compiler warnings. See forum post 256140e470. (check-in: 1b8da792 user: drh tags: trunk)
10:48
Update test/fuzzdata8.db with recent dbsqlfuzz finds. (check-in: bce2ea39 user: drh tags: trunk)
2021-04-28
17:37
Ignore the TEMP or TEMPORARY keyword on CREATE statements which parsing the schema out of an existing database file. Those keywords should never be there. This change simply adds robustness in case a legacy or damaged database is seen. (check-in: 65ec39f0 user: drh tags: trunk)
15:43
Adjust a VDBE coverage macros due to the enhancement at [506333742103c1f4]. (check-in: daed59b4 user: drh tags: trunk)
2021-04-27
17:36
Create new branch named "testing_help" (Leaf check-in: a97a5022 user: larrybr tags: testing_help)
17:18
Further improvements to the handling of RETURNING clauses on changes to TEMP tables with triggers. dbsqlfuzz 683913e98f54fe4f14e8dd11a48011f73bdca58d (check-in: ff3538ae user: drh tags: trunk)
13:04
RETURNING bug fix: Correctly deal with RETURNING statements on changes to TEMP tables that also have triggers. dbsqlfuzz 78b9400770ef8cc7d9427dfba26f4fcf46ea7dc2 (check-in: d0b15ecc user: drh tags: trunk)
11:28
Fix a segfault that could occur when querying a corrupt data structures with an fts5token table. (check-in: cbedfa05 user: dan tags: trunk)
04:47
merge latest trunk (check-in: 3ff22824 user: larrybr tags: compile_options)
00:05
Better error messages on showdb. (check-in: 7e18e114 user: drh tags: trunk)
2021-04-26
23:57
Improved robustness of the "showdb" debugging program when it is parsing corrupt database files. (check-in: 3eabac2e user: drh tags: trunk)
22:30
New dbsqlfuzz cases added to test/fuzzdata8.db. (check-in: 88d20500 user: drh tags: trunk)
21:23
Fix the UNION ALL flattener optimization so that it works better with recursive CTEs. dbsqlfuzz 88ed5c66789fced139d148aed823cba7c0926dd7 (check-in: f80d7bb2 user: drh tags: trunk)
21:00
Add ALWAYS() to branches that are no longer reachable due to recent enhancements. (check-in: 63c50fbd user: drh tags: trunk)
20:18
refix altertab.test (check-in: db032156 user: larrybr tags: trunk)
15:32
Fix a problem that could cause a crash in sqlite3BtreeDelete() when operating on a corrupt database file. (check-in: 6c633466 user: dan tags: trunk)
15:28
More aggressive detection of OOM errors in resolveAlias(). dbsqlfuzz 7f96832c2ef7ee472022ed805b064e55e41094b2 (check-in: e99faf4f user: drh tags: trunk)
14:32
When doing the optimization that attempts to avoid sorting on a GROUP BY, do not assume that the values in an index on an expression are non-NULL. Bug discovered by Wang Ke's fuzzer and reported at forum post 74330094d8. (check-in: 7178dc3a user: drh tags: trunk)
14:09
Do not initialize eponymous virtual tables when parsing the schema. This can happen if the db is corrupt. (check-in: cb8c41aa user: dan tags: trunk)
2021-04-25
23:13
Skip test when no JSON. (check-in: 6fcb2438 user: larrybr tags: trunk)
2021-04-24
23:40
Make window range queries more robust against corrupt database files. dbsqlfuzz f22df3a7b2aab0937a415484514fc2f68a293c99. (check-in: 50633374 user: drh tags: trunk)
12:24
Treat byte-order marks (BOMs) at the start of a token as whitespace. This enhancement is inspired by forum post ed8f696a20. (check-in: 3d55c21c user: drh tags: trunk)
12:20
Fix testcase altertab-25.1 due to check-in [c7909e8e0d0577c6] disallowing ALTER TABLE on eponymous virtual tables. (check-in: 32255e39 user: drh tags: trunk)
2021-04-23
13:57
Fix harmless compiler warnings in fuzzcheck. (check-in: e7b4ffec user: drh tags: trunk)
12:58
Enhance the --load-dbsql and related options of fuzzcheck so that if the argument is a single - then filenames are read from standard input. (check-in: e1548802 user: drh tags: trunk)
12:16
Give a better final output line for the --spinner option on fuzzcheck. (check-in: 93729614 user: drh tags: trunk)
11:50
New dbsqlfuzz cases added to test/fuzzdata8.db. (check-in: 8da88508 user: drh tags: trunk)
11:37
Fix an assert() in fts5_index.c that may fail if the database records are corrupt. (check-in: dfadb96e user: dan tags: trunk)
00:59
Improved OOM detection in sqlite3ExprCheckIN(). dbsqlfuzz 46ae2d8f473ac672f3042cc14ab67aeab9ffa6c2 (check-in: fac12115 user: drh tags: trunk)
2021-04-22
20:01
Change a memcpy() into a memmove() to prevent a warning about overlapping regions passed to memcpy() in case of some obscure and unlikely database corruption. (check-in: bab132cb user: drh tags: trunk)
19:34
Fix harmless compiler warnings of unused function parameters in FTS5. (check-in: 14273915 user: drh tags: trunk)
18:52
Further tweaks for comments in sqlite3session.h. (check-in: 553ada28 user: dan tags: trunk)
18:39
Change to comments in sqlite3session.h. No changes to code. (check-in: 353ebb71 user: dan tags: trunk)
18:02
Raise an error on an attempt to rename an eponymous virtual table. (check-in: c7909e8e user: drh tags: trunk)
17:55
Add the experimental sqlite3session_changeset_size() API. (check-in: 3de544d4 user: dan tags: trunk)
17:40
Add the sqlite3session_object_config() API. Current used to enable/disable collecting data for sqlite3session_changeset_size(). (Closed-Leaf check-in: 4d5fd215 user: dan tags: session-changeset-size)
16:54
Improved handling of errors in ALTER TABLE RENAME. dbsqlfuzz 3e3e2e076e53d02288f80af41a11143a6ddf8c88 (check-in: 9c7a449f user: drh tags: trunk)
14:43
Fix the date/time translation logic in the zipfile extension so that it works with boundary cases. See forum post d82289d69f for the trouble report. (check-in: c8de5f06 user: drh tags: trunk)
13:59
Ensure that the typedefs for specific-length integers in zipfile.c are correct. (check-in: f1f2a490 user: drh tags: trunk)
12:38
In the whereLoopXfer() routine, ensure that the destination is fully initialized even if an OOM error occurs. (check-in: c4258708 user: drh tags: trunk)
2021-04-21
23:13
The new OP_Null opcode from check-in [8b54102a00852b72] was not coded correctly. This check-in attempts to fix that. (check-in: 02af30aa user: drh tags: trunk)
20:52
Add the experimental sqlite3session_changeset_size() API. (check-in: b5564a6f user: dan tags: session-changeset-size)
12:03
Add recent dbsqlfuzz test cases to test/fuzzdata8.db. (check-in: 6fe50dcc user: drh tags: trunk)
11:58
Initialize the key registers in the skip-scan optimization to NULL, in case the query is run on a corrupt database that causes the initialization of the key to be bypassed. dbsqlfuzz 62fdf2bece00d24cac8a4edf2cf562e6eeac779d (check-in: 8b54102a user: drh tags: trunk)
11:32
Fix a problem allowing SQL variables to be used expressions within the second and subsequent ON CONFLICT clauses of an UPSERT within a trigger. (check-in: 2a28910a user: dan tags: trunk)
2021-04-20
22:48
Remove a testcase() that is no longer relevant due to the previous check-in. (check-in: ca70c8ac user: drh tags: trunk)
20:48
More aggressive detection of database corruption in the rebuildPage() routine. (check-in: a18c6506 user: drh tags: trunk)
13:31
Update an assert() in btree.c that may fail with a corrupt database. (check-in: d74bf88c user: dan tags: trunk)
12:14
In the sqlite3SelectDup() routine, do not do an incomplete duplication due to OOM. This in turn requires several new NEVER() and ALWAYS() macros for unreachable branches. (check-in: a61c0e6b user: drh tags: trunk)
00:09
Add two ALWAYS() macros for branches no longer reachable due to the previous check-in. Later: Dbsqlfuzz quickly found ways to make both of these ALWAYS() conditionals false. (Closed-Leaf check-in: 8f339f43 user: drh tags: mistake)
2021-04-19
20:36
Improvement to check-in [d564d8882ef18b55] to detect the OOM fault even if it occurs deep down inside the duplicated expression. (check-in: 3e863cd0 user: drh tags: trunk)
19:59
An improvement to check-in [1a341378ab24a509] that omits the new Walker.bWalkWinDefn boolean (which is not always initialized) and uses a special value for xSelectCallback2 instead. (check-in: bef2238d user: drh tags: trunk)
19:07
Merge in the 3.35.5 patches. (check-in: 35d1c9a5 user: drh tags: reuse-schema-3.35)
18:32
Version 3.35.5 (check-in: 1b256d97 user: drh tags: release, branch-3.35, version-3.35.5)
18:03
Ensure that a WITHOUT ROWID table does not have the .iPKey field set, even if an OOM error occurs while parsing a schema in PRAGMA writable_schema=ON mode. Add extra assert() statements to triple-check that this never happens. dbsqlfuzz 803bb1f63d6f3bd6c14db568494d6e96be8f1ec9. (check-in: 41228350 user: drh tags: trunk)
16:45
Remove fts5 test functions fts5_expr(), fts5_expr_tcl(), fts5_isalnum() and fts5_fold() from release builds. (check-in: c68a6c6c user: dan tags: trunk)
15:05
In the query flattener, avoid invalidating an expression if an OOM occurs. This prevents problems in higher-level routines that might not check for the OOM after processing a subquery. dbsqlfuzz fb70fa8602421f87673e0670b0712ff2b5240ea0 (check-in: d564d888 user: drh tags: trunk)
12:05
Update the version number to 3.35.5. (check-in: d917b70a user: drh tags: branch-3.35)
2021-04-18
15:45
Create new branch named "auth-vac" (Leaf check-in: 5a7410ac user: larrybr tags: auth-vac)
06:03
Ensure that all records are updated by setting the OPFLAG_SAVEPOSITION flag when updating records as part of ALTER TABLE DROP COLUMN. Fix for [c88f3036a2]. (check-in: 11c368f2 user: dan tags: branch-3.35)
05:52
Modify the drop column code to handle WITHOUT ROWID tables for which a single column appears more than once in the primary key. (check-in: cfa8912a user: dan tags: branch-3.35)
05:30
Ensure that all records are updated by setting the OPFLAG_SAVEPOSITION flag when updating records as part of ALTER TABLE DROP COLUMN. Fix for [c88f3036a2]. (check-in: 354a4db5 user: dan tags: trunk)
2021-04-17
20:13
Remove a couple of NEVER() macros from the code for walking window lists. (check-in: 4ec9ef4b user: dan tags: trunk)
20:13
Merge trunk bug/test fixes (check-in: 830b0b1c user: larrybr tags: compile_options)
20:04
Bring in permutations mod. (check-in: 7a1316f3 user: larrybr tags: trunk)
19:59
Do not run external_reader.test as part of permutation "journaltest", as it requires wal mode. (check-in: 9f5f16cf user: dan tags: trunk)
18:43
Allow more time for perf tests when instrumented. Condition another on feature it needs. (check-in: f0dd9cf2 user: larrybr tags: trunk)
18:39
Add new dbsqlfuzz cases to test/fuzzdata8.db. (check-in: d18793e5 user: drh tags: trunk)
14:42
Fix cases where code in expr.c was failing to handle OOM failures that occurred while processing sub-select expressions. (check-in: 62efe2ee user: dan tags: trunk)
13:46
Ensure that variables are not used in the WINDOW clause of a query inside of a trigger. dbsqlfuzz d9cf66100064952b66951845dfab41de1c124611 (check-in: 1a341378 user: drh tags: trunk)
2021-04-16
23:53
Merge from trunk. (check-in: 43894f0b user: larrybr tags: compile_options)
23:43
Add geopoly to $::sqlite_options() and use it to pass more tests. (check-in: 23da5016 user: larrybr tags: trunk)
22:53
Performance optimizations in the code generator, especially in name resolution. (check-in: ab83a998 user: drh tags: trunk)
21:29
Make a test conditioned on feature used. (check-in: 31afda7a user: larrybr tags: trunk)
19:25
Add new dbsqlfuzz-generated cases to test/fuzzdata8.db. (check-in: 1ac0a056 user: drh tags: trunk)
17:09
Fix another undefined behaviour in fts3 that could follow an OOM error. (check-in: fac3ff85 user: dan tags: trunk)
16:55
Avoid signed integer overflow when finding snippets in fts3 by using 64-bit integer offsets. (check-in: 4cc09a87 user: dan tags: trunk)
15:44
Merge from trunk. (check-in: d762784a user: larrybr tags: compile_options)
12:33
Remove an ALWAYS() from a branch in sqlite3ExprAddCollateToken() which can be false following an OOM. dbsqlfuzz 9e8516bf1e786c84e520ae43141b75b7399f8618. (check-in: 6af4e6d0 user: drh tags: trunk)
12:13
Fix an assert() in whereLoopAddOr() that can be wrong if an OOM occurs in an OR constraint on a virtual table if one of the terms of the OR is an IN operator. dbsqlfuzz 5ee7350b40014f5a878c5d6e76913a2d619f5146 (check-in: 5cb40e53 user: drh tags: trunk)
11:25
Fix an assert() in fts3 that might fail when handing corrupt records. (check-in: d0e2d674 user: dan tags: trunk)
11:05
Fix the comment on the implementation of the pi() SQL function. No changes to code. (check-in: 5620bd46 user: drh tags: trunk)
10:25
Dial back assumptions on compile option defaults to reflect actual conditionals. (check-in: cb312772 user: larrybr tags: compile_options)
01:03
Do not invoke sqlite3ExprAffinity() if there is a possibility that the Expr is incomplete due to a prior OOM. dbsqlfuzz b8a824706914488bd236da51118eb9174ceb870f (check-in: e8a1515b user: drh tags: trunk)
2021-04-15
23:43
Merge from (forked) trunk. Handle compile options that differ from default by being 0. (check-in: 6eb83f83 user: larrybr tags: compile_options)
19:09
Fix a bad interaction between constant propagation and transitive term handling causing patterns like "WHERE unlikely(t1.x=t1.y) AND t1.y=?" to return non-matching rows. See forum post c38462ab5e. (check-in: 2363a14c user: dan tags: trunk)
13:26
Add extra test case for OOM handling in where.c. (check-in: 7163de3d user: dan tags: trunk)
12:56
Make sure the WhereInfo.pExprMods list is properly cleared when existing sqlite3WhereBegin() early due to an OOM fault. dbsqlfuzz 1247a51318047aba42e7f6991dfa62577cb7a151. (check-in: 0e19af72 user: drh tags: trunk)
00:26
Bring pragma compile_options up to date. And make mkctimec.tcl help do so. (check-in: 63ea3e29 user: larrybr tags: compile_options)
2021-04-14
15:25
Prevent an assert() from failing if sqlite3_blob_reopen() is called on a blob-handle that has already hit an SQLITE_CORRUPT error. (check-in: b5dc7aba user: dan tags: trunk)
12:11
Fix a potential crash when using json_group_array() as a window function. (check-in: 3c266690 user: dan tags: trunk)
11:20
Fix an assert() in the code generator for expressions so that it is valid even after an OOM. (check-in: 427e83eb user: drh tags: trunk)
2021-04-13
18:39
Fix a problem with handling expressions like "(col IS NULL AND <expr1>) OR col == NULL" in WHERE clauses. Reported at https://sqlite.org/forum/forumpost/1c4f2fdcc4. (check-in: e8c7bd34 user: drh tags: branch-3.35)
17:45
Fix an undefined signed integer overflow in fts5. (check-in: e6f0adb0 user: dan tags: trunk)
13:48
Do not leave a WITHOUT ROWID table without a primary key index structure due to an OOM error. This prevents downstream troubles in the case of PRAGMA writable_schema=ON. dbsqlfuzz 69fb32cc82d59b4d790881566e3f6c727e616122 (check-in: 608b6644 user: drh tags: trunk)
13:20
The SQLITE_NoSchemaError flag should not apply to OOM errors while parsing the schema. (check-in: 9cc484ad user: drh tags: trunk)
13:01
Earlier detection empty_result_callbacks in sqlite3InitCallbac() to avoid problems with corrupt schemas an writable_schema=ON. dbsqlfuzz ca4ca43bdb22eab9859de4979aec615af851e111. (check-in: fb305fe0 user: drh tags: trunk)
12:28
In the rtreedepth() function, detect OOM when converting a zeroblob() on input. dbsqlfuzz ed23eda7cc3a8a054f85ea19d55c59ba2ca72744. (check-in: 69f843c8 user: drh tags: trunk)
01:12
Fix an error in the inversion function for json_group_array(). dbsqlfuzz 68a4b0f668b7bc27235e3f1c5cff8a2d94cfa17e. (check-in: e718a62e user: drh tags: trunk)
2021-04-12
23:18
Fix a faulty assert() inside sqlite3ExprDup(). (check-in: 59812e7e user: drh tags: trunk)
22:39
Fix an assert() in OP_ParseSchema so that it works even after an OOM. (check-in: 79b88353 user: drh tags: trunk)
18:32
Avoid taking the address of a NULL pointer following an OOM in FTS5. Doing so is harmless in actual practice, but it technically UB so we want to avoid it. (check-in: 1cfcd9dc user: drh tags: trunk)
17:34
Add an assert() to show that the SF_Resolved flag does not get set if errors are being suppressed. (check-in: f455c5b0 user: drh tags: trunk)
16:59
Fix a segfault that could occur if the ORDER BY clause of a compound SELECT contains a sub-select that uses one or more window functions. (check-in: 5ba15ebb user: dan tags: trunk)
12:58
Fix the display of SrcList in the sqlite3TreeView debugging routines. (check-in: 28ecb381 user: drh tags: trunk)
12:02
Avoid an assert() failure when a compound scalar sub-select is, due to a "WHERE (sub-select) AND (... OR ...)" clause, coded twice by the code generator. (check-in: a4e3f133 user: dan tags: trunk)
11:51
Fix harmless comment typo in main.c. (check-in: 785a553e user: drh tags: trunk)
2021-04-11
00:11
Add NEVER() to a branch that is no longer reachable due to check-in [a1d823f6879ce1ac]. (check-in: 5fda21fe user: drh tags: trunk)
2021-04-10
20:27
Avoid an uninitialized-memory valgrind error by tightening up corruption detection in internal routine defragmentPage(). (check-in: 8096f7ae user: dan tags: trunk)
20:21
Add NEVER() to a branch that became unreachable with check-in [58f36af2271517ab]. (check-in: e07ce463 user: drh tags: trunk)
15:34
Avoid invoking sqlite3Atoi64() will a null pointer following an error from ExpandBlob(). (check-in: 780412f2 user: drh tags: trunk)
14:49
Fix a problem with handling expressions like "(col IS NULL AND <expr1>) OR col == NULL" in WHERE clauses. Reported at https://sqlite.org/forum/forumpost/1c4f2fdcc4. (check-in: 40852ca8 user: dan tags: trunk)
13:37
Refactor NameContext.nErr into nNcErr to avoid confusion with Parse.nErr. Do not abandon sqlite3ResolveExprList() on nNcErr if nErr is still zero as we might have hit a problem with ORDER BY resolution that should be a suppressed error. dbsqlfuzz 41b9dad40919d3549ca7e52d893da81a6dded4ad (check-in: 7d674970 user: drh tags: trunk)
2021-04-09
22:34
Remove a NEVER() in a corruption detection conditional in defragmentPage(). dbsqlfuzz 9c61c33802600b2b01dfb09b0386ceb4ade02a19 (check-in: c174f5d3 user: drh tags: trunk)
22:20
Remove an ALWAYS() that is actually reachable following an OOM on an UPDATE FROM of a virtual table. dbsqlfuzz aa03237ef7c4a028c7cdaf8bbcde2b62e2bcd36e (check-in: 49eac389 user: drh tags: trunk)
20:50
Have the VFS in memdb.c return SQLITE_IOERR_NOMEM instead of SQLITE_NOMEM when an OOM error is encountered. This is required to get the pager module to handle such OOM errors correctly in some cases. (check-in: 09c96b4c user: dan tags: trunk)
2021-04-08
20:29
Fix a use-after-free error that could occur when processing "SELECT aggregate(DISTINCT <expr>)..." queries. (check-in: 0e478986 user: dan tags: trunk)
19:56
Remove an ALWAYS() that might be false under very unusual circumstances. dbsqlfuzz 300261f469ace7ecc57ed32ea7b0de3ea9d7dbf. Test case in TH3. (check-in: 466f5089 user: drh tags: trunk)
19:39
Handle the corruption fixed by the previous commit in a different way so as to also fix dbsqlfuzz crash 753de0a0ac5b25b18f1e4d41e650d3333cdc270c. (check-in: cb27ce25 user: dan tags: trunk)
15:19
Handle a special case of corruption that can present if "PRAGMA writable_schema=1" is set. Fix for dbsqlfuzz test case 6229ad63de49e3ba0630aaf0058868f36008bcca. (check-in: 58f36af2 user: dan tags: trunk)
14:15
Harden the filter_over grammar rule against OOM faults. dbsqlfuzz e47c54502a9c36778a5ed553199d5870e2ebd9f2 (check-in: f375f541 user: drh tags: trunk)
13:52
Remove an incorrect assert() from sqlite3EndTable(). dbsqlfuzz 4af45bcda779592449b1985433bca90b0e683b9b. (check-in: 38a1085c user: drh tags: trunk)
13:41
Fix an obscure memory leak in FTS3. dbsqlfuzz 26a51001beeff35649d2e328b05ec06f93c577a5 (check-in: be7cd9eb user: drh tags: trunk)
2021-04-07
18:17
Do not allow the use of rowid for views and subqueries unless compiled with -DSQLITE_ALLOW_ROWID_IN_VIEW. (check-in: a2ddb89b user: drh tags: trunk)
18:08
Add the SQLITE_ALLOW_ROWID_IN_VIEW option to omitttest.tcl. (Closed-Leaf check-in: 83b8e4c2 user: drh tags: no-rowid-on-view)
17:46
Merge latest changes into this branch. (check-in: 655c2841 user: dan tags: begin-concurrent-report)
17:32
Merge latest trunk changes into this branch. (check-in: 1f3f7e4b user: dan tags: begin-concurrent-pnu)
15:45
Also prohibit the use of rowid from a subquery. Add the SQLITE_ALLOW_ROWID_IN_VIEW compile-time option to restore legacy behavior in case somebody actually needs it. (check-in: 14b1d56e user: drh tags: no-rowid-on-view)
15:23
Merge version 3.35.4 with this branch. (check-in: 4b4f8791 user: dan tags: reuse-schema-3.35)
15:13
Update a broken assert() on this branch. (check-in: e69f2989 user: dan tags: reuse-schema)
13:20
Unnecessary local variable initialization to fix a harmless compiler warning. (check-in: c22e47c7 user: drh tags: trunk)
12:59
In FTS3, if the xBegin method fails to start a transaction due to an OOM error, then make sure that the virtual table is left in a consistent state. dbsqlfuzz 85ef48423fda4eef79a551654445d8ef3537a590. (check-in: dd553578 user: drh tags: trunk)
12:36
Fix an assert in the automatic-index constructor that can be false following an OOM error. dbsqlfuzz ee04d66c627ed5b5301e0ce09e24db47e0f1544e. (check-in: cc6463fe user: drh tags: trunk)
12:21
Earlier detection of page 1 on the freelist (which is impossible) and reporting of that as database corruption. dbsqlfuzz 6fe6c504b320be5e3eed66896cb0db28bfb38a93. (check-in: b1bf0d98 user: drh tags: trunk)
12:02
Fix a possible crash that could occur when executing a drop column operation on a corrupt database schema. (check-in: c3378494 user: dan tags: trunk)
09:31
Fix seg-fault upon appendvfs attempt to open non-existent file. (check-in: 04f6439f user: larrybr tags: trunk)
2021-04-06
23:29
Do not apply the optimization that omits DISTINCT if all result terms are part of a UNIQUE index if the index is also a partial index. Fix for the bug reported by forum post 66954e9ece. (check-in: c2f940b0 user: drh tags: trunk)
22:56
Detect OOM earlier in the geopoly extension. dbsqlfuzz 0986e7b020e6137fc6b96331f91d15753d18e42d. (check-in: 72371175 user: drh tags: trunk)
21:20
Modify the drop column code to handle WITHOUT ROWID tables for which a single column appears more than once in the primary key. (check-in: e0d25070 user: dan tags: trunk)
19:13
Raise an error if a query tries to access the "rowid" of a view, as views do not have rowids. (check-in: 7a73c616 user: drh tags: no-rowid-on-view)
18:40
Restructure a loop in window.c to avoid hitting an assert() following an OOM. dbsqlfuzz test case 6ef74a9659de87e9be3d8694ad062c448aa7ef1d. (check-in: 887c19a1 user: dan tags: trunk)
18:02
Update an assert statement that could fail when using "PRAGMA writable_schema = 1" to access a database with a corrupt schema. (check-in: 55cad6f6 user: dan tags: trunk)
17:51
Fix issue with failing --enable-debug --enable-fts5 build. (check-in: e7491acc user: dan tags: trunk)
16:55
New test cases added to fuzzdata8.db. (check-in: 039ad662 user: drh tags: trunk)
16:42
Silence an msan warning triggered by a corrupt database by initializing a local variable in sqlite3Insert(). (check-in: f64deece user: dan tags: trunk)
16:16
Avoid a use-after-free that may occur when accessing a corrupt database schema with "PRAGMA writable_schema = 1" set. (check-in: a1d823f6 user: dan tags: trunk)
14:46
Remove some test routines from release builds of fts5. (check-in: 3088bf15 user: dan tags: trunk)
13:57
Fix incorrect RETURNING test cases in wherelimit.test (check-in: 20d21ff9 user: dan tags: trunk)
13:56
Earlier detection of OOM errors during window function processing. dbsqlfuzz b08676f5a0437552c95d2a5d7ef285f8c451ea35. (check-in: 8e04f52e user: drh tags: trunk)
13:53
Handle "RETURNING rowid" clauses attached to INSERTs on views without causing an assert() to fail. Fixes dbsqlfuzz crash 0081f863d7b2002045ac2361879fc80dfebb98f1. (check-in: 9c5b7386 user: dan tags: trunk)
13:03
Further improvements (subsequent to [d91450847a3a3a72]) to handling of attempts to delete a journal using the memdb VFS. dbsqlfuzz ac61dab357279a6a531de067f040e9a4828d2df0. (check-in: a0839406 user: drh tags: trunk)
12:50
Earlier detection and handling of OOM problems. dbsqlfuzz 39f2963ea5559aa3a16e24e0e3cb42aac85a7371. (check-in: 8d46df73 user: drh tags: trunk)
2021-04-05
22:42
Relax an assertion on the sqlite3WhereEnd() routine after dbsqlfuzz found a counter-example. (check-in: e6b591e7 user: drh tags: trunk)
22:30
Add a missing CORRUPT_DB to an assert in the OP_ResultRow opcode. (check-in: 82f92d79 user: drh tags: trunk)
19:23
Adjust the README.md file so that build instructions work for Fossil version 2.12 and later. Forum post 51f28bb701. (check-in: 51f87adc user: drh tags: trunk)
19:05
Do not allow floating point rounding errors to cause a window function xInverse() function to be invoked before the corresponding xStep() call. (check-in: 7a19fed4 user: dan tags: trunk)
17:50
Fix an assert() that can be false when doing an incremental vacuum on a corrupt database file. dbsqlfuzz cced0668cfd4da4eb2382cb9dd26c17c64aaff76. (check-in: 15b80101 user: drh tags: trunk)
16:20
Avoid coding unindexed WHERE constraints if an equivalent transitive term has already been coded by an outer loop. (check-in: 644bb77f user: dan tags: trunk)
13:41
Do not invoke the xDelete method when converting to PRAGMA journal_mode=OFF if the underlying VFS does not support that method. dbsqlfuzz 39d6af88ef5242f866c4f9b21ede330c5c1e36a8. (check-in: d9145084 user: drh tags: trunk)
11:39
As a continuation of [1f66a85b7757754f], ensure that an OOM that occurs while checking the validity of the schema is reported out as SQLITE_NOMEM and not as SQLITE_SCHEMA. (check-in: 5045c8a7 user: drh tags: trunk)
2021-04-04
23:56
Fix an assert() in sqlite3BtreeLast() that needs an "|| CORRUPT_DB" term. Dbsqlfuzz case b92b72e4de80b5140c30ab71372ca719b8feb618. (check-in: ad718388 user: drh tags: trunk)
14:22
Avoid compile error when SQLITE_OMIT_VIRTUALTABLE defined. (check-in: 0ee0ef47 user: larrybr tags: trunk)
12:52
Make shell .parameter feature type-agnostic. Hush harmless compiler warning. (check-in: 35cf295e user: larrybr tags: trunk)
2021-04-03
23:30
Improved robustness to OOM conditions in the window function logic. dbsqlfuzz 0c123f7d80b29beaafc8411c12129e46f7ffdac3. (check-in: 35ff7cbf user: drh tags: trunk)
20:35
Take care not to change an SQLITE_NOMEM error into SQLITE_SCHEMA. (check-in: 1f66a85b user: drh tags: trunk)
19:23
Fix a crash in handling queries of the form "SELECT aggregate(DISTINCT tbl.col) FROM ... LEFT JOIN tbl ...". Fixes a problem introduced by [ef4ac0ddd297bbd3]. (check-in: 0dcf808d user: dan tags: trunk)
2021-04-02
20:53
Merge latest trunk changes with this branch. (check-in: a2216259 user: dan tags: begin-concurrent-report)
20:43
Correctly capture the error when a RETURNING clause appears on an attempt to UPDATE an eponymous virtual table. dbsqlfuzz 486f791cbe2dc45839310073e71367a1d8ad22dd. (check-in: 778a9a6e user: drh tags: trunk)
20:40
Merge latest trunk changes into this branch. (check-in: a7e612ee user: dan tags: begin-concurrent-pnu)
20:29
Merge latest trunk changes into this branch. (check-in: 98420842 user: dan tags: begin-concurrent)
19:55
Add experimental SQLITE_FCNTL_EXTERNAL_READER file control. (check-in: e16da5af user: dan tags: trunk)
18:59
Fix a problem with the geopoly_bbox() function. (check-in: f3a2eb97 user: drh tags: trunk)
15:20
Version 3.35.4 (check-in: 5d4c6577 user: dan tags: release, branch-3.35, version-3.35.4)
11:59
Fix incorrect RETURNING test cases in wherelimit.test (check-in: 64b0eb7e user: drh tags: branch-3.35)
2021-04-01
11:30
When resolving names in the RETURNING clause, do not accept trigger names even within subquires. (check-in: 8541c71b user: drh tags: branch-3.35)
2021-03-31
23:56
When resolving names in the RETURNING clause, do not accept trigger names even within subquires. See forum post 34c81d83c9177f46 for context. (check-in: fd4ea3f6 user: drh tags: trunk)
17:49
When resolving column names in the RETURNING clause, do not ignore an incorrect table name qualifier. Raise an error instead. (check-in: 3b916924 user: drh tags: branch-3.35)
17:42
When resolving column names in the RETURNING clause, do not ignore an incorrect table name qualifier. Raise an error instead. See forum post 85aef8bc01 for context. (check-in: 51d5c50b user: drh tags: trunk)
13:51
Defer deletion of expressions that are optimized out by the AND optimizer in the sqlite3ExprAnd() routine until the corresponding Parse object is deleted. This avoids a dangling pointer in AggInfo if sqlite3ExprAnd() is invoked by the push-down optimization. The dangling pointer appears to be harmless in release builds, only showing up in debug builds. Problem found by dbsqlfuzz. (check-in: 77a30f3f user: drh tags: branch-3.35)
13:41
Ensure that negative numbers may not be used in frame offset clauses even if they are initially text value. e.g. (RANGE BETWEEN '-1' PRECEDING ...). (check-in: 2d179f58 user: drh tags: branch-3.35)
13:31
Defer deletion of expressions that are optimized out by the AND optimizer in the sqlite3ExprAnd() routine until the corresponding Parse object is deleted. This avoids a dangling pointer in AggInfo if sqlite3ExprAnd() is invoked by the push-down optimization. The dangling pointer appears to be harmless in release builds, only showing up in debug builds. Problem found by dbsqlfuzz. (check-in: c36b4358 user: drh tags: trunk)
11:31
Ensure that negative numbers may not be used in frame offset clauses even if they are initially text value. e.g. (RANGE BETWEEN '-1' PRECEDING ...). (check-in: 8b681b27 user: dan tags: trunk)
2021-03-30
01:57
Raise an error if a term of the form "TABLE.*" appears in the RETURNING clause, as SQLite does not (yet) know how to handle that. Ticket [132994c8b1063bfb]. (check-in: 257e16f7 user: drh tags: branch-3.35)
01:52
Raise an error if a term of the form "TABLE.*" appears in the RETURNING clause, as SQLite does not (yet) know how to handle that. Ticket [132994c8b1063bfb]. (check-in: 3039bcaf user: drh tags: trunk)
2021-03-29
21:59
Increase the patch number to 3.35.4. (check-in: 4375cec2 user: drh tags: branch-3.35)
21:16
Do not do the EXISTS-to-IN transformation if the sub-select has LIMIT clause. Ticket [de7db14784a08053] (check-in: 3bf8a357 user: dan tags: branch-3.35)
20:28
Do not do the EXISTS-to-IN transformation if the sub-select has LIMIT clause. (check-in: d07e246f user: dan tags: trunk)
20:04
Add "#ifdef SQLITE_DEBUG" blocks around test variables sqlite3_fts5_may_be_corrupt and sqlite3_fts3_may_be_corrupt. (check-in: 00455954 user: dan tags: trunk)
20:01
Simplify the comparison opcodes in the bytecode engine, for a performance improvement. (check-in: f2af5868 user: drh tags: trunk)
19:47
Fix VDBE coverage macros. (Closed-Leaf check-in: ebe100de user: drh tags: compare-opcode-opt)
18:53
Omit the SQLITE_STOREP2 and SQLITE_KEEPNULL options from the comparison opcodes, allowing them to run faster. This required refactoring the vector comparison logic, which in turn required changing OP_ElseNotEq into OP_ElseEq. (check-in: 380b4605 user: drh tags: compare-opcode-opt)
14:40
Add the OP_ZeroOrNull opcode and use it to compute boolean values for scalar comparisons, rather than the SQLITE_STOREP2 parameter to the comparison opcode. (check-in: 93781b6f user: drh tags: compare-opcode-opt)
13:47
The comparison opcodes (ex: OP_Eq) now set the iCompare flag so that the result of comparison can be used by subsequent OP_Jump or OP_ElseNotEq opcodes. (check-in: bd00df8f user: drh tags: compare-opcode-opt)
2021-03-28
23:37
Alternative implementation of the comparison opcode speed-up of check-in [4a8805d9a66dc888] that should pass muster with UBSAN. (check-in: afb18f64 user: drh tags: trunk)
20:44
Document the "%token" directive for Lemon. This directive has been in place for a while, but was previously undocumented. (check-in: 36624d37 user: drh tags: trunk)
2021-03-27
20:45
Performance improvement in the comparison opcodes by rewriting an array lookup using pointer arithmetic. This makes gcc 5.4.0 builds with -Os both faster and smaller. Though I suspect that in newer compilers with better optimizers in will probably make no difference at all in the generated machine code. Later: Even though the new code is perfectly valid, and generates correct machine code that is both smaller and faster, UBSAN complains about it in OSSFuzz. So we will take it out. So here was have an example of OSSFuzz coercing a widely used application to become bigger and slower. (Leaf check-in: 4a8805d9 user: drh tags: gcc-opt)
16:21
For the sqlite3_bind_text16 TCL binding used for testing, ensure that there are at least 3 terminating zeros, so that there will always be a \u0000 character even if the original byte sequence is an odd number of bytes. (check-in: c23d092f user: drh tags: trunk)
2021-03-26
23:59
In the sqlite3_bind_text and sqlite3_bind_text16 TCL commands of the test suite, ensure that the string is zero-terminated if the size argument is negative. (check-in: f472fd64 user: drh tags: trunk)
14:04
Merge up all the 3.35.3 changes into the begin-concurrent-pnu-wal2 branch. (check-in: 4d425e64 user: drh tags: begin-concurrent-pnu-wal2)
13:58
Merge the 3.35.3 enhancements into the wal2 branch. (check-in: a1b8d9d2 user: drh tags: wal2)
13:47
Merge patch 3.35.3 into the begin-concurrent-report branch. (check-in: 4ba9fc34 user: drh tags: begin-concurrent-report)
13:38
Merge version 3.35.3 changes into the begin-concurrent-pnu branch. (check-in: 7e4c48af user: drh tags: begin-concurrent-pnu)
13:31
Merge from 3.35.3 into the begin-concurrent branch. (check-in: 988da36c user: drh tags: begin-concurrent)
13:16
Merge in changes for 3.35.3 (check-in: 76f19f4b user: drh tags: reuse-schema)
12:12
Version 3.35.3 (check-in: 4c5e6c20 user: drh tags: release, branch-3.35, version-3.35.3)
2021-03-24
23:30
Remove old testcases() macros. Also remove surplus end-of-line whitespace. (check-in: 54b41915 user: drh tags: trunk)
19:57
Add a comment to snapshotrevert.c warning of the undefined effects reverting to an old snapshot may have on newer readers. (Leaf check-in: 00af3bd2 user: dan tags: snapshot-revert)
19:54
Add experimental extension "snapshotrevert". (check-in: 2d5ee3ba user: dan tags: snapshot-revert)
19:44
Comment improvements to on the distinct-agg optimization. Show a line in the EQP output when using an ephemeral table to implement DISTINCT on an aggregate. (check-in: 037ca79e user: drh tags: trunk)
17:28
Improvements to distinct aggregates such that they can sometimes avoid using an ephermeral table to test for duplicates if the column that is distinct is part of an index. (check-in: ef4ac0dd user: drh tags: trunk)
17:04
Fix a harmless compiler warning. (check-in: 26b005a9 user: drh tags: trunk)
2021-03-23
22:15
Fix a problem with renaming a column when there is a quoted string immediately following the column name somewhere in the schema. (check-in: 4719fae6 user: dan tags: trunk)
21:02
Add an ALWAYS() on a branch that is always taken. (check-in: 0646d226 user: drh tags: trunk)
19:39
Test result adjustments in test/misc7.test due to the EQP format change. (check-in: d3ade8c7 user: drh tags: trunk)
16:34
When doing schema updates, try to convert (incorrect) double-quoted strings into (SQL-standard) single-quoted strings. (check-in: 07704704 user: drh tags: trunk)
15:39
Tweaks to test/scanstatus.test to account for the new EQP format. (check-in: 2eb28afd user: drh tags: trunk)
15:07
Changes to test/analyzeG.test to conform to the new EXPLAIN QUERY PLAN syntax. (check-in: d8afde1b user: drh tags: trunk)
14:33
Fix a test case in bigmmap.test so that it works with the new EXPLAIN QUERY PLAN output format. (check-in: 9ac064fe user: drh tags: trunk)
14:27
Add the ExprList.nAlloc column and use it to make the sqlite3ExprListAppend() routine much faster. (check-in: 1d3c4662 user: drh tags: trunk)
01:06
Enhance the EXPLAIN QUERY PLAN output to use symbolic names to describe subqueries, where possible, instead of cryptic subquery index numbers. And in other ways, make the EQP output cleaner and easier to read. Little code is changed, but many of the test results had to be tweaked to align with the new output format. (check-in: f8e28308 user: drh tags: trunk)
2021-03-22
18:53
Merge recent fixes from trunk. (Closed-Leaf check-in: 4a343698 user: drh tags: eqp-improvements)
16:50
Increase the version number to 3.36.0 to begin the next development cycle. (check-in: 5cee689d user: drh tags: trunk)
16:47
This branch for any further patches on 3.35. We anticipate 3.35.3 in a few days. Hopefully there will never be a need for 3.35.4. (check-in: 8de4cb98 user: drh tags: branch-3.35)
2021-03-21
18:23
Fix an assert() that in preupdate-hook logic (not normally built) that can be false when running VACUUM on a corrupt database file under PRAGMA writable_schema=ON. (check-in: 6bb21340 user: drh tags: trunk, same-as-3.35.3)
17:52
Add a better comment and an assert() on the code inside sqlite3CreateIndex() that REPLACE indexes come at the end of the index list. forum post ceb51d83f7 (check-in: 71e4da13 user: drh tags: trunk)
2021-03-20
23:15
Fix the "box" output mode in the shell when statement returns zero-column rows (for example from "PRAGMA incremental_vacuum"). (check-in: 34439fe3 user: drh tags: trunk)
15:46
Use the canonical name, not the AS name, when showing the MATERIALIZE or CO-ROUTINE lines for a CTE. (check-in: 1b83e232 user: drh tags: eqp-improvements)
15:11
Revise tests cases to align with the new EXPLAIN QUERY PLAN output. (check-in: 50fbd532 user: drh tags: eqp-improvements)
01:00
Fix a faulty assert() in the OP_SkipScan opcode. dbsqlfuzz a15a9b2ca82e812ad52f62c86cc93dca0dc72f01. Test cases in TH3. (check-in: 1805b9aa user: drh tags: trunk)
2021-03-19
19:44
Further simplification of the EQP output. Only show "SUBQUERY n" if the subquery is anonymous. (check-in: 1fadd305 user: drh tags: eqp-improvements)
19:09
Merge enhancements from trunk. (check-in: d192d737 user: drh tags: eqp-improvements)
17:54
In the wholenumber virtual table, increase the cost penalty for running open-loop. This appears to fix the problem reported by forum post b52a020ce4. (check-in: f12b5404 user: drh tags: trunk)
16:29
Dbsqlfuzz found a new way to make that branch in codeVectorCompare reachable. (check-in: 959272c2 user: drh tags: trunk)
15:02
Fix tokenizer's classification of EBCDIC newline. (check-in: 8680f6a8 user: larrybr tags: trunk)
14:51
Restore the NEVER() that was taken out by [f481636f1a0333c6] because that case is no longer reachable after the previous check-in. (check-in: e3a78b2a user: drh tags: trunk)
14:26
Fix a crash that could occur when an INSERT has more than one ON CONFLICT clause, at least one of which contains an unresolvable symbol. (check-in: 74208386 user: dan tags: trunk)
13:53
Correlated CTEs should not generate a materialization subroutine. If they need to be materialized, each use case must be materialized separately. dbsqlfuzz 01b8355086998f0a452cb31208e80b9d29ca739a. (check-in: d72d865d user: drh tags: trunk)
13:00
Improved labeling of EXPLAIN QUERY PLAN output. Many test failures due to the different output format. (check-in: 6f8faec0 user: drh tags: eqp-improvements)
2021-03-18
20:04
Add a NEVER() on a branch that was made unreachable by the "circular reference" fix. (check-in: 114d9780 user: drh tags: trunk)
18:27
Disable a test case requiring generate_series when virtual tables are not available. (check-in: ee86e2f4 user: drh tags: trunk)
18:25
Fix a problem causing spurious "<cte>: circular reference" errors to be reported when there is actually a different error in the SQL statement. (check-in: 99812236 user: dan tags: trunk)
16:52
Increase the patch level to 3.35.3. (check-in: 259b7c3e user: drh tags: trunk)
16:47
Fix the OP_OpenDup opcode so that it is able to duplicate a cursor that was itself opened by OP_OpenDup. Add additional verification of ephemeral tables. Fix for ticket [bb8a9fd4a9b7fce5]. (check-in: bcbe5308 user: drh tags: trunk)
16:36
Remove unnecessary code from sqlite3BtreeClose() and add test cases. (Closed-Leaf check-in: edbfdcae user: drh tags: opendup-fix)
15:42
Further sanity checking of the OpenDup cursors. (check-in: 0ec71cf1 user: drh tags: opendup-fix)
14:36
Fix the dbsqlfuzz-derived authorizer in fuzzcheck to avoid creating junk files when running rogue tests. (check-in: eca21a62 user: drh tags: trunk)
14:31
Automatically close ephemeral b-trees when their last cursor is closed. (check-in: 39b5af18 user: dan tags: opendup-fix)
13:55
Fix a problem with the filename normalizer in unix, discovered by dbsqlfuzz. (check-in: ff1eca7f user: drh tags: trunk)
13:42
Allow instruction OP_OpenDup to duplicate cursors created by OP_OpenDup, as well as by OP_OpenEphemeral. (check-in: b8de980b user: dan tags: opendup-fix)
13:19
New assert statements associated with Ephemeral cursors in the bytecode engine. (check-in: a8ce73e2 user: drh tags: trunk)
12:36
Change the name of the iDataVersion field of Btree to iBDataVersion to make it distinct from Pager.iDataVersion. (check-in: e4c44c0b user: drh tags: trunk)
2021-03-17
19:52
Update to version 3.35.2 (check-in: 18bec0d2 user: drh tags: reuse-schema)
19:07
Version 3.35.2 (check-in: ea80f300 user: drh tags: trunk, release, version-3.35.2)
19:05
Fix a harmless compiler warning in the appendvfs.c extension. (check-in: 0ed7eb91 user: drh tags: trunk)
14:29
If there are already 500 or more simple SELECTs in a query, do not add more by flattening UNION ALL sub-queries into parent join queries. (check-in: 9520bed2 user: dan tags: trunk)
11:25
Fix a problem in sqldiff virtual table hanlding to do with tab and other non-space whitespace characters in the CREATE VIRTUAL TABLE statement. (check-in: 1737e4fd user: dan tags: trunk)
2021-03-16
18:41
Date/time functions with no arguments (ex: date() or time()) should be non-deterministic. Fix for ticket [2c6c8689fb5f3d2f]. (check-in: 1734c332 user: drh tags: trunk)
18:24
Add tests for sqlite_rename_quotefix(). Fix a memory leak in the same. (Closed-Leaf check-in: 53155005 user: dan tags: alter-quotefix)
16:14
Have ALTER TABLE RENAME COLUMN and DROP COLUMN use sqlite_rename_quotefix() to convert any double-quoted strings in the database schema to their single-quoted equivalents. (check-in: 6446c096 user: dan tags: alter-quotefix)
14:43
Increase the version number to 3.35.2. (check-in: 7a211b3f user: drh tags: trunk)
14:26
Fix recent breakage of the appendvfs extension. (check-in: 7dbbe5b3 user: drh tags: trunk)
14:12
Comment and stylistic changes to the appendvfs.c implementation. (Closed-Leaf check-in: 25c3186a user: drh tags: appendvfs_fix)
11:21
Merge trunk changes into this branch. (check-in: f15d5105 user: dan tags: alter-quotefix)
11:11
Fix a problem with ALTER TABLE RENAME COLUMN when used on a schema that features generated columns. Fix for [a753a856]. (check-in: 0e255b26 user: dan tags: trunk)
07:06
Fix assert typo. (check-in: 3aedf818 user: larrybr tags: appendvfs_fix)
06:50
Merge from trunk. (check-in: eae8236f user: larrybr tags: appendvfs_fix)
06:41
Fix appendvfs bug exposed with bigger files, and add tests for such conditions. (check-in: 19b1f53a user: larrybr tags: appendvfs_fix)
04:03
Create new branch named "appendvfs_fix" (check-in: 026edd60 user: larrybr tags: appendvfs_fix)
2021-03-15
20:22
Add internal SQL function sqlite_rename_quotefix(). For converting double-quoted strings to their single-quoted counterparts in DDL statements. (check-in: d874b300 user: dan tags: alter-quotefix)
19:34
Merge version 3.35.1 into the reuse-schema branch. (check-in: 0fe60a63 user: drh tags: reuse-schema)
16:53
Version 3.35.1 (check-in: aea12399 user: drh tags: trunk, release, version-3.35.1)
15:12
Improvements to the built-in ".dump" documentation in the CLI. (check-in: 0915f969 user: drh tags: trunk)
15:02
Bump the version number to 3.35.1. (check-in: 184d5a35 user: drh tags: trunk)
14:58
Improved detection of conflicting indexes when doing DROP COLUMN on a column whose name is quoted in the index definition. Fix for ticket [1c24a659e6d7f3a1]. (check-in: c450d0ad user: drh tags: trunk)
12:56
Make shell's .help output for .dump more accurate as to what can be dumped. (Closed-Leaf check-in: f91d8c09 user: larrybr tags: cli-tweaks)
12:32
Create new branch named "cli-tweaks" (check-in: 4cf056a5 user: larrybr tags: cli-tweaks)
2021-03-14
20:17
An additional test case (Closed-Leaf check-in: 7e2d7ca1 user: drh tags: tkt-1c24a659-b)
19:55
An alternative approach for fixing ticket [1c24a659e6d7f3a1]. (check-in: a2adae90 user: drh tags: tkt-1c24a659-b)
01:40
Never allow a double-quoted identifier that appears by itself in the argument list of an index to be interpreted as a string literal. Proposed fix for ticket [1c24a659e6d7f3a1]. (Closed-Leaf check-in: 7c8aa381 user: drh tags: tkt-1c24a659)
2021-03-13
18:23
Fix a memory leak in the new code on this branch. (Closed-Leaf check-in: 0817cf2e user: dan tags: distinct-agg-opt)
17:21
Fix typos in comments and add test cases. (check-in: 01312a3d user: dan tags: distinct-agg-opt)
2021-03-12
23:15
Update generated autoconf/Makefile.msc to reflect its source. (check-in: d9f8f488 user: larrybr tags: trunk)
21:59
Add test for autoconf/Makefile.msc current with respect to its generator input. (Leaf check-in: 4dfd8716 user: larrybr tags: derived_tests)
21:09
Fix a crash in new code on this branch. (check-in: c05ed2a8 user: dan tags: distinct-agg-opt)
20:29
Merge v3.35.0 release to this branch. (check-in: 6733ed76 user: larrybr tags: derived_tests)
20:24
Create new branch named "derived_tests" (check-in: 8dc765d3 user: larrybr tags: derived_tests)
18:33
Merge latest trunk changes into this branch. (check-in: 198bc510 user: dan tags: distinct-agg-opt)
18:24
Attempt to use an index for DISTINCT aggregate queries that have GROUP BY clauses. (check-in: 3bca003c user: dan tags: distinct-agg-opt)
17:26
Merge the 3.35.0 release into the reuse-schema branch. (check-in: c8237a02 user: drh tags: reuse-schema)
17:18
Merge the 3.35.0 release into the begin-concurrent-pnu-wal2 branch. (check-in: 939b9e75 user: drh tags: begin-concurrent-pnu-wal2)
17:08
Merge the 3.35.0 release into the wal2 branch. (check-in: 03142e5f user: drh tags: wal2)
16:50
Merge the 3.35.0 release into the begin-concurrent-report branch. (check-in: 27f8f56b user: drh tags: begin-concurrent-report)
16:24
Merge the 3.35.0 release into the begin-concurrent-pnu branch. (check-in: a0a9dd52 user: drh tags: begin-concurrent-pnu)
16:18
Merge version 3.35.0 changes into the begin-concurrent branch. (check-in: 7e38c889 user: drh tags: begin-concurrent)
15:10
Version 3.35.0 (check-in: acd63062 user: drh tags: trunk, release, major-release, version-3.35.0)
13:49
Fix broken requirement marks. (check-in: 98d67152 user: drh tags: trunk)
01:49
Fix the ".read" command in the CLI so that SQLITE_OMIT_POPEN disables reading from a pipeline. (check-in: cea34f3c user: drh tags: trunk)
00:44
Conform description of sqlite3changeset_op() arguments to implemented behavior, some reformatting. This is a comment-only change; no code is affected. (check-in: 9d6e544c user: larrybr tags: trunk)
2021-03-11
21:00
Update this branch with latest fixes from trunk. (check-in: 12363f8e user: dan tags: reuse-schema)
20:07
Merge latest wal2 changes into this branch. (check-in: 88c3c173 user: dan tags: begin-concurrent-pnu-wal2)
19:42
Merge latest trunk changes into this branch. (check-in: 30f912d0 user: dan tags: wal2)
19:26
Merge latest changes from begin-concurrent-pnu into this branch. (check-in: 6994a2d8 user: dan tags: begin-concurrent-report)
19:08
Merge latest trunk changes with this branch. (check-in: eb310136 user: dan tags: begin-concurrent-pnu)
18:52
Update this branch with latest changes from trunk. (check-in: 79d44ebd user: dan tags: begin-concurrent)
15:57
Fix a Tcl object leak in test_session.c. (check-in: 07150cf1 user: dan tags: trunk)
13:43
Bug fix in appendvfs.c: Adjust the size parameter for SQLITE_FCNTL_SIZE_HINT to account for the prefix. (check-in: 41df3bbe user: drh tags: trunk)
10:55
Merge latest trunk changes into this branch. (check-in: ef8c6e06 user: dan tags: reuse-schema)
08:49
Have the Tcl tests support environment variable SQLITE_TEST_PATTERN_LIST, so that if it is set it is interpreted as a list of patterns that are matched against tests file names. Only test files that match at least one pattern are run. (check-in: b7c92e1d user: dan tags: trunk)
2021-03-10
20:04
Fix sanitizer complaint in fts3 code. (check-in: 424b39ea user: dan tags: trunk)
19:32
Fix further sanitizer complaints in the fts5 code. (check-in: 4cb00b9d user: dan tags: trunk)
18:21
Improved testcase() related the SQLITE_MAX_ATTACHED vs. SQLITE_MAX_DB problem. (check-in: 27d3c00e user: drh tags: trunk)
17:52
Improvement to the ATTACH-abuse authorizer logic in fuzzcheck. (check-in: 88132f69 user: drh tags: trunk)
17:43
Do not run avfs.test when testing SQLITE_OMIT_VIRTUALTABLE builds. (check-in: 2ab6957a user: dan tags: trunk)
16:35
Do not confuse the constant SQLITE_MAX_ATTACHED with the maximum number of schemas. Add the new SQLITE_MAX_DB constant for the maximum number of schemas. Forum post a006d86f72. (check-in: 7b65fb9f user: drh tags: trunk)
15:10
Fix test file avfs.test so that it works with SQLITE_DEFAULT_AUTOVACUUM builds. Do not run avfs.test under test permutation "journaltest". (check-in: 2c6078eb user: dan tags: trunk)
14:57
Fix a few sanitizer complaints in fts5. (check-in: 4fe4fee0 user: dan tags: trunk)
10:43
Fix a problem preventing wapptest from setting SQLITE_ENABLE_LOCKING_STYLE for OSX tests. Also modify the "Sanitize" configuration in releasetest_data.tcl to subsume test item 6g. (check-in: f762d7df user: dan tags: trunk)
06:06
When shell has no .ar, fake its effect w.r.t. page_size and table creation/filling. (check-in: 959f5c65 user: larrybr tags: trunk)
2021-03-09
23:38
Add appendvfs.c to the MSVC makefile. (check-in: a6681fbb user: drh tags: trunk)
21:20
Update a comment in btree.h. (check-in: 9645fe1a user: dan tags: trunk)
20:58
Fix a bad comment (copy-paste error) in the byte code engine. No code changes. (check-in: 1c017457 user: drh tags: trunk)
19:52
Improved comments on the NOT NULL strength reduction optimization. (check-in: a85d7229 user: drh tags: trunk)
19:32
Extra comments and testcase() macros associated with the new sqlite3ParserAddCleanup() mechanism. No changes to release builds. (check-in: c3c86911 user: drh tags: trunk)
17:09
Add --enable-math to the amalgamation autoconf. On be default. Improved logging of the amalgamation autoconf. (check-in: 85d28b52 user: drh tags: trunk)
16:47
Add missing comment to new routine in select.c. (check-in: ef2f0cf2 user: dan tags: distinct-agg-opt)
16:35
Math functions are enabled by default in the main configure script. (check-in: b7456e07 user: drh tags: trunk)
16:06
Experimental optimization for distinct aggregates (e.g. "SELECT count(DISTINCT <expr) FROM ..."). (check-in: eb919611 user: dan tags: distinct-agg-opt)
13:53
Improvements to the configure script. Math functions are enabled by --enable-all. (check-in: c79c6d18 user: drh tags: trunk)
13:12
Update the authorizer in fuzzcheck to align with dbsqlfuzz. (check-in: f86d8fae user: drh tags: trunk)
2021-03-08
20:13
Add tests for too-tiny appended DBs, clarify align macro. (check-in: eb40a8de user: larrybr tags: trunk)
17:22
Add test cases for ALTER TABLE. (check-in: 9c9ba36e user: dan tags: trunk)
17:17
Fix a bad assert in RENAME COLUMN. dbsqlfuzz 3f0a7245b69cd08617d7d7781ebaedb0fe765a93. (check-in: f13e0d12 user: drh tags: trunk)
16:29
Fix a harmless compiler warning in appendvfs.c (check-in: f538961a user: drh tags: trunk)
16:13
Enable internal functions for fuzzcheck. (check-in: 79281603 user: drh tags: trunk)
14:32
Added test/avfs.test (missing from branch merge for some reason.) (check-in: 08fa6705 user: larrybr tags: trunk)
14:26
Merge appendvfs updates and testing. (check-in: 63fcf301 user: larrybr tags: trunk)
13:45
Require that the appendvfs suffix mark indicate that the appended database begins at an offset that is a muliple of 512 and that the appended database contains at least 512 bytes. (Leaf check-in: aeb87cc7 user: drh tags: appendvfs_tighten)
13:30
Correct the precendence order for rules that determine how a database is opened by appendvfs when a database is appended to another database. (check-in: 92989fc5 user: drh tags: appendvfs_tighten)
12:59
Minor comment and formatting changes. (check-in: cf2add06 user: drh tags: appendvfs_tighten)
01:31
Add tests for sqlite3 shell with -append flag. (check-in: d1790288 user: larrybr tags: appendvfs_tighten)
2021-03-07
18:55
Add grow/shrink tests. Fix truncate bug. Make appendvfs.c easier to inspect. (check-in: c9521fa5 user: larrybr tags: appendvfs_tighten)
2021-03-06
23:49
Merge from trunk. (check-in: 729117cd user: larrybr tags: appendvfs_tighten)
23:36
Create initial tests for appendvfs, and make it available as a statically loaded extension. (check-in: 9f33d451 user: larrybr tags: appendvfs_tighten)
15:13
Limit parenthesis nesting depth in FTS3 expressions to SQLITE_MAX_EXPR_DEPTH. (check-in: 5ddd8032 user: drh tags: trunk)
14:46
Ensure the correct collation sequence is used for comparisons when delimiting a RANGE window. (check-in: 01eae68e user: dan tags: trunk)
13:28
Fix a crash in fts3 that could occur when running a NEAR query on a corrupt database. (check-in: 609d9499 user: dan tags: trunk)
13:02
Fix a possible NULL pointer dereference when applying a DROP COLUMN to a corrupt database schema. dbsqlfuzz 419aa525df93db6e463772c686ac6da27b46da9e (check-in: 349ccf58 user: drh tags: trunk)
2021-03-05
20:52
Merge last day of trunk changes, reverify build. (check-in: 1d67ed1c user: larrybr tags: appendvfs_tighten)
20:46
Fix appendvfs bug exposed by docsapp build (in docsrc), and tighten/revise published behavior. (check-in: 7f0f2eac user: larrybr tags: appendvfs_tighten)
18:33
Modify the SQLITE_DBCONFIG_ENABLE_VIEW option so that it always permits TEMP views, just as SQLITE_DBCONFIG_ENABLE_TRIGGER always permits TEMP triggers. (check-in: 83dab8b3 user: drh tags: trunk)
15:42
Fix problems with RETURNING clauses attached to UPDATEs on tables with virtual columns. (check-in: 6b41b136 user: dan tags: trunk)
15:29
Fix another problem with RETURNING clauses in UPDATEs against tables with virtual columns. (Closed-Leaf check-in: f0ef5c76 user: dan tags: returning-fix)
15:10
Fix an assert() failure that could be triggered by a correlated sub-query in a RETURNING clause. (check-in: 551260c8 user: dan tags: returning-fix)
14:08
Fix the processing of implied LIMIT clauses when flattening a compound query. (check-in: 90c6b9fc user: drh tags: trunk)
09:42
Create new branch named "appendvfs_tighten" (check-in: 48c968bf user: larrybr tags: appendvfs_tighten)
2021-03-04
19:44
Mark the NotUsed parameter to the dropColumnFunc() function as unused, to avoid a harmless compiler warning. (check-in: 23459071 user: drh tags: trunk)
18:34
Put ALWAYS() on a branch that is now always true because of changes in OOM behavior due to check-in [9adf6e2469d18bc3]. (check-in: 8a1bb9c3 user: drh tags: trunk)
18:31
Update shell.c.in so that SQLITE_SHELL_IS_UTF8 is set to 0 if the -municode option is passed to gcc on windows. (check-in: 99e6a0f0 user: dan tags: trunk)
16:32
Remove a branch made unreachable by check-in [e893f88750ea64d4]. (check-in: 20d7dc12 user: drh tags: trunk)
16:10
Fix a segfault that could occur following an OOM condition. (check-in: 9adf6e24 user: dan tags: trunk)
16:03
Earlier detection of a misplaced ORDER BY or LIMIT clause in a compound SELECT. This prevents problems in recursive CTEs with multiple recursive terms in which there is an ORDER BY or LIMIT clause on the last non-recursive term. (check-in: e893f887 user: drh tags: trunk)
14:18
Fix a crash that could occur if a sub-select inside an EXISTS expression features an ORDER BY clause containing one or more window functions. (check-in: 9768e7db user: dan tags: trunk)
2021-03-03
19:54
Merge recent trunk enhancements into the reuse-schema branch. (check-in: 73bf458e user: drh tags: reuse-schema)
19:41
Merge in recent enhancements. (check-in: b0fc8ca1 user: drh tags: begin-concurrent-pnu-wal2)
19:36
Fix a buffer overrun that could occur in fts5 when running a prefix query against a corrupt db. (check-in: 4da40620 user: dan tags: trunk)
19:32
Merge recent trunk enhancements into the wal2 branch. (check-in: 0ae81039 user: drh tags: wal2)
19:25
Merge recent trunk enhancemenets into the begin-concurrent-pnu branch. (check-in: 59d3ec29 user: drh tags: begin-concurrent-pnu)
19:17
Merge recent trunk changes into the begin-concurrent branch. (check-in: acdafef8 user: drh tags: begin-concurrent)
16:46
Remove the --timeout option from the valgrindfuzz Makefile target. (check-in: 3f520b8b user: dan tags: trunk)
16:00
Fix a case where fts3 was erroneously reporting corruption. (check-in: e6c7683c user: dan tags: trunk)
14:07
Fix a harmless assertion fault resulting from [6e6b3729e0549de0] that was discovered by dbsqlfuzz. Enhance .selecttrace output to show omitted ORDER BY clauses. New dbsqlfuzz test cases added. (check-in: 27a0388a user: drh tags: trunk)
11:00
Fix a problem with using ALTER TABLE commands on database schemas that contain expressions of the form "<expr> NOT NULL" or "<expr> IS NULL" that can be evaluated at prepare time. (check-in: d2630ffa user: dan tags: trunk)
2021-03-02
21:07
Cast a string size variable to 64-bit to avoid any possibility of integer overflow. (check-in: a5940294 user: drh tags: trunk)
16:27
Limit the size of the exponent input in the second argument to the ieee754() SQL function, to avoid integer overflow. Ticket [22dea1cfdb9151e4]. (check-in: 99aab32d user: drh tags: trunk)
13:50
Change the timeout for test case "valgrindfuzz" from 600 seconds to 1200. (check-in: 7c6aa6f3 user: dan tags: trunk)
13:36
Do not run test file windowpushd.test as part of the "no_optimization" permutation. (check-in: 275a75aa user: dan tags: trunk)
00:42
Add ALWAYS() to an always-true conditional. (check-in: fa3506db user: drh tags: trunk)
2021-03-01
21:43
Add #ifndef macros so that the build works again with -DSQLITE_OMIT_AUTHORIZATION and -DSQLITE_OMIT_WINDOWFUNC. (check-in: 9400bdc6 user: drh tags: trunk)
16:16
Fix a couple of memory-sanitizer complaints that could be triggered by a corrupt database. (check-in: 39c8686c user: dan tags: trunk)
16:15
Fix another msan complain triggered by a corrupt database. (Closed-Leaf check-in: d235d406 user: dan tags: msan-fix)
2021-02-28
08:24
Initialize extra field in PgHdr1 to fix an msan complaint. (check-in: 4cb2ea57 user: dan tags: msan-fix)
2021-02-27
15:32
Add OOM test case associated with the fix in the previous commit. (check-in: a631c38d user: dan tags: trunk)
15:12
Remove a NEVER() that might sometimes be tree following an OOM. (check-in: ccb8cf52 user: drh tags: trunk)
2021-02-26
21:39
Fix a segfault that could occur when optimizing a NOT NULL constraint against an IPK column of a sub-query. (check-in: e4d1970e user: dan tags: trunk)
20:39
Attempt to optimize "x IS NULL" and "x IS NOT NULL" expressions when x is a column with a NOT NULL constraint. This addresses the performance issue described by forum post a5fc33cf9d8f4ff5. (check-in: de9c86c9 user: dan tags: trunk)
20:14
Attempt to optimize "x IS NULL" and "x IS NOT NULL" expressions when x is a column with a NOT NULL constraint. (Closed-Leaf check-in: 5ecd8425 user: dan tags: ifnull-opt)
15:20
Minor simplification in resolve.c. (check-in: 310dac34 user: dan tags: trunk)
2021-02-25
18:28
Fix test case in altercorrupt.test so that it works with SQLITE_ENABLE_OVERSIZE_CELL_CHECK builds. (check-in: 062b338f user: dan tags: trunk)
18:23
Fix a problem with UPDATE and DELETE statements that use both INDEXED BY and LIMIT clauses in SQLITE_ENABLE_UPDATE_DELETE_LIMIT builds. (check-in: cc2b4b38 user: dan tags: trunk)
16:55
Fix handling of INSERT on views with implicitly named hidden columns in SQLITE_ENABLE_HIDDEN_COLUMNS builds. (check-in: 15795a96 user: dan tags: trunk)
15:50
Ensure that tests like "rbu.test" and "notify2.test" that are only run by specific configurations during release testing are run for both release and debug versions of the tests. (check-in: 911df43f user: dan tags: trunk)
2021-02-23
16:40
When a sub-transaction is released, if no pages required by containing sub-transactions were journaled, truncate the statement journal. This prevents out of control statement journal growth in some cases. See forum thread e78ffd751185a67e for context. (check-in: 23ca2389 user: dan tags: trunk)
15:53
Allow WHERE terms to be pushed down into sub-queries that contain window functions, provided that the WHERE term is made up of entirely of constants and copies of expressions found in the PARTITION BY clauses of all window functions in the sub-query. (check-in: 20689468 user: dan tags: trunk)
15:36
Further tests for the push-down optimization with window functions. (Closed-Leaf check-in: 4b089f70 user: dan tags: window-functions-pushdown)
2021-02-22
20:56
Allow WHERE terms to be pushed down into sub-queries that contain window functions, provided that the WHERE term is made up of entirely of constants and copies of expressions found in the PARTITION BY clauses of all window functions in the sub-query. (check-in: dac51f30 user: dan tags: window-functions-pushdown)
19:57
Add a few simple test cases for MATERIALIZED and NOT MATERIALIZED. (check-in: 64878124 user: drh tags: trunk)
16:42
Implement the MATERIALIZED and NOT MATERIALIZED hints on common table expressions. (check-in: b5a0778c user: drh tags: trunk)
15:44
When a sub-transaction is released, if no pages required by containing sub-transactions were journaled, truncate the statement journal. This might prevent out-of-control statement journal growth in some cases. (Closed-Leaf check-in: e36327fb user: dan tags: stmt-jrnl-truncate)
14:25
Add an ALWAYS() on a branch that is now unreachable. (Closed-Leaf check-in: ace54c5b user: drh tags: as-materialize-redux)
11:07
Fix inverted logic regarding the materialization hint on the push-down optimization. (check-in: b66a4957 user: drh tags: as-materialize-redux)
03:04
Add the AS MATERIALIZED and AS NOT MATERIALIZED syntax that works like it does in PostgreSQL. (check-in: a6bb272e user: drh tags: as-materialize-redux)
2021-02-21
23:44
Materialize any CTE that is used more than once. (check-in: ba59159f user: drh tags: as-materialize-redux)
21:04
Rename the "struct SrcList_item" object to the more succinct "SrcItem". This is a symbolic change only. The logic is unmodified. (check-in: bfd5bf2c user: drh tags: trunk)
01:19
Simplified resolution of CTE names. Slightly faster and about 100 bytes of code smaller. (check-in: 0d2c992f user: drh tags: trunk)
2021-02-20
21:20
Performance improvement in resolving the INDEXED BY index name for the common case where there is no INDEXED BY clause. (check-in: 554b286a user: drh tags: trunk)
19:22
Fix a case where FTS3/4 could pass a NULL pointer to memcpy() when handling a corrupt db. (check-in: 68bb541a user: dan tags: trunk)
18:02
Update sqlite3changeset_apply_v2() so that it handles no-op UPDATE changes (UPDATE changes that modify no columns). This fixes a regression introduced by [e4ccfac09b]. Also modify sqlite3rebaser_rebase() so that it does not output changesets containing such UPDATEs. (check-in: 0288a801 user: dan tags: trunk)
14:57
Break out the Cte object from the With object. This will make it simpler to add new kinds of Cte objects (ex: DML statements) and/or MATERIALIZED keywords in the future. It brings trunk into closer alignment with the experimental as-materialize branch. (check-in: f03efe90 user: drh tags: trunk)
13:36
Simplification to where.c manually cherrypicked from the as-materialize branch. (check-in: 03805a61 user: drh tags: trunk)
12:47
Merge changes from trunk. (Later:) Abandon this line of development. See the as-materialize-redux branch. (Closed-Leaf check-in: 7a90571e user: drh tags: as-materialize)
2021-02-19
18:39
Fix another problem handling corrupt database files in the ALTER TABLE DROP COLUMN code. (check-in: 9edf2ddc user: dan tags: trunk)
15:34
Add tests for ALTER TABLE DROP COLUMN commands. (check-in: 05dbea9b user: dan tags: trunk)
14:32
Add support for "ALTER TABLE ... DROP COLUMN ..." commands. (check-in: c844a331 user: dan tags: trunk)
14:13
Fix a crash that could occur in ALTER TABLE DROP COLUMN if the sqlite_schema table was corrupt. (Closed-Leaf check-in: 126ee1ec user: dan tags: alter-table-drop-column)
09:46
Omit an branch made unreachable by the improved error message from dropping the last column of a table. (check-in: c5719fc5 user: drh tags: alter-table-drop-column)
09:36
The COLUMN keyword in ALTER TABLE DROP COLUMN is optional. (check-in: a22f87fb user: drh tags: alter-table-drop-column)
09:09
Give a better error message on DROP COLUMN when attempting to drop the last column of a table. (check-in: 5e1f362b user: drh tags: alter-table-drop-column)
02:30
Add a NEVER() to an unreachable branch in the DROP COLUMN logic. (check-in: 963f498a user: drh tags: alter-table-drop-column)
2021-02-18
23:53
Add missing VdbeCoverage() macros. (check-in: 9bb720e6 user: drh tags: alter-table-drop-column)
23:03
Enhance renameParseSql() to better handle OOMs. (check-in: 68bcde7a user: drh tags: alter-table-drop-column)
22:47
Merge changes from trunk into the alter-table-drop-column branch. (check-in: 9ea64007 user: drh tags: alter-table-drop-column)
20:27
Fix DROP COLUMN so that it works even if the user has registered an authorizer callback. (check-in: e5f14418 user: dan tags: alter-table-drop-column)
19:25
Fix a problem with schema error detection when processing ALTER TABLE DROP COLUMN commands. (check-in: 565a6fd0 user: dan tags: alter-table-drop-column)
17:48
Add test cases for ALTER TABLE DROP COLUMN. (check-in: 204ee5e2 user: dan tags: alter-table-drop-column)
15:59
Avoid invoking the update or pre-update hooks during VACUUM operations. (check-in: 3c25cb4a user: dan tags: trunk)
15:45
Improvement to the INSERT optimization of check-in [16ac213c57196361] so that it works with SQLITE_ENABLE_HIDDEN_COLUMN but is also easier to maintain and a little faster as well. (check-in: f985a78e user: drh tags: trunk)
14:27
Disable the optimization of [16ac213c57196361] when the SQLITE_ENABLE_HIDDEN_COLUMN compile-time option is used, as the optimization does not work in that case. (check-in: 5168b06b user: drh tags: trunk)
12:18
Ensure that the pre-update hook is invoked for INSERT operations on WITHOUT ROWID tables that use the xfer optimization. (check-in: 66bbad23 user: dan tags: trunk)
01:02
Add missing VdbeCoverage() macros to some of the new RETURNING code. (check-in: 53a53909 user: drh tags: trunk)
00:59
Performance optimization in the resolver. (check-in: 1aafb94d user: drh tags: trunk)
00:26
Performance optimization in the code generator for INSERT for the common case where the target table has neither generated nor hidden columns. Also fix a redundant (and thus unreachable) branch in the resolver. (check-in: 16ac213c user: drh tags: trunk)
2021-02-17
21:13
Use the sqlite3ParserAddCleanup() mechanism to ensure that the AggInfo structure associated with an aggregate query is deallocated, for a performance increase and size reduction. (check-in: 7a139967 user: drh tags: trunk)
20:46
Fix a problem with OOM error handling in the new code on this branch. (check-in: ea999c9d user: dan tags: alter-table-drop-column)
20:19
Merge trunk changes into this branch. (check-in: 0cd5e2f9 user: dan tags: alter-table-drop-column)
20:08
Fix various issues with the changes on this branch. Add test cases for the same. (check-in: 10538ec6 user: dan tags: alter-table-drop-column)
13:19
Enhance the ".once" and ".output" commands in the CLI so that if the filename argument begins with "|" the name becomes the concatenation of all subsequent arguments. Hence, commands like ".once | open -f" become possible without the need for quotes. (check-in: c46a94a6 user: drh tags: trunk)
2021-02-16
20:43
Add experimental implementation of ALTER TABLE DROP COLUMN. Only some cases work so far. (check-in: f0217937 user: dan tags: alter-table-drop-column)
20:32
Simplification to the resolveAlias() routine. (check-in: 00bead39 user: drh tags: trunk)
20:01
New SELECTTRACE macros more clearly deliniate when the query planner is invoked in the middle of PRAGMA vdbe_addoptrace output. (check-in: 7c03ce49 user: drh tags: trunk)
19:29
Remove unnecessarily complexity from sqlite3WithReleaseByParse(). Improved TreeView output for the enhanced CTE structures. This code still does not work 100%. I'm saving my place in order to (maybe) come back to it later. (check-in: 30bb18b4 user: drh tags: as-materialize)
16:32
Trying to get the new AS MATERIALIZE syntax of CTEs to work. There are still performance and memory management issues. This is a WIP check-in. (check-in: bf0fd9b2 user: drh tags: as-materialize)
00:48
Change the syntax from "GENERATED AS" to "AS MATERIALIZED" so as to match the syntax of PostgreSQL 12+. (Closed-Leaf check-in: 78dcddd9 user: drh tags: with-generated-as)
2021-02-15
17:51
Merge the LIKE operator fix from trunk. (check-in: 8c861878 user: drh tags: with-generated-as)
17:02
Fix an issue with the LIKE operator when it includes the "ESCAPE '_'" clause. Ticket [c0aeea67d58ae0fd]. (check-in: 27d41179 user: drh tags: trunk)
14:55
Merge minor fixes from trunk. (check-in: d876b287 user: drh tags: with-generated-as)
14:32
Add tests for sqlite3_column_count(). (check-in: 7cc65ae5 user: dan tags: trunk)
13:17
Ensure that the ALTER TABLE statements return 0 for sqlite3_column_count(). (check-in: 29c1932a user: drh tags: trunk)
11:14
Fix an error in the test case fix in [ecd71203]. (check-in: 5411bfa4 user: dan tags: trunk)
2021-02-13
23:46
If the GENERATED keyword occurs before the AS keyword in a common table expression (CTE) definition, then that CTE becomes an "optimization barrier". For now, that means the CTE is always materialized. It also means that query flattener or pushdown optimizations that cross the CTE boundary are omitted. (check-in: 186ec18b user: drh tags: with-generated-as)
21:01
Add a test-control that allows setting a LIKE pattern for common table expression names such that CTEs with matching names become an optimization barrier - They are not flattened and are implemented by materialization. (Closed-Leaf check-in: 15692ec0 user: drh tags: optbarrier-test-ctrl)
18:14
Fix incorrect test name labels in the select1.test script. (check-in: 179c79ea user: drh tags: trunk)
16:39
Avoid manifesting a CTE (or other view) multiple times when it is possible to reuse the first manifestation. (check-in: 9692f510 user: drh tags: trunk)
14:26
Fix a problem in the unreleased union-all flattening enhancement (check-in: e4f8a79f user: dan tags: trunk)
2021-02-12
21:22
Fix a test case to account for the fact that different versions of OpenBSD behave differently when a program tries to read() from a file-descriptor open on a directory. (check-in: ecd71203 user: dan tags: trunk)
21:07
Parsing of DML statements in a WITH clause. But at this point, it just generates an error about "not yet supported". (Leaf check-in: 964ff68d user: drh tags: dml-in-cte)
11:37
Ensure all RBU tests are run as part of release testing. (check-in: a18dc08b user: dan tags: trunk)
2021-02-11
16:19
In RBU, avoid passing VFS xShmLock calls through to the underlying VFS in cases where xShmMap calls may not be. This fixes a bad interaction with ZipVFS. (Leaf check-in: 0c3838d9 user: dan tags: reuse-schema-3.31)
2021-02-10
20:20
Merge latest trunk changes into this branch. (check-in: d29c41bd user: dan tags: reuse-schema)
20:00
Fix a longstanding problem causing an RBU vacuum to omit releasing some locks before finishing. (check-in: 66c07a07 user: dan tags: trunk)
19:49
Remove an assert() added by the previous commit that is sometimes false. (Closed-Leaf check-in: fb36ac4d user: dan tags: shm-lock-fix)
19:40
Fix a longstanding problem causing an RBU vacuum to omit releasing some locks before finishing. (check-in: cb5bdf82 user: dan tags: shm-lock-fix)
17:31
In RBU, avoid passing VFS xShmLock calls through to the underlying VFS in cases where xShmMap calls may not be. This fixes a bad interaction with ZipVFS. (check-in: bd1e9e0a user: dan tags: trunk)
2021-02-08
15:56
Correctly detect correlated subqueries when resolving names in RETURNING clauses. (check-in: b43cfa04 user: drh tags: trunk)
13:41
Improved name resolution for references to a table begin modified from within a subquery in the RETURNING clause. (check-in: 799d205b user: drh tags: trunk)
2021-02-07
23:28
Do not allow RETURNING in the DML statements of a trigger. (check-in: 7a8fe646 user: drh tags: trunk)
12:59
Fix harmless compiler warnings. (check-in: 5f8bf995 user: drh tags: trunk)
2021-02-06
14:56
Remove an ALWAYS() and NEVER() in the authorizer that become reachable as of [078dbff04a95a001]. Test case for coverage in TH3. (check-in: b469327e user: drh tags: trunk)
14:37
Fix the OSSFuzz-discovered shift problem from two days ago. This patch was omitted from [078dbff04a95a001] apparently because I made the edit to "sqlite3.c" rather than "resolve.c" where it belongs. (check-in: 864772ff user: drh tags: trunk)
2021-02-05
17:34
Remove unreachable code. Fix a shift UB problem introduced yesterday and discovered by OSSFuzz. (check-in: 078dbff0 user: drh tags: trunk)
2021-02-04
23:20
Change the RETURNING algorithm so that outputs accumulate in an ephemeral table until all modifications have been completed, and only then do results start being returned. This should help prevent problems with interleaved sqlite3_step() calls on two separate DML statements. It also seems to be closer to how PostgreSQL works, which might prevent compatibility problems. (check-in: c4615eb2 user: drh tags: trunk)
22:59
Remove dead code. Fix RETURNING for INSERT into a virtual table. (Closed-Leaf check-in: dbfa3869 user: drh tags: returning-manifested)
21:19
Initial commit (Leaf check-in: e73dbce8 user: shearer tags: selective-debug)
21:17
Fix an issue with RETURNING from UPSERT. (check-in: 757b74ba user: drh tags: returning-manifested)
20:52
Snapshot. New design appears to work on a simple test case. (check-in: 8a65fbee user: drh tags: returning-manifested)
17:29
Preliminary changes for a new implementation of RETURNING that captures all results in a buffer and plays them all back after the DML statement completes. This avoids problems with interleaved DML statements. This particular check-in is a non-functional work in progress. (check-in: 04b77d63 user: drh tags: returning-manifested)
13:52
Add NEVER() to a branch that check-in [5d54d9fd40638138] apparently made unreachable. (check-in: 5c8e6296 user: drh tags: trunk)
13:44
Performance optimization in sqlite3FinishCoding(). (check-in: 0f34f241 user: drh tags: trunk)
11:14
Work toward handling interleaved RETURNING statements. Trunk does not handle that case correctly. This branch is a partial implementation of ideas that might, however. (Closed-Leaf check-in: e1eb6213 user: drh tags: interleaved-returning)
2021-02-03
19:38
Corrections to the 'filepath_normalize' test suite helper procedure. (check-in: 32f4d044 user: mistachkin tags: trunk)
18:32
Change the name of Vdbe.magic to Vdbe.iVdbeMagic to disambiguate with sqlite3.magic. (check-in: 6b29e549 user: drh tags: trunk)
14:20
Avoid doing any foreign-key constraint related processing for an UPDATE statement that does not modify any columns that are part of FK constraints, even if the table has a self-referencing FK. (check-in: 7f3b036e user: dan tags: trunk)
13:20
Fix a harmless compiler warning. (check-in: 1eb69c64 user: drh tags: trunk)
13:08
Add support for the RETURNING clause following PostgreSQL syntax. Also change the behavior of SQLITE_DBCONFIG_ENABLE_TRIGGER so that TEMP triggers are always allowed, regardless of the setting. (check-in: 416c898b user: drh tags: trunk)
12:35
Fix an assert() that might be off-by-one in the case of a prior errors in the parse. (check-in: 06b15b17 user: drh tags: trunk)
00:55
Modify the SQLITE_DBCONFIG_ENABLE_TRIGGER setting so that it only disables main-schema triggers and allows TEMP trigger to continue operating. This is safe, since only the application (not an attacker) can add TEMP triggers. It will also all us to disengage SQLITE_DBCONFIG_ENABLE_TRIGGER on Fossil databases since Fossil has no main-schema triggers but does use TEMP triggers. (Closed-Leaf check-in: a10c5a25 user: drh tags: returning)
00:05
Load enhancements from trunk into the returning branch. (check-in: b84c7f60 user: drh tags: returning)
2021-02-02
20:46
Do not allow aggregates in a RETURNING clause. Fix a memory leak that occurs when window functions are used in a RETURNING clause. (check-in: 2e9bd94b user: drh tags: returning)
20:41
Modify the sessions extension to use more efficient SQL when applying a changeset or patchset. (check-in: e4ccfac0 user: dan tags: trunk)
12:01
Report an error if RETURNING is used for DELETE or UPDATE of a virtual table. (check-in: bd5dee84 user: drh tags: returning)
00:16
Allow the RETURNING trigger to exist for virtual tables. (check-in: 2f244ab4 user: drh tags: returning)
2021-02-01
21:26
Add a few test cases for RETURNING together with UPDATE/DELETE LIMIT. (check-in: 7611c77d user: drh tags: returning)
12:39
Improved corrupt database detection in balance_nonroot(). (check-in: 5d54d9fd user: drh tags: trunk)
01:57
Modify RETURNING so that it does not return changes implemented by cascading foreign keys or by triggers. (check-in: 6e62470a user: drh tags: returning)
2021-01-31
16:45
Mark an unreachable branch as ALWAYS(). (check-in: cb8b797a user: drh tags: returning)
15:50
New opcode OP_ChngCntRow used to output the result of PRAGMA change_count. Only this new opcode, and not OP_ResultRow, checks for foreign key errors. Faster performance, and now also works with RETURNING. (check-in: 154fc2b1 user: drh tags: returning)
12:41
When setting the number of result columns in a RETURNING trigger, be sure to set that value in the top-level bytecode program, not in the immediate caller of the trigger. (check-in: 1f1ce7ce user: drh tags: returning)
2021-01-30
21:55
Improved comments on the new code. (check-in: a38f0c1d user: drh tags: returning)
16:16
Add an ALWAYS() to an unreachable branch. (check-in: 6bb6de42 user: drh tags: returning)
14:17
Change the OP_ResultRow opcode so that it does not cancel pending statement transactions. (check-in: fea91e3a user: drh tags: returning)
12:07
Fix a obsolete assert() in the bytecode engine. Improved OOM detection in sqlite3AddReturning(). (check-in: 138b10d5 user: drh tags: returning)
03:06
Fix handling of an OOM condition in sqlite3AddReturning(). (check-in: 52204cd7 user: drh tags: returning)
02:43
Fix a memory deallocation problem that comes up when doing a RETURNING query on a corrupt database. I think I fixed this before, but it got unfixed with stale editor content. (check-in: 02b1415e user: drh tags: returning)
02:34
Another attempt to get trigger selection correct for RETURNING triggers. (check-in: 1b8ed522 user: drh tags: returning)
02:22
When running the RETURNING trigger, if it is tagged as a DELETE trigger, do not use it as INSERT or UPDATE. (check-in: 3c7a6e04 user: drh tags: returning)
01:30
Test cases added. RETURNING works with UPSERT as does PG. (check-in: f5698f96 user: drh tags: returning)
2021-01-29
22:33
Better handling of errors in RETURNING due to corrupt database files. (check-in: 6aa2a058 user: drh tags: returning)
21:31
RETURNING works even if "PRAGMA count_changes=ON" is set. (check-in: a9122d97 user: drh tags: returning)
21:18
Allow "*" wildcards in the RETURNING clause. (check-in: b0e3ae30 user: drh tags: returning)
19:32
Working prototype. (check-in: b7ef4dc2 user: drh tags: returning)
16:20
Fix possible division-by-zero in the new log() SQL functions. Problemm discovered by OSSFuzz. (check-in: 1ffd321a user: drh tags: trunk)
14:22
Incorporate the sqlite3TriggerList() optimization from trunk. And move the pReturning field to the uninitialized area in the Parse object, to save memset() time. (check-in: 29fbaf0e user: drh tags: returning)
13:47
Performance optimization (and size reduction) in sqlite3TriggerList() for the common case where there are no TEMP triggers. (check-in: 0defaf73 user: drh tags: trunk)
2021-01-27
20:35
Merge recent enhancements from trunk. (check-in: 5fbcb208 user: drh tags: returning)
19:15
Fix an issue with IN operator optimization introduced by check-in [4a43430fd23f8835] and described by ticket [ee51301f316c09e9]. (check-in: 9dc7fc9f user: drh tags: trunk)
17:15
Ensure a cursor used by the SeekScan operator does not point to a valid row on the first iteration of the loop. Possible fix for [ee51301f316c09e]. (Closed-Leaf check-in: 390cf60a user: dan tags: fix-2d6e8400)
2021-01-25
21:24
Add an extra log message in the case of an SQLITE_CORRUPT_INDEX error. (check-in: 0571c241 user: drh tags: trunk)
2021-01-22
21:23
Enhance the query planner to enable it to use an index for IS NOT NULL constraints, even if STAT4 is not enabled. (check-in: 7b2a7c73 user: drh tags: trunk)
20:28
Merge fixes from trunk. Omit a conditional in sqlite3IsLikeFunction() that was made unreachable by this enhancement. (Closed-Leaf check-in: 0b42f9eb user: drh tags: isnotnull-opt)
2021-01-21
21:36
Do not allow VACUUM to resize the page_size to 512 if the reserve_byte value is 31 or greater. forum post e807885dc5. (check-in: d5ea75a0 user: drh tags: trunk)
20:42
Performance optimizations in exprAnalyze() (check-in: 6d60cf54 user: drh tags: isnotnull-opt)
17:54
Always enable the IS NOT NULL optimization, even if STAT4 is not enabled. (check-in: fc98218c user: drh tags: isnotnull-opt)
16:02
Fix a problem caused by using an SQL variable in an OVER clause within a trigger program. Edit: The problem appears to have existed ever since window functions landed on trunk (check-in [17198a1206e2fbc9]) on 2018-06-30, version 3.25.0. (check-in: 02264ab6 user: dan tags: trunk)
15:40
Fix a problem caused by using an SQL variable in an OVER clause within a trigger program. (Closed-Leaf check-in: 4f676466 user: dan tags: fix-over-trigger)
2021-01-20
23:01
Improvements to the auxiliary "main.mk" makefile so that it works better with multi-threaded builds. (check-in: d1873054 user: drh tags: trunk)
15:10
Incorporate the 3.34.1 patches into the reuse-schema branch. (Leaf check-in: cc0e5828 user: drh tags: reuse-schema-3.34)
14:10
Version 3.34.1 (Leaf check-in: 10e20c0b user: drh tags: release, patch, version-3.34.1, branch-3.34)
10:59
Add tests for sqlite3session_memory_used() interface. (check-in: 5596611f user: dan tags: trunk)
2021-01-19
20:38
Fix an issue with sha3_query() when the first argument contains blank SQL statements. (check-in: a1a7a5f2 user: drh tags: branch-3.34)
20:17
Bump the version number to 3.34.1. (check-in: cea7d0f8 user: drh tags: branch-3.34)
20:09
Fix a problem handling sub-queries with both a correlated WHERE clause and a "HAVING 0" clause where the parent query is itself an aggregate. The problem was apparently introduced by check-in [6e6b3729e0549de0] (check-in: 30a4c323 user: drh tags: branch-3.34)
20:04
Prevent potential segfault in the sqlite-expert idxPopulateStat1 context cleanup code. (check-in: 69e31d52 user: drh tags: branch-3.34)
2021-01-18
19:28
Fix harmless compiler warnings seen with MSVC. (check-in: dc7938d2 user: mistachkin tags: trunk)
19:27
Update test helper procedure 'get_pwd' to handle the ComSpec environment variable being absent. (check-in: fe197955 user: mistachkin tags: trunk)
12:35
Enhance the query planner so that it is able to code EXISTS operators in the WHERE clause as if they were IN operators, when appropriate. (check-in: c1862abb user: drh tags: trunk)
00:11
More comments on the EXISTS-to-IN optimization logic. (Closed-Leaf check-in: 92cc2909 user: drh tags: exists-to-in)
2021-01-17
00:13
Minor simplification of the EXISTS-to-IN logic. (check-in: cac90a9f user: drh tags: exists-to-in)
2021-01-16
20:22
Improved handling of vector equalities in the EXISTS-to-IN translator. (check-in: ef49ee4a user: drh tags: exists-to-in)
18:55
Give the EXISTS-to-IN optimization the ability to handle some cases that involve vector comparisons, instead of throwing a mysterious error in those cases. (check-in: 87e78a19 user: drh tags: exists-to-in)
18:22
Add debugging output about the EXISTS-to-IN optimization when the ".wheretrace" flag has the 0x20 bit set. (check-in: 0dad5ce3 user: drh tags: exists-to-in)
12:15
Fix a hyperlink in the Lemon documentation. (check-in: 2ffb2ffa user: drh tags: trunk)
2021-01-15
17:51
Add OOM injection tests for new code on this branch. (check-in: 9a181dba user: dan tags: exists-to-in)
16:37
Update header comments for routines added by this branch. (check-in: 950030d6 user: dan tags: exists-to-in)
15:32
Ensure the EXISTS->IN transformation preserves the collation sequence of the comparison operation. (check-in: a373baae user: dan tags: exists-to-in)
15:21
Fix a potential NULL pointer dereference following OOM. (check-in: 8ce3cb90 user: drh tags: exists-to-in)
15:17
Add a new optimizer disabling bit to close off the exists-to-in optimization, for testing purposes. (check-in: a80c9a07 user: drh tags: exists-to-in)
14:25
Small performance improvement in the EXISTS-to-IN translator for the common case where the EXISTS operator is not found in the WHERE clause. (check-in: dcb7772d user: drh tags: exists-to-in)
14:15
Merge the latest trunk enhancements into the exists-to-in branch. (check-in: 13c4c908 user: drh tags: exists-to-in)
11:39
Add simple tests (and a fix) for the change on this branch. (check-in: 897f3f40 user: dan tags: exists-to-in)
2021-01-14
20:57
Improvements to the min/max optimization. Fix for a performance regression introduced at [b8ba2f17f938c035] reported by forum post 4050026ab8 (check-in: 249a71cc user: drh tags: trunk)
20:50
Allow the planner to convert an EXISTS(SELECT...) expression in a WHERE clause to the equivalent IN(...) expression in situations where this is possible and advantageous. (check-in: 9f90a882 user: dan tags: exists-to-in)
00:53
The early-out of the inner loop on the min/max optimization was overly aggressive for the cases where there is a join and outer loops contain IN operators. Fix this. Test case in TH3. (Closed-Leaf check-in: ccd3bae1 user: drh tags: minmax-opt-exp)
2021-01-13
21:05
Fix a harmless compiler warning. (check-in: 83ec01e3 user: drh tags: minmax-opt-exp)
19:28
Expand the number of optimization-disable bits from 16 to 32. Use one of the new bits to disable the min/max optimization, so that we can more easily verify that we get the same answer both with and within that optimization. (check-in: fd0c9a12 user: drh tags: minmax-opt-exp)
15:23
Further enhancements to the min/max optimization of check-in b8ba2f17f938c035 to fix the performance regression identified by forum post 4050026ab8. (check-in: 188772a1 user: drh tags: minmax-opt-exp)
12:59
cli: Omit surplus whitespace at the end of lines in .explain output. (check-in: 11e4eb09 user: drh tags: trunk)
11:44
In the .selecttrace output, show the ORDER BY clause added by the Min/Max optimization. (check-in: db0ecfe6 user: drh tags: trunk)
2021-01-12
20:16
Lexer and grammar rules for a RETURNING clause on DELETE/INSERT/UPDATE. Actually making this work, though, will involve a lot more code which will likely slow down processing for the common case where there is no RETURNING clause. Furthermore, RETURNING seems to be of limited usefulness and it is not standard SQL. So we abandon it here. These experimental changes are parked in a branch as an historical reference. If circumstances changes, we might take up the cause again some day. (check-in: abf8da81 user: drh tags: returning)
16:26
Merge the ParseCleanup enhancement to trunk. (check-in: 35824c1b user: drh tags: trunk)
15:30
Fix a potential use-after-free following an OOM in sqlite3ParserAddCleanup() and add a mechanism to detect situations where this might occur in the future. (Closed-Leaf check-in: 38ef8ab9 user: drh tags: parse-cleanup)
14:23
Rerun autoconf. (check-in: 8f3ab5da user: drh tags: trunk)
14:19
Fix for the top-level configure script so that it works with tcl 8.7. (check-in: 4810f814 user: dan tags: trunk)
2021-01-11
20:37
Add a linked list of ParseCleanup objects to the end of a Parse object and use that list as a place to put other sub-objects that need to be deallocated. Have a single such list for infrequently used sub-objects is more efficient than doing an a separate check for each kind of sub-object. Edit: Now possible to have use-after-free following an OOM. (check-in: affa2b7b user: drh tags: parse-cleanup)
2021-01-09
19:10
New CLI command: ".stats vmstep" enables the display of the virtual-machine step count only, after each command. Useful for optimization problems. (check-in: 49dfce46 user: drh tags: trunk)
18:24
More detailed compile-time testing before attempting to use atomic load intrinsics. See forum post fc0237a39b30ac0a. (check-in: 5204c2c4 user: drh tags: trunk)
2021-01-08
19:53
Fix an issue with sha3_query() when the first argument contains blank SQL statements. (check-in: 24baab9a user: drh tags: trunk)
2021-01-07
16:59
Update cksumvfs to check that the xCurrentTimeGetInt64 method of the underlying VFS is not NULL before invoking it. (check-in: c71f6cad user: dan tags: trunk)
16:29
Fix problems with some "crashsql" tests. (check-in: 0c8e2ede user: dan tags: trunk)
16:10
Fix harmless typos in comments per forum post 7849e58dd5 (check-in: d1e22e2f user: drh tags: trunk)
2021-01-04
18:28
Add extra test for handling of embedded nul characters in the fts4 unicode61 tokenizer. (check-in: c2c2c7e9 user: dan tags: trunk)
2021-01-02
23:56
In Lemon, factor the parser stack overflow detection logic out of the yy_reduce() subroutine and into the main parser routine, so that when overflow is detected, it can exit immediately. This saves a single conditional in the main loop of the parser. (check-in: 203c049c user: drh tags: trunk)
2021-01-01
22:06
Avoid allocating space to hold the prepared statements for CREATE statements when parsing the schema of an existing database, since those prepared statements are never used.. This helps to make startup faster, (check-in: d01e9f2d user: drh tags: trunk)
21:02
Faster and smaller test to ensure that the sqlite_schema.sql field is always a CREATE statement of some kind. (check-in: 76de2bb0 user: drh tags: trunk)
20:04
Change the unions of the Table.addColOffset field from characters to bytes. This makes the query that implements ALTER TABLE ADD COLUMN more complex and slightly slower, but also makes CREATE TABLE statement parsing faster by avoiding a call to sqlite3UtfCharLen(). Since, CREATE TABLE parsing is far more common than ALTER TABLE, this is a net win for performance. (check-in: 6f25f252 user: drh tags: trunk)
19:17
Use the column name hash to improve performance of column name collision detection while parsing CREATE TABLE statements. (check-in: d02820f0 user: drh tags: trunk)
18:32
Modify the makefile rule for "startup" so that it always builds with -Os and -DSQLITE_THREADSAFE=0 and no other options, for consistency of performance. (check-in: 5ac939e0 user: drh tags: trunk)
18:23
Size reduction and performance increase in sqlite3Prepare(). (check-in: 41f45c8e user: drh tags: trunk)
17:01
Small size reduction and performance improvement in sqlite3VdbeMakeReady() by linking the new prepared statement into the prepared statement list sooner rather than later. (check-in: 2996e800 user: drh tags: trunk)
16:43
Streamline processing of the authenticator callback for the common case when there is no callback. (check-in: d3196685 user: drh tags: trunk)
15:13
Add the "startup" test program designed to measure startup performance, and in particular schema parsing time. (check-in: 7b3b31ef user: drh tags: trunk)
01:44
Do not attempt to take a pointer to the ceil() and floor() functions as those routines are intrinsics on some versions of MSVC. (check-in: e5d7209e user: drh tags: trunk)
2020-12-30
13:20
New test case for the HAVING fix of check-in [f62f983b56623f0e]. (check-in: 45f46317 user: drh tags: trunk)
13:10
New test cases for cursor renumbering in the UNION ALL query flattener. (check-in: 270babf2 user: drh tags: trunk)
2020-12-29
16:48
Add an ALWAYS on an always-true conditional in the cursor renumbering logic of the UNION ALL flattener. Edit: turns out this change is incorrect and the conditional is reachable after all. See the nearby trunk check-in for test cases. (Closed-Leaf check-in: 5774318e user: drh tags: mistake)
15:06
Do not set the P3 parameter on OP_RowCell when copying an index btree, as P3 is not used in that case. (check-in: eef070a4 user: drh tags: trunk)
2020-12-28
21:42
Fix missing comma in ctime.c that would cause the ENABLE_MATH_FUNCTIONS output rw to merge with whatever row followed. Problem reported in forum post aacac97680. (check-in: 328bc4a0 user: drh tags: trunk)
2020-12-23
16:46
Add the sqlite3session_memory_used() API to the sessions module. For querying the amount of heap memory currently being used by a session object. (check-in: 823f75c2 user: dan tags: trunk)
2020-12-22
20:35
Fix SQLITE_OMIT_WINDOWFUNC builds by moving declaration of sqlite3ExpandSubquery out of "ifndef SQLITE_OMIT_WINDOWFUNC" block. (check-in: 9587fa8b user: dan tags: trunk)
19:57
Fix a couple spelling typos in comments. (check-in: 907ddf86 user: mistachkin tags: trunk)
16:23
Fix a problem handling sub-queries with both a correlated WHERE clause and a "HAVING 0" clause where the parent query is itself an aggregate. The problem was apparently introduced by check-in [6e6b3729e0549de0] (check-in: f62f983b user: dan tags: trunk)
14:54
Simplification to the aggregate-function analysis error detection logic at the end of sqlite3Select(). (check-in: 82884438 user: drh tags: trunk)
2020-12-21
19:50
Fix problems with joining UNION ALL sub-queries against other sub-queries that contain LEFT JOIN. (check-in: d554f710 user: dan tags: trunk)
18:39
Fix a problem when flattening joins between a UNION ALL sub-query and another sub-query that uses more than one window function. (check-in: ef9733fe user: dan tags: trunk)
14:51
Enhance documentation to show that "ro" is the correct way to say "readonly" in the mode= query parameter. (check-in: 788b9685 user: drh tags: trunk)
12:14
Add the --timer option to fuzzcheck. Get the --timeout option working in fuzzcheck when running dbsql tests. (check-in: 3b0c9b41 user: drh tags: trunk)
2020-12-20
14:51
Always declare the sqlite3WhereTrace variable, even for non-debug builds. (check-in: 88d93ee3 user: drh tags: trunk)
2020-12-19
15:39
Fix a broken assert() in fts5 that could be triggered by corrupt database records. (check-in: b79f59f9 user: dan tags: trunk)
13:58
Allow UNION ALL sub-queries to be flattened even if the parent query is a join. (check-in: df1d6482 user: drh tags: trunk)
2020-12-18
18:04
Fix for the previous fix in the case where a UNION ALL sub-query is joined against some other compound query. (Closed-Leaf check-in: 63c5cfb9 user: dan tags: union-all-flattener)
16:13
When flattening UNION ALL subqueries into a join query, ensure that separate cursor numbers are used for each segment of the newly flattened query. (check-in: c510377b user: dan tags: union-all-flattener)
2020-12-17
17:17
Fix a part of the header comment for flattenSubquery(). (check-in: dc0937ce user: dan tags: union-all-flattener)
16:48
Add test cases and minor fixes to this branch. (check-in: 5d6dc29d user: dan tags: union-all-flattener)
15:17
In the CLI, add the ".filectrl data_version" command. And put the various ".filectrl" subcommands in alphabetical order. (check-in: 34344521 user: drh tags: trunk)
11:30
Merge latest trunk changes into this branch. (check-in: 9f41f604 user: dan tags: reuse-schema)
11:24
Fix a problem with sqlite3_expanded_sql() that could occur with statements that use both numbered (e.g. "?1") and unnumbered (i.e. "?") parameters. (check-in: 2a6cd683 user: dan tags: trunk)
2020-12-16
21:09
Enhance the sqlite3BtreeTransferRow() routine so that it does more careful checks for corrupt database pages. (check-in: 85952e71 user: drh tags: trunk)
20:00
Allow sub-queries that use UNION ALL to be flattened, even if the parent query is a join. Still some problems on this branch. (check-in: 00e4bf74 user: dan tags: union-all-flattener)
14:20
Remove an unnecessary and incorrect #ifdef. Fix harmless compiler warnings. (check-in: 31cd1bbf user: drh tags: trunk)
13:20
Fix a typo in the sqlite3_free_filename() documentation. (check-in: 7316ee19 user: drh tags: branch-3.34)
13:17
Fix a typo in the sqlite3_free_filename() documentation. (check-in: 48301edc user: drh tags: trunk)
2020-12-15
19:27
Fix another integer overflow triggered by a corrupt database in recently modified vacuum code. (check-in: 4e2dd2a5 user: dan tags: trunk)
16:28
When the -statstep option is passed to the "rbu" executable, print out memory stats right before exiting, as well as every -statstep steps. (check-in: 94f81b51 user: dan tags: trunk)
13:55
Change an fts5 assert() that can be triggered by a corrupt database to an if() condition. (check-in: ea0a7f10 user: dan tags: trunk)
2020-12-14
16:50
Merge the latest trunk enhancements into the begin-concurrent-pnu branch. (check-in: daf04650 user: drh tags: begin-concurrent-pnu)
16:26
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: a1708e84 user: drh tags: begin-concurrent)
15:39
Enhance UPSERT so that it allows multiple ON CONFLICT clauses and does not require a conflict target for DO UPDATE. (check-in: 6b01a24d user: drh tags: trunk)
15:25
Fix an integer overflow problem in new VACUUM code. (check-in: 59b4367f user: dan tags: trunk)
13:52
Minor changes for test coverage. (Closed-Leaf check-in: e5a8fa50 user: drh tags: generalized-upsert)
2020-12-12
00:43
More test cases. No new problems discovered. (check-in: f34dd67e user: drh tags: generalized-upsert)
00:28
New test cases with corresponding bug fixes. (check-in: f22c21a9 user: drh tags: generalized-upsert)
2020-12-11
19:36
Begin adding test cases. Fix one bug found so far. More are pending. (check-in: aadd67dd user: drh tags: generalized-upsert)
19:01
Fix an assert() broken by recent changes to vacuum. (check-in: dd058da8 user: dan tags: trunk)
17:11
Small performance tweaks. (check-in: 5321d60c user: drh tags: generalized-upsert)
16:49
Bug fixes so that legacy tests pass. New tests for new functionality have not yet been added. (check-in: aa76790e user: drh tags: generalized-upsert)
16:03
Add an "#ifndef SQLITE_AMALGAMATION" block around the typedef for u64 in shathree.c. (check-in: b411f29e user: dan tags: trunk)
14:34
Fix the configure script on the autoconf distribution so that the --disable-threadsafe option works. See FreeBSD bug 244459. (check-in: e64ff2cc user: drh tags: trunk)
14:22
Fix the expert extension so that it handles generated columns correctly. (check-in: c2ae7ba6 user: dan tags: trunk)
01:17
Logic is in place to handle multiple ON CONFLICT clauses, but it does not work. Any use of ON CONFLICT will likely lead to memory faults. This is an incremental check-in to save my place. (check-in: 15514231 user: drh tags: generalized-upsert)
2020-12-10
20:31
Use an iterator for the index loop in sqlite3GenerateConstraintChecks(). The idea is that this iterator can be enhanced to traverse the indexes in any order, as required by multi-index UPSERT. (check-in: 64a4a91e user: drh tags: generalized-upsert)
19:54
Remove a redundant branch added by [56a54258560]. (check-in: b4d6f6d7 user: dan tags: trunk)
19:51
Changes to avoid loading large records into memory within VACUUM. (check-in: 56a54258 user: dan tags: trunk)
19:20
Fix minor issues with new code on this branch. (Closed-Leaf check-in: f7fa76d0 user: dan tags: vacuum-lomem)
18:07
Merge trunk changes into this branch. (check-in: 7337eed6 user: dan tags: vacuum-lomem)
18:06
Better integrate the changes on this branch with OP_Insert and OP_IdxInsert. (check-in: 101cef14 user: dan tags: vacuum-lomem)
13:49
Add an optional function to the chsumvfs extension. When activated by the SQLITE_CKSUMVFS_INIT_FUNCNAME macro, this function will invoke the file-control that sets the number of reserved bytes to 8. This can be used to initialize a cksumvfs database file by programming languages that do not have access to the sqlite3_file_control() interface. (check-in: 01841fb4 user: drh tags: trunk)
12:49
The DO UPDATE code generator searches for the correct ON CONFLICT clause to use. (check-in: a47e35ee user: drh tags: generalized-upsert)
2020-12-09
23:35
Fix compilation issues with MSVC related to C99. (check-in: c0de6c1f user: mistachkin tags: trunk)
20:33
Transfer large index or WITHOUT ROWID records between b-trees when vacuuming without loading them into memory. (check-in: dfd4ca68 user: dan tags: vacuum-lomem)
20:30
For upsert, the constraint check code generator uses a copy of the index list for the target table, which can potentially be reordered. (check-in: 3194c00c user: drh tags: generalized-upsert)
16:49
Add tests for a 'delete' command on a contentless table where values that weren't actually inserted are NULL. (check-in: 818c647c user: dan tags: trunk)
16:32
Avoid loading large intkey rows when VACUUMing, even if the page-size is changing. (check-in: 0d2c3776 user: dan tags: vacuum-lomem)
13:11
Improved comments in sqliteInt.h. No changes to code. (check-in: 8ccb8d1d user: drh tags: generalized-upsert)
01:34
Initialize all terms in the ON CONFLICT clause stack. (check-in: 5e683fd1 user: drh tags: generalized-upsert)
2020-12-08
20:19
Experimental changes to vacuum to avoid loading large records entirely into memory. Currently only works in limited cases only - for rowid tables when the page-size does not change. (check-in: c90e063c user: dan tags: vacuum-lomem)
14:29
Enhance UPSERT parsing to allow multiple ON CONFLICT clauses. Only the very last clause may omit the conflict target, but the conflict target may now be omitted for the DO UPDATE resolution. (check-in: 2ca62f4c user: drh tags: generalized-upsert)
2020-12-07
23:14
Fix a bad assert() in math1Func(). (check-in: 4b286129 user: drh tags: trunk)
21:19
Fix to the --disable-math option to ./configure. (check-in: 99ff6418 user: drh tags: trunk)
21:13
Many more math functions. Semantics follows PG wherever possible. (check-in: 6b93627b user: drh tags: trunk)
17:15
Begin adding new SQL functions that depend on -lm: ceil(), ceiling(), floor(), ln(), log(), and log10() so far. More to follow. (check-in: 4db5f2f7 user: drh tags: trunk)
2020-12-04
18:47
Update this branch with latest trunk changes. (check-in: 846e8444 user: dan tags: reuse-schema)
17:05
Fix harmless compiler warnings associated with the recent FTS5 enhancements. (check-in: 1db7c751 user: drh tags: trunk)
16:58
Fix a bug in the ".eqp" command of the shell that was introduced by the recent sqlite3SelectTrace/SQLITE_TESTCTRL_TRACEFLAGS changes. (check-in: fd02dffc user: drh tags: trunk)
16:49
Ensure that fts5 function matchinfo() is registered before running tests that use it in fts5corrupt3.test. (check-in: 932e05e0 user: dan tags: trunk)
16:26
Fix a test script problem in walvfs.test. (check-in: 4c5076fb user: dan tags: trunk)
16:25
Fix an incorrect datatype no the sqlite3WhereTrace variable in test1.c. (check-in: 4e6dab30 user: drh tags: trunk)
16:09
Eliminate the sqlite3_unsupported_selecttrace global variable by creating a new test-control to control SELECT tracing. Note that SELECT tracing is only available on debug builds. (check-in: fb07c4e3 user: drh tags: trunk)
16:04
Further changes to the trace variables to try to eliminate (harmless) compiler warnings in all configurations. (Closed-Leaf check-in: 3a4c98b9 user: drh tags: traceflags-test-control)
01:17
Alternative implementation of ".selecttrace" and ".wheretrace" that uses a test-control rather than global variables. (check-in: d36d6f29 user: drh tags: traceflags-test-control)
2020-12-03
21:22
When merging prefix lists in fts5, use 16-way merges instead of 2-way merges. This faster. (check-in: 026a9350 user: dan tags: trunk)
19:25
Do not simulate OOM faults on the SQLITE_FCNTL_CKPT_START and SQLITE_FCNTL_CKPT_DONE file-controls, as those are write-only and the return value is always ignored. (check-in: 62a2d394 user: drh tags: trunk)
14:21
Enhance the generate_series() table-valued function to support negative step values. (check-in: 9b60fc48 user: drh tags: trunk)
2020-12-02
20:07
Prevent potential segfault in the sqlite-expert idxPopulateStat1 context cleanup code. (check-in: c24f1344 user: mistachkin tags: trunk)
19:08
Allow a search for an N character prefix in fts5 to use a prefix index of size N+1, if no prefix index of size N exists. (check-in: 78a7801d user: dan tags: trunk)
18:27
Fix the ".open" command in the CLI so that it accepts command-line options both before and after the filename. (check-in: d330bf0c user: drh tags: trunk)
16:23
Improve performance for fts5 column filters that filter for more than one column. e.g. "{col1 col2 col3}:phrase". (check-in: d8de2f23 user: dan tags: trunk)
02:58
Parameterize the hash function in mkkeywordhash.c. This was an attempt to find a better hash function, which turned out to not be successful. (check-in: 2195d731 user: drh tags: trunk)
00:22
Increase the version number to 3.35.0 to begin the next development cycle. (check-in: edbabaa3 user: drh tags: trunk)
00:20
Slightly faster tokenization of non-keyword identifiers. (check-in: 55fa22bd user: drh tags: trunk)
2020-12-01
23:18
Add the --lookaside SIZE COUNT command-line option to the dbfuzz2 testing tool. (check-in: 2466960c user: drh tags: trunk)
16:36
Merge the 3.34.0 release into the reuse-schema branch. (check-in: 73b5f614 user: drh tags: reuse-schema)
16:14
Version 3.34.0 (check-in: a26b6597 user: drh tags: trunk, release, major-release, version-3.34.0)
2020-11-30
18:52
Update the tea/win/makefile.vc file that ships as part of the autoconf package to use "sqlite3" instead of "tclsqlite3" for the installed dll filename. (check-in: 23212b1a user: dan tags: trunk)
18:43
Update the tea/win/makefile.vc file that ships as part of the autoconf package to use "sqlite3" instead of "tclsqlite3" for the installed dll filename. (Closed-Leaf check-in: 93d4d9dc user: dan tags: win-tea-fix)
14:20
Do not reuse the obsolete SQLITE_TESTCTRL_PRNG_RESET value for SQLITE_TESTCTRL_SEEK_COUNT. Give SEEK_COUNT its own unique value. This avoids incompatibility with legacy test code. (check-in: fdba0b12 user: drh tags: trunk)
2020-11-27
20:56
Improve the speed of the tokenizer by recognizing that tokens starting with letters "_", "Y", or "Z" can never be SQL keywords and must be ordinary identifiers. (Closed-Leaf check-in: 16e281ed user: drh tags: faster-tokenizer)
19:40
Fix a compiler warning in fts5_aux.c. (check-in: 8edb983b user: dan tags: trunk)
16:15
Add missing cast to fts5 bm25() code. (check-in: 6ff96738 user: dan tags: trunk)
16:08
Remove a redundant "if( rc==SQLITE_OK )" from the fts5 bm25() code. (check-in: d85f4f27 user: dan tags: trunk)
16:05
Move an "if( rc==SQLITE_OK )" to outside a loop body in the fts5 bm25() code. (check-in: 14a4dcf3 user: dan tags: trunk)
15:28
Fix a case in the FTS5 integrity check where a corrupt database could cause a buffer overread. (check-in: a32b4f65 user: dan tags: trunk)
2020-11-26
20:13
Update mkunicode.tcl to match the change erroneously made to machine generated file fts5_unicode2.c in [b7b7bde9]. (check-in: 326d579d user: dan tags: trunk)
18:41
Merge latest changes from wal2 branch. (check-in: b451bb72 user: dan tags: begin-concurrent-pnu-wal2)
18:08
Merge latest trunk changes into this branch. (check-in: cb1f6f18 user: dan tags: wal2)
17:54
Merge latest changes from begin-concurrent-pnu into this branch. (check-in: d2de81a2 user: dan tags: begin-concurrent-report)
17:36
Merge latest changes from trunk into this branch. (check-in: a42e6f34 user: dan tags: begin-concurrent-pnu)
11:37
Update this branch with latest changes from trunk. (check-in: ddb97eee user: dan tags: begin-concurrent)
2020-11-25
20:29
Merge trunk changes into this branch. (check-in: f4b7c100 user: dan tags: reuse-schema)
18:44
Update a requirement mark in the e_expr.test script. (check-in: bb174a07 user: drh tags: trunk)
16:28
Fix harmless compiler warnings about unused function parameters. (check-in: 25d067c2 user: drh tags: trunk)
15:29
Fix a potential NULL pointer dereference in the geopoly_overlap() routine of the GeoPoly extension. (check-in: b5665712 user: drh tags: trunk)
14:50
Fix the shell1.test test script so that it works on windows. (check-in: 9bd15b07 user: drh tags: trunk)
13:59
Change the -init option to the command-line shell to honor the -bail option. Also change it to report an error if the filename mentioned cannot be opened. (check-in: a29f54bd user: drh tags: trunk)
2020-11-24
23:40
Fix a typo in the sqlite3_txn_state() documentation. (check-in: 5b432529 user: drh tags: trunk)
21:19
Add the new sqlite3_txn_state() interface to the set of routines accessible by run-time loadables extensions. (check-in: db25f1dc user: drh tags: trunk)
19:55
Fix a harmless typo in a comment. (check-in: b2a201f1 user: drh tags: trunk)
17:55
Fix a bug in OOM handling code introduced by [6a28713d]. (check-in: 8a786ce9 user: dan tags: trunk)
16:44
Ensure that super-journal and other journal filenames passed by SQLite to an sqlite3_vfs.xOpen() implementation may be safely passed to sqlite3_uri_parameter() and similar functions. (check-in: 6a28713d user: dan tags: trunk)
13:14
Remove the VERSION_NUMBER macro from configure.ac as it has been unused since 2009 check-in [7f4810747b086498]. See also forum post bb2c634fcd. (check-in: 5466dd55 user: drh tags: trunk)
2020-11-23
21:05
Syntactic changes to work around a bug in gcov 9.3.0. No changes to the generated code for release builds. (check-in: 4f1573b1 user: drh tags: trunk)
17:36
In os_unix.c, put ALWAYS() on unreachable branches associated with pathname normalization. (check-in: b45a08e3 user: drh tags: trunk)
15:30
Fix a test script problem causing crash8.test to fail when run with leak-sanitizer. (check-in: 2c437f7a user: dan tags: trunk)
14:50
Allow "substring()" as an alias for "substr()" for compatibility with other SQL engines. (check-in: aa2ee575 user: drh tags: trunk)
2020-11-20
14:16
Add file doc/vdbesort-memory.md, containing notes on the way vdbesort.c uses heap memory. (check-in: 07f53899 user: dan tags: trunk)
11:17
Declare a variable "const" in order to avoid compiler warnings. (check-in: 4f5481bf user: dan tags: wal2)
2020-11-19
21:12
The xFullPathname method of the unix VFS now normalizes the filenames by omitting surplus "/", "/./" and "/../" strings. (check-in: c38dec6f user: drh tags: trunk)
21:01
More test case changes so that shared-cache mode tests all work with normalized database names. (Closed-Leaf check-in: 6f0d5f09 user: drh tags: stronger-nofollow)
20:07
Fix the tkt3793 test case so that work even when filenames are normalized. (check-in: e85d32ac user: drh tags: stronger-nofollow)
19:43
Use an ephemeral table rather than a RowSet to remember rowids in the two-pass UPDATE algorithm, as this uses much less memory for large UPDATEs. (check-in: 842c4327 user: drh tags: trunk)
16:08
Fix things so that sqlite3_database_file_object() works with wal2 filenames. (check-in: c2426ae8 user: dan tags: wal2)
2020-11-18
23:44
If a read() or pread() indicates that the database file is unreadable due to filesystem damage, then it returns SQLITE_IOERR_CORRUPTFS which is then converted into SQLITE_CORRUPT before being returned to the application. (check-in: 849e4e14 user: drh tags: trunk)
21:50
Improvements to the mechanism that attempts to report SQLITE_CORRUPT if pread() says that the underlying filesystem is corrupt. (Closed-Leaf check-in: b887c750 user: drh tags: detect-corrupt-fs)
21:15
Merge trunk changes into this branch. (check-in: 6004de52 user: dan tags: reuse-schema)
20:55
Update cksumvfs.c so that if SQLITE_AMALGAMATION is defined, SQLITE_CKSUMVFS_STATIC is implied. (check-in: 184e9d78 user: dan tags: trunk)
18:36
Add test infrastructure for cksumvfs. And update cksumvfs so that it works in concert with version 2 VFSs. No changes to core SQLite. (check-in: 43d4801d user: dan tags: trunk)
14:30
Fix a problem causing sqlite3_carray_bind() to return an undefined value. (check-in: 083203a5 user: dan tags: trunk)
14:12
Update test code to fix a problem with SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 29c779a0 user: dan tags: trunk)
12:48
On unix, for certain error codes of read()/pread() return SQLITE_IOERR_CORRUPTFS instead of SQLITE_IOERR_READ. And then convert this error into SQLITE_CORRUPT prior to returning back to the application. (check-in: 9538ea84 user: drh tags: detect-corrupt-fs)
2020-11-17
21:26
Claw back most of the performance lost in the previous commit. (Closed-Leaf check-in: df8ce267 user: drh tags: lowmem-update-exp)
21:09
Fix trivial memory leaks in the shell and sqldiff programs. (check-in: 272793e5 user: dan tags: trunk)
18:25
Fix test file busy2.test so that it works with the "inmemory_journal" permutation. (check-in: b192fddd user: dan tags: trunk)
14:41
Add a single-argument form to the CARRAY table-valued function, with content bound using the sqlite3_carray_bind() interface that is included with the extension. (check-in: 7b229cb1 user: drh tags: trunk)
2020-11-16
18:45
Enhance the unix VFS so that it removes extra "/", "/./" and "/../" from the database filename. (check-in: 7ba89d3e user: drh tags: stronger-nofollow)
2020-11-14
20:03
Modify UPDATE so that two-pass updates on a rowid table use an ephemeral table to store rowids rather than a RowSet. This uses less memory, though it is slower. (check-in: 4673096d user: drh tags: lowmem-update-exp)
2020-11-12
18:16
Improved diagnostics output with ".wheretrace 0x800". No changes to non-debug builds. (check-in: 772ae83c user: drh tags: trunk)
2020-11-11
19:11
Fix a typo in a comment. No changes to code. (check-in: 572f1ed5 user: drh tags: trunk)
2020-11-08
20:44
Use NEVER and ALWAYS macros to confirm that the return value from sqlite3ExprSkipCollateAndLikely() is never NULL in some of its use cases. (check-in: 76d2eb86 user: drh tags: trunk)
2020-11-06
16:48
Add ALWAYS() to conditionals associated with SHM locking that are always true. (check-in: b599e890 user: drh tags: trunk)
2020-11-05
19:13
Suppress errors associated with TEMP triggers that reference objects in non-TEMP databases. This is a continuation of the fix for ticket #3810 shown in check-in [ba1afc040171810d] from 2009-08-06, based on a bug report in forum post 157dc791df (check-in: 991ca9b2 user: drh tags: trunk)
14:50
Remove unused variable from speedtest1.c (check-in: c0a18565 user: drh tags: trunk)
2020-11-03
11:54
Make platform compilation clearer, including the section that applies to both *ix and Windows Add link to the detailed compilation instructions Add brief Android section, it seems strange to omit it since Android is the majority use case by numbers (Closed-Leaf check-in: 2a71bebf user: shearer tags: docupdate)
11:27
Update for new git-style syntax in Fossil (check-in: d46b6778 user: shearer tags: docupdate)
11:20
Add links, especially for the docsrc repo, which is otherwise hard to find (check-in: e03867e2 user: shearer tags: docupdate)
2020-11-02
00:40
Fix an another OSS-Fuzz discovered assertion fault due to ALTER TABLE and strange triggers. (check-in: 6646d789 user: drh tags: trunk)
2020-10-31
18:58
Add the -tabs command-line option to the CLI. (check-in: 7d01e84d user: drh tags: trunk)
16:33
Update the ALTER TABLE command to correctly handle UPDATE ... FROM statements within trigger programs. (check-in: 3e6af890 user: dan tags: trunk)
2020-10-27
11:58
Prettify btree.h headings. Close branch. (Closed-Leaf check-in: ee9689ad user: shearer tags: btree-code-documentation)
11:13
Typo in btree.h (and unwanted merge; this branch for cherrypicking btree.h only) (check-in: eb6e5fc1 user: shearer tags: btree-code-documentation)
11:07
Final commit in btree.h reorg. No more unknowns. (check-in: ea06f1d1 user: shearer tags: btree-code-documentation)
2020-10-26
18:14
Always create a statement journal when using the OP_ParseSchema opcode, as you never know when it might fail. See the discussion on forum post daa2c728cc. (check-in: aa512f72 user: drh tags: trunk)
16:22
Ensure that the table argument passed to Tcl_GetIndexFromObjStruct() in the sessions module test code is declared "static". (check-in: 80eba105 user: dan tags: trunk)
13:24
Prevent fts5 tokenizer unicode61 from considering '\0' to be a token characters, even if other characters of class "Cc" are. See forum thread 09609d7e22 for details. (check-in: b7b7bde9 user: dan tags: trunk)
2020-10-22
18:58
Minor tweaks to query planning weights so that when STAT4 is enabled and functioning, a full table scan is more likely to be selected if that seems like the fastest solution. Only do this when STAT4 info is available because an error has a large potential downside. (check-in: 263293f1 user: drh tags: branch-3.28)
18:50
Minor tweaks to query planning weights so that when STAT4 is enabled and functioning, a full table scan is more likely to be selected if that seems like the fastest solution. Only do this when STAT4 info is available because an error has a large potential downside. (check-in: 0e7e113d user: drh tags: trunk)
18:16
Test case updates. (Closed-Leaf check-in: 27c681c9 user: drh tags: avoid-bad-indexes)
15:47
Sometimes it makes sense to do a full table scan rather than try to use an index when most of the rows will be selected. This branch is trying to tune the query planner to make that happen more often. (check-in: 0f42099a user: drh tags: avoid-bad-indexes)
2020-10-20
14:40
Fix the sqlite3_hard_heap_limit() so that it works with sqlite3_realloc64() in addition to sqlite3_malloc64(). Improvements to OOM processing and debugging aids in the fuzzcheck utility. (check-in: 602d7369 user: drh tags: trunk)
12:37
Fix an assert() inside of debug-only code that can fail following an OOM. (check-in: 79da254f user: drh tags: trunk)
2020-10-19
20:49
Fix an incorrect table ref-count in the new recursive CTE logic that might result in a reference to freed memory following a syntax error. (check-in: 75a02888 user: drh tags: trunk)
12:35
Enhance recursive common table expressions to support two or more recursive terms. (check-in: 77e64647 user: drh tags: trunk)
01:44
New test cases for recursive CTEs with multiple recursive terms. (Leaf check-in: cd5182bd user: drh tags: cte-enhancement)
01:23
Allow multiple recursive terms in the compound SELECT of a recursive CTE. This facilitates writing a query to find find the connected components of an undirected graph. (check-in: 5481fa8c user: drh tags: cte-enhancement)
2020-10-18
18:35
Fix harmless compiler warnings. (check-in: 7f8802bb user: mistachkin tags: trunk)
2020-10-17
22:13
Fix the SQLITE_DESERIALIZE_FREEONCLOSE flag so that it works as it is documented to work. See forum post ba1dff667a (check-in: d6fac8a1 user: drh tags: trunk)
19:09
Fix an incorrect printf() in debugging logic in where.c. Problem reported by forum post 80a9c47769772207. (check-in: 883da4da user: drh tags: trunk)
2020-10-15
17:59
Minor fixes to the cksumvfs documentation in the header comment of the source file. Enhance speedtest1.c so that it can more easily do performance comparisons of cksumvfs. (check-in: ed3bb818 user: drh tags: trunk)
14:37
The windows VFS accepts query parameter "exclusive=true" to cause it to take a mandatory file lock, preventing other applications from even reading the file. See forum thread 11b5560864189b5d. (check-in: 05b573fd user: drh tags: trunk)
2020-10-14
21:31
Enhancements to TclKit batch tool for MSVC. (check-in: 2a8a4552 user: mistachkin tags: trunk)
21:30
Fix typo in a documentation comment. (check-in: 462adc7d user: mistachkin tags: trunk)
15:46
Enhanced documentation for sqlite3_vtab_nochange() to make it clear that it is an optimization and that virtual table implementations should be prepared for it to always return false. (check-in: 3e264361 user: drh tags: trunk)
2020-10-12
18:09
Fix some fts5 problems with signed integer overflow causing segfaults in -ftrapv builds. (check-in: 7e17c2f4 user: dan tags: trunk)
17:57
Improved quoting of the table name argument for the ".import" command of the CLI. See forum post 34591fefbe. (check-in: ce97b56d user: drh tags: trunk)
16:54
Add options --data-only and --nosys to the ".dump" command in the CLI. (check-in: 57123b14 user: drh tags: trunk)
15:27
Fix ALTER TABLE so that it can run even if the schema contains unknown collation sequences. (check-in: bc4bb943 user: dan tags: trunk)
14:56
Add the --nosys option to the .schema command in the CLI. (check-in: b72ee694 user: drh tags: trunk)
14:29
Fix UPDATE FROM statements on virtual tables that are declared WITHOUT ROWID. See forum post 0fee7951eb for more information. (check-in: bcb0bc6a user: dan tags: trunk)
13:24
Fix BEGIN IMMEDIATE and BEGIN EXCLUSIVE so that they work even if one or more of the database files in the connection are read-only. Test cases for this are in TH3. (check-in: 2fa08c39 user: drh tags: trunk)
2020-10-07
11:24
In the CSV extension, use SQLITE_TRANSIENT rather than SQLITE_STATIC on return values that can in fact change. (check-in: 54b54f02 user: drh tags: trunk)
2020-10-06
15:48
More additions and improvements to btree.h documentation (check-in: a49a7cde user: shearer tags: btree-code-documentation)
2020-10-05
16:41
Allow fts5 trigram tables created with detail=column or detail=none to optimize LIKE and GLOB queries. Allow case-insensitive tables to optimize GLOB as well as LIKE. (check-in: 64782463 user: dan tags: trunk)
2020-10-03
19:16
Do not apply affinities when creating entries for automatic indexes on views. Fix for [95302bdb]. (check-in: df12f097 user: dan tags: trunk)
17:06
Fix a segfault caused by running "column LIKE NULL" against an fts5 table using the trigram tokenizer. Fix for [e33ee62575fc22]. (check-in: 6e72a08d user: dan tags: trunk)
14:36
FTS5 does not handle tokens that contain embedded nul characters. Prevent the trigram tokenizer from returning such tokens. Fix for [2ba5930b2]. (check-in: b1d04874 user: dan tags: trunk)
2020-10-02
15:15
Fix some test code so that testfixture can build with SQLITE_OMIT_WAL defined. (check-in: dd009cd7 user: dan tags: trunk)
13:57
Import further corner-case fixes for the in-scan-vs-index or OP_SeekScan optimization from trunk. (check-in: c144d640 user: drh tags: branch-3.28)
13:48
Additional corner-case fixes for the in-scan-vs-index or OP_SeekScan optimization. (check-in: ad5ab24e user: drh tags: trunk)
12:49
Remove an incorrect assert() from the OP_SeekScan opcode. (check-in: c0400f8c user: drh tags: trunk)
12:42
Fix a faulty assert() statement. Add new test cases. (check-in: 80ecdb3d user: drh tags: trunk)
12:11
For the OP_SeekScan optimization, the OP_IdxGT does not necessarily come right after the OP_SeekGE. So use the P2 operand of OP_SeekScan to point to the first instruction after OP_IdxGT. Problem found by dbsqlfuzz. (check-in: ec37744c user: drh tags: branch-3.28)
11:55
For the OP_SeekScan optimization, the OP_IdxGT does not necessarily come right after the OP_SeekGE. So use the P2 operand of OP_SeekScan to point to the first instruction after OP_IdxGT. Problem found by dbsqlfuzz. (check-in: 091d7193 user: drh tags: trunk)
02:07
Disable the OP_SeekScan opcode of the in-scan-vs-index optimization when in PRAGMA reverse_unordered_selects mode, as the OP_SeekScan only works with forwards scans. Thanks to OSSFuzz for pointing out the problem to us. (check-in: 9a1cdf7e user: drh tags: branch-3.28)
02:02
Disable the OP_SeekScan opcode of the in-scan-vs-index optimization when in PRAGMA reverse_unordered_selects mode, as the OP_SeekScan only works with forwards scans. Thanks to OSSFuzz for pointing out the problem to us. (check-in: c75c3a3b user: drh tags: trunk)
2020-10-01
17:24
Add experimental "trigram" tokenizer to fts5. (check-in: c4e8ec79 user: dan tags: trunk)
17:15
Add the -trigram option to the fts5txt2db.tcl script. (Closed-Leaf check-in: a394dd26 user: dan tags: fts5-trigram)
16:10
Add tests for the trigram tokenizer. Fix minor issues. (check-in: 897ced99 user: dan tags: fts5-trigram)
15:46
Fix the OP_SeekScan opcode so that its variable names do not cause problems for the test/vdbe-compress.tcl script. (check-in: 7a78274a user: drh tags: trunk)
14:38
Remove a debugging printf() accidentally left in the previous check-in. (check-in: e9d1efa5 user: drh tags: trunk)
14:36
The IN-early-out optimization does not work for virtual tables. Do not try to use it there. Fix for ticket [2d5a3163563d559f]. Test cases in TH3. (check-in: dbec6910 user: drh tags: trunk)
2020-09-30
20:35
Add experimental unicode-aware trigram tokenizer to fts5. And support for LIKE and GLOB optimizations for fts5 tables that use said tokenizer. (check-in: 0d7810c1 user: dan tags: fts5-trigram)
18:22
Improved query optimization for multi-column indexes where the second or later columns are constrained by an IN operator and the earlier index columns limit the search to a small number of rows. Use the new OP_SeekScan opcode which does scanning of the relevant range of the index but gives up and falls back to doing a seek if the number of rows scanned grows to large, in order to guard against pathological cases where the estimated number of rows to be scanned is far too small. (check-in: f07ac3fb user: drh tags: branch-3.28)
18:06
Improved query optimization for multi-column indexes where the second or later columns are constrained by an IN operator and the earlier index columns limit the search to a small number of rows. Use the new OP_SeekScan opcode which does scanning of the relevant range of the index but gives up and falls back to doing a seek if the number of rows scanned grows to large, in order to guard against pathological cases where the estimated number of rows to be scanned is far too small. (check-in: 4a43430f user: drh tags: trunk)
18:03
For the OP_SeekScan opcode, adjust the number of steps run before giving up based on the estimated number of comparisons needed to perform a seek. (Closed-Leaf check-in: dc4172e6 user: drh tags: in-scan-vs-index)
17:32
Back out the incorrect optimization of check-in [e51ecadcbdef5ce6] as ticket [5c4e7aa793943803] reports a case where the optimization does not work. (check-in: 7395e96b user: drh tags: trunk)
15:36
In the query flattener when substituting expression Y in place of expression X, if X is marked has having come from an ON or USING clause of a LEFT JOIN, then be sure that all subexpressions of Y, not just the root node of Y, are similarly marked. Otherwise, if Y is an AND operator, it will be split up during WHERE clause analysis and the subexpressions will not get the special treatment needed by LEFT JOIN ON/USING clauses. Fix for ticket [66e4b0e271c47145]. (check-in: 69f9eb73 user: drh tags: trunk)
09:17
Better understanding of savepoint code (check-in: ce6d8d62 user: shearer tags: trunk)
00:48
Add an sqlite3FaultSim() call to btreeNext() to make it easier to simulate I/O errors in calls to sqlite3BtreeNext(), and in OP_SeekScan. (check-in: 29cca775 user: drh tags: in-scan-vs-index)
00:10
In the OP_SeekScan opcode, changes to pOp must occur after the call to VdbeBranchTaken() so that the VdbeBranchTaken() attributes the branch to the correct opcode. (check-in: 61fbe7aa user: drh tags: in-scan-vs-index)
2020-09-29
23:52
The OP_SeekScan opcode is a no-op if the cursor is not pointing to a valid row upon entry. (check-in: 4afc96b5 user: drh tags: in-scan-vs-index)
20:22
Coverage testing of the OP_SeekScan opcode. Fix a problem that comes up when OP_SeekScan reaches the end of the table. (check-in: 9e57e758 user: drh tags: in-scan-vs-index)
17:29
Improved comments on the new OP_SeekScan opcode. (check-in: 6110fdd5 user: drh tags: in-scan-vs-index)
16:05
Improved performance by manually in-lining the sqlite3VdbeIdxKeyCompare() routine for the OP_IdxGT opcode and its kin. (check-in: 2206a2c8 user: drh tags: in-scan-vs-index)
15:32
Typo fix to repair the early-out optimization. Also avoid unnecessary OP_SeekHit opcodes. (check-in: 8fd7d8df user: drh tags: in-scan-vs-index)
01:48
The OP_SeekScan opcode works, but using it requires disabling the IN-earlyout optimization because the OP_IfNoHope opcode might move the cursor. (check-in: f3c36b84 user: drh tags: in-scan-vs-index)
2020-09-28
19:51
Revisiting the IN-scan optimization to try to fix it for the corner case where the statistics deceive the query planner into using a scan when an indexed lookup would be better. This check-in changes the code generation to do the IN-scan using a new OP_SeekScan opcode. That new opcode is designed to abandon the scan and fall back to a seek if it doesn't find a match quickly enough. For this work-in-progress check-in, OP_SeekScan is still a no-op and OP_SeekGE still ends up doing all the work. (check-in: d720b698 user: drh tags: in-scan-vs-index)
15:49
Small performance improvement and size reduction by reducing the size of the WhereTerm object. (check-in: 43f7ddad user: drh tags: trunk)
13:34
Avoid the possibility of integer overflow on the --pagecache option to the CLI. See forum post 10a2892377 (check-in: d3d13df3 user: drh tags: trunk)
2020-09-25
17:17
Clarify (check-in: 14dba0f3 user: shearer tags: btree-code-documentation)
16:54
Distinguish between checkpoints (WAL-only, implementation specific) and savepoints (Btree internal implementation of COMMIT/ROLLBACK subtransactions) and SQL SAVEPOINT (identical name for SQL-level subtransactions) (check-in: ae686ab6 user: shearer tags: btree-code-documentation)
14:26
Reset to trunk's func. Still learning Fossil. (check-in: a4840cf5 user: shearer tags: btree-code-documentation)
13:56
More classification of functions. Fix incorrect comment that sqlite3BtreeCursorHasHint() is only used within asserts. (check-in: 78d8db7c user: shearer tags: btree-code-documentation)
09:42
Merge recent trunk changes into the btree-code-documentation branch (check-in: 3a576608 user: shearer tags: btree-code-documentation)
08:17
Add reminder comment that, by definition, these functions won't be called from elsewhere in SQLite. Useful to remember for beginners who may suspect unusued code. (check-in: 6f5c1fde user: shearer tags: btree-code-documentation)
2020-09-24
11:41
Added context to explain that the test coverage is about MC/DC in general, not just an SQLite-specifc test harness. (check-in: 770dbedd user: shearer tags: btree-code-documentation)
06:37
Group metadata definitions together (check-in: 5c306f42 user: shearer tags: btree-code-documentation)
2020-09-23
17:31
Figured out where/how sqlite3BtreeRowCountEst() is called (check-in: a4653715 user: shearer tags: btree-code-documentation)
2020-09-21
20:18
Fix harmless compiler warning seen with MSVC. (check-in: 4591ee03 user: mistachkin tags: trunk)
14:53
In fts5 integrity checks, do not compare the contents of the index against an external content table unless specifically requested. (check-in: 78216369 user: dan tags: trunk)
2020-09-20
13:33
Remove a new assert() that the compiler finds is always true at compile-time, to avoid a compiler warning. (check-in: 8bbaee23 user: drh tags: trunk)
12:10
Attempt to silence harmless static analyzer warnings in Lemon and in the Lemon-generated parser. (check-in: de8ce22a user: drh tags: trunk)
2020-09-17
21:11
Fix a typo in the documentation comment for sqlite3_preupdate_hook(). (check-in: 4542d194 user: dan tags: trunk)
17:01
Fix a problem in sqlite-expert causing it to ignore equality constraints on the second or subsequent columns of a multi-column PRIMARY KEY. (check-in: c666c85a user: dan tags: trunk)
15:16
Fix a problem in fts5 causing the in-memory hash table to be flushed more often than necessary. (check-in: 9a55601d user: dan tags: trunk)
15:04
Order btree.h by logical function, add comments (check-in: ab53b317 user: shearer tags: btree-code-documentation)
14:16
Fix a "jump depends on unitialized value" valgrind/asan error in fts5. (check-in: 66f94d62 user: dan tags: trunk)
11:56
Earlier detection of corruption in the rtreecheck() SQL function to prevent a (harmless) read of an uninitialized value. (check-in: e2074b24 user: drh tags: trunk)
11:32
Prevent use-after-free of the u.vtab.idxStr string following an OOM while generating the OP_VFilter opcode. (check-in: 751fe4ed user: drh tags: trunk)
00:46
DISTINCT may not be ignored inside a UNION ALL common table expression. Fix for ticket [c51489c3b8f919c5] (check-in: 7d2b590d user: drh tags: trunk)
2020-09-16
19:48
Fix a pair of assert()s in "PRAGMA foreign_key_check" that might have given a false-positive following an OOM. (check-in: 9ea3039b user: drh tags: trunk)
16:55
Fix harmless compiler warnings in Lemon. (check-in: 6c94ba4b user: drh tags: trunk)
16:55
Merge bugfixes made since version 3.33.0 into this branch. (Leaf check-in: 2e269dcd user: dan tags: reuse-schema-3.33)
16:49
Fix a buffer overread found by OSSFuzz that could occur if a WITHOUT ROWID table with many columns was NATURAL JOINed against itself. (Leaf check-in: 807643c5 user: dan tags: branch-3.33)
16:48
Do not invoke usleep() for more than 999999 microseconds. (check-in: 1f0055d0 user: dan tags: branch-3.33)
16:45
Fix a tsan error that could occur when using shared-cache mode. (check-in: 61981b97 user: dan tags: branch-3.33)
16:44
Fix another (harmless in practice) tsan error in shared-cache mode. (check-in: 553e20c3 user: dan tags: branch-3.33)
16:41
Apply the same fix for ticket [9eda2697f5cc1aba] to text-to-integer conversions that was done for floating point conversions by check-in [1c76f1d8ec0937a2]. (check-in: 1b4801de user: dan tags: branch-3.33)
16:40
Correctly handle expressions like "x IS (not) true/false" within the rhs of IN() expressions. Fix for [f3ff1472]. (check-in: 42361033 user: dan tags: branch-3.33)
16:39
Fix a crash that could occur in SQLITE_MAX_EXPR_DEPTH=0 builds when processing SQL containing syntax errors. (check-in: 6438db45 user: dan tags: branch-3.33)
16:38
Do not skip over TK_IF_NULL_ROW operators when bypassing TK_COLLATE operators. Fix to check-in [ac31edd3eeafcef4] which was itself a fix for ticket [45f4bf4eb4ffd788]. (check-in: 85041611 user: dan tags: branch-3.33)
2020-09-15
20:48
Fix a buffer overread found by OSSFuzz that could occur if a WITHOUT ROWID table with many columns was NATURAL JOINed against itself. (check-in: 3d35fa0b user: dan tags: trunk)
12:29
Do not invoke usleep() for more than 999999 microseconds. (check-in: 1f5ed852 user: drh tags: trunk)
2020-09-11
15:01
Catch fts5 index corruption caused by issuing 'delete' commands with incorrect data earlier in some cases. Also fix a couple of test script problems. (check-in: b79f19ed user: dan tags: trunk)
2020-09-10
15:09
Try again to fix the typo in the sqlite3_txn_state() documentation. (check-in: 6d1ab040 user: drh tags: trunk)
14:54
Fix typo in the documentation for the new sqlite3_txn_state() interface. (check-in: 23f7d017 user: drh tags: trunk)
12:41
If an amalgamation is created using SQLITE_ENABLE_UPDATE_DELETE_LIMIT, ensure that it can still be compiled without that option by setting the SQLITE_UDL_CAPABLE_PARSER flag in the preamble. (check-in: 5b905d7d user: drh tags: trunk)
2020-09-07
11:23
Merge latest trunk changes into this branch. (check-in: ae1a778d user: dan tags: reuse-schema)
11:14
Fix another (harmless in practice) tsan error in shared-cache mode. (check-in: 5a74fa3f user: dan tags: trunk)
2020-09-06
17:40
Remove an artifical limitation on the length of columns in the "box" output mode of the command-line shell. (check-in: 783fa887 user: drh tags: trunk)
2020-09-05
06:21
Fix a bug in Lemon that might cause it to crash if there is a multi-terminal token with a space following the "|" separator. This does not affect SQLite. (check-in: 430c5d1d user: drh tags: trunk)
2020-09-04
19:12
Merge tsan error fix from trunk into this branch. (check-in: 93cc60b3 user: dan tags: reuse-schema)
19:10
Fix a tsan error that could occur when using shared-cache mode. (check-in: de80bc87 user: dan tags: trunk)
17:40
Update this branch with latest changes from trunk. (check-in: ca8deb44 user: dan tags: reuse-schema)
17:30
Ensure that the busy-handler count is reset at the end of each sqlite3_file_control() and sqlite3_prepare() (and _v2() and _v3()). (check-in: 5dd05940 user: dan tags: trunk)
2020-09-02
16:14
Add tests for virtual table shmlock. (Leaf check-in: 1c6a8442 user: dan tags: shmlock-vtab)
15:26
Fix reporting on locks from external processes. Various other fixes. (check-in: 459de23e user: dan tags: shmlock-vtab)
2020-09-01
20:56
Add file-controls and a vtab frontend for querying the unix VFS for the currently held shm-locks. Still some issues. (check-in: ef10e1b3 user: dan tags: shmlock-vtab)
19:02
Fix harmless compiler warning. (check-in: a711e8cd user: mistachkin tags: trunk)
12:26
In the Lemon output, add a prefix comment that explains that the output file is automatically generated and shows the name of the source file. (check-in: d34caf3b user: drh tags: trunk)
11:20
Lemon updates: (1) include the #defines for all tokens in the generated C file, so that the C-file can be stand-alone. (2) If the grammar begins with a %include {...} directive on line one, make that directive the header for the generated C file. (3) Enhance the lemon.html documentation. (check-in: 84d54eb3 user: drh tags: trunk)
02:02
Improvements to the IN-early-out optimization so that it works more efficiently when there are two or more indexed IN clauses on a single table. (check-in: 49b7631e user: drh tags: branch-3.28)
01:52
Improvements to the IN-early-out optimization so that it works more efficiently when there are two or more indexed IN clauses on a single table. (check-in: 35505c68 user: drh tags: trunk)
00:26
Fix a harmless compiler warning. (check-in: 3ca0b7d5 user: drh tags: trunk)
00:09
Minor changes - fix a compiler warning and add an assert(). (Closed-Leaf check-in: 07222dce user: drh tags: in-early-out-fail)
2020-08-31
20:37
Update this branch with the "PRAGMA noop_update" fix from begin-concurrent-report. (Leaf check-in: 1d984722 user: dan tags: begin-concurrent-unixshmlock-opt)
20:29
Update this branch with the "PRAGMA noop_update" fix from begin-concurrent-pnu. (check-in: 3c0423f0 user: dan tags: begin-concurrent-report)
20:27
Restore the "PRAGMA noop_update" feature that was broken by [2b3241cf67c8eea7]. (check-in: 5fa4cbcb user: dan tags: begin-concurrent-pnu)
19:58
Merge the SEEK_COUNT instrumentation enhancement from trunk. (check-in: 689ede95 user: drh tags: in-early-out-fail)
19:19
An attempt to improve the performance of the IN-early-out optimization (see check-in [09fffbdf9f2f6ce3]) by avoiding unnecessary calls to the b-tree search algorithm in OP_IfNoHope when the index key is at hand and the same answer can be obtained by doing a quick key comparison. Update: Experiment did not work out. (Closed-Leaf check-in: 8301da31 user: drh tags: branch-3.28-in-early-out-fail)
18:49
New test-control that returns the number of calls to sqlite3BtreeMovetoUnpacked() on the main database and then resets the counter. This only works for SQLITE_DEBUG builds. (check-in: dca5b919 user: drh tags: trunk)
16:31
An attempt to improve the performance of the IN-early-out optimization (see check-in [09fffbdf9f2f6ce3]) by avoiding unnecessary calls to the b-tree search algorithm in OP_IfNoHope when the index key is at hand and the same answer can be obtained by doing a quick key comparison. Update 2020-08-31: This experiment did not work out. A better approach is now on trunk. (check-in: e9d983c6 user: drh tags: in-early-out-fail)
12:29
Fix the documentation for the OP_IdxGT family of opcodes to show that the P5 operand is not used. (check-in: 62f7d2a6 user: drh tags: trunk)
2020-08-29
19:00
Fix a sanitizer warning in zipfile.c. (check-in: ded1a75b user: dan tags: trunk)
15:36
Improve performance of wal-mode locking on unix in cases where there are hundreds of connections to a single database within the same process. (check-in: 30214727 user: dan tags: begin-concurrent-unixshmlock-opt)
15:15
Improve performance of wal-mode locking on unix in cases where there are hundreds of connections to a single database within the same process. (check-in: a1c19eea user: dan tags: trunk)
2020-08-28
20:01
Fix handling of an xShmLock(SHARED, UNLOCK) call when the caller does not hold any lock on the specified slot, but another connection in the same process holds an EXCLUSIVE. (Closed-Leaf check-in: 3eb36502 user: dan tags: unixshmlock-opt)
19:27
Modify the unixShmLock() function to avoid iterating through the (possibly large) set of connections to the same database file. (check-in: e0faddf0 user: dan tags: unixshmlock-opt)
18:47
Add the miscellaneous 'series' extension to the shell. (check-in: fc0856dc user: mistachkin tags: trunk)
13:10
Update Lemon documentation. Patches from sgbeal. (check-in: f5dc8344 user: drh tags: trunk)
12:58
Fix a couple of unreachable branches. (check-in: f2d26f2b user: drh tags: trunk)
11:19
Add fts5 test to confirm that for a table with columns a, b, c and d, "{a b}" and "-{c d}" are handled similarly. (check-in: 1a049209 user: dan tags: trunk)
2020-08-27
20:55
Remove a (harmless) redundant variable from the CLI implementation. (check-in: 3f7bbb84 user: drh tags: trunk)
18:36
Include the original text of the CHECK constraint in the error message for anonymous CHECK constraints. (check-in: 5ce34a95 user: drh tags: trunk)
16:28
Apply the same fix for ticket [9eda2697f5cc1aba] to text-to-integer conversions that was done for floating point conversions by check-in [1c76f1d8ec0937a2]. (check-in: aafb7a21 user: drh tags: trunk)
14:53
Do not attempt to run test script analyze3.test as part of the "prepare" permutation. (check-in: f7f13cb1 user: dan tags: trunk)
2020-08-26
19:07
Enhance the ".databases" command in the CLI so that it shows the result of sqlite3_db_readonly() and sqlite3_txn_state() for each database file. (check-in: 0ffd16d2 user: drh tags: trunk)
10:50
If the argument to the ".read" command in the CLI begins with "|" then run the remainder of the argument as a command and read input from the output of that command. (check-in: 6c716f4b user: drh tags: trunk)
2020-08-25
19:09
Add support for the sqlite3_txn_state() interface. (check-in: ad195e3d user: drh tags: trunk)
2020-08-24
23:44
Reduce the N in the logN term for the sorting cost associated with computing DISTINCT by B-Tree by half, under the assumption that the DISTINCT will eliminate about half the rows of output. This is really a wild guess. But we do not have any better way of estimating what the row-count reduction due to DISTINCT will actually be. (check-in: 8787417e user: drh tags: trunk)
10:52
Correctly handle expressions like "x IS (not) true/false" within the rhs of IN() expressions. Fix for [f3ff1472]. (check-in: 493a2594 user: dan tags: trunk)
2020-08-20
16:25
Fix a crash that could occur in SQLITE_MAX_EXPR_DEPTH=0 builds when processing SQL containing syntax errors. (check-in: 5f58dd3a user: dan tags: trunk)
11:03
Avoid a buffer overrun in test code that could occur if certain test functions were passed a hex-string containing an odd number of digits. (check-in: 3c5e63c2 user: dan tags: trunk)
2020-08-19
23:51
Try to make SQLite easier to compiler for Mac Catalyst. See forum post 803387a1c5. (check-in: e1595a20 user: drh tags: trunk)
23:32
Do not skip over TK_IF_NULL_ROW operators when bypassing TK_COLLATE operators. Fix to check-in [ac31edd3eeafcef4] which was itself a fix for ticket [45f4bf4eb4ffd788]. (check-in: 871f2ddc user: drh tags: trunk)
15:24
Update releasetest_data.tcl so that the "Fast-One" configuration runs bigmmap.test as part of release testing. (check-in: a0aa35aa user: dan tags: trunk)
15:21
Fix a problem in test file bigmmap.test. (check-in: d8e47382 user: dan tags: trunk)
2020-08-17
21:03
When doing an UPDATE or DELETE using a multi-column index where only a few of the earlier columns of the index are useful for the index lookup, postpone doing the main table seek until after all WHERE clause constraints have been evaluated, in case those constraints can be covered by unused later terms of the index, thus avoiding unnecessary main table seeks. (check-in: 0ecda433 user: dan tags: branch-3.28)
09:11
Fix the -quote option on the CLI to set the correct column separator. (check-in: c778f829 user: drh tags: trunk)
2020-08-16
00:30
Optimization to sqlite3BeginWriteOperation(). (check-in: 2173d4c6 user: drh tags: trunk)
2020-08-15
23:48
Optimization of the sqlite3SrcListDelete() routine. (check-in: 1b4acd1a user: drh tags: trunk)
22:23
Remove more unnecessary sqlite3GetVdbe() calls, replacing them with assert()s. (check-in: b7dc9321 user: drh tags: trunk)
21:55
Avoid unnecessary calls to the sqlite3GetVdbe() routine. Add assert() statements to prove each call is unnecessary. (check-in: 86d3790c user: drh tags: trunk)
19:58
Omit the unnecessary not-NULL check on the upper bound of a forward index range scan. The subsequent OP_IdxGT will always catch the NULL. Similarly, omit the not-NULL check on the lower bound of a reverse index range scan, as the SeekLE opcode will disallow the NULL. (check-in: e51ecadc user: drh tags: trunk)
2020-08-14
21:51
When doing an UPDATE or DELETE using a multi-column index where only a few of the earlier columns of the index are useful for the index lookup, postpone doing the main table seek until after all WHERE clause constraints have been evaluated, in case those constraints can be covered by unused later terms of the index, thus avoiding unnecessary main table seeks. (check-in: 7fee0b10 user: drh tags: trunk)
21:37
Update the version number to 3.34.0 for the next development cycle. (check-in: 70f34f3d user: drh tags: trunk)
21:32
Optimizations to the logic that converts main table accesses into equivalent index accesses. Code is now slightly smaller and faster than trunk. (Closed-Leaf check-in: 611b6404 user: drh tags: delete-bytecode-optimization)
20:04
For UPDATE and DELETE, use OP_DeferredSeek always. If the seek must later be resolved, add the OP_FinishSeek opcode after all WHERE clause terms have been processed. This obviates the need for the WHERE_SEEK_TABLE and WHERE_SEEK_UNIQ_TABLE flags to sqlite3WhereBegin() and the ensuing complication, and it allows the covering index optimization to be used further into WHERE clause processing. (check-in: a495f60d user: drh tags: delete-bytecode-optimization)
17:39
Experimental change to try to get some DELETE operations to access values using the index rather than the main table, so as to avoid unnecessary main table seeks. (check-in: 2f7cb6ab user: drh tags: delete-bytecode-optimization)
16:14
Fix an inconsequential memory leak in sqldiff. Update the "Sanitize" case in wapptest.tcl to use -fsanitize=address,undefined, and to run more tests. (check-in: 613fb5c2 user: dan tags: trunk)
13:55
Merge the 3.33.0 release into the reuse-schema branch. (check-in: e456d437 user: drh tags: reuse-schema)
13:23
Version 3.33.0 (check-in: fca8dc8b user: drh tags: trunk, release, version-3.33.0)
2020-08-13
17:27
Fix "make test" handling of environment variable QUICKTEST_OMIT so that it can be used to exclude test files in other than the main test directory. (check-in: b0509760 user: dan tags: trunk)
2020-08-12
16:19
Improvement on the previous fix. (check-in: f6cffa2d user: drh tags: trunk)
15:39
Fix an assertion() fault in ALTER TABLE found by OSSFuzz. Test case in TH3. (check-in: 41de742c user: drh tags: trunk)
2020-08-11
21:53
Fix harmless USAN warnings from gcc9. (check-in: 72c4c69f user: drh tags: trunk)
18:17
New test cases for the use of the ieee754 and decimal extensions in the CLI. (check-in: bc1590f3 user: drh tags: trunk)
18:00
Modify a test for corruption within the wal checkpoint code to account for the pending-byte page. And for the fact that test configurations might move the pending-byte page. (check-in: 7dfb74c3 user: dan tags: trunk)
17:20
Minor comment fixes. No changes to code. (check-in: 533aeb90 user: drh tags: trunk)
16:46
Remove an unused #define from sqliteInt.h. (check-in: d5b254f9 user: drh tags: trunk)
14:55
Merge all changes since the 3.32.0 release into the reuse-schema branch. (check-in: b1a77b7e user: drh tags: reuse-schema)
14:06
Update this branch with latest from begin-concurrent-pnu. (check-in: 3ee73880 user: dan tags: begin-concurrent-report)
14:01
Do not run tests in concreport.test for non SQLITE_ENABLE_PREUPDATE_HOOK builds. (check-in: e39e7a6f user: dan tags: begin-concurrent-report)
13:22
Merge all the latest changes into the begin-concurrent-pnu-wal2 branch. (check-in: ebefcb86 user: drh tags: begin-concurrent-pnu-wal2)
11:34
Merge latest trunk changes into this branch. (check-in: 91262e66 user: dan tags: wal2)
2020-08-10
21:30
Merge recent trunk fixes into the begin-concurrent-pnu branch. (check-in: 2ae78c99 user: drh tags: begin-concurrent-pnu)
21:16
Merge recent trunk enhancements into begin-concurrent. (check-in: ed4c742c user: drh tags: begin-concurrent)
21:01
Simplify #ifdefs associated with Parse.eParseMode. Fix an #ifdef error associated with SQLITE_OMIT_AUTOVACUUM. (check-in: 5bbd4bdd user: drh tags: trunk)
19:35
Fix a problem causing test failures in corruptL.test for some permutations. (check-in: 680bdc65 user: dan tags: trunk)
19:30
Fix a problem building fts3 separately from the amalgamation. (check-in: 2a167cfb user: dan tags: trunk)
14:34
Fix a shell tool build error caused by some combinations of options. (check-in: 33cd5341 user: dan tags: trunk)
14:18
Fix harmless compiler warnings that surface in newer versions of GCC. (check-in: 9d670a31 user: drh tags: trunk)
11:21
Fix another test script problem in walvfs.test. (check-in: 1b89d393 user: dan tags: trunk)
10:43
Fix minor test script problems. (check-in: 5d54cd44 user: dan tags: trunk)
2020-08-09
17:58
Fix a harmless compiler warning. (check-in: 6f91769f user: drh tags: trunk)
2020-08-08
20:15
Fix the check-in at [41474548ef3f7454] so that it computes the pointer in time for error checking at the end of the routine in the case of a non-OOM error. (check-in: 13d2fed7 user: drh tags: trunk)
20:11
Fix test script busy2.test so that it works with the inmemory-journal permutation. (check-in: b412d1d1 user: dan tags: trunk)
20:03
Changes to busy2.test, corruptL.test and fkey5.test so that new test cases pass with all test permutations. (check-in: d62d1711 user: dan tags: trunk)
19:52
Fix a test script problem causing an error for SQLITE_ENABLE_OVERSIZE_CELL_CHECK builds in corruptL.test. (check-in: a85520e0 user: dan tags: trunk)
17:55
Move a pointer computation until after OOM checks to avoid a nuisance USAN warning. (check-in: 41474548 user: drh tags: trunk)
17:02
Change the name of sqlite3SelectTrace to sqlite3_unsupported_selecttrace. (check-in: 5ecd03a2 user: dan tags: trunk)
15:40
Update requirement marks due to wording improvements in the documentation. (check-in: bf875a1c user: drh tags: trunk)
00:44
Reorder declarations in the decimal extension for C89. (check-in: eface2da user: drh tags: trunk)
2020-08-07
19:52
Do the oversize-WAL corruption test before the size hint is issued. (check-in: fdc5fb90 user: drh tags: trunk)
18:52
Fix a file-descriptor leak in test script corruptL.test. (check-in: ec2c340c user: dan tags: trunk)
16:28
Return an SQLITE_CORRUPT error if the final expected size of the database when checkpointing is not reasonable - where reasonable is defined (basically) as the sum of the sizes of the database and wal files. (check-in: e2799563 user: dan tags: trunk)
14:47
Add the --checkpoint option to speedtest1. (check-in: 4cffa9bb user: drh tags: trunk)
14:22
Fix compilation issues with MSVC. (check-in: c5a7e6d2 user: drh tags: trunk)
2020-08-06
16:45
Fix the columnar output modes in the CLI so that they work with parameters. See https://sqlite.org/forum/forumpost/17ba6aac24 for details of the problem fixed. (check-in: d573aa9b user: drh tags: trunk)
2020-08-04
16:11
Fix compilation issues with MSVC. (Closed-Leaf check-in: af07d845 user: mistachkin tags: msvcWarn)
2020-07-31
23:34
Back out a NEVER() that turns out to be reachable. (check-in: 8cf342d4 user: drh tags: trunk)
20:56
Improved non-locking PRNG. (check-in: eb7a9c04 user: drh tags: begin-concurrent)
17:08
Merge latest wal2 changes into this branch. (check-in: ebd39665 user: dan tags: begin-concurrent-pnu-wal2)
16:01
Merge latest trunk changes into this branch. (check-in: 0c0d0a77 user: dan tags: wal2)
02:07
Remove an ALWAYS() that turns out to be reachable. (check-in: 12bb75d9 user: drh tags: trunk)
2020-07-30
23:47
Test for schema corruption is reachable after all. (check-in: 2032236c user: drh tags: trunk)
22:33
Provide an alternative "guaranteed-safe" method for overwriting the WAL index on recovery, in case some platform is found for which memcpy() cannot do this safely. (check-in: 168cccba user: drh tags: trunk)
19:56
Merge begin-concurrent-pnu changes into this branch. (check-in: fd01e788 user: dan tags: begin-concurrent-report)
19:37
Merge latest trunk change into this branch. (check-in: 2b3241cf user: dan tags: begin-concurrent-pnu)
19:19
Merge latest trunk changes into this branch. (check-in: e8a66515 user: dan tags: begin-concurrent)
17:37
Fix compiler warnings in MSVC. (check-in: 96e3dba2 user: drh tags: trunk)
17:29
Allow for page numbers as large as 4294967294 (0xfffffffe) which means database files as large as 281 TB. (check-in: 166e82dd user: drh tags: trunk)
17:14
Fix unreachable branches. (Closed-Leaf check-in: 905752da user: drh tags: larger-databases)
2020-07-29
16:18
Dozens and dozens of typo fixes in comments. This change adds no value to the end product and is disruptive, so it is questionable whether or not it will ever land on trunk. (Leaf check-in: a80ae2c9 user: drh tags: typos)
12:23
Fix signed/unsigned compiler warnings. (check-in: 1d69eee8 user: drh tags: larger-databases)
2020-07-28
20:32
Earlier detection of out-of-range page numbers in the btree layer. (check-in: 805bb67a user: drh tags: larger-databases)
17:51
Merge enhancements from trunk. (check-in: 969c25bb user: drh tags: larger-databases)
17:29
If a writer crashes in WAL mode and leave the SHM file in an inconsistent state, subsequent transactions are now able to recover the SHM file even if there are active read transactions. (check-in: ee8a1080 user: drh tags: trunk)
17:17
Add an sqlite3FaultSim() to make an OOM case more accessible and remove the ALWAYS() on the conditional that is false when the OOM actually occurs. (Closed-Leaf check-in: 2a251af8 user: drh tags: unlocked-recovery)
2020-07-27
20:16
On recovery, always overwrite the old with the new, even if they are the same. Add ALWAYS() macros on branches currently thought to be unreachable, pending additional testing. (check-in: 7052cf1d user: drh tags: unlocked-recovery)
15:05
Fix a couple of test scripts to match the new wal recovery behaviour on this branch. (check-in: 3af61e83 user: dan tags: unlocked-recovery)
15:01
Improved error reporting if walLockExclusive() fails. (check-in: cf962d21 user: drh tags: unlocked-recovery)
2020-07-25
20:16
When trying to read the index header, accept either of the two headers that have a valid checksum after 15 attempts to get exactly matching headers fail. (Closed-Leaf check-in: 3549faef user: drh tags: more-aggressive-wal-recovery)
20:16
Allow a wal mode recovery to proceed even if there are readers. (check-in: 74374aeb user: dan tags: unlocked-recovery)
2020-07-24
13:49
Merge recent changes from trunk. (check-in: 22e8e690 user: drh tags: larger-databases)
11:01
Remove a surplus space from a comment (check-in: 73fecc68 user: drh tags: trunk)
09:17
Fix other potentiall pointer aliasing problems associated with subclassing of the sqlite3_file object for various VFS implementations. (check-in: 270ac1a0 user: drh tags: trunk)
09:14
Fix pointer aliasing problem in the in-memory journal code. Ref: forum post d44eb2fc44 (check-in: 892e9191 user: drh tags: trunk)
2020-07-23
20:37
Turns out this is an aliasing bug in SQLite, not a GCC bug. Was: Work-around for what appears to be another GCC bug - this one for GCC 8.3.0 on ARM. See the SQLite forum post for discussion. (Closed-Leaf check-in: 40c44d38 user: drh tags: mistake)
18:03
Add the OMIT_ZLIB compile-time option to sessionfuzz.c. (Originally checked into the wrong branch.) (check-in: 6019bf8a user: drh tags: trunk)
18:01
Add the OMIT_ZLIB compile-time option to sessionfuzz.c. (Closed-Leaf check-in: 0785e314 user: drh tags: wrong-branch)
15:23
Fix a typo in an error message. (check-in: 849b03d8 user: drh tags: larger-databases)
14:27
Merge fixes from trunk. (check-in: dd39418e user: drh tags: larger-databases)
14:12
An ORDER BY clause can slip into an SRT_Upfrom query via the query flattener, even without the SQLITE_ENABLE_UPDATE_DELETE_LIMIT compile-time option. So always enable the code to deal with that case. (check-in: 6a3111cd user: drh tags: trunk)
13:45
Fix another case where a corrupt record could cause an assert() to fail in fts3. (check-in: 28515bbb user: dan tags: trunk)
09:14
Merge support for partial integrity checks. (check-in: b5443b47 user: drh tags: larger-databases)
00:45
Add the ability to do a PRAGMA integrity_check (or quick_check) on a single table by specifying the table name as the argument. (check-in: 65dd3214 user: drh tags: trunk)
2020-07-22
21:11
Detect out-of-bounds rootpage values in the schema. (check-in: e4a92688 user: drh tags: larger-databases)
21:05
Disable rootpage bounds checking when the SQLITE_TESTCTRL_EXTRA_SCHEMA_CHECKS setting is off, to facilitate reaching obscure error states during testing. (Closed-Leaf check-in: d7dd4fc4 user: drh tags: rootpage-bounds-check)
20:12
Improvements to rootpage bounds checking during schema parse. (check-in: 75599a97 user: drh tags: rootpage-bounds-check)
18:03
When parsing the schema, detect out-of-bounds rootpage values and throw an error. (check-in: 6c3a2727 user: drh tags: rootpage-bounds-check)
17:12
All TCL tests now passing. (check-in: 4c5f3c6c user: drh tags: larger-databases)
13:56
Most test cases now passing. (check-in: 92e2ab38 user: drh tags: larger-databases)
13:38
Continuing work toward supporting unsigned 32-bit page numbers. (check-in: 9ce1710a user: drh tags: larger-databases)
11:42
Enhance showdb to be 32-bit clean. (check-in: a8200327 user: drh tags: larger-databases)
10:36
Merge fixes from trunk. (check-in: d2aac001 user: drh tags: larger-databases)
2020-07-21
18:36
Work-around for GCC bug 96270. (check-in: 9679c0c6 user: drh tags: trunk)
18:25
Add the sqlite3Int64ToText() routine and use it to convert integers to text, as it is much faster than the generic text formatter. (check-in: 14eed318 user: drh tags: trunk)
2020-07-20
23:33
Fix the ".read" command so that it gives an error when its argument is a directory. See forum message 4c53c434ca. (check-in: 6d258c3c user: drh tags: trunk)
18:07
Fix a corner-case error in the new UPDATE FROM logic helpfully discovered by OSSFuzz. (check-in: 5cc20093 user: drh tags: trunk)
14:54
Add the "enlargedb" utility program used to construct very large database files for testing. (check-in: 66858d87 user: drh tags: larger-databases)
13:11
Faster column name lookup in the columnIndex() routine using hashing. (check-in: de2a9081 user: drh tags: trunk)
12:47
Initial changes to allow database up to 281TB in size. (check-in: 9cb7da9b user: drh tags: larger-databases)
2020-07-18
18:59
Fix test case result on a DELETE with an INDEXED BY clause due to improvements in the query planner at [d901837fea1ed54d] (check-in: 020dbfa2 user: drh tags: trunk)
18:44
More harmless compiler warning fixes. (check-in: 4c0d208c user: drh tags: trunk)
18:03
Fix a harmless compiler warning. (check-in: 5a0b0c6e user: drh tags: trunk)
15:52
Add UPDATE FROM compatible with postgresql. (check-in: 88baf1eb user: drh tags: trunk)
2020-07-17
22:20
Add ALWAYS() around a conditional that is always true. (Closed-Leaf check-in: 270e17bb user: drh tags: update-from)
18:07
Use #ifdef to omit code that is only reachable when the SQLITE_ENABLE_UPDATE_DELETE_LIMIT compile-time option is used. (check-in: 587ded60 user: drh tags: update-from)
16:31
Make it an error to repeat the target object/alias of an UPDATE statement in its FROM clause. (check-in: d90a37e9 user: dan tags: update-from)
15:34
Add a couple of "#ifdef SQLITE_ENABLE_UPDATE_DELETE_LIMIT" blocks missing from new code on this branch. (check-in: cc471df0 user: dan tags: update-from)
11:07
Bring this branch up to date with begin-concurrent-pnu. (check-in: 12a909fb user: dan tags: begin-concurrent-report)
2020-07-16
20:57
Allow BEGIN CONCURRENT transactions to contain schema modifications. However, this causes them to conflict with all other transactions. (check-in: 2160ede1 user: dan tags: begin-concurrent-pnu-wal2)
20:39
Allow BEGIN CONCURRENT transactions to contain schema modifications. However, this causes them to conflict with all other transactions. (check-in: e9393a18 user: dan tags: begin-concurrent-pnu)
20:24
Allow BEGIN CONCURRENT transactions to contain schema modifications. However, this causes them to conflict with all other transactions. (check-in: 9a4a0230 user: dan tags: begin-concurrent)
18:55
Relax pointless restrictions on allowing tables in the FROM clause from crossing over LEFT JOINs, as long as the table being moved is not the right table of the LEFT JOIN. (check-in: c1ea0649 user: drh tags: trunk)
14:52
Modifications to test code so that the sqlite3MemdebugHastype() assert() statements are enabled for Tcl tests. (check-in: e3c423cb user: dan tags: update-from)
14:19
Small performance improvement and size reduction in sqlite3DbStrNDup(). (check-in: 35cd8706 user: drh tags: trunk)
10:48
Add OOM test for UPDATE...FROM statements inside triggers. (check-in: 917a479b user: dan tags: update-from)
02:36
Fix a double-free of the FROM clause of an UPDATE inside of triggers. (check-in: 706c8da2 user: drh tags: update-from)
00:45
Separate VdbeCoverage() macro for different jumps. (check-in: da593e57 user: drh tags: update-from)
2020-07-15
21:53
Fix a problem in UPDATE FROM in which it tries to free using sqlite3_free() instead of sqlite3DbFree(). (check-in: 8ca87526 user: drh tags: update-from)
20:01
This was originally a merge to trunk. But after further testing, maybe it is better to run it a little longer on a branch. (check-in: 7d7d5ecb user: dan tags: update-from)
19:38
Add tests for UPDATE...FROM and foreign keys. (check-in: 6c3668f9 user: dan tags: update-from)
18:30
Fix problems that could occur if a table with the same name as the table being updated appeared in the FROM clause of an UPDATE statement. (check-in: 13224cbd user: dan tags: update-from)
15:32
Fix a problem in SQLITE_ENABLE_HIDDEN_COLUMN builds occuring when an UPDATE...FROM fired an INSTEAD OF trigger. (check-in: 5176cb7a user: dan tags: update-from)
11:00
Update this branch with changes from trunk. (check-in: 53b8b507 user: dan tags: update-from)
02:15
New test cases for decimal and ieee754. (check-in: 73d62f82 user: drh tags: trunk)
2020-07-14
23:58
Improvements to the min()/max() optimization so that it is able to use indexes where terms are constrained by IN operators. (check-in: b8ba2f17 user: drh tags: trunk)
22:20
Now appears to work. All legacy tests pass. Need to add new tests, however. (Closed-Leaf check-in: 81e64509 user: drh tags: minmax-opt-exp)
19:51
Support UPDATE...FROM statements in trigger programs. (check-in: 4f6d8d0e user: dan tags: update-from)
15:30
Fix an obsolete header comment on the sqlite3WhereIsOrdered() routine. (check-in: 5041f6a1 user: drh tags: trunk)
13:02
Merge fixes from trunk. (check-in: 2af372f5 user: drh tags: minmax-opt-exp)
12:40
Early detection of freelist size corruption in incremental vacuum. (check-in: f25a56c2 user: drh tags: trunk)
02:03
Fix a crash. Not all tests pass, but tests do at least run to completion now. (check-in: b5d38e28 user: drh tags: minmax-opt-exp)
01:51
Fix an obsolete assert(). (check-in: 221e0210 user: drh tags: minmax-opt-exp)
01:03
Merge latest changes from trunk. This branch still does not work. (check-in: 61443872 user: drh tags: minmax-opt-exp)
2020-07-13
20:43
Add test for LEFT JOIN in UPDATE...FROM statement. (check-in: 4f3dff04 user: dan tags: update-from)
20:10
Add test cases and fixes for UPDATE...FROM statements that modify primary key columns. (check-in: 47c87af3 user: dan tags: update-from)
18:04
Merge latest trunk changes with this branch. (check-in: 5ee3c27e user: dan tags: update-from)
15:35
Add back the ALWAYS() macro that was removed by [f7a74f89dbd58b47] as the condition is no longer reachable due to the previous check-in. (check-in: 9cb03bea user: drh tags: trunk)
15:20
Fix a problem causing queries containing window functions to ignore collation sequences under some circumstances. (check-in: e6c2192e user: dan tags: trunk)
11:06
Fix an integer overflow bug in fts5 triggered by a corrupt record. (check-in: 49da8bdc user: dan tags: trunk)
2020-07-11
16:45
Add second test case for the improvement in [30735432]. (check-in: 1bd18ca3 user: dan tags: trunk)
16:42
Improved detection of a corrupt database schema. Fix for a problem discovered by dbsqlfuzz. (check-in: 30735432 user: drh tags: trunk)
2020-07-10
21:43
Remove unnecessary code from the window functions implementation. (check-in: 1e87da9c user: drh tags: trunk)
19:09
An attempt to get the Min/Max optimization working with IN constraints. Not currently working. (check-in: 4a64c16f user: drh tags: minmax-opt-exp)
11:12
Fix a broken assert() in fts3 that could fail when handling corrupt records. (check-in: 51247323 user: dan tags: trunk)
2020-07-09
21:29
Fix handling of another corrupt database case in fts3. (check-in: ccff8cb8 user: dan tags: trunk)
14:05
Fix a comment typo. No changes to code. (check-in: 610ee8d5 user: drh tags: trunk)
2020-07-07
19:24
Remove bashism from configure script. (check-in: 138beebb user: dan tags: trunk)
2020-07-06
12:13
Increase the resolution of the vdbe opcode counters to 64 bits, as apparently some users run single prepared statements that go for longer than 4 billion instructions. See forum post "Possible freeze in the progress loop" (check-in: 612eb590 user: drh tags: trunk)
2020-07-04
20:29
Fix the table_info pragma so that it always checks the schema version and reprepares, even if it is a no-op. (check-in: 6da77973 user: drh tags: trunk)
2020-07-03
21:24
Fix the line-number of error messages coming out of the ".import" command when the --skip option is used. (check-in: e0a8b11d user: drh tags: trunk)
21:18
Fix a compiler warning about an unused procedure in the parser. (check-in: b27bb4fe user: drh tags: trunk)
18:07
Update the lemon documentation to match recent enhancements. (check-in: ca7630a5 user: drh tags: trunk)
17:24
If the amalgamation is built using OPT_FEATURE_FLAGS = -DSQLITE_UDL_CAPABLE_PARSER then it can be compiled with or without the -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT option and it works either way. (check-in: 1f96a29d user: drh tags: trunk)
15:41
In lemon, add "%if" and "%else" and allow boolean expressions as the argument to "%if", "%ifdef", and "%ifndef". (check-in: 951d22b7 user: drh tags: trunk)
12:32
Fix the pragma_foreign_key_check virtual table so that it accepts arguments. (check-in: 07f849de user: drh tags: trunk)
12:15
Fix a problem with "PRAGMA foreign_key_check" where if a table in one schema appears to have foreign key constraints against another table in a different schema, the pragma will try to check the constraints even though they do not apply because they are in different schemas. (check-in: 81bc4b65 user: drh tags: trunk)
2020-07-02
17:05
Minor simplification to the 32-bit varint decoder. (check-in: 6ffd17b6 user: drh tags: trunk)
2020-07-01
16:19
Ensure that the "PRAGMA schema_version" command causes the schema to be reparsed and reloaded. (check-in: 27d4a9a7 user: drh tags: trunk)
14:07
Fix a problem with VM code generated for some aggregate SELECT statements that feature min()/max() aggregates both with and without FILTER clauses. (check-in: 2094da75 user: dan tags: trunk)
2020-06-30
18:21
Add a test to ensure that "PRAGMA wal_checkpoint = FULL" invokes the busy-handler to wait on read-locks. (check-in: f068fb11 user: dan tags: trunk)
15:32
Avoid a potential buffer overread in fts3 when processing corrupt records. (check-in: 4d0cfb12 user: dan tags: trunk)
2020-06-29
20:26
Fix generated columns so that they play well with upsert. See the forum post by "iffycan" for details. (check-in: fa9d93cf user: drh tags: trunk)
20:20
Change the magic number used to identify the "excluded" pseudo-table in an UPSERT statement into a #define constant. (check-in: e96c2ac9 user: drh tags: trunk)
20:09
Document the dual-use of the P5 operand to the OP_MakeRecord opcode. (check-in: a73f80f2 user: drh tags: trunk)
19:58
Passive checkpoints do not use the busy-handler. So, in order to minimize visible changes for legacy applications, do not enable blocking locks for passive checkpoints. (Closed-Leaf check-in: 9c2b4bdd user: dan tags: wal-setlk-changes)
18:30
Change the name of IntegrityCk.mallocFailed to IntegrityCk.bOomFault to avoid confusion with the sqlite3 object field with the same name. (check-in: 87c7d962 user: drh tags: trunk)
18:22
Change things so that if SQLITE_ENABLE_SETLK_TIMEOUT is defined as 2 instead of 1, all blocking locks are taken for a single millisecond and the default busy-handler invoked as normal. (check-in: ac381e6e user: dan tags: wal-setlk-changes)
17:52
Add test script to verify busy-timeouts are working for SQLITE_ENABLE_SETLK_TIMEOUT builds. (check-in: ada43e7c user: dan tags: trunk)
16:30
Do not run resetAccumulator() after a malloc failure. (check-in: 1b426603 user: drh tags: trunk)
13:33
Fix another fts3 problem with processing corrupt records. (check-in: 6e0ffa20 user: dan tags: trunk)
13:12
Small performance improvement in the sqlite3_step() interface. (check-in: 61400ef9 user: drh tags: trunk)
2020-06-26
20:41
Fix a problem that could cause an infinite loop in the fts3 'merge' command. (check-in: be545f85 user: dan tags: trunk)
17:56
When computing the verification hash in speedtest1, do not include the value of floating point results (which can very in trailing bits depending on platform) but merely hash the fact that a floating point value was received. (check-in: e12225d5 user: drh tags: trunk)
16:17
Improvements to speedtest1.c for more consistent verification hashes. (check-in: d34b8ff5 user: drh tags: trunk)
15:42
Improvements to speedtest1. Added the --memdb and --output options. The --verify option now outputs a hash of SQL outputs. The speed-check.sh script disables the hashing feature with --legacy and adds the --verify option. (check-in: f3455cec user: drh tags: trunk)
15:32
Add the ieee754_to_blob() and ieee754_from_blob() functions. Fix the handling of subnormal forms in the two-argument version of ieee754(). (check-in: c78cbf2e user: drh tags: trunk)
14:05
Add --verify to speed-check.sh and add --memdb and --output to speedtest1.c. Other improvements to speedtest1.c. (Closed-Leaf check-in: 89a11120 user: drh tags: speedtest-hash)
04:34
Fix a possible null pointer deref following OOM. Discovered by dbsqlfuzz. (check-in: cc888878 user: drh tags: trunk)
2020-06-25
23:21
Update the showlocks utility program so that it functions on files with a huge number of locks without overflowing the stack. (check-in: adb7484f user: drh tags: trunk)
20:28
Enhance the --verify option to speedtest1.c so that it computes and displays a hash of the result from all SQL queries, for verification purposes. (check-in: 60d1e46c user: drh tags: speedtest-hash)
2020-06-24
15:06
Add the ieee754_mantissa() and ieee754_exponent() functions to the iee754 extension. Build the ieee754 extension into the CLI. (check-in: db2f0836 user: drh tags: trunk)
13:52
Fix the decoding of subnormal values in the ieee754 extension. (check-in: 838817b6 user: drh tags: trunk)
13:14
In the one-argument version of the ieee754() extension function, if the argument is an 8-byte blob, interpret that blob as a binary64 floating point and decode it. (check-in: 4199c1e8 user: drh tags: trunk)
12:29
Add the decimal extension. It is built into the shell, but is an optional add-on for the library. It is not included in the amalgamation. (check-in: 5391687b user: drh tags: trunk)
11:45
Fix the ".selecttrace" command in the CLI (only available when compiled with the non-standard -DSQLITE_ENABLE_SELECTTRACE option) so that it does not segfault if invoked without any arguments. (check-in: d45c27a3 user: drh tags: trunk)
2020-06-23
20:03
Enhance the --testset option on speedtest1 so that it can accept a comma-separated list of test modules to run in order. (check-in: 780e8aaa user: drh tags: trunk)
17:57
Try to remove end-of-line whitespace when building the amalgamation. (check-in: be3e7814 user: drh tags: trunk)
15:29
Fix a harmless compiler warning. (Closed-Leaf check-in: e1416c8b user: drh tags: decimal)
14:44
Avoid unnecessary normalization in decimal_sum(). Trim excess trailing zeros off the result of decimal_mul(). (check-in: 0294ce07 user: drh tags: decimal)
2020-06-22
21:25
Add the decimal_mul() function. (check-in: 72eee04b user: drh tags: decimal)
19:12
An extension for doing decimal arithmetic on strings. (check-in: 4c3b8560 user: drh tags: decimal)
16:02
Fix problems with handling return value of mmap() in lsm_unix.c (mmap() returns MAP_FAILED on error, not NULL). (check-in: da06168c user: dan tags: trunk)
2020-06-20
03:43
Work around a bug (an incorrect warning) in Clang-8. (check-in: 06729114 user: drh tags: trunk)
2020-06-19
15:35
Reverse unintentional spacing change in the previous check-in. (check-in: c7b2ee1e user: mistachkin tags: trunk)
15:33
Include 'sqlite3rc.h' in the amalgamation archive targets. (check-in: 3df579ca user: mistachkin tags: trunk)
15:24
Extend the refactoring into extensions. Clean up stray newlines. (check-in: 7a876209 user: drh tags: trunk)
13:33
Further refactoring of the schema table name. (check-in: 9536fa0a user: drh tags: trunk)
11:34
Refactoring various names. No changes in the resulting machine code. (check-in: 7bb08b1b user: drh tags: trunk)
2020-06-18
14:30
Merge the 3.32.3 release into the reuse-schema branch. (Leaf check-in: c2d36763 user: drh tags: reuse-schema-3.32)
14:00
Version 3.32.3 (Leaf check-in: 7ebdfa80 user: drh tags: release, branch-3.32, version-3.32.3)
13:16
Fix an assert() that could fail when operating on a database with a corrupt schema. (check-in: b69b9c06 user: drh tags: branch-3.32)
2020-06-17
20:29
Fix an assert() that could fail when operating on a database with a corrupt schema. (check-in: 4a340c9b user: dan tags: trunk)
17:27
Fix an assert() in fts3 that could fail when processing a corrupt record. (check-in: ea71fb7f user: drh tags: branch-3.32)
14:54
Fix an assert() in fts3 that could fail when processing a corrupt record. (check-in: 4adc0a1b user: dan tags: trunk)
14:14
Fix a problem with retrying constraint failures within sqlite3changeset_apply() calls with the SQLITE_CHANGESET_INVERT flag is set. (check-in: d73e857b user: dan tags: trunk)
12:37
Merge miscellaneous fixes from trunk into the 3.32 branch. (check-in: d55b8e79 user: drh tags: branch-3.32)
2020-06-16
19:51
Add new file doc/wal-lock.md, containing notes on wal-mode blocking locks. (check-in: c6b1d3a3 user: dan tags: trunk)
17:34
In the CLI, only interrupt tabular outputs at the end of a line. And print "Interrupt" on a line after stopping the output. (check-in: f3bd6893 user: drh tags: trunk)
15:19
Merge 3.32.2 changes into the reuse-schema branch. (check-in: dc081336 user: drh tags: reuse-schema-3.32)
14:12
Add a test case covering the previous check-in to the test/fuzzdata8.db file. (check-in: 95379da0 user: drh tags: trunk)
14:06
Fix an assert() in fts3 that can fail when processing a corrupt record. (check-in: a58a6d6f user: dan tags: trunk)
2020-06-15
20:27
Provide "sqlite_schema" as an alternative name to the table that holds the database schema. (check-in: 61782a7a user: drh tags: trunk)
20:05
Fix the CLI so that interrupts work in columnar output mode. (check-in: 9472f1fe user: drh tags: trunk)
14:38
Fix the --enable-update-limit option to ./configure. (check-in: d31fd57e user: drh tags: trunk)
13:51
Fix a defect in the query-flattener optimization identified by ticket [8f157e8010b22af0]. (check-in: 10fa79d0 user: drh tags: trunk)
2020-06-14
13:40
Check-in [1d4f86201dab9a22] changed a testcase() to an assert() because we didn't know how to reach that condition any more. But YongHeng's fuzzer found a way. So now we change it back. Ticket [9fb26d37cefaba40]. (check-in: 90b1169d user: drh tags: trunk)
2020-06-13
21:24
Avoid deleting expression nodes in the flattener code, as they may be referenced by AggInfo objects further up the stack. Ticket [e367f31901ea8700] (check-in: cc1fffde user: dan tags: trunk)
03:18
Identifiers "TRUE" and "FALSE" cannot take on their boolean constant values if they are operands of the "." operator. (check-in: ad738286 user: drh tags: trunk)
2020-06-12
15:45
New test case added to test/fuzzdata8.db. (check-in: 14a5cbdd user: drh tags: trunk)
15:17
Fix a buffer overread in fts3 that could occur when decoding a corrupted record. (check-in: 9a4a40c4 user: dan tags: trunk)
00:31
Remove a NEVER() that turns out to be reachable. (check-in: 44e573ec user: drh tags: trunk)
2020-06-11
16:04
Add a new assert() to the SELECT processing. (check-in: 98cea4a3 user: drh tags: trunk)
15:53
Avoid rewriting compound SELECT statements that use a different collation sequence for ORDER BY and record processing a second time if they contain window functions. Fix for [b706351c]. (check-in: 32a88bdd user: dan tags: trunk)
00:57
Provide the ability to use the SELECTTRACE() debugging macro outside of the select.c source file. Use this to add a new SELECTTRACE() entry in window.c for improved tracing of window-function parse-tree rewriting. (check-in: 30c6d895 user: drh tags: trunk)
2020-06-10
14:30
Make sure the bbox object is fully initialized in geopoly, even if reading a corrupted database. (check-in: fd5abb1a user: drh tags: trunk)
11:18
Ensure that aggregate functions that (a) are part of SELECT statements with no FROM clause and (b) have one or more scalar sub-selects as arguments are assigned to the correct aggregate context. Fix for ticket [7c6d876f84e6e7e2] (check-in: dafd2466 user: dan tags: branch-3.32)
11:01
Ensure that the "push-down" optimization does not push constraints down into compound queries if any of the component queries uses window functions. (check-in: d31850fe user: dan tags: branch-3.32)
11:01
Disable AggInfo consistency checks when unwinding after an OOM. (check-in: 7e2833fb user: dan tags: branch-3.32)
10:58
Ensure that the "push-down" optimization does not push constraints down into compound queries if any of the component queries uses window functions. (check-in: 094dcfe7 user: dan tags: trunk)
03:07
Disable AggInfo consistency checks when unwinding after an OOM. (check-in: 65179814 user: drh tags: trunk)
2020-06-09
23:50
Ensure that aggregate functions that (a) are part of SELECT statements with no FROM clause and (b) have one or more scalar sub-selects as arguments are assigned to the correct aggregate context. Fix for ticket [7c6d876f84e6e7e2] (check-in: c29a9e48 user: drh tags: trunk)
22:11
Mark an always-true conditional with ALWAYS(). (Closed-Leaf check-in: 35a23684 user: drh tags: agg-context-fix)
17:45
Ensure that aggregate functions that (a) are part of SELECT statements with no FROM clause and (b) have one or more scalar sub-selects as arguments are assigned to the correct aggregate context. (check-in: 16a41fa8 user: dan tags: agg-context-fix)
14:56
Crazy experimental change to refcount the AggInfo objects. (Leaf check-in: 9a4cc1db user: drh tags: refcount-agginfo)
13:53
Modify a test file to avoid causing Tcl to allocate too much memory. (check-in: 232431f3 user: dan tags: trunk)
13:38
Give the expression pointer fields of AggInfo distinctive names in order to simplify tracking of all their uses. (check-in: a53bdd31 user: drh tags: trunk)
13:17
Persist AggInfo expressions before deleting them when omitting the LIMIT clause in a subquery. One possible fix for ticket [7c6d876f84e6e7e2]. (Leaf check-in: 04867cba user: drh tags: tkt-7c6d876f84e6e7e2)
11:59
Improved tree-view debugging output for aggregate functions. (check-in: b5711b4e user: drh tags: trunk)
2020-06-08
14:43
Fix a case where a corrupted fts3 record could cause an assert() failure, or spurious SQLITE_NOMEM error in builds with assert() disabled. (check-in: d48af4d2 user: dan tags: trunk)
12:51
Increase the version number to 3.32.3. (check-in: a376ec69 user: drh tags: branch-3.32)
12:49
When an Expr object is changed and that Expr is referenced by an AggInfo, then also update the AggInfo. Also, persist all AggInfo objects until the Parse object is destroyed. This is a new fix for ticket [c8d3b9f0a750a529]. (check-in: 44a58d6c user: drh tags: branch-3.32)
11:34
When an Expr object is changed and that Expr is referenced by an AggInfo, then also update the AggInfo. Also, persist all AggInfo objects until the Parse object is destroyed. This is a new fix for ticket [c8d3b9f0a750a529] that avoids the follow-on problems identified by tickets [0899cf62f597d7e7], [1f6f353b684fc708], [e5504e987e419fb0], and [f7d890858f361402]. (check-in: 6e6b3729 user: drh tags: trunk)
2020-06-07
22:44
Fix minor OOM problems. (Closed-Leaf check-in: 8b23d802 user: drh tags: persist-agginfo)
20:18
AggInfo objects might be referenced even after the sqlite3Select() function that created them has exited. So AggInfo cannot be a stack variable. And it must not be freed until the Parse object is destroyed. (check-in: 3c840b4d user: drh tags: persist-agginfo)
17:33
Alternative fix to ticket [c8d3b9f0a750a529]: Prior to deleting or modifying an Expr not that is referenced by an AggInfo, modify the AggInfo to get its own copy of the original Expr. (check-in: 7682d8a7 user: drh tags: persist-agginfo)
14:42
New debugging output. (Leaf check-in: c0d9dfe5 user: drh tags: early-winfunc-rewrite-dev)
12:26
Improvements to the treeview debugging display. (check-in: a7c5c739 user: drh tags: early-winfunc-rewrite-dev)
00:51
Extra steps to ensure that queries that involve both window functions and aggregate functions are processed correctly by sqlite3WindowRewrite(). Fix for ticket [e5504e987e419fb0]. (Leaf check-in: 765bbcce user: drh tags: branch-3.32-early-winfunc-rewrite)
00:43
Extra steps to ensure that queries that involve both window functions and aggregate functions are processed correctly by sqlite3WindowRewrite(). Fix for ticket [e5504e987e419fb0]. (check-in: a6c2147c user: drh tags: early-winfunc-rewrite-dev)
2020-06-06
20:48
Merge multiple changes from trunk to address concerns with window-function parse-tree rewriting. (check-in: 05418b2a user: drh tags: branch-3.32-early-winfunc-rewrite)
19:54
Fix a possible ASAN violation inside of debug-only code following an OOM. (check-in: 0e021887 user: drh tags: early-winfunc-rewrite-dev)
19:35
When determining if the subquery inserted by the window-function rewriter is an aggregate query, aggregate functions that are in parameters to another window function do not count. Fix for ticket [1f6f353b684fc708] (check-in: 8583c348 user: drh tags: early-winfunc-rewrite-dev)
18:45
Clearly distinguish between window functions and scalar functions in the debugging TreeView output. (check-in: 15babdcb user: drh tags: early-winfunc-rewrite-dev)
18:34
In the query flattener, defer deleting content until after associated Parse object is destroyed, in case some of the deleted expressions have been collected for use by sAggInfo. (check-in: 03b32be4 user: drh tags: early-winfunc-rewrite-dev)
14:58
Remove an incorrect assert() added earlier today. (check-in: 3926ff17 user: drh tags: early-winfunc-rewrite-dev)
14:44
When rewriting the parse-tree for window functions, ensure that the inserted subqueries have an accurate SF_Aggregate bit set. This change also coincidentally fixes ticket [0899cf62f597d7e7], even thought that was not the issue we were working on at the time. (check-in: 2cddb24e user: drh tags: early-winfunc-rewrite-dev)
14:29
Fix an assert() failure that could occur if an ORDER BY expression attached to a compound query contains a subquery that (a) is itself a compound query, (b) uses window functions and (c) has an ORDER BY clause that includes another sub-query. (check-in: c96914ea user: dan tags: early-winfunc-rewrite-dev)
13:29
Avoid no-op calls to sqlite3SelectPrep() when processing sqlite3Select() for subqueries. This simplifies the ".selecttrace" debugging output. (check-in: 3de19ee2 user: drh tags: early-winfunc-rewrite-dev)
2020-06-05
21:36
Improved tracing of window function parse tree rewrites. (check-in: 7e8060cf user: drh tags: early-winfunc-rewrite-dev)
18:17
Assign a fake name to the ephemeral subquery tables that are created when making parse-tree changes for window functions. (check-in: c4072267 user: drh tags: early-winfunc-rewrite-dev)
15:56
Do parse-tree transformations required for window functions prior to running aggregate function analysis. Fix for ticket [c8d3b9f0a750a529]. (check-in: 79eff1d0 user: drh tags: branch-3.32-early-winfunc-rewrite)
15:40
New test case for fuzzdata8.db. (check-in: 2870d117 user: drh tags: early-winfunc-rewrite-dev)
15:26
Do parse-tree transformations required for window functions prior to running aggregate function analysis. Fix for ticket [c8d3b9f0a750a529]. (check-in: 0b42a227 user: drh tags: early-winfunc-rewrite-dev)
14:53
Ensure that the "push-down" optimization does not push constraints down into compound queries if any of the component queries uses window functions. (Closed-Leaf check-in: 2011e832 user: dan tags: early-winfunc-rewrite)
14:25
ALWAYS() and NEVER() macros added due to unreachable branches arising from the previous check-in. (check-in: 13ffedab user: drh tags: early-winfunc-rewrite)
14:10
Move the parse tree rewrite for window functions earlier in the process, before sqlite3ExprAnalyzeAggregates() has run. Add new assert()s to verify that aggregate analysis always remains valid until the end of SELECT processing. (check-in: fe702aa0 user: drh tags: early-winfunc-rewrite)
04:01
In the debugging treeview output, change the name of "SELECT-expr" expression nodes to be "subquery-expr", so as to not confuse them with actual SELECT nodes. (check-in: c1c8937a user: drh tags: trunk)
00:54
Always use ?...? to indicate optional arguments in the output of ".help" in the CLI. Change ".mode column" so that it automatically activates ".headers on" if headers have not been previously turned on or off. (check-in: 2827c0a1 user: drh tags: trunk)
2020-06-04
18:05
Add support for "box" mode in the CLI: Like "table" except that it uses unicode box-drawing characters instead of ascii-art. (check-in: 6da784c9 user: drh tags: trunk)
16:54
Improved display of ".mode table" output for empty result sets. (check-in: 7efabd68 user: drh tags: trunk)
16:34
Use __has_extension(c_atomic) instead of __has_feature(c_atomic) to detect support for atomic load and store operations with clang. (check-in: 36225579 user: dan tags: trunk)
16:07
Use AtomicStore() to set values in the wal-index hash table. (check-in: 1ab30c75 user: dan tags: trunk)
12:58
Version 3.32.2 (check-in: ec02243e user: drh tags: release, branch-3.32, version-3.32.2)
02:50
Work around a bug in clang-11.0.0. See forum post 3c2bf8042ec46195 for further info. (check-in: 3c2bf804 user: drh tags: trunk)
2020-06-03
22:57
Fix for ticket [810dc8038872e212]. (check-in: 9cfefef5 user: drh tags: branch-3.32)
22:47
Version number to 3.32.2 (check-in: 4454b27f user: drh tags: branch-3.32)
19:28
Fix for ticket [810dc8038872e212]. Thank to user "Maxulite" for tracking down the problem! (check-in: 89af93d7 user: drh tags: trunk)
15:59
Simplification to the interrupt handling logic in sqlite3VdbeExec() saves a few bytes of code space. (check-in: 43e0e59b user: drh tags: trunk)
03:00
Improve the query planner so that it is better able to find full index scan plan when there is an INDEXED BY clause. (check-in: d901837f user: drh tags: trunk)
2020-05-30
15:34
Draw the dashes below the headers in "explain" mode in the CLI. (check-in: c6b7833a user: drh tags: trunk)
00:30
Improved VDBE comments on the ANALYZE code generator. This change also fixes a harmless use of an uninitialized integer variable as an input to the %d format on a VDBE comment. (check-in: 1cb248a3 user: drh tags: trunk)
2020-05-29
21:06
Enhancements to the incremental build support for MSVC. (check-in: 2e25d915 user: mistachkin tags: trunk)
20:16
Remove a stray "&" character in the CLI, detected by a clang warning. (check-in: 5865d2f2 user: drh tags: trunk)
19:45
Add the "shelltest" target to the MSVC makefile as well. (check-in: 9924c045 user: drh tags: trunk)
19:39
Fix the ".import" command of the CLI to clean up better after errors. Add the new "shelltest" makefile target on unix platforms. (check-in: 50d4ddf1 user: drh tags: trunk)
19:17
Improvements to help text for the CLI. (check-in: 6a01e4c4 user: drh tags: trunk)
19:03
Fix a memory leak in the CLI when an unknown or unrecognized argument is given to the ".dump" command. (check-in: 71bfbbcc user: drh tags: trunk)
16:15
Improvements to columnar output in the CLI. Columns automatically expand to contain the largest row. (check-in: 4e1db8e9 user: drh tags: trunk)
14:38
Space to hold the ".width" of columns in the CLI is now obtained from malloc() and hence is not limited in the number of columns supported. (check-in: 445ed5da user: drh tags: trunk)
12:31
Incremental improvements to tabular output modes in the CLI. The "markdown" and "table" modes no have headers turned on by default. (check-in: af28bff9 user: drh tags: trunk)
11:07
Expand upon a comment in os_unix.c. No changes to code. (check-in: 77933dc4 user: dan tags: trunk)
00:21
In the json output mode of the CLI, do correct quoting of escape characters. Also, show BLOBs as JSON strings, possibly with embedded \u0000 bytes. (check-in: 0278147a user: drh tags: trunk)
2020-05-28
23:49
Progress toward adding new output modes to the CLI: json, table, and markdown. (check-in: 14f55faf user: drh tags: trunk)
20:37
Enhance the ".quote" mode in the shell so that it honors .separator. (check-in: b5e33ed5 user: drh tags: trunk)
00:45
When the sqlite_stat1 data is missing for some indexes of a table but is present for the table itself or for other indexes in the same table, then do not let the estimated number of rows in that table get too small, as doing so can deceive the query planner into ignoring a perfectly good index. (check-in: 98d42620 user: drh tags: trunk)
2020-05-27
12:44
Small performance improvement and size reduction in the expression code generator. (check-in: eeb53e21 user: drh tags: trunk)
00:02
Change a datatype from i16 to int to appease Converity and help eliminate a false-positive. (check-in: 5b560ec4 user: drh tags: trunk)
2020-05-26
20:33
Fix the cksumvfs extension so that it will not register itself more than once. (check-in: d5cdd571 user: drh tags: trunk)
20:31
Performance optimization in the transfer of error messages from statements to connections. (check-in: 0e898f4f user: drh tags: trunk)
11:23
Increase the version number to 3.33.0 to begin the next release cycle. (check-in: 790badb3 user: drh tags: trunk)
11:10
Changes to sqlite3SelectNew() to work around a false-positive warning from GCC-10. The code is very slightly larger and slower as a result. (check-in: 04e1edd8 user: drh tags: trunk)
10:54
Innocuous changes to help Coverity avoid false-positives. (check-in: 4ec8a5a2 user: drh tags: trunk)
2020-05-25
18:18
Merge version 3.32.1 into the begin-concurrent-pnu-wal2 branch. (check-in: 0f9464c5 user: drh tags: begin-concurrent-pnu-wal2)
18:09
Merge version 3.32.1 into the wal2 branch. (check-in: 5c183757 user: drh tags: wal2)
18:03
Merge versoin 3.32.1 into the begin-concurrent-pnu branch. (check-in: e8d79d2b user: drh tags: begin-concurrent-pnu)
17:27
Merge version 3.32.1 into the begin-concurrent branch. (check-in: 5e08e360 user: drh tags: begin-concurrent)
16:34
Update the reuse-schema branch to version 3.32.1 (check-in: ecf8dece user: drh tags: reuse-schema)
16:19
Version 3.32.1 (check-in: 0c1fcf47 user: drh tags: trunk, release, version-3.32.1)
15:41
Extra assert() statements in the printf() logic. (check-in: b1b182be user: drh tags: trunk)
15:19
Defensive code that tries to prevent a recurrence of problems like the one described in ticket [7a5279a25c57adf1] (check-in: 572105de user: drh tags: trunk)
12:49
Fix minor compile issues with optional extensions. (check-in: 3261ee9e user: drh tags: trunk)
12:02
Make sure variable declarations are at start of scope even when SQLITE_ENABLE_SNAPSHOT is used. (check-in: a77ceaf6 user: drh tags: trunk)
01:31
Attempt to work around a false-positive warning in the CGo compiler. (Closed-Leaf check-in: d4bf60f4 user: drh tags: cgo-warning-workaround)
2020-05-24
12:36
Version number to 3.32.1. (check-in: 56e5063c user: drh tags: trunk)
03:38
When rewriting a query for window functions, if the rewrite changes the depth of TK_AGG_FUNCTION nodes, be sure to adjust the Expr.op2 field appropriately. Fix for ticket [7a5279a25c57adf1] (check-in: ad7bb70a user: drh tags: trunk)
03:01
Move some utility Walker callbacks into the walker.c source file, as they seem to belong there better. (check-in: dac43823 user: drh tags: trunk)
02:05
Improvements to parse-tree tracing logic. No changes in deliverable code. (check-in: f7e5a68a user: drh tags: trunk)
00:30
Minor fix to a comment. No code changes. (check-in: efdbb2b4 user: drh tags: trunk)
2020-05-23
19:58
Limit the "precision" of floating-point to text conversions in the printf() function to 100,000,000. Fix for ticket [23439ea582241138]. (check-in: d08d3405 user: drh tags: trunk)
17:56
Improved bytecode comment. (check-in: 9224f154 user: drh tags: trunk)
2020-05-22
18:41
Merge version 3.32.0 into the reuse-schema branch. (check-in: 31706878 user: drh tags: reuse-schema)
18:35
Merge version 3.32.0 into the begin-concurrent-pnu-wal2 branch. (check-in: 3cb29606 user: drh tags: begin-concurrent-pnu-wal2)
18:28
Merge version 3.32.0 into the wal2 branch. (check-in: 1cb46a74 user: drh tags: wal2)
18:17
Merge the 3.32.0 release into the begin-concurrent-pnu branch. (check-in: 79663e66 user: drh tags: begin-concurrent-pnu)
18:09
Merge the 3.32.0 release into the begin-concurrent branch. (check-in: 79ad4ea2 user: drh tags: begin-concurrent)
17:46
Version 3.32.0 (check-in: 5998789c user: drh tags: trunk, release, version-3.32.0)
2020-05-21
20:38
Change a NEVER macro into a NO_TEST comment, as the conditional is reachable, but only when compiling for Windows 32-bit. (check-in: ce36b6d1 user: drh tags: trunk)
19:13
Avoid another potential OOB read in sqlite3expert.c. (check-in: 0ccea800 user: dan tags: trunk)
2020-05-20
15:02
Back out the change from [7fab1393c2b22b1f] that tries to convert invalid surrogate characters in UTF16 into the replacement character 0xfffd, as we find that this breaks some software. (check-in: 4218c7b7 user: drh tags: trunk)
2020-05-19
15:51
Add compiler hints to disable TSAN for the routines that access the -shm file header in WAL mode using a double-read with memory barrier. (check-in: 3117c1b5 user: drh tags: trunk)
15:40
In os_win.c, avoid calling sqlite3_uri_boolean() on anything other than a main-db filename. (check-in: cb0a18e6 user: dan tags: trunk)
12:29
User-suggested improvement to the README.txt for the ICU extension. (check-in: 1d1293c2 user: drh tags: trunk)
12:27
In wal.c, improved comments on concurrency issues. More use of AtomicLoad() and AtomicStore(). (check-in: 4bf566fe user: drh tags: trunk)
2020-05-18
19:55
Merge latest trunk changes into this branch. (check-in: 5dc355cc user: dan tags: begin-concurrent-pnu-wal2)
19:11
Bring the reuse-schema branch up to date with the latest trunk changes. (check-in: d8ea0cb6 user: drh tags: reuse-schema)
18:02
Add vdbevtab.lo to build of libsqlite3.lib in Makefile.msc. (check-in: f64d054b user: dan tags: trunk)
17:18
Merge latest trunk changes into this branch. (check-in: 16b1eca9 user: dan tags: wal2)
16:19
Merge recent changes from trunk. (check-in: c69f030b user: drh tags: begin-concurrent-pnu)
15:41
Merge latest trunk changes into this branch. (check-in: 9e4a7b3e user: dan tags: begin-concurrent)
2020-05-17
13:47
Avoid harmless UB in memcpy() in the JSON extension. (check-in: 69e149f7 user: drh tags: trunk)
00:26
Use the sqlite3Realloc() interface internally, rather than the public sqlite3_realloc64() equivalent, to avoid unnecessary calls to sqlite3_initialize(). (check-in: 1313557b user: drh tags: trunk)
2020-05-16
21:01
Performance optimization for the sqlite3FindTable() subroutine. (check-in: 55910b9a user: drh tags: trunk)
19:00
Merge trunk enhancements in the reuse-schema branch. (Actual date of this check-in is 2020-05-18.) (check-in: 5af4abe9 user: drh tags: reuse-schema)
18:01
The OP_RealAffinity opcode is not necessary after reading values from a virtual table (such as rtree). It is harmless, but it does use CPU cycles. Might as well leave it off. (check-in: dc18d893 user: drh tags: trunk)
17:26
Fix a use-after-free bug in the fts3 snippet() function. (check-in: 0d69f76f user: dan tags: trunk)
16:23
Extra memory barrier during initialization. (check-in: 043a7e14 user: drh tags: trunk)
15:18
Add sqlite3BeginBenignMalloc() and EndBenignMalloc() calls to debugging function sqlite3VdbePrintOp(). (check-in: 6f857d0e user: dan tags: trunk)
2020-05-15
18:48
Update code in sqlite3expert.c to account for the fact that "-- TRIGGER xyz" VM comments are now omitted for some builds. (check-in: 7cf93dc5 user: dan tags: trunk)
16:19
Fix another build problem for SQLITE_OMIT_VIRTUALTABLE builds. (check-in: 5e1eb0fa user: dan tags: trunk)
16:05
Fix a documentation typo. No changes to code. (check-in: 758353c7 user: drh tags: trunk)
15:03
Adjust some requirement marks. No changes to code. (check-in: 7285ae2c user: drh tags: trunk)
13:52
Update test file e_fkey.test to account for the fact that new columns with REFERENCE clauses and non-NULL default values may now be added using ALTER TABLE if the table is empty. (check-in: 4087fce9 user: dan tags: trunk)
11:36
Fix SQLITE_OMIT_VIRTUALTABLE testfixture builds. (check-in: 3d9780c5 user: dan tags: trunk)
11:26
Test script changes to account for the fact that the "p5" column in the EXPLAIN output is now an integer, not a text values containing a 2-digit hex value. (check-in: 102126d8 user: dan tags: trunk)
01:18
Enhancements to long-path support in the Win32 VFS. (check-in: 0119d96d user: mistachkin tags: trunk)
01:13
Move some new test cases from fts3snippet.test into fts3snippet2.test. (check-in: fa203999 user: drh tags: trunk)
01:02
Add the SQLITE_ENABLE_FTS3_PARENTHESIS option to fuzzcheck. Add a new test case that uses that option. (check-in: c49a33db user: drh tags: trunk)
2020-05-14
23:59
Fix a null pointer deference that can occur on a strange matchinfo() query. (check-in: a4dd1489 user: drh tags: trunk)
21:16
Do not allow a virtual table to be renamed into the name of one of its shadows. (check-in: eca0ba2c user: drh tags: trunk)
2020-05-13
18:03
Implement the IIF(x,y,z) SQL function that is short-hand for "CASE WHEN x THEN y ELSE z END". For compatibility with SQL Server. (check-in: fce173cd user: drh tags: trunk)
17:26
Remove unused constant SQLITE_FUNC_COALESCE. (check-in: a116b20f user: drh tags: trunk)
13:33
Use AtomicStore() and AtomicLoad() in a few more places to avoid a theoretically undefined behaviour. This is not actually problem on any known hardware. (check-in: fda57d4d user: dan tags: trunk)
2020-05-11
11:11
New test case in test/fuzzdata8.db. (check-in: fa112301 user: drh tags: trunk)
10:55
Fix a problem handling constant integer expressions with collation sequences in PARTITION BY clauses. (check-in: 155e6649 user: dan tags: trunk)
2020-05-08
19:02
Release some restrictions on columns added by ALTER TABLE so that they only apply if the table contains one or more rows. (check-in: 3a16c0ce user: drh tags: trunk)
18:22
Fix the count-optimization so that it honors the NOT INDEXED clause. (check-in: 0d23a0b2 user: drh tags: trunk)
15:28
New test cases added to test/fuzzdata8.db. (check-in: 3fce9711 user: drh tags: trunk)
10:44
Do not retry on a failed realloc() unless SQLITE_ENABLE_MEMORY_MANAGEMENT is available, meaning that the retry has some possibility of success. (check-in: e9a8f910 user: drh tags: trunk)
2020-05-07
19:55
Fix a failing assert() in fts3 triggered by a corrupt database. (check-in: cb299a09 user: dan tags: trunk)
14:39
Changes to avoid deadlock in SQLITE_ENABLE_SETLK_TIMEOUT builds. (check-in: 652e4b23 user: dan tags: trunk)
14:26
Fix an error that could occur if the first transaction executed by a connection configured to use blocking locks is a write-transaction for which the WRITER lock cannot be obtained. (Closed-Leaf check-in: 49e4dc72 user: dan tags: setlk-deadlock-changes)
14:05
Merge trunk changes into this branch. (check-in: ac4ee696 user: dan tags: setlk-deadlock-changes)
01:56
Fix the handling of reserve-bytes so that the maximum value of 255 can be used. (check-in: 99749d4f user: drh tags: trunk)
2020-05-06
21:25
Avoid leaking a file-handle in test file walsetlk.test. (check-in: 3cfc675e user: dan tags: setlk-deadlock-changes)
21:24
Fix an assert() failure that could follow an IO error. (check-in: e89c8642 user: dan tags: setlk-deadlock-changes)
20:55
Fix harmless compiler warnings. (check-in: 92dc5913 user: drh tags: setlk-deadlock-changes)
20:45
Fix a problem preventing building without SQLITE_ENABLE_SETLK_TIMEOUT defined. (check-in: 98eb54c6 user: dan tags: setlk-deadlock-changes)
20:27
Add error code SQLITE_BUSY_TIMEOUT, used internally by the OS layer to indicate that a call to xShmLock() has failed due to timeout of a blocking lock. (check-in: f3ef9c7c user: dan tags: setlk-deadlock-changes)
19:22
Fix compiler warnings in non-SQLITE_ENABLE_SETLK_TIMEOUT builds. (check-in: 22de99ef user: dan tags: setlk-deadlock-changes)
19:14
Block on the WRITER lock when attempting to run recovery. (check-in: 105d6c9b user: dan tags: setlk-deadlock-changes)
18:46
Provide the SQLITE_DEFAULT_LEGACY_ALTER_TABLE compile-time option. (check-in: b2325a6e user: drh tags: branch-3.28)
18:43
Provide the SQLITE_DEFAULT_LEGACY_ALTER_TABLE compile-time option. (check-in: 63e659d9 user: drh tags: trunk)
17:18
Add tests for running recovery when opening a write transaction or performing a checkpoint with blocking locks enabled. Fix some failing assert() statements. (check-in: d096ea3f user: dan tags: setlk-deadlock-changes)
15:07
Merge latest trunk changes into this branch. (check-in: a3727dba user: dan tags: setlk-deadlock-changes)
2020-05-05
20:30
Unless upgrading an existing read transaction, have ENABLE_SETLK_TIMEOUT builds attempt to use a blocking lock when opening a write transaction on a wal mode database. (check-in: d6f819a9 user: dan tags: setlk-deadlock-changes)
19:54
The only known path to a corruption detection branch was cut off by the previous commit implementing earlier index corruption. So make the branch NEVER. Maybe a fuzzer will find a new path. (check-in: 9a84d8eb user: drh tags: trunk)
18:42
Earlier detection of index corruption caused by missing index entries. (check-in: f339f31f user: drh tags: trunk)
13:41
Fix a compiler warning in cksumvfs.c. (check-in: 68033bca user: drh tags: trunk)
2020-05-04
19:52
Fix harmless compiler warnings. (check-in: 8eee591d user: drh tags: trunk)
19:42
Changes to avoid deadlock in SQLITE_ENABLE_SETLK_TIMEOUT builds. (check-in: 553423c2 user: dan tags: setlk-deadlock-changes)
19:04
Minor change to the sqlite_stmt virtual table, for test coverage. (check-in: 838987b2 user: drh tags: trunk)
17:15
Simplify the initialization of built-in extensions. (check-in: 729f2397 user: drh tags: trunk)
11:47
Ensure that the master-journal name is in a form suitable to be passed into sqlite3_uri_parameter(). (check-in: d1ba026d user: drh tags: trunk)
2020-05-02
04:08
Add the SQLITE_FCNTL_CKPT_START file-control and use it to optimize the cksumvfs extension. (check-in: efdecb13 user: drh tags: trunk)
03:46
Add support for PRAGMA analyze_limit and approximate analysis. (check-in: 81254752 user: drh tags: trunk)
03:29
Add a missing VdbeCoverage() macro. (Closed-Leaf check-in: 77a55c39 user: drh tags: approximate-analyze)
00:31
Merge the bytecode and tables_used table-valued functions. Requires -DSQLITE_ENABLE_BYTECODE_VTAB at compile-time. (check-in: d09bcce3 user: drh tags: trunk)
00:01
Corner-case changes to the bytecode virtual table for testability and correctness. (Closed-Leaf check-in: baa720e4 user: drh tags: bytecode-function)
2020-05-01
18:58
Merge recent enhancements from trunk. (check-in: 96dfc71e user: drh tags: bytecode-function)
18:43
Fix problems with UPDATE...FROM statements that modify rowid or primary-key values. (check-in: 623ab585 user: dan tags: update-from)
18:37
Add the SQLITE_FCNTL_CKPT_START file-control. Use it to optimize the cksumvfs extension. (Closed-Leaf check-in: b40f5aa3 user: drh tags: ckpt-start-fcntl)
15:04
Merge recent trunk enhancements. (check-in: 2100b2c8 user: drh tags: approximate-analyze)
13:45
Clarification to the sqlite3_uri() family of interfaces. Documentation enhancement only - no changes to code. (check-in: 853703cd user: drh tags: trunk)
13:32
Update documentation for sqlite3_close_v2() for clarity. No functional changes. (check-in: 80498b69 user: drh tags: trunk)
11:31
Add the new SQLITE_IOERR_DATA result code and use it in cksumvfs. Also enhance cksumvfs to emit an sqlite3_log() message whenever it finds an invalid checksum. (check-in: a094e8bf user: drh tags: trunk)
2020-04-30
18:28
Add OOM tests for the new code on this branch. (check-in: e4a18601 user: dan tags: update-from)
15:49
Report an error if an UPDATE...FROM statement has an ORDER BY but no LIMIT clause. Add tests for multi-column primary keys. (check-in: ffcdb668 user: dan tags: update-from)
2020-04-29
20:11
Fix problems with using LIMIT and FROM clauses as part of single UPDATE statement. (check-in: b717dc3c user: dan tags: update-from)
17:41
Fix various bugs in new feature on this branch. (check-in: 823ba94e user: dan tags: update-from)
01:09
Do not allow page_size changes on an active cksumvfs database. (check-in: 2c17cdce user: drh tags: trunk)
2020-04-28
23:09
Fix incorrect error message when something goes wrong with the sqlite3_dbpage() table-valued function in the .dbinfo command of the CLI. (check-in: 0dcf0024 user: drh tags: trunk)
20:47
Add the cksumvfs extension. (check-in: 237c10f9 user: drh tags: trunk)
14:01
Use AtomicStore() when setting the mem0.nearlyFull boolean to avoid harmless TSAN warnings and to forestall doubts about threadsafety. (check-in: ce980af6 user: drh tags: trunk)
11:45
Use an AtomicLoad() macro in sqlite3HeapNearlyFull(). (check-in: 7556bc63 user: drh tags: trunk)
2020-04-27
20:55
Allow a FROM clause in UPDATE statements. (check-in: f353a1a6 user: dan tags: update-from)
2020-04-26
22:04
Yet another attempt to enhance sqlite3_load_extension() so that it works with Window-style pathnames using a backslash separator character. (check-in: b73d9a7d user: drh tags: trunk)
14:33
Fix an issue with check-in [bc3bf7c6681a96bc] when compiling on Windows. (check-in: 57b16d8c user: drh tags: trunk)
2020-04-25
21:05
Fix the sqlite3_load_extension() interface so that it tolerates backslashes in place of forward-slashes in pathnames on Windows. (check-in: bc3bf7c6 user: drh tags: trunk)
15:01
Ensure affinity is not discarded from a view column if the view appears on the rhs of a LEFT JOIN. Fix for [45f4bf4e]. (check-in: ac31edd3 user: dan tags: trunk)
2020-04-24
18:20
The new sqlite3_database_file_object() interface requires that the pager never invoke xOpen with SQLITE_OPEN_MAIN_JOURNAL unless it is using a pointer to the journal name found in the Pager structure itself. Make this the case when processing a master-journal. (check-in: b4987a5c user: drh tags: trunk)
17:55
New test case for ticket [1dcb4d44964846ad]. (check-in: 9e9f1e96 user: drh tags: trunk)
2020-04-23
20:45
Fix an uninitialized variable in the newly enhanced ".output" command of the CLI. See forum post 5978955ac1 (check-in: 65c6c26b user: drh tags: trunk)
2020-04-22
13:49
Fix an off-by-one error in the "calculated" page count output from the sqlite3_analyzer utility for databases that are more than 1GB in size. (check-in: 8789368b user: drh tags: trunk)
11:11
Fix an integer overflow in fts3 causing a usan error. (check-in: e256f852 user: dan tags: trunk)
00:50
Clarify the comment on the sqlite3BtreeGetRequestedReserve() routine. No changes to code. (check-in: 52a6acca user: drh tags: trunk)
2020-04-21
20:19
Add the sqlite3_database_file_object() interface. (check-in: f534ebea user: drh tags: trunk)
19:27
Add the sqlite3_database_file_object() interface to sqlite3ext.h. (Closed-Leaf check-in: 3cabe06b user: drh tags: sqlite3_database_file_object)
01:06
Experimental API: sqlite3_database_file_object(). (check-in: ae697b15 user: drh tags: sqlite3_database_file_object)
2020-04-20
17:35
Do not use O_NOFOLLOW when opening a directory just to call fsync() on that directory. (check-in: 2fc80ef1 user: drh tags: trunk)
16:21
Enhance the ".filectrl" command in the CLI to support the --schema option. (check-in: 698d40db user: drh tags: trunk)
15:18
The SQLITE_TESTCTRL_RESERVE operator is removed. In its place is the more general SQLITE_FCNTL_RESERVE_BYTES which is an API and which can operator on more than just the main schema. (check-in: abc1aad7 user: drh tags: trunk)
14:05
Remove an obsolete comment. No changes to code. (check-in: 4135cb02 user: drh tags: trunk)
2020-04-18
14:12
Add the --bom option to the ".excel", ".once", and ".output" commands of the CLI. Also fix the "--all" option on ".help" so that it works with two dashes in addition to just one. (check-in: d5b0def9 user: drh tags: trunk)
2020-04-17
23:46
Fix the ".excel" command and the ".open -x" and ".open -e" command so that they work better when running from an in-memory database and on Windows and when running from a script. (check-in: 07752164 user: drh tags: trunk)
2020-04-16
15:56
Merge accidentally created fork. (check-in: cb772b7a user: dan tags: trunk)
11:35
Improve corruption detection in fts3 shadow tables earlier in order to prevent an assert() from failing. (check-in: a9ec8c8f user: dan tags: trunk)
2020-04-15
17:39
Clarification of the byte-order determination for UTF16 inputs to routines like sqlite3_bind_text16() and sqlite3_result_text16() and others that accept UTF16 input strings. (check-in: a42fdcf5 user: drh tags: trunk)
2020-04-14
15:53
Build the UINT collating sequence extension into the CLI. (check-in: 2b8c6b03 user: drh tags: trunk)
15:48
Add the UINT collating sequence extension. The implementation is copied out of the "natsort" branch. (check-in: 6f46c6e3 user: drh tags: trunk)
15:35
Change the name from NATSORT to UINT. Provide an OMIT compile-time option. (Leaf check-in: cc56cbdb user: drh tags: natsort)
15:24
Merge trunk enhancements. (check-in: f1c284dd user: drh tags: natsort)
2020-04-09
19:00
Merge recent trunk changes into begin-concurrent-pnu-wal2. (check-in: 6c11b67b user: drh tags: begin-concurrent-pnu-wal2)
18:51
Merge recent trunk changes into the apple-osx branch. (Leaf check-in: d6fda470 user: drh tags: apple-osx)
18:46
Merge recent trunk enhancements into the wal2 branch. (check-in: 6fb87062 user: drh tags: wal2)
18:44
Merge recent trunk enhancements into the begin-concurrent-pnu branch. (check-in: cedd138c user: drh tags: begin-concurrent-pnu)
18:29
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: 92f71a88 user: drh tags: begin-concurrent)
15:31
When compiling the shell for WinRT, avoid using Win32 APIs that are unavailable. (check-in: 85d3dc8c user: mistachkin tags: trunk)
15:07
Merge recent trunk enhancements into the bytecode-function branch. (check-in: 7e6576ec user: drh tags: bytecode-function)
15:01
Merge trunk enhancements into the approximate-analyze branch. (check-in: 17901ea6 user: drh tags: approximate-analyze)
2020-04-07
15:07
Limit LIKE/GLOB pattern length to 100 bytes (default is 50K) when running dbsql cases in the fuzzcheck utility. (check-in: 10306118 user: drh tags: trunk)
13:08
Add the --spinner option to the fuzzcheck test program. (check-in: b1eae268 user: drh tags: trunk)
01:18
The ALTER TABLE fix of check-in [7e5ad8e0ab7ee91a] is no longer needed due to the changes at check-in [4cf8721f5ceb1fda]. But, we keep the defense in place as an assert() for extra safety. (check-in: 230556e8 user: drh tags: trunk)
00:54
Remove dead code that was added during initial development of RENAME COLUMN but never actually served a purpose. (check-in: c95c4cda user: drh tags: trunk)
2020-04-06
20:35
Performance improvement in sqlite3ResolveExprNameList(). (check-in: 7e170e67 user: drh tags: trunk)
18:16
Performance improvement for column name lookup. (check-in: 1e4b6a93 user: drh tags: trunk)
16:37
When running ALTER TABLE, avoid adding some internally generated tokens to the token map to improve performance on schemas with nested views. (check-in: 4cf8721f user: dan tags: trunk)
2020-04-04
11:58
Remove a NEVER() that could be true in sqlite3MatchEName(). (check-in: 921448f0 user: drh tags: trunk)
00:29
In the push-down optimization, do not substitute columns that have previously been identified as being constant by the propagate-constants optimization. Fix for ticket [51166be0159fd2ce]. Also, avoid factoring out constant expressions on the LHS of an IN(...) operator, as the IN(...) operation may affect the affinity of these values. Fix for [fd1bda016d1]. (Leaf check-in: 43612157 user: drh tags: branch-3.31)
00:15
In the push-down optimization, do not substitute columns that have previously been identified as being constant by the propagate-constants optimization. Fix for ticket [51166be0159fd2ce] (check-in: 70c44811 user: drh tags: trunk)
2020-04-03
20:14
Restore an #if block inadvertently removed via check-in [9c77bfe41e]. (check-in: bf6bcfc1 user: mistachkin tags: branch-3.31)
19:37
Avoid factoring out constant expressions on the LHS of an IN(...) operator, as the IN(...) operation may affect the affinity of these values. Fix for [fd1bda016d1]. (check-in: 98d56b4a user: dan tags: trunk)
16:11
Add a test case to fuzzdata8.db for the recent Henry Liu bugs. (check-in: 42b02454 user: drh tags: trunk)
15:48
Merge updates from trunk. (check-in: 348c4013 user: drh tags: bytecode-function)
13:39
Do not suppress errors when resolving references in an ORDER BY clause belonging to a compound SELECT within a view or trigger within ALTER TABLE. Fix for ticket [a10a14e9b4ba2]. Also, in the event of a semantic error in an aggregate query, early-out the resetAccumulator() function to prevent problems due to incomplete or incorrect initialization of the AggInfo object. Fix for ticket [af4556bb5c285c08]. (check-in: b6467491 user: drh tags: branch-3.31)
13:29
Fix a case when a pointer might be used after being freed in the ALTER TABLE code. Fix for [4722bdab08cb1]. (check-in: 52f800fa user: drh tags: branch-3.31)
13:19
In the event of a semantic error in an aggregate query, early-out the resetAccumulator() function to prevent problems due to incomplete or incorrect initialization of the AggInfo object. Fix for ticket [af4556bb5c285c08]. (check-in: 4a302b42 user: drh tags: trunk)
11:52
Do not suppress errors when resolving references in an ORDER BY clause belonging to a compound SELECT within a view or trigger within ALTER TABLE. Fix for ticket [a10a14e9b4ba2]. (check-in: 68429388 user: dan tags: trunk)
11:20
Fix a case when a pointer might be used after being freed in the ALTER TABLE code. Fix for [4722bdab08cb1]. (check-in: d09f8c36 user: dan tags: trunk)
2020-04-02
19:58
Fix a minor problem with EXPLAIN QUERY PLAN for triggers. (check-in: 6e11c03f user: drh tags: bytecode-function)
17:21
Minor changes for better test coverage. (check-in: ae3ac297 user: drh tags: bytecode-function)
13:21
Fix an obsolete comment in the parameter binding logic of the CLI. No changes to code. (check-in: c9c735e2 user: drh tags: trunk)
13:08
Fix another harmless compiler warning. (check-in: 949eec25 user: drh tags: bytecode-function)
12:53
Add a missing #ifdef to avoid a harmless compiler warning. (check-in: cc54de35 user: drh tags: bytecode-function)
12:24
Merge enhancements from trunk. (check-in: d1731385 user: drh tags: bytecode-function)
2020-04-01
17:10
Add support for the "ANALYZE WITH LIMIT=N" syntax. (Leaf check-in: 7e666b60 user: drh tags: analyze-with-limit)
01:15
Simple fixes to PRAGMA analysis_limit. (check-in: c20d4fde user: drh tags: approximate-analyze)
2020-03-31
20:57
Add "PRAGMA analysis_limit=N;" to limit the number of rows visited by ANALYZE when N is positive. Positive N also disables collecting stat4. (check-in: a279b151 user: drh tags: approximate-analyze)
18:41
Merge recent enhancements from trunk. (check-in: c705ce26 user: drh tags: approximate-analyze)
2020-03-30
19:38
Minor bug fix in NATSORT collating function. (check-in: a61be109 user: drh tags: natsort)
15:39
Add the NATSORT collating sequence. No test cases yet. (check-in: 79fcaa8e user: drh tags: natsort)
13:35
Use __atomic_load_n() and __atomic_store_n() for a few more things where they are available. (check-in: a49f8ec5 user: dan tags: trunk)
11:17
Fix "GCC_VESRION" typo in wal.c. (check-in: fbd93787 user: dan tags: trunk)
2020-03-28
19:02
Enhancements to the SQLITE_ENABLE_SETLK_TIMEOUT compile-time option to avoid rare deadlocks on recovery. (check-in: 06885e9a user: drh tags: trunk)
12:01
MSVC does not allow constant expressions as initializers for constants with /fp:strict. (check-in: 076658e5 user: drh tags: trunk)
2020-03-27
17:23
Modifications to the way blocking locks are used in SQLITE_ENABLE_SETLK_TIMEOUT builds so that multiple processes or threads may not deadlock when operating on a single database. (Closed-Leaf check-in: c516027d user: dan tags: setlk-deadlock-fix)
2020-03-26
16:48
Add the tables_used() table-valued function as a variation on bytecode(). (check-in: 6283c677 user: drh tags: bytecode-function)
15:28
Merge updates from trunk. (check-in: d7db0910 user: drh tags: bytecode-function)
00:29
Reinstate the optimization that converts "x IN (y)" into "x==y". (check-in: 27936e68 user: drh tags: trunk)
2020-03-25
20:31
For the LIKE pattern in the .dump command of the CLI, accept backslash as an escape character. (check-in: 029ceea6 user: drh tags: trunk)
12:50
Enhance the ".dump" command in the CLI so that it accepts multiple LIKE pattern arguments and shows the union of all matching tables. (check-in: 45fba3d7 user: drh tags: trunk)
2020-03-24
18:41
Optimize the "subprog IS NULL" constraint. (check-in: ca8c5f02 user: drh tags: bytecode-function)
17:52
Fix a memory leak. (check-in: c9f3405e user: drh tags: bytecode-function)
13:27
Provide content for the bytecode.subprog column. (check-in: df893364 user: drh tags: bytecode-function)
2020-03-23
23:17
Fix the build so that it works even without SQLITE_ENABLE_EXPLAIN_COMMENTS. (check-in: 5896cbf4 user: drh tags: bytecode-function)
20:58
The bytecode() function now runs and sometimes works, but it untested and there are known problems. (check-in: 6819b86e user: drh tags: bytecode-function)
19:14
Further simplification and modularization of the EXPLAIN logic. (check-in: aee1c12f user: drh tags: bytecode-function)
17:24
Begin breaking appear the sqlite3VdbeList() routine into subroutines that can be reused by the bytecode() table. (check-in: 2c4dd79f user: drh tags: bytecode-function)
15:49
Infrastructure for the bytecode() table-valued function. The function itself is not yet implemented. (check-in: 2795f0d6 user: drh tags: bytecode-function)
2020-03-21
23:10
Fix to the recomputation of the colUsed field added by check-in [a9bb71ba708ba722]. This fixes ticket [5829597ac43811e3]. (check-in: 5d14a1c4 user: drh tags: trunk)
22:03
Enhance the treeview system to show the SrcList_item.colUsed field for FROM clause elements. (check-in: 8a5c539b user: drh tags: trunk)
20:58
Simplify some of the code modified by the previous commit. (check-in: 04abadb5 user: dan tags: trunk)
15:41
Ensure that "main" can always be used to refer to the main database, even if it has been renamed using SQLITE_DBCONFIG_MAINDBNAME. (check-in: 682b426f user: dan tags: trunk)
15:10
Consolidate some code on this branch. (Closed-Leaf check-in: a85c63da user: dan tags: main-alias-fix)
15:07
Change a bitfield in sqlite3_stmt into an unsigned character, for slightly smaller code and better performance. (check-in: 0d4d3c64 user: drh tags: trunk)
14:22
Performance optimization in sqlite3VdbeMakeReady(). (check-in: aa92f9b9 user: drh tags: trunk)
14:05
Merge updates from trunk. (Leaf check-in: 2383aa2c user: drh tags: explain-improvements)
03:40
Back out the sqlite3_stmt_mode() and EXPLAIN TABLES enhancements, but keep the other miscellaneous improvements to EXPLAIN that were implemented while adding the above: Turn magic numbers into symbolic constants. Add the sqlite3MemPrint() interface accessible to the debugger. Improve the performance and reduce the code size. (check-in: 62aece66 user: drh tags: explain-improvements)
00:05
Recompute the set of columns used for each table when the table is involved in query flattening. (check-in: a9bb71ba user: drh tags: trunk)
2020-03-20
20:54
Allow "main" to be used to refer to the main database even after SQLITE_DBCONFIG_MAINDBNAME has been used to assign another alias. (check-in: 75c85ca3 user: dan tags: main-alias-fix)
20:18
Avoid an undefined integer overflow in fts3 by detecting data structure corruption earlier. (check-in: 86e98ddc user: dan tags: trunk)
20:00
Add the EXPLAIN TABLES syntax that uses SQLITE_STMTMODE_TABLELIST. Seems to work, but not well-tested. (Leaf check-in: e7343ce7 user: drh tags: sqlite3_stmt_mode)
17:49
Further simplification of the EXPLAIN logic. Fix the test errors from the previous check-in. (check-in: 5eaba9af user: drh tags: sqlite3_stmt_mode)
16:13
Revamp the EXPLAIN infrastructure to facilitate sqlite3_stmt_mode(). The currently code mostly works, but there are test failures. This is an incremental check-in. (check-in: e9e17e21 user: drh tags: sqlite3_stmt_mode)
2020-03-19
21:17
Initial code for a proposed new sqlite3_stmt_mode() API. This is an incomplete snapshot of a work-in-progress. (check-in: 3cf7537b user: drh tags: sqlite3_stmt_mode)
18:13
Change the ESCAPE clause on the LIKE operator to override wildcard characters, in order to match the behavior of PosgreSQL. (check-in: 11e0844f user: drh tags: trunk)
17:27
Fix an integer overflow problem with the dbstat virtual table that comes up when trying to analyze a corrupt database. (check-in: 1d64f4a8 user: drh tags: trunk)
15:57
Fix a typo in a comment. No changes to code. (check-in: 3a51919a user: drh tags: trunk)
2020-03-18
15:58
Fix the build for when SQLITE_ENABLE_STAT4 is defined. (check-in: 8f0a8c2a user: drh tags: approximate-analyze)
14:43
Add the SQLITE_ANALYZE_LIMIT compile-time option (expected to be temporary) that sets a threshold at which ANALYZE starts to use approximations during the analysis process. (check-in: a773fd46 user: drh tags: approximate-analyze)
2020-03-17
17:11
Provide an estimated row count to stat_init() for STAT1 analysis. (check-in: 714419fe user: drh tags: approximate-analyze)
13:41
Remove the SQLITE_OMIT_BTREECOUNT option. Btree count is required. (check-in: a9bfa47a user: drh tags: approximate-analyze)
13:07
Improved bytecode comments for the ANALYZE command. (check-in: c38ea413 user: drh tags: approximate-analyze)
12:37
Merge changes from trunk. (check-in: 93d71026 user: drh tags: approximate-analyze)
2020-03-16
18:52
Fix handling of window functions in aggregate queries that have no GROUP BY clause. Also remove a faulty assert causing the error reported in [618156e3]. (check-in: 38e3dd38 user: dan tags: trunk)
03:07
At the end of the right-hand table loop of a LEFT JOIN that uses an IN operator in the ON clause, put the OP_IfNoHope operator after the OP_IfNotOpen operator, not before, to avoid a (harmless) uninitialized register reference. Ticket [82b588d342d515d1] (check-in: 8b437b47 user: drh tags: trunk)
2020-03-13
07:28
Merge SQLITE_NOOP_UPDATE fix into this branch. (check-in: e2cc655e user: dan tags: begin-concurrent-report)
07:23
Fix a typo causing SQLITE_NOOP_UPDATE builds to fail. (check-in: 1e2109fd user: dan tags: begin-concurrent-pnu)
2020-03-12
19:37
Add link from begin_concurrent_report.md back to branch timeline. (check-in: 61869f8b user: dan tags: begin-concurrent-report)
17:54
Remove stray comment characters at the end of an #ifdef that were accidently left in the previous check-in. (check-in: ea914bec user: drh tags: trunk)
17:28
Fix comments and strengthen assert() statements associated with the OPFLAG_SEEKEQ and BTREE_SEEK_EQ flags. (check-in: 23174921 user: drh tags: trunk)
2020-03-11
20:03
Merge enhancements from trunk. (check-in: 4945a662 user: drh tags: approximate-analyze)
19:56
Do not factor out constant functions into the initialization section of a prepared statement, because even though they are constant, they can still throw exceptions. Instead, put such functions in an OP_Once block. This fixes ticket [3c9eadd2a6ba0aa5] and causes COALESCE() and CASE...END to be short-circuit. (check-in: c5f96a08 user: drh tags: trunk)
19:41
Rename sqlite3ExprCodeAtInit() to sqlite3ExprCodeRunJustOnce(). Other changes to make the new code cleaner. Test cases added. (Closed-Leaf check-in: d7f18489 user: drh tags: do-not-factor-functions)
19:30
Add documentation notes and fix outstanding issues on this branch. (check-in: b288bbd1 user: dan tags: begin-concurrent-report)
17:58
Do not factor out constant functions into the initialization section at the end of the prepared statement, be cause if they throw an exception, it will abort the statement even if the function is never called. Better to put constant functions in an OP_Once block. (check-in: 97a18a5c user: drh tags: do-not-factor-functions)
16:46
Support reporting of blob fields. (check-in: 724a4a84 user: dan tags: begin-concurrent-report)
02:04
This variant to the fix for ticket [e0c2ad1aa8a9c691] uses fewer CPU cycles. (check-in: fb5a8a9e user: drh tags: trunk)
2020-03-10
22:55
Merge updates from trunk. (check-in: e05f743f user: drh tags: approximate-analyze)
21:14
Fix test and other problems with reporting pages read and written. (check-in: 9ae970fd user: dan tags: begin-concurrent-report)
19:55
Fix problem in test script concreport.test. (check-in: 32d1b721 user: dan tags: begin-concurrent-report)
19:24
Enhanced detection logic for preventing the use of static schema expressions by code generating routines. (check-in: 5f60b527 user: drh tags: trunk)
19:23
Prevent the read-only expressions held in the schema from being passed down into code generating subroutines where they might be changed. Pass a copy of the expression instead. (check-in: 2b750b0f user: drh tags: branch-3.31)
18:55
Further changes to ensure that expressions held in table and index definitions do not get passed down into code generator logic where they might be modified. (check-in: f45f5de0 user: drh tags: trunk)
13:35
Make a copy of the expression that defines a value of a generated column before sending it to the code generator routines. (check-in: 03d201c0 user: drh tags: trunk)
11:50
Apply the correct affinity transformations when pulling values off of the sorter index used for GROUP BY. Ticket [e0c2ad1aa8a9c691] (check-in: 101f7dea user: drh tags: trunk)
02:57
The sqlite3ExprCodeFactorable() routine should make a copy of non-factorable expressions, as they might be coming from a DEFAULT or generated column in a table constraint. (check-in: a2d6f108 user: drh tags: trunk)
01:24
Background work for experiments trying to enhance ANALYZE so that it runs off of samples of the entire index and does not need to read the entire index. (check-in: 29d1cc5c user: drh tags: approximate-analyze)
2020-03-09
21:00
Report on pages, as well as keys, read and written by BEGIN CONCURRENT transactions. (check-in: b661ccc8 user: dan tags: begin-concurrent-report)
18:26
Cleaner separation of the STAT4-specific logic in the implementation of ANALYZE. (check-in: 3df07e5a user: drh tags: trunk)
15:39
Enhancements to the ".import" command of the CLI. (check-in: cab1834c user: drh tags: trunk)
03:21
Fix typos in RowSet. (check-in: 86465c08 user: pdr tags: trunk)
01:02
Fix typos in the Lemon documentation. (check-in: 35f1f151 user: drh tags: trunk)
2020-03-08
13:33
Avoid a redundant NULL check (check-in: 25dc53f6 user: pdr tags: trunk)
2020-03-07
16:51
Fix reporting cases related to UPDATE. And of WITHOUT ROWID tables. (check-in: d28d1739 user: dan tags: begin-concurrent-report)
2020-03-06
20:51
Enhancement to log logical writes as well as reads. (check-in: 1c1f180e user: dan tags: begin-concurrent-report)
2020-03-05
20:59
Fix reporting for indexed range scans that extend past the end of the data. (check-in: ab458a31 user: dan tags: begin-concurrent-report)
19:00
Merge trunk change [895bd20b29] into this branch. (Actually check-in date was 2020-05-18) (check-in: 507f972e user: dan tags: reuse-schema)
18:04
Report an error if the main, or any other, database encoding is modified by an external process (perhaps using the backup API) after the db has been opened. (check-in: 895bd20b user: dan tags: trunk)
16:30
Merge trunk enhancements into the reuse-schema branch. (Actual check-in date is 2020-05-18) (check-in: 9d068e1e user: drh tags: reuse-schema)
16:13
Change the sqlite3.pDfltColl (the default collating sequence for the database connection) so that it is the collating sequence appropriate for the database encoding, not the UTF8 collating sequence. This helps to ensure that the database encoding collation is always used, even for expressions that do not have an defined collating sequence. Ticket [1b8d7264567eb6fc]. (check-in: 4a585189 user: drh tags: trunk)
14:19
When printing the OP_CollSeq opcode for EXPLAIN listings, include the text encoding with the name of the collating sequence. (check-in: eb5c1b77 user: drh tags: trunk)
2020-03-04
19:17
Fix cases to do with index scans. (check-in: 6ec5a899 user: dan tags: begin-concurrent-report)
2020-03-03
21:01
Extend begin_concurrent_report() so that it reports on accesses to non-intkey tables as well. (check-in: 427e2c9d user: dan tags: begin-concurrent-report)
20:48
Fix a false-positive in the debugging logic that attempts to detect the use of uninitialized registers inside triggers. Ticket [c4c56482ced89d90] (check-in: 0463576b user: drh tags: trunk)
20:04
Remove an invalid assert() on the debugging logic that checks to ensure that register values are not used after they go stale. Ticket [d165ad781b39d574]. (check-in: bd94d7d0 user: drh tags: trunk)
01:16
Improved detection of corruption in the interior nodes of a segment btree in FTS3/4. (check-in: cc99447a user: drh tags: trunk)
2020-03-02
21:00
Fix reporting for some range scan cases. (check-in: ad961aee user: dan tags: begin-concurrent-report)
16:31
Enhance the fuzzcheck test program so that it is able to simulate OOM errors in the same way that dbsqlfuzz does. (check-in: a65c8d4e user: drh tags: trunk)
15:05
Merge latest begin-concurrent-pnu changes with this branch. (check-in: b1880b18 user: dan tags: begin-concurrent-report)
01:50
Fix a faulty assert() statement in the stale-register detection logic. Ticket [da5a09be6dabbf42]. (check-in: 219c296c user: drh tags: trunk)
01:16
Ensure that the NULL-scan pass counter is initialized when a ORDER BY NULLS LAST is used on the right table of a LEFT JOIN. Ticket [e12a0ae526bb51c7]. (check-in: 704bb9a3 user: drh tags: trunk)
2020-02-29
17:19
Fix a problem with window functions occuring within sub-selects that are part of an OR term in a WHERE clause of the outer SELECT. (check-in: 1e174ed0 user: dan tags: trunk)
15:53
In the CLI, add the ".oom" command for debugging builds. (check-in: 9c3136a7 user: drh tags: trunk)
2020-02-28
16:04
The RTREE extension behaves as if data columns have type REAL, so we should actually declare them as REAL so that automatic indexes handle them correctly. Ticket [e63b4d1a65546532] (check-in: 85a9b6a9 user: drh tags: trunk)
2020-02-27
17:16
In sqlite3changeset_apply(), ensure that DELETE and UPDATE changes are always executed on main database tables, not similarly named temp tables, as documented. INSERT statements are already being handled correctly. (check-in: f71a13d0 user: dan tags: trunk)
16:21
Fix harmless compiler warnings from MSVC. (check-in: 951b39ca user: drh tags: trunk)
15:20
Merge latest trunk changes into this branch. (check-in: 3f5650aa user: dan tags: reuse-schema)
15:07
Optimization for "SELECT min(x) FROM tbl" where "x" is indexed and NOT NULL. This also allows similar queries on NOT NULL virtual table columns to be optimized. (check-in: 59726777 user: dan tags: trunk)
13:54
Extra zero terminators on the end of the blank filename returned by sqlite3PagerFilename() for an in-memory database. This helps the result work better with sqlite3_filename_journal() and similar functions. (check-in: 63e533d2 user: drh tags: trunk)
12:33
Backport the change that allows the filename passed into the xFullPathname to be used as an argument to sqlite3_uri_parameter(). (check-in: 9c77bfe4 user: drh tags: branch-3.31)
11:32
Ensure that the filename passed into the xFullPathname method of the VFS is acceptable as an argument to sqlite3_uri_parameter(). The interface spec does not guarantee this, but it has been so historically and some applications have come to depends on it. (check-in: bfb09371 user: drh tags: trunk)
2020-02-25
20:05
Update the fuzzcheck test module so that it avoids inserting text values that contain embedded NULs in the XSQL table. Fix some legacy entries in the test/fuzzdata8.db that had embedded NULs. Add in new dbsqlfuzz cases that have accumulated over on the dbsqlfuzz project for a while. (check-in: 47d4240c user: drh tags: trunk)
2020-02-24
17:05
If STAT4 determines that a WHERE clause term that is not used by an index has very high probability of being true, then do not use that term to reduce the estimated output row count. (check-in: 40739c79 user: drh tags: trunk)
16:46
Rework this changes so that instead of setting the WhereTerm.truthProb when a term is seen to be of low selectivity, it merely sets a new flag (the TERM_HIGHTRUTH flag) which causes whereLoopOutputAdjust() to ignore that term. (Closed-Leaf check-in: 4558163b user: drh tags: stat4-truthprob)
13:35
Disable the new analyzeG.test module if not building with STAT4. (check-in: 4a9d3005 user: drh tags: stat4-truthprob)
13:26
Merge bugfix from trunk. (check-in: b542dee9 user: drh tags: stat4-truthprob)
2020-02-23
17:34
Fix a problem with ALTER TABLE for views that have a nested FROM clause. Ticket [f50af3e8a565776b]. (check-in: c431b3fd user: drh tags: trunk)
2020-02-22
18:27
Do not activate the truthProb adjustment mechanism if the truth probability is less than the heuristic value, as there could be correlations unknown to stat4. Also add additional tracing output to make truthProb adjustments more visible. (check-in: c535fea1 user: drh tags: stat4-truthprob)
17:32
Add new test file analyzeG.test, containing a test for the change on this branch. (check-in: 243ab185 user: dan tags: stat4-truthprob)
16:58
When stat4 information is available, try to use it to improve the truth probability of WHERE clause terms that do not participate in the index. (check-in: 1babd6ec user: drh tags: stat4-truthprob)
13:01
In the OP_Column opcode, if the cursor is marked NullRow (due to being the right table of a LEFT JOIN that does not match) and the cursor is the table cursor for an OR-optimization with a covering index, then do not substitute the covering index cursor, since the covering index cursor does not have the NullRow flag set. Ticket [aa4378693018aa99] (check-in: f02030b3 user: drh tags: trunk)
2020-02-20
14:11
Add test case for previous commit. (check-in: 14d14eb5 user: dan tags: trunk)
14:08
Early-out on the INTERSECT query processing following an out-of-memory error. This fixes a potential null pointer dereference found by sakura(@eternalsakura13) of Alpha Team, Qihoo 360. (check-in: a67cf5b7 user: drh tags: trunk)
2020-02-19
15:39
Fix a potential NULL pointer dereference following OOM. Problem discovered by dbsqlfuzz. Test case in TH3. (check-in: 5aeb5a2d user: drh tags: trunk)
2020-02-18
23:58
Remove a NEVER() macro and add a test case to cause its argument to be true. (check-in: ee034fe9 user: drh tags: trunk)
19:49
Add the new sqlite3_create_filename() and sqlite3_free_filename() interfaces for use by Shims. Use these interfaces inside the multiplexor. (check-in: 9469f36a user: drh tags: trunk)
2020-02-17
23:08
Convert invalid surrogates to 0xfffd when translating UTF. (check-in: 7fab1393 user: drh tags: trunk)
19:25
A better (smaller and faster) solution to ticket [4374860b29383380]. (check-in: abc473fb user: drh tags: trunk)
00:12
Take care when checking the table of a TK_COLUMN expression node to see if the table is a virtual table to first ensure that the Expr.y.pTab pointer is not null due to generated column optimizations. Ticket [4374860b29383380]. (check-in: 9d0d4ab9 user: drh tags: trunk)
2020-02-16
17:40
Avoid an infinite recursion on an illegal recursive definition of an fts5vocab table. (check-in: 109ee074 user: drh tags: trunk)
2020-02-13
22:12
Fix problems in the constant propagation optimization that were introduced by check-in [1c3e5c20a9e6f501]. Fix for ticket [1dcb4d44964846ad] (check-in: c9a8defc user: drh tags: trunk)
14:51
Disallow the skip-scan optimization in the absence of sqlite_stat1 data. (check-in: e0c6b8bd user: drh tags: trunk)
13:45
Omit O_NOFOLLOW from the open() call when opening /dev/null, since /dev/null is a symlink on Solaris, we are told. (check-in: 0c683c43 user: drh tags: trunk)
11:46
Fix an incorrect assert() statement that was added yesterday. Tickets [41c1456a6e61c0e7] and [fb8c538a8f57ae2a]. (check-in: abfb043e user: drh tags: trunk)
2020-02-12
20:50
Increase the default upper bound on the number of parameters in a single SQL statement to 32766 (from 999). (check-in: 2def7569 user: drh tags: trunk)
11:57
When determining whether an == or IS constraint in a WHERE clause makes an ORDER BY term redundant, consider the collation sequence used by the == or IS comparison, not the collation sequence of the comparison expression itself. Possible fix for [fb8c538a8f]. (check-in: 16aed5d0 user: dan tags: trunk)
2020-02-10
19:37
Fix a typo in the in-tree begin-concurrent documentation (check-in: b13dae1c user: drh tags: begin-concurrent)
19:24
Mark the sha1() extension function as SQLITE_DETERMINISTIC. (check-in: 7d8dcfb9 user: drh tags: trunk)
13:29
Fix the build for when SQLITE_VDBE_COVERAGE is used. (check-in: 08438164 user: drh tags: trunk)
2020-02-07
19:44
During byte-code generation, strive to avoid jumps that merely jump to the following instruction. (check-in: bcf876e6 user: drh tags: trunk)
01:12
Simplify the code by removing the unsupported and undocumented SQLITE_HAS_CODEC compile-time option (check-in: 5a877221 user: drh tags: trunk)
2020-02-06
20:46
There is no need to keep track of the number of changed rows or of the last-insert-rowid while running VACUUM. (check-in: a8a7c05b user: drh tags: trunk)
15:38
Unroll the comparison loop inside keywordCode() for to avoid unnecessary comparisions and thus help that routine run faster. (check-in: cec5f920 user: drh tags: trunk)
13:57
Separate OP_IdxInsert and OP_SorterInsert into completely separate opcodes, helping each one to run a little faster. (check-in: 447d71f0 user: drh tags: trunk)
13:09
Remove dead code from the sqlite3_filename_database() function. (check-in: 1b618555 user: drh tags: trunk)
11:08
Merge changes on 3.31 branch into reuse-schema. (check-in: 6dbb8cb0 user: dan tags: reuse-schema-3.31)
11:02
Fix a 4 byte OOB read in test_multiplex.c. (check-in: 6279f69f user: dan tags: branch-3.31)
10:55
Fix some fts3 problems found by usan. (check-in: fb7ccf61 user: dan tags: trunk)
2020-02-05
18:28
Small size reduction and performance improvement in the sqlite3VdbeMemFromBtree() interface used to pull content out of the b-tree and into an sqlite3_value object. (check-in: ae6dd8d3 user: drh tags: trunk)
2020-02-04
20:22
Merge latest trunk/wal2 changes, including the SQLITE_ENABLE_CORRUPT_PGNO patch, with this branch. (check-in: 76668b55 user: dan tags: begin-concurrent-pnu-wal2)
20:11
Merge latest trunk changes into this branch. (check-in: 6ad4d6b7 user: dan tags: wal2)
20:09
Merge latest trunk changes, including the SQLITE_ENABLE_CORRUPT_PGNO patch, into this branch. (check-in: 23bc80cc user: dan tags: begin-concurrent-pnu)
20:08
Merge latest trunk changes, including the SQLITE_ENABLE_CORRUPT_PGNO patch, into this branch. (check-in: f253618a user: dan tags: begin-concurrent)
20:01
Enable more detailed log messages in SQLITE_ENABLE_CORRUPT_PGNO builds if database corruption is encountered. (check-in: 57c36a29 user: dan tags: trunk)
01:41
Extend the OP_Copy-coalesce optimization fix of check-in [b36126c1889e323c] so that it is also correctly disabled by the CASE operator. Ticket [9d3666754ac37d5a]. (check-in: 29a969d6 user: drh tags: trunk)
00:55
Fix a problem with the byte-code decompiler that was inserted by the enhancements at [4248980a356f659b] (check-in: af63e95d user: drh tags: trunk)
2020-02-03
19:56
Cosmetic change to the xfer-optimization to put the OP_RowData opcode closer to the corresponding OP_Insert opcode. This makes it slightly easier to read and understand the code. (check-in: 0ea2dbfc user: drh tags: trunk)
12:25
Increase the version number to 3.32.0. (check-in: 8130bbb4 user: drh tags: trunk)
2020-02-01
21:03
On an INSERT or UPDATE, perform affinity conversions on new data prior to running CHECK constraints. Ticket [86ba67afafded936]. (check-in: 1d4f8620 user: drh tags: trunk)
17:38
Fix the comment display for the OP_Function opcode. And at the same time, improve the comment generating logic to make use of the newer sqlite3_str_appendf() interface. (check-in: 4248980a user: drh tags: trunk)
14:29
Fix a problem in sqlite3CodecQueryParameters() that was introduced by the query parameter encoding changes for the 3.31.1 release. (check-in: 1240ee4f user: drh tags: apple-osx)
14:20
Merge the sqlite3CodecQueryParameters() fix into trunk. (check-in: a812f533 user: drh tags: trunk)
13:30
Fix a problem in sqlite3CodecQueryParameters() that was introduced by the query parameter encoding changes for the 3.31.1 release. (check-in: cc65ca54 user: drh tags: branch-3.31)
00:08
Merge version 3.31.1 (check-in: d250d085 user: numist tags: apple-osx)
2020-01-31
14:52
Fix a minor typo in a comment in the btreeinfo extension. (check-in: b5a66d10 user: drh tags: trunk)
2020-01-29
15:03
Fix a problem with the processing of IN(...) constraints handled by virtual table implementations that do not set the "omit" flag when the virtual table column contains at least one NULL value. (check-in: dcb48387 user: dan tags: trunk)
13:56
Add a test case for commit [ffd8bb93]. (check-in: bcd5b37b user: dan tags: trunk)
13:50
Remove a NEVER() that is in fact reachable. Test cases in dbsqlfuzz and TH3. (check-in: ffd8bb93 user: drh tags: trunk)
13:10
Add new memory barriers during initialization. (check-in: a9b2adc5 user: drh tags: trunk)
12:37
Modify a couple of FTS test cases so that they work on big-endian platforms. (check-in: b20503aa user: drh tags: trunk)
2020-01-28
20:27
Faster decoding of 32-bit variable-length integers in cases were we do not need to know the number of bytes in the encoding. (check-in: 59a31b16 user: drh tags: trunk)
20:09
Small performance improvement to the key-comparision routine for strings. (check-in: 41454499 user: drh tags: trunk)
18:09
Reinstate the optimization of converting "a IN (C)" into "a=C" but only if C is a constant. If the RHS is a table column, the complications of managing affinity and collations become too involved to mess with. (check-in: 8ac26a23 user: drh tags: trunk)
16:55
Fix a 4 byte OOB read in test_multiplex.c. (check-in: 91214891 user: dan tags: trunk)
15:02
Minor change for compatibility with the s390 architecture. (check-in: 04885763 user: drh tags: trunk)
2020-01-27
19:55
Version 3.31.1 (check-in: 3bfa9cc9 user: drh tags: trunk, release, version-3.31.1)
17:09
Update the version number to 3.31.1. (check-in: 6fb9a8fb user: drh tags: trunk)
14:40
Revise the layout of filenames in the Pager object so that it is unchanged from prior versions. It turns out that some important 3rd-party software does questionable pointer manipulations on those filenames that depend on that legacy layout. Technically, this is a misuse of SQLite by the 3rd-party software, but we want to avoid unnecessary breakage. (check-in: 34ab7606 user: drh tags: trunk)
2020-01-23
15:00
Fix typos in the sqlite3ext.h header file that prevent some newer APIs from being accessed from loadable extensions. (check-in: 14331989 user: drh tags: trunk)
00:08
Fix variable declaration issue seen with MSVC. (check-in: 8a6fe306 user: mistachkin tags: trunk)
2020-01-22
23:08
Fix a NEVER() macro that can be true if compiled with SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION. Ticket [b985f0bd1636d9bc] (check-in: 9f0f5d59 user: drh tags: trunk)
21:18
Merge version 3.31.0 (check-in: 9c3f4638 user: drh tags: begin-concurrent-pnu-wal2)
21:12
Merge version 3.31.0 (check-in: 3bb267de user: drh tags: wal2)
21:06
Merge version 3.31.0 (check-in: e65e6c01 user: drh tags: begin-concurrent-pnu)
20:56
Merge version 3.31.0 (check-in: bbbc2881 user: drh tags: begin-concurrent)
20:36
Merge version 3.31.0 (check-in: 0eae87ad user: drh tags: apple-osx)
20:02
Merge in version 3.31.0 (check-in: f418afa1 user: drh tags: reuse-schema)
18:38
Version 3.31.0 (check-in: f6affdd4 user: drh tags: trunk, release, version-3.31.0)
2020-01-21
21:01
Begin adding instrumentation to record and report on the set of key-ranges a concurrent transaction reads from the database. (check-in: c39e3c14 user: dan tags: begin-concurrent-report)
16:31
Update test file exclusive.test so that it works with the "journaltest" permutation. (check-in: 4daf94d8 user: dan tags: trunk)
16:23
Fix a problem with using views in SQLITE_OMIT_VIRTUAL_TABLE builds. Also some test case fixes required for the same builds. (check-in: 934ee8bd user: dan tags: trunk)
15:01
Fix a case in fts3auto.test that fails for SQLITE_DISABLE_FTS4_DEFERRED builds. (check-in: d241055e user: dan tags: trunk)
14:42
Fix an assert() that could fail in SQLITE_MUTATION_TEST builds following an error in a query that uses CTEs. (check-in: c7e29458 user: dan tags: trunk)
13:40
Fix a problem in the userauth extension causing it to occasionally set "PRAGMA count_changes" (and some others) to true. (check-in: 3a62f642 user: dan tags: trunk)
12:29
Fix the series.c and spellfix.c extensions to use SQLITE_VTAB_INNOCUOUS correctly. Fix the documentation on sqlite3_vtab_config() to take into account SQLITE_VTAB_INNOCUOUS and SQLITE_VTAB_DIRECTONLY. (check-in: 9265cb7f user: drh tags: trunk)
01:45
Improvements to the autoconf TEA Makefile for MSVC. (check-in: cffcf12f user: mistachkin tags: trunk)
2020-01-20
15:32
Merge recent fixes from trunk. (check-in: 9c920bba user: drh tags: reuse-schema)
14:42
In the fuzzcheck test program, reduce the default expression depth limit from 1000 to 500 to avoid stack-overflow problems when running stress tests using clang ASAN. (check-in: 63d886f4 user: drh tags: trunk)
2020-01-19
20:37
Enhancement to the CLI to allow the ".parameter init" command to work even if defensive mode is turned on. (check-in: 4d462550 user: drh tags: trunk)
2020-01-18
23:52
Documentation improvements. (check-in: 535afe15 user: drh tags: trunk)
22:20
In the TCL interface, add the ability to change the SQLITE_DBCONFIG_TRUSTED_SCHEMA setting using the "db config" method. (check-in: 1accfa8c user: drh tags: trunk)
21:34
Allow non-deterministic function in CHECK constraints. It turns out that PostgreSQL, MySQL, and SQLServer all allow this. We should not be the the exception. Ticket [830277d9db6c3ba1] (check-in: 8c8ce526 user: drh tags: trunk)
19:58
Fix a couple of test case issues on this branch. (check-in: 9830a44b user: dan tags: reuse-schema)
19:46
Do not use memcpy() of zero bytes when initializing a pager. This avoids a warning. (check-in: cca43778 user: drh tags: trunk)
19:07
Disable a redundant test case that uses a very large stack, and hence is unable to run with -fsanitize=undefined,address. (check-in: 3c63f68e user: drh tags: trunk)
19:02
Fix harmless compiler warning seen with MSVC. (check-in: cd0437ba user: mistachkin tags: trunk)
18:59
Have this branch call sqlite3LockAndPrepare() instead of sqlite3Prepare() when parsing SQL for new schema objects in order to ensure that schemas are released as soon as possible. (check-in: 7a4ec579 user: dan tags: reuse-schema)
14:50
Add extra front margin to the fake empty filename returned by sqlite3PagerFilename() for an in-memory or TEMP database. (check-in: fee94567 user: drh tags: trunk)
13:53
Fix the VDBE so that it correctly handles the sequence of operations OP_OpenEphemeral, OP_OpenDup, OP_OpenEphemeral, and OP_OpenDup in that order on the same cursor. (check-in: a1be6ee0 user: drh tags: trunk)
2020-01-17
23:27
Fix a typo in a comment. No code changes. (check-in: 4363f69c user: drh tags: trunk)
21:12
The compress() function should not be deterministic since the same input can have multiple possible compressed outputs. The uncompress() function, on the other hand, is deterministic. (check-in: 84f31490 user: drh tags: trunk)
19:14
Fix #ifdefs so it compiles cleanly with all SQLITE_OMIT compile-time options. Update compile-time option testing. (check-in: 7584e4b6 user: drh tags: trunk)
16:47
Improved rounding in the 'unixepoch' feature of the date and time functions. (check-in: c9abf1bd user: drh tags: trunk)
15:45
Update test script instrfault.test to account for the fact that bound blob values cast to text values are now intepreted using the text encoding of the database, instead of always as utf-8. (check-in: 4d6cb288 user: dan tags: trunk)
15:33
More restrictions on changes to shadow tables when in defensive mode. (check-in: b302b260 user: drh tags: branch-3.28)
15:24
Validate the type, name, and tbl_name fields of the sqlite_master table when loading the schema, unless writable_schema is engaged. (check-in: 3d13fbf2 user: drh tags: branch-3.28)
14:56
Do not allow shadow tables to be dropped in defensive mode. (check-in: ad1f760f user: drh tags: branch-3.28)
14:30
Import the 3.31.0-beta FTS3/4 code directly into the 3.28 branch, thus providing 3.28 with all the latest 3.31 fixes. FTS3 has not been enhanced to use any core functionality that was not already available in 3.23, so no modifications were made to FTS3 sources for this import. (check-in: be4269c6 user: drh tags: branch-3.28)
14:18
Import all FTS3/4 enhancements and fixes that exist on the latest trunk (3.31.0-beta) that do not require extensive change to the SQLite core into the 3.22 branch. Basically, the 3.31.0 FTS3 sources are copied into 3.22.0, with minor changes to work around core enhancements that are not available in 3.22.0. (Leaf check-in: cbcbb1e5 user: drh tags: branch-3.22)
11:18
Fix a case in "fuzz.test" that could fail, as non-deterministic functions may no longer appear in CHECK constraints. (check-in: a370871e user: dan tags: trunk)
2020-01-16
17:53
New testcase() macros in select.c, for coverage of the change from two check-ins ago. (check-in: 52206488 user: drh tags: trunk)
16:32
Add the SQLITE_FCNTL_CKPT_DONE file-control for the use of custom VFSs. (check-in: 3cc39e50 user: dan tags: trunk)
16:12
Do not allow the constant-propagation optimization to apple to ON/USING clause terms as it does not help and it might cause downstream problems. (check-in: 1bc783da user: drh tags: trunk)
13:02
Very small performance improvement by ensuring that the argument to sqlite3VdbeFreeCursor() is non-NULL. Hold for the next sprint. (Leaf check-in: f8801ffd user: drh tags: close-cursor-faster)
12:25
Fix an SQL syntax error in the comment on the omit-left-join optimization. No changes to code. (check-in: 86b5e5a2 user: drh tags: trunk)
11:51
Clean up the definitions of the TERM_ constants in the code generator. Formatting only - no logic changes. (check-in: af06f80a user: drh tags: trunk)
2020-01-15
17:18
Fix the assert_schema_state_ok() routine so that it correctly ignores ATTACH-ed database that failed to open due to an error. (check-in: 1194a42a user: drh tags: reuse-schema)
16:20
Do not allow the "PRAGMA encoding" statement to change the database encoding if TEMP content exists, or content in any other attached database. Formerly, encoding changes were allowed if just the main database file was empty. Ticket [a08879a4a476eea9]. (check-in: 03b003c9 user: drh tags: trunk)
14:26
Merge all recent enhancements and fixes from trunk. (check-in: f7839178 user: drh tags: reuse-schema)
14:21
Merge in the latest trunk changes via the begin-concurrent-pnu branch. (check-in: 350627f3 user: drh tags: begin-concurrent-pnu-wal2)
14:11
Merge recent enhancements and fixes from trunk. (check-in: 35eae71a user: drh tags: wal2)
13:48
Merge all recent enhancements and fixes from trunk. (check-in: 110a081f user: drh tags: begin-concurrent-pnu)
13:34
Merge fixes and enhancements from trunk into begin-concurrent. (check-in: 95ba2f50 user: drh tags: begin-concurrent)
12:49
Merge all recent enhancements and fixes from trunk into the apple-osx branch. (check-in: dadedf41 user: drh tags: apple-osx)
2020-01-14
16:50
Fix the urifuncs.c extension (used for testing and debugging only) so that the sqlite3_filename_database() SQL function and its siblings correctly handle an invalid schema name passed in as the argument. (check-in: 3d7434a9 user: drh tags: trunk)
16:39
Remove an ALWAYS on a branch for improved database corruption detection in btree.c:freeSpace(). Test case found by dbsqlfuzz. (check-in: 54bf0481 user: drh tags: trunk)
16:33
Add the new noop_nd() debugging function to the noop.c extension. (check-in: 72911fb1 user: drh tags: trunk)
13:24
For the showdb utility program, more accurate detection of when the database is in autovacuum mode for the "pgidx" subcommand. (check-in: 9ce2192b user: drh tags: trunk)
13:13
Fix a minor typo on a comment in the CLI implementation. (check-in: db4fb350 user: drh tags: trunk)
00:52
Improvements to sqlite3_open_v2() documentation. (check-in: 4c4fd62a user: drh tags: trunk)
2020-01-13
15:25
More documentation updates. No code changes. (check-in: a684d4ef user: drh tags: trunk)
13:33
Documentation updates. No changes to code. (check-in: cc0e0aa3 user: drh tags: trunk)
2020-01-12
22:38
Better than removing the incorrect assert() is to change it into a testcase() together with a comment indicating where an appropriate test case can be found, and the ticket that provoked the change. Ticket [614b25314c766238] (check-in: 3e3c60d8 user: drh tags: trunk)
22:25
Change the zipfile virtual table so that the xBestIndex method gives a reasonable cost estimate even if no filename is specified. The missing filename error continues to be raised in the xFilter method. Meanwhile, the more reasonable cost estimate avoids unnecessary wierdness in the query planner. (check-in: 0e468aa6 user: drh tags: trunk)
22:20
Remove an incorrect assert(). Fix for ticket [614b25314c766238] (check-in: 6a999c5a user: drh tags: trunk)
2020-01-11
21:08
New apis: sqlite3_filename_database(), sqlite3_filename_journal(), and sqlite3_filename_wal(). Also sqlite3_uri_key(). And the other sqlite3_uri functions now work using the journal or wal filename in addition to the database file. And the sqlite3_db_filename() result is guaranteed to work as an argument to the sqlite3_uri functions. (check-in: fd7bcc53 user: drh tags: trunk)
20:27
Minor changes for consistency between sqlite3_filename_wal() and sqlite3_filename_journal(). (Closed-Leaf check-in: 9a70ff43 user: drh tags: enhanced-uri)
16:08
Redesign for better legacy compatibility. Add the sqlite3_uri_key() interface. (check-in: bcb43d11 user: drh tags: enhanced-uri)
2020-01-10
18:05
Rearchitect the way in which filenames are stored in the Pager object so that the sqlite3_uri_parameter() interface will work from journal and WAL filenames too. This check-in implements the central idea, and compile and runs somewhat, but crashes on an extended test. (check-in: 2ae77bd2 user: drh tags: enhanced-uri)
01:05
Fix to the register validity tracking logic in debug builds. No impact on release builds. (check-in: 0a500da6 user: drh tags: trunk)
00:20
Begin making changes to turn off trusted schema in command-line tools that open SQLite databases. There are a lot of these, and a lot of places to change, which makes me wonder if trusted schema should be off by default. (Leaf check-in: 3d23a275 user: drh tags: default-untrusted-schema)
00:00
Documentation updates on newer APIs. No changes to code. (check-in: 8845a8c2 user: drh tags: trunk)
2020-01-09
23:07
Fix the fossildelta.c extension so that it will compile on mingw. (check-in: 20237d5d user: drh tags: trunk)
20:44
Merge in the untrusted-schema enhancements. See doc/trusted-schema.md for details. (check-in: 5720924c user: drh tags: trunk)
20:33
Only register the fts3_tokenizer() function using a single text encoding. (check-in: 966964af user: drh tags: trunk)
20:33
Fix a harmless compiler warning. (check-in: edbf911f user: drh tags: trunk)
20:11
Fix an assert() in window.c that could fail with some obscure SELECT statements that use window functions. Ticket [678ecf429f8d1a5f] (check-in: 83dc5567 user: dan tags: trunk)
16:28
Fix a problem in the encoding display in the updated PRAGMA function_list. (Closed-Leaf check-in: 318ff772 user: drh tags: new-security-options)
16:00
Fix minor typos in the trusted-schema.md document. (check-in: 87aea3ab user: drh tags: new-security-options)
15:18
Minor formatting changes in the trusted-schema.md document. (check-in: 55553b5e user: drh tags: new-security-options)
14:51
Design notes for the new-security-options branch. (check-in: af7c1ed4 user: drh tags: new-security-options)
13:08
Simplified error message for the unsafe use of a virtual table. (check-in: d662129a user: drh tags: new-security-options)
01:20
Fix a problem that restricted edgy functions in TEMP tables. New test cases added. (check-in: 8878c407 user: drh tags: new-security-options)
2020-01-08
22:22
Block edgy functions used in DEFAULT constraints. (check-in: da434dc1 user: drh tags: new-security-options)
20:37
Performance improvements and test cases added. Allow "PRAGMA trusted_schema=ON" (check-in: 30882ca8 user: drh tags: new-security-options)
17:28
Check for whether or not it is safe to use non-innocuous functions as the function is being coded, not when its name is resolved. (check-in: 1da802d5 user: drh tags: new-security-options)
15:44
Provide the -innocuous option to the "db func" method in the TCL interface. (check-in: 0138652b user: drh tags: new-security-options)
15:43
Fix the rot13.c extension to be deterministic. Add the noop.c extension. (check-in: a679122c user: drh tags: new-security-options)
14:39
In the TreeView debugging output, show a "DDL" mark on SrcList and Expr nodes that derive from a non-TEMP schema. (check-in: fe7472fd user: drh tags: new-security-options)
13:08
Merge recent changes from trunk. (check-in: 5962921f user: drh tags: new-security-options)
12:17
When doing a text-to-double conversion on a BLOB with an odd number of bytes and assuming a UTF16 encoding, ignore the last byte. Ticket [9eda2697f5cc1aba]. (check-in: 1c76f1d8 user: drh tags: trunk)
11:36
Fix a minor formatting error in the display of BLOB values during VDBE tracing. (check-in: 29544288 user: drh tags: trunk)
10:57
Improvements to the documentation of sqlite3_create_collation(). (check-in: fa866aec user: drh tags: trunk)
04:36
Simplification of the logic in the constant-propagation optimization. (check-in: 1c3e5c20 user: drh tags: trunk)
01:43
Fix the constant propagation optimization so that it does not try to propagate constant expressions that have affinity. Ticket [82ac75ba0093e5dc] (check-in: 6db1c349 user: drh tags: trunk)
00:39
Fix a misworded comment. No code changes. (check-in: ee0bc7ed user: drh tags: trunk)
2020-01-07
19:45
Create the "trusted_schema" pragma. Add sqlite3_vtab_config() calls to set the risk rank for many virtual tables. (check-in: 4c21373c user: drh tags: new-security-options)
18:10
Enforce SQLITE_VTABRISK restrictions. (check-in: 3d87ff31 user: drh tags: new-security-options)
18:10
Fix a performance regression caused by the previous check-in. (check-in: d7d98d3d user: drh tags: trunk)
16:09
Invert the UNTRUSTED_SCHEMA setting to be TRUSTED_SCHEMA. (check-in: f5fcf1fb user: drh tags: new-security-options)
15:44
Merge recent fixes from trunk. (check-in: 5dfa33a0 user: drh tags: new-security-options)
14:51
Provide the ability to tag an application-defined function as "testonly". (Leaf check-in: e6f5c0e0 user: drh tags: testonly-functions)
13:32
Add an "|| CORRUPT_DB" term to an assert() statement inside of btree. (check-in: 03c1d75d user: drh tags: trunk)
09:06
Fix an instance of an undefined behaviour (a left-shift of a 64-bit unsigned integer by a value greater than 64) that could occur in fts3. (check-in: e1f12978 user: dan tags: trunk)
2020-01-06
20:48
In the typeof() optimization in OP_Column, expand the size of the bogus buffer provided for data so that it is big enough to cover the increased number of bytes displayed during register tracing from check-in [54553bf16fabd72d]. This is the correct fix for ticket [bbd55a97e66ff50d], though the earlier one does not hurt and is useful to retain. (check-in: e1154c39 user: drh tags: trunk)
19:30
Merge enhancements from trunk. (check-in: 9c50f6c2 user: drh tags: new-security-options)
19:23
Rewrite the (debugging use only) sqlite3VdbeMemPrettyPrint() function to use the safer StrAccum interface rather than writing directly into a static string buffer. Perhaps this will address ticket [bbd55a97e66ff50d], which we are unable to reproduce. (check-in: 69f6a7e4 user: drh tags: trunk)
18:59
Backout change [4d0b9109f7a5312d4e1] because the conditional it added is no longer reachable due to check-in [1409758f72c0206c]. (check-in: b3f26967 user: drh tags: trunk)
18:44
Move variable declaration to start-of-block for MSVC. (check-in: 55c136ef user: mistachkin tags: trunk)
17:33
Do not attempt to use the skip-scan optimization if prior terms of the index are already used for non-equality constraints. Ticket [304017f5f04a0035] (check-in: d7126a9c user: drh tags: trunk)
17:06
Ensure the SF_Aggregate flag on a SELECT statement is set if a DISTINCT is transformed to a GROUP BY. Ticket [9c944882]. (check-in: 1409758f user: dan tags: trunk)
15:25
Refactor names of flags for improved legibility. (check-in: 411e8ec2 user: drh tags: new-security-options)
2020-01-05
21:53
Remove a NEVER in btree due to a new test case from dbsqlfuzz. (check-in: 46f8ef70 user: drh tags: trunk)
2020-01-04
20:58
Refactor the names of the new controls for restricting what actions the schema can take behind the application's back. (check-in: 65d7d39a user: drh tags: new-security-options)
19:58
Enhance PRAGMA function_list to show internal functions if the direct use of internal functions is enabled via the SQLITE_TESTCTRL_INTERNAL_FUNCTIONS test control. (check-in: 7a8d7ca7 user: drh tags: new-security-options)
19:19
Merge all fixes and enhancements from trunk. (check-in: b878c30f user: drh tags: new-security-options)
19:14
Fix DBSTAT so that it returns no rows, rather than an error when the WHERE clause is "schema=NULL". (check-in: 5b246b47 user: drh tags: trunk)
19:12
Fix harmless compiler warnings. (check-in: 8452fe03 user: drh tags: trunk)
18:38
Omit the omit flat from eq constraints on column "name" of dbstat virtual tables. Fix for [74a4c386]. (check-in: cfff5cb2 user: dan tags: trunk)
18:33
Record when the OP_IfNotOpen branch is and is not taken. (check-in: 182a898b user: drh tags: trunk)
17:55
Remove another NEVER added by check-in [7b62555e285f32d3]. Dbsqlfuzz found another test case. (check-in: 481f4956 user: drh tags: trunk)
17:42
New test cases in test/in4.test require rtree, so disable those tests on builds that lack the rtree extension. (check-in: b5900914 user: drh tags: trunk)
16:55
Fix a problem where the loop for the RHS of a LEFT JOIN uses values from an IN() clause as the second or subsequent field of an index. (check-in: 95ef6896 user: dan tags: trunk)
15:37
Merge the latest fixes from trunk. (check-in: 26ef709a user: drh tags: new-security-options)
15:21
Fix a false-positive in the register validity tracking logic by moving the temporary register release call before the jump that uses that temporary register. (check-in: 9da48a5c user: drh tags: trunk)
14:57
Improve a testcase in test/fuzzdata8.db to make it more resilient. (check-in: 139aefe6 user: drh tags: trunk)
14:50
Back out another NEVER added by check-in [7b62555e285f32d3] - the test case was already in test/fuzzdata3.db, but it only occurs if compiled without SQLITE_ENABLE_PREUPDATE_HOOK. (check-in: 61f873b1 user: drh tags: trunk)
14:00
Omit the omit flag from eq constraints on column "aggregate" of dbstat virtual tables. Fix for [727074e2]. (check-in: 74ef6f2b user: dan tags: trunk)
12:34
Restore a NEVER and an assert in btree that was removed by check-in [7b62555e285f32d3]. Dbsqlfuzz found test cases. (check-in: 04a05c83 user: drh tags: trunk)
01:43
Enhance PRAGMA function_list so that it shows all instances of each FuncDef, the number of arguments, the encoding, the type, and the flags. Use this capability to locate and fix incorrect function flags in the standard build. (check-in: 9ca906d2 user: drh tags: new-security-options)
2020-01-03
21:57
Invert the SQLITE_FUNC_SAFE bit to be SQLITE_FUNC_UNSAFE. The external bit is still SQLITE_INNOCUOUS. It gets inverted as the appdef function is registered. (check-in: 1c266cb3 user: drh tags: new-security-options)
20:57
When UNSAFE_IN_VIEW is disabled, only allow functions in views that are tagged with SQLITE_INNOCUOUS. (check-in: 9ee79b25 user: drh tags: new-security-options)
20:16
In fts3, avoid making a very large memory allocation if the merge-hint record is corrupt. (check-in: 9add58fe user: dan tags: trunk)
17:40
Add NEVER macros to error-detection branches that were made unreachable (as far as I can tell) by check-in [ceacc28b03580334]. (check-in: 7b62555e user: drh tags: trunk)
16:38
Improvement to check-in [7405e98225761180] so that missing or null filenames given to the zipfile extension throw an immediate error. (check-in: 523e09bd user: drh tags: trunk)
15:51
Improve a specific case of early database corruption dectecion in the b-tree layer. (check-in: ceacc28b user: dan tags: trunk)
15:22
Merge fixes from trunk. (check-in: 002406df user: drh tags: new-security-options)
14:34
Remove an over-zealous ALWAYS() macro and add a test case that shows that the conditional can sometimes be false. (check-in: 536e9a9d user: drh tags: trunk)
14:27
Fix a possible NULL pointer dereference caused by using a "VALUES(...)" as a component of a compound SELECT with non-integer ORDER BY clause terms. (check-in: 9d791116 user: dan tags: trunk)
14:16
Fix the OP_Copy-coalesce optimization so that if the previous row happens to end with OP_Copy but is not a candidate for the optimization due to jumps, then the optimization is correctly bypassed. (check-in: b36126c1 user: drh tags: trunk)
13:55
Ensure that when a Select object is reset a new, empty, SrcList is allocated. (check-in: 4889cbf8 user: dan tags: trunk)
02:20
When generating the name of a view (or common table expression) because the SQL does not specify a name, avoid the names "true" and "false" which might be confused for the boolean literals of the same name, leading to an inconsistent abstract syntax tree. (check-in: ff9492d3 user: drh tags: trunk)
00:28
Fix a problem in sqlite3TreeViewBareExprList() in which the routine was not interpreting the new ExprList format correctly. (check-in: cd56872a user: drh tags: trunk)
2020-01-02
23:50
Merge enhancements from trunk. (check-in: 091403a6 user: drh tags: new-security-options)
22:28
Add the two-size lookaside memory allocator. Also, reduce the per-entry size of the ExprList object. (check-in: 51665bf0 user: drh tags: trunk)
22:23
NEVER() and ALWAYS() macros tagging unreachable branches. (Closed-Leaf check-in: 34b87774 user: drh tags: two-size-lookaside)
21:41
Merge the latest enhancements from trunk. (check-in: bd57e6d9 user: drh tags: two-size-lookaside)
21:30
Do not allow the zipfile virtual table to start a transaction if no filename has been specified. (check-in: 7405e982 user: drh tags: trunk)
19:50
Fix some test logic in the OP_Delete opcode so that it works after a cursor-trip. (check-in: 28900e5c user: drh tags: trunk)
18:37
Ifdef-out code that is only possible with the sessions extension. (check-in: 4fcf07f7 user: drh tags: trunk)
17:46
Have the OP_ReleaseReg opcode also invalidate the registers if P5 is non-zero. (check-in: 937be221 user: drh tags: trunk)
16:24
Handle blobs that are the return values of functions being cast to text in utf16 databases in the same way as blobs read directly from the database. Fix for [771fe617]. (check-in: e782096a user: dan tags: trunk)
15:02
Fix the OP_Move opcode so that it correctly manages dependency tracking. This change impacts debugging builds only. (check-in: 5377add4 user: drh tags: trunk)
14:42
Enhancements to aid testing and debugging: In PRAGMA vdbe_trace=on output, show pScopyFrom dependencies on register values. Add the sqlite3VdbeRegisterDump() procedure, callable from a debugger, that shows the values of all registers. Pass the VDBE pointer into test_trace_breakpoint() so that sqlite3VdbeRegisterDump() is callable from the breakpoint. (check-in: 9886cb4b user: drh tags: trunk)
13:26
Add the test_trace_breakpoint() subroutine that is invoked after each instruction is printed while running PRAGMA vdbe_trace=on. Only works for SQLITE_DEBUG builds. Also add parameters "pc" and "pOp" to test_addop_breakpoint() to make it easier to set conditionals. (check-in: 49a6368c user: drh tags: trunk)
02:50
Use OP_Copy instead of OP_SCopy to move the results of a scalar subquery. (check-in: 435c272d user: drh tags: trunk)
00:45
The sqlite3WhereEnd() call now unwinds all Expr modifications made by the sqlite3WhereBegin(). (check-in: 7bfd42f1 user: drh tags: trunk)
2020-01-01
23:02
Provide the -DSQLITE_ENABLE_INTERNAL_FUNCTIONS=1 compile-time option. Fix the ".testctrl internal_function" command in the CLI so that it does not signal an error on a valid input. (check-in: 8ee2ce92 user: drh tags: trunk)
21:14
When generating code for a subquery, make a copy of the Select object and generate the code out of the copy, in case the code generator makes modifications to expression and the Select object needs to be reused. (check-in: 4edddcc0 user: drh tags: trunk)
20:17
Ensure that when code for a scalar SELECT featuring window functions is generated more than once by the planner, separate ephemeral tables are opened for each instance. (check-in: ce141732 user: dan tags: trunk)
16:43
Fix the sqlite3ExprImpliesNonNullRow() routine so that it correctly handles a numeric comparison of two AND subexpressions. (check-in: 07e504d5 user: drh tags: trunk)
15:43
New test-only SQL functions: implies_nonnull_row(), expr_compare(), and expr_implies_expr(). The SQLITE_TESTCTRL_INTERNAL_FUNCTIONS test-control is modified to toggle internal function access on and off for a single database connection. (check-in: 473892a8 user: drh tags: trunk)
13:55
Factor out code generation for in-line SQL functions into a separate routine inside of expr.c. (check-in: 586a65a2 user: drh tags: trunk)
01:26
Issue OP_ReleaseReg opcodes against the array of registers used to compute index records after the index record has been computed. (check-in: e3330861 user: drh tags: trunk)
2019-12-31
23:17
Remove an incorrect assert() statement. Ticket [46fcd700b855e6d1] (check-in: eca7ec9c user: drh tags: trunk)
22:52
Experimental branch with new sqlite3_db_config() options that could possible enhance security for applications reading potentially compromised database files. (check-in: 96a2db26 user: drh tags: new-security-options)
18:39
Also set the SQLITE_DIRECTONLY flag on the load_extension() function. (check-in: 3bd095a5 user: drh tags: trunk)
18:12
Set the SQLITE_DIRECTONLY flag on the fts3_tokenizer() function of FTS3, thus preventing that function from being called from within a trigger or view. (check-in: f3171dc2 user: drh tags: trunk)
15:12
Refactor names. Use "small" instead of "mini" to describe the smaller of the two lookaside memory allocation sizes. (check-in: 88d24498 user: drh tags: two-size-lookaside)
14:49
Merge recent enhancements from trunk. (check-in: 39d55579 user: drh tags: two-size-lookaside)
12:18
The OP_ResultRow opcode releases the SCopy dependences on all its registers, as the values in those registers will not be reused. (check-in: 1dc83c5d user: drh tags: trunk)
2019-12-30
23:50
Back out the NEVER() from check-in [40d10e7aad5b8992] because it is reachable after all. Ticket [892575cdba4e1e36] (check-in: f481636f user: drh tags: trunk)
23:41
Add an ALWAYS() to a conditional which is apparently always true. (check-in: ea44c607 user: drh tags: trunk)
20:42
Put a NEVER() on a defensive branch. (check-in: 40d10e7a user: drh tags: trunk)
20:42
Fix a typo in a comment. No changes to code. (check-in: d4813a8d user: drh tags: trunk)
14:32
Do not use HIDDEN columns for NATURAL joins. Fix for [7c0e06b16]. (check-in: ab09ef42 user: dan tags: trunk)
06:55
In ALTER TABLE, rename columns and tables in expressions that are optimized out by the "AND 0" optimization. Doing this also fixes an otherwise harmless assert() failure. (check-in: a9e0354c user: dan tags: trunk)
2019-12-29
22:08
Do not allow triggers that run as part of REPLACE conflict resolution during an UPDATE to modify the the table being updated. Otherwise, those triggers might delete content out from under the update operation, leading to all kinds of problems. Ticket [314cc133e5ada126] (check-in: db4b7e1d user: drh tags: trunk)
00:52
Add the OP_FinishSeek opcode which completes an OP_DeferredSeek if the seek has not already completed. Also add the sqlite3WhereUsesDeferredSeek() interface to the query planner. The UPDATE implementation adds an OP_FinishSeek before running the final OP_Insert if one is needed. Ticket [ec8abb025e78f40c] and also an assertion fault reported by Yongheng. (check-in: 21ef6e99 user: drh tags: trunk)
2019-12-28
18:25
Do not attempt to flatten compound sub-queries in a FROM clause into the parent if any component of the sub-query uses a window function. (check-in: eeb76f62 user: dan tags: trunk)
18:08
Change an assert() in where.c to a testcase() macro, since the condition may be false. This was a problem with the assert() only, there is no bug in release builds that omit assert(). (check-in: 82be135d user: dan tags: trunk)
16:20
Disable early coding of transitive constraints at the end of each loop in the WHERE clause processing if the loop being coded is for a LEFT JOIN, even if the loop is part of an OR-clause optimization for virtual tables. Test cases in TH3. (check-in: 9421b442 user: drh tags: trunk)
15:24
Fix an instance where the planner might choose to use the OR-optimization when it adds no benefit. The same quirk causes an assert() to fail. This is not a bug in released versions - without the assert() the library still gets the right answer, it just does so less efficiently than it should. (check-in: f4bed1d7 user: dan tags: trunk)
14:33
Further improvements to .wheretrace during loop code generation. (check-in: c4d5b75c user: drh tags: trunk)
14:07
New enhancements to .wheretrace. The 0x20000 flag shows the WHERE clause before and after coding each loop. The 0x800 flag shows status at the start and at the end of each loop. An extra "C" tag is shown on coded terms. (check-in: 59cc46e5 user: drh tags: trunk)
13:39
Expose some of the Where data structure debug printing routines to the entire WHERE-clause processing module. (check-in: 85e76887 user: drh tags: trunk)
13:17
Add the --enable-all option to the main configure script as a short-hand to enable FTS4, FTS5, Geopoly/Rtree, JSON, and Sessions. In the amalgamation-autoconf, the --enable-rtree option (which is enabled by default) also now activates Geopoly. (check-in: 52ea0672 user: drh tags: trunk)
13:01
Simplifications to the initialization of the sqlite3_index_info structure that is used to communicate with virtual table modules. Avoid adding unused constraints to the sqlite3_index_info structure. Extra constraints are harmless, but might be confusing to people trying to understand the code. (check-in: 5e6357fc user: drh tags: trunk)
12:33
If the ".wheretrace 0x10000" bit is set, print WhereTerm.prereqAll and .prereqRight fields in the WhereTerm trace output. (check-in: a4f330b1 user: drh tags: trunk)
11:55
Two new test cases added to test/fuzzdata8.db. (check-in: 1be2c18f user: drh tags: trunk)
09:08
Second attempt to fix a problem with unwinding the WITH stack of the Parse object following an error. (check-in: 315d1f1a user: dan tags: trunk)
08:33
Merge latest trunk changes with this branch. (Closed-Leaf check-in: d693be37 user: dan tags: better-error-handling-1)
08:26
Fix an assert() failure in altertable3-22.4. (check-in: c566a91d user: dan tags: better-error-handling-1)
03:55
Fix a faulty assert() associated with query search limiting query plans. (check-in: 0d743585 user: drh tags: trunk)
02:40
Convert an assert() back into a conditional. The conditional was converted into an assert() by check-in [6ae4ad6ebee4db88] (2009-05-28) because we were unable to find a test case for it. Yongheng's fuzzer just now found that test case. (check-in: 4d0b9109 user: drh tags: trunk)
01:52
When an INSERT is receiving content from a SELECT, run an OP_ReleaseReg opcode at the top of each iteration of the loop in order to prevent spurious OP_SCopy misuse complaints. Ticket [de4b04149b9fdeae] (check-in: 6afadd3b user: drh tags: trunk)
00:36
Recompute the values for all generated columns after NOT NULL ON CONFLICT REPLACE constraints fire. Tickets [37823501c68a09f9] and [5fbc159eeb092130]. (check-in: 4cc12c18 user: drh tags: trunk)
2019-12-27
20:54
Do not attempt to unwind the WITH stack in the Parse object following an error. This fixes a separate case to [de6e6d68], but also causes an assertion fault at select.c:4666 for test case altertab3-22.4. (check-in: d29edef9 user: dan tags: better-error-handling-1)
20:06
Remove a NEVER() that is no longer true. Fix for [36ffedcb9]. (check-in: 597896ed user: dan tags: trunk)
19:46
Fix a problem involving window function aliases being referenced from sub-selects. (check-in: e3b5fc05 user: dan tags: trunk)
18:15
Add a missing "ifcapable rtree {...}" line to the window1.test test module. (check-in: 4e6fbb1a user: drh tags: trunk)
16:25
Fix a problem with window functions in aggregate queries that do not have GROUP BY clauses. (check-in: 99609786 user: dan tags: trunk)
15:31
Do not mistake constant integers in a PARTITION BY expression for references to ORDER BY style references to values returned by the SELECT statement. (check-in: 45c64d39 user: dan tags: trunk)
13:30
Follow-up to check-in [c8c6dd0e6582ec91] - change the xAccess() method to return true if the file exists and it is anything other than a regular file, or if it is a regular file with a non-zero file size. (check-in: 8a39803e user: drh tags: trunk)
08:57
When determining if an aggregate within a sub-query should be processed as part of the sub-query or an outer query, consider any FILTER clause in the same way as the arguments to the aggregate. (check-in: 1ffc045d user: dan tags: trunk)
01:50
Ensure that the Pager.changeCountDone flag is cleared whenever dropping the write lock, even when transitioning from EXCLUSIVE locking mode into NORMAL locking mode while in WAL mode. Ticket [fb3b3024ea238d5c]. (check-in: 846b1de6 user: drh tags: trunk)
00:19
Fix buffer underflows in the zipfile extension associated with zero-length or NULL filename in the ZIP archive. But report on the mailing list by Yongheng and Rui. (check-in: 465a15c5 user: drh tags: trunk)
2019-12-26
23:40
If an UPSERT can cause an Abort due to a constraint failure, make sure the query planner knows this. Ticket [7c13db5c3bf74001]. (check-in: f14ce948 user: drh tags: trunk)
23:16
An UPDATE of a table that is indexed by a constant virtual column that uses the one-pass optimization might cause the table seek to be omitted before reaching row DELETE/INSERT. Fix this by coding an extra OP_Column in that circumstance. Ticket [ec8abb025e78f40c] (check-in: e5456049 user: drh tags: trunk)
14:36
Fix an assert() in fts5 that could fail if an xSavepoint() call on another vtab fails. Fix for [167b2aac] . (check-in: a5d7f5d2 user: dan tags: trunk)
01:10
Makefile.in fix so that it works on systems that require a .EXE suffix on executables. (check-in: f482a4cd user: drh tags: trunk)
01:02
Add two new fuzzer test cases from dbsqlfuzz. (check-in: f8d5586a user: drh tags: trunk)
00:56
In the xAccess() method of the unix VFS, return true if the named object is a directory, regardless of what stat() reports as the st_size for the object. Different filesystems report st_size differently for directories. Problem reported on the mailing list by Stefan Brüns. (check-in: c8c6dd0e user: drh tags: trunk)
00:54
Fix an FTS3 test case that depends on the ICU extension so that it only runs if SQLite is compiled with ICU. (check-in: 19c6240b user: drh tags: trunk)
00:53
Fix an incorrect assert() added by check-in [fa58aad48a788802]. Problem found by dbsqlfuzz. (check-in: a17b29f0 user: drh tags: trunk)
00:20
Disable the optimization that tries to pull the value of an expression from an index on that expression if the expression is a constant. (check-in: e5fd8b50 user: drh tags: trunk)
2019-12-25
23:54
When the sqlite3WindowRewrite() routine detects and error, have it convert the SELECT statement into just "SELECT null" so that it does not leave the parse tree in a goofy state that can cause problems with subsequent code before the stack has a chance to unwind and report the error. Ticket [d87336c81c7d0873] (check-in: fa58aad4 user: drh tags: trunk)
2019-12-24
21:42
Fix a minor performance regression from check-in [401c9d30e06191d9] (check-in: 76f54ee8 user: drh tags: trunk)
21:01
Backout the early VTable cursor close change from yesterday, as Yongheng and Rui have found a test case for which it fails. The new test case is added to fuzzcheck. (check-in: ddb10f03 user: drh tags: trunk)
20:51
Fix a problem causing fts5 integrity-check failures if numeric values are inserted into a table within a utf-16 database. Fix for [752fdbf6]. (check-in: bae060f3 user: dan tags: trunk)
18:53
Make the zipfile() extension function more robust against zero-length filenames. (check-in: b9c2005f user: drh tags: trunk)
16:20
Fix another case where malformed utf-8 was being mishandled in fts5. Fix for [df46a6f3]. (check-in: 1c0a05b0 user: dan tags: trunk)
15:35
Fix an assert() added as part of commit [a11b393dc] that can fail if fts5 database records are corrupt. (check-in: 4630c1ec user: dan tags: trunk)
15:01
Extra defense against problems following an OOM. dbsqlfuzz find. Also import the latest dbsqlfuzz test cases. (check-in: 0a70f5dd user: drh tags: trunk)
14:27
Fix a spurious report of corruption that could be made by the fts5 integrity-check in SQLITE_DEBUG builds if the fts5 index contains malformed utf text. Ticket [d62981b76de521e3] (check-in: a11b393d user: dan tags: trunk)
13:41
Convert an ALWAYS() into an assert() with an extra error term. Dbsqlfuzz find, with test case in TH3. (check-in: b473ad35 user: drh tags: trunk)
01:53
Allow comparison operators of a register against itself. Ticket [188f912b51cd802a], (check-in: 401c9d30 user: drh tags: trunk)
2019-12-23
21:11
Test case for the zipfile-extension bug fix of the previous check-in. (check-in: bc8bfc7f user: drh tags: trunk)
21:04
Fix the zipfile() function in the zipfile extension so that it is able to deal with goofy filenames that contain embedded zeros. (check-in: cc0fb00a user: drh tags: trunk)
20:41
Thoroughly reset the rtree cursor at the start of each VFilter operation, including clearing its cache. This prevents left over pages in the cache which can cause problems on shutdown after a LEFT JOIN. Ticket [5eadca17c4dde90c] (check-in: 4c50afaf user: drh tags: trunk)
20:07
Remove an extra deflateInit2() call accidently left in check-in [f5ee30426e8876e7] (check-in: 953e6aa6 user: drh tags: trunk)
19:28
Do an early close of virtual table cursors to avoid unnecessary cursor contention in UPDATE for some virtual table implementations. Ticket [56a74875be799b85] (check-in: eb95dac7 user: drh tags: trunk)
18:02
Early detection of database corruption in balance_deeper(). (check-in: 61c22336 user: drh tags: trunk)
15:17
Fix a case in which SQLite could fail to identify "x BETWEEN ? AND ?" being true as implying that x is not null. Ticket [dfd66334]. (check-in: 2f179749 user: dan tags: trunk)
14:20
For expressions like (x, y) IN (SELECT ...) where the SELECT uses window-functions, require that all columns on the LHS be indexed before an index can be used. Fix for [d9ed4ebe]. (check-in: 0b1dbd60 user: dan tags: trunk)
13:24
Fix a shift-overflow problem in yesterday's check-in [36fdeb4f0a66970a] that OSSFuzz helpfully discovered overnight. Thanks Google. (check-in: bff38e2b user: drh tags: trunk)
03:37
Fix the OP_Cast operator so that when casting to TEXT, it always leaves the result in the encoding of the database. Ticket [0911b5d161b039c6]. Test cases in TH3. (check-in: f347744e user: drh tags: trunk)
02:43
Change the assert() back into a testcase(). See also check-ins [9ab985a9c8160b90] and [ddb17d92df194337] and other check-ins that those reference. Fix for ticket [9d708e474201c001] (check-in: 2c44c734 user: drh tags: trunk)
02:18
Enhance the sqlite3VdbeMemAboutToChange() shallow-copy validation mechanism by adding the new OP_ReleaseReg opcode to tell MemAboutToChange() that a range of registers is no longer needed so that the source register can be freely changed. This is a change to debugging and test builds only and does not impact release builds. Fix for ticket [c62c5e58524b204d] and [5ad2aa6921faa1ee]. The previous fix to ticket [5ad2aa6921faa1ee] is backed out by this change since this change is a better fix. (check-in: 36fdeb4f user: drh tags: trunk)
2019-12-22
23:48
Change the code generator for the IN operator so that it avoids creating OP_Eq and OP_Ne opcode with the same P1 and P3 arguments. This enables us to back out check-in [ddb17d92df194337] and also fix ticket [188f912b51cd802]. (check-in: 9ab985a9 user: drh tags: trunk)
20:29
Make a hard copy of strings in constraint checks prior to applying OP_RealAffinity, to avoid problems with a pointer accounting assert. This change is not strictly necessary - the correct answer is obtained without it and no UB occurs - however the pointer accounting asserts are useful to prevent other problems so it is a simple matter to bring this piece into compliance. Ticket [5ad2aa6921faa1ee] (check-in: 89a9dad6 user: drh tags: trunk)
20:03
When constructing the virtual MATCH term of the WHERE clause for a virtual table that is in a LEFT JOIN, be sure to set the correct Expr.iRightJoinTable value. This value does not appear to ever be used, except inside of a single assert(). But it is good to set it correctly, nevertheless. This fixes ticket [7929c1efb2d67e98], which as far as I can tell is completely harmless. (check-in: ef604882 user: drh tags: trunk)
19:41
In the WHERE clause debugging output (the .wheretrace output) show the parent index of any WhereTerm that is a child. (check-in: 7fc73332 user: drh tags: trunk)
18:55
Fix to the optimization of check-in [a47efb7c8520a011] that reads the values of expressions used in an index-on-expression directly from the index rather than recomputing the value. If the expression has a top-level COLLATE or unlikely() operator, be sure to clear the corresponding flags prior to converting it into a TK_COLUMN expression. Failure to do this is most likely harmless in production, but might cause an assertion fault in debugging builds. Ticket [b0cb8aff561a6dcd]. Test cases in TH3. (check-in: 56539e1c user: drh tags: trunk)
18:23
Back out the asserts of check-ins [a500893b6f64aced] and [d9c9fe9f5ad3fc91] as ticket [1b06916e01c82b66] demonstrates a case that refutes them. (check-in: ddb17d92 user: drh tags: trunk)
18:06
When parsing a CREATE TABLE from the sqlite_master table, delete the CHECK constraints if there are any errors, since there might otherwise be attempts to use those CHECK constraints if PRAGMA writable_schema=ON is set. This undoes the fix in check-in [ea721b34477ab8b4] for a more general solution. (check-in: a982e643 user: drh tags: trunk)
17:32
Ensure sqlite3WindowRewrite() is called on a SELECT statement before any terms aremoved from it as part of IN() clause processing. Fix for [f00d096ca]. (check-in: 8c856404 user: dan tags: trunk)
14:29
Fix "PRAGMA data_version" so that it works the same way with locking_mode=PERSIST and journal_mode=PERSIST configured. Fix for 7a458c2a5f. (check-in: 45748e2d user: dan tags: trunk)
2019-12-21
20:43
Fix a spurious report of corruption from the fts3/4 integrity-check triggered by using the languageid option. (check-in: 70815e27 user: dan tags: trunk)
19:37
When creating a new virtual table, ensure that the OP_ParseSchema opcode processes the correct entry in the sqlite_master table even if there is a second entry with the same name and table values due to database corruption and the use of writable_schema=ON. Dbsqlfuzz find. (check-in: 4dbb6e1c user: drh tags: trunk)
14:09
When a corrupt schema is loaded using writable_schema=ON, the CHECK constraints (or other expressions in the table definition) might not be fully resolved. Ensure that the code generator can deal with this if the table is subsequently used in a DML statement. dbsqlfuzz find. (check-in: ea721b34 user: drh tags: trunk)
2019-12-20
22:46
Do not try to access a generated column through an index if the collating sequence for the generated column is non-standard. Part 2 of ticket [e0a8120553f4b082] (check-in: 056bb8dc user: drh tags: trunk)
20:45
Apply real affinity to generated columns of type REAL that are extract from an index. Ticket [e0a8120553f4b082] (check-in: 728ad39e user: drh tags: trunk)
20:08
Debugging enhancment: Show the Expr.y.pTab pointer on TK_COLUMN nodes of an expression tree in the treeview. (check-in: 64154ac4 user: drh tags: trunk)
20:03
Fix a bad interaction between RBU and [df51ae19]. (check-in: 0b9d8a12 user: dan tags: trunk)
19:41
Fix two more cases in fts5 where sqlite3_value_bytes() was being called before sqlite3_value_text(). Fix for e431c355. (check-in: a1ba9a37 user: dan tags: trunk)
17:41
Export the public RBU entry points from the Win32 DLL. (check-in: e62d1791 user: mistachkin tags: trunk)
17:25
Debugging improvement: when tracing the VDBE, output the register value for OP_Cast after the cast is completed. (check-in: dc5f1d28 user: drh tags: trunk)
15:35
When computing dependencies on WHERE-clause terms, be sure to take into account the FILTER clause of aggregate functions. Problem reported by Manuel Rigger. (check-in: 3cc2b570 user: drh tags: trunk)
14:37
Improved assert() statements on the OP_Column opcode. (check-in: c538601e user: drh tags: trunk)
14:24
Load new dbsqlfuzz test cases into test/fuzzdata8.db. (check-in: 01aeeb5c user: drh tags: trunk)
14:18
Fix a potential problem with ALTER TABLE commands on schemas that contains a triggers or view featuring a sub-query that uses an ON clause with a join that is not a LEFT JOIN. (check-in: 365dd8b6 user: dan tags: trunk)
14:08
Fix harmless compiler warnings. (check-in: 2bbd014c user: drh tags: trunk)
13:24
Ensure fts5 consistently calls sqlite3_value_text() before sqlite3_value_bytes(). This matters when storing blobs in fts5 tables within utf-16 databases. Fix for [cf36cb4e02]. (check-in: c16305eb user: dan tags: trunk)
12:55
Do not continue an ALTER TABLE tree walk of a subquery if a prior error is seen in the tree. Report the problem immediately, without continuing. (check-in: 01ca865f user: drh tags: trunk)
12:33
Fix an assert() in btree.c that can fail if an INSERT is attempted on a corrupted database while in PRAGMA writable_schema=ON. (check-in: 07beb362 user: drh tags: trunk)
2019-12-19
22:08
Continuation of [e2bddcd4c55ba3cb]: Add another spot where it is necessary to abort early due to prior errors in sqlite3WindowRewrite(). (check-in: cba2a2a4 user: drh tags: trunk)
21:11
Fix the regexp extension so that it correctly translates all over-length 3-byte UTF8 sequences into 0xfffd. (check-in: 3d4c0bf8 user: drh tags: trunk)
20:37
When an error occurs while rewriting the parser tree for window functions in the sqlite3WindowRewrite() routine, make sure that pParse->nErr is set, and make sure that this shuts down any subsequent code generation that might depend on the transformations that were implemented. This fixes a problem discovered by the Yongheng and Rui fuzzer. (check-in: e2bddcd4 user: drh tags: trunk)
17:42
Detect the invalid use of NULLS LAST on an INTEGER PRIMARY KEY definition of a WITHOUT ROWID table. (check-in: 4417c5bf user: drh tags: trunk)
15:15
Fix the zipfile extension so that INSERT works even if the pathname of the file being inserted is a NULL. Bug discovered by the Yongheng and Rui fuzzer. (check-in: a80f84b5 user: drh tags: trunk)
13:17
Fix incorrect SQL generated by the Lemon change of the previous check-in. (check-in: fccfb8a9 user: drh tags: trunk)
12:29
Modify the parse.sql output file from Lemon so that the RULE table contains a column with the complete text of the rule. (check-in: 329cbb37 user: drh tags: trunk)
03:14
More restrictions on changes to shadow tables when in defensive mode. (Leaf check-in: 4146c629 user: drh tags: branch-3.30)
00:59
Minor enhancement to Win32 locking semantics. (Leaf check-in: ed66ffce user: mistachkin tags: win32LockFlags)
2019-12-18
21:22
Change an unreachable testcase() into an assert() (check-in: 062e00c4 user: drh tags: trunk)
20:51
Continue to back away from the LEFT JOIN optimization of check-in [41c27bc0ff1d3135] by disallowing query flattening if the outer query is DISTINCT. Without this fix, if an index scan is run on the table within the view on the right-hand side of the LEFT JOIN, stale result registers might be accessed yielding incorrect results, and/or an OP_IfNullRow opcode might be invoked on the un-opened table, resulting in a NULL-pointer dereference. This problem was found by the Yongheng and Rui fuzzer. (check-in: 86297431 user: drh tags: trunk)
13:42
Add the --vdbe-debug option to fuzzcheck. (check-in: 289158aa user: drh tags: trunk)
13:02
Enhancements to fuzzcheck on unix so that it captures signals and prints the current test file and test number prior to terminating. (check-in: ae7cbb24 user: drh tags: trunk)
09:17
Add a test case for fix in check-in [1ca0bd982ab1183b] (check-in: 519864da user: drh tags: trunk)
02:12
Correctly unwind the savepoint stack if the database goes read-only in the middle of a savepoint. (check-in: a96d02b4 user: drh tags: trunk)
01:31
Remove an assert() in the code generator that can fail due to an invalid INSERT statement. The same assert() appears again in the VDBE and will fire there if the problem persists in an SQL statement that does not contain errors. Gramfuzz find. (check-in: 9bdd57cb user: drh tags: trunk)
00:05
When processing constant integer values in ORDER BY clauses of window definitions (see check-in [7e4809eadfe99ebf]) be sure to fully disable the constant value to avoid an invalid pointer dereference if the expression is ever duplicated. This fixes a crash report from Yongheng and Rui. (check-in: 1ca0bd98 user: drh tags: trunk)
2019-12-17
12:03
Clean up the ExprList that holds the names of columns in a CTE before checking for unused references in the ALTER TABLE implementation. (check-in: 8223e79f user: drh tags: trunk)
2019-12-16
16:52
When a table is part of a LEFT JOIN and should be a completely NULL row due to the semantics of a LEFT JOIN, make sure any generated columns on that row evaluate to NULL. Ticket [3b84b42943644d6f] (check-in: 02714914 user: drh tags: trunk)
2019-12-15
02:49
Ensure that all ON CONFLICT REPLACE indexes are sorted to the end of the list of indexes for a table, even for weird cases where the same UNIQUE constraint occurs twice with the ON CONFLICT REPLACE clause only on the second one. This avoids an out-of-order contraint processing problem that can arise due to the optimization of check-in [469a62ca33081854]. (check-in: 1e3918ca user: drh tags: trunk)
00:36
Abort the OP_Savepoint opcode early if a virtual table xSync method fails, perhaps due to an interrupt. (check-in: 672e749a user: drh tags: trunk)
2019-12-14
19:55
When a generated column expression is initially parsed, if it contains errors convert the expression to a simple NULL. This prevents additional pieces of the expression tree that are allocated from lookaside from leaking into the schema, where lookaside allocations are not allowed. (check-in: a89b3860 user: drh tags: trunk)
18:08
Due to the previous change, the p5 parameter to OP_VColumn no longer ever contains extraneous bits, so change a testcase() into an assert() to show as much. (check-in: 5b4a88cd user: drh tags: trunk)
17:43
Do not set OP_Column flags on the instructions generated by sqlite3ExprCodeGetColumn() if the opcode generated is not really an OP_Column, which might happen if the column is virtual. Fix for ticket [b439bfcfb7deedc6] (check-in: 2401e047 user: drh tags: trunk)
15:01
Make the sqlite3ExprCodeTarget() expression code generator routine robust in the face of unknown opcodes - it simply generates a NULL value. (check-in: f8e876c8 user: drh tags: trunk)
14:15
Fix problems in fts3 with processing corrupt records and undefined integer overflows. (check-in: 3b873029 user: dan tags: trunk)
2019-12-13
23:38
Fix an utterly harmless "applying zero offset to null pointer" UB warning in sqlite3AtoF(): (check-in: 052fdf5e user: drh tags: trunk)
22:59
Initial exploration of blocky APIs, starting with a variant of sqlite3_exec. (Leaf check-in: fd849d5b user: numist tags: blocky-exec)
21:24
Patch to the page cache to avoid harmless pointer arithmetic that due to bugs in the STD-C spec is technically UB. This is to fix a harmless UBSAN complaint that OSSFuzz is hitting. (check-in: c29fc212 user: drh tags: trunk)
16:04
Change the default lookaside configuration to 40 slots of 1200-bytes each. This actually works out to 30 big slots and 93 small slots using the mini-lookaside allocator. We get the same (or better) lookaside coverage but with 72KB less memory per connection. (check-in: 47b71a84 user: drh tags: two-size-lookaside)
15:48
Cleanup and performance enhancements for mini-lookaside. (check-in: 74805668 user: drh tags: two-size-lookaside)
12:14
Merge fixes from trunk. (check-in: 9c471195 user: drh tags: two-size-lookaside)
11:42
Ensure that there is a containing SELECT statement when processing a normal aggregate function as if it were a window function. (check-in: c1014e80 user: drh tags: trunk)
11:32
*Remove* the macros, not just comment them out. (check-in: e5dc2939 user: drh tags: trunk)
11:31
Remove unused macros formerly used to define built-in aggregate functions. (check-in: 3ef0d44e user: drh tags: trunk)
01:12
Reduce the size of ExprList to 24-bytes per entry, down from 32-bytes per entry. This helps keep lookaside allocations in the mini-size. (check-in: bda92d92 user: drh tags: two-size-lookaside)
00:49
Tie up the loose ends in the ExprList size reduction. (Leaf check-in: 59d0f3af user: drh tags: two-size-lookaside, exprlist-size-reduction)
2019-12-12
22:11
Work toward reducing the incremental size of an ExprList object to 24-byte per entry, from 32-bytes (on a 64-bit machine). This helps the new mini-lookaside allocator to run better by avoiding excessive reallocs. The current change mostly works, but still has a few loose ends to tie up. This check-in is merely a snapshot to save my work. (check-in: fdda76cf user: drh tags: two-size-lookaside, exprlist-size-reduction)
20:58
Reduce the number of call sites to dbMallocRawFinish in the case where n > lookaside.sz (check-in: e392e7f2 user: numist tags: two-size-lookaside)
20:39
Fix an issue where malloc could be used to fulfill a small allocation when a large lookaside slot could have beeen used instead. (check-in: 611020e3 user: numist tags: two-size-lookaside)
20:22
Change the name of the Expr.a.zName field to zEName, so that it has a name that is distinct from other fields and variables and is hence easier to grep for. (check-in: d3783357 user: drh tags: two-size-lookaside)
17:17
Change the size of a mini-lookaside allocation to a macro (MINI_SZ) rather than a magic number (128). (check-in: 5e1949bc user: drh tags: two-size-lookaside)
16:49
Merge enhancements from trunk. (check-in: 6cb053f9 user: drh tags: two-size-lookaside)
15:19
Factor out the conditional (which is only true for rare errors) from the notValid() function in resolve.c, for a performance improvement and size reduction. Also cause failures to set the Expr node to a NULL operator so that it does not cause problems later in case PRAGMA writable_schema=ON has been set. Test cases in TH3. (check-in: c6af9f65 user: drh tags: trunk)
02:50
More efficient implementation of a lookaside allocator that supports mini (in this case, harcoded to 128B) slots. (check-in: b02fdc09 user: numist tags: two-size-lookaside)
00:20
Fix goofy string formatting in lemon.c that dates from the K&R-C days. (check-in: 48ba5e5a user: drh tags: trunk)
2019-12-11
18:53
Improved tracing output from the LEMON-generated parser. (check-in: 4d6d2fc0 user: drh tags: trunk)
16:22
Strengthen check-in [83da4d4104ee1870] by ignoring *all* WHERE-clause constraints for a virtual table that is the right table of a LEFT JOIN, as such constraints are never useful. This fixes an issue discovered by Manuel Rigger. (check-in: 840de36d user: drh tags: trunk)
15:07
When trying to drop a virtual table that has no xDestroy method, invoke the xDisconnect method rather than doing nothing, to avoid a memory leak. (check-in: 1fa29a5f user: drh tags: trunk)
14:25
The xDestroy method of a module might be NULL if the schema is corrupt. (check-in: 0457e7d1 user: drh tags: trunk)
2019-12-10
20:41
Enhance LEMON to provide the ability to mark a rules as one that will never reduce due to intervention of actions. Use this new capability to designate the EXPLAIN rule as NEVER-REDUCES. (check-in: 136cdefb user: drh tags: trunk)
18:10
Use a statement journal on a CREATE VIRTUAL TABLE statement in case the VCreate opcode fails. (check-in: aa3b0eb8 user: drh tags: trunk)
15:05
Fix parser bugs: require a semicolon after an EXPLAIN command. (check-in: 707a058a user: drh tags: trunk)
03:40
Avoid a buffer overread in fts5 that could occur when parsing corrupt configuration records. (check-in: 355afd77 user: dan tags: trunk)
02:48
Set the affinity of regular columns prior to computing the values of generated columns. Ticket [d7c3f125c925c522] (check-in: d47d66e3 user: drh tags: trunk)
2019-12-09
19:44
Rename a local variable to avoid masking a function parameter and thus causing a harmless compiler warning. (check-in: f065cf00 user: drh tags: trunk)
19:29
Add a NEVER() to the ALTER TABLE fix in check-in [1d2e53a39b87e364] (check-in: c7309ed3 user: drh tags: trunk)
18:22
The previous check-in was not quite correct, and introduced a new problem with the USING clause. Use this version instead. (check-in: ed28aaa4 user: drh tags: trunk)
17:14
Ensure that the SrcList_item.colUsed field is set correctly (set to have a 1 for all columns of the table) when a generated column appears in the USING clause of a join. (check-in: 1923efb2 user: drh tags: trunk)
15:52
Fix the NOT NULL verification logic in PRAGMA integrity_check so that it works for generated columns whose value is the result of a comparison operator. Ticket [bd8c280671ba44a7] CVE-2019-19646. (check-in: f3b39c71 user: drh tags: trunk)
14:34
Fix a gramfuzz find. If a partial index that does not reference any column of its table is used by an UPDATE statement in one-pass mode, then avoid the use of OP_DeferredSeek since the seek might not be resolved prior to the OP_Delete and OP_Insert that implement the UPDATE. (check-in: e3398c5f user: drh tags: trunk)
08:13
Avoid infinite recursion in the ALTER TABLE code when a view contains an unused CTE that references, directly or indirectly, the view itself. (check-in: 1d2e53a3 user: dan tags: trunk)
02:20
Fix possible null pointer dereferences in the fts5_expr() scalar function. (check-in: c5d44143 user: dan tags: trunk)
2019-12-08
00:06
Fix incorrect column-usage accounting associated with generated columns and added by check-in [6601da58032d18ae]. Fix for ticket [b92e5e8ec2cdbaa1]. (check-in: 9d75e1cc user: drh tags: trunk)
2019-12-07
13:42
Correctly deal with multi-row VALUES clauses that contain window functions. (check-in: 26d991f2 user: drh tags: trunk)
12:13
Ignore type affinity for auxiliary columns in RTREE as it is too error-prone to try to parse out the type from other constraints. Ticket [8bf76328ac940d52] (check-in: 7fa664ea user: drh tags: trunk)
00:22
Fix a problem with foreign keys and generated columns discovered by Manuel Rigger. (check-in: 27c0fdab user: drh tags: trunk)
2019-12-06
19:07
Early detection and reporting of too few columns in an rtree CREATE VIRTUAL TABLE statement. (check-in: ef73107f user: drh tags: trunk)
13:10
In the rtree extension, actively suppress extra tokens on the column names, and be pedantic about column affinities. Ticket [367a86e28859f1ff] (check-in: 97fb5a72 user: drh tags: trunk)
11:48
The check-in [b7810062ec2489e1] was not quite right in that it allowed an oversized shift operation (which is UB in C) on some obscure inputs. OSSFuzz found the problem for us overnight. (check-in: 62f2235a user: drh tags: trunk)
01:38
Further enhancements to RTREE, following up to check-in [f898d04cf272ef01] so that constraints are allowed to be compared to strings that look like numbers. Ticket [aa573a787b8f1fdf] (check-in: 32772dfd user: drh tags: trunk)
01:23
Do not allow UPSERT of a view. (check-in: ebf897e8 user: drh tags: trunk)
2019-12-05
21:46
Fix to the rowvalue logic that avoids disabling rowvalue inequality contraints on a virtual table when the virtual table sets the omit flag. The logic has been incorrect since row-values were added. However, this does not come up often as very few virtual tables implement inequality constraints using the omit flag. Ticket [f096d191b6641daa] (check-in: b7810062 user: drh tags: trunk)
18:29
Documentation update: Clarify that the sqlite3_index_info.aConstraintUsage.omit flag is a hint only and that the code generator is not obligated to follow the hint. (check-in: 7d3e3f6e user: drh tags: trunk)
17:31
Additional debugging information printed with the ".wheretrace 0x100" option. No changes to normally delivered code. (check-in: fc72ec52 user: drh tags: trunk)
14:42
Make sure the rowid of an RTREE virtual table has integer affinity. Ticket [9fe487ba3c064b4e] (check-in: 7ae8c0d5 user: drh tags: trunk)
14:31
Fix a problem in ALTER TABLE that could occur if an index, view or trigger in the schema features an expression of the form ((SELECT ...) IN ()) where the SELECT statement uses a CTE. (check-in: 7e5ad8e0 user: dan tags: trunk)
13:34
Be strict about type enforcement on rowid look-ups in the RTREE extension. Ticket [30e2c183b6b356e4] (check-in: d43e0efb user: drh tags: trunk)
00:44
Enhance the RTREE extension so that it give correct query results even if the query uses non-numeric constraints. Ticket [a55ab6d97d01ecbc] (check-in: f898d04c user: drh tags: trunk)
2019-12-04
19:45
Window functions are never constant. (check-in: 35f0b5a8 user: drh tags: trunk)
15:08
Ensure that an ALWAYS() in the rename logic really is always true, even for faulty inputs. (check-in: 54410f0e user: drh tags: trunk)
14:26
Fix an assert() failure that could occur in ALTER TABLE code when the schema contains a view that uses a CTE. (check-in: 75b04a4b user: dan tags: trunk)
03:46
Fix a buffer overread that could occur in fts3 with corrupt %_stat records. (check-in: e01fdbf9 user: dan tags: trunk)
03:31
Fix an incorrect NEVER() macro. (check-in: 96b6a76d user: drh tags: trunk)
01:42
Fix a double-free that could occur when a component of a compound SELECT with an ORDER BY clause uses named window definitions. (check-in: 92893b79 user: dan tags: trunk)
2019-12-03
03:34
Avoid a crash that could occur when a database containing a table with a temp trigger that has the same name as a temp table is detached. (check-in: c4cb9708 user: dan tags: trunk)
03:31
Avoid a harmless zero offset of a null pointer in FTS3, so as to not provoke unnecessary warnings from run-time checkers. (check-in: 85d95abe user: drh tags: trunk)
02:51
Avoid computing a zero offset of a null pointer, which though this is technically harmless, is upsetting to pedantic run-time checkers. (check-in: 3ce804e9 user: drh tags: trunk)
2019-11-30
19:29
Do not allow a term in the WHERE clause of the query to qualify a partial index on the right table of a LEFT JOIN. Ticket [7f39060a24b47353] (check-in: 4066a34d user: drh tags: trunk)
2019-11-29
13:01
Add comments in the parse.sql file to help demonstrate how rules are encoded. (check-in: 2c4f7148 user: drh tags: trunk)
12:51
Fix the parse.sql output file so that it is readable into a database where foreign keys are enforced. (check-in: 3a82c554 user: drh tags: trunk)
2019-11-27
20:40
More details on the comment justifying the aleged data race in the WAL-mode checkpoint logic. (check-in: 0fab65c7 user: drh tags: trunk)
12:03
Fix obsolete comment. No changes to code. (Leaf check-in: 0ff59edb user: drh tags: reuse-shm)
2019-11-26
14:24
Fix various documentation typos suggested by Mark Benningfield. No changes to code. (check-in: 08f09dc4 user: drh tags: trunk)
11:10
Fix to check-in [5d9a369301a65f32] so that it compiles without SQLITE_DEBUG. (check-in: fefe2d04 user: drh tags: trunk)
02:22
Add the new -S option to the lemon parser generator to cause it to output SQL that describes the input grammar. (check-in: 4dbd398d user: drh tags: trunk)
02:03
Fix an assert() in fts3 that could fail due to corrupt database records. (check-in: 5d9a3693 user: dan tags: trunk)
2019-11-25
23:55
Experimental file-controls for controlling the use of the -shm file. (check-in: 12b8fa23 user: drh tags: reuse-shm)
04:15
Modify journal3.test so that it can handle Tcl command "file attr <file> -perm" returning octal values in either "00755" or "0o755" format. (check-in: b0b65562 user: dan tags: trunk)
00:07
Minor enhancements to the TclKit download tool. (check-in: 75e31b1d user: mistachkin tags: trunk)
2019-11-23
16:34
Abort the window function tree rewrite early following an OOM. (check-in: d66f95a5 user: drh tags: trunk)
15:10
Avoid evaluating PARTITION BY or ORDER BY expressions multiple times for window function queries that use multiple window functions with the same window-definition. (check-in: 57070c68 user: dan tags: trunk)
08:51
Enhance the path arguments in JSON functions to access "#-N" array indexes. (check-in: ffeec62c user: drh tags: trunk)
08:36
Fix a memory leak in fts5 error handling code. (check-in: de6637e1 user: dan tags: trunk)
2019-11-22
17:37
Extend the json-path mechanism with array indexes of the form "#" or "#-n" for some positive number "n", to reference the end of an array. (Closed-Leaf check-in: 35ed68a6 user: drh tags: json-path-enhancement)
11:49
Fix a harmless compiler warning. (check-in: 34343c4b user: drh tags: trunk)
11:47
Fix an indentation error and improve the placement of an assert() based on a tweet from Yuri Kotov. (check-in: e6314e38 user: drh tags: trunk)
11:38
Add more test cases from Yongheng Chen and Rui Zhong. (check-in: f24e6ca4 user: drh tags: trunk)
10:14
Fix a crash that could occur if a sub-select that uses both DISTINCT and window functions also used an ORDER BY that is the same as its select list. (check-in: bcdd66c1 user: dan tags: trunk)
00:42
Revise the SQLITE_OPEN_NOFOLLOW so that it actually uses O_NOFOLLOW in the open() system call. This backs out the SQLITE_ACCESS_SYMLINK value but adds the new SQLITE_OK_SYMLINK return code from the xFullPathname method of sqlite3_vfs when that routine resolves symbolic links. O_NOFOLLOW is always included in open() system calls for journal files. (check-in: 6a64fb6a user: drh tags: trunk)
2019-11-21
20:24
Add all fuzz-test cases received from Yongheng Chen and Rui Zhong. Also fix a minor problem in gencol1.test cases. (check-in: ac080432 user: drh tags: trunk)
20:10
Fix an out-of-bounds array reference in the generated column logic. Problem discovered by valgrind. (check-in: a0ab42f7 user: drh tags: trunk)
19:37
Whenever a generated column is used, assume that all columns are used. (check-in: 6601da58 user: drh tags: trunk)
18:28
Fix a problem that comes up when using generated columns that evaluate to a constant in an index and then making use of that index in a join. (check-in: 8b12e95f user: drh tags: trunk)
17:14
Fix a recently introduced memory leak in the test code in test_vfs.c. (check-in: 2d53a30c user: dan tags: trunk)
14:20
Prevent direct and indirect recursive content= options in fts3/4 and fts5. (check-in: 2eb99732 user: dan tags: trunk)
2019-11-20
16:10
Fix a use-after-free problem in the test suite. No changes to production code. (check-in: 0d1055a5 user: dan tags: trunk)
13:31
Further improve detection of corrupt records in fts3. Also fix an error with check-in [dfcf081d842629a0] (check-in: a0f6d526 user: dan tags: trunk)
12:07
Changes to extensions and test logic so that the build works with gcc and with -std=iso9899:1999 (check-in: 2575a68c user: drh tags: trunk)
2019-11-19
21:22
Enhancements to DBSTAT: (1) Make name=? queries efficient. (2) Add the ability to aggregate results across each individual btree using the aggregate=TRUE constraint in the WHERE clause. (check-in: a48f6e17 user: drh tags: trunk)
18:48
Get the aggregate=TRUE feature working on the DBSTAT virtual table. (Closed-Leaf check-in: 16fef3db user: drh tags: dbstat-enhancements)
14:01
Begin an enhancement effort for the built-in DBSTAT virtual table. (check-in: 9b5722f0 user: drh tags: dbstat-enhancements)
00:13
Make the result of sqlite3_normalized_sql() survive its statement being reprepared. (check-in: 4330f079 user: mistachkin tags: trunk)
2019-11-18
23:48
Add support for the SQLITE_ACCESS_SYMLINK flag in the Win32 VFS. (check-in: 175c1500 user: mistachkin tags: trunk)
22:34
Ensure all file names passed to the VFS layer are double-zero terminated. (check-in: 251230cf user: mistachkin tags: trunk)
18:43
In the SQLITE_OPEN_NOFOLLOW processing, distinguish between an I/O error on the xAccess() call and an actual symlink encounter. (check-in: 2e98b42f user: drh tags: trunk)
17:46
Add support for SQLITE_OPEN_NOFOLLOW. (check-in: cb79c828 user: drh tags: trunk)
14:04
Improvements to detection of corruption in the %_stat shadow table of FTS4. (check-in: 6b67eba5 user: drh tags: trunk)
12:04
Further improvements to shadow table corruption detection in FTS3. (check-in: e35d8c76 user: drh tags: trunk)
11:14
Detect and prevent infinite recursion in fts3SelectLeaf() due to a malformed FTS3 btree. (check-in: dfcf081d user: drh tags: trunk)
10:37
Improved detection of corruption in the %_stat table of FTS4. Chromium ticket 1025467. (check-in: 10f8a3b7 user: drh tags: trunk)
2019-11-17
11:47
Fix an assert that can fail if the schema is corrupt. (check-in: ed57c48e user: drh tags: trunk)
02:41
Better detection of corruption in the %_stat and %_docsize shadow tables of FTS3. (check-in: 1e449687 user: drh tags: trunk)
00:08
Remove a reachable NEVER() in FTS3. (check-in: 8bd75bf6 user: drh tags: trunk)
2019-11-16
23:47
More improvements to shadow table corruption detection in FTS3. (check-in: 51525f9c user: drh tags: trunk)
21:40
Improved detection of corrupt shadow tables in FTS3. Enable the debugging special-inserts for FTS3 for both SQLITE_DEBUG and SQLITE_TEST. (check-in: 04b2873b user: drh tags: trunk)
18:36
Do not allow shadow tables to be dropped in defensive mode. (check-in: 0a988ce3 user: drh tags: apple-osx)
18:30
Modify three test cases so that they work even with unusual versions of the library printf(). (check-in: c2528907 user: drh tags: apple-osx)
16:54
More restrictions on changes to shadow tables when in defensive mode. (check-in: bae76a5c user: drh tags: trunk)
14:15
Do not allow CREATE TABLE or CREATE VIEW of an object with a name that looks like a shadow table name. (Closed-Leaf check-in: 6aef58b6 user: drh tags: defensive-improvements)
13:51
Break out the test for writable shadow tables into a separate subroutine. (check-in: 8ad34d36 user: drh tags: defensive-improvements)
12:04
Do not allow shadow tables to be dropped in defensive mode. (check-in: 70390bbc user: drh tags: trunk)
11:33
Fix a potential NULL pointer dereference on a RENAME TABLE that references a VIEW with a logic error in a window function in the ORDER BY clause. (check-in: 0adb273f user: drh tags: trunk)
2019-11-15
21:16
Modify three test cases so that they work even with unusual versions of the library printf(). (check-in: 8f4a3750 user: drh tags: trunk)
02:52
Merge the version 3.30.1 changes into the apple-osx branch. (check-in: 2c8af352 user: drh tags: apple-osx)
00:52
Fix table-valued functions so that they will work as the right table in a LEFT JOIN. Ticket [2ae0c599b735d59e] (check-in: 2c35d3f6 user: drh tags: trunk)
2019-11-14
23:08
Backport support for the sqlite3_hard_heap_limit64() interface and the hard_heap_limit pragma to the 3.30 branch. (check-in: ba27012d user: drh tags: branch-3.30)
18:07
Add support for the sqlite3_hard_heap_limit64() interface and the hard_heap_limit pragma. (check-in: 6399c47e user: drh tags: trunk)
17:46
Fix a bug in the hard_heap_limit pragma so that it returns the new value of the hard_heap_limit, not the soft_heap_limit. Change SQLITE_MAX_MEMORY so that it works by setting the default hard_heap_limit value. (Closed-Leaf check-in: 33fd0c3a user: drh tags: hard-heap-limit)
15:21
Merge recent enhancements from trunk. (check-in: b8a631fd user: drh tags: hard-heap-limit)
15:10
Minor documentation enhancements. No changes to code. (check-in: 6153f3aa user: drh tags: hard-heap-limit)
13:57
New test cases added to fuzzdata8.db. (check-in: 5baffcda user: drh tags: trunk)
13:24
Ensure that the same subquery does not go through the window-function rewrite more than once, even when that subquery is part of a virtual table constraint that lacks the omit flag. (check-in: d0bc7db6 user: drh tags: trunk)
2019-11-13
18:50
Add header guard to the expert extension. (check-in: 7e315185 user: mistachkin tags: trunk)
16:50
Fix the sqlite3TreeView() output to consistently use a colon and not a comma after the table number in the AST dumps. (check-in: fa2416f6 user: drh tags: trunk)
2019-11-12
16:21
For for the previous check-in: Always enable the nUri variable, even when debugging is turned off. (check-in: f84a1539 user: drh tags: trunk)
14:43
Ensure that the main filename and the journal filenames in the pager object are all correctly double-zero terminated. (check-in: df51ae19 user: drh tags: trunk)
03:45
Remove a harmless unused variable. (check-in: 28091a48 user: drh tags: trunk)
2019-11-11
15:13
Remove an asm() block from build tool mksourceid.c, as it causes build failures on some systems and performance is not important at build-time. (check-in: 8e100e6c user: dan tags: trunk)
2019-11-10
11:09
Proper surrogate pair decoding added to JSON functions. See the mailing list bug report and https://bugs.python.org/issue38749. More test cases needed here, but it seems to work so far. (check-in: 51027f08 user: drh tags: trunk)
10:08
Remove an incorrect ALWAYS() macro. (check-in: f7a74f89 user: drh tags: trunk)
2019-11-09
15:31
Change the COLFLAG_NOTAVAIL bitmask so that it fits in the single-byte Walker.eCode field. (check-in: 53847f5c user: drh tags: trunk)
14:44
New dbsqlfuzz test cases added. (check-in: 18c3a17d user: drh tags: trunk)
14:38
Make sure the WITH stack in the Parse object is disabled following an error. (check-in: de6e6d68 user: drh tags: trunk)
2019-11-08
20:13
When a virtual table reports orderByConsumed, that tells us nothing about whether or not the SQLITE_DISTINCTBY constraint is met. Fix for ticket [7e59041f9c4e5102]. Test cases in TH3. (check-in: b59f94e4 user: drh tags: trunk)
2019-11-07
19:59
Experimental branch to provide SQLITE_LIMIT_HEAP_K to limit the amount of allocated memory used by each database connection, individually. (Leaf check-in: 4ab9dbb9 user: drh tags: limit_heap_k)
14:51
Fix the xferCompatibleIndex() function so that it recognizes that a PRIMARY KEY index for a WITHOUT ROWID table is different from a UNIQUE constraint index on the primary key. Ticket [302027baf1374498] (check-in: 34f64f11 user: drh tags: trunk)
02:32
Restore generated column loop detection logic that was incorrectly removed from the previous check-in [9e07b48934e9a972]. This fixes ticket [299b50ba812d8e54] (check-in: 104a2beb user: drh tags: trunk)
2019-11-06
22:19
Change the way generated columns are computed so that no column is computed inside branch code that might not be taken. Ticket [4fc08501f4e56692] (check-in: 9e07b489 user: drh tags: trunk)
19:25
Minor simplification to the changes from check-in [36c11ad51f]. (check-in: 7bc8205d user: mistachkin tags: trunk)
17:31
Fix the OP_DeferredSeek index-to-table column map in P4 so that it works with generated columns. Ticket [ce22a07731530118] (check-in: 36c11ad5 user: drh tags: trunk)
14:49
Fix the handling of NOT NULL constraint violations for generated columns in a REPLACE statement. Ticket [2399f5986134f79c] (check-in: 77b1c90a user: drh tags: trunk)
2019-11-04
12:49
Changes an unreachable testcase() into an assert(). (check-in: 5710845b user: drh tags: trunk)
02:05
Fix a false-postive in the sqlite3ExprImpliesNonNullRow() decision routine, that resulted in an incorrect LEFT JOIN strength reduction when the WHERE clause contained a row-value comparison. Ticket [02aa2bd02f97d0f2] (check-in: ea20068e user: drh tags: trunk)
2019-11-03
00:07
The optimization of check-in [9b2879629c34fc0a] is incorrectly reasoned. The WHERE clause of the partial index might not be true if the table of the partial index is the right table of a left join. So disable the optimization in that case. Ticket [623eff57e76d45f6] (check-in: 3be19e11 user: drh tags: trunk)
2019-11-02
17:59
Fix a problem in VIEW creation that was introduced by the generated columns feature. (check-in: 9c795c4d user: drh tags: trunk)
13:45
"STORED" is not actually a keyword. The parser looks for STORED as an ordinary identifier. (check-in: 167cd574 user: drh tags: trunk)
13:32
In sqlite3GenerateIndexKey(), do not attempt to reuse column values from the previous index if the current index is a partial index as the partial index test may have changed those values. Ticket [a9efb42811fa41ee] (check-in: 17e9f658 user: drh tags: trunk)
00:00
Restore the on-line ".help" for the ".explain" command in the CLI. (check-in: 28b8f103 user: drh tags: trunk)
2019-11-01
18:52
Fix a harmless compiler warning. (check-in: f0ebea35 user: drh tags: trunk)
17:31
The SET DEFAULT and SET NULL conflict resolution actions for foreign key constraints should cause an error when they appear on a generated column. (check-in: b47513d2 user: drh tags: trunk)
16:37
Fix a potential use-after-free bug that follows an OOM error in code added two days ago by check-in [84e02d773d60cffe]. Problem discovered by OSSFuzz. (check-in: 0a2eb949 user: drh tags: trunk)
16:08
Add another missing column number translation to the foreign key logic. (check-in: 32df5edc user: drh tags: trunk)
15:19
Omit the optimization that reduces the column-count on rowid-table cursors when the table has generated columns, because we do not know what columns the generator expressions might try to access. (check-in: e6c96ed9 user: drh tags: trunk)
13:37
Fix an fts3 assert() that could fail when operating on a database containing corrupt records. (check-in: 7c52f547 user: dan tags: trunk)
12:14
Add missing column translations to foreign key logic. Ticket [c28a01da72f8957c] (check-in: bc6a43e7 user: drh tags: trunk)
10:49
Fix a potential array bounds overflow in the mkkeywordhash.c code generator. Also add marks to omit keywords specific to generated columns when building with -DSQLITE_OMIT_GENERATED_COLUMNS. (check-in: cc6a4081 user: drh tags: trunk)
02:30
Slightly faster keyword hash table. (check-in: f12e743e user: drh tags: trunk)
2019-10-31
20:54
Correctly generate pre-UPDATE content for virtual columns that are used by foreign key constraints. Ticket [b9befa4b83a660cc] (check-in: 40d3282e user: drh tags: trunk)
17:13
Add a few simple TCL test cases for generated columns. (Full test coverage of the generated column logic is provided separately by TH3.) (check-in: acedb5c7 user: drh tags: trunk)
13:16
Ignore differences in Expr.op2 in sqlite3ExprCompare() in cases where it does not matter. Ticket [1d2a8efc6c3a595a]. (check-in: 32982067 user: drh tags: trunk)
12:30
Enhance the TreeView logic to show information about Expr.op2 for FUNCTION and COLUMN nodes. (check-in: aceeaf9e user: drh tags: trunk)
2019-10-30
18:50
Always disallow the use of non-deterministic functions in CHECK constraints, even date/time functions that use the 'now' or similar keywords. Provide improved error messages when this requirement is not met. Ticket [830277d9db6c3ba1] (check-in: 2978b65e user: drh tags: trunk)
16:29
Simplify the bytecode generation for SQL function calls such that the OP_Function or OP_PureFunc opcodes are coded directly, rather than using the intermediate OP_Function0 or OP_PureFunc0 - opcodes that are now removed. (check-in: 84e02d77 user: drh tags: trunk)
13:00
New tokens ALWAYS, GENERATED, and STORED used by generated columns should all be fallback tokens. (check-in: 13fe6978 user: drh tags: trunk)
2019-10-29
16:18
Remove the legacy_file_format PRAGMA. In its place, provide the SQLITE_DBCONFIG_LEGACY_FILE_FORMAT option to sqlite3_db_config(). Fix for ticket [6484e6ce678fffab] (check-in: 4d424f30 user: drh tags: trunk)
03:39
Tighten the generated column requirement such that every table must have at least one non-generated column. Ticket [166347c6fc994155]. (check-in: 4fba090e user: drh tags: trunk)
03:30
Add a missing translation from table column numbers to storage table numbers while processing constraints on an UPDATE statement. Ticket [9621dd78a024d07a] (check-in: 361ea81a user: drh tags: trunk)
01:26
Disallow tables that have only virtual columns. (check-in: 59197321 user: drh tags: trunk)
2019-10-28
13:54
Fix a problem in fts3 causing it to report corruption if a doclist contains consectutive rowid entries that differ by more than 2^63. (check-in: 0b0a3048 user: dan tags: trunk)
13:07
Remove a NEVER() comparison from sqlite3ExprCompare(). (check-in: f4285297 user: drh tags: trunk)
04:20
ALWAYS macro added for coverage. (check-in: a1e1ba91 user: drh tags: trunk)
2019-10-27
22:22
Improved detection of attempts to use a generated column as part of the primary key. Ticket [91e86951016a6802] (check-in: 6d1bbba9 user: drh tags: trunk)
2019-10-26
23:51
Remove code from the constraint checker that generates virtual column values with the incorrect time. Turns out the the regular code for all other columns works correctly and so the incorrect special-case code is not actually needed. Fix for ticket [3ea175512444b0d1]. (check-in: 5b4c0f2d user: drh tags: trunk)
18:56
Remove redundant code resulting from a merge error on the previous check-in. (check-in: 713fe86b user: drh tags: trunk)
18:47
Add support for generated columns. (check-in: b855acf1 user: drh tags: trunk)
17:08
Performance optimization on sqlite3GenerateConstraintChecks() - bypass the loop that checks each column for NOT NULL constraints if it is known in advance that the table has no NOT NULL constraints. (check-in: e3c3f4d7 user: drh tags: trunk)
16:38
Clarify some comments and add assert() and testcase() macros to the replace-trigger recheck logic for ticket [c1e19e12046d23fe] (check-in: 8c0042bd user: drh tags: trunk)
16:02
Fix a problem in the legacy ".explain on" formatting when it is used on a query with more than 8 output columns. (check-in: 070b4982 user: drh tags: trunk)
15:40
Minor changes to help ensure the pointer returned by sqlite3VdbeGetOp() is not used after it becomes invalid. (check-in: 346bdd49 user: drh tags: trunk)
12:27
Overnight, OSSFuzz helpfully pointed out a potential use-after-free bug in yesterdays changes, involving continued use of a pointer after the memory pointed to had been realloc()-ed. Thanks Google. (check-in: c422afb5 user: drh tags: trunk)
01:43
Add missing VdbeCoverage() macro. Fix an off-by-one error in partial index handling. New test cases. Ticket [c1e19e12046d23fe] (check-in: 41cc8e3d user: drh tags: trunk)
00:04
If replace triggers are run during uniqueness checking, then rerun all uniqueness checks a second time using the ABORT algorithm. Fix for ticket [c1e19e12046d23fe] (check-in: fbac0c65 user: drh tags: trunk)
2019-10-25
14:46
Performance optimization in sqlite3BtreeCursor(). (check-in: ea068b09 user: drh tags: trunk)
2019-10-24
23:43
Merge fixes from trunk. (Closed-Leaf check-in: 4ec57d88 user: drh tags: generated-columns)
21:02
The previous fix was incomplete. It is also necessary to disable the Expr.y.pTab field when making the translation. (check-in: b99d5701 user: drh tags: generated-columns)
20:35
In fts5, fix a case of overreading a buffer by 1 byte when counting characters in malformed utf-8. Fix for [dd1f67bf]. (check-in: 8d964e1c user: dan tags: trunk)
20:29
Fix handling of covering indexes that use virtual columns. (check-in: e0f7e321 user: drh tags: generated-columns)
19:35
Correction to check-in [bec5b6d4d083556d] so that it detects *all* triggers that might perturb the insertion cursor. Ticket [50c09fc2cf0d91ce]. (check-in: 521f1d36 user: drh tags: trunk)
01:04
Do not allow ALTER TABLE ADD COLUMN for a STORED column. (check-in: 42fc08bc user: drh tags: generated-columns)
2019-10-23
21:00
Add an experimental set of UUID processing functions as the uuid.c extension in ext/misc/uuid.c. (check-in: 1a6e0093 user: drh tags: trunk)
18:14
Add uuid_string and uuid_blob functions (Leaf check-in: 97ba442b user: numist tags: uuid-funcs)
18:09
When a vector comparison appears in the WHERE clause and the constraint side has a COLLATE clause on the first term of the vector, be sure to honor that COLLATE clause. Ticket [135c9da7513e5a97]. (check-in: 978b2d20 user: drh tags: trunk)
18:01
Create new branch named "uuid-funcs" (check-in: 815dc043 user: numist tags: uuid-funcs)
15:47
Minor adjustments for clarity and test coverage. (check-in: 30065716 user: drh tags: generated-columns)
03:53
Fix incorrect arguments to testcase() macros. (check-in: 812467fb user: drh tags: generated-columns)
00:31
Fix the foreign key logic to be compatible with generated columns. (check-in: 3de57145 user: drh tags: generated-columns)
2019-10-22
21:01
Take the declared column time into account when computing the values for generated columns, and apply appropriate affinity. (check-in: 9e04ba22 user: drh tags: generated-columns)
20:16
Merge the row-value fix from trunk. (check-in: 1fbd7438 user: drh tags: generated-columns)
19:51
Disqualify row-value comparisons for use by an index if the right-hand side has an affinity that does not match the index. Fix for ticket [6ef984af8972c2eb] (check-in: 5c118617 user: drh tags: trunk)
15:45
Do not allow generated columns in the PRIMARY KEY. (check-in: 1a54743a user: drh tags: generated-columns)
13:59
In UPDATE processing, include generated columns in the set of columns being updated if and only if their generator expressions reference some other column that is being updated. (check-in: d38176e9 user: drh tags: generated-columns)
13:01
New testcase() macros. Fix a problem with INSERT when the IPK is to the right of generated columns. (check-in: 412799fc user: drh tags: generated-columns)
12:02
Merge changes on trunk into the generated-columns branch. (check-in: ba123b8c user: drh tags: generated-columns)
11:29
Previous check-in to fix [b47e3627ecaadbde] was incomplete. This check-in completes the fix and adds a test cases. (check-in: c7da1c01 user: drh tags: trunk)
01:00
Move the sqlite3LocateCollSeq(), sqlite3FindCollSeq(), and sqlite3GetCollSeq() routines so that they are all beside one another in the callback.c source file. No logic changes. (check-in: 9ff80a9b user: drh tags: trunk)
00:03
When flipping ("commuting") a comparison operator, set the new EP_Commuted bit rather than adding extra EP_Collate bits, to single later processing that the order of precedence for COLLATE operators is inverted. Fix for ticket [b47e3627ecaadbde] (check-in: 90f7c477 user: drh tags: trunk)
2019-10-21
23:41
Add a VdbeCoverage() macro that was omitted from check-in [eea1e7aa57e74c43]. (check-in: cd2317d0 user: drh tags: trunk)
16:15
Try to fix a harmless compiler warning reported by ICC. (check-in: 7f41b44c user: drh tags: trunk)
01:04
Changes to the INSERT logic to make it simpler and faster and so that it works with generated columns and BEFORE triggers. (check-in: bc368cb0 user: drh tags: generated-columns)
2019-10-20
08:26
Fix a resource leak in fts5 that could occur if an auxiliary function is called from within a query that does not use the full-text index. (check-in: b528bdcd user: dan tags: trunk)
2019-10-19
18:47
Work toward getting generated columns to work with triggers. Still more work to do in this area. (check-in: 932a3727 user: drh tags: generated-columns)
15:01
Add testcase macros. (check-in: fb9c9bb2 user: drh tags: generated-columns)
13:29
Refactor names of column index transformation functions, for clarity. Get generated columns working with ALTER TABLE RENAME COLUMN. (check-in: 27ab41c9 user: drh tags: generated-columns)
2019-10-18
22:54
Use an allocation count and freelist instead of a membership bitfield in the mini lookaside allocator (Leaf check-in: 9496b4d3 user: numist tags: 2-size-lookaside)
18:33
Fixes for WITHOUT ROWID tables with VIRTUAL columns and an INTEGER PRIMARY KEY. (check-in: 86074da0 user: drh tags: generated-columns)
17:47
Merge trunk enhancements into the generated-columns branch. (check-in: 85bc4524 user: drh tags: generated-columns)
17:42
Get generated columns working for WITHOUT ROWID tables. (check-in: 9f409649 user: drh tags: generated-columns)
15:58
Enhance the ".imposter" command in the CLI so that the first argument can be an existing WITHOUT ROWID table instead of an index. The resulting imposter is the same table, but with columns in storage order and with all constraints removed. (check-in: 9dc0d345 user: drh tags: trunk)
12:52
Claw back some performance from the sqlite3ExprGetColumnOfTable() routine. (check-in: e8426acb user: drh tags: generated-columns)
12:14
Fix sqlite3ColumnOfIndex() to account for virtual columns. (check-in: 44727112 user: drh tags: generated-columns)
10:05
Get indexes working on virtual columns. (check-in: 450c4876 user: drh tags: generated-columns)
02:19
STORED columns can now reference other STORED columns, in any order, as long as there are not loops. (check-in: 0d236698 user: drh tags: generated-columns)
2019-10-17
18:35
In the Table object, change the nVCol field to nNVCol - the number of non-virtual columns, as that is the quantity that we need most. (check-in: 4ad66af0 user: drh tags: generated-columns)
18:07
Bug fix with INSERT using an explicit column list on a table with a non-final STORED column. (check-in: 61b4459a user: drh tags: generated-columns)
17:54
Some (but not all) INSERT and UPDATE statements now work for STORED columns. (check-in: fe7517bf user: drh tags: generated-columns)
16:16
Fix the xfer optimization for generated columns, so that VACUUM works again. (check-in: 8f67b89b user: drh tags: generated-columns)
15:59
Basic UPDATE functionality working for VIRTUAL columns. (check-in: c21959d4 user: drh tags: generated-columns)
15:41
Avoid an infinite loop in fts3/4 incremental-merge in the case where the lowest level in the database contains segments but no data (because there is a delete-marker for each valid entry). Fix for [bf1aab89]. (check-in: 35beaee0 user: dan tags: trunk)
14:21
Bug fixes so that "make test" once against runs with no errors. (check-in: 7bfe0f67 user: drh tags: generated-columns)
13:15
Fix the table_info and table_xinfo pragmas so that they work with virtual columns. Table_info omits virtual columns. Table_xinfo gives them a "hidden" flag of 2, and 3 for STORED columns. (check-in: 069351b8 user: drh tags: generated-columns)
2019-10-16
22:01
INSERT with named columns for a table with generated columns. (check-in: 64db39f9 user: drh tags: generated-columns)
20:05
ALTER TABLE is able to add a VIRTUAL column. (check-in: 120c6b78 user: drh tags: generated-columns)
19:31
Simple INSERT and SELECT operations working with VIRTUAL columns. (check-in: 7f9f90b1 user: drh tags: generated-columns)
17:46
Enhancements to SQL query normalization for UPDATE statements. (check-in: bba975c7 user: mistachkin tags: trunk)
14:56
If an AFTER DELETE trigger fires when a conflict row is deleted by REPLACE conflict resolution, make sure the conflict really has been resolved and that the trigger did not recreate the row before continuing. Ticket [a8a4847a2d96f5de] (check-in: eea1e7aa user: drh tags: trunk)
12:18
Initial experimental code for generated column support. Non-functional. (check-in: 11d472c1 user: drh tags: generated-columns)
2019-10-15
19:01
Formatting change on a multi-line conditional, for improved clarity. No logic changes. (check-in: 7248e347 user: drh tags: trunk)
2019-10-14
20:32
Futher improvements to the IN operator for row-values on virtual tables. (check-in: bc751fb6 user: drh tags: trunk)
15:24
New test cases in test/fuzzdata8.db. (check-in: 344d9cb0 user: drh tags: trunk)
15:15
Fix a problem with row-value IN(...) operators and virtual tables. (check-in: aa57d7ab user: dan tags: trunk)
2019-10-12
23:38
When Select-Trace is enabled (in debugging builds only) do not show the result of Window function tree rewrites if there are no window functions. (check-in: d1acf72a user: drh tags: trunk)
2019-10-11
18:55
Update the zipfile extension to use deflateBound(), instead of compressBound(), to learn the maximum possible size of a deflate()d buffer. (check-in: f5ee3042 user: dan tags: trunk)
17:14
Futher improvements to LEFT JOIN strength reduction. (check-in: 8a39167b user: drh tags: trunk)
16:01
Improvements to the LEFT JOIN strength reduction optimization. (check-in: 548082df user: drh tags: trunk)
15:33
Ensure fts3/4 prefix indexes are flushed to disk before an 'optimize' command. Fix for [745f1abc]. (check-in: 4ed905b1 user: dan tags: trunk)
14:27
Fix the fts3/4 integrity-check command so that it works with "ORDER=DESC" tables. Fix for [8a6fa2bb]. (check-in: 5863546d user: dan tags: trunk)
14:25
Increase the version number to 3.31.0 for the next release cycle. (check-in: ffd4c306 user: drh tags: trunk)
14:21
Faster response to sqlite3_interrupt() in the OP_IntegrityCk and OP_Count opcodes. (check-in: bf875dc5 user: drh tags: trunk)
11:21
Merge the 3.30.1 changes into reuse-schema. (Leaf check-in: eff7cd7f user: drh tags: reuse-schema-3.30)
2019-10-10
23:58
Update the autoconf makefile for MSVC. (check-in: 9455643e user: mistachkin tags: trunk)
23:58
Fix harmless compiler warning seen with MSVC. (check-in: 73a82114 user: mistachkin tags: trunk)
20:19
Version 3.30.1 (check-in: 18db032d user: drh tags: release, version-3.30.1, branch-3.30)
17:09
Prevent SQLite from assuming that if ((? IS NOT NULL) IS NOT NULL) is true, ? may not be NULL. Fix for [c31034044bb72c89]. (check-in: 7833feec user: dan tags: trunk)
16:41
Fix a problem in the fts3 integrity-check routine causing it to report as corrupt tables that contain values with embedded 0x00 bytes. Ticket [278ac142625e3dcd] (check-in: 629e20c9 user: dan tags: trunk)
16:21
Avoid assuming that an expression that contains the sub-expression (? IS FALSE) or (? IS TRUE) may only be true if ? is non-null. Fix for [a976c487]. (check-in: c6cc2390 user: drh tags: branch-3.30)
16:10
Fix a problem with running ALTER TABLE ADD COLUMN statements within a transaction that writes to one or more virtual tables. Fix for [8fe768e9]. (check-in: a4974a0f user: drh tags: branch-3.30)
15:57
Fix the OP_SeekRowid opcode so that it works correctly with a Real argument without damaging the value in the register that is the argument. Ticket [b2d4edaffdc156cc]. Test cases in TH3. (check-in: b02630fe user: drh tags: branch-3.30)
15:48
Be sure to rewrite column references inside FILTER clauses and window frame definitions when flattening queries. Fix for [1079ad19]. (check-in: df2060f3 user: drh tags: branch-3.30)
15:42
Version number to 3.30.1. (check-in: 12e28cc7 user: drh tags: branch-3.30)
15:17
Be sure to rewrite column references inside FILTER clauses and window frame definitions when flattening queries. Fix for [1079ad19]. (check-in: ccba7202 user: dan tags: trunk)
2019-10-09
21:14
Avoid assuming that an expression that contains the sub-expression (? IS FALSE) or (? IS TRUE) may only be true if ? is non-null. Fix for [a976c487]. (check-in: eb7ed90b user: dan tags: trunk)
18:36
Do not allow users to effectively disable fts5 crisismerge operations by setting the crisismerge threshold to higher than the maximum allowable segment b-trees on a single level. Fix for [d392017c]. (check-in: 86e49720 user: dan tags: trunk)
17:38
Merge recent fixes and enhancements from trunk. (check-in: 553258c2 user: drh tags: 2-size-lookaside)
17:06
An alternative, experimental lookaside memory allocator that uses two different slot sizes. (check-in: 5ba8cee8 user: sperry tags: 2-size-lookaside)
15:37
An improved fix for the dbsqlfuzz-discovered ALWAYS() failure following OOM in sqlite3ExprCollSeq(). This time with a test case (engineered by Dan). (check-in: 907f7965 user: drh tags: trunk)
15:26
Disallow fts5 page sizes greater than 65536 bytes - as there are 16-bit offsets used in the page header. Fix for [81a7f7b9]. (check-in: 75775c5a user: dan tags: trunk)
15:08
Remove the "fastfuzztest" makefile target. Use only "fuzztest". (check-in: e17571c7 user: drh tags: trunk)
15:03
New test cases added to test/fuzzdata8.db. (check-in: b68d21e9 user: drh tags: trunk)
15:00
Change sqlite3SelectDup() to always return NULL if an OOM has occurred. (check-in: 01ba4641 user: drh tags: trunk)
13:52
Use the "fuzztest" target in place of "fastfuzztest". (Closed-Leaf check-in: 7129e468 user: drh tags: makefile-cleanup)
13:12
Remove the obsolete "fastfuzztest" target from the makefiles. (check-in: 3d44f1ee user: drh tags: makefile-cleanup)
01:19
Save CPU cycles in sqlite3Prepare() by, among other things, shifting the EXPLAIN column label logic over to sqlite3VdbeMakeReady(). (check-in: 1ca5ef84 user: drh tags: trunk)
2019-10-08
19:45
Store 64-bit offset values in osinst log files. (Leaf check-in: 74d975c6 user: dan tags: osinst)
13:34
Fix problems with using the fts5 'rebuild' command inside a transaction that contains other updates of the same table. Fix for [e258f008]. (check-in: 238e0835 user: dan tags: trunk)
2019-10-07
20:36
Disallow page-sizes smaller than 32 bytes in fts5. Also ensure the fts5 integrity-check works even when "PRAGMA reverse_unordered_selects" is true. Fix for [265e935b26]. (check-in: 8ab0aebd user: dan tags: trunk)
20:33
Omit a pointless memory allocation in vdbeSorterSort(). (check-in: 5d76dbc5 user: drh tags: trunk)
18:43
Fix a problem with running ALTER TABLE ADD COLUMN statements within a transaction that writes to one or more virtual tables. Fix for [8fe768e9]. (check-in: 31e85fbb user: dan tags: trunk)
13:46
Add a test case for the assert() fix in the previous commit. (check-in: 32fba11a user: dan tags: trunk)
13:26
Fix a faulty assert() statement in the sqlite3VdbeMemExpandBlob() routine. (check-in: 69a26ead user: drh tags: trunk)
10:29
Avoid attempting to read 0 bytes from a file in the osinst vtab code. (check-in: 1fb76c3e user: dan tags: osinst)
01:05
Fix the OP_SeekRowid opcode so that it works correctly with a Real argument without damaging the value in the register that is the argument. Ticket [b2d4edaffdc156cc]. Test cases in TH3. (check-in: 3cde82c8 user: drh tags: trunk)
2019-10-05
19:53
Omit the check for conflicting shared-cache locks in sqlite3Prepare() if the database connection uses no shared cache. We might be able to go back and remove this code completely, due to the newer Schema.iGeneration logic, but that will take more analysis. This check-in gives the speed benefit but not the reduction in code size. (check-in: 0b73a092 user: drh tags: trunk)
19:37
Fix a problem in Makefile.msc on this branch. (check-in: ed3499a1 user: dan tags: osinst)
19:24
Optimization to sqlite3VtabUnlockList() for the common case when there is no work to do. (check-in: fc8d4508 user: drh tags: trunk)
19:17
Add a timestamp to each osinst log entry, to facilitate merging multiple log files. (check-in: c9519c0c user: dan tags: osinst)
18:33
Call sqlite3Prepare() directly, rather than going through sqlite3_prepare(), when processing the sqlite_master.sql column for a schema. (check-in: cc49380e user: drh tags: trunk)
17:29
Have sqlite3.c automatically turn on osinst logging for all connections. (check-in: eea231f8 user: dan tags: osinst)
15:28
Reorder two comparisons for a small performance gain in OP_Transaction. (check-in: d7667f65 user: drh tags: trunk)
14:39
Performance optimization to the lookaside-memory disabling mechanism. (check-in: 17ce1c49 user: drh tags: trunk)
2019-10-04
16:24
Bring the begin-concurrent-pnu-wal2 branch up-to-date with 3.30.0. (check-in: dd09f7ce user: drh tags: begin-concurrent-pnu-wal2)
16:15
Bring the wal2 branch up to date with version 3.30.0 (check-in: 16e1dced user: drh tags: wal2)
16:08
Bring the begin-concurrent-pnu branch up-to-date with version 3.30.0. (check-in: a4d26bcf user: drh tags: begin-concurrent-pnu)
15:52
Bring the begin-concurrent branch up-to-date with the 3.30.0 release. (check-in: abd1b4df user: drh tags: begin-concurrent)
15:41
Bring the apple-osx branch up-to-date with the 3.30.0 release. (check-in: 76b26aca user: drh tags: apple-osx)
15:31
Bring the reuse-schema branch up-to-date with version 3.30.0. (check-in: 6e09afec user: drh tags: reuse-schema)
15:03
Version 3.30.0 (check-in: c20a3533 user: drh tags: trunk, release, version-3.30.0)
2019-10-03
16:02
Avoid running a couple of tests in affinity2.test as part of the valgrind permutations, as the way floating point computations are simulated by valgrind causes them to fail. (check-in: 7f9a4b60 user: dan tags: trunk)
14:51
Increase the precision of floating point value display in VDBE debugging output. No changes to normally deployed code. (check-in: a561a656 user: drh tags: trunk)
14:36
Fix some test script issues that come up with SQLITE_OMIT_VIRTUALTABLE builds. (check-in: 3934d2d0 user: dan tags: trunk)
13:44
Fix issues with command line invocation of wapptest.tcl. (check-in: 9e0d5d26 user: dan tags: trunk)
2019-10-02
19:44
Update error detection logic in releasetest.tcl to account for new output formats in USAN. (check-in: 3f36b988 user: drh tags: trunk)
19:43
Update corruptM.test to account for the fact that the database schema may be loaded from within the "sqlite3" command for some test permutations. (check-in: cb9470fc user: dan tags: trunk)
19:33
Fix a long-standing problem in fts4 incrmental merge. (check-in: 67da31e2 user: dan tags: trunk)
00:25
Disable sqlite3_drop_module() tests when virtual tables are omitted from the build. (check-in: 9f4035f9 user: drh tags: trunk)
2019-10-01
21:31
Remove references to test scripts analyzeA.test and analyzeB.test from permutations.test, since those test modules no longer exist. (check-in: 23948796 user: drh tags: trunk)
2019-09-30
19:13
The nodeReaderInit() function in FTS3 may not assume that the node is non-empty. (check-in: 361eb2f6 user: drh tags: trunk)
16:57
Merge in the 3.30.0 beta 1 changes. (check-in: 06796124 user: drh tags: reuse-schema)
16:49
Merge in the 3.30.0 beta 1 enhancements. (check-in: ebf88726 user: drh tags: begin-concurrent-pnu-wal2)
16:44
Merge 3.30.0 beta 1 changes from trunk. (check-in: 918bd97d user: drh tags: wal2)
16:43
Merge version 3.30.0 beta 1 changes from trunk. (check-in: ac4b6442 user: drh tags: begin-concurrent-pnu)
16:14
Merge the 3.30.0 beta 1 changes from trunk. (check-in: a003818f user: drh tags: begin-concurrent)
16:13
Merge the 3.30.0 beta 1 changes from trunk. (check-in: 9ce4c791 user: drh tags: apple-osx)
2019-09-28
18:28
Add missing comment to constant definitions. (check-in: 661a3789 user: drh tags: trunk)
16:14
Improvements to a comment. No code changes. (check-in: 1a3671c7 user: drh tags: trunk)
11:19
In FTS3/4, the poslist end marker must be larger than any other possible poslist value, even on a corrupt poslist. (check-in: 752679ae user: drh tags: trunk)
2019-09-27
17:36
Update requirement marks due to changes in documentation wording. (check-in: 326cdc16 user: drh tags: trunk)
16:33
Allow compile-time options -DHAVE_GETHOSTUUID=0 and -DHAVE_GETHOSTUUID=1. (check-in: 3bcb9cc1 user: drh tags: trunk)
15:15
Alternative implementation of the previous check-in which is testable. (check-in: 102ef644 user: drh tags: trunk)
15:01
Fix sqlite3ExprCompare() so that it ignores differences in the Expr.iTable field for IN operators, as otherwise it can lead to false negatives, which is usually harmless, but can cause problems for an assert() in the window function logic. (check-in: 6a204b19 user: drh tags: trunk)
2019-09-26
20:57
More minor test file fixes. (check-in: 352878fe user: dan tags: trunk)
20:05
Allow DROP TABLE to work on tables name "sqlite_parameters" just as it does with tables named "sqlite_stat%". Fix for the ".parameter clear" command in the shell. (check-in: e768179b user: drh tags: trunk)
19:53
Minor fix for test file indexexpr1.test. (check-in: 0ceab26f user: dan tags: trunk)
16:57
New dbsqlfuzz cases added to test/fuzzdata8.db. (check-in: 49073b70 user: drh tags: trunk)
16:08
Test for an OOM condition in resolveAlias(). (check-in: 322eca7f user: drh tags: trunk)
15:53
Fix a window-functions problem that could occur if an ORDER BY clause contains an alias for a window-function that is not a top-level expression. (check-in: 1cc6cf64 user: dan tags: trunk)
2019-09-25
18:44
Add a missing VdbeCoverage() macro. (check-in: 36d35dbd user: drh tags: trunk)
17:47
Remove an unused variable. (check-in: a1988445 user: drh tags: trunk)
16:41
Further simplifications to window-function code. (check-in: 5fe15c1d user: dan tags: trunk)
11:49
In the previous check-in, the variable should be openMode, not openFlags. (check-in: 77b0db22 user: drh tags: trunk)
10:36
In the unix VFS layer, do not attempt to chown() the journal to be the same as the database if running in 8+3 filename mode. Also, update the comments on the chown() attempt to be more precise. (check-in: ab853724 user: drh tags: trunk)
02:07
Simplifications to the window-function code. (check-in: 489a1eb3 user: drh tags: trunk)
2019-09-24
20:20
Bug fixes for window frames of the form (... RANGE BETWEEN b PRECEDING AND a PRECEDING) or (... RANGE a FOLLOWING AND b FOLLOWING) where (a > b). (check-in: 040e196a user: dan tags: trunk)
2019-09-23
12:38
Omit the sqlite3IntTokens array constant for a code simplification. (check-in: f907395e user: drh tags: trunk)
11:55
When a scalar subquery has a pre-existing "LIMIT X" then change it to "LIMIT X<>0" rather than just "LIMIT 1" so that if X is 0 the limit will still be zero. Ticket [99cd4807dc03f178]. Test cases in TH3. (check-in: 82e5dcf5 user: drh tags: trunk)
2019-09-21
18:49
Fix a harmless unused variable warning in the test logic. (check-in: d7673a44 user: drh tags: trunk)
17:31
Fix harmless compiler warnings. (check-in: 8ea1dc72 user: drh tags: trunk)
15:44
Allow SQLite to omit redundant ORDER BY sorts in the case where a SELECT statement has GROUP BY and ORDER BY clauses that use the same expressions, even when the ORDER BY expressions are marked "DESC". (check-in: 20f7951b user: dan tags: trunk)
13:34
Add --multithread, --serialized, and --singlethread options to the speed-check.sh test script. (check-in: c17078af user: drh tags: trunk)
2019-09-20
21:12
Simplify the fix in the previous commit. (check-in: 5ef64b0f user: dan tags: trunk)
20:52
Fix a problem with queries containing a min() or max() function for which the FILTER clause excludes all rows. (check-in: b1d7e104 user: dan tags: trunk)
2019-09-19
13:51
Fix an assert() in fts3 that could fail when accessing a corrupt database. (check-in: 601ce953 user: dan tags: trunk)
2019-09-18
20:34
Always clear the temporary register cache after coding a subroutine. (check-in: b6f2a7f9 user: drh tags: trunk)
17:22
Add extra tests for the handling of corrupt records in fts3. (check-in: 40e29a47 user: dan tags: trunk)
12:49
Fix another potential "jump depends on uninitialized value" warning. (check-in: 633b214e user: drh tags: trunk)
11:46
Fix a "jump depends on unititialized value" valgrind error in fts5 triggered by corrupt database records. (check-in: 6b6751cd user: dan tags: trunk)
11:16
Fix an OOB read in the INSTR() function introduced yesterday by check-in [3fb40f518086c1e8] and detected by OSSFuzz. The test case is in TH3. (check-in: d49047c1 user: drh tags: trunk)
2019-09-17
21:28
Do not change the OP_String8 opcode into OP_String until *after* any necessary encoding conversions are accomplished. Otherwise, a rerun of the prepared statement after an OOM can result in errors. Test case in TH3. (check-in: 8efd6259 user: drh tags: trunk)
13:30
Test cases for ticket [587791f92620090e] (check-in: ca0e3a83 user: drh tags: trunk)
03:16
Fix the instr() SQL function so that it makes a copy of its argument before changing the datatype, since the datatype affects processing. Also fix the sqlite3_value_text() routine so that it always works even for values obtained form sqlite3_value_dup(). Ticket [587791f92620090e] (check-in: 3fb40f51 user: drh tags: trunk)
2019-09-16
20:16
Improved type information display when tracing VDBE execution. (check-in: ee83d8e3 user: drh tags: trunk)
18:19
Do not attempt the LIKE optimization for non-text columns and a pattern prefix of "-". Ticket [0f0428096f17252a] (check-in: 6fe0367f user: drh tags: trunk)
15:15
Add recent interesting cases from dbsqlfuzz. (check-in: f06ef3d7 user: drh tags: trunk)
14:42
Documentation updates for the SQLITE_DIRECTONLY flag. (check-in: 5beb6dc9 user: drh tags: trunk)
12:35
Merge all recent trunk enhancements into the reuse-schema branch. (check-in: 27eb2236 user: drh tags: reuse-schema)
12:29
Bring the begin-concurrent-pnu-wal2 branch up to date with all the latest enhancements on trunk. (check-in: 15593bf3 user: drh tags: begin-concurrent-pnu-wal2)
12:23
Merge recent trunk enhancements into the wal2 branch. (check-in: da8bc974 user: drh tags: wal2)
12:17
Merge recent trunk enhancements into the begin-concurrent-pnu branch. (check-in: 54930b7e user: drh tags: begin-concurrent-pnu)
12:08
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: 93b9ef3f user: drh tags: begin-concurrent)
12:02
Merge the latest changes from trunk into the apple-osx branch. (check-in: a95191de user: drh tags: apple-osx)
05:34
Fix a problem with processing CTEs that use a WINDOW clause. (check-in: ca564d4b user: dan tags: trunk)
2019-09-14
16:44
Add the --no-rowids option to the ".recover" command. (check-in: 01d71b94 user: dan tags: trunk)
16:21
Extra comments on fields of the Window object. (check-in: 3dbed162 user: drh tags: trunk)
00:21
Fix the windows inverse function on the JSON aggregates. (check-in: f464d847 user: drh tags: trunk)
2019-09-13
20:42
Fix a problem with using json1 window functions with an EXCLUDE clause. (check-in: 4a197881 user: dan tags: trunk)
18:59
Fix the windowB test module so that it works even if SQLite is built without JSON support. (check-in: 807975c7 user: drh tags: trunk)
18:27
Add the SQLITE_SUBTYPE flag, which may be passed to sqlite3_create_window_function() to indicate that the window function uses sqlite3_value_subtype() to check the sub-type of its arguments. (check-in: ba2ebc3a user: dan tags: trunk)
17:36
Change the meaning of the SQLITE_SUBTYPE flag so that it indicates that the function may use sqlite3_value_subtype() on its arguments. (Closed-Leaf check-in: 7f424ec9 user: dan tags: window-functions-subtype-fix)
17:30
Fix a typo in the carray extension header comment - the comment that serves as the documentation to this extension. (check-in: 658a42d3 user: drh tags: trunk)
17:05
Change the meaning of the SQLITE_SUBTYPE flag so that it indicates that the user-defined function cares about the subtypes of its arguments. (Closed-Leaf check-in: af1bc20f user: dan tags: window-functions-subtype-fix2)
16:19
Merge latest trunk changes with this branch. (check-in: 14ef7543 user: dan tags: window-functions-subtype-fix)
13:23
Ensure that the idxStr for FTS5 is always zero-terminated. Fix for check-in [9d418a7a491761ee] (check-in: 090cd07d user: drh tags: trunk)
12:24
Fix harmless compiler warnings. (check-in: a8927d14 user: drh tags: trunk)
2019-09-12
19:38
Allow fts5 to filter on multiple MATCH clauses in a single scan. (check-in: 9d418a7a user: dan tags: trunk)
2019-09-11
15:25
Fix typo for one instance of line number handling in the Lemon tool. (check-in: 980be173 user: mistachkin tags: trunk)
2019-09-10
17:51
Enhance treeview to show SOFT-COLLATE for TK_COLLATE operators that omit the EP_Collate flag. (check-in: a9780462 user: drh tags: trunk)
15:33
Ensure the columns of views and sub-queries maintain their implicit collation sequences when the "push-down" optimization is applied. Fix for [18458b1a]. (check-in: 36997c4a user: dan tags: trunk)
2019-09-09
20:17
Ensure the columns of views and sub-selects in the FROM clause of a select are always assigned implicit collation sequences, just as table columns are. Fix for [a7debbe0]. (check-in: b9ec7220 user: dan tags: trunk)
19:49
Ensure the columns of views and sub-selects in the FROM clause of a select are always assigned implicit collation sequences, just as table columns are. Possible fix for [a7debbe0]. (Closed-Leaf check-in: 1863b7bf user: dan tags: tkt-a7debbe0.)
2019-09-07
18:20
Add the SQLITE_SUBTYPE flag, which can be passed to sqlite3_create_function() and similar to indicate to the core that a user function is likely to use sqlite3_result_subtype(). (check-in: 6aa438ce user: dan tags: window-functions-subtype-fix)
2019-09-04
06:56
Fix handling of NULL, text and blob values in window queries that use "RANGE BETWEEN A FOLLOWING AND B FOLLOWING", or "B PRECEDING AND A PRECEDING", where A>B. (check-in: cb3e2be6 user: dan tags: trunk)
2019-09-03
19:40
Fix a buffer overread that could occur when running fts5 prefix queries inside a transaction. (Leaf check-in: b54aa18b user: dan tags: branch-3.18)
19:29
Fix a buffer overread that could occur when running fts5 prefix queries inside a transaction. (Leaf check-in: b584fd36 user: dan tags: branch-3.9)
18:43
Fix a buffer overread that could occur when running fts5 prefix queries inside a transaction. (Leaf check-in: 0770363b user: drh tags: branch-3.19)
18:36
Fix a buffer overread that could occur when running fts5 prefix queries inside a transaction. (check-in: 68b89838 user: drh tags: branch-3.22)
18:04
Disable the undocumented rtreenode() SQL function that is only used for testing, except when doing a build that is specifically intended for testing. (check-in: 8452fd54 user: drh tags: branch-3.22)
17:55
Disable the undocumented rtreenode() SQL function that is only used for testing, except when doing a build that is specifically intended for testing. (check-in: 34cd2d92 user: drh tags: branch-3.19)
17:46
Disable the undocumented rtreenode() SQL function that is only used for testing, except when doing a build that is specifically intended for testing. (check-in: 0a1cce49 user: drh tags: branch-3.18)
17:39
Disable the undocumented rtreenode() SQL function that is only used for testing, except when doing a build that is specifically intended for testing. (check-in: 7b4583f9 user: drh tags: branch-3.9)
16:23
Updates to the default settings in Makefile.linux-gcc. (check-in: 3044cf69 user: drh tags: trunk)
14:27
When we play games with COLLATE in order to commute an operator in the WHERE clause processing, be sure not to use the commuted operator to qualify a partial index, as insufficient COLLATE information is preserved to verify that the expression will correctly qualify the index. Ticket [767a8cbc6d20bd68] (check-in: 5351e920 user: drh tags: trunk)
2019-09-02
22:13
Fix a bug introduced earlier today by check-in [88833a9c2849c959]. Ticket [29f635e0af71234b] (check-in: 6e7b4527 user: drh tags: trunk)
14:46
Fix a potential crash in fts5 caused by using an auxiliary function on a "special" query like '*id' or '*reads'. (check-in: 9490683a user: dan tags: trunk)
02:21
When applying the IN_INDEX_NOOP optimization and the LHS has REAL affinity, also apply REAL affinity to each element of the RHS. Ticket [2841e99d104c6436]. (check-in: 88833a9c user: drh tags: trunk)
01:25
Fix an obsolete comment that defines the meaning of one of the parameters to the sqlite3FindInIndex() subroutine. No changes to code. (check-in: 0c946f08 user: drh tags: trunk)
00:58
When computing an expression value for an index-on-expression or a CHECK constraint and the expressions uses a REAL table column, but the value of that column is an integer (in other words, when it is using the store-real-as-integer optimization) be sure to promote the value to real before evaluating the expression. Ticket [57af00b6642ecd68]. (check-in: 0658c16e user: drh tags: trunk)
2019-09-01
23:36
Remove an obsolete paragraph from the OP_Column documentation. No code changes. (check-in: f6d8956c user: drh tags: trunk)
2019-08-31
20:29
Fix a harmless compiler warning. (check-in: 63c67a54 user: drh tags: trunk)
20:26
Mark new VDBE branches never taken. (check-in: 83c2adff user: drh tags: trunk)
20:13
Improvements to the algorithm that determines which SELECT in a sequence of nested SELECT statements that an aggregate function belongs to. This resolves an issue identified by dbsqlfuzz. (check-in: d7680074 user: drh tags: trunk)
17:14
If a DELETE trigger fired by an UPDATE OR REPLACE statement deletes the row being updated, do not attempt to proceed with the original UPDATE operation. Fix for [d6a0fbc1]. (check-in: 4145b3e0 user: dan tags: trunk)
01:33
Remove some affinity tests that became unreachable due to the prior change. (check-in: e2db1123 user: drh tags: trunk)
2019-08-30
23:56
When the affinity of a table column is INT or REAL, make the affinity of corresponding index columns NUMERIC. This increases the precision of index lookups for large numbers so that it matches the precision of ordinary comparison operators. Ticket [40812aea1fde9594] (check-in: e0d909c7 user: drh tags: trunk)
23:15
Make sure OP_RealAffinity has been applied to all columns of type REAL in the excluded.* pseudo-table of an UPSERT. Ticket [5a3dba8104421320] (check-in: 67381dad user: drh tags: trunk)
21:52
Improvements to VDBE tracing. No changes to code in normal deliverables. (check-in: 54553bf1 user: drh tags: trunk)
19:45
Add test case to window8.test. Also fix an error in a comment in window.c. (check-in: 2925bfa5 user: dan tags: trunk)
18:02
Back out the change at [47cd634c98b502d4] which was incorrect. Add a test case so that we don't accidently back out that change again. (check-in: 596ac2a4 user: drh tags: trunk)
17:28
Add further comments to window.c. (check-in: 90046456 user: dan tags: trunk)
16:46
New test cases for window functions with RANGE BETWEEN and DESC NULLS FIRST. (check-in: f7002f86 user: drh tags: trunk)
16:14
Fix a bug in RANGE window functions that use "ORDER BY <expr> DESC NULLS FIRST" as the window-frame ORDER BY clause. (check-in: 39b4cad4 user: dan tags: trunk)
16:00
The expression "(X IS FALSE) IN (FALSE)" does not imply that X is NOT NULL. Ticket [f8f472cbc77ba9c9] (check-in: dd661348 user: drh tags: trunk)
15:11
The expression "(X IS FALSE) BETWEEN FALSE AND TRUE" does not implie that X is not NULL. Ticket [fba33c8b1df6a915] (check-in: 057fb8b1 user: drh tags: trunk)
13:07
The expression "(x IS FALSE) IS FALSE" does not imply that X is not NULL. Ticket [a6408d42b9f44462] (check-in: 45ff2b1f user: drh tags: trunk)
2019-08-29
23:24
Remove a faulty testcase() macro. (check-in: 80124ae5 user: drh tags: trunk)
21:16
Improve vdbe branch coverage of NULLS LAST code. (check-in: e8e9f77d user: dan tags: trunk)
19:34
Fix other problems similar to ticket [c0390363]. (check-in: 96ff2ba9 user: dan tags: trunk)
16:48
Add a missing VdbeCoverage() macro. (check-in: 33da6092 user: drh tags: trunk)
16:17
Remove an unreachable branch in the NULLS LAST logic of RANGE window functions. (check-in: 47cd634c user: drh tags: trunk)
15:50
Fix another case where SQLite assumes that if "~(? AND FALSE)" is true, "?" must be non-null. (check-in: 616f5663 user: dan tags: trunk)
15:06
Avoid assuming that for "~ (? AND FALSE)" to be true, "?" must not be NULL, just as we do for "NOT (? AND FALSE)". Fix for ticket [c0390363]. (check-in: 84ae41fd user: dan tags: trunk)
14:25
Fix a potential buffer overrun in fts5 caused by corrupted database records. (check-in: c465d0eb user: dan tags: trunk)
00:27
Improve Lemon so that it enlarges some of its tables slightly in order to avoid having to index range checks on table lookups for a performance increase. (check-in: 4be6a23a user: drh tags: trunk)
2019-08-28
11:49
Fix an unreachable branch in sqlite3ParserFallback() (Closed-Leaf check-in: e059178b user: drh tags: lemon-optimization)
11:31
Further improvements to parser speed by enlarging lookup tables to eliminate the need to do range checking on the index prior to lookup. (check-in: 47d3e091 user: drh tags: lemon-optimization)
02:09
Increase the size of the yy_lookahead table so that it is never necessary to down bounds checking on the index. (check-in: bafd8723 user: drh tags: lemon-optimization)
2019-08-27
19:59
Add support for "ORDER BY ... NULLS FIRST" and "ORDER BY ... NULLS LAST". Use this to fix ticket [f8a7060e]. (check-in: 94085fb3 user: dan tags: trunk)
17:59
The ALWAYS() added by the previous check-in was incorrect. Take it back out. (check-in: 336235db user: drh tags: trunk)
17:28
Add ALWAYS() to an always true conditional that results from the previous check-in. Add a test case for ticket [dbaf8a6820be1ece] to supplement those already checked into TH3. (check-in: aff20980 user: drh tags: trunk)
17:01
Omit the "x IN (y)" to "x==y" optimization of check-in [e68b427afbc82e20] (and ticket [e39d032577df6942]) as it causes difficult affinity problems as demonstrated by ticket [dbaf8a6820be1ece] and the original assertion fault is no longer a factor due to countless other changes of the previous 5 years. (check-in: 7f5168a7 user: drh tags: trunk)
10:05
If a TEMP TRIGGER references an auxiliary schema, and that auxiliary schema is detached, move the trigger to reference the TEMP schema before completing the detach, so that the trigger does not hold a dangling schema pointer. Ticket [ac8dd4a32ba4322f] (check-in: 069c2f4c user: drh tags: trunk)
2019-08-26
20:41
Merge in recent fixes from trunk. (Closed-Leaf check-in: ad816d01 user: drh tags: nulls-last)
14:57
Tweak the shell tool ".recover" command so that it can recover rows that consist of a rowid and no fields. (check-in: 279ac7fd user: dan tags: trunk)
14:18
Improved detection of number of column mismatch for vector assignment in UPDATE statements. Ticket [78acc9d40f0786e8] (check-in: bd4bda73 user: drh tags: trunk)
13:45
Fix typo in a comment. No code changes. (check-in: d0cc06d8 user: drh tags: trunk)
12:50
Enforce 80-character line discipline in the CLI. Minor improvements to the CLI built-in help. (check-in: 9690013a user: drh tags: trunk)
2019-08-24
21:02
Minor performance improvement for balance_nonroot(). (check-in: d7434cae user: dan tags: trunk)
17:11
Fix a potential buffer overrun in fts5 caused by corrupt database records. (check-in: 156d6128 user: dan tags: trunk)
2019-08-23
23:05
Fix the built-in edit() SQL function in the CLI so that it works with zero-length blobs. (check-in: e3249012 user: drh tags: trunk)
21:11
Attempt to parse the NULLS LAST clause more efficiently. A few cycles were saved, but at the expense of more code. And there is a bug was introduced somewhere. Not worth continuing down this line. (Closed-Leaf check-in: 12d2cf88 user: drh tags: dead-end)
20:33
Move some things in parse.y so that TK_COLUMN and TK_AGG_COLUMN are assigned the same values as they are on trunk for a very small speedup. (check-in: d26fdfa3 user: dan tags: nulls-last)
17:09
Revise the VDBE comments for NULL-scan so that they also work make sense when reading a NULLS FIRST plan. (check-in: bfe79378 user: drh tags: nulls-last)
17:00
Additional simplifications of the WHERE loop code generator logic for NULLS LAST. (check-in: 1383680d user: drh tags: nulls-last)
16:12
Simplification of the WHERE loop code generator for NULLS LAST saves a few CPU cycles and about a hundred bytes of code space. (check-in: e3ed2f49 user: drh tags: nulls-last)
13:32
Invert the meaning of the regBignull flag so that it is 1 when doing the normal scan and 1 when scanning nulls. This enables the re-do jump at the bottom of the loop to be coded with a single OP_IfNotZero opcode, rather than a sequence of OP_If, OP_Integer, OP_Goto. (check-in: bf875e1a user: drh tags: nulls-last)
13:08
Extra VDBE comments in the NULLS LAST logic provide landmarks to help understand the EXPLAIN output. (check-in: 649b08ea user: drh tags: nulls-last)
2019-08-22
21:13
Add additional VDBE coverage macros. (check-in: d3531f5b user: drh tags: nulls-last)
19:35
Merge fixes from trunk. Also fix a reference to the KeyInfo.aSortOrder field, which should now be KeyInfo.aSortFlags (check-in: 63e625c8 user: drh tags: nulls-last)
16:38
Fix the likely(), unlikely(), and likelihood() functions so that they have no affinity, just like any other function. Ticket [7e07a3dbf5a8cd26] (check-in: 44578865 user: drh tags: trunk)
11:11
Fix a false-positive in sqlite3ExprNeedsNoAffinityChange(). Ticket [ac184eb571d5e6e0] (check-in: e62eddbb user: drh tags: trunk)
00:53
Fix the OP_SeekGE, OP_SeekGT, OP_SeekLE, and OP_SeekLT opcodes so that they preserve the datatype of the value in the register used as the key. Ticket [d9f584e936c7a8d0] (check-in: 81b9f0f5 user: drh tags: trunk)
2019-08-21
19:58
Add missing VdbeCoverage() macros to new code. (check-in: b1cbcdc6 user: dan tags: nulls-last)
17:46
Disable broken test case in expert1.test. (check-in: 73e30c2e user: dan tags: nulls-last)
15:41
Update this branch with latest trunk changes. (check-in: 6153bcf4 user: dan tags: nulls-last)
14:54
Avoid assuming that "column IS ?", where column is declared UNIQUE, matches only a single row (as "?" might be NULL). Fix for [b8689402]. (check-in: d02490a2 user: dan tags: trunk)
11:31
Fix a broken assert() in the fts3 snippet code that was failing for queries containging more than 64 phrases. (check-in: 4c01e017 user: dan tags: trunk)
2019-08-20
20:09
Further tests for the special null-handling on this branch. (check-in: 0dbbb51f user: dan tags: nulls-last)
19:11
Fix a problem with fts5 "ORDER BY rank" queries when the fts5 table name requires quoting. (check-in: 00e9a8f2 user: dan tags: trunk)
17:51
Add tests for sort-by-index cases that use IN() and non-default NULL handling. (check-in: 09d660ec user: dan tags: nulls-last)
17:14
Bring the hard-heap-limit branch up-to-date with trunk. (check-in: 9b14eb77 user: drh tags: hard-heap-limit)
15:47
Do not pass ORDER BY clauses with non-standard NULL handling to virtual table implementations. (check-in: a9a82ee8 user: dan tags: nulls-last)
14:43
Fix a segfault that could occur following an OOM while processing a SELECT statement for which one or more of the expressions in the window frame declaration are themselves sub-selects that use window functions. (check-in: 75aec4fc user: dan tags: trunk)
13:49
Add the new sqlite3_drop_modules() interface to the loadable extension mechanism. (check-in: 658bd516 user: drh tags: trunk)
11:43
Retain the affinity of an expression in a WHERE clause when it is transformed to a reference to an index column on the same expression. Fix for [f043b113]. (check-in: 511da081 user: dan tags: trunk)
02:19
Fix a typo and a harmless compiler warning. (check-in: ec4c63e0 user: mistachkin tags: trunk)
2019-08-19
20:44
Add the sqlite3_drop_modules() interface. (check-in: e2c6fed8 user: drh tags: trunk)
20:35
Omit the "_except" term from the name of the new interface. (Closed-Leaf check-in: e5ba47c2 user: drh tags: sqlite3_drop_modules_except)
19:59
Fix problems with window frames that use ORDER BY ... NULLS LAST etc. (check-in: 75d665a4 user: dan tags: nulls-last)
17:26
Prevent NULLS FIRST/LAST from being used in CREATE INDEX and other statements. (check-in: bb9767a2 user: dan tags: nulls-last)
2019-08-17
19:58
Add some extra tests for the lsm virtual table module. (check-in: 4cb009b0 user: dan tags: trunk)
19:55
Fix to the query planner for the LSM1 extension. (check-in: 7496e872 user: drh tags: trunk)
19:45
The experimental sqlite3_drop_modules_except() interface. (check-in: 0851db4d user: drh tags: sqlite3_drop_modules_except)
19:31
Fix the new ability to unregister virtual table modules so that it works for the automatic PRAGMA virtual tables. (check-in: 5d6f4dfe user: drh tags: trunk)
19:13
When populating an ephemeral b-tree for the RHS of an IN(...) clause, avoid applying an affinity to a value that may be used later on for some other purpose. Fix for [c7a117190]. (check-in: 43e8b143 user: dan tags: trunk)
18:16
Add tests to ensure that this branch really does fix ticket [f8a7060ece]. (check-in: f8920664 user: dan tags: nulls-last)
17:55
Fix problem with DESC indexes on this branch. (check-in: b49df1fe user: dan tags: nulls-last)
17:07
Ensure the functions that appear to be constant are not factored out of expression that originate on the right-hand side of a LEFT JOIN. Ticket [6710d2f7a13a2997] (check-in: 500c9152 user: drh tags: trunk)
15:47
Merge trunk changes into this branch. (check-in: db1e6080 user: dan tags: nulls-last)
15:27
Activatate introspection pragmas by default. The new option SQLITE_OMIT_INTROSPECTION_PRAGMAS must be provided to keep them out. (check-in: 9c4bca64 user: drh tags: trunk)
00:53
The SQLITE_DIRECTONLY flag, when added to sqlite3_create_function() prevents the function from being used inside a trigger or view. (check-in: de767376 user: drh tags: trunk)
2019-08-16
22:58
Add the ability to unregister a virtual table module by invoking sqlite3_create_module() with a NULL sqlite3_module pointer. (check-in: 31e34fa3 user: drh tags: trunk)
21:07
Add support for using indexes for some ORDER BY clauses that use non-default NULL handling. Still some problems on this branch. (check-in: 81069d71 user: dan tags: nulls-last)
2019-08-15
23:11
Fix harmless compiler warnings in the TCL interface. (check-in: f17e7229 user: drh tags: trunk)
21:27
Add the SQLITE_DBCONFIG_ENABLE_VIEW option, together with a "db config" command in the TCL interface that can access that option as well as all the other sqlite3_db_config() boolean options. (check-in: 61b4bccd user: drh tags: trunk)
20:04
Provide the SQLITE_DIRECTONLY flag for app-defined functions that prohibits the use of those functions within triggers or views. (Closed-Leaf check-in: fc745845 user: drh tags: directonly)
14:35
Ensure that the optional "sz=N" parameter that can be manually added to the end of an sqlite_stat1 entry does not have an N value that is too small. Ticket [e4598ecbdd18bd82] (check-in: 98357d8c user: drh tags: trunk)
13:53
Ensure that SQLite does not attempt to process incompatible window functions in a single scan. Fix for [256741a1]. (check-in: 4f5b2d93 user: dan tags: trunk)
13:46
Avoid downgrading SQLITE_CORRUPT errors detected by the schema parser into SQLITE_NOMEM or SQLITE_ERROR errors. (check-in: b2e79f8f user: drh tags: trunk)
13:17
Ensure that the cell overwrite optimization does not overwrite the header of the b-tree page. (check-in: 4cc5694c user: drh tags: trunk)
00:04
Early detection out-of-bounds page numbers on the direct-overflow-read optimization gives consistent error messages regardless of whether or not the optimization is enabled. (check-in: b517a52f user: drh tags: trunk)
2019-08-14
15:17
Always check for reads past the end of the file on the in-memory journal driver. This used to be an assert(). (check-in: 4d41ca7d user: drh tags: trunk)
2019-08-13
20:34
Add some static to the 'regexp' extension. (check-in: a21d1dde user: mistachkin tags: trunk)
17:56
Update test cases so that they work with ICU enabled. (check-in: 408144a1 user: dan tags: trunk)
17:27
Update some corruption test cases to take [724f4df9c] into account. (check-in: 927cd7b4 user: dan tags: trunk)
15:22
Merge latest trunk changes with this branch. (check-in: 5b4689d8 user: dan tags: reuse-schema)
15:11
Fix a problem with RBU function sqlite3rbu_bp_progress() when used during an RBU vacuum. (check-in: 8c44b02f user: dan tags: trunk)
2019-08-12
18:26
Make sure the btree cursor overflow cache is cleared when overwriting a cell in sqlite3BtreeInsert(). Ticket [3cf9bb227e9a5d32] (check-in: 7dae7b96 user: drh tags: trunk)
16:36
Experimental implementation of NULLS FIRST/LAST. This branch still has problems - the most significant of which is that ORDER BY clauses with a non-default NULLS FIRST/LAST qualifier can never use an index. (check-in: 07babb0f user: dan tags: nulls-last)
16:25
For the ".testctrl prng_seed" command in the CLI, if the argument is "random" then select a random integer seed and print the seed value on stdout. (check-in: 636ca447 user: drh tags: trunk)
15:37
Fix the build for compilation using separate files rather than the amalgamation. (Leaf check-in: 1e0f4869 user: drh tags: sha3)
15:19
Make the sha3 extension part of the amalgamation, enabled using SQLITE_ENABLE_SHA3. (check-in: a48a7b78 user: drh tags: sha3)
14:17
Add a TESTCTRL that disables the verification of type, name, and tbl_name in the sqlite_master table. (check-in: 48d9b48a user: drh tags: trunk)
00:08
Validate the type, name, and tbl_name fields of the sqlite_master table when loading the schema, unless writable_schema is engaged. (check-in: 724f4df9 user: drh tags: trunk)
2019-08-10
15:06
Fix the sqliteExprImpliesExpr() routine so that it recognizes that "(NULL IS FALSE) IS FALSE" doe not imply "NULL NOT NULL". Ticket [9080b6227fabb466] (check-in: da01ba4f user: drh tags: trunk)
14:35
Add extra test cases related to the previous commit. (check-in: 3c690b2b user: dan tags: trunk)
14:16
Remove two incorrect assert() statements from the logic used to derive column names and types from subqueries. (check-in: 712e4771 user: drh tags: trunk)
2019-08-09
20:26
Allow the RHS of a row-value IN operator to use a compound query with an ORDER BY clause. (check-in: eaf15d9b user: drh tags: trunk)
14:54
In shared-schema mode, handle the case where a connection has created a virtual-table object, but is later assigned a different shared-schema object for which the virtual-table schema has not yet been initialized. (check-in: e30c7414 user: dan tags: reuse-schema)
01:59
Modify signature of sqlite3VdbeChangeOpcode() to accept int instead of u32. (check-in: 68b7f2ac user: mistachkin tags: trunk)
01:11
Fix more compiler warnings. (check-in: 1b85442b user: drh tags: trunk)
2019-08-08
19:40
Fix harmless compiler warnings. (check-in: 1eef4dde user: drh tags: trunk)
19:19
Remove support for SQLITE_ENABLE_STAT3. The sqlite_stat3 table is now ignored, if it exists. Run ANALYZE using STAT4 to get the equivalent functionality, which presumably everybody has been doing for a long time now. (check-in: f1cd234c user: drh tags: trunk)
18:49
Fix a case of the Expr.affinity to Expr.affExpr refactor that was missed in the [a29f2a7d07beff64] check-in. (check-in: 83450d10 user: drh tags: trunk)
16:23
More legacy STAT3 code removed. (Closed-Leaf check-in: 845d2f17 user: drh tags: omit-stat3)
15:47
Fix spurious "no such table: x1" errors in shared-schema mode that could occur when a query that is a join across two or more databases needs to call the xConnect() methods of a virtual table. (check-in: edf45cd7 user: dan tags: reuse-schema)
15:24
Remove support for STAT3. The sqlite_stat3 tables are ignored, if they exist. STAT4 continues to work as it always has, and as it is a superset of STAT3 is the recommended replacement. (check-in: 1e17ea2f user: drh tags: omit-stat3)
11:44
Fix a bug causing "no such table" and other similar sqlite3_prepare*() errors to return SQLITE_SCHEMA instead of SQLITE_ERROR in shared-schema mode when there is an attached database for which the schema has never been loaded. (check-in: 111e2c73 user: dan tags: reuse-schema)
01:39
Remove a NEVER() that is reachable from a corrupt database. (check-in: 30e6ee27 user: drh tags: trunk)
2019-08-07
19:57
Remove use of the affinity() function from view.test, as it is only available in SQLITE_DEBUG builds. (check-in: 7f2246a1 user: dan tags: trunk)
18:34
Add "set TMP=%CD%" to the start of each msvc script output by releasetest_data.tcl. Otherwise, since binaries compiled with SQLITE_TEST all choose the same sequence of pseudo-random numbers, collisions between temp file names cause errors when running multiple tests in parallel. (check-in: f5d0436d user: dan tags: trunk)
17:45
Eliminate some more cases of redundant sorting in window-function queries. (check-in: 8158d2ac user: dan tags: trunk)
13:25
Do not make SQLITE_READ authorizer calls for tables without names, as all such tables will be internal-use-only tables for subqueries and whatnot. (check-in: 193c87fc user: drh tags: trunk)
2019-08-06
21:16
Ensure that when the col in an operator like "val IN(col)" is a column of a view, its affinity is not used to coerce val. Fix for [0a5e2c1d]. (check-in: 17b3d221 user: dan tags: trunk)
20:55
Improved reuse of file descriptors for which close() is delayed to prevent clearing of posix advisory locks. (check-in: 509c1ba2 user: drh tags: trunk)
20:26
Enhance the ".recover" output in the shell to use double-quotes around table and column identifiers. (check-in: 846d2d2d user: drh tags: trunk)
18:40
Add "PRAGMA foreign_keys=OFF;" to the start of the script output by ".recover", just as is done for ".dump". (check-in: bfc29e62 user: dan tags: trunk)
15:32
Ensure that columns of views and sub-queries that are expressions with no affinity are comparied without any type conversions, as required in the documentation. Tickets [61c853857f40da49] and [d52a29a9e6bc55c5]. (check-in: 9c8c1092 user: drh tags: trunk)
15:18
Performance optimization to the new affinity handling logic. (Closed-Leaf check-in: c9724e76 user: drh tags: pending)
15:02
Add a multi-threaded test to threadtest3.c for the feature on this branch. (check-in: 62557fab user: dan tags: reuse-schema)
14:37
Use 0x40 (ASCII '@') instead of 0x00 to mean "no affinity" so that columns with no affinity can appear in a zero-terminated string. Use the new SQLITE_AFF_NONE macro for this new magic number. (check-in: e8234f69 user: drh tags: pending)
11:45
Add an assert() to the code on this branch. (check-in: fdd44bbb user: dan tags: reuse-schema)
2019-08-05
20:53
Ensure that columns of views and sub-queries that are expressions with no affinity are not assigned BLOB affinity. This matches the documentation. Fix for [61c853857f40da49]. (On a branch because there are still subtle issues.) (check-in: e15a0977 user: dan tags: pending)
20:45
Add test cases to this branch. (Closed-Leaf check-in: f37317d8 user: dan tags: tkt-61c853-A)
19:44
Fix the patch on this branch so that it works with sub-queries, as well as views. (check-in: 7480db30 user: dan tags: tkt-61c853-A)
19:34
The second option for [61c853857f40da49]: In this mode, columns of VIEWs and subqueries that are formed by expressions have affinity BLOB rather than affinity none, as has usually been the case for a while. But this mode fixes a couple of corner cases involving query flattening and the push-down optimization where that rule was violated. (Closed-Leaf check-in: 470ac8d5 user: drh tags: tkt-61c853-B)
19:32
One of two options on how to address ticket [61c853857f40da49]. In this mode, we back out the documentation change of [07b7749da88d54e5] and change the core to work as it has been documented to work since 2017, rather than how it has actually worked since 2009. (check-in: 09cd0c0c user: drh tags: tkt-61c853-A)
18:01
Refactor field Expr.affinity into Expr.affExpr to avoid confusion with other fields and variables named "affinity" and display affExpr it in sqlite3TreeViewExpr() output. (check-in: a29f2a7d user: drh tags: trunk)
16:22
Improved detection of corruption on the freeblock list of a btree page. (check-in: 4b00799b user: drh tags: trunk)
13:19
Fix a problem with renaming a table when a view or trigger within the schema uses a FILTER with an aggregate function that is not currently registered with the database. (check-in: 2ac0e42f user: dan tags: trunk)
12:55
Prevent an fts5 table from being its own content table, or part of a view that is the content table. (check-in: b6d52c93 user: dan tags: trunk)
2019-08-03
19:06
Strengthen an assert() in the WHERE clause code generator for the min/max optimization. (check-in: 1bd4b97d user: drh tags: trunk)
16:37
Fix a problem with queries of the form "SELECT min(<expr>) ... WHERE <expr>=?" where there is an index on <expr>. Fix for [71e183ca]. (check-in: d465c3ee user: dan tags: trunk)
16:17
In the ".wheretrace 0x100" debugging mode, show the structure of the main parameters to sqlite3WhereBegin() calls. (check-in: fd598e47 user: drh tags: trunk)
01:40
Add the SQLITE_TESTCTRL_PRNG_SEED which can control the PRNG seed either directly or through the schema cookie of a supplied database connection. (check-in: 2660e929 user: drh tags: trunk)
01:39
Give the SQLITE_TESTCTRL_PRNG_SEED two arguments. The second argument if not NULL is a pointer to a database connection which seeds the connection from its schema cookie. In this way, fuzzers can control the PRNG seed. (Closed-Leaf check-in: 49aa3448 user: drh tags: prng-seed-test-control)
2019-08-02
21:03
Fixes to the PRNG_SEED pragma idea. (check-in: c7109840 user: drh tags: prng-seed-test-control)
20:45
Add the SQLITE_TESTCTRL_PRNG_SEED test control. (check-in: 3ac57231 user: drh tags: prng-seed-test-control)
19:40
If a query like "SELECT min(a), b FROM t1" visits no rows where "a" is not null, extract a value for "b" from one of the rows where "a" is null. Fix for ticket [41866dc37]. (check-in: faaaae49 user: dan tags: trunk)
18:43
If a query like "SELECT min(a), b FROM t1" visits no rows where "a" is not null, extract a value for "b" from one of the rows where "a" is null. Possible fix for ticket [41866dc37]. (Closed-Leaf check-in: a7277ed0 user: dan tags: tkt-41866dc37)
2019-08-01
22:48
The sqlite3_set_authorizer() interface should only expire prepared statements when it is setting a new authorizer, not when clearing the authorizer. And statements that are running when sqlite3_set_authorizer() is invoked should be allowed to continue running to completion. (check-in: 961e2f08 user: drh tags: trunk)
15:18
Add new release tests for windows to releasetest_data.tcl. (check-in: 1b330ec2 user: dan tags: trunk)
10:58
Fix a problem in ALTER TABLE triggered by views or triggers that include the construction "ORDER BY true" or "ORDER BY false". (check-in: 8168021f user: dan tags: trunk)
2019-07-31
21:08
Update "releasetest_data.tcl" so that it is a standalone script that generates sh or batch scripts to run each tcl test run at release time. Update wapptest.tcl to use it. (check-in: 559c2dd6 user: dan tags: trunk)
15:16
New test cases in test/fuzzdata8.db. (check-in: 6e92d71c user: drh tags: trunk)
12:13
Do not allow the json_set() function to overwrite the same element more than once. (check-in: f237f60e user: drh tags: trunk)
2019-07-30
21:00
Fix the build for when -DSQLITE_SMALL_STACK is used. (check-in: b9eda224 user: drh tags: trunk)
14:22
Improved fix for ticket [ced41c7c7d6b4d36] that keeps skip-scan enabled, but avoids identifying a skip-scan as order-distinct (because it is not) and thus forces a separate b-tree to implement the DISTINCT clause of a query. This undoes check-in [a871d69c6de65038] and substitutes a new fix. (check-in: 89bf0399 user: drh tags: trunk)
01:17
Disable the skip-scan optimization for DISTINCT queries. Fix for ticket [ced41c7c7d6b4d36] (check-in: a871d69c user: drh tags: trunk)
2019-07-29
17:18
Convert an assert() in R-Tree into a database corruption detection case. (check-in: 48b518eb user: drh tags: trunk)
16:53
Fix a crash in fts3 caused by corrupt database records. (check-in: 11f7f94f user: dan tags: trunk)
15:32
When using an index for both DISTINCT and ORDER BY, do not confuse the number of columns required for distinctness with the number required to get the correct sort order. Fix for [6749cb3c]. (check-in: 6ac0f822 user: dan tags: trunk)
14:42
When using an index for both DISTINCT and ORDER BY, do not confuse the number of columns required for distinctness with the number required to get the correct sort order. Fix for [6749cb3c]. (Closed-Leaf check-in: b4716931 user: dan tags: tkt-6749cb3c)
06:06
Fix the OP_Affinity operator so that when applying REAL affinity, it only sets MEM_IntReal if the integer value will fit in 6 bytes or less. Fix for ticket [ba2f4585cf495231] (check-in: 2b221bb1 user: drh tags: trunk)
05:23
Fix a minor typo in a comment. (check-in: cea8a892 user: drh tags: trunk)
02:52
Sync up warning related compiler options in the Makefiles for MSVC. (check-in: e77d48d1 user: mistachkin tags: trunk)
02:49
Fix harmless compiler warning seen with MSVC for x64. (check-in: 857b2ba6 user: mistachkin tags: trunk)
2019-07-26
20:54
Merge latest changes from trunk into this branch. (check-in: 7f1e4e4b user: dan tags: reuse-schema)
20:33
Update RBU so that it supports indexes on expressions. (check-in: 6bfa44da user: dan tags: trunk)
16:16
Fix RBU handling of partial indexes with comments embedded in their CREATE INDEX statements. (check-in: e1ccf211 user: dan tags: trunk)
2019-07-25
19:29
Fix a potential buffer overread in fts5 triggered by a corrupt database record. (check-in: 16472112 user: dan tags: trunk)
2019-07-24
23:15
Fix faulty asserts in the code generator. Ticket [c52b09c7f38903b1] (check-in: 01cdc590 user: drh tags: trunk)
20:10
Improve the ".recover" command so that it handles intkey pages linked into non-intkey b-trees, and vice-versa, better. (check-in: 9c458acb user: dan tags: trunk)
19:20
Improve the ".recover" command's handling of corrupt database schemas. (check-in: becaaa4d user: dan tags: trunk)
08:15
Improve the ".recover" command in the shell tool so that it is not confused by auto-vacuum databases. And so that it can recover tables for which one or more of the column names are SQL keywords. (check-in: 87d76047 user: dan tags: trunk)
2019-07-23
13:26
Avoid redefining types u32 and u16 when fossildelta.c is compiled as part of the amalgamation. (check-in: d8e88248 user: dan tags: trunk)
2019-07-22
23:30
Do not use the insert-overwrite optimization if the cell might overwrite the page header. (Leaf check-in: 9991626b user: drh tags: branch-3.29)
23:24
Do not use the insert-overwrite optimization if the cell might overwrite the page header. (check-in: f60a8306 user: drh tags: trunk)
19:01
Consolidate the removal of Window objects from the Select.pWin list into a single subroutine. (check-in: e46b2afc user: drh tags: trunk)
17:28
Fix a bug in the linked-list handling code added by commit [fd7316cd]. (check-in: 05080344 user: dan tags: trunk)
16:57
New test cases added to test/fuzzdata8.db (check-in: 25fec62a user: drh tags: trunk)
16:33
Remove Window objects from the corresponding Select.pWin list when they are deleted, as they are, for example, when the ORDER BY clause is optimized out. (check-in: fd7316cd user: dan tags: trunk)
16:20
Remove Window objects from the corresponding Select.pWin list when they are deleted. (Closed-Leaf check-in: d23f3316 user: dan tags: winfunc-in-orderby)
11:38
Fix a problem with renaming tables when the schema contains an invocation of a currently unregistered aggregate with a FILTER clause. (check-in: bd37ce3f user: dan tags: trunk)
2019-07-20
21:12
Make sure any window definitions in an ORDER BY clause are removed from the SELECT statement if the ORDER BY clause gets optimized out. (check-in: 23b11967 user: drh tags: winfunc-in-orderby)
18:00
Early detection of a corrupt R-Tree in the R-Tree search algorithm. (check-in: 2bf5a4c1 user: drh tags: trunk)
17:43
Performance optimizations in the rtreeStepToLeaf() routine of RTree. (check-in: 4e34e361 user: drh tags: trunk)
2019-07-19
15:03
New test cases added to test/fuzzdata8.db. (check-in: 39be3c61 user: drh tags: trunk)
15:00
Refinement to check-in [348e7f193a963390] that avoids unreachable branches. (check-in: bbfb2908 user: drh tags: trunk)
14:32
Fix a problem with renaming a table when the schema contains an invocation of a window function that is not currently registered. (check-in: ff290feb user: dan tags: trunk)
11:20
Fix a problem with renaming tables when the schema contains WINDOW definitions with (illegal) non-numeric expressions as part of a PRECEDING or FOLLOWING clause. (check-in: 348e7f19 user: dan tags: trunk)
10:31
Fix a faulty assert() in walker.c that could fail when processing an ALTER TABLE statement on a schema containing invalid table references that are part of a WINDOW definition. (check-in: ee076c28 user: dan tags: trunk)
01:25
Fix a new problem in the BETWEEN operator when applied to a window function. The problem was introduced yesterday by check-in [7ef7b23cbb1b9ace]. This cherry-pick also needed to remove an assert from sqliteExprDelete(). (check-in: ce6bf395 user: drh tags: branch-3.29)
01:11
Fix a new problem in the BETWEEN operator when applied to a window function. The problem was introduced yesterday by check-in [7ef7b23cbb1b9ace]. (check-in: 47e23064 user: drh tags: trunk)
2019-07-18
20:55
Fix a problem where self-joins on views that are aggregate queries may return the wrong result. Cherrypick of [74ef97bf51dd531a]. (check-in: 2f0a564f user: mistachkin tags: branch-3.28)
19:50
Add a ctime.c entry for SQLITE_ENABLE_SHARED_SCHEMA. (check-in: 892ac945 user: drh tags: reuse-schema)
13:33
Modify the bits used for special flags on this branch to account for the fact that some of them are now used for other purposes. (check-in: 5a8d0f50 user: dan tags: reuse-schema)
2019-07-17
19:57
Always use the stdlib.h intptr_t type for pointer-integer conversions, when it is available. (check-in: c0d93244 user: drh tags: trunk)
18:19
When processing a BETWEEN or CASE expression, avoid transforming a node of the original expression into a TK_REGISTER node. Instead, take a copy and use it instead. Fix for [1be72aab9]. (check-in: bc6b0d73 user: drh tags: branch-3.29)
18:11
Fix problems with duplicate fields in the PRIMARY KEYs of WITHOUT ROWID tables. (check-in: bda25883 user: drh tags: branch-3.29)
16:18
Fix an incorrect assert() in balance_nonroot(). (check-in: 59c9e73f user: drh tags: trunk)
15:05
Improvement to the hexdb interpreter built into the CLI and into the TCL test harness: Round the "size" up to the next multiple of the "pagesize". (check-in: 9ec92939 user: drh tags: trunk)
14:34
When processing a BETWEEN or CASE expression, avoid transforming a node of the original expression into a TK_REGISTER node. Instead, take a copy and use it instead. Fix for [1be72aab9]. (check-in: 7ef7b23c user: dan tags: trunk)
12:49
Fix the WITHOUT ROWID table logic so that it generates a correct KeyInfo object for tables that have a PRIMARY KEY containing the same column used more than once with different collating sequences. Enhance the index_xinfo pragma to assist in testing the above. Fix for ticket [fd3aec0c7e3e2998]. (check-in: 84a51a75 user: drh tags: trunk)
12:42
New test cases for PRAGMA index_xinfo on a WITHOUT ROWID table. And new testcases using index_xinfo to verify that WITHOUT ROWID tables are constructed correctly. (Closed-Leaf check-in: 340378c1 user: drh tags: wor-pk-dups)
11:01
Enhance the "PRAGMA index_info()" and "PRAGMA index_xinfo()" statements so that they allow a WITHOUT ROWID table as their argument, and in that case show the structure of the underlying index used to implement the WITHOUT ROWID table. (check-in: 62274ff6 user: drh tags: wor-pk-dups)
09:18
Fix problems with duplicate fields in the PRIMARY KEYs of WITHOUT ROWID tables. (check-in: bd9a47a3 user: dan tags: wor-pk-dups)
07:23
Add casts to shell.c.in to avoid warnings on systems where size_t is 32 bits. (check-in: fe014288 user: dan tags: trunk)
2019-07-16
19:44
Add new assert() statements in an attempt to help static analyzers avoid false-positives. (check-in: 9e664585 user: drh tags: trunk)
18:27
Add assert()s in os_win.c in an effort to silence false-positives from static analyzers. (check-in: 22a7c15b user: drh tags: trunk)
05:11
Call ioctl() with the correct signature on both Android and stock Linux. (check-in: 24225349 user: dan tags: trunk)
2019-07-15
13:58
Fix a problem that could cause a crash if a blob handle were closed after the associated database handle was closed using sqlite3_close_v2(). (check-in: 52f463d2 user: dan tags: trunk)
07:58
Call ioctl() with the correct signature on both Android and stock Linux. (Closed-Leaf check-in: 68e12e06 user: dan tags: ioctl-signature)
2019-07-14
00:15
Mark an unreachable branch using ALWAYS(). (check-in: 0fff105a user: drh tags: trunk)
2019-07-13
18:27
Fix a memory leak that could follow an OOM in the new FILTER code. (check-in: 85fd70fe user: dan tags: trunk)
17:54
Fix a typo in test file window1.test. (check-in: 8c80e81d user: dan tags: trunk)
17:45
Fix error handling for the case where a window function is passed the wrong number of arguments. (check-in: 871796bb user: dan tags: trunk)
17:21
Fix a double-quoted string literal used in the ".schema" command of the CLI. (check-in: fcd937d9 user: drh tags: trunk)
16:39
Add support for attaching a FILTER clause to an aggregate function. (check-in: ee293e5a user: dan tags: trunk)
16:22
Rework the FILTER clause implementation to share more code with window functions. (Leaf check-in: 5dac8c38 user: dan tags: filter-clause)
16:15
Remove unreachable "break" statements to silence harmless compiler warnings from ICC. (check-in: 0d7287e1 user: drh tags: trunk)
09:56
Merge latest trunk changes into this branch. (check-in: 86ab963c user: dan tags: filter-clause)
09:55
Trivial performance improvement for balance(). (check-in: c7920f55 user: dan tags: filter-clause)
2019-07-12
15:15
Minor performance improvement in vdbeRecordCompareString(). (check-in: 777fec84 user: dan tags: filter-clause)
2019-07-11
19:50
Improved comments and extra testcase() macros on the serial-type computation logic in the OP_MakeRecord opcode. (check-in: 18bfb217 user: drh tags: trunk)
19:27
Increase the version number to 3.30.0 for the next release cycle. (check-in: 2578e3c6 user: drh tags: trunk)
19:22
Move the sqlite3VdbeSerialType() routine in-line in the OP_MakeRecord opcode. Optimizing compilers were doing this already. By doing it manually, we can omit some redundant tests and make the whole thing run a million cycles faster and use about 80 bytes less code space. (check-in: d837ab0d user: drh tags: trunk)
18:43
Change the parser on this branch to more closely match trunk. This saves a few more cycles. (check-in: be01b801 user: dan tags: filter-clause)
2019-07-10
20:16
Minor performance improvement in sqlite3ExprDeleteNN(). (check-in: bcc8b38a user: dan tags: filter-clause)
18:45
Merge the version 3.29.0 release enhancements into the reuse-schema branch. (check-in: 9819ead0 user: drh tags: reuse-schema)
18:40
Merge the 3.29.0 updates into the begin-concurrent-pnu-wal2 branch. (check-in: 627b428f user: drh tags: begin-concurrent-pnu-wal2)
18:30
Merge the 3.29.0 release into the wal2 branch. (check-in: 8baa4022 user: drh tags: wal2)
18:21
Merge the 3.29.0 changes into the begin-concurrent-pnu branch. (check-in: c89949cc user: drh tags: begin-concurrent-pnu)
18:11
Merge the 3.29.0 release into the begin-concurrent branch. (check-in: 983733ae user: drh tags: begin-concurrent)
17:58
Merge the 3.29.0 release into the apple-osx branch. (check-in: 87aa1d70 user: drh tags: apple-osx)
17:32
Version 3.29.0 (check-in: fc82b73e user: drh tags: trunk, release, version-3.29.0)
2019-07-09
23:35
Add the "LL" suffix on a pair of larger integer literals, for compatibility with older C compilers. (check-in: 6f328c35 user: drh tags: trunk)
17:36
Update rtree.c so that SQLITE_DEBUG is required to turn on assert() statements, even if it is compiled separately from the amalgamation. (check-in: b6e17f01 user: dan tags: trunk)
12:03
Fix a test script problem in windowfault.test. (check-in: 47010bf1 user: dan tags: trunk)
2019-07-08
21:32
Merge recent trunk enhancements into the reuse-schema branch. (check-in: fae92fee user: drh tags: reuse-schema)
21:25
Merge enhancments from wal2, which also merges trunk enhancements. (check-in: 08dcb459 user: drh tags: begin-concurrent-pnu-wal2)
21:19
Merge all enhancements from trunk into the wal2 branch. (check-in: dcbcbc2a user: drh tags: wal2)
21:12
Merge enhancements from trunk into the begin-concurrent-pnu branch. (check-in: 05aa93af user: drh tags: begin-concurrent-pnu)
21:06
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: 7fff0803 user: drh tags: begin-concurrent)
20:59
Merge recent enhancements from trunk into apple-osx. (check-in: de88ed86 user: drh tags: apple-osx)
18:35
Fix dbfuzz2 so that it will compile on systems that do not support getrlimit(). (check-in: 36295dce user: drh tags: trunk)
13:45
Fix an assert() that [28196d89] caused to fail. (check-in: 8fb0c6d5 user: dan tags: trunk)
12:44
Comment improvements. No changes to code. (Leaf check-in: b0629132 user: drh tags: tkt9b78184b-alt)
12:01
Ensure collation sequences and affinities work in window function queries. Fix for [9ece23d2]. (check-in: 28196d89 user: dan tags: trunk)
2019-07-05
19:10
Another very small performance improvement. (check-in: 7a1e30a1 user: dan tags: filter-clause)
17:38
Minor tweak to patch on this branch to reclaim some cycles. (check-in: 81eed055 user: dan tags: filter-clause)
15:16
Fix a valgrind problem in fts3corrupt4.test. (check-in: cb3dec42 user: dan tags: trunk)
2019-07-04
19:19
As it requires wal mode support, do not run test file chunksize.test as part of the "journaltest" permutation. (check-in: acd2df36 user: dan tags: trunk)
16:30
Fix a typo in the wapptest.tcl script. (check-in: 971b4422 user: dan tags: trunk)
16:06
Have wapptest.tcl run at least one threadtest with an SQLITE_ENABLE_MEMORY_MANAGEMENT build. (check-in: d6131caf user: dan tags: trunk)
16:05
Fix a race condition that could occur in SQLITE_ENABLE_MEMORY_MANAGEMENT builds when two threads simultaneously open the first two database connections in the process. (check-in: 5ea3f6fc user: dan tags: trunk)
2019-07-03
18:31
Add tests for the FILTER clause. And a bugfix. (check-in: 28aa1702 user: dan tags: filter-clause)
2019-07-02
20:10
Have ALTER TABLE detect and error out for the case where renaming a column changes a the interpretation of a double-quoted identifier in the database schema from an SQL literal to a column reference. (check-in: 5dbb0734 user: dan tags: tkt9b78184b-alt)
12:23
Restore the legacy behavior of enabling double-quoted string literals in all contexts. But also provide a new compile-time option (SQLITE_DQS) to change the default to something more restrictive. (check-in: 97a94446 user: drh tags: trunk)
11:56
Experimental implementation of FILTER clause for aggregate functions. (check-in: 1f1ae2d6 user: dan tags: filter-clause)
2019-06-28
07:08
Use the OP_Sequence opcode for generating unique rowid values for an autoindex on a co-routine implementation of a subquery. (check-in: eab42975 user: drh tags: trunk)
2019-06-26
21:04
Ensure that when an ephemeral cursor is reopened with a second invocation of to OP_OpenEphemeral, the sequence counter is reset and the cache marked as stale. Fix for [9cdc5c46]. (check-in: 5fd20e09 user: dan tags: trunk)
2019-06-21
14:05
Fix a typo in an option name for the .dbconfig command in shell.c.in: s/wriable_schema/writable_schema/ (check-in: 1c58522e user: dan tags: trunk)
2019-06-17
14:50
Fix a problem with handling with handling quoted path elements in extension functions json_set() and json_insert() reported on the mailing list. (check-in: 45bfcb88 user: dan tags: trunk)
14:13
New sqlite3_db_config() options: SQLITE_DBCONFIG_LEGACY_ALTER_TABLE, SQLITE_DBCONFIG_DQS_DML, and SQLITE_DBCONFIG_DQS_DDL. (check-in: a61db8ff user: drh tags: trunk)
13:56
Improved interface to double-quoted string literal enabling/disabling. (Closed-Leaf check-in: 923cfd53 user: drh tags: new-dbconfig-options)
2019-06-16
14:56
Avoid transforming TK_COLLATE or TK_UNLIKELY Expr nodes to TK_REFERENCE. Instead, transform the uppermost Expr node in the expression tree that is not of this type. Fix for [e1e07ef2]. (check-in: 54110870 user: drh tags: trunk)
08:58
Avoid transforming TK_COLLATE or TK_UNLIKELY Expr nodes to TK_REFERENCE. Instead, transform the uppermost Expr node in the expression tree that is not of this type. Fix for [e1e07ef2]. (Closed-Leaf check-in: ba7870e2 user: dan tags: tkt-e1e07ef2)
2019-06-15
15:32
Fix minor problems in the test code in test_demovfs.c. (check-in: ca4ddfef user: dan tags: trunk)
15:27
Add extra test case for one of the problems fixed by the previous commit. (check-in: 0bbceebb user: dan tags: trunk)
15:21
Ensure that sqlite3RenameExprUnmap() does an unmap of the result set alias names in subqueries when ALTER TABLE fails because of a syntax error in a trigger. (check-in: d3b6f166 user: drh tags: trunk)
2019-06-14
21:25
Add SQLITE_DBCONFIG options LEGACY_ALTER_TABLE, NO_DQS_SCHEMA, and NO_DQS. (check-in: 1fad2092 user: drh tags: new-dbconfig-options)
17:37
Deprecate the SQLITE_ALLOW_COVERING_INDEX_SCAN compile-time option when it is turned off. This probably will impact no-one. If it does, they will get an error message instructing them to contact developers, so that we can get feedback that somebody is actually using this feature. Start-time disabling of covering index scan is not affected. (check-in: 23e49f99 user: drh tags: trunk)
13:24
Fix the implementation of the built-in RTRIM collating sequence so that it works for control characters at the end of the string. Ticket [f1580ba1b574e9e9] (check-in: 86fa0087 user: drh tags: trunk)
12:28
Refactor the LIKE optimization decision logic so that it uses sqlite3AtoF() on both boundary keys to determine if the optimization can be used when the LHS is something that might not have TEXT affinity. Ticket [ce8717f0885af975]. See also [c94369cae9b561b1], [b043a54c3de54b28], [fd76310a5e843e07], and [158290c0abafde67]. (check-in: b4a9e09e user: drh tags: trunk)
2019-06-13
16:14
Add a new requirement mark on the ctime.c code. (check-in: c4b40568 user: drh tags: trunk)
14:07
Do not use the %lld printf conversion in the platform printf() as some legacy platforms do not support it. (check-in: f8696b60 user: drh tags: trunk)
13:52
Fix a minor error in a test script, and harmless compiler warnings in the CLI code. (check-in: eaa34626 user: drh tags: trunk)
2019-06-12
22:46
Adjust requirements marks and add new requirements tests. (check-in: ebb81dad user: drh tags: trunk)
20:51
As a special case, casting '-0.0' into numeric should yield 0. Fix for ticket [674385aeba91c774]. (check-in: 491f0f9b user: drh tags: trunk)
20:11
Enhancements to the printf() logic in order to render a negative zero with a minus sign. (Leaf check-in: 6ba4be66 user: drh tags: negative-zero)
13:49
Handle expressions like "expr IS TRUE COLLATE xyz" in the same way as "expr IS TRUE". Fix for [4d01eda8115b10d1]. (check-in: 5c6146b5 user: dan tags: trunk)
2019-06-11
21:02
The affinity of the unlikely() function and its cousins should be "none". Ticket [0c620df60bffd9ef] (check-in: 614ecb0a user: drh tags: trunk)
18:07
Make sure the affinity of the RHS of an IN operator does not affect the outcome even if the RHS expression contains a COLLATE clause. Ticket [57353f8243c637c0] (check-in: 0f748fe5 user: drh tags: trunk)
16:43
Mark an unreachable branch with an ALWAYS macro. (check-in: d4755aca user: drh tags: trunk)
16:07
New test case in fuzzdata8.db. (check-in: e96641f0 user: drh tags: trunk)
16:06
Off-by-one error in the CAST to NUMERIC logic. (check-in: 25b89630 user: drh tags: trunk)
12:03
Have the ALTER TABLE code handle the case where an entire expression that includes a sub-select is excluded from a view, trigger or index. (check-in: f2c8179f user: dan tags: trunk)
10:43
Add the new sqlite3ExprUnmapAndDelete() function and use it in place of separate calls to sqlite3RenameExprUnmap() and sqlite3ExprDelete(). (check-in: 36ea13e0 user: drh tags: trunk)
02:43
The ALTER TABLE command should not attempt to rename objects that are contained within an expression tree that has been optimized out because it is the other branch of an "AND false" expression. Ticket [533010b8cacebe82] (check-in: 04bd5cb7 user: drh tags: trunk)
01:56
Fix repeated test numbers in the altertab2.test file. (check-in: e82f235e user: drh tags: trunk)
01:30
Remove a comment made obsolete by check-in [71643deb6bbad4b4]. No changes to code. (check-in: 211c8002 user: drh tags: trunk)
2019-06-10
23:45
A string consisting of a single '.' is not a floating point literal with extra text at the end. Fix for ticket [412bba9b22c677da] (check-in: 57050162 user: drh tags: trunk)
19:17
Have ALTER TABLE commands ignore the lhs of "expr IN ()" and "expr NOT IN ()" expressions, just as other queries do. Fix for [533010b8ca]. (check-in: 71643deb user: dan tags: trunk)
19:07
Improvements to the documentation for the xAccess method of the VFS. Ticket [5e0423b058fa5adf] (check-in: 7078d77e user: drh tags: trunk)
18:33
Make sure a CAST to "NUMERIC" results in an integer if the value can be losslessly expressed as an integer, as the documentation requires. Ticket [dd6bffbfb6e61db9]. (check-in: c0c90961 user: drh tags: trunk)
15:34
Handle renaming a column or table when the schema contains a (meaningless) index on the constant expression ('text' IN ()) or ('text' NOT IN()). Fix for [fd76310a]. (check-in: 567b1309 user: dan tags: trunk)
13:46
Do not attempt the LIKE optimization on a column with numeric affinity if the rhs of the operator begins with whitespace. Fix for ticket [fd76310a5e]. (check-in: 94b58ab0 user: dan tags: trunk)
2019-06-07
22:51
Remove code in the round() SQL function that became unreachable due to the optimization of check-in [e95138f5f4febde5] (check-in: b141bae3 user: drh tags: trunk)
22:26
When casting string values into numeric and the string has a prefix that looks like a number but total string is not a well-formed number, then take extra care that the result is either integer or real depending on what the prefix looks like. Fix for tickets [e8bedb2a184001] and [4c2d7639f076aa]. (check-in: 67a68af5 user: drh tags: trunk)
18:56
Also upgrade script config.sub to the latest version. This should have been part of the previous commit. (check-in: efbf31b8 user: dan tags: trunk)
18:53
Upgrade the config.guess script to the latest version. (check-in: be843813 user: dan tags: trunk)
2019-06-05
14:29
CLI enhancements: Add the ".filectrl" command. Make the ".testctrl" command visible to ".help". (check-in: 7b3a99fc user: drh tags: trunk)
13:14
Add a test case for the unix SQLITE_FCNTL_CHUNK_SIZE file-control. (check-in: 3a477fd0 user: dan tags: trunk)
2019-06-04
18:21
In the CLI, add a small delay (0.1 seconds) after launching the output command for ".once" before deleting the temporary file. (check-in: 4979f138 user: drh tags: trunk)
15:47
New dbsqlfuzz test cases add to test/fuzzdata8.db. (check-in: 873aa46d user: drh tags: trunk)
13:11
Fix a segfault in fts3 that could occur when processing corrupt fts records. (check-in: dff24c6c user: dan tags: trunk)
2019-06-03
15:10
Fix harmless compiler warning in lemon. (check-in: 3a052429 user: mistachkin tags: branch-3.28)
15:09
Fix harmless compiler warning in lemon. (check-in: 2da0eea0 user: mistachkin tags: trunk)
14:02
Updates to the shared_schema.md notes document. (check-in: 51af2ade user: drh tags: reuse-schema)
13:53
Fix the count-of-view optimization so that it is (correctly) disabled for a query that includes a WHERE clause or a GROUP BY clause. Cherrypick of [05897ca48a40c6771]. (check-in: 583e5a0a user: mistachkin tags: branch-3.28)
13:46
In the CLI, add ".help" text for the .shared-schema command. (check-in: 3ba6f790 user: drh tags: reuse-schema)
2019-05-30
13:47
Optimization to the round() SQL function for large input values without a fractional part. (check-in: e95138f5 user: drh tags: trunk)
00:46
Smaller and faster sqlite3IsNaN() implementation makes deserialization of floating point values much faster. (check-in: ea748ede user: drh tags: trunk)
2019-05-29
21:18
Much faster implementation of applyNumericAffinity() by avoiding some unnecessary calls to sqlite3Atoi64(). (check-in: c1d8a3f6 user: drh tags: trunk)
18:33
Add an assert() as an additional test for fix in check-in [523b42371122d9e1b3]. (check-in: f9e85e6c user: drh tags: trunk)
17:22
Fix the query flattener optimization so that it preserve the "SF_Compound" bit when flattening a compound subquery into a non-compound outer query. Failure to preserve that bit could allow subsequent flattenings which are not valid. Fix for ticket [c41afac34f15781fe09cd]. (check-in: 523b4237 user: drh tags: trunk)
2019-05-28
14:42
Fix an assert() in fts3 that could fail when processing corrupt records. Also some minor sanitizer warnings. (check-in: c736c40a user: dan tags: trunk)
2019-05-27
11:21
Fix an error message on the blobread() extension function so that it says "read" instead of "write". (check-in: 7cbb9a5f user: drh tags: trunk)
11:09
Fix a memory leak in the delta_parse() table-valued function of the fossildelta.c extension. (check-in: c86ca3f0 user: drh tags: trunk)
00:29
Improved rounding even on systems with an 8-byte "long double" type. (check-in: 15202aee user: drh tags: trunk)
2019-05-25
18:17
Performance enhancement in sqlite3AtoF(). About 8% faster. (check-in: 81721aa5 user: drh tags: trunk)
17:41
Use "long double" literals to initialize an array of "long double" objects. (check-in: 2e2ebad3 user: drh tags: trunk)
13:14
Add new cases to speedtest1 for measuring performance of binary to/from decimal conversions of floating point values. (check-in: b84e7057 user: drh tags: trunk)
00:17
Disable the new rounding tests on systems without long double support. (check-in: ed250b4e user: drh tags: trunk)
2019-05-24
22:58
Improvements to rounding behavior in the round() and printf() functions. (check-in: 641b2d21 user: drh tags: trunk)
13:15
The ".shared-schema" command in the CLI requires the sqlite_dbpage table, so disable it if the build does not include that extension. (check-in: 0913ff4d user: drh tags: reuse-schema)
13:04
Merge recent enhancements from trunk. (check-in: ff9f3e09 user: drh tags: reuse-schema)
11:55
Fix an fts5 segfault that could occur after parsing a corrupt structure record. (check-in: 600daa9c user: dan tags: trunk)
2019-05-23
16:40
Add test cases for the fix in the previous commit. (check-in: c1057b2a user: dan tags: trunk)
16:38
Improvements to the view-self-join optimization so that it works on all VIEWs, not just on Common Table Expressions. (check-in: d2fe370c user: drh tags: trunk)
2019-05-22
23:12
New test case for check-in [74ef97bf51dd531a] that takes the fix in the previous check-in into account. (check-in: cb1d0652 user: drh tags: trunk)
22:49
Renumber the Select.selId values in the copies of SELECT statements that implement VIEWs when the VIEW is expanded, so that when the same VIEW is used twice in the same join, each expansion as a distinct selId. This fixes ticket [ce823231949d3abf42453c8]. (check-in: 3cacc4b9 user: drh tags: trunk)
14:35
New dbsqlfuzz find added to test/fuzzdata8.db. (check-in: 42af7c81 user: drh tags: trunk)
14:22
Fix a buffer overread that could in fts3 when dealing with corrupt records. (check-in: 1660d773 user: dan tags: trunk)
2019-05-21
17:04
Combine the implementations of the key and hexkey pragmas into a single case. Have both pragmas return "ok" if they are implemented. (check-in: b3692c40 user: drh tags: trunk)
16:32
Fix a problem in [b5ca442a] causing an assert() to fail in REINDEX commands. (check-in: a3e77c77 user: dan tags: trunk)
14:42
Use a statement journal for all CREATE INDEX statements in case an indexed exprsesion throws an exception when it is evaluated. Fix for [b5ca442a]. (check-in: b8071d10 user: dan tags: trunk)
2019-05-20
19:46
Fix a segfault that could occur in sqlite3session_diff() if NULL were passed as the pzErrMsg argument. (check-in: aee73fd2 user: dan tags: trunk)
18:43
Improvements to the automatic compile-time selection of byte-order, as suggested on the mailing list by Seb Kemper. (check-in: b7aad929 user: drh tags: trunk)
18:35
A minor variation on check-in [1685610ef8e0dc] which (hopefully) makes the logic a little easier to follow. Also disallows the use of the double-quoted string hack in the query expression used for VACUUM INTO, which is not strictly required, but moves us toward the goal of disallowing the double-quoted string hack everywhere. (check-in: 3e1b55f3 user: drh tags: trunk)
17:14
Disallow string constants enclosed in double-quotes within new CREATE TABLE and CREATE INDEX statements. It is still possible to enclose column names in double-quotes, and existing database schemas that use double-quotes for strings can still be loaded. This addresses ticket [9b78184b]. (check-in: 1685610e user: dan tags: trunk)
10:36
Update the sqlite3ExprCompare() routine so that it does not think "? IS NOT TRUE" is the same as "? IS TRUE". Fix for [d3e7f2ba5b3]. (check-in: 99eba69b user: dan tags: trunk)
2019-05-18
21:22
Fix an assert() failure that could occur in a join query if the RHS of an IN() operator is a list containing correlated expressions. This problem was introduced by checkin [e130319317e7611938] which was part of the fix for ticket [787fa716be3a7f650c] - so this commit is part of that ticket's fix too. (check-in: 778b1224 user: dan tags: trunk)
19:49
Avoid including the comment in the output of "PRAGMA table_info" in situations where there is a comment following a DEFAULT value within a CREATE TABLE statement. (check-in: d91095ba user: dan tags: trunk)
2019-05-17
20:37
Disable PRAGMA journal_mode=OFF when SQLITE_DBCONFIG_DEFENSIVE is turned on. Ticket [f4ec250930342e0c]. (check-in: a0f5eb5c user: drh tags: trunk)
15:59
Always store a REAL value in a column with REAL affinity if the integer equivalent would require 8 bytes of storage. Fix for [3c27b97e3]. (check-in: 14c00b10 user: dan tags: trunk)
2019-05-16
20:40
Add test cases to test/fuzzdata7.db for (harmless) dbfuzz2 finds. (check-in: 1eb2a628 user: drh tags: trunk)
20:36
Initialize the 18-byte overrun area on the buffer used to reconstruct overflow btree cells during a btree search, to avoid a harmless jump-depends-on-uninit-values warning. (check-in: 4b05caeb user: drh tags: trunk)
20:13
Fix an assert() in the OP_Delete opcode that could fail with a corrupt database. (check-in: 915388ab user: dan tags: trunk)
16:44
Add new test file fts5corrupt4.test. (check-in: 5dfc4fe9 user: dan tags: trunk)
11:47
Fix a harmless use-of-initialized-value fault in the assert() logic added by check-in [d612fb7873cf59d] (check-in: 3dac9072 user: drh tags: trunk)
03:47
Fix harmless compiler warning in the session extension. (check-in: dff823ca user: mistachkin tags: trunk)
01:22
Make sure the OP_Concat opcode always correctly zero-terminates a UTF16 string, even if the input strings are ill-formed. This is a followup to check-in [3a16ddf91f0c9c516a7] that fixes a case the previous check-in missed. Also add assert()s to prove correct zero termination. (check-in: d612fb78 user: drh tags: trunk)
2019-05-15
18:42
Fix the count-of-view optimization so that it is (correctly) disabled for a query that includes a WHERE clause or a GROUP BY clause. (check-in: 05897ca4 user: drh tags: trunk)
10:16
Simplify the "Verifying Code Authenticity" section of the README.md file. No code changes. (check-in: adebffc1 user: drh tags: trunk)
2019-05-14
22:25
Merge all the latest trunk enhancements into the reuse-schema branch. (check-in: 018f3199 user: drh tags: reuse-schema)
22:07
Merge the latest trunk and wal2 enhancements. (check-in: 3deaa6e2 user: drh tags: begin-concurrent-pnu-wal2)
22:02
Merge the latest trunk enhancements into the wal2 branch. (check-in: 23ec34e4 user: drh tags: wal2)
21:51
Merge the latest trunk enhancements into begin-concurrent-pnu. (check-in: e70878b3 user: drh tags: begin-concurrent-pnu)
21:51
Merge the latest trunk enhancements into begin-concurrent. (check-in: 5d3a6e18 user: drh tags: begin-concurrent)
20:25
Fix a problem with the fix for [9cf6c9bb51] (commit [658b84d7]) that could cause a cursor to be left in an invalid state following a (rowid < text-value) search. (check-in: bc7d2c16 user: dan tags: trunk)
19:39
Merge recent enhancements from trunk into apple-osx. (check-in: 40362d51 user: drh tags: apple-osx)
19:20
New test cases in test/fuzzdata8.db. (check-in: 228e1087 user: drh tags: trunk)
18:33
Fix a problem with corrupt db handling in the fts5_vocab module. (check-in: 456ced57 user: dan tags: trunk)
11:33
Fix an assert() and potential buffer overrun in fts5 that could occur if the database was corrupt. (check-in: 8be8bd0d user: dan tags: trunk)
00:43
Disable index seek optimizations on REINDEX when the order of primary keys in the index differs from the main table. Fix for ticket [bba7b69f9849b5bf11b4]. (check-in: f7aadfab user: drh tags: trunk)
2019-05-13
11:52
Fix an assert() failure in fts5 that could occur when processing a corrupt database. (check-in: f158c048 user: dan tags: trunk)
2019-05-11
19:36
A new implementation for the sqlite3ExprImpliesExpr() theorem prover that does a better job of answering TRUE to "(NOT A) OR B" when B is a NOT NULL expression. (check-in: b3413197 user: drh tags: trunk)
16:14
When considering partial indexes, do not assume that a "CASE x ..." expression implies "x IS NOT NULL". (check-in: 1b243032 user: dan tags: trunk)
13:04
Do not assume that "x IS NOT ?" implies "x NOT NULL" when considering partial indexes. Fix for ticket [8025674847]. (check-in: 0ba6d709 user: dan tags: trunk)
2019-05-10
20:44
Add tests for the RBU module. (check-in: a194e536 user: dan tags: trunk)
17:54
Fix harmless compiler warnings. (check-in: 956ca2a4 user: drh tags: trunk)
17:50
Fix harmless compiler warnings in the CLI. (check-in: 2846bc04 user: drh tags: trunk)
16:16
Fix some harmless compiler warnings. (Closed-Leaf check-in: ca068d82 user: mistachkin tags: warnings)
14:34
Ensure that the BtShared.nPage value is reset correctly on a SAVEPOINT ROLLBACK. (check-in: e6d5fee8 user: drh tags: trunk)
14:26
Treat integer values in window definition ORDER BY clauses as constants, not as references to another expression. (check-in: 7e4809ea user: dan tags: trunk)
14:03
Improved comments and extra assert() statements on the OP_Savepoint opcode, just to make the code a little easier to read and reason about. (check-in: e80b2d9f user: drh tags: trunk)
12:14
Fix the previous check-in [db9acef14d492121] so that the amalgamation build works for systems for which lack HAVE_ISNAN. (check-in: 3cc55e09 user: drh tags: trunk)
12:06
Fix the round() SQL function so that it handles infinities correctly. (check-in: db9acef1 user: drh tags: trunk)
2019-05-09
18:37
Fix another small buffer overread in sqlite_dbdata triggered by a corrupt database page. (check-in: 1dfc95b8 user: dan tags: trunk)
18:33
Fix a problem in the ".recover" command allowing a circular loop of b-tree pages in a database file to cause an infinite loop. (check-in: 8d2a062e user: dan tags: trunk)
18:13
Make the ".schema" command in the CLI resistant to corrupt database files. (check-in: f22c7e22 user: drh tags: trunk)
17:54
Fix a crash in the sqlite_dbdata module that could occur if a pointer within an overflow chain in a corrupt database pointed past the end of the db. (check-in: 3eae4e30 user: dan tags: trunk)
17:10
Disable the optimization where a REAL value with no fractional part is stored as an INTEGER when the integer uses as much space as the real value it proposes to stand in for (8 bytes). This avoids corner cases of comparing integers against real values that are beyond the resolution of an IEEE 754 double. Fix for ticket [6c1d3febc00b22d457c78c2] (check-in: 9b091527 user: drh tags: trunk)
16:57
Avoid long delays that can occur when ".recover"ing data from a database with a corrupt freelist. (check-in: 20f06bf2 user: dan tags: trunk)
16:22
Improved debugging output from the OP_MakeRecord opcode. (check-in: ac790729 user: drh tags: trunk)
15:51
Fix another corruption related buffer overread in the sqlite_dbdata module. (check-in: 5cd728fb user: dan tags: trunk)
15:07
Fix further buffer overreads triggered by passing corrupt records to the sqlite_dbdata module. (check-in: dbc6a9f7 user: dan tags: trunk)
14:15
Have ".recover" handle cases where the sqlite_master table contains malformed SQL statements. (check-in: e736da9c user: dan tags: trunk)
11:45
Fix a problem with running the ".recover" command on a database that is zero pages in size. (check-in: 47fa6534 user: dan tags: trunk)
11:34
Avoid reading outside a record buffer when extracting an SQL value in the sqlite_dbdata virtual table code. (check-in: d99bb0c1 user: dan tags: trunk)
11:21
Merge accidental fork in trunk. (check-in: ec937303 user: dan tags: trunk)
11:19
Fix a problem in the new code introduced by [658b84d7] causing corruption and other errors to be ignored. (check-in: 7ccf2e7d user: dan tags: trunk)
11:18
Improved error handling for the ".open --hexdb" command of the CLI. (check-in: 4fa831d5 user: drh tags: trunk)
2019-05-08
23:55
Ensure that the sqlite3BtreeLast() interface initializes the *pRes return to zero if the cursor is already sitting on the last entry of the table. Manuel Rigger found the obscure test case for which this makes a difference. (check-in: ebe4845c user: drh tags: trunk)
23:53
This is part of the previous check-in that didn't get committed for some reason - probably because I failed to press the "Save" button on the text editor. (check-in: 51d32173 user: drh tags: trunk)
21:14
Add another test case to cover a previously uncovered branch in the RBU module. (check-in: 30392985 user: dan tags: trunk)
19:55
Fix another pattern for which the LIKE optimization does not work for a non-TEXT affinity. Case found by Manuel Rigger. (check-in: 74020110 user: drh tags: trunk)
19:32
Simplification to the logic underlying PRAGMA case_sensitive_like. (check-in: ef0015fd user: drh tags: trunk)
19:06
Avoid an excess register allocation in UPDATE, when possible. This improves speed (slightly) and reduces the code footprint. (check-in: 8658574e user: drh tags: trunk)
18:49
Add tests to improve code coverage of the RBU module. (check-in: ecb56b75 user: dan tags: trunk)
17:27
Provide the SQLITE_OMIT_CASE_SENSITIVE_LIKE_PRAGMA compile-time option to omit the case_sensitive_like pragma. This change, in combination with documentation changes, is the current solution to ticket [a340eef47b0cad5]. (check-in: eabe7f2d user: drh tags: trunk)
11:52
Fix VDBE opcodes OP_SeekLT and OP_SeekLE so that they work on intkey tables with non-numeric text values. Fix for [9cf6c9bb]. (check-in: 658b84d7 user: dan tags: trunk)
11:42
Fix VDBE opcodes OP_SeekLT and OP_SeekLE so that they work on intkey tables with non-numeric text values. (Closed-Leaf check-in: a870c196 user: dan tags: tkt-9cf6c9bb)
04:33
Remove an ALWAYS() that was previously added by check-in [a0819086] but which turns out can sometimes be false. (check-in: ad8fc5d8 user: drh tags: trunk)
03:34
Remove a NEVER() that was added in the previous check-in [a0819086a521f] because it is in fact reachable. (check-in: 74eba255 user: drh tags: trunk)
00:17
Earlier detections of errors in the byte-offset-to-cell-content integer at offset 5 in the header of a btree page. (check-in: a0819086 user: drh tags: trunk)
2019-05-07
20:06
Generate all records for INSERT or UPDATE prior to running foreign key constraint checks, since the FK checks might modify the datatype of registers used to generate the records. Fix for ticket [e63cbcfd3378afe6980d6]. (check-in: 3c75605b user: drh tags: trunk)
19:44
Do not commit an "OR FAIL" statement that causes foriegn key constraint violations. (check-in: 659c551d user: dan tags: trunk)
19:21
Add test cases for the fix on this branch. (Closed-Leaf check-in: 2e31abe0 user: dan tags: tkt-e63cbcfd)
19:13
On an INSERT or UPDATE, generate the new table record prior to running foreign key checks, in case the foreign key checks changes datatypes on the registers holding column values. Proposed fix for ticket [e63cbcfd3378afe6980d626]. (check-in: 3f1c8051 user: drh tags: tkt-e63cbcfd)
17:47
Strive to prevent harmless compiler warnings in GCC 4.8.5. (check-in: 8b6691f6 user: drh tags: trunk)
16:37
Optimize the restarting of an RBU vacuum. (check-in: 82062351 user: dan tags: trunk)
16:28
Remove some redundant code from sqlite3rbu.c. Add test cases for RBU vacuum. (Closed-Leaf check-in: 7b051698 user: dan tags: rbu-opt)
02:57
Add the exprNodeCopy() routine that will safely memcpy() an Expr node that might be a size-reduced node. (Leaf check-in: ab2ba8e7 user: drh tags: expr-node-copy-patch)
2019-05-06
20:40
Optimize further cases of restarting an RBU vacuum. (check-in: 6b3261bf user: dan tags: rbu-opt)
16:15
Fix a problem with renaming an INTEGER PRIMARY KEY column of a WITHOUT ROWID table using ALTER TABLE. (check-in: 91f701d3 user: dan tags: trunk)
2019-05-04
20:04
Optimize some cases of restarting an RBU vacuum. (check-in: cdc09867 user: dan tags: rbu-opt)
17:32
Fix the NOT NULL logic in the theorem prover that determines when a partial index can be used. Ticket [5c6955204c392ae763a95]. (check-in: c2e439bc user: drh tags: trunk)
03:56
Fix harmless compiler warning seen with MSVC. (check-in: 5862b83e user: mistachkin tags: trunk)
01:41
In the sqlite3_value or Mem object, make the MEM_IntReal type completely independent from MEM_Int and MEM_Real. This helps avoid problems when inserting non-float values into a "REAL" column. (check-in: 5a8a23ee user: drh tags: trunk)
01:29
New testcase macros to ensure that MEM_IntReal is fully tested. (Closed-Leaf check-in: 8b8ef445 user: drh tags: int-real)
2019-05-03
21:17
Add the SQLITE_TESTCTRL_RESULT_INTREAL test-control and use it to create the intreal() SQL function in testfixture. Write a few simple tests to prove this all works. TH3 will hold most of the INTREAL tests, probably. (check-in: c9838731 user: drh tags: int-real)
19:34
Ensure that UTF16 strings are properly zero-terminated before returning them in an sqlite3_value_text16() request, even if the string is invalid UTF16 because it was formed from an arbitrary and/or odd-length BLOB. (check-in: 3a16ddf9 user: drh tags: trunk)
18:50
Fix a memory-leak/segfault caused by using OP_OpenDup and OP_OpenEphemeral on the same VM cursor. (check-in: a9b90aa1 user: dan tags: trunk)
17:19
Fix a problem where self-joins on views that are aggregate queries may return the wrong result. (check-in: 74ef97bf user: dan tags: trunk)
17:08
Improved comments on the elements of the array constant used to implement the sqlite3_value_type() interface. (check-in: f73a7de7 user: drh tags: int-real)
02:41
Fix the ".open --hexdb" command in the CLI so that it works even with terminal input. (check-in: 9b5d9434 user: drh tags: trunk)
2019-05-02
21:36
Make MEM_IntReal a completely independent type, meaning a floating point value stored as an integer. This fixes a problem with arithmetic within arguments to string functions on indexes of expressions. But it is a big change and needs lots of new testcase() macros for MC/DC and so it is initially put on this branch. (check-in: dba836e3 user: drh tags: int-real)
17:45
Ensure that the typeof() function always returns SQLITE_FLOAT for floating point values even when the value is stored as an integer to save space. (check-in: 48889530 user: drh tags: trunk)
17:06
Add options to wapptest.tcl similar to those supported by releasetest.tcl. Also add the -noui switch, for running without wapp altogether. (check-in: 005a1694 user: dan tags: trunk)
15:56
Earlier detection of a database corruption case in balance_nonroot(), to prevent a possible use of an uninitialized variable. (check-in: c509d8a8 user: drh tags: trunk)
14:15
Merge enhancements from trunk (check-in: 3a4751a9 user: drh tags: hard-heap-limit)
01:41
The "LIKE Optimization" (which converts a LIKE into a BETWEEN operator that is able to use an index) does not work and cannot be used if the collating sequence of the column is not TEXT and if the pattern starts with a "+" sign. This is another case of ticket [c94369cae9b561b1f996d005]. The new test case was discovered by Manuel Rigger. (check-in: b043a54c user: drh tags: trunk)
00:52
Fix an issue (discovered by OSSFuzz) in the enhanced OP_Concat operator from check-in [713caa382cf7dd] earlier today. (check-in: 3e897702 user: drh tags: trunk)
2019-05-01
19:01
Add a test case for ticket [ae0f637bddc5290b44669e066a]. (check-in: ece48169 user: drh tags: trunk)
18:59
When values have real affinity and are converted into strings for CHECK constraints or index expressions, do the conversions into a real-number format even if the values are stored as integers for efficiency. This appears to fix ticket [ae0f637bddc5290b446]. (check-in: 5997d075 user: drh tags: trunk)
17:36
Fix an incompatibility with -DSQLITE_OMIT_LOAD_EXTENSION=1 in dbdata.test. (check-in: a77cd85b user: dan tags: trunk)
17:32
Fix a case in wapptest.tcl where a failed test might report 0 errors. (check-in: 2be1ed70 user: dan tags: trunk)
15:32
Avoid unwelcomed side effects on the input operands in the OP_Concat operator. Fix for ticket [3be1295b264be2fac49b681] (check-in: 713caa38 user: drh tags: trunk)
15:25
Update wapptest.tcl so that it deletes extra files if the "Keep files:" checkbox is clear. Set it by default. (check-in: 09623cc4 user: dan tags: trunk)
14:41
In "PRAGMA vdbe_trace" output, show the results of OP_Affinity opcodes. (check-in: 56604bb6 user: drh tags: trunk)
08:48
Fix an incompatibility with auto-vacuum mode in new test script recover.test. (check-in: 36dd5b08 user: dan tags: trunk)
2019-04-30
20:43
Update wapptest.tcl to use a simpler slave script. And to leave scripts wapptest_configure.sh and wapptest_make.sh in each test directory. (check-in: 07e527d7 user: dan tags: trunk)
15:36
Fix a problem allowing a Table object to be deleted from within a call to the xDestroy method of the associated virtual table, causing a use-after-free error. (check-in: 1dbbb010 user: dan tags: trunk)
14:26
Fix an error message in the Lemon parser generator. (check-in: b6d7d42b user: drh tags: trunk)
11:54
Small performance increase and size reduction in the implementation of the LIKE and GLOB operators. (check-in: f97626f9 user: drh tags: trunk)
01:08
Slightly smaller and faster implementation of the OP_MakeRecord opcode. (check-in: 3bdce7ef user: drh tags: trunk)
2019-04-29
16:44
Changes to oserror.test so that it works even on systems that allow an unusually large number of file descriptors. (check-in: a27b0b88 user: drh tags: trunk)
13:48
Do not de-duplicate columns index columns associated with a WITHOUT ROWID table if the columns have different collating sequences. This is the fix for ticket [3182d3879020ef3b2]. There is one test case added, but most of the tests are done in TH3. (check-in: 1b1dd4d4 user: drh tags: trunk)
13:30
Improved header comment and precondition checking for the new isDupColumn() function. (Closed-Leaf check-in: 740d5ff6 user: drh tags: tkt-3182d38790)
11:41
Fix a buffer overwrite in shell.c.in (part of the new .recover code). (check-in: 92facbc7 user: dan tags: trunk)
11:27
Fix a stack overflow that could occur when renaming a table that has a trigger containing a window function invocation that itself contains a specific syntax error. (check-in: c621fc66 user: dan tags: trunk)
2019-04-28
19:27
Take collating sequence into account when removing redundant columns from indexes on WITHOUT ROWID tables. This is the first proof-of-concept fix for ticket [3182d3879020ef3]. More testing needed. (check-in: b34fa5bf user: drh tags: tkt-3182d38790)
2019-04-27
20:39
Add the shardvtab virtual table that uses the new cost estimation functions. (Leaf check-in: 9404300a user: drh tags: cost-est)
20:30
Add the ".recover" command to the shell tool. For recovering as much data as possible from corrupt databases. (check-in: 50fe4845 user: dan tags: trunk)
20:16
Fix a minor typo in a comment. No changes to code. (check-in: 95209072 user: drh tags: trunk)
20:15
Fix building the shell with SQLITE_OMIT_VIRTUAL_TABLE. And without SQLITE_ENABLE_DBPAGE_VTAB. (Closed-Leaf check-in: 425d708c user: dan tags: dbdata)
19:36
Add comments and fix formatting issues in new code in shell.c.in. (check-in: b91d819b user: dan tags: dbdata)
18:47
Add the "--lost-and-found" option to the ".recover" command. For setting the name of the orphaned rows table. (check-in: 67bb88e2 user: dan tags: dbdata)
15:35
Fix a problem in the .recover command with recovering WITHOUT ROWID tables where the PK columns are not the leftmost in the CREATE TABLE statement. (check-in: 91df4b8e user: dan tags: dbdata)
2019-04-26
21:11
Have .recover store all orphaned rows in a single table, with extra columns to indicate the orphaned page and sub-tree they were discovered within. (check-in: 7221f6e3 user: dan tags: dbdata)
17:20
An experimental interface for retrieving the estimated cost and estimated number of output rows for a query. (check-in: 1b25fa10 user: drh tags: cost-est)
17:08
Omit tests of the LIKE optimization in like3.test when SQLITE_ENABLE_ICU is defined. (check-in: af53c41a user: dan tags: trunk)
15:40
Fix another problem with database freelist handling in the ".recover" command. (check-in: bee2652a user: dan tags: dbdata)
15:14
Fix a locking-page related problem with the ".recover" command. (check-in: afdae104 user: dan tags: dbdata)
2019-04-25
20:06
Merge latest trunk changes into this branch. (check-in: 1da302d8 user: dan tags: dbdata)
19:23
Unless the "--freelist-corrupt" option is specified, do not have the .recover command attempt to recover data from pages that are on the database free-list. (check-in: 8d2f52bb user: dan tags: dbdata)
18:15
Add the sqlite3_hard_heap_limit64() interface and the corresponding "PRAGMA hard_heap_limit=N" command. (check-in: b0ccef61 user: drh tags: hard-heap-limit)
16:20
Fix a bug preventing .recover from working on databases where the final page of the db is corrupt. (check-in: 959bbd11 user: dan tags: dbdata)
2019-04-24
20:48
Improve the performance of the .recover command. (check-in: a5076831 user: dan tags: dbdata)
17:04
New test cases in test/fuzzdata8.db. (check-in: 7be6222c user: drh tags: trunk)
16:13
Fix another instance in fts3 where a corrupt record can cause a buffer overflow. (check-in: e1724f1d user: dan tags: trunk)
15:57
Fix a problem in fts5 where a corrupt position list could lead to a buffer overwrite. (check-in: 516ca894 user: dan tags: trunk)
15:13
Fix an error in fts3_write.c allowing a corrupt database to cause a crash. (check-in: 6e4a5f22 user: dan tags: trunk)
04:53
Correction to the #if in the previous check-in. (check-in: 30dc05ac user: mistachkin tags: trunk)
00:37
Fix for 8-byte alignment asserts that can trigger in some circumstances with 32-bit MSVC. (check-in: 4c02832e user: mistachkin tags: trunk)
2019-04-23
22:00
Make no atttempt to generate VDBE code for VACUUM after a syntax error. (check-in: 93084247 user: drh tags: trunk)
20:48
Have ".recover" handle "\r" and "\n" in the same way as ".dump". (check-in: f95f0f02 user: dan tags: dbdata)
18:03
Fixes for the ".recover" shell command. (check-in: 8dcc1d89 user: dan tags: dbdata)
15:30
Changes to the --hexdb decoder option in the shell (and also in the TCL test code) so that it works on systems where sscanf() does not recognize "%hhx" as wanting to delivery results into a character-size variable. (check-in: 4258e42d user: drh tags: trunk)
15:21
Minor simplification of NULL value handling for STAT4. Cherrypick of [69bad9257f8db6a2] from trunk. (check-in: 442c177d user: mistachkin tags: branch-3.28)
15:08
Minor simplification of NULL value handling for STAT4. (check-in: 69bad925 user: mistachkin tags: trunk)
12:31
New test cases in fuzzdata8.db. (check-in: 0fe3c3fd user: drh tags: trunk)
12:30
Improvement on the previous check-in. Parse.rc is less reliable than Parse.nErr for detecting SQLITE_TOOBIG errors. (check-in: 8d478cfb user: drh tags: trunk)
2019-04-22
20:52
Enhance the ".recover" command. Fix a problem with overflow pages in dbdata.c. (check-in: f193ca58 user: dan tags: dbdata)
20:05
Early detection of SQLITE_TOOBIG when processing nested queries. (check-in: 5d85d80e user: drh tags: trunk)
11:47
Fix an assert() that may be false for corrupt databases. (check-in: b2ce5ed1 user: dan tags: trunk)
2019-04-20
20:57
Add the ".recovery" command to the shell tool. For recovering the maximum amount data from corrupt databases. Still needs work. (check-in: 7461d2e1 user: dan tags: dbdata)
2019-04-19
23:05
Mark a single branch as no longer reachable. (check-in: 4f35b3b7 user: drh tags: trunk)
22:01
Increase the version number to 3.29 for the next development cycle. (check-in: 6cf16703 user: drh tags: trunk)
18:10
Mark two branches as unreachable. Oops - one of those branches was reachable via fuzzcheck tests. (Closed-Leaf check-in: 9b888fcc user: drh tags: mistake)
17:26
Improved optimization of the AND and OR operators. (check-in: 0fbd154e user: drh tags: trunk)
16:34
Fix a problem with renaming a table that starts with "sqlite". Fix for ticket [f00d7b65]. (check-in: a2ead8aa user: dan tags: trunk)
16:21
Use macros to determine if an expression is always true or always false. (check-in: 6de980a0 user: drh tags: trunk)
13:38
Streamline the processing of the AND operator. Slightly smaller and faster. (check-in: 7713996a user: drh tags: trunk)
2019-04-18
21:14
Add the sqlite_dbptr virtual table to the dbdata extension. For querying the links between b-tree pages. (check-in: 3213a15f user: dan tags: dbdata)
19:21
Minor simplification of NULL value handling for STAT4. (Closed-Leaf check-in: 5718a9d5 user: mistachkin tags: nullStat4)
17:37
Undo change to 'analyze9.test' because the extra output can be useful for debugging. (Leaf check-in: f3081e59 user: mistachkin tags: msvc)
2019-04-17
23:56
Fix a couple minor test issues. (check-in: 1f1866d1 user: mistachkin tags: msvc)
23:32
Work around lack of a C99 feature in MSVC. (check-in: f6ebe1c2 user: mistachkin tags: msvc)
21:17
Add the experimental dbdata extension. (check-in: a3ab5883 user: dan tags: dbdata)
21:12
Small performance and size optimization in sqlite3WalFindFrame(). (check-in: 03f2e788 user: drh tags: trunk)
13:58
Fix a typo in the CLI help output for the ".dump" command. (check-in: 57638248 user: drh tags: trunk)
13:23
In the "pgidx" report from "showdb", also show the number of rows on each database btree page. (check-in: 2bda9dc4 user: drh tags: trunk)
12:29
In the "pgidx" command of the showdb utility, try to identify orphaned pages and show when pages have been zeroed out. (check-in: eed701ef user: drh tags: trunk)
12:07
Small performance improvement on the variable-length integer decoder: sqlite3GetVarint(). (check-in: 5df2bf62 user: drh tags: trunk)
11:34
Faster and smaller implementation of sqlite3StrICmp(). (check-in: 7ac500fb user: drh tags: trunk)
2019-04-16
19:49
Version 3.28.0 (check-in: 884b4b7e user: drh tags: trunk, release, version-3.28.0)
11:21
Avoid a sanitizer error (pointer arithmatic overflow) in vdbesort.c. (check-in: af61a2fc user: dan tags: trunk)
10:51
Avoid a sanitizer error in test1.c. Have releasetest.tcl/wapptest.tcl create a file called "makecommand.sh" that can be used to rerun a test from the command line. (check-in: 4de4480f user: dan tags: trunk)
2019-04-15
19:17
Fix a bug in test module test_fs.c causing a segfault on OpenBSD. (check-in: ee886600 user: dan tags: trunk)
15:41
Fix a problem with the user-auth extension and deserializing in-memory databases. (check-in: 09fa0b3c user: dan tags: trunk)
15:35
Merge recent changes from trunk into reuse-schema (check-in: 5c6c9e7f user: drh tags: reuse-schema)
15:28
Merge all recent enhancements. (check-in: 1cd536ec user: drh tags: begin-concurrent-pnu-wal2)
15:17
Merge the latest trunk enhancements. (check-in: 8950f119 user: drh tags: wal2)
15:07
Merge the latest enhancements from trunk. (check-in: 6caaaf21 user: drh tags: begin-concurrent-pnu)
14:59
Merge the latest enhancements from trunk. (check-in: 7c328e88 user: drh tags: begin-concurrent)
14:49
Bring in the latest enhancements from trunk. (check-in: 378230ae user: drh tags: apple-osx)
13:59
Fix a test script problem in fts5corrupt3.test. (check-in: 734192d8 user: dan tags: trunk)
13:51
Update tool/symbols.sh to ignore symbols from sessions and rebaser and to not try to compile with ICU which is not available on all platforms. (check-in: 0bab4ece user: drh tags: trunk)
2019-04-14
00:40
Remove a stray tab from the source code. (check-in: 0ada58e9 user: drh tags: trunk)
00:34
Fix an obsolete comment and other minor issues from code inspection. (check-in: cd084427 user: drh tags: trunk)
2019-04-13
16:50
Fix a harmless compiler warning in test logic. (check-in: c3932e66 user: drh tags: trunk)
16:43
Fix the fts3varint.test script so that it works even on versions of TCL for which Tcl_GetWideIntFromObj() does not work. (check-in: 53f787ad user: drh tags: trunk)
16:35
Fix a test script problem in fts5corrupt3.test. (check-in: 858f6227 user: dan tags: trunk)
15:07
Partially revert the test file changes in [4371a0c46e]. It is no longer required following [93ae382e97c23c90]. (check-in: 593a7e6e user: dan tags: trunk)
14:17
Fix additional compiler warnings introduced by the previous check-in and found by MSVC. (check-in: 6fc0deff user: drh tags: trunk)
14:07
Fixes for harmless compiler warnings. (check-in: c28c973a user: drh tags: trunk)
04:38
Use the 64-bit memory allocator interfaces in extensions, whenever possible. (check-in: 07ee06fd user: drh tags: trunk)
04:01
Enforce the SQLITE_LIMIT_COLUMN limit on virtual tables. (check-in: 0b6ae032 user: drh tags: trunk)
2019-04-12
20:33
Add the socketvfs test extension. (Leaf check-in: f5b3ce94 user: dan tags: socketvfs)
16:25
Test case changes so that they work with both Tcl8.6 and Tcl8.7. (check-in: 7b771405 user: drh tags: trunk)
13:40
Tweaks to wapptest.tcl: Ensure that the "Debug" checkbox is disabled unless the app is in "config" state, and have Debug variants run "test" instead of "fulltest". (check-in: dd248c18 user: dan tags: trunk)
12:10
Fix minor problems in tcl test scripts. (check-in: 56b66418 user: dan tags: trunk)
2019-04-11
19:07
Add the test/wapptest.tcl script, an alternative to releasetest.tcl that uses wapp to provide the user-interface. (check-in: edd87cd6 user: dan tags: trunk)
19:04
Merge trunk changes into this branch. (Closed-Leaf check-in: d805fc0c user: dan tags: wapptest)
19:03
Further tweaks to wapptest.tcl. Add the ability to run the extra (n)debug tests that releasetest.tcl runs. (check-in: ec9c4f6d user: dan tags: wapptest)
17:06
Remove the vfslog.c extension from the testfixture target in main.mk, as that extension has no TCL bindings and is inaccessible. (check-in: d71f8bbc user: drh tags: trunk)
16:54
Fix RBU so that it does not write rows that should be excluded into partial indexes (corrupting the database). (check-in: 31eb27f4 user: dan tags: trunk)
06:50
Fix the checksymbols target in Makefile.in. (check-in: 1956eb34 user: dan tags: wapptest)
2019-04-10
19:45
Have wapptest.tcl display the name, OS and architecture of the host. (check-in: c47e53b4 user: dan tags: wapptest)
18:56
Various fixes for the wapptest.tcl script. (check-in: cbf42365 user: dan tags: wapptest)
18:29
Update the list of OMIT options in the omittest.tcl script. (check-in: f294cfc1 user: drh tags: trunk)
13:24
Further refinement of the sqlite3VdbeMEmExpandBlob() fix of check-in [df58774e994bd] to prevent a reference to an unused variable - problem discovered by Valgrind. (check-in: 09435b57 user: drh tags: trunk)
12:02
Change the name of some internal testing interfaces to avoid a name conflict in AIX. (check-in: c1cae7e7 user: drh tags: trunk)
00:58
Do not place arbitrary restrictions on the length of the failure message for a uniqueness constraint. (check-in: 037da798 user: drh tags: trunk)
2019-04-09
21:37
New test case for SQLITE_TOOBIG errors. (check-in: 4c77fbbe user: drh tags: trunk)
21:32
Improved reporting of SQLITE_TOOBIG errors while parsing. (check-in: ea2d4b65 user: drh tags: trunk)
20:50
Fix a problem caused by a small SQLITE_LIMIT_LENGTH value and a CREATE TABLE with a very large name. (Closed-Leaf check-in: 9b5d4088 user: dan tags: toobig-fix)
19:53
Add test/wapptest.tcl, a wapp alternative to releasetest.tcl. (check-in: a4af0c2f user: dan tags: wapptest)
01:26
Use an unsigned integer to count free pages in btree.c:freePage2(). (check-in: 88204085 user: drh tags: trunk)
2019-04-07
18:21
Make the testcase() macro added in the previous check-in reachable for testing. (check-in: 80704a16 user: drh tags: trunk)
18:04
Fix a faulty assert() in the sqlite3VdbeMemExpandBlob() routine. (check-in: df58774e user: drh tags: trunk)
2019-04-06
15:38
Fix two assert() statements in fts5 that are only true if the database is not corrupt. (check-in: edb095a9 user: dan tags: trunk)
2019-04-05
21:17
Remove some stale references to the addopcodes.tcl script from documentation. (check-in: c0381b0b user: drh tags: trunk)
20:56
Eliminate the tool/addopcodes.tcl script. The purpose of that script was to keep the number of parser codes below 256 in order to save parser table space. But we have long since blown through that ceiling so the addopcodes.tcl script was just needless complexity. There is no longer any reason to keep it around. (check-in: d2728192 user: drh tags: trunk)
20:47
Add further tests so that veryquick.test covers all vdbe branches. (check-in: cbc67de5 user: dan tags: trunk)
17:22
Improved comment on the sqlite3FaultSim() function. No changes to code. (check-in: 08b29672 user: drh tags: trunk)
16:52
In the test_vfs.c VFS, if a Tcl xWrite script returns "SQLITE_OMIT", silently omit the write() call. (check-in: 8b5a621e user: dan tags: trunk)
16:38
Add the ability to override the new corruption detection logic of the previous checkin, in order to exercise downstream corruption detection during testing. (check-in: e859d318 user: drh tags: trunk)
15:44
In the xfer-optimization, do early detection of when the source and destination index share the same btree, to avoid a long delay prior to reporting the database corruption. (check-in: af1e5873 user: drh tags: trunk)
2019-04-04
22:05
Add the vtab enable/disable options to the sqlite3_db_config TCL command in the testfixture. (Leaf check-in: c7052428 user: drh tags: disable-vtab)
21:40
Merge all the latest changes and enhancements from trunk. (check-in: 521d5186 user: drh tags: apple-osx)
20:55
Add further test cases to improve VDBE branch coverage. (check-in: 51a95e52 user: dan tags: trunk)
20:21
Provide a DBCONFIG to enable or disable virtual tables that match a LIKE pattern. (check-in: b40a4edc user: drh tags: disable-vtab)
19:21
Fix a typo in the documentation for sqlite3_value_frombind(). Also add a new hyperlink to that same documentation. No code changes. (check-in: bf3cd936 user: drh tags: trunk)
18:20
Minor fixes to requirements marks. (check-in: 02ebc60b user: drh tags: trunk)
17:58
Add test cases to improve coverage of VDBE branches. Still some to go. (check-in: 4cef609d user: dan tags: trunk)
17:39
Correctly initialize the loadable extension thunk. (check-in: 4fca46de user: drh tags: trunk)
15:25
Simplification of the recent VACUUM changes that make the code more like what it was before the change. Also, make the VACUUM command a no-inline procedure to work around a performance regression. (check-in: 9cac5ac1 user: drh tags: trunk)
14:36
Fix an incorrect comment on a test case for rowid renumbering in VACUUM. (check-in: 0d293fb4 user: drh tags: trunk)
14:00
Only preserve rowid values for VACUUM INTO. Keep the legacy behavior of renumbering rowids for ordinary VACUUM. (check-in: 13a0ea64 user: drh tags: trunk)
2019-04-03
17:54
Add a defense-in-depth NEVER() test to the WAL cleanup code. (Leaf check-in: 1109942a user: drh tags: branch-3.27)
17:48
Add a defense-in-depth NEVER() test to the WAL cleanup code. (check-in: 8d3af201 user: drh tags: trunk)
16:27
Fix a couple of problems with "RANGE BETWEEN <expr> PRECEDING AND <expr> PRECEDING" frames. (check-in: 39225cc7 user: dan tags: trunk)
2019-04-02
18:12
Small optimizations to the grammar for window functions save about 120 bytes of space in the parser tables. (check-in: bce01d95 user: drh tags: trunk)
17:45
Use a separate bit on db->dbOptFlags to disable the xInverse optimization on window functions, rather than reusing the query-flattener disable bit. (check-in: bc0fb1c3 user: drh tags: trunk)
17:45
Including the phrase EXCLUDE NO OTHERS in the frame-spec of a window function (which is the default setting for EXCLUDE) silently disables the xInverse optimization. This is a feature, but we will keep it undocumented for now in case we later decide it is a bad idea. (check-in: 10aedce3 user: drh tags: trunk)
13:10
Put the list of keywords in mkkeywordhash.c into alphabetical order. (check-in: ac98b23b user: drh tags: trunk)
01:00
Merge fixes from trunk. (check-in: 20372906 user: drh tags: apple-osx)
00:56
Make sure the MEM_FromBind bit inthe Mem.flags field is not included in the MEM_TypeMask. This critical changes was omitted from the previous two check-ins by mistake, and so those check-ins are not fully functional. (check-in: f7ba2daf user: drh tags: trunk)
00:48
Add new APIs to the extension loading mechanism. (check-in: 6f122faf user: drh tags: trunk)
00:34
Merge enhancements from trunk. (check-in: 0b35aebb user: drh tags: apple-osx)
00:28
Add the sqlite3_value_frombind() interface. Use that interface to improve fts3_tokenizer(). (check-in: b3f2c320 user: drh tags: trunk)
2019-04-01
20:57
Performance improvement on the OP_Variable opcode. (Closed-Leaf check-in: 1dc7993b user: drh tags: value_frombind)
19:42
Improvements to the sqlite3ExprImpliesNonNullRow() theorem prover. (check-in: 3fde6276 user: drh tags: trunk)
18:43
Add a test case to cover a missed VDBE branch generated by window.c. (check-in: b36813d6 user: dan tags: trunk)
17:24
If the library is built with SQLITE_VDBE_COVERAGE defined, have the Tcl tests generate a vdbe coverage report in file testdir/vdbe_coverage.txt. (check-in: f0ed7146 user: dan tags: trunk)
16:23
Frame range comparisons can never be NULL because the values will have been checked for NULL prior to the test. (check-in: fa37cf9a user: drh tags: trunk)
15:55
Mark rowid-comparison opcodes as never-null for VDBE coverage tracking purposes. (check-in: a69bb4f2 user: drh tags: trunk)
14:30
Improved VDBE branch coverage in the run-time frame-spec error detection logic of window functions. (check-in: f56d305a user: drh tags: trunk)
14:01
Improved comments on the VDBE branch coverage testing logic. Fix the VDBE branch coverage measurement on the OP_MustBeInt opcode. (check-in: 8681750e user: drh tags: trunk)
13:06
Fix a defect in the VDBE branch coverage testing logic. (check-in: 1fcf3307 user: drh tags: trunk)
03:07
Fix harmless compiler warnings seen with MSVC. (check-in: 6cf8b18e user: mistachkin tags: trunk)
2019-03-31
21:09
Early detection of too many columns in an index avoid a possible 16-bit signed integer overflow. (check-in: 8af0caeb user: drh tags: trunk)
18:17
Add some missing VdbeCoverage() macros. (check-in: d03b6113 user: drh tags: trunk)
2019-03-30
20:43
Improvements to VdbeCoverage macros. (check-in: 10ee9e33 user: drh tags: trunk)
20:37
Fix issues with the previous check-in and add more VDBE branch coverage testing macros. (Closed-Leaf check-in: b5f72f10 user: drh tags: oops)
20:10
Enhanced VdbeCoverage() macros in the new windows function code. Later: This check-in causes an assertion fault. (check-in: f24066f8 user: drh tags: oops)
19:17
Add a call to sqlite3FaultSim(410) inside of btreeRestoreCursorPosition() to simplify testing of error scenarios. (check-in: bb643bac user: drh tags: trunk)
18:39
The defragmentPage() routine detects corruption in the first-free-slot fields at offset 1 in the header and throws an error, rather than asserting. (check-in: fb125bd3 user: drh tags: trunk)
17:30
Add the blobio.c extension module implementing readblob() and writeblob(). Experimental. (check-in: e3fde56d user: drh tags: trunk)
17:07
Add an extra IO-error test to windowfault.test. (check-in: 5b8c44cd user: dan tags: trunk)
2019-03-29
17:26
Change the fts3_tokenizer() function to always return the pointer as a BLOB as long as the first argument is a bound parameter, regardless of the SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER setting. (check-in: 27160df7 user: drh tags: value_frombind)
15:21
Remove the unused P5 flag from the OP_Rewind opcode. (check-in: c2edbf3b user: drh tags: trunk)
13:17
Fix a fairly obscure problem causing the planner to sometimes choose sub-optimal plans for a query with a single virtual table in the FROM clause, and at least one IN(...) constraint in the WHERE clause. (check-in: f5752517 user: dan tags: trunk)
11:48
Fix typos in the comments of the sessions extension, one of which affects the generated documentation. No code changes. (check-in: 040d5d51 user: drh tags: trunk)
11:39
The two-argument version of fts3_tokenizer() works regardless of the value of SQLITE_DBCONFIG_ENABLE_FT3_TOKENIZER as long as the second argument is a bind parameter. (check-in: ab76e3a9 user: drh tags: value_frombind)
11:13
Initial implementation of the sqlite3_value_frombind() interface. (check-in: 98da62df user: drh tags: value_frombind)
01:15
Recover a some of the performance lost by window function alias fix two check-ins back. (check-in: 965cbcea user: drh tags: trunk)
2019-03-28
20:50
Add new test cases to test/fuzzdata8.db (check-in: f908cd40 user: drh tags: trunk)
16:15
Prevent aliases of window functions expressions from being used as arguments to aggregate or other window functions. (check-in: 1e16d3e8 user: dan tags: trunk)
13:53
Show the pointer address for Window objects in the TreeView display. (check-in: 1ae70ad2 user: drh tags: trunk)
13:35
More improvements to TreeView output for Window objects: (1) Show when the frame-spec is implied rather than explicit. (2) Move the FILTER clause out from within the OVER clause, making it a sibling of the OVER clause, to match syntax. (check-in: d6a07433 user: drh tags: trunk)
13:03
Improved TreeView display of Window objects. Change the Window.eType field to Window.eFrmType to avoid confusion with other "eType" values. (check-in: ec2f207d user: drh tags: trunk)
04:03
If the string formatter in sqlite3NestedParse() fails due to an over-length string, make sure this error is recorded by the parser so that it knows to fail. (check-in: 85e53ff1 user: drh tags: trunk)
01:00
Improvements to the README.md file. No code changes. (check-in: bbdbaf84 user: drh tags: trunk)
2019-03-27
14:59
Support building the Tcl bindings DLL using MSVC. (check-in: b2011c13 user: mistachkin tags: trunk)
14:58
Fix harmless compiler warnings seen with MSVC. (check-in: 5be64ea8 user: mistachkin tags: trunk)
2019-03-26
19:14
Remove a "puts" statement accidentally left in a test script. (check-in: 9f591ac0 user: dan tags: reuse-schema)
18:40
Add a few extra tests for SQLITE_STATUS_SCHEMA_USED with shared-schema databases. (check-in: e399fede user: dan tags: reuse-schema)
16:47
Fix a problem with window frames that use "BETWEEN <start> AND 0 PRECEDING". (check-in: 7927b6b0 user: dan tags: trunk)
16:21
Fix harmless compiler warnings. (check-in: a063f7c4 user: drh tags: trunk)
14:04
Use the mutex-free PRNG in this branch, since anybody using this branch is probably interested in high concurrency. (check-in: e88fc6d0 user: drh tags: begin-concurrent)
13:28
Bring this branch into closer alignment with begin-concurrent. (check-in: 6433d366 user: drh tags: begin-concurrent-pnu)
13:08
Add support for new window functions related features - GROUPS frames, RANGE frames with logical start and end points, the EXCLUDE clause and window chaining. (check-in: c6da3911 user: dan tags: trunk)
12:37
Merge recent enhancements from trunk. (check-in: dc3c0b8b user: drh tags: apple-osx)
12:29
Bring this branch up to date with all the latest enhancements. (check-in: 2e964aaf user: drh tags: begin-concurrent-pnu-wal2)
12:22
Merge enhancements from trunk. (check-in: a0e2e902 user: drh tags: wal2)
12:16
Merge the latest trunk changes. (check-in: 51e3e835 user: drh tags: begin-concurrent-pnu)
12:07
Merge recent enhancements from trunk. (check-in: 774d0d52 user: drh tags: begin-concurrent)
11:57
Merge recent trunk enhancements. (check-in: db4e2cc3 user: drh tags: reuse-schema)
2019-03-25
22:05
Fix an obsolete comment in the CLI. No code changes. (check-in: fade103c user: drh tags: trunk)
21:56
In the CLI, code the "sqlite_parameters" name directly rather than using a macro, for clarity of presentation for users who are reading the code for the purpose of seeing how the CLI implements parameter binding. (check-in: e775ef00 user: drh tags: trunk)
21:55
Remove a test from the index build logic which is no longer needed and is in fact unreachable. (check-in: 9b20ee10 user: drh tags: trunk)
21:35
Change the name of the parameter table in the CLI to "sqlite_parameters". Doing so involves adding SQLITE_DBCONFIG_WRITABLE_SCHEMA and allowing the creation of tables whose names begin with "sqlite_" and that are indexed while writable_schema is on. (check-in: 24ef3844 user: drh tags: trunk)
19:50
Earlier detection of corruption while added to the freelist. (check-in: 8c80b004 user: drh tags: trunk)
18:44
Fix a faulty assert() statement in balance_nonroot() - the assert() should use get2byteNotZero() instead of get2byte() for the corner case where the number cells is zero on a 65536-byte page. (check-in: bcbe7d96 user: drh tags: trunk)
15:09
Improvements to the help text in the CLI. (check-in: 919fec91 user: drh tags: trunk)
15:06
Fix the writefile() SQL function implemented by ext/misc/fileio.c such that any directories created have standard umask permissions, not permissions of the file that is to be written. (check-in: f11c8959 user: drh tags: trunk)
14:24
For the ".archive --update" command in the CLI, only update files if their mtime or mode has changed. To force an update, use the new --insert instead. (check-in: 191a023a user: drh tags: trunk)
2019-03-23
00:38
Support Tcl libraries with a suffix. (Closed-Leaf check-in: 8d015399 user: mistachkin tags: msvcTcl)
2019-03-22
22:34
Further enhancements and fixes. (check-in: c9f1972e user: mistachkin tags: msvcTcl)
16:52
Attempt to detect when the MSVC linker requires the /MACHINE argument. (check-in: 3e355846 user: mistachkin tags: msvcTcl)
13:56
Fix a problem with a window function in a correlated sub-query where at least one reference to the outer SELECT appears in a FROM clause sub-select. (Closed-Leaf check-in: 9aca86f9 user: dan tags: window-functions)
13:53
We learn that readdir_r() is deprecated in favor of plain old readdir(), which is now suppose to be threadsafe using thread-local storage. So remove the use of readdir_r() from the test code. (SQLite itself never calls readdir() or readdir_r()). (check-in: 7a0a26ed user: drh tags: trunk)
11:38
Add the --limit N option to dbfuzz2. Set the default callback limit to 250K. (check-in: b99f8512 user: drh tags: trunk)
01:26
Sync up the autoconf makefile for MSVC. (check-in: ecbae90a user: mistachkin tags: msvcTcl)
01:25
Support building the Tcl bindings DLL using MSVC. (check-in: 908c4c89 user: mistachkin tags: msvcTcl)
2019-03-21
21:18
Add an extra test for database corruption to defragmentPage(). (check-in: 80e951fc user: dan tags: trunk)
17:22
Merge latest trunk changes with this branch. (check-in: 3196f5f4 user: dan tags: reuse-schema)
17:13
Disable the feature on this branch in non-SQLITE_ENABLE_SHARED_SCHEMA builds. (check-in: b8e53608 user: dan tags: reuse-schema)
13:51
Remove assert() statements based on the counter-factual proposition that 0 is not a valid cursor number. (check-in: c7b33618 user: dan tags: window-functions)
2019-03-20
20:27
Experimental change to apply affinity before running CHECK constraints on an INSERT. Note that in the CHECK constraints, REAL affinity really is REAL affinity, and not numeric affinity. This causes failures in some tests that are assuming affinity is applied after CHECK constraints. (Leaf check-in: 9ef69d18 user: drh tags: apply-affinity-first)
20:02
Use the IsReuseSchema() macro more consistently. Also, rename it to IsSharedSchema(). (check-in: c1be211c user: dan tags: reuse-schema)
19:17
Fix an error message. (check-in: a70fdaa3 user: dan tags: reuse-schema)
18:22
In the CLI, give better error messages if something goes wrong with the ".dbinfo" command. (check-in: 3649a77b user: drh tags: trunk)
16:58
Fix a potential dangling pointer deference in an ALTER TABLE run on a schema that contains constructs of the form "PRIMARY KEY(column COLLATE collation)". (check-in: b9e2393c user: dan tags: trunk)
16:03
Merge latest trunk changes into this branch. (check-in: 4cd20ca6 user: dan tags: reuse-schema)
12:08
Fix harmless compiler warnings from MSVC. (check-in: f0f02d46 user: drh tags: trunk)
11:16
Enhance the rtreenode() function of rtree (used for testing) so that it uses the newer sqlite3_str object for better performance and improved error reporting. Test cases added to TH3. (check-in: 90acdbfc user: drh tags: trunk)
05:45
Fix various harmless compiler warnings seen with MSVC. (Closed-Leaf check-in: 1c0fe5b5 user: mistachkin tags: noWarnings)
2019-03-19
20:48
Merge recent enhancements from trunk. (check-in: 000f4398 user: drh tags: apple-osx)
20:42
Enhance the VACUUM INTO command so that it works on read-only databases. (check-in: 55be6d0a user: drh tags: trunk)
20:13
Fix a compiler warning in FTS5. (check-in: d5acf3af user: drh tags: trunk)
19:39
Add further tests to window8.test. (check-in: ec7e224f user: dan tags: window-functions)
19:19
Fix a problem with EXCLUDE clauses on window frames with no ORDER BY. (check-in: e0255063 user: dan tags: window-functions)
17:45
Add tests to ensure that the window functions implementation is not generating code for unnecessary sorts. (check-in: e195948a user: dan tags: window-functions)
16:49
Add missing VdbeCoverage() macros to new code in window.c. (check-in: 4f9b93e6 user: dan tags: window-functions)
15:36
When computing the amount of scratch memory needed during a rebalance operation, assume the worst case for the number of cells per page, rather than relying on the BtPage.nCell value, which might be incorrect for a corrupt database. (check-in: a420ebd0 user: drh tags: trunk)
11:56
Revert the OP_MustBeInt opcode implementation on this branch so that it again matches trunk. The extra functionality is no longer required. (check-in: c02f77b1 user: dan tags: window-functions)
11:35
Tweak the tool/cg_anno.tcl script so that it can run on systems without /usr/bin/tclsh. (check-in: a026189a user: dan tags: trunk)
11:17
Update this branch with latest trunk changes. (check-in: 98cc2659 user: dan tags: window-functions)
09:57
Add a LICENSE.md, containing the text of the blessing. (check-in: cbb7e602 user: drh tags: trunk)
06:40
Ensure that all the new window-function keywords can still be used as SQL identifiers. (check-in: a6d61dfd user: dan tags: window-functions)
2019-03-18
21:19
Add further tests for new window function functionality. (check-in: 1fbddf01 user: dan tags: window-functions)
18:55
Always evaluate window functions using the alternative path usually only used by EXCLUDE frames if the SQLITE_QueryFlattener test flag is set. (check-in: 2879a691 user: dan tags: window-functions)
16:51
Fixes for RANGE windows and NULL values. (check-in: 723c84be user: dan tags: window-functions)
15:49
Fix a buffer overread that could occur when running fts5 prefix queries inside a transaction. (check-in: b3fa58dd user: dan tags: trunk)
15:23
Fix an fts5 problem with interleaving reads and writes in a single transaction. (check-in: 45c73deb user: dan tags: trunk)
10:30
Fix a typo in a comment. No changes to code. (check-in: c2f50aa4 user: drh tags: trunk)
2019-03-17
23:59
New hyperlink on the README.md file. (check-in: cc5ab967 user: drh tags: trunk)
23:44
Update the README.md file at the top level to talk about how to deal with version names and how to verify the code in Git mirrors. (check-in: e8c87a0a user: drh tags: trunk)
2019-03-16
20:29
Fix problems with RANGE windows and string, blob and NULL values. (check-in: cebe09e1 user: dan tags: window-functions)
10:15
In order to identify the first row of each partition, check if the rowid in the ephemeral table is 1 instead of using a dedicated flag register. (check-in: f2d5f7a2 user: dan tags: window-functions)
2019-03-15
20:46
Implement the EXCLUDE clause for window frames. (check-in: 9b43c3ee user: dan tags: window-functions)
19:08
Back out the change to support Fuchsia, since it turns out fuchsia does not like dot-file locks. (check-in: 1d801a3b user: drh tags: trunk)
18:57
Remove a debugging printf() left in test/sessionfuzz.c. (check-in: 73c4abc9 user: dan tags: trunk)
16:17
Ensure that ALTER TABLE commands open statement transactions. Fix for [596d059a]. (check-in: 0f2129f5 user: dan tags: trunk)
2019-03-14
20:53
Parse EXCLUDE clauses in window frames. They do not yet work. (check-in: d03c7533 user: dan tags: window-functions)
16:36
Add things to this branch that will be required to support the EXCLUDE clause. (check-in: 7d66cd20 user: dan tags: window-functions)
00:01
Technical improvements to the documentation for sqlite3_bind_blob() and sqlite3_bind_text(). No changes to code. (check-in: fb60150a user: drh tags: trunk)
2019-03-13
23:51
Improvements to the sqlite3_db_filename() API documentation. No code changes. (check-in: 711f5ec4 user: drh tags: trunk)
17:31
Merge latest trunk changes into this branch. (check-in: 0b904517 user: dan tags: window-functions)
17:20
Avoid allocating excessive registers for the PARTITION BY expressions when processing window functions. (check-in: 180be266 user: dan tags: window-functions)
15:29
Remove rows from the ephemeral table used by window functions once they are no longer required. (check-in: 6ad55319 user: dan tags: window-functions)
13:19
New test cases added to test/fuzzdata8.db (check-in: 049e9926 user: drh tags: trunk)
11:40
When deserializing a database (sqlite3_deserialize()), do not attempt to parse the schema before the data is loaded. (check-in: 4e1b005e user: dan tags: trunk)
10:29
Detect zero-length free slots on btree pages and report that as corruption. (check-in: c4f0568f user: drh tags: trunk)
08:28
Minor optimization in sqlite3WindowCodeStep(). (check-in: b1322ffb user: dan tags: window-functions)
2019-03-12
18:28
Allow real values to be used in PRECEDING and FOLLOWING expressions for RANGE window frames. (check-in: 25ff7091 user: dan tags: window-functions)
15:21
Expand on header comment for sqlite3WindowCodeStep(). Further simplify the implementation of the same. (check-in: 5129bcc9 user: dan tags: window-functions)
09:49
Fix a crash that could occur if the RHS of an IN expression is a correlated sub-query that refers to the outer query from within a window frame definition only. (check-in: 0524aaaf user: dan tags: trunk)
2019-03-11
19:50
Remove "cache mode" from the window frame code generator. Handle the same cases by editing the window frame specification itself. (check-in: 08126353 user: dan tags: window-functions)
18:17
Simplify the windows frame code some. Add a comment explaining some of the VM code generated by sqlite3WindowCodeStep(). (check-in: 6bd1a079 user: dan tags: window-functions)
11:12
Fix problems with "RANGE ... ORDER BY <expr> DESC" window frames. (check-in: e7bced73 user: dan tags: window-functions)
2019-03-09
20:49
Add support for RANGE window frames. Some cases still do not work. (check-in: ffc32b24 user: dan tags: window-functions)
07:38
Merge latest trunk changes into this branch. (check-in: 53ea550c user: dan tags: window-functions)
2019-03-08
20:57
Add simple tests for GROUPS window frames. (check-in: 2872702d user: dan tags: window-functions)
20:26
Fix a harmless bug in the Makefile. (check-in: 62ac9cb0 user: drh tags: trunk)
20:02
Finish consolidation of window frame code. Add untested support for GROUPS frames. (check-in: 954bf369 user: dan tags: window-functions)
16:06
Merge the latest enhancements and fixes from trunk. (check-in: 543ecb30 user: drh tags: begin-concurrent-pnu-wal2)
15:57
Merge the latest enhancements and fixes from trunk. (check-in: bf20d4ff user: drh tags: wal2)
15:39
Add the bgckpt.c extension to Makefile.in and Makefile.msc. (check-in: 3712d625 user: drh tags: wal2)
15:30
Merge all the latest enhancements from trunk. (check-in: 667cce3d user: drh tags: begin-concurrent-pnu)
14:07
Add new test cases in test/fuzzdata8.db (check-in: 97bdc090 user: drh tags: trunk)
14:02
Patch makes balance_nonroot() slightly smaller and faster and more robust against corrupt databases. (check-in: 174da3c3 user: drh tags: trunk)
13:27
Fix another segfault in fts3 that could occur with corrupt records. (check-in: fcc24edd user: dan tags: trunk)
01:52
Detect an attempt to drop a btree that is not within the bounds of the database file and abort early with an SQLITE_CORRUPT error, to avoid problems later on in the process. (check-in: 235a9698 user: drh tags: trunk)
2019-03-07
20:47
Fix other "ROWS BETWEEN" cases on this branch. (check-in: a5f68f66 user: dan tags: window-functions)
19:26
Modify new window functions function so that cursors are stepped immediately after each operation, instead of immediately before. (check-in: 093d2b25 user: dan tags: window-functions)
2019-03-06
21:04
Simplify the window function code generator some more. (check-in: 45cbd3b4 user: dan tags: window-functions)
17:12
Improvements to the way built-in window functions are handled. (check-in: e8eee566 user: dan tags: window-functions)
14:53
Add the sqlite3_stmt_isexplain() interface. (check-in: ee642d3e user: drh tags: trunk)
14:08
Add an "|| CORRUPT_DB" term to an assert() that might be false if the database is corrupt. Also add a branch to have sqlite3PagerMovepage() return SQLITE_CORRUPT in that case. (check-in: b0d5cf40 user: drh tags: trunk)
2019-03-05
23:49
Fix a potential 32-bit integer overflow in the "showdb" utility program when it is trying to interpret a corrupt database file. (check-in: 3803e750 user: drh tags: trunk)
19:29
Extend windowCodeStep() to handle any ROWS PRECEDING/FOLLOWING frame specification. (check-in: af0ea136 user: dan tags: window-functions)
16:53
Add a script to tool/ that will extract the sqlite3.h header file from an sqlite3.c amalgamation. (check-in: 38d2e510 user: drh tags: trunk)
14:47
New dbfuzz2 test cases added to test/fuzzdata7.db (check-in: 25975e1f user: drh tags: trunk)
14:39
If the initial byte of a record is a large value, then always used the generalized record comparison routine sqlite3VdbeRecordCompare() rather than one of the specialized versions that are optimized for shorter records. (check-in: c1ac0070 user: drh tags: trunk)
2019-03-04
21:08
Merge trunk changes into this branch. (check-in: 9b4d561f user: dan tags: window-functions)
21:07
Support some "ROWS BETWEEN N PRECEDING AND M FOLLOWING" window functions without caching entire partitions. (check-in: e7a91f12 user: dan tags: window-functions)
07:25
Merge latest trunk changes into this branch. (check-in: 97a9604d user: dan tags: reuse-schema)
07:15
Fix a problem preventing compilation with SQLITE_OMIT_UTF16. (check-in: 906d1fd8 user: dan tags: trunk)
2019-03-02
20:09
Improved comments on the fossildelta.c extension. (check-in: d7d23f04 user: drh tags: trunk)
15:25
Fix the SQLITE_DIRECT_OVERFLOW_READ compile-time option so that it works with SQLITE_HAS_CODEC. (check-in: fd085e92 user: drh tags: trunk)
12:17
Remove a redundant parameter extraction call from the percentile.c extension. (check-in: d49c32e6 user: drh tags: trunk)
2019-03-01
21:37
Merge recent changes from trunk. (check-in: f270245a user: drh tags: apple-osx)
21:33
The fts3_tokenizer() function returns NULL if the SQLITE_DBCONFIG_ENABLE_FTS_TOKENIZER setting is disabled, which is is by default. (check-in: f5732f4c user: drh tags: trunk)
21:12
Fix a minor comment typo. No code changes. (check-in: 9a0a93c8 user: drh tags: trunk)
18:27
Merge the latest enhancements from trunk. (check-in: e64ded7b user: drh tags: apple-osx)
18:07
In a query that uses a partial index, the expression that is the WHERE clause of the partial index must always be true. Use this fact to avoid evaluating identical terms in the WHERE clause of the query. (check-in: 9b287962 user: drh tags: trunk)
2019-02-28
20:10
Add the ".parameter" command to the CLI. (check-in: 1f9fa585 user: drh tags: trunk)
17:29
Add the new "bind_fallback" method to the "sqlite3" object in the TCL interface. (check-in: c7f70b6d user: drh tags: trunk)
14:09
New test case loaded into test/fuzzdata8.db. (check-in: 00ae0c6c user: drh tags: trunk)
13:41
Avoid an assert() failure and an undefined left-shift operation in the fts3 snippet() function that could occur if the database was corrupt. (check-in: d5250db6 user: dan tags: trunk)
13:21
Add an "|| CORRUPT_DB" term to an assert() statement in the btree defragmenter. (check-in: 6bfd8655 user: drh tags: trunk)
2019-02-27
23:05
Enable the LIKE optimization when the ESCAPE keyword is present and the PRAGMA case_sensitive_like pragma is ON. (check-in: 6ae4b8c5 user: drh tags: trunk)
19:59
Fix the readfile() UDF so that it returns an empty BLOB, not an OOM error, when reading an empty file. (check-in: 0edad533 user: drh tags: trunk)
16:38
Add the "-returntype" option to the "db function" Tcl method. (check-in: 789a492b user: dan tags: trunk)
15:26
Verify that fts5 auxiliary functions cannot be used in aggregate queries. (check-in: 122330db user: dan tags: trunk)
2019-02-26
19:16
Reformat the white-space in a few test cases so that the tests work with Tcl 8.6.9. (check-in: 29d02bf2 user: dan tags: trunk)
18:21
Minor change to dbfuzz2 that allows it to be compiled against older versions of SQLite. (check-in: 6d39d6a6 user: drh tags: trunk)
17:52
New test cases added to test/fuzzdata8.db. (check-in: 61fdfc57 user: drh tags: trunk)
17:49
Allocate a few extra bytes for the pager temp page as an overrun buffer while processing corrupt database files. (check-in: e7aca071 user: drh tags: trunk)
16:36
Update doc/shared_schema.md to describe the shell tool ".shared-schema" dot-command. (check-in: 0ce2092a user: dan tags: reuse-schema)
16:17
Use unsigned integers to count the number of pages in a freelist during an integrity_check, to avoid any possibility of a signed integer overflow. (check-in: 05b87e07 user: drh tags: trunk)
16:13
Add new test file reuse5.test. For testing the shell tool ".shared-schema" command. (check-in: fa6008d5 user: dan tags: reuse-schema)
16:11
Fix a harmless compiler warning that only comes up during debug builds. (check-in: 848869ce user: drh tags: trunk)
15:43
Add the ".shared-schema check|fix DB1 DB2..." command to the shell tool. For checking if a database is eligible to share an in-memory with the main database, and for fixing small problems that prevent it from being so. (check-in: 7d8e8a95 user: dan tags: reuse-schema)
12:29
Update the configure-generated makekfile to generate a portable pkgIndex.tcl. (check-in: 35cbee7f user: drh tags: trunk)
2019-02-25
19:23
Fix a comment in build.c. (check-in: d6a9bff6 user: dan tags: reuse-schema)
18:43
Enhance the command-line shell to accept bound parameters, using the TEMP table named "$Parameters" to look up the values for bound parameters. (check-in: 7c941ce5 user: drh tags: trunk)
18:07
Merge latest trunk changes into this branch. (check-in: 5c1cf308 user: dan tags: reuse-schema)
17:54
Where possible, avoid loading all schemas into memory for PRAGMA statements. (check-in: 64f97530 user: dan tags: reuse-schema)
16:06
Version 3.27.2 (check-in: bd49a827 user: drh tags: release, branch-3.27, version-3.27.2)
15:55
Internally, remove all references to a Window object that belongs to an expression in an ORDER BY clause if that expression is converted to an alias of a result-set expression. (check-in: a21ffcd8 user: drh tags: branch-3.27)
15:43
This was originally intended to be the 3.27.2 release, but then I realized that I left out an important patch. (Closed-Leaf check-in: 6c5e5e2e user: drh tags: mistake)
14:52
Update comments on the fossildelta extension. No changes to code. (check-in: 9da4fb59 user: drh tags: trunk)
14:25
Fix a typo in the documentation for sqlite3_total_changes(). (check-in: 4febdfb3 user: drh tags: branch-3.27)
14:16
Fix a typo in the documentation for sqlite3_total_changes(). (check-in: 8474c156 user: drh tags: trunk)
2019-02-23
20:48
Fix a couple of assert() statements in fts3 that can be false if the database is corrupt. (check-in: 84162af5 user: dan tags: trunk)
00:56
Import from trunk the new fix to ticket [df46dfb631f75694] in which all ephemeral tables used as the RHS of an IN operator be index btrees and never table btrees so that they can always be reused. (check-in: 0e64ac12 user: drh tags: branch-3.27)
00:21
Check-in [fa792714ae62fa98] is incorrect. Add a test case to refute it and also a fix to make it right. Then add an alternative fix to ticket [df46dfb631f75694] in which all ephemeral tables used as the RHS of an IN operator be index btrees and never table btrees so that they can always be reused. (check-in: d3915230 user: drh tags: trunk)
00:08
Remove a testcase() macro which is now unreachable due to the contraction of the use of IN_INDEX_ROWID. (Closed-Leaf check-in: 90c5a17c user: drh tags: tkt-df46dfb631)
2019-02-22
23:29
Make all ephemeral tables built to hold the RHS of an IN operator be index-btrees, never table-btrees, regardless of whether or not they are used as IN_INDEX_LOOP or IN_INDEX_MEMBERSHIP. That way, the same ephmerial table can be reused for both cases. (check-in: c2d50df8 user: drh tags: tkt-df46dfb631)
21:33
Check-in [fa792714ae62fa980] is not a valid fix for ticket [df46dfb631f75694], as the new test case in this check-in demonstrates. The fix here causes test cases for the [df46dfb631f75694] bug to fail again, so this check-in is on a branch. A new fix is needed for [df46dfb631f75694]. (check-in: 0d456456 user: drh tags: tkt-df46dfb631)
19:24
Internally, remove all references to a Window object that belongs to an expression in an ORDER BY clause if that expression is converted to an alias of a result-set expression. Fix for [4feb3159c6]. (check-in: 579b66ea user: dan tags: trunk)
17:44
Merge latest trunk changes into this branch. (check-in: 001771af user: dan tags: reuse-schema)
16:18
In sqlite3NestedParse() be sure to detect all SQLITE_NOMEM and SQLITE_TOOBIG errors and to distinguish between them. (check-in: 73056b31 user: drh tags: trunk)
15:42
Modify sqlite3_str_finish() and sqlite3VMPrintf() so that they always return NULL on any OOM or SQLITE_LIMIT_LENGTH error. (check-in: e7144ffd user: drh tags: trunk)
2019-02-21
18:11
Fix OOM handling in sqlite3NestedParse(). (Leaf check-in: e6e9dd5c user: dan tags: nested-parse-oom)
16:41
Detect oversized strings in the OP_String opcode even if the P4 argument is originally UTF8 and has to be converted to UTF16 to match the database file and that conversion causes the string to become shorter and cross below SQLITE_LIMIT_LENGTH threshold. This might fix an OSSFuzz problem that we have been so far unable to reproduce. (check-in: c13d5639 user: drh tags: trunk)
2019-02-20
19:20
Changes to the unix VFS that allegedly enable it to build of Fuchsia. We have no way of testing this. (check-in: be21a641 user: drh tags: trunk)
19:06
Disable unix-specific features of dbfuzz2 when compiling on windows. (check-in: af84774d user: drh tags: trunk)
18:44
Further test cases and fixes for SQLITE_OPEN_SHARED_SCHEMA. (check-in: ba0ab042 user: dan tags: reuse-schema)
18:13
Avoid the use of function pointers in columnName(), as function pointers appear to be a source of consternation to LLVM. (check-in: c48f6f39 user: drh tags: trunk)
17:36
Add test and fixes for SQLITE_OPEN_SHARED_SCHEMA mode. (check-in: 9a78d89c user: dan tags: reuse-schema)
13:55
Progress handler improvements: (1) Invoke the callback after OP_Program opcodes (2) Invoke the callback multiple times in a row to catch up after a long run of no progress checks. (check-in: 0c5db18d user: drh tags: trunk)
13:23
Merge the latest performance enhancements and fixes from trunk. (check-in: be71d1e2 user: drh tags: apple-osx)
13:14
Increment the version number to 3.27.2. (check-in: a70d67d8 user: drh tags: branch-3.27)
13:12
When an IN operator drives a query loop, mark it as "CODED" so that it will not be used afterwards for a (pointless) membership test. (check-in: 55e38d53 user: drh tags: branch-3.27)
12:52
When an IN operator drives a query loop, mark it as "CODED" so that it will not be used afterwards for a (pointless) membership test. This is a better fix for ticket [df46dfb631f75694] than the previous fix that is now on a branch as it preserves the full optimization of check-in [e130319317e76119]. (check-in: fa792714 user: drh tags: trunk)
03:38
Back off the optimization of check-in [e130319317e76119] slightly so that it only applies to IN operators that are used for membership tests. Proposed fix for ticket [df46dfb631f75694]. (Closed-Leaf check-in: b5f90bfe user: drh tags: tkt-df46dfb631)
2019-02-19
20:29
Enhance the xBestIndex method on delta_parse() to return SQLITE_CONSTRAINT if no delta argument is supplied. (check-in: f16d127c user: drh tags: trunk)
20:19
Add the delta_parse(DELTA) table-valued function to the fossildelta extension. (check-in: d91fcc26 user: drh tags: trunk)
18:39
Add the fossildelta.c extension in ext/misc with implementations of the Fossil delta functions. (check-in: b80cafa6 user: drh tags: trunk)
18:00
Improve error messages caused by corrupt database schemas in OPEN_SHARED_SCHEMA mode. (check-in: 8ac75b8a user: dan tags: reuse-schema)
17:45
Fix a potential memory leak in RBU if the rbu_fossil_delta() SQL function is misused. Misuse never happens in a working RBU system, so this is not a particularly important fix. (check-in: 12517d1b user: drh tags: trunk)
16:42
Fix an assert() that might not be true if the database file is corrupt. (check-in: f2d400db user: drh tags: trunk)
13:51
New assert() to verify the TF_HasprimaryKey flag. (check-in: 0abace8a user: drh tags: trunk)
13:08
Always use the symbolic name SQLITE_IDXTYPE_PRIMARYKEY rather than a hard-coded magic number 2. (check-in: 55d43adc user: drh tags: trunk)
2019-02-18
18:16
Ensure that creating temp schema items does not cause an OPEN_SHARABLE_SCHEMA connection to load all schemas into memory. (check-in: 88cbf54e user: dan tags: reuse-schema)
12:16
Fix an assert() that might not be true if the %_segdir table of FTS3 contains corrupt entries. (check-in: a6509ca3 user: drh tags: trunk)
2019-02-16
22:45
Fix an assert() that might be false for a corrupt database. (check-in: 0cfb8887 user: drh tags: trunk)
17:27
Add support for chaining of WINDOW definitions. (check-in: c155125f user: dan tags: window-functions)
2019-02-15
19:36
Enhance the virtual table in test_schemapool.c so that it can be used to check that SHARED_SCHEMA connections are not allocating and freeing schemas when they should not be. (check-in: cb236cb9 user: dan tags: reuse-schema)
19:00
Fix a problem with eponymous virtual tables and SHARED_SCHEMA databases. Also, after preparing statements that require all database schemas (REINDEX, ANALYZE, CREATE, DROP and some PRAGMA statements), do not allow the database connection to return more than one schema to each schema-pool. (check-in: ecf6251e user: dan tags: reuse-schema)
11:54
Revert the rearrangement of VDBE code in [219b39e14] so that vdbe.c matches trunk. Since the new call to sqlite3Init() in OP_ParseSchema was removed, the rearrangement no longer provides any performance advantage. (check-in: 03c4f003 user: dan tags: reuse-schema)
2019-02-14
21:04
Fix SQLITE_DBSTATUS_SCHEMA_USED so that it works with SQLITE_OPEN_SHARED_SCHEMA connections. (check-in: d43b3c05 user: dan tags: reuse-schema)
18:38
Change the name of the SQLITE_OPEN_REUSE_SCHEMA flag to SQLITE_OPEN_SHARED_SCHEMA. (check-in: 7257fcc8 user: dan tags: reuse-schema)
17:59
Fix a typo in shared_schema.md. (check-in: e47a5aea user: dan tags: reuse-schema)
17:51
Add documentation file doc/shared_schema.md to describe the change on this branch. (check-in: a5f8067d user: dan tags: reuse-schema)
15:56
Merge latest trunk into this branch. (check-in: 577d1638 user: dan tags: reuse-schema)
15:47
Add missing comments and fix other code issues in the new functions in callback.c. (check-in: 441cabb6 user: dan tags: reuse-schema)
15:27
Improved oversized cell detection when updating ptrmap pages in balance_nonroot(). (check-in: aa61435a user: drh tags: trunk)
2019-02-13
19:17
Fix for sqlite3_table_column_metadata() on REUSE_SCHEMA databases. (check-in: 53220ad7 user: dan tags: reuse-schema)
18:29
Avoid crashing after parsing a corrupt schema with a REUSE_SCHEMA connection. (check-in: b102148e user: dan tags: reuse-schema)
15:51
Fix a problem with the incrblob API and reusable schemas. (check-in: 34f0f96f user: dan tags: reuse-schema)
14:06
Rearrange the code in the VDBE to help out the C-compiler optimizer. And fix a harmless compiler warning. (check-in: 219b39e1 user: drh tags: reuse-schema)
13:48
Performance optimization in the VDBE, and a fix for a harmless compiler warning. (Closed-Leaf check-in: e002666a user: drh tags: reuse-schema-vdbe-opt)
08:40
Fix a problem with OPEN_REUSE_SCHEMA connections reloading the temp schema. (check-in: 7c2ec2d4 user: dan tags: reuse-schema)
2019-02-12
22:58
Ensure that the nProgressLimit variable is always initialized in sqlite3VdbeExec(), even if the routine jumps to its exit processing early. (check-in: 167b91df user: drh tags: trunk)
21:04
Enhancement the progress callback mechanism so that the progress callback is always invoked at least once at the end of a prepared statement if the opcode count has been exceeded. This makes the progress callback more effective at limiting run times. This check-in also includes and unrelated performance enhancement to OP_Column. (check-in: 68cce272 user: drh tags: trunk)
20:58
Add tests for creating temp schema objects with SQLITE_OPEN_REUSE_SCHEMA connections. (check-in: 8c07b609 user: dan tags: reuse-schema)
19:20
Share schemas between databases attached to the same database handle. (check-in: ea611d7c user: dan tags: reuse-schema)
16:58
Further performance improvements to btreeInitPage(). (check-in: 93ae382e user: drh tags: trunk)
15:51
Increase the version number to 3.28.0 for the next release cycle. (check-in: 6eb38c59 user: drh tags: trunk)
12:25
Register the "vfsstat" virtual table immediately when loading the vfsstat.c extension. (check-in: 9bd92afd user: drh tags: trunk)
01:28
New test cases in test/fuzzdata8.db. (check-in: ab2356f5 user: drh tags: trunk)
01:04
Defer computing the number of bytes of free space on a btree page until that value is actually needed. (check-in: 177f5f40 user: drh tags: trunk)
00:58
Change an assert() into a NEVER(), since the condition is difficult to prove with certainty. Improved comment on the MemPage.nFree field. (Closed-Leaf check-in: fec071b8 user: drh tags: deferred-free-space)
2019-02-11
22:50
Do not invoke btreeComputeFreeSpace() when not necessary. (check-in: f11b0ed4 user: drh tags: deferred-free-space)
20:13
Merge latest trunk changes into this branch. (check-in: dbedd81b user: dan tags: reuse-schema)
19:34
Add eponymous virtual table "schemapool". For inspecting the current contents of the schema-pool. (check-in: 2ebeb747 user: dan tags: reuse-schema)
19:27
Improvements to comments. No changes to code. (check-in: 16eb0fc8 user: drh tags: deferred-free-space)
17:22
Fix test cases. Avoid unnecessary tests for MemPage.nFree less than zero. (check-in: 480a5090 user: drh tags: deferred-free-space)
16:12
Fix another segfault that could occur in fts5 with a corrupted database. (check-in: 09e33738 user: dan tags: trunk)
13:25
Fix typos in comments in fts5.h. No changes to code. (check-in: c19e97bc user: dan tags: trunk)
12:51
Updates to a comment to keep it in alignment to the changes on this branch. (check-in: 7499f743 user: drh tags: deferred-free-space)
11:34
Build and test fixes for SQLITE_OMIT_WINDOWFUNC builds. (check-in: 8824115a user: dan tags: trunk)
11:04
Avoid using a "return void_function();" statement in void function sqlite3WalSnapshotUnlock(). It provokes a warning from some compilers. (check-in: 4a4952d3 user: dan tags: trunk)
01:58
Add an assert() in an attempt to repro an ASAN warning from OSSFuzz. (check-in: 7b412224 user: drh tags: trunk)
2019-02-09
22:33
Fix a page-cache reference leak in the btree balancer when there is a corrupt database. (check-in: 92858991 user: drh tags: deferred-free-space)
21:06
Defer computing the MemPage.nFree value of an in-memory btree page until it is actually needed, since for many pages it is never needed. This checkin works sufficiently to prove the concept, but still has issues with exception handling. (check-in: 1d43ee40 user: drh tags: deferred-free-space)
19:23
Change a few assert() statements in fts3 that might fail if the database is corrupt. (check-in: db74a56a user: dan tags: trunk)
17:47
Fix virtual table support for SQLITE_OPEN_REUSABLE_SCHEMA connections. (check-in: 3ca8856a user: dan tags: reuse-schema)
2019-02-08
22:34
Small performance improvement and size reduction for pageFindSlot() - the routine in btree.c that locates a free slot for a cell on a btree page. (check-in: 1969372a user: drh tags: trunk)
20:55
Use a fast compiler-provided memory barrier exclusively, if such a memory barrier is available. (Leaf check-in: df66fec9 user: drh tags: faster-memory-barrier)
19:30
Add test cases and fix problems on this branch. (check-in: 2b2e9f81 user: dan tags: reuse-schema)
17:28
Further simplifications to sqlite3VdbeMemSetStr(). (check-in: 1d212957 user: drh tags: trunk)
15:59
Change the sqlite3VdbeMemGrow() routine so that it no longer guarantees a minimum size of 32 bytes. That minimum is no longer required, and without the extra check for the minimum size, the routine runs faster. (check-in: 5c499da8 user: drh tags: trunk)
14:59
Merge the fix for ticket [4e8e4857d32d401f], so that this branch now contains release 3.27.1 plus the extra patch to preserve ROWID values on VACUUM. (check-in: 0cdae60e user: drh tags: apple-osx)
14:55
Give the sqlite3 object a pointer to the current Parse so that if an OOM occurs, it can automatically set the Parse.rc value to SQLITE_NOMEM. This avoids a frequent extra test of db.mallocFailed in the innermost parser loop. (check-in: 5c663804 user: drh tags: trunk)
13:17
Version 3.27.1 (check-in: 0eca3dd3 user: drh tags: release, branch-3.27, version-3.27.1)
12:46
Cherrypick the fix for ticket [4e8e4857d32d401f] from trunk. (check-in: d5d944d7 user: drh tags: branch-3.27)
12:44
Increase the version number to 3.27.1. (check-in: b94d5428 user: drh tags: branch-3.27)
04:15
Do not do the optimization that attempts to pull expression values from an index on that expression when processing a multi-index OR (see check-in [a47efb7c8520a0111]) because the expression transformations that are applied become invalid when the processing moves off of the current index and on to the next index. Fix for ticket [4e8e4857d32d401f]. (check-in: 440a7cda user: drh tags: trunk)
2019-02-07
19:28
Pull in the change that causes VACUUM to preserve rowid values. (check-in: c9af2f71 user: drh tags: apple-osx)
19:07
Change VACUUM so that it preserves ROWID values. (check-in: 49e5d11d user: drh tags: trunk)
18:49
Merge the offical 3.27.0 release. (check-in: 62829164 user: drh tags: apple-osx)
17:02
Version 3.27.0 (check-in: 97744701 user: drh tags: trunk, release, version-3.27.0)
15:09
Experimental change to VACUUM so that it preserves existing ROWID values. (Closed-Leaf check-in: f264015f user: drh tags: vacuum-preserves-rowid)
00:17
In the fuzzcheck test program, make sure the isspace() and related routines are not given values outside the range of -1 to 255. (check-in: f2983287 user: drh tags: trunk)
2019-02-06
20:49
Ensure all bytes of the PgHdr1 structure are initialized. This avoids a valgrind error when running corruptI.test. (check-in: a505e34d user: dan tags: trunk)
20:12
Update an assert() in test_journal.c to take the new "VACUUM INTO" functionality into account. (check-in: 0e6249cb user: dan tags: trunk)
19:42
Avoid attempting to delete a file while it is still open in walfault2.test. (check-in: 9d54a63d user: dan tags: trunk)
18:08
Update test file dbfuzz001.test so that it works with SQLITE_ENABLE_OVERSIZE_CELL_CHECK builds. (check-in: 4371a0c4 user: dan tags: trunk)
15:23
Add -DSQLITE_ENABLE_DESERIALIZE to the default testing configuration in test/releasetest.tcl. (check-in: 433d6ef6 user: dan tags: trunk)
13:48
Do not attempt to test the shell ".trace" command in SQLITE_OMIT_TRACE builds. (check-in: 3839e909 user: dan tags: trunk)
13:41
Fix a problem preventing testfixture from being built with SQLITE_OMIT_VIRTUALTABLE. (check-in: d2cca36a user: dan tags: trunk)
01:18
When extending the size of SrcList objects, do not attempt to use extra space on the end of the allocation, as that provides scarcely any performance benefit but does greatly complicate cross-platform testing. (check-in: 3087a0c3 user: drh tags: trunk)
00:55
If the query flattener detects an error, cause the SELECT code generator to abort immediately. (check-in: 3d3b142f user: drh tags: trunk)
00:11
Back out check-in [008112bcef561a8], reenabling deprecated PRAGMAs when the SQLITE_OMIT_DEPRECATED compile-time option is used, because way too many TH3 tests depend on those deprecated PRAGMAs. (check-in: 9dbf512d user: drh tags: trunk)
2019-02-05
20:51
Omit the ".progress" command from the shell if it is compiled with the SQLITE_OMIT_PROGRESS_CALLBACK option. (check-in: 4d0a949f user: drh tags: trunk)
19:52
Fix a harmless compiler warning in the memtrace.c extension. (check-in: 2f468da4 user: drh tags: trunk)
19:51
Merge latest trunk into this branch. (check-in: c089cc4f user: dan tags: reuse-schema)
19:48
Fix compiler warnings on Windows. (check-in: 4978ee8b user: drh tags: trunk)
19:15
Fix memory leaks on this branch. (check-in: e9c5e189 user: dan tags: reuse-schema)
16:53
Update the tester.tcl --malloctrace option so that it uses eu-addr2line instead of addr2line. (check-in: 79c07387 user: dan tags: trunk)
14:36
The IS NOT NULL operator does not imply that the operand is never NULL. Fix for ticket [5948e09b8c415bc45da5cf] (check-in: d840e9bb user: drh tags: trunk)
12:16
Keep the temp_store_directory and data_store_directory pragmas even when compiling with SQLITE_OMIT_DEPRECATED. (check-in: 93386a7c user: drh tags: trunk)
08:55
Update test file "resetdb.test" so that it works with the "prepare" permutation. (check-in: 95d33812 user: dan tags: trunk)
2019-02-04
21:10
Early detection of implausibly sized records to avoid unnecessary large memory allocations. (check-in: 2c8769c6 user: drh tags: trunk)
21:02
Fix a problem with reloading the schema on this branch. (check-in: 5dfbef83 user: dan tags: reuse-schema)
19:52
Mention the new -memtrace command-line option in the -help output of the CLI. (check-in: ada91aef user: drh tags: trunk)
19:50
Add the -memtrace option to dbfuzz2. (check-in: 67fecbc7 user: drh tags: trunk)
19:45
Enhance dbfuzz2 so that with the -v option it shows the return code and error message for any failing SQL statements. (check-in: 3a127ef9 user: drh tags: trunk)
19:12
Ensure that the sqlite3_exec() callback gets the correct number of columns for a query, even if the schema changes out from under it. (check-in: a16ffb5a user: drh tags: trunk)
16:42
Do not run shmlock.test as part of the inmemory_journal permutation. (check-in: d3fea69c user: dan tags: trunk)
16:36
Update the test/fuzzdata8.db database with new interesting cases from dbsqlfuzz. (check-in: e467e4c8 user: drh tags: trunk)
16:25
Fix problems with SAVEPOINT and related commands within transactions on a corrupt database that include fts5 or some other virtual tables. (check-in: b0da6e0d user: dan tags: trunk)
14:53
Add the ".progress" command to the CLI. (check-in: ad84ca24 user: drh tags: trunk)
14:00
Fix another potential buffer overread in fts5. (check-in: 14fba4cc user: dan tags: trunk)
11:54
Fix another corruption case in fts5. (check-in: e608085d user: dan tags: trunk)
2019-02-03
07:46
Fix an assertion failure in fts3 triggered by a corrupt database. (check-in: 560ebd42 user: dan tags: trunk)
2019-02-02
21:02
Try new approach ensuring that each Schema object is only used by one connection/database at any one time. (check-in: 9e8e5f52 user: dan tags: reuse-schema)
18:24
New testcase added to test/fuzzdata8.db. (check-in: 2f5c1925 user: drh tags: trunk)
15:59
Honor key query parameters for SEE on the URI filename for ATTACH and VACUUM INTO. (check-in: 2e01096b user: drh tags: trunk)
15:05
Give a link to the URI Filename document in the documentation to the various sqlite3_uri_parameter() interfaces. (check-in: 69b0b2ee user: drh tags: trunk)
13:47
Fix a buffer overread in fts5 debugging scalar function fts5_decode(). (check-in: 54f2399f user: dan tags: trunk)
01:27
Fix harmless compiler warning. (check-in: dddda685 user: mistachkin tags: trunk)
2019-02-01
21:08
Slight adjustment to the printf formatter large memory allocation detector so that it does not overestimate the amount of space needed for oversize %d conversions. (check-in: 1aee70d6 user: drh tags: trunk)
20:29
Prevent the printf formatter from doing large memory allocations - larger than either the size of the static buffer for interfaces like sqlite3_snprintf(), or larger than SQLITE_LIMIT_LENGTH for interfaces that are associated with a database connection. This helps to prevent DOS attacks on products that let hostile sources inject arbitrary SQL. It also helps fuzzers run faster and more effectively. (check-in: 179e5d46 user: drh tags: trunk)
18:46
Performance improvement in the parsing of options to %-formats in the printf implementation. (check-in: 40d8f8ae user: drh tags: trunk)
15:06
Ensure that the Walker.pParse structure is initialized when walking the source tree to gather the WINDOW clauses on a query with window functions. (check-in: 4ca9d5d5 user: drh tags: trunk)
14:54
New test cases added to test/fuzzdata8.db. (check-in: e5924939 user: drh tags: trunk)
14:50
Improve the strict enforcement of cell sizes in balancing from check-in [12713f320b2c1def] so that it also works with table-btrees in addition to index-btrees. (check-in: ef27e7a0 user: drh tags: trunk)
14:40
Fix an assert() in fts5 that could fail if the database is corrupt. (check-in: 55f06aa3 user: dan tags: trunk)
13:34
Fix another corrupt-database-handling problem in fts5. (check-in: 9876ae1b user: dan tags: trunk)
2019-01-31
16:09
Remove an incorrect assert() from the deserialize in-memory database VFS. (check-in: 80151d7e user: drh tags: trunk)
15:38
Add the SQLITE_CONFIG_MEMDB_MAXSIZE configuration option for configuring the default maximum size of an in-memory database created using sqlite3_deserialize(). This is necessary to make the interface reasonably testable. (check-in: cb72ee04 user: drh tags: trunk)
14:37
Fix another buffer overrun that could occur when quering a corrupt database using an fts5vocab table. (check-in: b80119bd user: dan tags: trunk)
02:42
If the amalgamation file "sqlite3.c" is generated using the SQLITE_ENABLE_UPDATE_DELETE_LIMIT option, but then subsequently (mis-)compiled without that option, and then a particular syntax error could cause a memory leak, but for this fix. (check-in: 1bb17c86 user: drh tags: trunk)
01:39
Improvements to "PRAGMA parser_trace=ON": Make it a flag pragma, and then use the flag to show the complete SQL text at the beginning of the parse. (check-in: 507c4353 user: drh tags: trunk)
2019-01-30
19:50
Change the error message slightly for when two or more indexes have the same rootpage. (check-in: 916c52da user: drh tags: trunk)
19:12
When parsing the schema, check for duplicate index root page numbers before adding the index to the schema hash table. (check-in: 6b360bc0 user: dan tags: trunk)
18:47
Add test case for the previous commit. (check-in: 197edb23 user: dan tags: trunk)
18:33
Detect if two indexes of the same table share a common rootpage while parsing the schema, and throw an error immediately. (check-in: f21c6f13 user: drh tags: trunk)
16:58
Fix an off-by-one error when parsing the names of indexes that do not have arguments in the index_usage utility. (check-in: dc794d8f user: drh tags: trunk)
15:47
Add the --progress, --using, and -q options to the index_usage utility program. (check-in: a5e6be7c user: drh tags: trunk)
14:01
Enhancements to the index_usage utility program. (check-in: 19c739b4 user: drh tags: trunk)
12:15
Fix another buffer overread in fts5 that may occur when accessing a corrupt database. (check-in: 760d1437 user: dan tags: trunk)
2019-01-29
19:17
Merge enhancements from trunk. (check-in: 31efcc37 user: drh tags: apple-osx)
16:54
Fix harmless compiler warnings. (check-in: 9a93c68a user: drh tags: trunk)
16:47
Load all the latest dbsqlfuzz finds into test/fuzzdata8.db. (check-in: e744d2dd user: drh tags: trunk)
16:41
More robust handling of corrupt database file in the rebalance operation of the btree logic. (check-in: 97704cb7 user: drh tags: trunk)
16:34
Avoid an integer overflow in the fts5 snippet() function triggered by a corrupt database record. (check-in: 7c862c46 user: dan tags: trunk)
15:30
Avoid a crash when the fts5 snippet() function (or similar) is used with a special query pattern, like '*id' or '*reads'. (check-in: 9d58a157 user: dan tags: trunk)
11:42
Fix a buffer overrun triggered by a merge operation on a corrupt fts5 database. (check-in: 7ee3cd5b user: dan tags: trunk)
02:37
Set a low limit on the length of strings and blobs in the OSSFuzz module, in an effort to avoid timeouts when the fuzzer does things like "randomblob(1e12)". (check-in: 119d1609 user: drh tags: trunk)
2019-01-28
19:06
Fix the query planner so that it is able to use an index on a CAST expression. (check-in: 2c886f3d user: drh tags: trunk)
18:58
Fix a performance regression caused by the previous commit. (Closed-Leaf check-in: c4db0ad1 user: drh tags: index-on-cast)
18:08
Make indexes on CAST(...) expressions work. (check-in: 3ef711d9 user: dan tags: index-on-cast)
16:50
Fix a buffer overread in fts3 that could occur when accessing a corrupt database. (check-in: a9faf903 user: dan tags: trunk)
13:27
Do not assume that text parameters passed to fts4aux queries do not contain embedded nul characters. (check-in: df04859a user: dan tags: trunk)
11:54
Add a new test case to fuzzdata8.db. (check-in: ce8e279a user: drh tags: trunk)
00:42
Change the definition of the BtCursor.skipNext field so that it is undefined for states CURSOR_VALID and CURSOR_INVALID. (check-in: 6089d5db user: drh tags: trunk)
2019-01-27
19:50
Improvements to the ".eqp trace" command in the CLI so that it ensures that the schema has been read prior to activing the tracing feature, to avoid cluttering the output with a trace of the schema parse. (check-in: 42687d45 user: drh tags: trunk)
02:45
New test cases form dbsqlfuzz (check-in: 9cf8ebd1 user: drh tags: trunk)
02:41
Window functions that can abort should indicate this, so that if they are used in DML statement, a statement journal will be used. (check-in: 0ea05a0e user: drh tags: trunk)
01:11
Update fuzzcheck so that with the --load-dbsql options it screens its inputs to ensure that they are valid dbsqlfuzz cases. Add new dbsqlfuzz finds to the test/fuzzdata8.db database. (check-in: 004f7d9b user: drh tags: trunk)
2019-01-26
23:34
Ensure that the btree cursor is correctly set up prior to backing it up as part of a delete operation on a divider cell in an index. (check-in: a3ea1a82 user: drh tags: trunk)
21:05
Fix a broken assert() in fts3. Also some test script issues causing failures with builds that do not support fts3. (check-in: d59567dd user: dan tags: trunk)
20:41
Fix another typo in fts3_common.tcl causing test failures in builds that do not support fts3. (Closed-Leaf check-in: 773b5986 user: dan tags: rollback-abort)
20:35
Fix a typo in fts3corrupt4.test causing it to fail if the build does not support fts3. (check-in: 50163034 user: dan tags: rollback-abort)
19:09
Fix a broken assert() in fts3. (check-in: b8dd2d67 user: dan tags: rollback-abort)
18:10
If a write statement fails with OE_Abort, but there is no statement journal, roll the entire transaction back instead. (check-in: 75a8ed7a user: dan tags: rollback-abort)
17:47
Fix "PRAGMA journal_mode" so that if it fails because there is a transaction open, it does not roll that transaction back. (check-in: 9f39cb5b user: dan tags: rollback-abort)
16:34
Roll back the transaction if a write statement fails with OE_Abort but there is no open statement transaction. (check-in: d536be69 user: dan tags: rollback-abort)
15:40
Add the ".eqp trace" command to the CLI when using SQLITE_DEBUG, as a convenient shorthand for "PRAGMA vdbe_debug=ON" but with automatic indentation feature for program listings provided by the CLI. (check-in: 626502fa user: drh tags: trunk)
2019-01-25
20:09
Do not accidently truncate zeroblob values when doing an arithmetic operation. Fix for ticket [bb4bdb9f7f654b0bb9f34cfba]. (check-in: 13f6942e user: drh tags: trunk)
19:29
Reinitialize debugging information on registers of a trigger prior to each invocation of the trigger. This prevents false-positives from the sqlite3VdbeMemAboutToChange() test logic. (check-in: 98b3b975 user: drh tags: trunk)
18:17
Fix harmless compiler warnings. (check-in: 3ff220ad user: drh tags: trunk)
18:17
Fix the assert_fts3_nc() macro so that it works for test builds that omit SQLITE_DEBUG. (check-in: b10df2b5 user: drh tags: trunk)
17:51
Fix harmless compiler warnings in fuzzcheck (check-in: a8253966 user: drh tags: trunk)
17:26
Fix a segfault that could follow an OOM when querying a table that has one or more columns with default values "true" or "false". (check-in: 202f9919 user: dan tags: trunk)
16:54
Fix asan warnings in fts5 triggered by corrupt databases - passing NULL to memcmp, out-of-range left-shift values and signed integer overflow. (check-in: 93f8ec14 user: dan tags: trunk)
14:48
Add an assert_fts3_nc() macro to fts3 - for assert() conditions that are only true when it is guaranteed that the fts3 database is not corrupt. (check-in: 3498908c user: dan tags: trunk)
14:23
Extend fuzzcheck so that it can process dbsqlfuzz cases. Add a collection of interesting dbsqlfuzz cases to the standard test suite. (check-in: e2991a7e user: drh tags: trunk)
14:16
Fix the xFetch method of the "memdb" VFS (used by deserialize) so that it is robust against corrupt database file. (Closed-Leaf check-in: 2c1ef40e user: drh tags: dbsqlfuzz-in-fuzzcheck)
13:42
Fix a couple of assert() statments in btree.c that could fail with corrupt databases. (check-in: 5eb5e828 user: dan tags: trunk)
13:03
In fuzzcheck, activate vdbe_debug for dbsqlfuzz cases when using the -vvvvv verbosity level or above. (check-in: 2e6f7c2a user: drh tags: dbsqlfuzz-in-fuzzcheck)
04:43
Improved automatic detection of dbsqlfuzz cases in fuzzcheck. (check-in: 1ef24e89 user: drh tags: dbsqlfuzz-in-fuzzcheck)
04:00
Add the ability to process dbsqlfuzz cases in fuzzcheck and add an initial set of interesting dbsqlfuzz cases. (check-in: fb9074ff user: drh tags: dbsqlfuzz-in-fuzzcheck)
2019-01-24
17:41
Fix a buffer overread in fts3 that could occur in a prefix query on a corrupted database. (check-in: d0d56893 user: dan tags: trunk)
16:51
While PRAGMA full_column_names is off (the default) do not make changes to the short_column_names pragma when computing the column names for subqueries. (Leaf check-in: 718ead55 user: drh tags: literal-column-names)
16:27
Fix a problem with running ALTER TABLE on a schema that contains expressions of the type "col IN ()" (empty set on RHS of IN operator). (check-in: 2d9cd067 user: dan tags: trunk)
16:07
Omit deprecated PRAGMAs when compiling with the -DSQLITE_OMIT_DEPRECATED option. (check-in: 008112bc user: drh tags: trunk)
15:51
Make sure the column name flags are restored correctly after an error inside of sqlite3ResultSetOfSelect(). (check-in: b1601db7 user: drh tags: trunk)
15:16
Fix a potential problem with "INSERT INTO ... SELECT * FROM" (or VACUUM) statements on a corrupted database. (check-in: db4b4c2c user: dan tags: trunk)
14:16
Change a integer variable in sqlite3VdbeRecordUnpack() to unsigned in order to avoid any possibility of an integer overflow. (check-in: 1b536f6f user: drh tags: trunk)
13:36
Use memmove() instead of memcpy() in a place where buffers might overlap if the database file is badly corrupted, to prevent warnings from ASAN and valgrind. (check-in: 65ad6c55 user: drh tags: trunk)
04:44
Remove an unreachable branch. (check-in: 4c976f17 user: drh tags: trunk)
2019-01-23
20:31
Fix an assert() in vdbemem.c that could fire if the database was corrupt. (check-in: a70958cd user: dan tags: trunk)
19:50
Fix a problem with renaming a table within a schema that contains a composite query that uses a column alias as an ORDER BY term. (check-in: 2ca6b8f8 user: dan tags: trunk)
19:25
Stricter enforcement of cell sizes when doing balancing operations on the btree, in order to catch file corruption sooner. (check-in: 12713f32 user: drh tags: trunk)
19:17
Fix another fts5 crash that can occur if the database is corrupted. (check-in: 44ce8baa user: dan tags: trunk)
16:59
Fix problems with sub-selects in WINDOW definitions. Also rename-column operations when the column being renamed appears in a WINDOW definition that is part of a VIEW or TRIGGER. (check-in: 0387cb3a user: dan tags: trunk)
12:19
Fix a buffer overwrite triggered by a prefix query on a corrupt fts5 table. (check-in: 1d8172a9 user: dan tags: trunk)
2019-01-22
21:17
Fix a buffer overrun that could occur in fts5 if a prefix query is made on a corrupt database. (check-in: 1abc4415 user: dan tags: trunk)
20:18
Do not run shmlock.test as part of the journaltest permutation. (check-in: 5b7d0c78 user: dan tags: trunk)
18:20
Add the SQLITE_ENABLE_EARLY_CURSOR_CLOSE compile-time option which causes read cursors to be closed after their usefulness ends during a two-pass UPDATE. (check-in: 8790368b user: mistachkin tags: branch-3.26)
16:44
Use _strdup() instead of strdup() on Windows builds of the CLI, to avoid a compiler warning reported on the mailing list. (check-in: a7126a4f user: drh tags: trunk)
16:43
Fix the SQLITE_DESERIALIZE_READONLY feature so that it does not cause an assertion fault in the pager. (check-in: b9eccef7 user: drh tags: trunk)
16:11
Update dbfuzz2 to set a maximum database size of 100MiB by default, but with the new --max-db-size N option to change that limit. (check-in: 21d6bb78 user: drh tags: trunk)
16:06
Enhancements to deserialize: (1) Add the SQLITE_FCNTL_SIZE_LIMIT file control to set a maximum size for an in-memory database, defaulting to SQLITE_MEMDB_DEFAULT_MAXSIZE or 1GiB. (2) Honor the SQLITE_DESERIALIZE_READONLY flag. (3) Enhance the TCL interface to support -maxsize N and -readonly BOOLEAN. (4) Add the --maxsize option to the ".open" command and on the command-line for the CLI. (check-in: 30f08d58 user: drh tags: trunk)
13:45
Make sure cursors are opened on all indexes for an UPDATE OR REPLACE regardless of whether or not the indexes are partial or contain columns that might need to be updated. (check-in: e148cdad user: drh tags: trunk)
12:21
Fix another segfault caused by a corrupt fts3 database. (check-in: ba3b8412 user: dan tags: trunk)
02:34
Ensure that a key comparison does not read a collating sequence past the end of the KeyInfo, even if the key field of an index is corrupted by having a string in the last column instead of the ROWID. (check-in: 058a8006 user: drh tags: trunk)
2019-01-21
23:18
Enhance the btree search routine so that it does early detection of impossibly large keys and thereby avoids a large malloc() call. (check-in: 3ecaaee6 user: drh tags: trunk)
17:57
Avoid deferencing a freed pointer following an OOM or SQLITE_CORRUPT error in the fts3 xDestroy method. (check-in: 505ed9a4 user: dan tags: trunk)
16:12
Remove a faulty assert() from fts3. (check-in: 6c33a303 user: dan tags: trunk)
16:01
Make sure the extra bytes allocated for the saved cursor position by check-in [160b1e31c0f27257] are initialized to zero. (check-in: 27375649 user: drh tags: trunk)
14:55
Add the --memtrace option to the CLI. (check-in: a1e12fa2 user: drh tags: trunk)
14:49
Minor fix the fallocate.test module change from [7cd56cad5efead5] (check-in: 94fb7a47 user: drh tags: trunk)
13:47
Add the --max-data and --max-as options to dbfuzz2. Also cause dbfuzz2 to show its maximum RSS size upon exit in standalone mode with the -v option. (check-in: 7ce93e82 user: drh tags: trunk)
2019-01-20
00:03
Add the --max-stack option to dbfuzz2. (check-in: c11ae4fe user: drh tags: trunk)
2019-01-19
15:55
Avoid a division-by-zero error in fts5 caused by a corrupt database. (check-in: 928e6221 user: dan tags: trunk)
15:27
Remove a broken assert() triggered by a "PRAGMA max_page_count = N" invocation, where N is larger than the number of pages in the database image, but smaller than the number of pages in the database file. (check-in: 7cd56cad user: dan tags: trunk)
14:07
Fix a problem with using ALTER TABLE to rename a table or column when the database schema contains a trigger or view that itself contains an expression "<column> AND 0". (check-in: 908ff7ff user: dan tags: trunk)
2019-01-18
21:17
Fix a memory leak introduced by [55c5d72a]. (check-in: fbd681dc user: dan tags: trunk)
21:12
Fix a crash in the fts5vocab module caused by including a "term < NULL" term in a WHERE clause. (check-in: 9e717c43 user: dan tags: trunk)
21:03
Fix an infinite loop caused by a corrupt database in fts3. Also an undefined left-shift in fts5. (check-in: 55c5d72a user: dan tags: trunk)
20:15
Avoid passing a NULL pointer to memcpy in fts5, even if the database is corrupt. (check-in: acccc980 user: dan tags: trunk)
19:33
Typecasts added to the GeoPoly extension to avoid harmless UBSAN warnings. (check-in: a1f6a093 user: drh tags: trunk)
19:26
Fix problems causing undefined left-shift operations in the fts3 snippet() function. (check-in: b90dbaed user: dan tags: trunk)
18:52
Avoid integer overflow when computing the array of a bounding box with the rtree_i32 virtual table. (check-in: b352f159 user: drh tags: trunk)
17:53
Handle oversize floating point values carefully when converting to integers for the '%' binary operator. (check-in: 048add13 user: drh tags: trunk)
16:06
Fix a fairly obscure problem allowing an "ALTER TABLE RENAME col TO ..." statement to modify the schema in such a way as to break a reference within a trigger program. (check-in: 64bec9e6 user: dan tags: trunk)
14:53
Use the full 64-bit integer value in the argument to randomblob(). (check-in: 05df5f7a user: drh tags: trunk)
2019-01-17
20:19
Disable the xfer-optimization if the two tables have the same root page due to schema corruption. (check-in: f31b3bd2 user: drh tags: trunk)
20:06
Fix another corruption related crash in fts5. (check-in: 4538d9af user: dan tags: trunk)
19:33
Add the SQLITE_ENABLE_EARLY_CURSOR_CLOSE compile-time option which causes read cursors to be closed after their usefulness ends during a two-pass UPDATE. (check-in: 7def6c8e user: drh tags: trunk)
19:11
Fix a buffer overwrite that could occur when running an fts5 prefix query against a corrupt database. (check-in: 3910b563 user: dan tags: trunk)
17:39
Fix problems with joining two or more fts5_vocab tables that access the same underlying fts5 table. (check-in: 49956395 user: dan tags: trunk)
15:47
Sync up with the latest enhancements on trunk. (check-in: 475a179a user: drh tags: apple-osx)
15:40
Revamp the SrcList allocator routines to be methods of Parse instead of being methods of the "sqlite3" object, so that they can leave better error messages when the SrcList object grows too large. (check-in: df08d472 user: drh tags: trunk)
14:34
Limit the size of SrcList objects to 200 entries (compile-time configurable using -DSQLITE_MAX_SRCLIST=n). The maximum number of tables in a join has always been 64, so this is not a real constraint on capability. Limiting the size of a SrcList prevents DOS attacks (discovered by OSSFuzz) using crazy nexted CTE joins. (check-in: 7cac614d user: drh tags: trunk)
04:40
Fix a corner-case for the logic that cause an insert of a NULL into an INTEGER PRIMARY KEY column to be converted into a valid integer key, when the NULL results from a CASE expression that lacks an ELSE clause. (check-in: 9a425051 user: drh tags: trunk)
03:43
Ensure that the variable-length integer decoder in FTS3 never tries to left-shift a negative number. (check-in: 10ffc1fe user: drh tags: trunk)
01:06
Fix a failure in sqlite3ExprCompare() (check-in: 835e2cc5 user: drh tags: trunk)
2019-01-16
20:48
Fix a problem with fix [b4b57413]. (check-in: ca7b7aae user: dan tags: trunk)
19:44
Fix a problem in the fts3 matchinfo() function with corrupt database handling. (check-in: 24ed5fb6 user: dan tags: trunk)
19:26
Fix a problem in the code generator for sorting results with SRT_EphemTab and a LIMIT clause. (check-in: 49fcde2f user: drh tags: trunk)
14:58
Fix a problem with renaming a column that is used as part of an ORDER BY on a compound SELECT within a database view or trigger. (check-in: b4b57413 user: dan tags: trunk)
12:05
Avoid a dangling pointer comparison when renaming a table that has a trigger that itself contains a window function with an (illegal) column reference in a FOLLOWING expression. (check-in: d45bee36 user: dan tags: trunk)
11:38
Fix a memory leak that could occur in fts3 when handling a corrupt database. (check-in: 65cebb06 user: dan tags: trunk)
2019-01-15
20:51
Fix a problem with ALTER TABLE and vector assignments in UPDATE statements within triggers. (check-in: cc6cd753 user: dan tags: trunk)
18:14
Handle SQL NULL values without crashing in the fts5 snippet() and highlight() functions. (check-in: a5e9cc79 user: dan tags: trunk)
16:14
Fix a buffer overread in fts3 caused by a corrupt record. (check-in: e54efd60 user: dan tags: trunk)
15:18
Have fts5 reject attempts to insert a non-integer, non-null value into a rowid column with SQLITE_MISMATCH. (check-in: 4a9483f8 user: dan tags: trunk)
14:44
Fix a harmless memory leak in the Lemon parser generator utility program. (check-in: 1caff0fb user: drh tags: trunk)
14:31
Fix a problem triggered by DELETE statements with WHERE clauses that use the OR-optimization on some virtual tables. (check-in: ecf5caa7 user: dan tags: trunk)
2019-01-14
20:44
Add scalar function "prefix_length()" to ext/misc/prefixes.c. (check-in: 0bf15505 user: dan tags: trunk)
19:13
Fix a problem causing some Tcl test cases to fail with errors like "expected: [<multiline-whitespace>], got: []". (check-in: 11b8a4cb user: dan tags: trunk)
16:16
Add the "prefixes" table-valued function in the ext/misc folder. (check-in: f0fd2163 user: drh tags: trunk)
15:35
Fix a problem causing a crash if an fts5vocab table was created to query an fts3/4 FTS index. (check-in: 9cd64ce4 user: dan tags: trunk)
15:09
Fix a problem with querying a corrupt fts3 database. (check-in: 65e50706 user: dan tags: trunk)
13:32
When parsing a corrupt record using sqlite3VdbeRecordUnpack(), make sure that the resulting UnpackedRecord object is completely initialized, to avoid (harmless) MSAN warnings. (check-in: ddc3697e user: drh tags: trunk)
11:56
Have fts3 ignore empty sets of parenthesis if built with SQLITE_ENABLE_FTS3_PARENTHESIS. (check-in: c93c6b45 user: dan tags: trunk)
05:48
Avoid reading off the front of a page buffer when balancing a corrupt btree page. (check-in: cb505090 user: drh tags: trunk)
2019-01-13
20:23
In dbfuzz2, avoid using a malloc in the LLVMFuzzerInitialize() initializer routine, so that no memory leaks are reported. Also, show the version of SQLite being used when the -v option is on. (check-in: 824f9324 user: drh tags: trunk)
20:17
Relax the minimum size database file constraint on the dbtotxt utility program. (check-in: 97e723d7 user: drh tags: trunk)
20:17
Improved detection of database corruption while balancing pages from an auto_vacuum database with overflow pages. Test cases in TH3. (check-in: 35f04235 user: drh tags: trunk)
00:58
Move a local variable declaration into the outermost scope in which it is used. This fixes an ASAN warning. (check-in: ac3b6021 user: drh tags: trunk)
2019-01-12
21:30
Prevent unsigned 32-bit integer overflow from leading to a buffer overread inside of an assert(). The problem fixed here is no reachable in production code. (check-in: 0f850a25 user: drh tags: trunk)
20:55
Fix another problem with handling corrupt records in fts5_decode(). (check-in: 726e398b user: dan tags: trunk)
16:19
Fix an off-by-one error on a Goto in the code generator, that only causes problems for a REPLACE on an INTEGER PRIMARY KEY in non-debug builds. Test case in TH3. (check-in: e35eb877 user: drh tags: trunk)
14:58
Fix a problem with corrupt database handling in the fts3 matchinfo() function. (check-in: 703646b1 user: dan tags: trunk)
00:45
Improved detection of shadow table corruption in the fts5_decode() SQL function. (check-in: b74e5f3f user: drh tags: trunk)
00:12
Improved shadow table corruption detection in the matchinfo() function of FTS3. (check-in: 567be3bb user: drh tags: trunk)
00:07
Indicate that the database may be corrupt in the fts3corrupt4.test test script. (check-in: 473626d5 user: drh tags: trunk)
2019-01-11
23:08
Use 64-bit APIs in the fileio.c extension. (check-in: b49d56a0 user: drh tags: trunk)
21:34
Fix a segfault in fts3 prompted by a corrupted database. (check-in: 2d7b1d1d user: dan tags: trunk)
19:27
Fix another problem with corrupt databases in fts5. (check-in: 9bf811ea user: dan tags: trunk)
17:41
Fix a problem handling a negative value in the "number-of-pages" database header field. Also a problem with running "REINDEX tbl" against a virtual table for which the SQL passed to sqlite3_declare_vtab() contains PRIMARY KEY or UNIQUE constraints. (check-in: 556dd892 user: dan tags: trunk)
17:20
Improved detection and reporting of errors in the readfile() extension SQL function. (check-in: d2f0b5a4 user: drh tags: trunk)
17:19
Omit errors about missing SAVEPOINTs when aborting the .archive command in the CLI. (check-in: 2a47387b user: drh tags: trunk)
16:44
Improved detection of cell corruption in sqlite3VdbeRecordCompareWithSkip(). (check-in: fa47f4c6 user: drh tags: trunk)
15:26
Merge documentation changes from branch begin-concurrent-wal2 into this branch. (check-in: cf8a0c71 user: dan tags: begin-concurrent-pnu-wal2)
15:22
Merge documentation changes from branch "begin-concurrent" into this branch. (Closed-Leaf check-in: 41e742bd user: dan tags: begin-concurrent-wal2)
15:06
Add new documentation file begin_concurrent.md. (check-in: fdbf97e6 user: dan tags: begin-concurrent)
15:00
Merge latest begin-concurrent-wal2 changes (documentation only). (check-in: d0ab56a3 user: dan tags: begin-concurrent-pnu-wal2)
14:59
Merge latest wal2 changes (documentation only) into this branch. (check-in: 820ba1cc user: dan tags: begin-concurrent-wal2)
14:58
Add new file doc/wal2.md to this branch. (check-in: b495dce1 user: dan tags: wal2)
14:46
Fix PRAGMA integrity_check so that it does not cancel the PRAGMA vdbe_debug setting. (check-in: aaa3a19f user: drh tags: trunk)
14:38
Add the --vdbe-debug command-line option to dbfuzz2. (check-in: 599b4df4 user: drh tags: trunk)
14:22
Add the "dbfuzz2" target to main.mk. Remove an unused local variable from dbfuzz2.c. (check-in: 05c7609c user: drh tags: trunk)
13:32
The keywords TRUE and FALSE should only act as boolean literal values if unquoted. (check-in: 5547f39d user: drh tags: trunk)
13:03
Separate makefile targets for "dbfuzz2", "dbfuzz2-asan", and "dbfuzz2-msan". (check-in: ea119641 user: drh tags: trunk)
2019-01-10
19:26
Fix a memory leak in fts5 that could occur if scalar function fts5_decode() was passed a corrupt record. (check-in: 240f1c0c user: dan tags: trunk)
18:35
Fix a memory leak in fts5. (check-in: ff3b011f user: dan tags: trunk)
17:08
Avoid use-after-free and double-free errors that could occur if an fts5 table is modified in certain ways while there are active cursors. (check-in: 3291b2a6 user: dan tags: trunk)
15:17
Fix further problems with fts5 handling corrupt databases. (check-in: 83c467d7 user: dan tags: trunk)
14:33
More aggressive early detection of orphaned and malformed autoindexes when parsing the schema. (check-in: 10f9e39d user: drh tags: trunk)
13:56
Use the new SQLITE_IDXTYPE_IPK values (3) on Index.idxType to indicate the fake INTEGER PRIMARY KEY index used during query planning. (check-in: e22d2f90 user: drh tags: trunk)
01:12
Fix the fts3DecodeIntArray() function so that it will not read off the end of the buffer it is handed. Any unread integers are set to zero. (check-in: 666cf8f6 user: drh tags: trunk)
2019-01-09
21:12
Fix an out-of-bounds read in SQL function fts5_decode() that could occur if it was passed a corrupt record. (check-in: 931278b2 user: dan tags: trunk)
14:49
Adjustments to the page cache to try to avoid harmless TSAN warnings. (check-in: 383437be user: drh tags: trunk)
11:19
Improved database corruption detection in the dbstat virtual table. (check-in: fc5ecc88 user: drh tags: trunk)
11:06
Small simplification to the dbstat virtual table. (check-in: 9d4c156f user: drh tags: trunk)
02:02
Enhance the ALTER TABLE RENAME COLUMN feature so that it works on tables that have redundant UNIQUE and/or PRIMARY KEY constraints. Fix for ticket [bc8d94f0fbd633fd9a051e3] (check-in: f09aa324 user: drh tags: trunk)
2019-01-08
20:02
Use 64-bit math to compute the sizes of memory allocations in extensions. (check-in: ca67f2ec user: drh tags: trunk)
15:18
Performance improvement on the instr() function, especially for large haystacks. (check-in: ce51f1a2 user: drh tags: trunk)
14:28
Fix a possible memory leak when trying to UPDATE a corrupt RTREE index. (check-in: 63eb803d user: drh tags: trunk)
08:02
Fix further problems with fts5 and corrupt databases causing integer overflow. (check-in: 673a7dd6 user: dan tags: trunk)
2019-01-07
16:52
Fix another potential buffer overread in fts5. (check-in: d0e943d9 user: dan tags: trunk)
15:57
For SQLITE_ENABLE_PREUPDATE_HOOK builds, disable the optimization for a REPLACE command on a WITHOUT ROWID table with no indexes, triggers or foreign key constraints that causes SQLite to clobber any existing row without separately checking for it. This optimization causes SQLite to omit the expected pre-update-hook callbacks. (check-in: 6281ef97 user: dan tags: trunk)
2019-01-06
02:06
The page size becomes fixed as soon as page1 from a non-empty database file is read. (check-in: 6064584d user: drh tags: trunk)
01:46
Give symbolic names to the special prepared statements used to implement incremental blob I/O. (Leaf check-in: 2a1cc632 user: drh tags: named-blob-I/O)
2019-01-05
21:56
Add the exprNodeCopy() routine that will safely memcpy() an Expr node that might be a size-reduced node. (check-in: a874c649 user: drh tags: trunk)
21:09
If the OP_ParseSchema opcode with a non-NULL P4 operand does not parse any rows out of the sqlite_master table, that indicates that the sqlite_master table is corrupt, so raise an SQLITE_CORRUPT error. (check-in: 598d7358 user: drh tags: trunk)
07:17
Fix two more problems with corrupt database handling in fts5. (check-in: 444c7c99 user: dan tags: trunk)
2019-01-04
23:39
Give a meaningful error on an attempt to use UPSERT on a virtual table, rather than simply not working. (check-in: fa98748f user: drh tags: trunk)
19:39
Fix the experimental sqlite3_wal_info() API so that it works with wal2 mode. (check-in: 079daedb user: dan tags: begin-concurrent-pnu-wal2)
19:25
Add the "-external" option to the tserver_test.tcl program.. (check-in: ae7c5ed1 user: dan tags: begin-concurrent-pnu-wal2)
17:12
Update the "tserver" program to report the amount of time spent in COMMIT commands. (check-in: cf494b41 user: dan tags: begin-concurrent-pnu-wal2)
14:29
If the ".open" command fails in the CLI, reopen to :memory: so that at least some database is available for subsequent commands. (check-in: d7f55c62 user: drh tags: trunk)
12:46
Remove debugging pragmas accidently left in by a prior change. (check-in: 26275fc7 user: drh tags: trunk)
12:35
Fix a typo in a comment used to generate documentation. No functional changes. (check-in: ccc4f742 user: drh tags: trunk)
11:20
Fix another fts5 assert() that may fail if the database is corrupt. (check-in: 0888fc2e user: dan tags: trunk)
2019-01-03
19:12
Fix some problems with sqlite3_interrupt() handling in fts5. (check-in: c0eb839a user: dan tags: trunk)
16:03
Fix the csv01.test module so that it works on systems with \r\n line endings. (check-in: 36eaf5a5 user: drh tags: trunk)
16:00
Fix the shmlock.test script so that it works with the Windows restriction that UnlockFile must exactly correspond to a prior LockFile. (check-in: df939c89 user: drh tags: trunk)
15:22
Fix a harmless compiler warning in the CSV extension. (check-in: fbcd7256 user: drh tags: trunk)
15:17
Fix a problem with the second and subsequent sqlite3rbu_savestate() calls made on an RBU vacuum handle. (check-in: bef216df user: dan tags: trunk)
00:44
Fix the geopoly_svg() function so that it returns NULL when given zero arguments. (check-in: 120cb176 user: drh tags: trunk)
2019-01-02
23:49
Fix harmless compiler warnings in the unicode2 logic of FTS3 and FTS5. (check-in: 703029ac user: drh tags: trunk)
19:46
Merge changes from begin-concurrent-wal2. Also modify the unix-excl shm-locks on this branch so that it is not an error to attempt to release an EXCLUSIVE lock that is not held. (check-in: 86685679 user: dan tags: begin-concurrent-pnu-wal2)
17:08
Reinstate assert() statements in os_unix.c that were removed to allow wal-mode SHARED locks to be taken over more than one locking slot (this branch no longer does that, so the assert() statements can go back in). (check-in: fcb7348b user: dan tags: begin-concurrent-wal2)
17:00
Reinstate assert() statements in os_unix.c that were removed to allow wal-mode SHARED locks to be taken over more than one locking slot (this branch no longer does that, so the assert() statements can go back in). (check-in: 8445fb6d user: dan tags: wal2)
16:30
Merge latest wal2 changes into this branch. (check-in: c31eeb3c user: dan tags: begin-concurrent-wal2)
16:15
Merge latest trunk changes into this branch. (check-in: 87ef68f9 user: dan tags: wal2)
16:08
Merge latest trunk changes into this branch. (check-in: 5bf212f1 user: dan tags: begin-concurrent)
16:01
Add another test case to vacuum-into.test. (check-in: 0465d2fc user: dan tags: trunk)
15:27
Add test cases for commit [6c6fb1c6]. (check-in: 3961995c user: dan tags: trunk)
14:34
Raise an error if the argument to VACUUM INTO is an identifier. (check-in: 6c6fb1c6 user: drh tags: trunk)
2019-01-01
19:17
Fix another fts5 problem caused by a corrupt database. (check-in: 911342f7 user: dan tags: trunk)
18:00
Ensure that when a new cursor is opened by OP_OpenDup, any existing cursor with the same id opened by a previous OP_OpenDup is closed first. (check-in: 5c188361 user: dan tags: trunk)
13:59
Fix another case in fts5 where a corrupt database could cause a buffer overread. (check-in: f7e6cdc5 user: dan tags: trunk)
2018-12-31
21:43
Fix harmless compiler warnings. (check-in: b57c545a user: drh tags: trunk)
20:39
Additional steps to help ensure that scalar subqueries are only evaluated once even if they are used in multiple places within the query. This fixes a performance regression reported on the mailing list and caused by check-in [531eca6104e41e43] which was a fix for ticket [787fa716be3a7f650c]. Think of this check-in as an improved fix for that ticket. (check-in: e1303193 user: drh tags: trunk)
20:13
Remove an optimization that can no longer occur, being superceded by the subquery-reuse optimization. Put an assert in place of the optimization to detect if the need for this optimization ever returns. (Closed-Leaf check-in: 4fcdc7a2 user: drh tags: reuse-subqueries)
18:30
Merge enhancements and bug fixes from trunk. (check-in: 9fb646f2 user: drh tags: reuse-subqueries)
17:58
Small changes to the OP_OpenEphemeral opcode to improve testability. (check-in: f856676c user: drh tags: trunk)
16:36
Fix the OP_OpenEphemeral opcode in the bytecode engine so that if it is called a second or subsequent time, it merely clears the existing table rather than creating a new one. Proposed fix for ticket [d0866b26f83e9c55e30de0821f5d]. (check-in: 4678cb10 user: drh tags: trunk)
2018-12-29
20:47
Merge latest begin-concurrent changes with this branch. (check-in: 1625887c user: dan tags: begin-concurrent-wal2)
20:42
Fix a problem causing a corrupt pager-cache if an OOM or IO error was encountered while committing a concurrent transacation. (check-in: 48ca30f9 user: dan tags: begin-concurrent)
16:34
Increase coverage provided by permutation "coverage-wal" on this branch. (check-in: f664f940 user: dan tags: begin-concurrent-wal2)
14:23
Additional small performance increase and size reduction to the sqlite3VdbeMakeLabel() mechanism. (check-in: 1bdee199 user: drh tags: trunk)
02:26
A new implementation of sqlite3VdbeMakeLabel() is faster and makes fewer memory allocations by deferring memory allocation until sqlite3VdbeResolveLabel() is called, at which point the code generator has a better idea of how big the relocation table needs to be. The sqlite3VdbeMakeLabel() routine now takes a Parse* parameter instead of Vdbe*. (check-in: 4a0929ac user: drh tags: trunk)
2018-12-28
21:40
Merge performance enhancements and other patches. (Leaf check-in: 44e1b55a user: drh tags: factor-out-scalar-subselect)
21:32
Merge performance enhancements from trunk. (check-in: 0f1b9ff9 user: drh tags: reuse-subqueries)
20:48
Faster allocation of new sqlite3_stmt objects. (check-in: 891f1f72 user: drh tags: trunk)
20:14
Move the nOpAlloc field from Parse into Vdbe to avoid an extra pointer deference on the fast path in sqlite3VdbeAddOp3(). (check-in: 8f10efc2 user: drh tags: trunk)
19:23
Merge patches and enhancements from trunk. (check-in: da53f3d3 user: drh tags: reuse-subqueries)
18:09
Fix another problem with loading the structure record from a corrupt fts5 database. (check-in: c4d44542 user: dan tags: trunk)
17:45
Fix a problem causing the sqlite_master entry corresponding to a virtual table to be removed by a DROP TABLE even if the call to the vtabs xDestroy() method failed. (check-in: 0140f6db user: dan tags: trunk)
16:20
Add new test file wal2rollback.test to this branch. (check-in: 85a376fc user: dan tags: wal2)
14:33
Avoid an undefined left-shift operation in fts5 caused by malformed utf-8 text. (check-in: c3a3a111 user: dan tags: trunk)
13:57
Fix a buffer overwrite in fts5 triggered by a corrupt database. (check-in: a385298d user: dan tags: trunk)
07:37
Fix problems in fts5 found by ASAN. (check-in: c564bf87 user: dan tags: trunk)
2018-12-27
20:12
Fix another problem with corrupt database handling in fts5. (check-in: fb0d7fba user: dan tags: trunk)
17:11
Merge latest wal2 changes with this branch. (check-in: ea96001e user: dan tags: begin-concurrent-wal2)
16:55
Modify the btree02.test module so that it does not depend on whether TCL interprets a value as a string or as an integer. (check-in: d9e4f957 user: drh tags: trunk)
16:49
Increase test coverage of wal.c provided by permutation "coverage-wal" on this branch. (check-in: 2f7f893a user: dan tags: wal2)
15:36
Fix another problem in fts5 caused by a corrupt schema record. (check-in: ff45f9dd user: dan tags: trunk)
13:52
Fix the filename normalization in the dbtotxt utility program. (check-in: 29a00a05 user: drh tags: trunk)
07:46
Fix a null-pointer dereference that could occur in fts5 with a corrupt database. (check-in: b0a49d5e user: dan tags: trunk)
02:16
Fix a problem in which nested CTEs with the same table name trick the code generator into thinking they are the same CTE, which then tries to use the manifest them both into the same transient table. (check-in: 202dd033 user: drh tags: trunk)
00:30
In the treeview debugging output, provide additional details for the Table object associated with each FROM clause term. (check-in: 11d4682d user: drh tags: trunk)
2018-12-26
20:42
Improve testing of the wal.c changes on this branch. (check-in: 63483e22 user: dan tags: wal2)
19:10
Merge latest trunk changes with this branch. (check-in: 404f9d99 user: dan tags: wal2)
18:34
Update the coverage-wal permutation to cover branches enabled by SQLITE_ENABLE_SNAPSHOT. (check-in: 6821c61f user: dan tags: trunk)
17:49
Add a few more test cases to walvfs.test. (check-in: 14a64df3 user: dan tags: trunk)
16:57
Avoid an "uninitialized value read" problem in fts5 that can occur with a corrupt database. (check-in: 6cae81cd user: dan tags: trunk)
16:04
Fix a problem with handling corrupt databases in the fts5 integrity-check function. (check-in: 9bad745d user: dan tags: trunk)
15:04
Here is the beginnings of an effort to factor out the implementation of scalar subqueries to be implemented as subroutines at the end of the main body of bytecode, after the jump back to the OP_Init opcode. This is an incremental check-in that contains only preliminary changes. (check-in: 50e5f390 user: drh tags: factor-out-scalar-subselect)
14:23
Fix a problem with corrupt fts3 database detection introduced by [27199380]. (check-in: ceeb4fba user: dan tags: branch-3.22)
14:15
Fix a problem with corrupt fts3 database detection introduced by [95a9a39f]. (check-in: c80bb15b user: dan tags: trunk)
12:50
Fix a problem with the CSV extension when it uses the "header" option on a real file. (check-in: 7acaed08 user: drh tags: trunk)
11:39
Avoid a left-shift of a negative value (undefined behaviour) when dealing with a corrupt database in fts3. Cherrypick of [b851d12474]. (check-in: 2fa63a8b user: dan tags: branch-3.22)
2018-12-25
11:17
Fix a typo in a comment that is used to generate session documentation. (check-in: a1f50d57 user: drh tags: trunk)
00:15
Increase the number of parameters to sqlite3WhereCodeOneLoopStart() to encourage the compiler to inline that routine within sqlite3WhereBegin(). This gives a performance improvement. (check-in: 3c2ad0e9 user: drh tags: reuse-subqueries)
2018-12-24
20:21
Improvements to EXPLAIN QUERY PLAN formatting. The MULTI-INDEX OR now shows a separate "INDEX" subtree for each index. SCALAR SUBQUERY entries provide a subquery number that is related back to the .selecttrace output. (check-in: 7153552b user: drh tags: reuse-subqueries)
20:00
Add a few more test cases to walfault2.test and walvfs.test. (check-in: 3873941c user: dan tags: trunk)
19:59
Change another fts5 assert() that may fail with a corrupt database to an assert_nc(). (check-in: d9653380 user: dan tags: trunk)
18:51
Add test cases to test file walvfs.test. (check-in: d697f6f3 user: dan tags: trunk)
18:10
Always include OP_Explain opcodes in the bytecode when SQLITE_DEBUG is enabled. (check-in: d8c1235c user: drh tags: trunk)
15:22
Copy some extra test infrastructure from the mutexfree-shmlock branch to trunk. (check-in: 883337ff user: dan tags: trunk)
15:15
Merge latest trunk with this branch. (Leaf check-in: 606b1ead user: dan tags: mutexfree-shmlock)
14:30
Restore a line of code that was previously commented out for debugging. (check-in: e53781f5 user: drh tags: reuse-subqueries)
13:39
Change the way a comparison used to detect corrupt databases in fts3 is done to avoid potential pointer overflow in 32-bit builds. Cherrypick of [95a9a39ff7]. (check-in: 27199380 user: dan tags: branch-3.22)
13:34
Change the way a comparison used to detect corrupt databases in fts3 is done to avoid potential pointer overflow in 32-bit builds. (check-in: 95a9a39f user: dan tags: trunk)
12:09
Do not generate subroutines for non-static SELECT and EXISTS expressions. Fix up some test cases to account for the minor changes in EXPLAIN QUERY PLAN output. (check-in: 06de44ec user: drh tags: reuse-subqueries)
11:55
Prevent the use of subroutines to implement the RHS of IN operators within CHECK constraints. (check-in: 6b24d3fb user: drh tags: reuse-subqueries)
02:34
Experimental code that tries to put the computation of subqueries inside a subroutine, and reuse that subroutine if the same subquery is evaluated more than once. Current code does not work for CHECK constraints. (check-in: 6c44838a user: drh tags: reuse-subqueries)
2018-12-23
21:27
Split the code generation for the RHS of IN operators and for SELECT and EXISTS expressions into two separate subroutines, because there is now little commonality between those to functions. This is intended to help make the code easier to read and maintain. (check-in: 2b6494b1 user: drh tags: trunk)
2018-12-22
20:32
Improve the coverage of wal.c provided by the "coverage-wal" test permutation. (check-in: 62314851 user: dan tags: trunk)
19:54
Catch another case of a corrupted structure record in fts5. (check-in: fb17fea4 user: dan tags: trunk)
19:09
Change a faulty assert() in fts5 that could fail on a corrupt db to an if() statement. (check-in: 1daaba9f user: dan tags: trunk)
16:14
Fix one more instance of excess whitespace in test result strings. (check-in: c064964d user: drh tags: trunk)
15:50
Enhance the wal2 header comment in wal.c to explain how the wal-hook is invoked in wal2 mode. (check-in: 118aa7e3 user: dan tags: wal2)
15:46
Remove unnecessary whitespace from testcase result strings. (check-in: ad70f03c user: drh tags: trunk)
15:21
Fix an assert() in fts5 that could fail with a corrupt database. (check-in: 83935b95 user: dan tags: trunk)
13:34
Fix a "jump or move depends on uninitialized value" valgrind error that could occur in fts5 when dealing with a corrupt database. (check-in: 3518c09b user: dan tags: trunk)
09:39
Avoid a left-shift of a negative value (undefined behaviour) when dealing with a corrupt database in fts3. (check-in: b851d124 user: dan tags: trunk)
07:16
Fix cut-and-paste error in test file fts4umlaut.test. (check-in: cad5da1b user: dan tags: trunk)
01:13
Do not all REPLACE to sneak a NULL value into a NOT NULL column. Detect that situation and ABORT instead. Fix for ticket [e6f1f2e34dceeb1ed61531c7e98]. (check-in: db8d1d12 user: drh tags: trunk)
00:34
The OP_Eq and OP_Ne operators have a special P5 value SQLITE_NOTNULL that asserts that the values are not null. Except that is not always true for a corrupt database. Adjust the assert() and add a testcase() to make this point clear. (check-in: a3fdb2c7 user: drh tags: trunk)
2018-12-21
22:11
Update the dbtotxt utility program so that it does not output characters that are special to TCL, thus making the output of dbtotxt easier to insert into test scripts. (check-in: 48438bb3 user: drh tags: trunk)
22:08
Improved detection of shadow table corruption in RTREE. (check-in: b39bf435 user: drh tags: trunk)
20:18
Add new sqlite3_prepare_v3() flag SQLITE_PREPARE_NO_VTAB, for preparing statements that are not allowed to use any virtual tables. Use this to prevent circular references in triggers on virtual table shadow tables from causing resource leaks. (check-in: da587d18 user: dan tags: trunk)
19:55
Use SQLITE_PREPARE_NO_VTAB in rtree as well. (Closed-Leaf check-in: 82a2ae71 user: dan tags: prepare-no-vtab)
19:30
Add tests for the use of SQLITE_PREPARE_NO_VTAB in fts5. (check-in: 19996120 user: dan tags: prepare-no-vtab)
19:29
Add new sqlite3_prepare_v3() flag SQLITE_PREPARE_NO_VTAB, for preparing statements that are not allowed to use any virtual tables. Use this to prevent circular references in triggers on virtual table shadow tables from causing resource leaks. (check-in: 25666e3d user: dan tags: prepare-no-vtab)
18:51
In FTS3, avoid calling memcpy() with a NULL source pointer, even if the transfer amount is zero bytes. (check-in: 1abb83d2 user: drh tags: trunk)
18:50
The fts4umlaut.test module requires FTS5, so do not try to run it without that module. (check-in: dee3ae90 user: drh tags: trunk)
18:17
Fix the node hash function in RTREE to ensure that it always returns a non-negative value. (check-in: 0bf4c70a user: drh tags: trunk)
17:51
Fix a potential NULL-pointer deference in RTREE due to corrupt shadow tables. (check-in: 1fdd3604 user: drh tags: trunk)
16:53
Prevent an infinite loop in rtree that can result from a corrupt shadow table. (check-in: 08566718 user: drh tags: trunk)
15:13
Fix the RTree extension so that it correctly ignores constraints that it does not understand, even if they are against a dimension column. (check-in: ed8531e5 user: drh tags: trunk)
13:30
In RTREE, turn an assert() into an if() because the condition can sometimes be false when dealing with a corrupt database. (check-in: 99bce435 user: drh tags: trunk)
11:53
Remove an assert() that could fail on a corrupt db from fts3_write.c. (check-in: 4cdcda40 user: dan tags: trunk)
2018-12-20
22:08
Do not set the Cursor.seekOp test variable in the OP_NotExists opcode. This is a change to test logic only and does not affect deliverable builds. (check-in: 98f34307 user: drh tags: trunk)
17:32
Fix a bug in the code that detects self-referencing rows as part of foreign key processing. Fix for [50d2a6c2]. (check-in: 16fff053 user: dan tags: trunk)
15:04
Fix a segfault caused by using the RAISE function incorrectly (library now returns an error instead of crashing). (check-in: ddf06db7 user: dan tags: trunk)
2018-12-19
17:05
Add new interfaces sqlite3_result_pointer(), and sqlite3_value_pointer() and use them to transfer the eponymous FTS3 column pointer to the snippet() and offsets() routines. Cherrypick from commit [8201f4e1] on branch-3.18. (check-in: 553a923c user: dan tags: branch-3.19)
16:03
Add interfaces sqlite3_bind_pointer(), sqlite3_result_pointer(), and sqlite3_value_pointer() used to safely move pointer values through SQL without exposing underlying memory address information. Cherrypick from commit [8201f4e1] on branch-3.18. (check-in: 4cb67252 user: dan tags: branch-3.9)
14:44
Fix a crash that can follow an OOM in fts3 on this branch. (check-in: de078148 user: dan tags: branch-3.19)
01:57
Add extra defenses against strategically corrupt databases to fts3/4. (check-in: 882ef4e3 user: drh tags: branch-3.9)
01:44
Add extra defenses against strategically corrupt databases to fts3/4. (check-in: 4f315e4a user: drh tags: branch-3.19)
01:38
Add extra defenses against strategically corrupt databases to fts3/4. (check-in: 4bb21d82 user: drh tags: branch-3.18)
01:30
Add extra defenses against strategically corrupt databases to fts3/4. (check-in: c255889b user: drh tags: branch-3.22)
2018-12-18
20:31
In defensive mode, do not allow shadow tables to be renamed using ALTER TABLE. (check-in: 23e200da user: dan tags: trunk)
19:46
Add the "mutexfree-shmlock" patch to this branch. (check-in: c3191fc8 user: dan tags: begin-concurrent-pnu-wal2)
18:16
Fix a test script problem in wal2savepoint.test. (check-in: e388d029 user: dan tags: begin-concurrent-pnu-wal2)
18:01
Merge the wal2 feature into this branch. (check-in: a2c618c0 user: dan tags: begin-concurrent-pnu-wal2)
17:47
Merge latest begin-concurrent changes into this branch. (check-in: a93ca38b user: dan tags: begin-concurrent-pnu)
17:32
Merge latest trunk changes into this branch. (check-in: b3a163b4 user: dan tags: begin-concurrent-wal2)
17:20
Merge latest trunk changes into this branch. (check-in: 123cbb33 user: dan tags: begin-concurrent)
16:24
Add the ".integrity_check" command to tserver. (check-in: fa46fa3b user: dan tags: begin-concurrent-wal2)
2018-12-17
22:19
Move variable declaration to address compilation issue (C89). (check-in: d64f248d user: mistachkin tags: trunk)
18:26
Add wal2 related tests to this branch. (check-in: 56458220 user: dan tags: begin-concurrent-wal2)
15:22
Merge changes from wal2 branch. (check-in: 85f49f0d user: dan tags: begin-concurrent-wal2)
15:22
Add extra test case to wal2recover.test. (check-in: 1a5aa734 user: dan tags: wal2)
2018-12-15
20:59
Merge latest wal2 changes into this branch. (check-in: 06bb80ee user: dan tags: begin-concurrent-wal2)
20:20
Further test cases for wal2 mode. (check-in: 9cb5f8da user: dan tags: wal2)
07:12
Fix errors in comments in fts5.h. (check-in: 4002790d user: dan tags: trunk)
2018-12-14
21:58
Experimental support for new sqlite3_bind_blob() and sqlite3_bind_text() interfaces that take an extra void* argument that is passed into the destructor in front of the object that is to be destroyed. (Leaf check-in: 33a1924e user: drh tags: custom-destructors)
20:28
Add a missing OP_ColumnsUsed opcode to code for expressions like "? IN (SELECT ...)" in cases where expression can use an index that may contain NULL values. (Backported fix from version 3.14.0). (Leaf check-in: 11368e67 user: drh tags: branch-3.8.9)
20:20
Add the OP_ColumnsUsed opcode (when compiled with SQLITE_ENABLE_COLUMN_USED_MASK) as a hint to the b-tree layer as to which columns of a btree cursor will be used. (Backport from 3.8.11) (check-in: b29e02f8 user: drh tags: branch-3.8.9)
19:53
Add further tests for wal2 mode. (check-in: 54e628f9 user: dan tags: wal2)
18:11
Fix harmless compiler warnings. (check-in: 27221c69 user: drh tags: trunk)
17:57
Fix possible integer overflow while running PRAGMA integrity_check on a database file with a badly corrupted freelist. (check-in: 39559911 user: drh tags: trunk)
16:20
Back out the expansion of the temporary buffer size from [32754ca6f86da816] and replace it with an explicit test for buffer overreads. (check-in: 8ba3d9f3 user: drh tags: trunk)
16:00
Avoid a buffer overread in ptrmapPutOvflPtr() that can occurs in a corrupt database file that has large entries and uses autovacuum. (check-in: f8b781cf user: drh tags: trunk)
13:47
Fix a harmless compiler warning in Sessions. (check-in: fc9791ea user: drh tags: trunk)
13:35
Expand the size of the temporary page used during btree rebalancing by a few bytes, to avoid problems with small buffer overreads that can occur on corrupted database files. (check-in: 32754ca6 user: drh tags: trunk)
13:18
When saving the position of a cursor at the b-tree layer, allocate a few extra bytes at the end of the buffer used to save the key. Otherwise, if the key is corrupt, the code that restores the cursor position may overread the buffer by a little. (check-in: 160b1e31 user: dan tags: trunk)
11:16
Fix a problem with bytecode generation when a query involves two or more indexes on expressions connected by OR. Ticket [d96eba87698a428c1ddd0790ea04] (check-in: 7e4ed8b5 user: drh tags: trunk)
08:40
Possible fix for [d96eba87]. (Closed-Leaf check-in: 89a25abf user: dan tags: tkt-d96eba87)
03:16
Report corruption when an attempt is made to write a pointer-map page that is also being used as a btree page. Also, fix a bug in fuzzcheck that cause it to overlook a pointer-map bug that was trigger by the fuzzcheck test data, and also fix the pointer-map bug. (check-in: cc42dd15 user: drh tags: trunk)
03:14
Detect when an attempt is made to write to a pointer map page that is also being used as a btree page and report corruption. (Closed-Leaf check-in: 3036fd71 user: drh tags: fuzzcheck-fix)
02:29
Fix a bug in the custom in-memory VFS used by fuzzcheck. This bug masks other bugs that should have caused some existing fuzzdata7.db entries to fail, and so this fix is initially on a branch until those other bugs can be repaired. (check-in: e0994e99 user: drh tags: fuzzcheck-fix)
2018-12-13
22:58
Fix the dbtotxt decoder in the CLI so that it ignores excess bytes. (check-in: 18740bd4 user: drh tags: trunk)
21:52
dbfuzz2 found a NEVER() that is sometimes true. (check-in: 1201615c user: drh tags: trunk)
21:11
Add extra tests for database corruption inside the defragmentPage() routine, as dbfuzz2 has found ways for corruption to leak into that point. Add test cases in fuzzdata7.db. (check-in: 997b6511 user: drh tags: trunk)
21:05
Fix a problem in sqlite3BtreeDelete() in which deleting an entry from a corrupt database can leave a btree page with zero cells. (check-in: 682053d1 user: drh tags: trunk)
20:49
Add the "decode_hexdb" TCL command to testfixture. Add the dbfuzz001.test module to demonstration how to use decode_hexdb to deserialize a dbtotxt database description for use in a corruption test. (check-in: 1f583c53 user: drh tags: trunk)
18:59
Fix the CLI to keep proper track of input line numbers for use in error messages, even after processing in-line hex database inputs using ".open --hexdb". (check-in: 7ffa9858 user: drh tags: trunk)
18:30
Fix the CLI so that the ".open --hexdb" command works even if it is contained in a subscript that is read using ".read". (check-in: 67a87399 user: drh tags: trunk)
16:26
Add tests cases for recovery in wal2 mode. (check-in: 34f56f8a user: dan tags: wal2)
15:52
Merge the dbtotxt enhancement from trunk. (Closed-Leaf check-in: b386fce9 user: drh tags: dbfuzz2-cases)
15:06
Add the "dbtotxt" utility program and the ability to read "dbtotxt" output as a deserialized input database in the CLI, using the --hexdb option to the ".open" command. (check-in: e3bf1d3e user: drh tags: trunk)
12:37
Include OPTS in the build of dbfuzz2. (check-in: eac9c0c4 user: drh tags: trunk)
12:28
Fix the Makefile so that it honors CFLAGS when building sessionfuzz. (check-in: 54231ac4 user: drh tags: trunk)
03:36
New database corruption test cases discovered by dbfuzz2. The new cases have been added to test/fuzzdata7.db, but have not yet all been fixed, so tests will not currently pass. (check-in: b4210d32 user: drh tags: dbfuzz2-cases)
2018-12-12
21:34
Fix another problem found by Matthew Denton's new fuzzer. (check-in: 2b690dbd user: drh tags: trunk)
20:39
Add new test file wal2big.test. (check-in: e3e50bcd user: dan tags: wal2)
20:11
Remove an ALWAYS() from a branch that is not always taken. The test case found by OSSFuzz has been added to TH3. (check-in: 5c7dab85 user: drh tags: trunk)
19:04
Add tests to ensure that each of the 4 wal read-locks does what it is supposed to. (check-in: 4d5779f3 user: dan tags: wal2)
11:57
OSSFuzz found a case where an assert() inside sqlite3ExprCompare() can be true. Test case added to TH3. (check-in: bc891ac6 user: drh tags: branch-3.26)
11:54
Fix a problem with using "<db>-vacuum" (the default) as the state database when resuming an RBU vacuum. (check-in: 6b7567fc user: drh tags: branch-3.26)
11:50
Do not use a partial index as a table scan in an IN operator. Fix for ticket [1d958d90596593a77420e59]. (check-in: c1c735a8 user: drh tags: branch-3.26)
11:23
OSSFuzz found a case where an assert() inside sqlite3ExprCompare() can be true. Test case added to TH3. (check-in: 23b62fb1 user: drh tags: trunk)
2018-12-11
17:56
Change the way wal2 locks work to ensure a reader only ever has to lock a single slot. (check-in: 18b2c23a user: dan tags: wal2)
13:44
Merge latest trunk changes into this branch. (check-in: d8dd98a3 user: dan tags: wal2)
12:51
Small performance improvement in sqlite3_step(). (check-in: d1db8d58 user: drh tags: trunk)
12:20
Small performance improvement in the sqlite3_bind() family of interfaces. (check-in: 1dc0c3df user: drh tags: trunk)
2018-12-10
20:01
Further refinements to the sqlite3_normalized_sql() interface. TH3 now gives 100% MC/DC on that interface. (check-in: c96bf6cc user: drh tags: trunk)
18:15
Refactor the sqlite3_normalized_sql() implementation. (check-in: 06e955e5 user: drh tags: trunk)
16:53
Merge latest mutexfree-shmlock changes into this branch. (Leaf check-in: 186b376e user: dan tags: begin-concurrent-pnu-mutexfree-shmlock)
16:52
Make SQLITE_MFS_NSHARD a compile time setting. (check-in: b9a74151 user: dan tags: mutexfree-shmlock)
16:49
Fix issues with the new normalizer. (Leaf check-in: 057d7d40 user: drh tags: normalize-refactor)
16:00
Refactor the sqlite3_normalized_sql() implementation. This is a work-in-progress. There are still issues. (check-in: a4c890b0 user: drh tags: normalize-refactor)
15:58
Merge the latest version of mutexfree-shmlock with this branch. (check-in: 6007abfe user: dan tags: begin-concurrent-pnu-mutexfree-shmlock)
15:51
Add extra tests to shmlock.test (direct testing of xShmLock methods). (check-in: d2c785f9 user: dan tags: mutexfree-shmlock)
15:24
Rework the SQLITE_MUTEXFREE_SHMLOCK code to reduce contention. (check-in: d9157dd1 user: dan tags: mutexfree-shmlock)
09:45
Avoid a mutex in-and-out in unixShmBarrier() on this branch. Use __sync_synchronize() instead. (check-in: a8c5fd86 user: dan tags: mutexfree-shmlock)
09:36
Avoid a mutex in-and-out in unixShmBarrier() on this branch. Use __sync_synchronize() instead. (check-in: 280d1a72 user: dan tags: begin-concurrent-pnu-mutexfree-shmlock)
08:41
Fix a problem with using "<db>-vacuum" (the default) as the state database when resuming an RBU vacuum. (check-in: c878d741 user: dan tags: trunk)
02:00
Merge enhancements from trunk. (check-in: b1bbc718 user: drh tags: apple-osx)
01:48
Add support for the VACUUM INTO command. (check-in: 77f150b8 user: drh tags: trunk)
00:41
Fix the shell1.test test for the new format of the .backup command. (Closed-Leaf check-in: 9748d799 user: drh tags: vacuum-into)
00:40
Merge fixes from trunk. (check-in: ab1e58fa user: drh tags: vacuum-into)
2018-12-09
18:55
New test case for ticket [1d958d90596593a77420e59]. (check-in: b7bf3c98 user: drh tags: trunk)
2018-12-08
20:30
Do not use a partial index as a table scan in an IN operator. Fix for ticket [1d958d90596593a77420e59]. (check-in: 15bc915d user: drh tags: trunk)
01:09
Add the --async option to the ".backup" command in the CLI. (check-in: 7b6a605b user: drh tags: vacuum-into)
00:43
Allow the INTO clause of VACUUM to be a text-valued expression. (check-in: af172b53 user: drh tags: vacuum-into)
2018-12-07
23:48
Do not allow VACUUM INTO into a file that already exists. (check-in: 92f70e0f user: drh tags: vacuum-into)
20:40
Merge the VACUUM simplification from trunk. (check-in: 93d92a0a user: drh tags: vacuum-into)
20:26
Remove a line of code from VACUUM that is no longer needed, due to the change that allows ATTACH to run within a transaction. (check-in: a92c398f user: drh tags: trunk)
20:25
Add multi-threaded performance test program "tserver" to this branch. Fix bugs in the begin-concurrent/wal2 integration revealed by the same. (check-in: 7bd3b356 user: dan tags: begin-concurrent-wal2)
17:28
Prototype implementation for the VACUUM INTO command. (check-in: 036e3320 user: drh tags: vacuum-into)
16:32
Fix the sqlite3_normalized_sql() interface so that it renders double-quoted string literals as "?". (check-in: 0d8e1504 user: drh tags: trunk)
03:01
Fix dbfuzz2.c so that it works with -DSQLITE_OMIT_INIT (check-in: 9ad796a8 user: drh tags: trunk)
02:01
Fix the sqlite3ExprDup() function so that it correctly duplicates the Window object list on a Select that contains window functions. Fix for ticket [f09fcd17810f65f717]. (check-in: 65aafb55 user: drh tags: branch-3.26)
01:56
Fix the sqlite3ExprDup() function so that it correctly duplicates the Window object list on a Select that contains window functions. Fix for ticket [f09fcd17810f65f717]. (check-in: db5ed226 user: drh tags: trunk)
2018-12-06
22:12
Performance improvement: Avoid using sqlite3WalkerSelectExpr() and sqlite3WalkerSelectFrom() twice, so that the compiler will in-line their implementation. (Closed-Leaf check-in: 2b9258b8 user: drh tags: ticket-f09fcd17810f)
22:04
Fix the sqlite3ExprDup() routine so that it makes complete duplications of subqueries containing window functions. (check-in: 94017454 user: drh tags: ticket-f09fcd17810f)
20:26
Add the mutexfree-shmlock experiment to the begin-concurrent-pnu branch. (check-in: 3aead209 user: dan tags: begin-concurrent-pnu-mutexfree-shmlock)
20:18
Experimental changes to (optionally) allow double-quoted strings to be checked against known identifiers. (Leaf check-in: 73a6b8c1 user: mistachkin tags: normalize_v4)
19:56
New test case that still hits an assertion fault, just to prove that the previous checkin merely made the problem more obscure and did not completely fix it. (check-in: a9a3b532 user: drh tags: ticket-f09fcd17810f)
19:15
Simplify the query flattener so that it does not duplicate the WHERE clause of subquery that is being incorporated into the outer query - copies it directly. This is more efficient. And it also fixes the specific test case show for ticket [f09fcd17810f65f71789525] but it does not resolve the more general problem that sqlite3ExprDup() does not correctly duplicate expressions that contain subqueries with window functions. (check-in: f1b18d44 user: drh tags: ticket-f09fcd17810f)
18:58
Experiment with using an atomic CPU primitive instead of a mutex for intra-process locking with the unix-excl VFS. (check-in: 8f4cb9dd user: dan tags: mutexfree-shmlock)
17:06
When masking bits off of sqlite3.flags, make sure the mask is 64 bits in size so as not to accidentally mask of high-order bits. (check-in: 53d3b169 user: drh tags: trunk)
16:54
Add test file wal2snapshot.test that should have been added as part of an earlier commit. (check-in: f6baa7e1 user: dan tags: wal2)
16:50
When saving off the value of sqlite3.flags, take care to preserve all 64 bits. (check-in: 9c6dbcfa user: drh tags: trunk)
16:11
Issue a warning whenever a double-quoted string literal is used. (check-in: ac9ad504 user: drh tags: trunk)
14:24
Bump the version number to 3.26.1. (check-in: e97e053b user: drh tags: branch-3.26)
14:11
Fix a potential NULL pointer dereference that can occur in ALTER TABLE following an OOM. Test case in TH3. (check-in: 99a0951f user: drh tags: branch-3.26)
13:57
Ensure that ALTER TABLE modifies table and column names embedded in WITH clauses that are part of views and triggers. (check-in: e066b4e1 user: drh tags: branch-3.26)
03:59
Invoking the sqlite3_trace() or sqlite3_trace_v2() interfaces cancels any sqlite3_profile() that is running. (check-in: ec63d350 user: drh tags: trunk)
03:13
Merge fixes from trunk. (check-in: f2083ee4 user: drh tags: begin-concurrent-pnu)
02:08
Merge bug fixes from trunk. (check-in: 1e13aaa2 user: drh tags: begin-concurrent)
02:01
Remove the unused pColHash field from the Table object. (check-in: 3a2c0479 user: drh tags: trunk)
01:53
Fix a potential NULL pointer dereference that can occur in ALTER TABLE following an OOM. Test case in TH3. (check-in: ea50815b user: drh tags: trunk)
01:08
Fix a missing mutex in the sqlite3_normalized_sql() interface when it is called on a prepared statement that did not previously have a computed normalization of the input SQL. (check-in: 1a1a59c6 user: drh tags: trunk)
00:08
Merge ALTER TABLE and sqlite3_normalized_sql() bug fixes from trunk. (check-in: 3793e5d5 user: drh tags: begin-concurrent-pnu)
00:05
Merge ALTER TABLE and sqlite3_normalized_sql() fixes from trunk. (check-in: acf10b3f user: drh tags: begin-concurrent)
2018-12-05
23:56
Get rid of the hash table used to track IN operators in the sqlite3_normalized_sql() implementation. Use simple integer variables instead. (check-in: 272dc74f user: drh tags: trunk)
23:45
The sqlite3_normalized_sql() interface should not be transforming quoted identifier names into wildcards. Fix this, and at the same time simplify the code substantially. (check-in: e8540377 user: drh tags: trunk)
23:25
Bungled checkin. Ignore. (Closed-Leaf check-in: 9b6e9a6e user: drh tags: mistake)
21:55
Fix an imbalanced lock problem in sqlite3Normalize() introduced by the simplification in [94ea6379178e3ff6a]. (check-in: f6962437 user: drh tags: trunk)
19:42
Increase the version number to 3.27.0 for the next development cycle. (check-in: 8f8d6828 user: drh tags: trunk)
18:28
Merge enhancements and the ALTER TABLE bug fix from trunk. (check-in: edfc2acf user: drh tags: apple-osx)
18:25
Add test cases to wal2concurrent.test. (check-in: ef9e7a87 user: dan tags: begin-concurrent-wal2)
17:48
Simplifications to the sqlite3_normalized_sql() implementation. (check-in: 94ea6379 user: drh tags: trunk)
17:36
Fix a test script problem on this branch. (check-in: 692ddc28 user: dan tags: begin-concurrent-wal2)
17:31
Fix a test script problem on this branch. (check-in: 285d1c59 user: dan tags: wal2)
17:20
Fix a problem causing "PRAGMA journal_mode" to report the wrong journal mode (wal instead of wal2) under some circumstances. (check-in: bf309107 user: dan tags: begin-concurrent-wal2)
17:14
Fix a problem causing "PRAGMA journal_mode" to report the wrong journal mode (wal instead of wal2) under some circumstances. (check-in: 1d8d4f68 user: dan tags: wal2)
16:45
Fixes for snapshots API on this branch. Also ensure that the snapshots API cannot be used with wal2 mode databases (for now anyhow). (check-in: d8c2d55f user: dan tags: begin-concurrent-wal2)
16:31
Fixes for snapshots API on this branch. Also ensure that the snapshots API cannot be used with wal2 mode databases (for now anyhow). (check-in: 19c61ab7 user: dan tags: wal2)
13:49
Merge enhancements from trunk, especially the sqlite3_normalized_sql() enhancement. (check-in: 342c9538 user: drh tags: begin-concurrent-pnu)
13:49
Ensure that ALTER TABLE modifies table and column names embedded in WITH clauses that are part of views and triggers. (check-in: f44bc7a8 user: dan tags: trunk)
13:44
Merge enhancements from trunk, especially the enhanced sqlite3_normalized_sql() interface. (check-in: 47b73f6b user: drh tags: begin-concurrent)
13:39
Enhance the sqlite3_normalize_sql() interface so that it works even if the prepared statement was not initially compiled using SQLITE_PREPARE_NORMALIZED. Enhance the ".trace" command in the CLI so that it is able to access the full scope of functionality provided by sqlite3_trace_v2() and in particular so that it is able to show normalized SQL output using the newly enhanced sqlite3_normalize_sql() interface. (check-in: 7da617e9 user: drh tags: trunk)
2018-12-04
21:16
When compiled with SQLITE_ENABLE_NORMALIZE, always have sqlite3_exec() enable the SQLITE_PREPARE_NORMALIZE flag. (Leaf check-in: 28643d83 user: mistachkin tags: execWithNormalize)
19:41
First attempt at making features work together. Only the most minimal testing so far. (check-in: fd707001 user: dan tags: begin-concurrent-wal2)
16:51
Add the "index_usage" utility program. (check-in: df954552 user: drh tags: trunk)
14:33
Performance improvement in sqlite3_step() by creating a new mTrace flag for the legacy xProfile pointer that is set by sqlite3_profile(). (check-in: e28584e8 user: drh tags: trunk)
13:51
Fix a problem with SQLITE_ENABLE_EXPENSIVE_ASSERT builds on this branch. (check-in: ddb4a6fb user: dan tags: begin-concurrent)
13:51
Small performance increase in sqlite3_step() for the common case where it returns SQLITE_ROW. (check-in: 89344826 user: drh tags: trunk)
01:18
Attempt to make the parser a little faster by storing the ON and USING clause in a single OnUsing object. (Leaf check-in: 6770ed08 user: drh tags: on-using-opt)
2018-12-03
23:57
Reduce the size of the parser tables generated by Lemon by splitting the yyRuleInfo structure into separate yyRuleInfoLhs and yyRuleInfoNRhs arrays. (check-in: 70fe8ec2 user: drh tags: trunk)
20:49
Merge the wal2 and begin-concurrent code. Both features work, but not at the same time. (check-in: b7281a1c user: dan tags: begin-concurrent-wal2)
20:38
Minor change to wal.c on this branch to make it more similar to trunk. (check-in: 6a7af3ea user: dan tags: begin-concurrent)
19:29
Cherrypick a couple of fixes from begin-concurrent-pnu into this branch. The differences between the two branches are now that this one does not have "PRAGMA noop_update" or the mutex-free PRNG. (check-in: a56506b9 user: dan tags: begin-concurrent)
18:24
Merge in all changes for release 3.26.0. (check-in: 85fd92c7 user: drh tags: begin-concurrent-pnu)
18:15
Bring up to date with version 3.26.0. (check-in: f0ddb358 user: drh tags: begin-concurrent)
18:13
Increase a timeout in test file walprotocol2.test. To account for unix builds without HAVE_USLEEP. (check-in: 480be916 user: dan tags: wal2)
17:40
Remove the unused sqlite3Fts5UnicodeNCat() function. (check-in: 7149dacf user: drh tags: trunk)
16:14
Add the "remove_diacritics=2" option to the unicode61 tokenizer in both FTS5 and FTS3/4. (check-in: 06177f3f user: dan tags: trunk)
14:58
Update the autoconf makefile for MSVC. (check-in: 675aba1f user: mistachkin tags: trunk)
01:58
Remove two lines of unnecessary code, for a very small performance increase and size decrease. (check-in: 15824ccd user: drh tags: trunk)
01:47
Fix a parser bug in the use of parentheses around table-valued functions. (check-in: 58a51123 user: drh tags: trunk)
2018-12-02
01:15
Omit a line of code that has no affect on the outcome. (check-in: 5d933aa6 user: drh tags: trunk)
2018-12-01
21:13
Very slightly smaller and faster. (check-in: 27798f17 user: drh tags: trunk)
20:14
Sync this branch with the latest trunk. (check-in: 7a44fa5a user: dan tags: wal2)
12:34
Version 3.26.0 (check-in: bf8c1b2b user: drh tags: trunk, release, version-3.26.0)
2018-11-30
20:59
Fix a typo in a comment. No changes to code. (check-in: 23684cb8 user: drh tags: trunk)
18:22
Merge the pre-3.26.0 fixes from trunk. (check-in: 2c76ce4f user: drh tags: apple-osx)
16:26
Merge the mutex-free PRNG change into this branch. (check-in: 81e626f4 user: dan tags: begin-concurrent-pnu)
2018-11-29
12:00
Fix the name of the trig function approximation in geopoly. No functional changes to the code. (check-in: 33576b12 user: drh tags: trunk)
2018-11-28
19:23
Fix a typo in a comment used to generate documentation. No changes to code. (check-in: 62360cea user: drh tags: trunk)
19:12
Update incrvacuum.test so that it works with builds that do not support mmap(). (check-in: 8eb62fd5 user: dan tags: trunk)
11:49
Update some test cases to account for SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: b53a9a3d user: dan tags: trunk)
11:09
Follow-up to [0bf0fd242b93c3bd30]: only reset the pager when adding a new codec, not when overwriting an existing codec. Also, improve a comment in the pcache1 subsystem. (check-in: 5c040fdb user: drh tags: trunk)
08:24
Changes to Makefile.in to allow testfixture to be built with SQLITE_USER_AUTHENTICATION. (check-in: 7b510f59 user: dan tags: trunk)
08:09
Remove -DSQLITE_USER_AUTHENTICATION from the "Unlock-Notify" configuration. Create a dedicated "User-Auth" configuration for testing this feature. (check-in: 8c41024f user: dan tags: trunk)
08:02
Fixes for SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 9bcdec85 user: dan tags: trunk)
01:45
Always enable SQLITE_ENABLE_DESERIALIZE for the MSVC makefile as this is necessary to get releasetest.tcl to work. (check-in: d362dedb user: drh tags: trunk)
2018-11-27
19:47
Fix a failing assert() in sqlite3ResetAllSchemasOfConnection(). (check-in: 0ea049f3 user: dan tags: trunk)
17:02
Improvements to two cases in pragma4.test. (check-in: 3c893d9b user: drh tags: trunk)
14:41
Remove the sqlite3PagerUseWal() routine which was made obsolete by the [81629ba91475938b6ad] change. (check-in: 4331b499 user: drh tags: trunk)
14:34
Add a simple test case for Lemon. Always include assert.h in the Lemon-generated parser. (check-in: 9c9c46dc user: drh tags: trunk)
14:03
Fix to the error handling logic in the Lemon parser template. This does not affect SQLite since SQLite does not use that part of the Lemon parser template. (check-in: c6dfc59e user: drh tags: trunk)
09:57
Add an "#ifndef SQLITE_DISABLE_FTS4_DEFERRED" block around function fts3EvalDeferredPhrase() in fts3 in order to silence a compiler warning. (check-in: 6f4b0d04 user: dan tags: trunk)
2018-11-26
23:35
Merge recent enhancements from trunk. (check-in: e8c20a88 user: drh tags: apple-osx)
18:09
Do not allow direct access to internal-use SQL functions such as sqlite_rename_column() and sqlite3_rename_table() except when the new SQLITE_TESTCTRL_INTERNAL_FUNCTIONS flag is set. (check-in: 6e133054 user: drh tags: trunk)
15:00
Minor comment enhancement in alter.c. No changes to code. (check-in: 12920bcb user: drh tags: trunk)
07:34
Merge latest begin-concurrent changes into this branch. (check-in: 76608f75 user: dan tags: begin-concurrent-pnu)
07:21
Merge latest trunk changes into this branch. (check-in: 28a615a2 user: dan tags: begin-concurrent)
2018-11-24
20:44
Fix a bug in the geopoly_ccw() function. Test cases in TH3. (check-in: 773c5c1d user: drh tags: trunk)
17:46
Make the winTruncate() method of the windows VFS be a no-op if there are outstanding references to the memory-mapped pages. Otherwise, memory might be deleted out from under those references when the file is remapped during the truncate operation. (check-in: ffce4aac user: drh tags: trunk)
16:07
Remove the unused mmapSizeActual field from the Windows sqlite3_file implementation. (check-in: 0e7aa622 user: drh tags: trunk)
2018-11-23
13:21
Make the winTruncate() method of the windows VFS be a no-op if there are outstanding references to the memory-mapped pages. Otherwise, memory might be deleted out from under those references when the file is remapped during the truncate operation. (Leaf check-in: 8576ccb4 user: drh tags: branch-3.25)
2018-11-22
19:10
Fix a problem reading from temp databases in SQLITE_DIRECT_OVERFLOW_READ builds. (check-in: 81629ba9 user: dan tags: trunk)
2018-11-21
14:27
Improvements to the ossfuzz.c fuzz-testing module so that it works with -DSQLITE_OMIT_PROGRESS_CALLBACK and with -DSQLITE_OMIT_INIT. (check-in: d343f7d6 user: drh tags: trunk)
2018-11-20
18:09
Fix problems in pragma.c causing some PRAGMA statements to test the wrong schema-cookie before proceeding, or to try to open cursors on the wrong database ("PRAGMA foreign_key_check" only). (check-in: 6982f52f user: dan tags: trunk)
16:02
Consolidate the two sqlite3SchemaToIndex() routines. (Leaf check-in: dfab7170 user: dan tags: reuse-schema1)
2018-11-19
20:41
Fix a problem with virtual tables in shared schemas. (check-in: 84be9220 user: dan tags: reuse-schema1)
2018-11-17
19:15
Fix another name resolution problem occurring when two or more attached databases use the same Schema object. (check-in: 5328f899 user: dan tags: reuse-schema1)
18:45
Merge latest trunk changes into this branch. (check-in: 9fdd1868 user: dan tags: reuse-schema1)
18:11
Fix further problems with the feature on this branch. (check-in: 6d7a7e5f user: dan tags: reuse-schema1)
14:59
Fix the regexp used to recognize libdl errors on OS-X. (check-in: 17400253 user: drh tags: trunk)
14:26
Fix harmless compiler warnings that appear with SQLITE_OMIT_EXPLAIN. (check-in: 5fff00b0 user: drh tags: trunk)
14:19
Remove a C++-style comment. (check-in: 645232f2 user: drh tags: trunk)
13:08
Fix a problem in test script e_fkey.test. (check-in: acfd0a05 user: dan tags: trunk)
2018-11-16
20:50
Fix a test case so that it works on windows. (check-in: 2d92d25f user: drh tags: trunk)
20:18
Add SQLITE_CONSTRAINT support to the xBestIndex methods on dbstat, sqlite_dbpage, and zipfile. (check-in: 5cd24e55 user: drh tags: trunk)
19:19
Update the explain virtual table to make use of SQLITE_CONSTRAINT. (check-in: b2d41ff7 user: drh tags: trunk)
17:04
Fix further REUSE_SCHEMA issues. (check-in: 9780829a user: dan tags: reuse-schema1)
16:04
Fix the JSON table-valued functions to make use of SQLITE_CONSTRAINT. (check-in: 3f34f4f5 user: drh tags: trunk)
15:41
Add an assert() to the generate_series virtual table to verify assumptions about the design. (check-in: cd13b499 user: drh tags: trunk)
15:08
Update the generate_series() table-valued function to make use of the new SQLITE_CONSTRAINT return from xBestIndex. (check-in: 4372ad64 user: drh tags: trunk)
14:36
In order to avoid exporting a symbol, use a macro instead of a function to replace sqlite3_complete() in the shell code when SQLITE_OMIT_COMPLETE is defined. (check-in: d584a0cb user: dan tags: trunk)
13:56
Enhance the xBestIndex interface of virtual table so that if the xBestIndex method returns SQLITE_CONSTRAINT then that particular combination of constraints is considered unusable and does not participate further in query planning. (check-in: 684013ce user: drh tags: trunk)
13:06
Fix comments and make magic numbers into #defines in the fsdir implementation. (check-in: c537c9c3 user: drh tags: trunk)
08:36
Fix a problem with virtual table "fsdir" and some join queries. (check-in: 7fffcee0 user: dan tags: trunk)
01:42
Improvements to the CSV virtual table. (check-in: 0406ecbb user: drh tags: trunk)
2018-11-15
21:20
Fix some problems with the feature on this branch. Many problems remain. (check-in: 31b6aee7 user: dan tags: reuse-schema1)
19:12
Fix typos in the previous check-in. (check-in: 9b37bbf5 user: mistachkin tags: trunk)
16:56
Include geopoly in the compiler-warning script. (check-in: 3d947e1e user: drh tags: trunk)
13:51
New fuzztest cases. (check-in: e8316ba4 user: drh tags: trunk)
2018-11-13
20:21
Fix a potential buffer overread in the dbstat virtual table when processing a corrupt database file. (check-in: a62e6b59 user: drh tags: trunk)
19:51
Turn on ASAN for the dbfuzz2 utility. Fix a buffer overread associated with sqlite3_deserialize(). (check-in: 4e38f27b user: drh tags: trunk)
2018-11-12
15:20
New hyperlinks in comments used to generate documentation. No changes to code. (check-in: f9755f81 user: drh tags: trunk)
13:20
Fix a use-after-free problem in the fts5vocab virtual table. (check-in: ac69d169 user: dan tags: trunk)
2018-11-10
20:07
Merge the read-only shadow table and defensive mode enhancments from trunk. (check-in: 977fc44e user: drh tags: apple-osx)
18:23
Add support for read-only shadow tables on virtual tables. Added the SQLITE_DEFAULT_DEFENSIVE compile-time option that can put SQLite in defensive mode by default. (check-in: 9c685171 user: drh tags: trunk)
17:37
Add the "changesetfuzz" program. For fuzzing changeset blobs. (check-in: 2bae0e7c user: dan tags: trunk)
17:36
Merge latest trunk changes. (Closed-Leaf check-in: b6d549c9 user: dan tags: changesetfuzz)
04:14
Remove a NEVER() that is reachable after all. Reverts checkin [9292d3351c40339]. (Closed-Leaf check-in: c5dc7fb8 user: drh tags: read-only-shadow)
03:47
Merge fixes from trunk. (check-in: bf88efce user: drh tags: read-only-shadow)
2018-11-09
23:45
Merge fixes from trunk. (check-in: e3e9b85e user: drh tags: apple-osx)
23:41
Fix invalid use of unprotected sqlite3_value objects in the sqldiff utility, when using the --changeset option. (check-in: a8d65214 user: drh tags: trunk)
20:04
When a table is renamed using "ALTER TABLE RENAME TO", update any REFERENCES clauses that refer to the table, unless "PRAGMA legacy_alter_table" is true and "PRAGMA foreign_keys" is set to false (i.e. so that when "PRAGMA legacy_alter_table" is set behaviour is still compatible with versions 3.24 and earlier). (check-in: ae9638e9 user: dan tags: trunk)
18:44
Merge latest trunk changes with this branch. (check-in: ae88f8e1 user: dan tags: reuse-schema)
14:17
Fix for ticket [787fa716be3a7f650cac] (check-in: 531eca61 user: drh tags: trunk)
00:02
Disable the use of coroutines for subqueries within a query that is the RHS of an IN operator, as the IN operator might be evaluated more than once. Possible fix for [787fa716be3a7f65], unless we can come up with something better. Later: Counter-example found. (Closed-Leaf check-in: 8d663bfa user: drh tags: tkt787fa716-deadend)
2018-11-08
22:53
In the treeview.c module, break out the display of SrcList into a separate subroutine, so that it can be invoked while debugging. (check-in: 8c74065f user: drh tags: trunk)
17:32
Improved documentation for SQLITE_DBCONFIG_DEFENSIVE. Add a NEVER() macro on an unreachable branch. (check-in: 9292d335 user: drh tags: read-only-shadow)
14:59
Add tests and a fix for program "changesetfuzz". (check-in: 09b90db5 user: dan tags: changesetfuzz)
2018-11-07
20:13
Merge latest trunk changes into this branch. (check-in: 53cd91d0 user: dan tags: changesetfuzz)
20:07
Fix minor issues in the changesetfuzz program. (check-in: 5c7f0240 user: dan tags: changesetfuzz)
17:52
Update the "changesetfuzz" program to work with patchsets as well as changesets. (check-in: 75b00fbe user: dan tags: changesetfuzz)
16:46
Performance improvement in subroutine that decides whether or not a table is read-only. (check-in: 6e4968b0 user: drh tags: read-only-shadow)
16:12
Merge the onefile permutation fix from trunk. (check-in: e543bff8 user: drh tags: read-only-shadow)
14:41
More test-case adjustments for defensive mode. (check-in: 911e8a17 user: drh tags: read-only-shadow)
14:39
Fix a problem with the handling of SQLITE_FCNTL_PRAGMA in the test_onefile.c demo. (check-in: 13e21b7d user: dan tags: trunk)
13:41
Merge the permutations fix from trunk. (check-in: b753d849 user: drh tags: read-only-shadow)
11:56
Partially revert [3e1a2f661], as some test scripts require separate $presql and $dbconfig variables. (check-in: cbf85284 user: dan tags: trunk)
02:17
Add the SQLITE_DEFAULT_DEFENSIVE compile-time option. Fix up test cases so that they work with DEFENSIVE enabled. (check-in: 3212733c user: drh tags: read-only-shadow)
2018-11-06
20:08
Update the changesetfuzz program to fuzz changeset schemas as well as data. (check-in: 141a93c8 user: dan tags: changesetfuzz)
19:26
Enable DEFENSIVE mode by default for tests. This requires lots of case of turning DEFENSIVE off in order to dodgy things to the database for testing purposes. No all of those cases are yet handled, so "make test" does not run to completion. (check-in: a1d6c671 user: drh tags: read-only-shadow)
15:57
Turn on defensive mode for running test scripts. Does not yet work. (check-in: 1c1d24ed user: drh tags: read-only-shadow)
14:03
Only allow shadow table to be written from within a recursive SQL call. Omit the SQLITE_PREPARE_SHADOW flag. Some tests are failing because the tests depend on being able to write to shadow tables. (check-in: d890c658 user: drh tags: read-only-shadow)
13:37
Add enforcement of read-only on shadow tables. This does not currently work since some virtual tables are attempting to update shadow tables using sqlite3_exec(). (check-in: f79b47c9 user: drh tags: read-only-shadow)
2018-11-05
23:01
Initial code to make shadow tables read-only to ordinary SQL. The now xShadowName method is added to the sqlite3_module object and is used to identify potential shadow tables. The SQLITE_PREPARE_SHADOW argument to sqlite3_prepare_v3() is defined. It is designed to permit writing to shadow tables, but is currently an unused placeholder. (check-in: 31942b3d user: drh tags: read-only-shadow)
20:37
Version 3.25.3 (check-in: 89e099fb user: drh tags: release, version-3.25.3, branch-3.25)
20:37
Add preliminary version of "changesetfuzz" program. For fuzzing changeset data without creating corrupt changesets. (check-in: 81ac8745 user: dan tags: changesetfuzz)
19:37
Add the SQLITE_DBCONFIG_DEFENSIVE flag. (check-in: 11d98414 user: drh tags: trunk)
16:38
Eponymous virtual tables appear to exist in all schemas. This is an alternative and improved fix to the eponymous virtual table in trigger problem that was previously addressed by checkin [1fa74930ab56171e]. (check-in: b8d35c4a user: drh tags: trunk)
13:53
Merge recent trunk enhancements. (check-in: 62acf7a0 user: drh tags: apple-osx)
13:48
Disable the IS NOT NULL optimization when the IS NOT NULL operator is part of the ON clause of a LEFT JOIN. Fix for ticket [65eb38f6e46de8c75e188a17ec]. (check-in: 8d09ce5d user: drh tags: branch-3.25)
13:43
Add extra defenses against strategically corrupt databases to fts3/4. (check-in: 940f2adc user: drh tags: branch-3.25)
13:37
Increase the version number to 3.25.3. (check-in: 1250ab8f user: drh tags: branch-3.25)
13:35
Fix a assert() in the query planner that can arise when doing row-value operations on a PRIMARY KEY that contains duplicate columns. Ticket [1a84668dcfdebaf12415d]. (check-in: 1309c84a user: drh tags: branch-3.25)
07:53
Disable the IS NOT NULL optimization when the IS NOT NULL operator is part of the ON clause of a LEFT JOIN. Fix for ticket [65eb38f6e46de8c75e188a17ec]. (check-in: af39661e user: drh tags: trunk)
2018-11-03
17:31
Correct the internal logic for SQLITE_DBCONFIG_DEFENSIVE. (Closed-Leaf check-in: 76094345 user: drh tags: dbconfig-defensive)
16:51
Add extra defenses against strategically corrupt databases to fts3/4. (check-in: d44318f5 user: dan tags: trunk)
16:09
Add the SQLITE_DBCONFIG_DEFENSIVE flag. (check-in: af3f29d4 user: drh tags: dbconfig-defensive)
13:11
Fix a assert() in the query planner that can arise when doing row-value operations on a PRIMARY KEY that contains duplicate columns. Ticket [1a84668dcfdebaf12415d]. (check-in: dcb8c735 user: drh tags: trunk)
2018-11-02
17:38
Enhance triggers so that they can use table-valued-functions that exist in schemas outside of the schema in which the trigger is defined. (check-in: 1fa74930 user: drh tags: trunk)
2018-10-31
20:52
Deploy the sqlite3Strlen30NN() function (argument guaranteed to be non-NULL) for a small performance improvement. (check-in: 4a6ad519 user: drh tags: trunk)
19:01
Add support for the SQLITE_PREPARE_NORMALIZED flag and the sqlite3_normalized_sql() when compiling with SQLITE_ENABLE_NORMALIZE. Also remove unnecessary whitespace from Makefiles. (check-in: 790ea39a user: drh tags: trunk)
18:24
Tweaks to the test_intarray documentation and tests. (check-in: 7107f0da user: drh tags: trunk)
01:26
Merge fixes from trunk, especially rebustness against corrupt database files. (check-in: 4b370c74 user: drh tags: apple-osx)
01:12
Merge fuzz test cases computed by dbfuzz2. (check-in: e0d30c18 user: drh tags: trunk)
01:04
Improved corrupt database detection in the relocatePage() routine of the b-tree module. (check-in: d5787333 user: drh tags: trunk)
2018-10-30
23:45
Add new fuzzer cases generated by dbfuzz2. (Closed-Leaf check-in: 79fdad8b user: drh tags: dbfuzz2-cases)
19:14
Update comments in sqlite3session.c to describe the format of "rebase blobs", as well as changesets and patchsets. (check-in: bf93f7b5 user: dan tags: trunk)
16:25
Split the SQLITE_WriteSchema flag in two flags, WriteSchema and SQLITE_NoSchemaError. Set only WriteSchema on a VACUUM to avoid problems when trying to vacuum a corrupt database. With this change, the size of the flags field on sqlite3 must grow from 32 to 64 bytes. (check-in: 4f987810 user: drh tags: trunk)
15:31
Modify the CLI so that the --deserialize option is only available if it is compiled with SQLITE_ENABLE_DESERIALIZE. DESERIALIZE is now off by default for the main.mk makefile, but on for Makefile.in and Makefile.msc. (check-in: 90b2a684 user: drh tags: trunk)
15:20
Improvements to the -fsanitize=fuzzer based database file fuzzer. (Cherrypick from the rubust-against-damaged-db branch.) (check-in: 3cc01a0e user: drh tags: trunk)
14:36
In the CLI, when opening a file that begins with the normal SQLite prefix, open the file as a normal database even if it has a ZIP for AppendVFS record at the end. (check-in: 7989bbda user: drh tags: trunk)
13:19
Enable sqlite3_deserialize() in the CLI. The --deserialize option associated with opening a new database cause the database file to be read into memory and accessed using the sqlite3_deserialize() API. This simplifies running tests on a database without risk of modifying the file on disk. (check-in: 5e0129ee user: drh tags: trunk)
00:06
Improvements to the -fsanitize=fuzzer based database file fuzzer. (Closed-Leaf check-in: 585c94db user: drh tags: robust-against-damaged-db)
00:06
In the VACUUM command, defer setting writable_schema until after it has been determined that the schema is not corrupt. (check-in: 3afec260 user: drh tags: robust-against-damaged-db)
2018-10-29
21:01
Fix a potential assertion fault that can occur while trying to DROP a table from a corrupted database file. (check-in: 147a9429 user: drh tags: trunk)
18:33
Fix minor memory leak in the dbstat extension that can occur following an attempt to analyze a corrupt database file. (check-in: cb874fd8 user: drh tags: trunk)
17:53
Add the sqlite3_normalized_sql() API. (Closed-Leaf check-in: 592b66e8 user: mistachkin tags: normalized_sql)
17:08
In the sessions module, avoid collecting rebase data if the user has not requested it. (check-in: de72a773 user: dan tags: trunk)
16:07
Harden the dbstat extension against corrupt database files. (check-in: a0d47f25 user: drh tags: trunk)
2018-10-27
21:06
Improvements to the dbfuzz2.c test module. (check-in: d60eff49 user: drh tags: trunk)
16:02
Add an entry in Makefile.in to build dbfuzz2 using clang-6.0 with -fsanitize=fuzzer,undefined. (check-in: a4a083ed user: drh tags: trunk)
00:47
Initial code for a fuzzing tool on database file that works with the -fsanitize=fuzzer option of clang. (check-in: 90d12094 user: drh tags: trunk)
2018-10-26
17:05
Add the sqlite3session_config() interface. For configuring global parameters belonging to the sessions module. (check-in: 1e69f3ff user: dan tags: trunk)
15:36
Prevent an == constraint specified using the table-valued-function argument syntax from being used to optimize any scan not related to the virtual table for which it was specified as an argument. (check-in: 4d46685f user: dan tags: trunk)
2018-10-25
16:58
Merge bug fixes from trunk. (check-in: 1e973f65 user: drh tags: apple-osx)
15:25
In the WHERE-constraint propagation optimization, if there are duplicate constraint, make sure only one of them propagates. Proposed fix for ticket [cf5ed20fc8621b165]. (check-in: caebf879 user: drh tags: branch-3.25)
14:15
In the WHERE-constraint propagation optimization, if there are duplicate constraint, make sure only one of them propagates. Proposed fix for ticket [cf5ed20fc8621b165]. (check-in: 5d5b596f user: drh tags: trunk)
11:55
Speed up xAccess() calls made on an RBU VFS when there are lots of open connections. Cherrypick of [310b4b65]. (check-in: fda8fdb0 user: dan tags: branch-3.22)
2018-10-24
23:55
Add the ENABLE_GEOPOLY case to the compile_options pragma. (check-in: de940296 user: drh tags: trunk)
2018-10-23
13:48
Fix a problem with using window functions in compound (UNION, INTERSECT etc.) queries. (check-in: 059ff53a user: dan tags: trunk)
2018-10-20
13:48
Add the sqlite3changeset_start_v2() - a new version of _start() that accepts a flags parameter - and a streaming equivalent to the sessions module. Also add the SQLITE_CHANGESETSTART_INVERT flag, used with start_v2() to invert a changeset while iterating through it. (check-in: cbedcb9a user: dan tags: trunk)
2018-10-18
15:17
Take steps to avoid a potential integer overflow in sessionBufferGrow(). (check-in: f7affa2e user: dan tags: trunk)
14:59
Add the SQLITE_CHANGESETAPPLY_INVERT flag to sessions. For inverting and applying a changeset in a single step. (check-in: d4b6406e user: dan tags: trunk)
2018-10-12
22:02
Fix the SQLITE_ENABLE_APPLE_SPI compile-time option. (check-in: 6cb537bd user: drh tags: apple-osx)
15:01
Test case modifications to support SEE. (check-in: 02b6f8f2 user: drh tags: trunk)
2018-10-11
18:45
Fix issues with the new textkey pragma from the previous check-in. (check-in: d1008b07 user: drh tags: apple-osx)
18:41
Add the textkey and textrekey pragmas. (check-in: f03164d4 user: drh tags: trunk)
18:28
Add the textkey and textrekey pragmas. (check-in: f829099d user: drh tags: apple-osx)
17:05
Merge compiler warning fixes and the codec enhancement from trunk. (check-in: f9fa58e1 user: drh tags: apple-osx)
16:53
Fix harmless compiler warnings in the CLI. (check-in: 1916d291 user: drh tags: trunk)
16:38
Always reset the pager before changing the codec. (check-in: 0bf0fd24 user: drh tags: trunk)
16:28
Fix a merge problem in main.mk (check-in: 9a549359 user: drh tags: apple-osx)
14:07
Remove surplus code in geopoly.c that seems to have come from a bad merge. (check-in: c486a63c user: drh tags: apple-osx)
13:57
Merge enhancements from trunk. (check-in: 9e10d88b user: drh tags: apple-osx)
13:51
On the first connection to a WAL-mode database that was not cleanly shut down and contains a left-over -shm file, truncate the -shm file to 3 bytes instead of to 0 bytes. Avoiding a truncation to 0 means that system monitoring tools can better detect if a process illegitimately tries to truncate a -shm file. Such a rogue process might think it is being helpful by cleaning up old files, but there is a race condition that can cause damage to the database. (check-in: 90cf32cd user: drh tags: trunk)
10:37
In the CLI, fix a file descriptor leak following OOM and a missing va_end() call. (check-in: ec36d15a user: drh tags: trunk)
02:39
In the unix VFS, fix the heap shm allocator (used for unix-excl) so that it works even on systems where the page size is larger than 32KB. (check-in: 7fbb083c user: drh tags: trunk)
2018-10-10
18:56
In the CLI, allow the SQLITE_HISTORY environment variable, if it exists, to specify an alternative file in which to store the shell edit history. (check-in: 696e82f7 user: drh tags: trunk)
01:01
Fix the build for Macs. (check-in: 6a1d937d user: drh tags: apple-osx)
2018-10-09
22:58
Merge enhancements from trunk. (check-in: 1b60e7a9 user: drh tags: apple-osx)
22:50
Merge changes for the 3.25.0 release. (check-in: ddf6a54e user: drh tags: apple-osx)
2018-10-08
23:29
Add the ability to open a database connection in -reuseschema mode in the CLI. Adjust memory allocation accounting so that a shared schema is allocated across each database sharing it. (check-in: 3869b210 user: drh tags: reuse-schema)
20:57
Fix a problem with using virtual tables via reuse-schema connections. (check-in: e5897daf user: dan tags: reuse-schema)
20:37
Merge fixes from trunk. (check-in: 9c8255a1 user: drh tags: reuse-schema)
20:04
Fix an issue with the new memstat.c extension. (check-in: ce6e80b1 user: drh tags: trunk)
18:58
Merge latest trunk changes into this branch. (check-in: 2ac72114 user: dan tags: reuse-schema)
18:55
Replace the new geopoly_reverse() function with geopoly_ccw(). The geopoly_ccw() function only reverses the vertex order if doing so is necessary to get the correct right-hand winding rule on the polygon. (check-in: 07506694 user: drh tags: trunk)
12:58
Add the geopoly_reverse() function to the GeoPoly extension. (check-in: 690dd18a user: drh tags: trunk)
2018-10-06
14:38
Fix the ".help -all" option in the command-line shell. (check-in: aac8f1df user: drh tags: trunk)
14:33
Ensure each ALTER TABLE statement makes just a single SQLITE_ALTER_TABLE call to the authorizer function. (Leaf check-in: dac28547 user: dan tags: alter-auth-callbacks)
13:46
Add test cases and assert() statements to ensure that the authorizer is being called as expected from within ALTER TABLE. (check-in: ff10d2c7 user: dan tags: trunk)
2018-10-05
20:09
When the left-hand side of a WHERE clause contraint is a UNIQUE column, and that term of the WHERE clause is not used for indexing, assume that the term reduces the number of output rows by half. This is one proposed fix for ticket [e8b674241947eb3ba4] (Leaf check-in: 5c243eec user: drh tags: unique-constraint-weights)
15:10
Changes to geopoly to silience false-positive warnings coming out of clang. (check-in: 11d9015f user: drh tags: trunk)
2018-10-04
18:17
The 0x8000 optimization flag associated with SQLITE_TESTCTRL_OPTIMIZATIONS causes a large penalty (200) to be added to all sorting costs, which encourages the query planner avoid using the sorter. This flag can be used in experiments to help come up with a more accurate estimate of the true cost of sorting. (Leaf check-in: 857a1b01 user: drh tags: query-planner-debug)
2018-10-03
18:05
Add an ALWAYS on an unreachable branch in the ALTER TABLE logic. (check-in: ebcd4523 user: drh tags: trunk)
11:13
Change a type in shell.c.in from "int" to "sqlite3_int64" in order to avoid a compiler warning and possible integer overflow. (check-in: bf0a6634 user: dan tags: trunk)
2018-10-02
20:16
Add an additional assert() verifying mutex invariants on the unixShmSystemLock() routine in the unix VFS. (check-in: cb151106 user: drh tags: trunk)
19:58
Additional field name changes and commit fixes associated with shared-memory locking in the unix VFS, to improve maintainability. No logic changes. (check-in: 9280774a user: drh tags: trunk)
19:36
Fix comments and refactor some names associated with shared-memory locking in the Unix VFS. No logical changes. (check-in: 3e9f1635 user: drh tags: trunk)
2018-10-01
21:41
Add the "PRAGMA table_xinfo" command that works like table_info but also shows hidden columns in virtual tables and adds the "hidden" boolean column. (check-in: defa0515 user: drh tags: trunk)
21:36
Test case for PRAGMA table_xinfo. (Closed-Leaf check-in: 7694b9bc user: drh tags: pragma-table-vinfo)
21:26
Change the name of the pragma to PRAGMA table_xinfo. Improve the mkpragmatab.tcl script to reuse column names where appropriate. (check-in: 2fdd0689 user: drh tags: pragma-table-vinfo)
18:28
Add the extra "hidden" column to the end of the PRAGMA table_vinfo output. (check-in: cf1b7613 user: drh tags: pragma-table-vinfo)
17:33
Speed up xAccess() calls made on an RBU VFS when there are lots of open connections. (check-in: 310b4b65 user: dan tags: trunk)
17:15
Bring the PRAGMA table_vinfo statement up to date with trunk. (check-in: 6f606f99 user: drh tags: pragma-table-vinfo)
14:05
Fix a potential crash that can occur while reading an index from a corrupt database file. The corruption is a record-header-size that is larger than 0x7fffffff. Problem detected by OSSFuzz against GDAL and reported to us (with a suggested fix) by Even Rouault. The test case is in TH3. (check-in: 5d291658 user: drh tags: branch-3.25)
13:54
Fix a potential crash that can occur while reading an index from a corrupt database file. The corruption is a record-header-size that is larger than 0x7fffffff. Problem detected by OSSFuzz against GDAL and reported to us (with a suggested fix) by Even Rouault. The test case is in TH3. (check-in: 8ac2cdda user: drh tags: trunk)
11:00
Ensure that the OP_VColumn opcode does set sqlite3_vtab_nochange() unless the OPFLAG_NOCHNG bit is set in P5. Fix for ticket [69d642332d25aa3b7315a6d385] (check-in: 31ac8dba user: drh tags: branch-3.25)
07:04
Fix a problem with ALTER TABLE commands when the schema features an INSTEAD of trigger that uses NEW.* or OLD.*. (check-in: c52f457e user: dan tags: trunk)
2018-09-29
19:38
Add the PRAGMA table_vinfo command (with an extra "v" before "info") that works like PRAGMA table_info (without the "v") except that it also shows hidden columns on virtual tables. (check-in: 8bcd1a59 user: drh tags: pragma-table-vinfo)
2018-09-28
23:53
Fix test cases so that they work with ICU. (check-in: d04b2013 user: drh tags: trunk)
21:11
Merge latest begin-concurrent changes into this branch. (check-in: 6f3dd980 user: dan tags: begin-concurrent-pnu)
20:58
Merge latest trunk into this branch. (check-in: 86750c92 user: dan tags: begin-concurrent)
20:46
Have sqlite3changegroup_output_strm() call its output function more regularly. (check-in: 8467c31a user: dan tags: trunk)
18:51
Fix a bug in the sqlite_memstat virtual table that was causing it to report the amount of memory used as zero bytes. (check-in: 8a758a87 user: drh tags: trunk)
14:01
Add the geopoly_regular(X,Y,R,N) function to the geopoly extension. (check-in: 4505bbae user: drh tags: trunk)
13:18
Make most geopoly functions pure. (check-in: 944e167a user: drh tags: trunk)
00:16
Rig geopoly to use sqlite3AtoF() if it is available, as that routine is much faster than atof(). (check-in: 470c6c07 user: drh tags: trunk)
2018-09-27
23:57
Small performance optimization in the JSON parser of Geopoly. (check-in: fb520e71 user: drh tags: trunk)
20:37
Enhance the GeoPOLY extension so that it always stores its polygons in the binary format, which is faster and more compact. (check-in: dc35f7b1 user: drh tags: trunk)
20:20
Ensure that the OP_VColumn opcode does set sqlite3_vtab_nochange() unless the OPFLAG_NOCHNG bit is set in P5. Fix for ticket [69d642332d25aa3b7315a6d385] (check-in: 322ab1fc user: drh tags: trunk)
17:33
Another minor tweak to memstat.c so that it may be built against older versions of SQLite. (check-in: 4c1fed60 user: dan tags: trunk)
17:15
Modify the memstat virtual table so that it works with SQLite version 3.9.2. (check-in: 7171d8ae user: drh tags: trunk)
17:03
Add the sqlite_memstat extension - an eponymous virtual table that shows memory usages statistics for SQLite. (check-in: 954ef61f user: drh tags: trunk)
16:57
Enhancements to sqlite_memstat: (1) Add an extra "schema" column to show the schema name for ZIPVFS stats. (2) Only show ZIPVFS stats to schema that use ZIPVFS (3) Put a NULL in unused columns of the output. (Closed-Leaf check-in: 9351135b user: drh tags: memstat-vtab)
15:45
Add initial ZIPVFS support for the "main" database to the sqlite_memstat virtual table. (check-in: 9cd27350 user: drh tags: memstat-vtab)
15:21
Initial prototype of a eponymous virtual table that accesses sqlite3_status64() and sqlite3_db_status(). (check-in: 0b44e1f6 user: drh tags: memstat-vtab)
14:24
Minor enhancement to the pager so that it remembers if the underlying database files is immutable. (Leaf check-in: 64db614e user: drh tags: immutable-pager)
13:10
Disallow the use of window functions in the recursive part of a recursive CTE. Fix for ticket [e8275b415a2f03bee]. (check-in: b2849570 user: drh tags: branch-3.25)
12:14
Disallow the use of window functions in the recursive part of a recursive CTE. Fix for ticket [e8275b415a2f03bee]. (check-in: 7fc29944 user: dan tags: trunk)
00:04
Minor simplification: In OP_ParseSchema, read the p1 register once. (check-in: bd250533 user: mistachkin tags: trunk)
2018-09-26
18:02
Further improvements to the ".help" command in the CLI. (check-in: edc3d18e user: drh tags: trunk)
16:53
Begin revamping the ".help" command in the command-line shell so that it can accept an argument and will do a search for commands that match that argument. (check-in: 209afb8d user: drh tags: trunk)
16:05
Tweak spellfix.c so that if SQLITE_SPELLFIX_5BYTE_MAPPINGS is defined at compile time the Transliteration structure has space for 5 byte (instead of 4 byte) mappings. (check-in: cbaf5b6c user: dan tags: trunk)
03:43
Fix typos in the header comment for the sha1 and sha3 hash extensions in the ext/misc folder. (check-in: 4ed9d83a user: drh tags: trunk)
2018-09-25
19:08
Version 3.25.2 (check-in: fb90e718 user: drh tags: release, version-3.25.2, branch-3.25)
13:52
Fix a problem in releasetest.tcl causing configuration "Fast-One" to fail. (check-in: 32ac0014 user: dan tags: branch-3.25)
13:51
Fix a problem in releasetest.tcl causing configuration "Fast-One" to fail. (check-in: 42e04fef user: dan tags: trunk)
01:38
Bump the version number to 3.25.2. (check-in: 996d74f5 user: drh tags: branch-3.25)
01:35
Fix a compilation issue in the "userauth" extension. Also fix a few test script errors that occur with SQLITE_USER_AUTHENTICATION=1 builds. (check-in: e7db5f59 user: drh tags: branch-3.25)
01:17
Fix a problem building on Android with SQLITE_ENABLE_BATCH_ATOMIC_WRITE set. (check-in: b9ffa77c user: drh tags: branch-3.25)
2018-09-24
21:07
Avoid incrementing the SQLITE_LOOKASIDE_MISS_SIZE stat before sqlite3_open() returns. Fix test script problem in lookaside.test. (check-in: 3bd94e43 user: drh tags: branch-3.25)
20:50
Fix missing space in 'configure.ac' reported on the mailing list. (check-in: 4407e15a user: drh tags: branch-3.25)
20:48
Add the "PRAGMA legacy_alter_table=ON" command to enable the pre-3.25.0 behavior of ALTER TABLE that does not modify the bodies of triggers or views or the WHERE clause of a partial index. Enable the legacy behavior by default when running the xRename method of virtual tables. (check-in: 31dc8b19 user: drh tags: branch-3.25)
19:41
Allow a writable virtual table to have a schema with an INTEGER PRIMARY KEY and WITHOUT ROWID. This fixes ticket [f25d5ceebe1d710ff61a571e395356869d8272ef]. Test case in TH3. (check-in: 3139af99 user: drh tags: branch-3.25)
19:32
Fix a faulty assert() in the validation logic for the LEFT JOIN strength reduction optimization. Problem found by OSSFuzz. (check-in: 8694c3d5 user: drh tags: branch-3.25)
19:21
Fix the "sqlite3" command in the TCL interface so that it correctly returns an error if invoked with no arguments. (check-in: 8a82fcf0 user: drh tags: branch-3.25)
18:29
Fix a problem with views that use window functions as part of complex expressions. (check-in: 1c0ecbbd user: drh tags: branch-3.25)
15:39
Slightly smaller and faster alternative to [507d892c3a40a0bacbd47] that fixes a problem with views that use window function as part of complex expressions. (check-in: d7c816ae user: drh tags: trunk)
14:51
Fix a problem with views that use window functions as part of complex expressions. (check-in: 507d892c user: dan tags: trunk)
14:10
Allow a writable virtual table to have a schema with an INTEGER PRIMARY KEY and WITHOUT ROWID. This fixes ticket [f25d5ceebe1d710ff61a571e395356869d8272ef]. Test case in TH3. (check-in: 5a38d928 user: drh tags: trunk)
12:37
Use compile-time options SQLITE_QUERY_PLANNER_LIMIT and SQLITE_QUERY_PLANNER_LIMIT_INCR to control the value for WhereLoopBuilder.iPlanLimit, rather than embedding magic numbers in the code. (check-in: 903e5018 user: drh tags: trunk)
10:47
Increase the initial value of WhereLoopBuilder.iPlanLimit to 20K. Issue a warning if the iPlanLimit reaches zero. (check-in: 3dd35f51 user: drh tags: trunk)
2018-09-23
02:01
Fix a faulty assert() in the validation logic for the LEFT JOIN strength reduction optimization. Problem found by OSSFuzz. (check-in: 2fd62fcc user: drh tags: trunk)
2018-09-22
15:05
Enhance WhereLoopBuilder.iPlanLimit to handle a case involving the OR optimization discovered overnight by OSSFuzz. (check-in: 7b59930a user: drh tags: trunk)
2018-09-21
23:41
Fix harmless compiler warning when compiled with SQLITE_OMIT_AUTHORIZATION. (check-in: 50f2fa19 user: mistachkin tags: trunk)
19:06
Comment typo fixed. No code changes. (check-in: 7e68cdab user: drh tags: trunk)
18:43
Put a limit counter on the query planner that restricts the number of index+constraint options that can be considered for each table in a join. This prevents certain pathological queries from taking up too much time in the query planner. (check-in: 8690b5a0 user: drh tags: trunk)
13:07
Optimization to the OP_MakeRecord opcode makes speed-check.sh run about 1.1 million cycles faster, and results in a slightly smaller library. (check-in: d10e6362 user: drh tags: trunk)
2018-09-20
20:43
Minor code simplification. (check-in: 22ae8a52 user: drh tags: trunk)
20:15
Add the "PRAGMA legacy_alter_table=ON" command to enable the pre-3.25.0 behavior of ALTER TABLE that does not modify the bodies of triggers or views or the WHERE clause of a partial index. Enable the legacy behavior by default when running the xRename method of virtual tables. (check-in: 7edd26ed user: drh tags: trunk)
19:02
Combine the Expr.pTab and Expr.pWin fields into a union named "y". Add a new EP_WinFunc property that is only true if Expr.y.pWin is a valid pointer. This reduces the size of the Expr object by 8 bytes, reduces the overall amount of code, and shaves over 1 million cycles off of the speed test. (check-in: ad130bb8 user: drh tags: trunk)
17:21
By default, make all "ALTER TABLE RENAME" statements executed within a virtual table xRename() method exhibit the legacy behaviour. (Closed-Leaf check-in: 71947337 user: dan tags: legacy-alter-table)
08:28
Add a PRAGMA that restores the legacy ALTER TABLE RENAME TO behaviour. (check-in: 5acad2e9 user: dan tags: legacy-alter-table)
2018-09-19
20:14
Reduce the size of Expr to 64-bytes. This works somewhat, but there are test failures. More importantly, the size reduction from 80- to 64-bytes has not lowered the schema memory usage, but it has made the code a little bigger and a little slower. So the initial evidence is that this Expr refactoring experiment is not working... (Leaf check-in: 24b0f66a user: drh tags: expr-simplify)
18:17
A minor code simplification, saved in a branch for future reference. (Leaf check-in: 5e458f4a user: drh tags: minor-altertab-simplification)
17:24
Fix an issue in virtual table handling associated with the new Expr.x.pRight field. (check-in: 8487f84a user: drh tags: expr-simplify)
17:09
Fix a compilation issue in the "userauth" extension. Also fix a few test script errors that occur with SQLITE_USER_AUTHENTICATION=1 builds. (check-in: 221f3f57 user: dan tags: trunk)
16:35
Make sure Expr.eX changes back to EX_None after Expr.x.pRight is set to NULL due to an OOM. (check-in: e4129cd3 user: drh tags: expr-simplify)
15:08
Fix the "sqlite3" command in the TCL interface so that it correctly returns an error if invoked with no arguments. (check-in: 2034fa80 user: drh tags: trunk)
14:54
Reduce the size of Expr from 80 to 72 bytes moving the pRight field inside the "x" union. This is an incremental check-in that still has issues. (check-in: 147c61a6 user: drh tags: expr-simplify)
11:59
Make sure temporary Expr objects are fully initialized prior to sending them into sqlite3ExprCodeTemp(). (check-in: de02a1d9 user: drh tags: expr-simplify)
2018-09-18
21:35
In the Expr object, the Expr.eX field determines what value is stored in the Expr.x union. This mostly works, but there are issues identified by valgrind. (check-in: 8849a463 user: drh tags: expr-simplify)
20:20
Version 3.25.1 (check-in: 2ac9003d user: drh tags: release, version-3.25.1, branch-3.25)
19:40
Fix a problem building on Android with SQLITE_ENABLE_BATCH_ATOMIC_WRITE set. (check-in: e41e50fe user: dan tags: trunk)
18:08
Merge all recent trunk enhancements. (check-in: 655f0654 user: drh tags: expr-simplify)
17:50
Avoid incrementing the SQLITE_LOOKASIDE_MISS_SIZE stat before sqlite3_open() returns. Fix test script problem in lookaside.test. (check-in: e461cb28 user: dan tags: trunk)
17:00
Enhance tester.tcl so that when "--malloctrace=1" is specified, the test generates self-contained Tcl scripts that present GUIs instead of *.sql files that require a separate program to interpret. (check-in: de2e3cbd user: dan tags: trunk)
16:06
Minor improvements to the permutations.test script. Most notably, a command like "permutations.test alter%" now runs all test scripts with names that match the LIKE pattern "alter%". Or, say, "permutations wal alter%" to run all alter% tests in wal mode. (check-in: 3e1a2f66 user: dan tags: trunk)
2018-09-17
20:47
Further optimizations to the UPDATE logic to avoid making changes to partial indexes if none of the columns mentioned in the WHERE clause are modified by the UPDATE. (check-in: d1365a5b user: drh tags: trunk)
15:25
Disable the ORDER BY LIMIT optimization in queries using window functions. This fixes a problem that was introduced by check-in [206720129ed2fa8875a286] which attempted to fix ticket [9936b2fa443fec03ff25f9]. This changes is a fix for the follow-in tocket [510cde277783b5fb5de628]. (check-in: 36c75fd5 user: drh tags: branch-3.25)
15:19
Disable the ORDER BY LIMIT optimization in queries using window functions. This fixes a problem that was introduced by check-in [206720129ed2fa8875a286] which attempted to fix ticket [9936b2fa443fec03ff25f9]. This changes is a fix for the follow-in tocket [510cde277783b5fb5de628]. (check-in: c6c9585f user: drh tags: trunk)
14:18
Fix a false-positive in the post-ALTER-TABLE schema verification logic that prevents ALTER TABLE from working if the table being altered has a trigger that references any column of a virtual table. Ticket [b41031ea2b537237]. (check-in: 5ce568c0 user: drh tags: branch-3.25)
14:13
Fix a false-positive in the post-ALTER-TABLE schema verification logic that prevents ALTER TABLE from working if the table being altered has a trigger that references any column of a virtual table. Ticket [b41031ea2b537237]. (check-in: 84105ea4 user: drh tags: trunk)
13:55
Restore an assert() that was present on trunk. (Closed-Leaf check-in: a7b572ca user: drh tags: tkt-b41031ea)
13:38
Minor modification to the fix on this branch to avoid adding extra conditional compilation macros. (check-in: 4d8be404 user: dan tags: tkt-b41031ea)
12:49
Fix missing space in 'configure.ac' reported on the mailing list. (check-in: 96b00a3c user: mistachkin tags: trunk)
11:36
Increase the version number to 3.25.1. (check-in: f3c8cfdb user: drh tags: branch-3.25)
08:27
Add extra test for the fix on this branch. Also fix a pointer-compare-after-free problem that occurs in similar cases. (check-in: 1856ea63 user: dan tags: tkt-b41031ea)
00:15
Add assert()s to the new code in the previous check-in. (check-in: b12f23a5 user: drh tags: tkt-b41031ea)
2018-09-16
23:27
First proposed fix for the ALTER TABLE problem described by ticket [b41031ea2b5372378cb3d2d] (check-in: 05a9d129 user: drh tags: tkt-b41031ea)
18:23
Remove an unreachable branch from the index-on-expression optimization. (check-in: 2df2cf4f user: drh tags: trunk)
16:34
Fix a memory leak in the explain extension. (check-in: d0c92b04 user: drh tags: trunk)
16:18
Add the new "explain" virtual table in ext/misc. Use this virtual table for additional test cases for the optimization that avoids updating indexes on expressions when none of the columns changed by the UPDATE are in the expression. (check-in: 2404304c user: drh tags: trunk)
15:01
Improved presentation on the new code that prevents unnecessary writes to expressions on indexes during an UPDATE when the expression does not reference any of the columns that are changing. (check-in: c9f04529 user: drh tags: trunk)
2018-09-15
21:43
Increase the version number to 3.26.0 as we start the next development cycle. (check-in: 885f0f82 user: drh tags: trunk)
21:38
Optimization: when doing an UPDATE on a table with indexes on an expression, do not update the expression indexes if they do not refer to any of the columns of the table being updated. (check-in: a71b1016 user: drh tags: trunk)
04:01
Version 3.25.0 (check-in: b63af6c3 user: drh tags: trunk, release, version-3.25.0)
2018-09-14
17:42
Fix minor typos in comments that get carried over into documentation. No changes to code. (check-in: 7921dd91 user: drh tags: trunk)
2018-09-13
17:11
Update releasetest.tcl to run "make test" as part of the "Fast-One" configuration. (check-in: d5ebfe1c user: dan tags: trunk)
17:07
Make sure the %z optimization for printf() is not invoked if there has been a prior error (SQLITE_NOMEM or SQLITE_TOOBIG) associated with the same printf() call. (check-in: a2304a34 user: drh tags: trunk)
13:17
Fix a requirement mark on a test script. No changes to code. (check-in: 628d5c0a user: drh tags: trunk)
2018-09-12
20:32
Fix an assert() in os_unix.c that is not true when using RBU. (check-in: 028ed861 user: dan tags: trunk)
15:51
Restrict the scope of internal-use functions in alter.c. (check-in: 4396914f user: drh tags: trunk)
14:28
Improvements to the documentation for SQLITE_FCNTL_DATA_VERSION. No changes to code. (check-in: 27837624 user: drh tags: trunk)
08:51
Fix an invalid pointer comparison triggered by renaming a table column when there are views with explicit column names in the schema. (check-in: 572de7e4 user: dan tags: trunk)
01:05
Fix some harmless compiler warnings seen with MSVC. (check-in: 78862252 user: mistachkin tags: trunk)
00:48
For MSVC, migrate some commonly used shell compilation options to the library. (check-in: 68a71e5f user: mistachkin tags: trunk)
00:21
Fix a harmless compiler warning that arose from the ENABLE_CURSOR_HINTS fix of check-in [0af18674ca5b34e67e] (check-in: f578e62a user: drh tags: trunk)
2018-09-11
19:05
Do not do the byte-by-byte modifications in the resetdb.test script if the reserved-byte flag in the DB header is non-zero, because in that case the bytes will be in the wrong place and the test won't work. (check-in: 0af18674 user: drh tags: trunk)
13:38
Fix a problem causing ENABLE_CURSOR_HINTS builds to segfault. (check-in: e7033104 user: dan tags: trunk)
2018-09-10
19:34
Fix a test script issue in fts3ao.test. (check-in: 74c381b5 user: dan tags: trunk)
19:27
Fix a minor problem causing an incorrect cursor-hint to be generated in some cases. (check-in: d879c47d user: dan tags: trunk)
17:21
Add the ability for loadable extensions to access the new sqlite3_create_window_function() interface. (check-in: 3def6d8e user: drh tags: trunk)
16:38
Fix a broken assert() in fts3.c. (check-in: 564fa751 user: dan tags: trunk)
14:43
New testcase() macros on virtual table xBestIndex logic. (check-in: 3bbd9c5f user: drh tags: trunk)
12:40
Fix the LIKE optimization so that it is disabled when the LHS of the expression does not have TEXT affinity and the RHS is the pattern '/%' or the RHS begins with the escape character. Fix for ticket [c94369cae9b561b1f996d0054b]. (check-in: f191431d user: drh tags: trunk)
12:17
Fix a problem with processing a "vtab.col IS NULL" expression within the WHERE clause of a query when "vtab" is a virtual table on the rhs of a LEFT JOIN. (check-in: 83da4d41 user: dan tags: trunk)
2018-09-08
20:29
Fix an unreachable branch in the new sqlite3WhereOrderByLimitOptLabel() function of the query planner. (check-in: 5a954533 user: drh tags: trunk)
20:09
Fix multiple issues with the ORDER BY LIMIT optimization. This is the proposed resolution to ticket [9936b2fa443fec03ff25]. (check-in: 20672012 user: drh tags: trunk)
16:55
Add a missing call to free() in Lemon. (check-in: 8b4cf33a user: mistachkin tags: trunk)
16:53
Fix typo in the Win32-specific code for the fileio extension. (check-in: e812e5d5 user: mistachkin tags: trunk)
2018-09-07
19:12
Remove a faulty ALWAYS() macro added by check-in [8fa254aa6329bdd0]. (check-in: fc47316e user: drh tags: trunk)
18:56
Add extra test case to altertab.test. (check-in: 64c3ee3c user: dan tags: trunk)
18:52
Add assert() and ALWAYS() to identify two unreachable branches. (check-in: 8fa254aa user: drh tags: trunk)
15:50
Fix a problem with renaming a non-temp table that has at least one temp trigger and shares its name with a temp table. (check-in: ceb60bd7 user: dan tags: trunk)
11:51
Minor fixes for problems revealed by releasetest.tcl. (check-in: 1a8aedc3 user: dan tags: trunk)
11:08
Fix an uninitialized variable in the OP_ParseSchema opcode that comes up only if the schema is corrupt. (check-in: 725808d4 user: drh tags: trunk)
2018-09-06
20:33
In all.test, do not attempt to run the RBU tests in non-RBU builds. (check-in: 10c3e5a0 user: dan tags: trunk)
19:36
Fix a harmless compiler warning in os_unix.c. (check-in: b9d1fb5d user: drh tags: trunk)
18:56
Fix a problem with ALTER TABLE when there are views or triggers in the schema that contain "<expr> IS NULL" expressions. (check-in: 91aab32e user: dan tags: trunk)
17:47
Fix a problem in ALTER TABLE with SQLITE_OMIT_VIRTUALTABLE builds. (check-in: fa835145 user: dan tags: trunk)
17:23
Fix test script problems causing SQLITE_OMIT_VIRTUALTABLE builds to fail. (check-in: 37ad064e user: dan tags: trunk)
16:50
Merge accidental fork. (check-in: ebadb7dc user: mistachkin tags: trunk)
16:47
Fix harmless compiler warning. (check-in: 88b39c46 user: mistachkin tags: trunk)
16:47
Fix a problem causing SQLITE_OMIT_VIRTUALTABLE builds to fail. (check-in: 18beabc8 user: dan tags: trunk)
16:24
Add new test file "alterauth.test". (check-in: 00940265 user: dan tags: trunk)
16:20
Add an "ALTER TABLE RENAME COLUMN" command. Upgrade "ALTER TABLE RENAME TABLE" so that it modifies references to the renamed table embedded in SQL view and trigger definitions. (check-in: 4da59983 user: dan tags: trunk)
16:17
Merge latest trunk changes into this branch. (Closed-Leaf check-in: 8a28a326 user: dan tags: alter-table-rename-column)
16:01
Ensure that the tbl_name column in the sqlite_temp_master table is updated correctly as part of a RENAME TABLE operation. (check-in: ffecfca5 user: dan tags: alter-table-rename-column)
14:01
Add the randomshape.tcl test-case generator script to the util subdirectory of the rtree extension. (check-in: 8f48991d user: drh tags: trunk)
11:14
Fix excess memory usage in the JSON parser of GEOPOLY. (check-in: 9057e27e user: drh tags: trunk)
02:40
Fix a problem with geopoly trying to update both the _shape and an auxiliary column in the same UPDATE statement. (check-in: 14c95515 user: drh tags: trunk)
2018-09-05
17:52
Merge latest trunk changes into this branch. (check-in: 6f4f707f user: dan tags: alter-table-rename-column)
17:45
Fix some test script errors. And an incorrect assert() in fts5. (check-in: f804336f user: dan tags: alter-table-rename-column)
16:16
Remove an old testcase() macro that is no longer valid. (check-in: e6287133 user: drh tags: trunk)
14:36
Avoid comparing pointer values after the object that they point to has been deleted. (check-in: 2ec7e50c user: dan tags: alter-table-rename-column)
08:28
Fix minor code issues in alter.c. (check-in: 18ba35b8 user: dan tags: alter-table-rename-column)
2018-09-04
18:23
Merge latest trunk changes into this branch. (check-in: ef9e0882 user: dan tags: alter-table-rename-column)
2018-09-03
20:05
Improve the error messages emitted by RENAME TABLE. (check-in: 6805b590 user: dan tags: alter-table-rename-column)
17:11
Ensure that FTS5 queries of the form "WHERE rowid BETWEEN ? AND ? AND tbl MATCH ? ORDER BY rank" do rowid filtering before sorting. (check-in: f1138a38 user: dan tags: trunk)
2018-09-01
20:38
Add another test case to altertab.test. (check-in: 828e8849 user: dan tags: alter-table-rename-column)
20:23
Fix a problem with renaming a column in a table that has a temp trigger that references another attached database. (check-in: 336b8a09 user: dan tags: alter-table-rename-column)
20:02
Fixes for harmless compiler warnings. (check-in: 41b8f38b user: drh tags: alter-table-rename-column)
16:55
Fix some harmless compiler warnings and improve defenses against OOM errors. (check-in: 2e2cf992 user: drh tags: alter-table-rename-column)
16:13
Merge alter-table-rename-table back into this branch. (check-in: ad704a7c user: dan tags: alter-table-rename-column)
16:05
Have "ALTER TABLE ADD COLUMN" reload the entire db schema, as "RENAME COLUMN" and "RENAME TABLE" do. (Closed-Leaf check-in: 8d89ddc1 user: dan tags: alter-table-rename-table)
15:55
Merge fixes from the alter-table-rename-column branch that occurred after this branch separated from that one. (check-in: 22e785aa user: drh tags: alter-table-rename-table)
15:49
Merge fixes and enhancements from trunk. (check-in: 589186c0 user: drh tags: alter-table-rename-table)
06:13
Update test script snapshot_fault.test to account for the new sqlite3_snapshot_open() error code. (check-in: c1aca767 user: dan tags: trunk)
2018-08-31
23:22
New hyperlink on the README.md file. (check-in: c663961e user: drh tags: trunk)
19:00
If a call to sqlite3_snapshot_open() fails because the requested snapshot no longer exists, return SQLITE_ERROR_SNAPSHOT instead of SQLITE_BUSY_SNAPSHOT. (check-in: e0792312 user: dan tags: trunk)
18:23
Ensure b-tree mutexes are always held when sqlite3FindTable() is called. Do not invoke the authorizer callback when parsing schema items as part of ALTER TABLE commands. Fix test script issues. (check-in: eac2aa7d user: dan tags: alter-table-rename-table)
2018-08-30
20:28
Try to identify the places in WAL code where thread-safety depends on the underlying architecture supporting atomic load and store of aligned 32-bit values. (check-in: 47d44be4 user: drh tags: trunk)
20:03
Test the schema after renaming a table. Ensure that temp database triggers and views are updated when renaming a column. (check-in: f3c27d91 user: dan tags: alter-table-rename-table)
18:53
Give the debugging routine print_pager_stats() external linkage in order to suppress harmless compiler and TSAN warnings. (check-in: ff4dc082 user: drh tags: trunk)
16:26
Fix an ALTER TABLE problem with processing temp schema views and triggers. (check-in: 72cfb1be user: dan tags: alter-table-rename-table)
01:52
Improved JSON parser caching. (check-in: 58078c0d user: drh tags: trunk)
2018-08-29
21:01
Additional test cases for geopoly. (check-in: 19b5eb45 user: drh tags: trunk)
21:00
Extend RENAME TABLE to edit triggers and views. Still buggy. (check-in: 01308bae user: dan tags: alter-table-rename-table)
20:52
Fixes to the UPDATE logic in Geopoly. (check-in: 7c3cee0a user: drh tags: trunk)
20:24
Also free up the MEM_RowSet bit in the Mem.flags field and have RowSet objects be destroyed using Mem.xDel. This change results in faster code. (check-in: f48e9feb user: drh tags: trunk)
18:47
Free up the MEM_Frame bit in Mem.flags object. Store VdbeFrame objects as MEM_Blob with a special Mem.xDel pointer instead. (check-in: 62db5fd4 user: drh tags: trunk)
15:50
Add the geopoly_group_bbox() aggregate function to the Geopoly module. (check-in: 2d4debcc user: drh tags: trunk)
2018-08-28
21:12
Disable the server1.test script on old PPC Macs due to problems in the pthreads implementation on those archaic machines. (check-in: 43efdd8c user: drh tags: trunk)
19:23
Stricter enforcement of the JSON and GeoJSON standards in the Geopoly extension. (check-in: c0bf3ff3 user: drh tags: trunk)
15:51
Fix new issues in the geopoly module discovered by TH3. (check-in: 22fff9af user: drh tags: trunk)
11:23
Fix a problem causing spurious SQLITE_CORRUPT errors when using the snapshot API to read from old database snapshots. (check-in: 535155be user: dan tags: trunk)
2018-08-27
17:13
Add support for the Geopoly extension to the R-Tree extension. This also involves adding the SQLITE_INDEX_CONSTRAINT_FUNCTION capability to the xFindFunction method of the sqlite3_module object, and to the sqlite3_index_info.aConstraint.op field in the xBestIndex implementation of virtual tables. (check-in: 666133e3 user: drh tags: trunk)
17:05
Minor changes to the visual01.txt test script. (Closed-Leaf check-in: 4bc28eed user: drh tags: rtree-geopoly)
15:55
Split the three-argument version of geopoly_within() off into a separate function named geopoly_contains_point(). (check-in: 5a0e1541 user: drh tags: rtree-geopoly)
2018-08-25
23:03
Enhance the geopoly virtual table so that it does a better job of optimizing geopoly_within() queries. (check-in: 1f717385 user: drh tags: rtree-geopoly)
19:51
Provide the two-argument geopoly_within(P1,P2) routine that determines if polygon P2 is contained within polygon P1. Make this function available to the query planner for optimized rtree lookups. Update the visual01.txt script to verify that the new functionality actually works. (check-in: 6eb5d09b user: drh tags: rtree-geopoly)
18:57
Fix a harmless compiler warning. (check-in: d49be983 user: drh tags: rtree-geopoly)
16:22
Fix a minor issue in the altercol.test script so that it runs on Windows. (check-in: 62089c6d user: drh tags: alter-table-rename-column)
16:14
Invoke the authorizer for ALTER TABLE RENAME COLUMN. (check-in: fc293bcb user: drh tags: alter-table-rename-column)
03:29
Remove an unnecessary IN_RENAME_COLUMN macro from resolve.c. (check-in: 5858c0bd user: drh tags: alter-table-rename-column)
02:04
The implementation of sqlite_rename_column() must be holding the schema mutexes. (check-in: f0eed21d user: drh tags: alter-table-rename-column)
2018-08-24
20:20
Fix a problem by renaming a column when the schema contains an trigger program featuring an UPSERT that uses an "excluded.*" reference to a different table. (check-in: 83d5f5ab user: dan tags: alter-table-rename-column)
20:10
Fix a problem with renaming a column that occurs as an "excluded.colname" construction in an UPSERT that is part of a trigger program. (check-in: bb2f7234 user: dan tags: alter-table-rename-column)
19:04
Set SQLITE_PTRSIZE to 4 when compiling with xlc on 32-bit AIX. (check-in: d158e5b1 user: mistachkin tags: trunk)
17:55
After modifying and reparsing the schema as part of an ALTER TABLE RENAME COLUMN, check that no new schema errors have been introduced (e.g. ambiguous column names in views) before committing the operation. (check-in: a0e06d2c user: dan tags: alter-table-rename-column)
16:04
Avoid incorrectly replacing tokens that refer to a column being renamed via an alias. For example, do not overwrite "xyz" when "a" is renamed in "CREATE VIEW v1 AS SELECT a AS xyz FROM tbl WHERE xyz=1" (check-in: ad072a83 user: dan tags: alter-table-rename-column)
2018-08-23
20:09
Add the "atrc" test program to the Makefiles. Fix a typo in the instructions in the header comment of the atrc program. (check-in: 2130a407 user: drh tags: alter-table-rename-column)
19:32
Fix harmless compiler warnings in the ALTER TABLE logic. Rephrase an error message to use active voice. (check-in: a7dae59a user: drh tags: alter-table-rename-column)
18:56
Automatically detect when compiling for AArch64 on windows and set SQLITE_BYTEORDER to little-endian to avoid compile-time testing. (check-in: ef6729be user: drh tags: trunk)
18:50
The Expr.iColumn field must also be initialized in tokenExpr(). (check-in: 772985f1 user: drh tags: alter-table-rename-column)
18:22
Make sure the Expr.iTable field is initialized by tokenExpr(). (check-in: 02a05a3b user: drh tags: alter-table-rename-column)
14:54
Merge enhancements from trunk. (check-in: c446c884 user: drh tags: rtree-geopoly)
2018-08-21
17:03
Fix a test case that was failing for SQLITE_ENABLE_STAT4 builds. (check-in: 1e29fd43 user: dan tags: trunk)
16:32
Rename internal function sqlite3RenameToken() to sqlite3RenameTokenMap() and sqlite3MoveRenameToken() to sqlite3RenameTokenRemap(). (check-in: b9ae9a0a user: dan tags: alter-table-rename-column)
15:06
Rationalize some duplicated code in alter.c. Also improve error messages for ALTER TABLE RENAME COLUMN in some cases. (check-in: 5d2163c7 user: dan tags: alter-table-rename-column)
12:46
Further attempts to reduce the number of false-positives genenerated by static analysis tools. (check-in: 38f9ce65 user: drh tags: trunk)
12:16
Fix various harmless warnings generated by static analysis tools. (check-in: a04a0ea9 user: drh tags: trunk)
08:29
Minor changes to function tokenExpr() in order to claw back cycles lost to the rename-column change. (check-in: 47997695 user: dan tags: alter-table-rename-column)
2018-08-20
20:01
Add further tests for RENAME COLUMN. (check-in: 82c4c10a user: dan tags: alter-table-rename-column)
16:16
Ensure that it is not possible to rename columns of system tables, views or virtual tables. (check-in: 786b5991 user: dan tags: alter-table-rename-column)
2018-08-18
18:27
Additional fixes for harmless compiler warnings that are specific to this branch. (check-in: 9d8e73bf user: drh tags: alter-table-rename-column)
18:14
Merge trunk fixes. (check-in: ccad2779 user: drh tags: alter-table-rename-column)
18:01
Have ALTER TABLE RENAME COLUMN also edit trigger and view definitions. (check-in: 7908e8a4 user: dan tags: alter-table-rename-column)
17:35
Improvements to error handling in ALTER TABLE RENAME COLUMN. (Closed-Leaf check-in: 7fa1faea user: dan tags: edit-trigger-wrapper)
2018-08-17
21:14
Fix harmless compiler warnings only seen with STAT4 enabled. (check-in: 6f5e84ba user: mistachkin tags: trunk)
18:08
Allow an ALTER TABLE RENAME COLUMN to proceed even if the schema contains a virtual table for which the module is unavailable. (check-in: 7b72b236 user: dan tags: edit-trigger-wrapper)
17:18
Ensure that CREATE VIEW, TRIGGER or INDEX statements can be edited by ALTER TABLE RENAME COLUMN even if they use collation-sequences or user-defined-functions that are not available. (check-in: 540014ef user: dan tags: edit-trigger-wrapper)
2018-08-16
19:49
Further progress on updating trigger programs as part of ALTER TABLE RENAME COLUMN. (check-in: 3f47222b user: dan tags: edit-trigger-wrapper)
16:24
Fix a harmless unused-variable compiler warning that only came up in certain compile-time configurations. (check-in: 45684292 user: drh tags: trunk)
15:29
Fix EXPLAIN QUERY PLAN so that it describes IN operators implemented using a ROWID lookup. (check-in: 60045fbf user: drh tags: trunk)
2018-08-15
20:28
Have ALTER TABLE RENAME COLUMN edit trigger programs. Only partly working. (check-in: e272dc2b user: dan tags: edit-trigger-wrapper)
14:03
Allow sqlite3_snapshot_open() to be called to change the snapshot after a read transaction is already open on database. (check-in: 41399169 user: dan tags: trunk)
2018-08-14
21:05
Fix a problem when renaming an IPK column that is also part of a child key. (check-in: 6e6a2bfd user: dan tags: edit-trigger-wrapper)
21:03
Fix a problem when renaming an IPK column that is also part of a child key. (check-in: ad154860 user: dan tags: alter-table-rename-column)
20:40
Merge latest trunk and ALTER TABLE error message improvements into this branch. (check-in: 7a45802d user: dan tags: edit-trigger-wrapper)
20:38
Do not allow ALTER TABLE RENAME COLUMN on a virtual table. (check-in: f6d6b472 user: drh tags: alter-table-rename-column)
20:18
Have ALTER TABLE RENAME edit column references in CREATE VIEW statements. (check-in: db829dc1 user: dan tags: edit-trigger-wrapper)
19:27
Improved error messages when an ALTER TABLE RENAME COLUMN fails due to a duplicate column name. (check-in: 37d11b8e user: drh tags: alter-table-rename-column)
18:12
Merge fixes and enhancements from trunk. (check-in: dff0314b user: drh tags: alter-table-rename-column)
16:18
Fix ALTER TABLE RENAME COLUMN in cases where the column being renamed is an IPK declared with a separate PRIMARY KEY clause - "CREATE TABLE x(y INTEGER, PRIMARY KEY(y))". (check-in: 32ca8418 user: dan tags: alter-table-rename-column)
15:12
Fix UPSERT so that it checks the target-constraint first and fires the DO UPDATE if that constraint is violated regardless of whether or not other constraints are in violation. This aligns SQLite behavior with what PostgreSQL does. Fix for ticket [908f001483982c43cdb476dfb590a1a]. (check-in: 529fb55e user: drh tags: trunk)
2018-08-13
22:50
Stop requiring the global VFS mutex to access the unixInodeInfo.pUnused field. The unixInodeInfo mutex is sufficient. (check-in: e3ea43da user: drh tags: trunk)
20:46
Take extra precautions to ensure access to unixInodeInfo.pUnused is protected by all necessary mutexes. (check-in: 8b1e0010 user: drh tags: trunk)
17:14
Edit the WHEN and UPDATE OF clauses of trigger programs as part of ALTER TABLE RENAME COLUMN. (check-in: 5fdb6b0a user: dan tags: edit-trigger-wrapper)
17:02
Make the sqlite_rename_column() SQL function resistant to problems caused by OOMs and/or malformed parameters submitted by hostile application code. Also add additional comments to the RENAME COLUMN logic. (check-in: 87743dde user: drh tags: alter-table-rename-column)
15:09
Fix legacy comments on Token. Begin commenting the new ALTER TABLE RENAME COLUMN code. Fix a memory leak in the sqlite_rename_column() SQL function. (check-in: 32edc892 user: drh tags: alter-table-rename-column)
13:43
Fix issues with ALTER TABLE RENAME COLUMN associated with OOM errors. (check-in: 0b28dd5c user: drh tags: alter-table-rename-column)
12:58
Fix a heap-corruption causing race condition in os_unix.c that could occur when one thread wal opening a database file while another is unlocking the same file. Edit: Let's go in a slightly different direction with this fix. (Closed-Leaf check-in: 2447e0fd user: dan tags: unix-lock-fix-attempt)
11:32
Fix an incorrect comment on the unix-nolock VFS object. No functional code changes. (check-in: 90f7c193 user: drh tags: trunk)
2018-08-11
20:46
Add the "atrc" test program. "Atrc" is short for "ALTER TABLE RENAME COLUMN". See the header comment on the program itself for further information. (check-in: ed64a55a user: drh tags: alter-table-rename-column)
20:38
If the new column name in an ALTER TABLE RENAME COLUMN statement is quoted, then also use quotes for the column name in the edited SQL statements. (check-in: ca5184a2 user: dan tags: alter-table-rename-column)
18:34
Avoid an assert() sometimes triggered by ALTER TABLE RENAME COLUMN in non-debug builds. (check-in: 520c1c75 user: dan tags: alter-table-rename-column)
17:49
Fix a bug causing ALTER TABLE RENAME COLUMN to fail when renaming an IPK column that is used in a CHECK constraint. (check-in: 6595c881 user: dan tags: alter-table-rename-column)
17:34
Fix a bug causing all ALTER TABLE RENAME COLUMN commands to fail if ANALYZE had been run on the database. Also prevent the user from renaming the columns of system tables. (check-in: ca644a28 user: dan tags: alter-table-rename-column)
13:40
Reload the entire schema after renaming a column in order to ensure that the schema for any tables for which parent key definitions were changed are reloaded. (check-in: f4497b01 user: dan tags: alter-table-rename-column)
2018-08-10
20:19
Ensure the schema cookie is changed when a column is renamed. (check-in: 2dec9ea4 user: dan tags: alter-table-rename-column)
19:33
Fix harmless compiler warnings. (check-in: 9564d700 user: drh tags: alter-table-rename-column)
19:19
When a column is renamed, update any references to it in REFERENCES clauses that belong to other tables. (check-in: 191079bd user: dan tags: alter-table-rename-column)
15:27
Merge latest trunk changes with this branch. (check-in: c355a837 user: dan tags: alter-table-rename-column)
14:23
Fix a problem with renaming columns on tables with REFERENCES clauses that specify a large number of columns. (check-in: d48f7bbd user: dan tags: alter-table-rename-column)
2018-08-09
21:45
Fix the isLikeOrGlob() routine in the WHERE clause processing logic so that it avoids signed/unsigned character comparisons, as that can lead to an incorrect answer if the ESCAPE clause is an invalid UTF8 string. Problem found by OSSFuzz. (check-in: 4195a3f8 user: drh tags: trunk)
20:47
Experimental implementation of ALTER TABLE ... RENAME COLUMN. Still buggy. (check-in: fa0fc01e user: dan tags: alter-table-rename-column)
18:36
When a column must be a constant due to WHERE clause and the value of that column is being coded as a constant, make sure the affinity is correct. (check-in: 7404ea83 user: drh tags: trunk)
2018-08-08
20:46
Minor style improvements. (check-in: 60bbca2b user: mistachkin tags: trunk)
2018-08-06
17:12
Allow sqlite3_snapshot_open() to be called to change the snapshot after a read transaction is already open on database. (Closed-Leaf check-in: 051ac015 user: dan tags: exp-snapshot-open)
02:08
Enhance the edit() function so that it converts text from \r\n back into \n only if the original unedited copy contained no \r\n values. (check-in: 20c995d3 user: drh tags: trunk)
01:39
Add the --info option to the fuzzcheck test utility. (check-in: 1caaaaa7 user: drh tags: trunk)
01:21
Fix an overzealous assert() statement discovered by OSSFuzz. (check-in: d9c9fe9f user: drh tags: trunk)
2018-08-04
20:30
Remove the column-cache from the code generator. The column-cache has been a persistent source of bugs for years and with recent improvements in the performance of OP_Column, it no longer provides a benefit. After the column cache is removed, the binary is almost 2KB smaller and the speed-check.sh performance test is over 3 million cycles faster. (check-in: cdff3af7 user: drh tags: trunk)
20:12
Remove a testcase() that is no longer reachable without the column cache. Provide an assert() to help prove that the testcase is no longer reachable. (Closed-Leaf check-in: a500893b user: drh tags: omit-column-cache)
17:15
Fix comments that were made obsolete by the removal of the column cache. (check-in: 2041231d user: drh tags: omit-column-cache)
16:54
Remove more column-cache residue: The OP_SetColTab and OP_VerifyColTab opcodes and the associated SQLITE_DEBUG_COLUMNCACHE logic. (check-in: 80236e81 user: drh tags: omit-column-cache)
15:53
Further logic simplifications that flow out of the omission of the column cache. (check-in: 7d9072b0 user: drh tags: omit-column-cache)
15:28
Add test cases for the constant expression fix of the previous check-in. (check-in: 95db5bd9 user: drh tags: trunk)
15:16
Ensure that all expressions that are to be evaluated once at the start of a prepared statement (the Parse.pConstExpr expressions) pass the sqlite3ExprIsConstantNotJoin() test. It is not sufficient to pass just the sqlite3ExprIsConstant() test as that would allow through column references that are bound to constants by the WHERE clause in the constant propagation optimization. This fixes a problem discovered by OSSFuzz. (check-in: 8bc7f84c user: drh tags: trunk)
14:30
Remove additional traces of the column cache. (check-in: db6052e9 user: drh tags: omit-column-cache)
2018-08-03
23:04
Completely remove the column cache logic, which has been a persistent source of bugs for many years. Due to recent enhancements to the performance of the OP_Column opcode, removing the column cache actually makes speed-check.sh run faster. Removing the column cache also saves about 1,800 bytes of code space. (check-in: 3f5f60cd user: drh tags: omit-column-cache)
20:19
Fix the handling of sub-queries with LIMIT clauses by the optimization activated by compile-time symbol SQLITE_COUNTOFVIEW_OPTIMIZATION. (check-in: 21235d9a user: dan tags: trunk)
15:58
Fix the OP_SeekRowid opcode so that it has no type-change side-effects on the key register in P3. This fixes an obcure problem that arises when doing equi-joins between a table with a TEXT column against another table with an INTEGER PRIMARY KEY. The original problem was discovered when OSSFuzz created such a query and hit an assert() in OP_VerifyTabCol that was specifically designed to catch these kinds of errors at run-time. Test cases for this fix are in TH3. (check-in: fa94b49e user: drh tags: trunk)
13:56
Improve "PRAGMA vdbe_trace=ON" to always show the key values for the OP_IdxGT and related opcodes. (check-in: 0f881955 user: drh tags: trunk)
2018-07-29
18:56
In the command-line shell, always exit if realloc() fails. (check-in: e390023c user: drh tags: trunk)
2018-07-28
21:01
Add a small cost penalty to sorting to bias the query planner in favor of plans that do not require a final sorting pass. (check-in: 85b9beb4 user: drh tags: trunk)
16:24
Do not allow a column reference that is converted into a constant by the WHERE-clause constant propagation optimization to be moved to the init-time constant expression list, as the table reference will not work there. This fixes a problem found by OSSFuzz. (check-in: d30b2a94 user: drh tags: trunk)
14:56
Fix an assert() statement that was made obsolete by the constant propagation enhancement. Problem discovered by OSSFuzz. (check-in: e4b4737e user: drh tags: trunk)
14:34
Improved debugging output when the ".selecttrace" option is used in the shell. (check-in: fcb88dd6 user: drh tags: trunk)
13:37
An early attempt at refactoring Expr (Closed-Leaf check-in: fc90a53d user: drh tags: expr-simplify-branch1)
01:30
Add assert() statements to sqlite3ExprDelete() that prove various symmetry properties of the Expr object that might be exploited to make the Expr object smaller and faster. (check-in: 81f25d5c user: drh tags: expr-simplify)
2018-07-27
23:33
Improvements to the parser to increase coverage. Fix the parser so that at least one expresssion is required after PARTITION BY and within the list of expressions on VALUES(). (check-in: 02204f8b user: drh tags: trunk)
22:55
When doing a DROP VIEW do not try to delete entries from the sqlite_stat1 table as there are none. (check-in: 7efdba2b user: drh tags: trunk)
22:14
Minor grammar changes that help the parser run faster by reducing the number of NUL rule reductions. (check-in: cfd1b005 user: drh tags: trunk)
20:45
Enhance Makefile for MSVC to support building the shell tool without using the amalgamation. (check-in: 3d815d83 user: mistachkin tags: trunk)
20:37
The WHERE-clause constant propagation optimization attempts to use transitive laws to replace column values with constants in the WHERE clause in order to help to query planner make more aggressive optimizations. (check-in: f4229707 user: drh tags: trunk)
20:01
Reduce the performance cost of the constant propagation optimization to less than 200,000 cycles. (Closed-Leaf check-in: 865249de user: drh tags: propagate-const-opt)
18:19
Performance improvement to sqlite3ExprCollSeq(). With this change, the performance of speed-check.sh is within 400,000 cycles of trunk. (check-in: a5f86f49 user: drh tags: propagate-const-opt)
18:12
Faster implementation of sqlite3IsBinary(). (check-in: be05d0db user: drh tags: propagate-const-opt)
17:51
Only run the constant propagation optimization on joins since that is the only scenario where it is useful. This saves prepare time for the common case of a simple query. (check-in: 598d6083 user: drh tags: propagate-const-opt)
16:57
Constant propagation is now restricted to just the WHERE clause. The mechanism is changed to take affinity and collation into account. This seems to give correct answers. But the search for constant propagation costs 4 million cycles in the speed test. (check-in: 82c67efb user: drh tags: propagate-const-opt)
2018-07-26
23:54
Add a test case demonstrating the collation problem with constant propagation. (check-in: 50add839 user: drh tags: propagate-const-opt)
23:47
Generalize the constant propagation optimization so that it applies on every WHERE close, not just those that contain a subquery. This then demonstrates that the current implementation is inadequate since it does not take into account collating sequences. (check-in: 57eb2abd user: drh tags: propagate-const-opt)
21:48
In the unix VFS, give every unixInodeInfo object its own mutex, rather than using the global VFS mutex, to improve concurrency in cases where there are many threads operating on separate database files. (check-in: 22f47cf4 user: drh tags: trunk)
21:16
Initial implementation of the WHERE-clause constant propagation optimization. (check-in: 2fb82ad8 user: drh tags: propagate-const-opt)
2018-07-25
15:25
Fix a buffer overread in fts5. (check-in: 0e3de8ab user: dan tags: trunk)
15:12
Keep generated opcode values grouped together when required, even when they do not correspond to a token. (check-in: 6ee2950b user: mistachkin tags: trunk)
07:29
Fix a typo in the documentation for sqlite3_snapshot_get(). (check-in: cd9713c9 user: dan tags: trunk)
2018-07-24
22:02
Do not abort running queries due to a CREATE INDEX statement. Allow them to run to completion before being reprepared. Fix for ticket [c694113e50321afdf9]. (check-in: 2bd59333 user: drh tags: trunk)
13:57
Add missing SQLITE_OMIT_WINDOWFUNC check to the json1 extension. (check-in: fe19f823 user: mistachkin tags: trunk)
2018-07-23
22:55
Return an SQLITE_NOMEM error if the locking mutex fails to allocate. (Closed-Leaf check-in: 1c948348 user: drh tags: separate-lock-mutex)
21:10
First attempt at reducing mutex contention in the unix VFS by providing a separate mutex for each unixInodeInfo object. (check-in: f69afaf0 user: drh tags: separate-lock-mutex)
18:53
Fix typo of 'SQLITE_OMIT_WINDOWFUNC'. (check-in: 8607b84a user: mistachkin tags: trunk)
18:32
Attempt to improve the documentation for snapshots. No changes to code. (check-in: 46dd076a user: drh tags: trunk)
10:57
Fix the macros used to generate the output of "PRAGMA compile_options" so that they handle valid values for the SQLITE_DEFAULT_LOOKASIDE macro (which contain a "," character). (check-in: 1cc72845 user: dan tags: trunk)
2018-07-22
21:23
Fix more harmless compiler warnings seen with MSVC. (check-in: edab5666 user: mistachkin tags: trunk)
21:08
Another minor revision to the 'fulltestonly' set of tests. (check-in: 61f8e2a4 user: mistachkin tags: trunk)
20:24
Fix harmless compiler warning. (check-in: ead4762d user: mistachkin tags: trunk)
06:25
In the Win32 VFS, when truncating a file, unmap it first. (check-in: 21510a66 user: mistachkin tags: trunk)
00:45
Remove an unused branch in the FK logic. (Closed-Leaf check-in: 523ff779 user: drh tags: dropViewNoStat)
2018-07-21
23:15
In 'resetdb.test', close a database prior to trying to delete it. (check-in: 45137053 user: mistachkin tags: trunk)
2018-07-20
20:56
When dropping a view, skip trying to delete from 'sqlite_stat*'. (check-in: 2f5be3a2 user: mistachkin tags: dropViewNoStat)
19:24
Change the SQLITE_Stat34 bit of the optimization test-control so that it prevents STAT4 data from being used but allows it to be loaded into the Index objects. This permits STAT4 to be turned on and off on a per-statement basis. (check-in: 489f3caf user: drh tags: trunk)
18:01
Experimental change to ANALYZE so that when computing values for sqlite_stat1, it uses the maximum number for the number of rows having equivalent values, rather than the average. (Leaf check-in: 085f17e1 user: drh tags: stat1-max)
15:44
New checks in PRAGMA integrity_check to validate the autovacuum settings in the header. (check-in: a4663f09 user: drh tags: trunk)
13:39
Enhanced detection of problems on the freelist and on overflow list in PRAGMA integrity_check. (check-in: 11e58f5b user: drh tags: trunk)
2018-07-19
15:27
Avoid a branch in the commit logic that is unreachable when compiled without SQLITE_ENABLE_BATCH_ATOMIC_WRITE. (check-in: 271b8980 user: drh tags: trunk)
14:40
Allow the VACUUM following SQLITE_DBCONFIG_RESET_DATABASE to proceed even if the write-version in the header indicates that the database file is not writable. (check-in: 3dca8b9d user: drh tags: trunk)
11:44
Experimental fix for resetting databases that have been deemed read-only due to a corrupt "read-version" header field. (Closed-Leaf check-in: e2394002 user: dan tags: exp-dbreset-fix)
2018-07-18
19:09
Add the SQLITE_FCNTL_DATA_VERSION file control (check-in: a5087c5c user: drh tags: trunk)
17:37
Fix a harmless compiler warning in the pager. Enhance the docs for sqlite3_changes() and sqlite3_total_changes() to refer to the data_version pragma. (check-in: 4c70ea5b user: drh tags: trunk)
2018-07-17
14:01
If an SQLITE_IOERR error is encountered as part of an atomic commit on an F2FS file-system, retry the commit in legacy journal mode. (check-in: 2e0357c2 user: dan tags: trunk)
13:55
Fix for builds without SQLITE_ENABLE_BATCH_ATOMIC_WRITE. (Closed-Leaf check-in: b10ec14e user: dan tags: exp-retry-atomic-commit)
2018-07-16
20:44
Add new file doc/F2FS.txt, containing notes on the way SQLite uses the F2FS atomic commit feature. (check-in: 59efb1bf user: dan tags: exp-retry-atomic-commit)
11:32
Minor simplification to sqlite3RollbackAll(). (check-in: 432fdc22 user: drh tags: trunk)
2018-07-14
20:25
If an SQLITE_IOERR error is encountered as part of an atomic commit on an F2FS file-system, retry the commit in legacy journal mode. (check-in: 1c41250f user: dan tags: exp-retry-atomic-commit)
2018-07-13
20:28
Remove an unused function declaration from fts5. (check-in: 148d9b61 user: dan tags: trunk)
19:52
Add the "categories" option to the unicode61 tokenizer in fts5. (check-in: 80d2b9e6 user: dan tags: trunk)
2018-07-12
19:39
Merge latest begin-concurrent changes with this branch. (check-in: d33527d2 user: dan tags: begin-concurrent-pnu)
19:28
Merge latest trunk changes into this branch. (check-in: 6a00a34e user: dan tags: begin-concurrent)
19:14
Add a test-control to disable the skip-scan optimization. (check-in: 650a3fe0 user: dan tags: trunk)
11:28
Add a test case to check that SQLITE_DBCONFIG_RESET_DATABASE can be used with wal mode databases even if there are active readers. (check-in: 6145f5b3 user: dan tags: trunk)
2018-07-11
13:34
On an UPSERT when the order of constraint checks is rearranged, make sure that the affinity transformations on the inserted content occur before any of the constraint checks. Fix for ticket [79cad5e4b2e219dd197242e9e5f4e]. (check-in: d120c45f user: drh tags: trunk)
03:27
Adjustments to VdbeCoverage macros to deal with byte-code branches that can never be taken in some directions. (check-in: b170c009 user: drh tags: trunk)
2018-07-10
23:31
Remove incorrect ALWAYS() macros from the window function logic. (check-in: 94ac51cc user: drh tags: trunk)
22:24
Add VdbeModuleComment()s on the three main code generators for window functions. (check-in: f7c239e9 user: drh tags: trunk)
20:50
Minor comment changes. Add ALWAYS() macros on some unreachable branches in the xStep() methods of built-in window functions. (check-in: f2057542 user: drh tags: trunk)
19:48
Identify Select objects within a single statement using small sequential integers rather than "0x%p". This is more readable and yields the same result on successive runs. (check-in: a7cdc5bc user: drh tags: trunk)
18:50
Modify tests in window3.test to be tolerant of rounding errors when comparing floating point values. (check-in: 7c26c443 user: dan tags: trunk)
17:26
Fix a problem with using scalar sub-selects in window function queries. (check-in: 687fe532 user: dan tags: trunk)
17:10
Further improvements to bytecode branch testing. Fix cases where the macros said a branch could not be taken when in fact it could be. Alter some window function branch coverage macros to indicate that comparison operands cannot be NULL. (check-in: 76e42b70 user: drh tags: trunk)
16:04
Enhancements and improved documentation to the byte-code branch coverage testing logic. Provide new macros that allow the code to specify that some branch instructions can never take the NULL path and that the OP_Jump opcode is only interested in equal/not-equal. The SQLITE_TESTCTRL_VDBE_COVERAGE file control callback now works slightly differently (it provides the callback with a bitmask of the branch action, rather than an integer). (check-in: cd2da7e1 user: drh tags: trunk)
15:55
Experimental planner change to avoid a skip-scan if a regular index scan on the same index columns can be done instead. (Leaf check-in: 350f29ea user: dan tags: exp-begin-concurrent-pnu)
15:48
Merge begin-concurrent changes into this branch. (check-in: af17432e user: dan tags: begin-concurrent-pnu)
15:45
Merge latest trunk changes into this branch. (check-in: e9a3e864 user: dan tags: begin-concurrent)
07:39
Fix a harmless warning about comment formatting in the previous check-in. Simplify the ORDER BY dereferencing logic so that it avoids unreachable branches. (check-in: 0f6ec605 user: drh tags: trunk)
07:25
Assert that if two functions compare equal in every other way, then they must both have OVER clauses, or neither has an OVER clause. Use this fact to simplify expression comparison. (check-in: 52559ad5 user: drh tags: trunk)
06:47
Enhance the sqlite3ExprCompare() routine so that it knows to compare the OVER clause of window functions. (check-in: 0a7649af user: drh tags: trunk)
06:32
Enhance the TreeView mechanism so that it shows the window function data structures as part of the abstract syntax tree. (check-in: a2c0e1be user: drh tags: trunk)
05:11
New VDBE comments and coverage macros. (check-in: a9a30726 user: drh tags: trunk)
2018-07-09
22:49
Fixes for various harmless compiler warnings. (check-in: 5023b1b8 user: drh tags: trunk)
20:58
Add a comment to restriction (6) of the push-down optimization. No changes to code. (check-in: 0c8a2f25 user: drh tags: trunk)
20:41
Add an ALWAYS() around a branch in sqlite3BtreeSkipNext() that we believe must always be true. (check-in: 12be361a user: drh tags: trunk)
18:55
Avoid leaving view-definitions with an incomplete set of column names/types in the in-memory schema if an OOM strikes while allocating the same. (check-in: 1ddbb537 user: dan tags: trunk)
18:11
Add a couple of OOM tests. (check-in: 50de2a0d user: dan tags: trunk)
17:33
Remove redundant branches in window function processing. (check-in: 8fdaf3f3 user: drh tags: trunk)
16:24
Simplification to the grammar rules for window functions. Fix a memory leak that can follow an OOM while parsing a comma-separated list of window definitions. (check-in: a568f9c9 user: drh tags: trunk)
13:31
Throw an error if the second argument passed to nth_value() is not a positive integer. (check-in: 1a06e57a user: dan tags: trunk)
06:51
Fix a bad assert() in window.c. (check-in: fe8aaf0c user: dan tags: trunk)
02:37
Simplification to the logic that detects misuse of the application-defined function creation interfaces. (check-in: 8f21d778 user: drh tags: trunk)
02:02
During WITHOUT ROWID table creation, if the sqlite3CreateTable() call fails due to an authorizer denying the INSERT into the sqlite_master table, then detect this fact and abort the CREATE TABLE early, to avoid an assertion fault. (check-in: 164b1641 user: drh tags: trunk)
2018-07-08
01:02
Identify specific FuncDef objects for window functions using the pointer to the function name (FuncDef.zName) rather than the pointer to the xStep method. This allows xStep method pointer to be replaced with a single noopStepFunc() procedure, and thus save having lots of different no-op step functions. (check-in: 410e13b0 user: drh tags: trunk)
2018-07-07
20:55
Simplifications to the implementation of the sum() SQL function. (check-in: a8b13002 user: drh tags: trunk)
20:26
Fix another problem with reusing LSM cursors for range scans. (check-in: ae3fc765 user: dan tags: trunk)
20:23
Fix the JSON extension so that it can be compiled separately from the amalgamation. (check-in: 4b8cfe7b user: drh tags: trunk)
20:13
Fix an LSM problem caused by using the same cursor for equality and range scans. (check-in: f05bead3 user: dan tags: trunk)
19:47
Add ALWAYS() macros on results of sqlite3_aggregate_context() calls in xInverse() implements, since they can never fail. (check-in: fdef2a92 user: drh tags: trunk)
19:36
Add an assert() to help verify that OP_AggInverse is never called on an accumulator that has not previously been processed by OP_AggStep. (check-in: 42138891 user: drh tags: trunk)
17:38
Add missing VdbeCoverage() macro to window.c. (check-in: 63f4d306 user: dan tags: trunk)
17:30
Fix a problem with the handling of NULL values in the min() window function. (check-in: b76f35b0 user: dan tags: trunk)
2018-07-06
17:19
Try to improve the error messages for misformed frame specifications in window definitions. (check-in: 927b95a0 user: drh tags: trunk)
14:31
Also disallow non-constant expressions in "<expr> PRECEDING" or "<expr> FOLLOWING" clauses. (check-in: a6dffecc user: dan tags: trunk)
14:15
Ensure an error is returned if the user specifies an unsupported frame type. (check-in: 0f3f8fcd user: dan tags: trunk)
13:48
Prevent "UNBOUNDED FOLLOWING" from being used as the starting boundary of a window-frame. And "UNBOUNDED PRECEDING" from being used as the ending boundary. (check-in: e51fdf66 user: dan tags: trunk)
13:25
Remove some bad assert() statements from the implementations of window functions percent_rank() and cume_dist(). (check-in: 443f0c28 user: dan tags: trunk)
07:42
Return an error if DISTINCT is used with a window-function (e.g. "count(DISTINCT <expr>) OVER (...)"). (check-in: d59bcc8e user: dan tags: trunk)
2018-07-05
21:22
Use separate opcodes, OP_AggValue and OP_AggInverse, for the new callbacks associated with Window Functions, for improved readability of EXPLAIN output. (check-in: fa653805 user: drh tags: trunk)
20:33
Update the recipe for resetting a database using SQLITE_DBCONFIG_RESET_DATABASE. (check-in: c43dd23f user: dan tags: trunk)
20:05
Get the json_group_array() and json_group_object() SQL functions working as window functions. (check-in: 916cdc83 user: drh tags: trunk)
18:34
Return an error if a "RANGE" window-frame uses "<expr> PRECEDING" or "<expr> FOLLOWING". (check-in: 786c87ba user: dan tags: trunk)
18:19
Fix a problem in the xInverse method of window-function group_concat(1). (check-in: 73391283 user: dan tags: trunk)
17:35
Fix the .dump command in the command-line shell so that it does not show extraneous SELECT statements when ".echo on" is enabled. (check-in: 11763cac user: drh tags: trunk)
17:16
In wal mode, if a "BEGIN EXCLUSIVE" command (or any other command that upgrades from no transaction directly to a write transaction) hits an SQLITE_BUSY_SNAPSHOT error, change the error code to SQLITE_BUSY to indicate to the caller that the condition may be transient. (check-in: e6108047 user: dan tags: trunk)
17:03
Fix a typo inside an assert() statement introduced by the previous commit. (Closed-Leaf check-in: e3357728 user: dan tags: exp-busy-snapshot-fix)
15:46
In wal mode, if a "BEGIN EXCLUSIVE" command (or any other command that upgrades from no transaction directly to a write transaction) hits an SQLITE_BUSY_SNAPSHOT error, change the error code to SQLITE_BUSY to indicate to the caller that the condition may be transient. (check-in: 221ff63e user: dan tags: exp-busy-snapshot-fix)
2018-07-04
14:28
Experimental planner change to avoid a skip-scan if a regular index scan on the same index columns can be done instead. (Leaf check-in: 32924446 user: dan tags: exp-avoid-expensive-skipscan)
2018-07-03
20:17
Test that a race condition can cause a "BEGIN EXCLUSIVE" to return SQLITE_BUSY_SNAPSHOT in wal mode. (check-in: 5a12db75 user: dan tags: trunk)
2018-07-02
17:45
Fix a problem in the xInverse callback for the built-in sum() window function. (check-in: b6563647 user: dan tags: trunk)
17:14
Fix a segfault caused by having identical window functions in the select-list and ORDER BY clause of a SELECT statement. (check-in: 693b4350 user: dan tags: trunk)
15:03
Fix a crash caused by a LIKE pattern that consists of a single escape character. Problem found by OSSFuzz. (check-in: bb9bfc3a user: dan tags: trunk)
12:07
Fix a segfault caused by invoking a regular aggregate as a window-function. And some problems with count(*) when used as a window-function. (check-in: 4f3c8a82 user: dan tags: trunk)
2018-07-01
16:05
Quick patch to the Lemon parser template to avoid an array overread reported by OSSFuzz. A proper fix involves enhancements to the table generators in Lemon to make the overread impossible. That fix will take longer to implement. The current check-in is a stop-gap. (check-in: 3f6730be user: drh tags: trunk)
2018-06-30
20:26
Avoid a warning in fts5.c due to not using generated routine sqlite3Fts5ParserFallback(). (check-in: 65ff5144 user: dan tags: trunk)
20:15
Merge implementation of SQL window functions from the exp-window-functions into trunk. (check-in: 17198a12 user: dan tags: trunk)
20:00
Fix a minor problem in the code for determining whether or not an SQL statement is SQLITE_TOOBIG. (Closed-Leaf check-in: 763e6c9e user: dan tags: exp-window-functions)
19:12
Merge all changes from the weak-fallback branch except those related to the weak-fallback feature itself. (check-in: aad718fb user: dan tags: exp-window-functions)
18:54
Have the tokenizer handle fallback for tokens "OVER" and "FILTER" in the same way as it does for "WINDOW". (Leaf check-in: 12d819e1 user: dan tags: weak-fallback)
2018-06-29
20:43
Further performance related tweaks for sqlite3RunParser(). (check-in: 5eb47765 user: dan tags: weak-fallback)
20:21
Further tweaks to sqlite3RunParser(). (check-in: eef61ffa user: dan tags: weak-fallback)
19:54
Improve on the previous checkin. Still a bit slow. (check-in: c1fb41aa user: dan tags: weak-fallback)
17:44
Instead of using a lemon %fallback directive, have the tokenizer try to figure out whether an instance of "WINDOW" should be TK_WINDOW or TK_ID. (check-in: 022079cb user: dan tags: weak-fallback)
2018-06-28
20:05
Modifications to parse.y to better support backwards compatibility for the "window" keyword. (check-in: 7c4b879b user: dan tags: weak-fallback)
03:38
Introduce the concept of "weak fallback" in the parser. A weak fallback only occurs if a syntax error would result otherwise. (check-in: c41d7079 user: drh tags: weak-fallback)
2018-06-27
20:24
Add missing VdbeCoverage() and VdbeCoverageNeverTaken() macros to window.c. (check-in: 4383cb68 user: dan tags: exp-window-functions)
19:48
Avoid redundant ORDER BY operations when rewriting SELECT statements that contain window functions. (check-in: 336de43a user: dan tags: exp-window-functions)
2018-06-26
20:19
Merge latest trunk changes. (check-in: d9f814b4 user: dan tags: exp-window-functions)
2018-06-25
20:34
Add documentation comment for sqlite3_create_window_function(). And further tests. (check-in: 3f2705b9 user: dan tags: exp-window-functions)
11:42
Fix another problem that could cause a crash when a window function was used in a view. (check-in: e954145a user: dan tags: exp-window-functions)
2018-06-23
19:29
Fix problems with using window-functions in correlated sub-queries. (check-in: 3e23cfc8 user: dan tags: exp-window-functions)
16:26
Fix a problem with using LIMIT in window-function queries. (check-in: c1abd2dd user: dan tags: exp-window-functions)
07:59
Fix a problem with using a window-function SELECT as a FROM clause sub-query in some circumstances. (check-in: 11d73339 user: dan tags: exp-window-functions)
2018-06-22
20:51
Omit all window-function related code when building with SQLITE_OMIT_WINDOWFUNC. (check-in: 5f04b016 user: dan tags: exp-window-functions)
17:57
Merge latest trunk changes. (check-in: ebe65b23 user: dan tags: exp-window-functions)
2018-06-21
23:53
Improved context for error_log message coming from sqlite3_prepare(). (check-in: fea7ade6 user: drh tags: trunk)
23:43
Improved context for error_log message coming from sqlite3_prepare(). (Leaf check-in: 64df1189 user: drh tags: ieee754)
19:20
Fix a problem with handling single row partitions in the percent_rank() window function. (check-in: b84fbf16 user: dan tags: exp-window-functions)
2018-06-20
09:23
Add tests to improve coverage of code in window.c. Fix a problem with "SELECT row_number() OVER ()". (check-in: f41b6b73 user: dan tags: exp-window-functions)
2018-06-19
21:15
Make the ieee754() a built-in function. Add the --ieee754 option to the ".dump" command in the shell to cause it to output floating-point values as ieee754() calls, so that the floating point number will be reproduced exactly. Not sure yet that we want to go this way, but it is one option. (check-in: 7fa8f16e user: drh tags: ieee754)
19:16
The file_control_ofd_locks TCL command in testfixture distinguishes between OFD locks unavailable on the platform and OFD locks not used. (Leaf check-in: 87a9e9d7 user: drh tags: ofd-locks)
19:15
Merge latest trunk changes with this branch. (check-in: 6ad0e64b user: dan tags: exp-window-functions)
19:01
OFD locks are now mostly working, but need additional tests. (check-in: 4f1fb5c9 user: drh tags: ofd-locks)
18:11
Fix a problem caused by a sub-query containing a window function in the FROM clause of a query that itself uses a window function. (check-in: f4b1b6f8 user: dan tags: exp-window-functions)
17:19
Miscellaneous cleanup of OFD logic. Add an #if 0 to disable the use of OFD logic, temporarily, until I can get it to actually work. (check-in: d849ade3 user: drh tags: ofd-locks)
17:13
Fix a problem with using min() or max() as a window function. (check-in: 801074ce user: dan tags: exp-window-functions)
13:45
Initial attempt to get SQLite working with OFD locks on Linux. The code here does not function correctly. This is an incremental check-in for a work in progress. (check-in: 148f8dec user: drh tags: ofd-locks)
11:15
Minor change to the input grammar to make the parser tables slightly smaller. (check-in: 320fa69e user: drh tags: trunk)
2018-06-18
20:34
Fix problems with using window functions in CREATE VIEW statements. (check-in: 943bccd2 user: dan tags: exp-window-functions)
20:08
Add test case for the fix in the previous commit. (check-in: 39434262 user: dan tags: trunk)
19:09
Fix typo in the 'normalize' extension. (check-in: 0c9163ea user: mistachkin tags: trunk)
17:36
Ensure that all four callbacks are provided when registering a window function (otherwise SQLITE_MISUSE is returned). (check-in: 5720dcd8 user: dan tags: exp-window-functions)
16:55
Add new API function sqlite3_create_window_function(), for creating new aggregate window functions. (check-in: da03fb43 user: dan tags: exp-window-functions)
2018-06-15
20:46
Add extra OOM test. (check-in: ac251f72 user: dan tags: exp-window-functions)
19:01
Fix another problem in lead()/lag(). And some errors that could occur following OOM faults. (check-in: fadd4dc1 user: dan tags: exp-window-functions)
16:10
Fix a bug in the lead() and lag() window functions causing them to fail when used in queries featuring multiple window functions. (check-in: 3839fb18 user: dan tags: exp-window-functions)
2018-06-14
20:52
Fix a problem with handling of statements containing two or more different windows. (check-in: 567e09ef user: dan tags: exp-window-functions)
19:06
Fix problem with window functions min() and max() when used with a PARTITION clause and a frame starting point other than "UNBOUNDED PRECEDING". (check-in: 43eb1e75 user: dan tags: exp-window-functions)
14:30
Merge latest trunk changes into this branch. (check-in: 5cf5f180 user: dan tags: exp-window-functions)
14:27
Improve comments and code legibility in new file window.c. (check-in: bb915854 user: dan tags: exp-window-functions)
2018-06-13
20:29
Fix problems with "RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING" window frames. (check-in: c34f31db user: dan tags: exp-window-functions)
17:19
Output infinity as 1e999 in the ".dump" command of the command-line shell. (check-in: ee431d55 user: drh tags: trunk)
16:52
Pad out the sqlite3_value structure to be a multiple of 8 bytes. (check-in: f76dc33b user: drh tags: trunk)
16:08
Fix some test case numbers in expert1.test. (check-in: b90c3c16 user: dan tags: trunk)
11:41
Unless SQLITE_OMIT_AUTOINIT is defined, allow sqlite3_vfs_unregister() to be called before sqlite3_initialize(). (check-in: ab6c1ae4 user: dan tags: trunk)
11:11
Check that malloc() has not already failed when invoking the xUpdate() method of a virtual table implementation. This fixes an assert() failure in FTS5 that could occur following an OOM condition. (check-in: e9a7e4d5 user: dan tags: trunk)
02:20
Add the unused SQLITE_CANTOPEN_DIRTYWAL result code. This code was used in some historical versions on the apple-osx branch but was removed by check-in [27e20d699872b2b8]. Restore it so that old code that actually references that result code will still compile. (check-in: 9f40383e user: drh tags: trunk)
2018-06-12
20:53
Fix another issue to do with window-functions in aggregate queries. (check-in: 6413e38a user: dan tags: exp-window-functions)
19:35
Documentation update: clarify that sqlite3_errcode() and related interfaces do not themselves modify the error code. (check-in: 858fc52b user: drh tags: trunk)
19:22
Documentation updates: clarify the behavior of sqlite3_column and sqlite3_value interfaces following an OOM error. (check-in: 428c581e user: drh tags: trunk)
18:40
Fix some problems with using window-functions in aggregate queries. (check-in: fe7081e0 user: dan tags: exp-window-functions)
13:52
Improvements to SCopy correctness tracking when SQLITE_DEBUG is enabled. (check-in: b2973f23 user: drh tags: trunk)
13:16
Fix the "Synopsis" on the OP_BitNot opcode. (check-in: acd78df6 user: drh tags: trunk)
2018-06-11
21:33
Improvements to the --enable and --disable options for the amalgamation tarball. (check-in: 02e337e0 user: drh tags: trunk)
20:50
Clarify the relationship between a Window object and its associated Expr. (check-in: 0cd55e98 user: dan tags: exp-window-functions)
19:47
Fix various --enable and --disable options on the top-level configure script. (check-in: 6fd7e8ce user: drh tags: trunk)
18:16
Fix handling of window frames containing negative number of rows. e.g. "ROWS x PRECEDING AND y PRECEDING" where (x<y). (check-in: b6d9c7ed user: dan tags: exp-window-functions)
18:06
Fix the column cache invalidation logic in the code for ROWID uniqueness constraint checking in the INSERT command. This fixes ticket [c2432ef9089ee73bd]. (check-in: 0b485a57 user: drh tags: trunk)
17:35
Add the OP_SetTabCol and OP_VerifyTabCol opcodes, only when compiling with SQLITE_DEBUG, to do run-time verification of the column cache. (check-in: b37614a3 user: drh tags: trunk)
13:10
Strengthen the sqlite3VdbeMemAboutToChange() run-time verification mechanism to better detect missed calls to AboutToChange(). (check-in: 793e9422 user: drh tags: trunk)
11:19
Fix a typon in main.mk. (check-in: e74f86f2 user: dan tags: exp-window-functions)
01:30
Always initialize the WhereClause.hasOr field that was added by check-in [292724ffc4]. Error detected by OSSFuzz. (check-in: 9faf4171 user: drh tags: trunk)
2018-06-10
07:42
Update Makefile.msc to include window.c in the build. (check-in: 16db7384 user: dan tags: exp-window-functions)
2018-06-09
20:52
Fix a typo in the amalgamation autoconf file. (check-in: de0857f3 user: drh tags: trunk)
18:09
Merge recent trunk changes with this branch. (check-in: c71f2359 user: dan tags: exp-window-functions)
17:58
Update the amalgamation build script to include window.c. (check-in: 21d2f4a6 user: dan tags: exp-window-functions)
17:43
Add support for FILTER clause on aggregate window functions. (check-in: ceaf798e user: dan tags: exp-window-functions)
16:49
Slightly smaller and faster code by encapsulating wal-index hash table location information in a separate WalHashLoc object rather than passing around the various elements as separate variables. (check-in: 538a365b user: drh tags: trunk)
14:13
Improved comments an presentation for the recent IN operator decision improvement. (check-in: 31e480f6 user: drh tags: trunk)
02:49
Performance improvement to sqlite3WhereExprUsage(). (check-in: fd093413 user: drh tags: trunk)
01:12
Compute the bitmask of indexed columns for each index once when the Index objecct is constructed, instead of recomputing it every time it is needed. (check-in: d735872e user: drh tags: trunk)
00:09
Avoid invoking the whereLoopAddOr() routine in the query planner if there are no OR operators in the WHERE clause, thus speeding up query planning slightly. (check-in: 292724ff user: drh tags: trunk)
2018-06-08
23:23
When the query planner has the opportunity to use an IN operater constraint on a term of an index other than the left-most term, use the estimated number of elements on the right-hand side of the IN operator to determine if makes sense to use the IN operator with index lookups, or to just do a scan over the range of the table identified by the index terms to the left. Only do this if sqlite_stat1 measurements are available as otherwise the performance estimates will not be accurate enough to discern the best plan. Bias the decision slightly in favor of using index lookups on each element of the IN operator. (check-in: 2cbbabdf user: drh tags: trunk)
21:21
Only choose to scan an IN operator rather than use an index if we have real STAT1 data to suggest it is advantageous. (Closed-Leaf check-in: 30e87466 user: drh tags: in-scan-vs-index)
20:58
Add support for the WINDOW clause. (check-in: 19c983b5 user: dan tags: exp-window-functions)
19:54
Merge the btreeNext() assertion bug fix from trunk. (check-in: 11bd66e0 user: drh tags: in-scan-vs-index)
19:13
Fix an assert() that can be false for a corrupt database and a strange query that uses a recursive SQL function to delete content from a corrupt database file while it is being queried. (check-in: 99057383 user: drh tags: trunk)
18:22
Consider doing a partial table scan to fulfill an IN operator rather than using an index. Try to pick the plan with the lowest cost. (check-in: 1fa40a78 user: drh tags: in-scan-vs-index)
16:11
Do not flatten sub-queries that contain window functions. (check-in: 236cb75b user: dan tags: exp-window-functions)
11:45
Fixes to allow group_concat() to be used as a window function. (check-in: 89bbc9ba user: dan tags: exp-window-functions)
2018-06-07
20:35
Merge latest trunk changes with this branch. (check-in: 25102203 user: dan tags: exp-window-functions)
20:08
Add window functions lag() and lead(). (check-in: ef342070 user: dan tags: exp-window-functions)
18:13
The IN-early-out optimization: When doing a look-up on a multi-column index and an IN operator is used on a column other than the left-most column, then if no rows match against the first IN value, check to make sure there exist rows that match the columns to the right before continuing with the next IN value. (check-in: 09fffbdf user: drh tags: trunk)
18:01
Fix the assert()s in the byte-code engine that prove that cursors are unidirectional. (Closed-Leaf check-in: 4b0b4e14 user: drh tags: multikey-opt-idea)
17:45
Add support for window function first_value(). (check-in: 060b2640 user: dan tags: exp-window-functions)
17:32
Remove the NextIfOpen and PrevIfOpen opcodes which are no longer needed when the IN-early-out optimization is working. (check-in: 439c8162 user: drh tags: multikey-opt-idea)
16:07
Test cases. (check-in: 085e8637 user: drh tags: multikey-opt-idea)
15:54
Fix problems with the nth_value() function. (check-in: 63002b9a user: dan tags: exp-window-functions)
15:28
Merge the ".stat/.eqp" CLI fix from trunk. (check-in: a91cad33 user: drh tags: multikey-opt-idea)
15:23
Avoid using a prepared statement for ".stats on" after it has been closed by the ".eqp full" logic. Fix for ticket [7be932dfa60a8a6b3b26bcf76]. (check-in: bb87c054 user: drh tags: trunk)
14:59
Add the WHERE_IN_EARLYOUT flag and use it to clarify the logic of this optimization. (check-in: 522f1eac user: drh tags: multikey-opt-idea)
14:32
Merge recent trunk enhancements. (check-in: e9d7bf4f user: drh tags: multikey-opt-idea)
2018-06-06
23:31
Change a comma into a logically equivalent but semantically clearer semicolon. (check-in: 71f97f0f user: drh tags: trunk)
20:55
More space and performance enhancements to sqlite3VdbeRecordCompare(). (check-in: 83a60ff0 user: drh tags: trunk)
20:51
Add implementation of nth_value() window function. (check-in: eb1fb420 user: dan tags: exp-window-functions)
20:29
Small performance optimization in sqlite3VdbeRecordCompareWithSkip() for the common case where the comparison is equal. (check-in: 1e616e25 user: drh tags: trunk)
19:48
Rearrange the order of some checks in the integrity_check pragma for a very slight performance gain. (check-in: 4b853f02 user: drh tags: trunk)
18:50
Fix the sqlite3BeginTrans() calls within the snapshot extension. (check-in: 1fef7ad2 user: drh tags: trunk)
17:45
Another minor optimization to OP_Transaction. (check-in: d80077ae user: drh tags: trunk)
17:12
Merge the 3.24.0 changes plus a few subsequent enhancements. (check-in: be7004a9 user: drh tags: begin-concurrent-pnu)
17:03
Merge changes from trunk, including all the 3.24.0 changes plus some later enhancements. (check-in: d7299bfe user: drh tags: begin-concurrent)
16:28
Change sqlite3BtreeBeginTrans() to return the BTREE_SCHEMA_COOKIE, for a small speed improvement when starting new transactions. (check-in: a10662aa user: drh tags: trunk)
01:18
Fix the ".archive" command in the CLI (and the corresponding -A command-line option) so that it silently ignores filenames that contain "../" in their names. This prevents the "Zip Slip" attack. (check-in: 27291f2d user: drh tags: trunk)
00:36
Attempt to optimize the resolveExprStep() routine by mapping Expr opcodes into a subset of opcodes that resolveExprStep() cares about and only calling the routine when those opcodes are encountered. Is slightly faster, but it seems like the very slight performance bump is not worth the added complexity. Saved on a dead-end branch for historical reference. (Closed-Leaf check-in: bad4d7a0 user: drh tags: dead-end)
2018-06-05
23:51
Update the version number to 3.25.0 for the next development cycle. (check-in: 7598236c user: drh tags: trunk)
23:21
Avoid unnecessary loads of columns in an aggregate query that are not within an aggregate function and that are not part of the GROUP BY clause. (check-in: e15e1006 user: drh tags: trunk)
20:45
Add the OP_IfNoHope and OP_SeekHit opcodes used to reduce the number of unnecessary sqlite3BtreeMovetoUnpacked() calls when checking for an early exit on IN-operator loops. Futher optimizations are likely possible here. (check-in: 6bf251af user: drh tags: multikey-opt-idea)
20:04
Calculate non-aggregate expressions in the SELECT list of an aggregate query that does not use min() or max() once per group, instead of once per row visited. (Closed-Leaf check-in: dce2dfbe user: dan tags: exp-agg-opt)
16:16
Add implementation of last_value() window function. (check-in: 2493ce1a user: dan tags: exp-window-functions)
15:16
Use an OP_NotFound opcode to cancel futile IN operators early. The current implementation is suboptimal because it always runs teh OP_NotFound. This still needs to be enhanced to only do the OP_NotFound if no results have been seen on the current loop. (check-in: 87a9fc50 user: drh tags: multikey-opt-idea)
13:54
Merge trunk changes. (check-in: 047295c5 user: drh tags: multikey-opt-idea)
13:43
Update and correct the documentation on the OP_OpenRead, OP_OpenWrite, and OP_ReopenIdx opcodes. No code changes other than the addition of an assert(). (check-in: 8a0b730d user: drh tags: trunk)
2018-06-04
19:24
Version 3.24.0 (check-in: c7ee0833 user: drh tags: trunk, release, version-3.24.0)
18:55
Add implementation of window function ntile(). (check-in: 3f093f60 user: dan tags: exp-window-functions)
14:10
Merge changes from trunk. (check-in: 95fbac39 user: drh tags: apple-osx)
13:27
Merge recent changes from trunk. (check-in: f8df2a8e user: drh tags: multikey-opt-idea)
08:28
Merge latest trunk changes into this branch. (check-in: 83d6416a user: dan tags: exp-window-functions)
08:22
Add support for window function cume_dist(). Improve tests for percent_rank(). (check-in: 76543f7d user: dan tags: exp-window-functions)
2018-06-02
21:04
Add support for window functions row_number(), rank(), dense_rank() and percent_rank(). (check-in: 91c1cb7a user: dan tags: exp-window-functions)
19:14
Avoid using a misaligned pointer. (check-in: 1ecb3aa1 user: drh tags: trunk)
19:01
Fix the usage of posix_fallocate() so that it correctly responds to EINVAL returns. (check-in: ce2c3e7a user: drh tags: trunk)
17:00
Update a test case in malloc5.test to take into account that malloc() sometimes returns slightly more space than requested. (check-in: 3d5eae1c user: dan tags: trunk)
16:32
Work around a sanitizer warning about a pointer being only 4-byte aligned instead of 8-byte aligned. (Closed-Leaf check-in: 1b807b51 user: drh tags: align8-fix)
14:37
Proposed fix for the use of posix_fallocate() so that it handles EINVAL returns correctly. (Closed-Leaf check-in: ab3a5539 user: drh tags: einval-from-fallocate)
12:05
Fix the CSV extension so that it works with single-column CSV files. (check-in: e336cf00 user: drh tags: trunk)
11:31
Ensure that sqlite3AuthRead() is only call for TK_COLUMN and TK_TRIGGER expression nodes. This fixes a harmless assert() identified by OSSFuzz. Move the assert() into a position where it is tested even if the authorizer is disabled. (check-in: d0c3beef user: drh tags: trunk)
2018-06-01
21:00
Allow an entire partition to be cached in a temp table for all types of window frames. This is required by nth_value() and others. (check-in: b5b18f66 user: dan tags: exp-window-functions)
13:30
Fix a bug in the SQLITE_ENABLE_SORTER_REFERENCES code causing an out-of-bounds array reference. (check-in: 8cadaf58 user: dan tags: trunk)
2018-05-31
19:14
More documentation typo fixes. No code changes. (check-in: 66c24513 user: drh tags: trunk)
19:00
Fix a harmless typo in a comment used to generate documentation. (check-in: 5a2a88cb user: drh tags: trunk)
2018-05-30
20:44
Allow min() and max() to be used as window functions. (check-in: c16125a8 user: dan tags: exp-window-functions)
14:17
Add the Makefile.fallback makefile to the amalgamation tarball. (check-in: ce3d0456 user: drh tags: trunk)
07:36
Do not use the codec on the resetdb.test script. (check-in: fe55cea0 user: drh tags: trunk)
07:24
Fix a typo in an error message in the CLI. (check-in: 80883980 user: drh tags: trunk)
01:14
Fix the parser so that it builds with -DSQLITE_OMIT_CTE. (check-in: 86ee267e user: drh tags: trunk)
00:59
Fix a harmless compiler warning. (check-in: 8d02c7a6 user: drh tags: trunk)
00:54
Demonstration code on a possible technique for optimizing the use of IN operator on columns to the right of multicolumn indexes. If the OP_Noop generated where were really a new opcode that checked to see if there existed any entries in the index with a matching prefix, it might prevent unnecessary iterations of the IN operator. (check-in: 92f0fe15 user: drh tags: multikey-opt-idea)
2018-05-29
19:12
Increase the number of database handles opened by test script oserror.test to provoke an "out of file-descriptors" error to 20000 (from 2000). (check-in: 3b00f734 user: dan tags: trunk)
17:17
Fix a problem in the geopoly json parser associated with spaces before a coordinate number. (check-in: 9d8d3af8 user: drh tags: rtree-geopoly)
16:37
Fix autoinc.test and resetdb.test so that they work with all permutations. (check-in: 89f56d6b user: dan tags: trunk)
15:18
Add a comment to justify a goto statement. No code changes. (check-in: f141d806 user: drh tags: trunk)
14:29
More minor changes to test scripts. (check-in: ce9b756f user: dan tags: trunk)
14:06
Fix some test script issues caused by recent EXPLAIN QUERY PLAN enhancements. (check-in: f808e228 user: dan tags: trunk)
13:25
Do not run test file "resetdb.test" as part of permutation "inmemory_journal". (check-in: 4921e5ba user: dan tags: trunk)
2018-05-28
23:59
The geopoly virtual table seems to be working. But only thinly tested so far. (check-in: 4288f1ad user: drh tags: rtree-geopoly)
18:30
Further window frame tests and fixes. (check-in: e74c6e91 user: dan tags: exp-window-functions)
18:29
Do not require a statement journal in cases where REPLACE conflict handling is used to insert a single row, so long as the REPLACE operation cannot fire any triggers or foreign key actions. (check-in: 469a62ca user: dan tags: trunk)
18:25
When compiling with SQLITE_DEBUG, add run-time checks to ensure that no statement aborts unless either there have been no writes or else there is a statement journal. (check-in: ce99c772 user: drh tags: trunk)
17:43
Fix the build so that it works with -DSQLITE_TEST_REALLOC_STRESS (Closed-Leaf check-in: 90ba2b2e user: drh tags: stmt-journal-testing)
17:31
When compiling with SQLITE_DEBUG, add run-time checks to ensure that no statement aborts unless either there have been no writes or else there is a statement journal. (check-in: 5a4542db user: drh tags: stmt-journal-testing)
13:23
Untested incremental check-in. Add the geopoly_xform() function. Complete basic logic for the geopoly virtual table. (check-in: ed06cc32 user: drh tags: rtree-geopoly)
2018-05-26
21:17
More fixes for different window frame types. (check-in: 2c85668a user: dan tags: exp-window-functions)
20:04
Merge the ability to plan virtual table queries using overloaded functions. (check-in: 2c2a202c user: drh tags: rtree-geopoly)
18:03
Experimental change that allows overloaded functions to be analyzed by the xBestIndex method and used by the xFilter method of a virtual table. (Leaf check-in: a353b1d7 user: drh tags: vtab-func-constraint)
16:00
Store application-defined function names as lower-case to avoid the need for case conversions before calling xFindFunction on virtual tables. Avoid using lookaside to store the destructors for application defined functions, as lookaside should be reserved for transient allocations. (check-in: 777189ce user: drh tags: trunk)
13:55
Add a single sentence of documentation about the virtual table scan flags. No changes to code. (check-in: 27b4fa5d user: drh tags: trunk)
12:21
Minor correction. (check-in: f20d9a99 user: drh tags: rtree-geopoly)
2018-05-25
22:39
Untested incremental check-in. Basic infrastructure for geopoly in place, except for the MATCH operator. (check-in: b2745191 user: drh tags: rtree-geopoly)
20:53
Incremental check-in: Progress toward implementing the geopoly vtab. (check-in: 9b7d6f98 user: drh tags: rtree-geopoly)
20:30
Fix "RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING" window frame processing. (check-in: b4e9c686 user: dan tags: exp-window-functions)
19:22
Forward port the geopoly extension functions into the r-tree extension, with the idea of creating a new spatial index based on simply polygons. (check-in: 0593aac8 user: drh tags: rtree-geopoly)
14:39
This is an untested proof-of-concept for enhancements to RTree that attempt to use sqlite3_value_nochange() to reduce the amount of work associated with UPDATE operations in cases where either the coordinates or the auxiliary data is unchanged. (Leaf check-in: 6f7cfeff user: drh tags: rtree-update-optimization)
09:36
Merge latest trunk changes into this branch. (check-in: 62325198 user: dan tags: exp-window-functions)
09:29
Fixes for "ROWS BETWEEN <expr> FOLLOWING AND <expr> FOLLOWING" and "ROWS BETWEEN <expr> FOLLOWING AND UNBOUNDED FOLLOWING" (check-in: 5ac44872 user: dan tags: exp-window-functions)
03:46
Add SQLITE_LOCKED_VTAB and SQLITE_CORRUPT_SEQUENCE to sqlite3ErrName(). Also, use SQLITE_CORRUPT_BKPT in one more place. (Leaf check-in: eac8888d user: mistachkin tags: errCodes)
2018-05-24
23:51
When doing a one-pass UPDATE or DELETE on virtual tables, close the cursor prior to running VUpdate. This allows one-pass to work on virtual tables that do not allow concurrent reads and writes. Enhance rtree to take advantage of this new capability. (check-in: b816023c user: drh tags: trunk)
22:42
New test case for reading and writing the same rtree concurrently. (check-in: 3ba08e53 user: drh tags: trunk)
22:31
Do not allow RTree writes when a read cursor is active on the same virtual table, as the writes might rebalance and disrupt the read cursors. Return the new SQLITE_LOCKED_VTAB error code if this happens. (check-in: d4ce6661 user: drh tags: trunk)
21:10
Allow "<expr> PRECEDING" to be used to specify the end of a window frame. (check-in: 7b709a98 user: dan tags: exp-window-functions)
17:49
Support other frame types that use "<expr> PRECEDING" or "<expr> FOLLOWING" as start or end conditions. (check-in: ec7b648c user: dan tags: exp-window-functions)
17:38
In the OOM testing logic, add the sqlite3FirstFault() routine as a place to set a breakpoint the first time any simulated OOM fault occurs for a single test case. (check-in: b4d80bd2 user: drh tags: trunk)
17:25
Fix a typo in a comment used to generate VDBE opcode documentation. No code changes. (check-in: 36cdfbf2 user: drh tags: trunk)
16:18
Addition cases for rtree preformance testing in speedtest1.c. Add the --nodiff option to the speed-check.sh script. (check-in: 95f2d62c user: drh tags: trunk)
13:59
Updates to the sqlite3_vtab_nochange() documentation. No changes to code. (check-in: 5bd99abc user: drh tags: trunk)
2018-05-23
20:55
Add support for "ROWS BETWEEN <expr> PRECEDING AND <expr> FOLLOWING" window frames. (check-in: 3a203660 user: dan tags: exp-window-functions)
17:53
Remove a branch that is no longer used due to the fix to the sqlite_sequence schema problem, ticket [d8dc2b3a58cd5dc2918a1d4acbba4676a23ada4c] (check-in: 06674269 user: drh tags: trunk)
16:50
Verify that the sqlite_sequence table exists and is in approximately the correct format prior to using it to process an autoincrement table. Fix for ticket [d8dc2b3a58cd5dc2918a1d4a]. (check-in: e199e859 user: drh tags: trunk)
2018-05-22
20:36
Merge latest trunk changes into this branch. (check-in: cdb68d2c user: dan tags: exp-window-functions)
20:35
Add comments to window.c describing how other window frames will be implemented. (check-in: 16168146 user: dan tags: exp-window-functions)
2018-05-21
19:45
Begin adding support for more esoteric window frames. (check-in: bc4b81d6 user: dan tags: exp-window-functions)
2018-05-19
14:15
Fix minor problems on this branch. (check-in: 19c2e4b2 user: dan tags: exp-window-functions)
2018-05-18
17:58
Add support for auxiliary columns to the rtree extension. (check-in: c6071ac9 user: drh tags: trunk)
17:17
Merge enhancements from trunk, especially the CLI fixes. (Closed-Leaf check-in: a350040a user: drh tags: aux-data-in-rtree)
17:11
In the CLI, detect and report errors on sqlite3_close(). Clear global variables prior to exit to so that valgrind can better detect resource leaks. (check-in: e3b2e0a0 user: drh tags: trunk)
16:53
Avoid unnecessary sqlite3_finalize() operations. (check-in: 16f71032 user: drh tags: aux-data-in-rtree)
16:46
Fix a prepare-statement leak. (check-in: 95fd296f user: drh tags: aux-data-in-rtree)
15:21
Improved error messages. Limit the number of auxiliary columns to 100. (check-in: 059d20ab user: drh tags: aux-data-in-rtree)
14:24
Improvements to integer/float comparisons on architectures that lack a "long double" type. (check-in: 5139ea62 user: drh tags: trunk)
14:19
Remove incorrect NEVER() macro added by the previous check-in. (Closed-Leaf check-in: 3d662511 user: drh tags: int-float-compare)
13:39
Improvements to the sqlite3IntFloatCompare() routine for systems that lack the long double type. (check-in: ea6a03a8 user: drh tags: int-float-compare)
2018-05-17
20:04
In the CLI with the -A command, if the file does not previously exist and its name looks like a ZIP archive name, then create it as a ZIP archive. (check-in: 33dc8fad user: drh tags: trunk)
19:24
Evaluate multiple window functions in a single pass if they use the same window definition. Add xValue callbacks for other built-in aggregate functions. (check-in: c9f0f140 user: dan tags: exp-window-functions)
14:26
Handle multiple window-functions in a single query. (check-in: 35af0b75 user: dan tags: exp-window-functions)
14:09
Improved error and help messages for the ".archive" command and "-A" option to the CLI. If a memory leak in --list processing. (check-in: 02541ac6 user: drh tags: trunk)
13:29
Fix memory errors associated with argv in the CLI when it is compiled on Windows. (check-in: 4474d69b user: drh tags: trunk)
2018-05-16
20:58
Start of experimental implementation of SQL window functions. Does not yet work. (check-in: 3781e520 user: dan tags: exp-window-functions)
19:56
Fix an issue with rtreecheck() and auxiliary data columns. (check-in: 46715136 user: drh tags: aux-data-in-rtree)
19:07
Do not allow auxiliary columns in the rtree to interfere with query planning. Begin adding test cases. (check-in: 9abe023e user: drh tags: aux-data-in-rtree)
18:18
Fix the OOM issue mentioned in the previous check-in. (check-in: c489d8e4 user: drh tags: aux-data-in-rtree)
17:57
Initial implementation of the ability to have auxiliary columns in an rtree virtual table that store arbitrary content. It mostly works, but there are some minor issues in OOM corner cases. (check-in: 0c87fec9 user: drh tags: aux-data-in-rtree)
15:35
Enhance the sqlite3_str_new() interface so that it always returns a valid and non-NULL pointer even in an OOM condition. (check-in: ed5b0968 user: drh tags: trunk)
12:19
Correct output for the fullkey column of json_each() when the total JSON input is a simple value, not an array or object. (check-in: b45b1885 user: drh tags: trunk)
2018-05-15
11:55
Merge latest trunk changes into this branch. (check-in: 72f39efa user: dan tags: begin-concurrent-pnu)
11:45
Merge latest trunk changes with this branch. (check-in: ae86cf60 user: dan tags: begin-concurrent)
11:33
Instead of just the flags byte, include the first 8 bytes of the relevant page in an on-commit conflict log message. (check-in: 52e443eb user: dan tags: begin-concurrent-pnu)
11:28
Instead of just the flags byte, include the first 8 bytes of the relevant page in an on-commit conflict log message. (check-in: e7dc03e7 user: dan tags: begin-concurrent)
09:09
Fix a test case problem in wherelimit.test. (check-in: 3012df8b user: dan tags: trunk)
09:03
Include the value of the "flags" byte of the relevant page in the log message emitted when a BEGIN CONCURRENT commit conflict is detected. (check-in: de19abb9 user: dan tags: begin-concurrent-pnu)
08:51
Include the value of the "flags" byte of the relevant page in the log message emitted when a BEGIN CONCURRENT commit conflict is detected. (check-in: fbfa5471 user: dan tags: begin-concurrent)
2018-05-14
22:46
Make more aggressive use of automatic indexes when processing materalized views and subqueries. (check-in: 172f5bd2 user: drh tags: trunk)
18:09
The restriction on using automatic indexes for low cardinality loops only applies if the cardinality is restricted by a LIMIT clause. (Closed-Leaf check-in: 991a76bf user: drh tags: exp-indexed-clause)
17:12
Experimental syntax enhancement for an "INDEXED" keyword following a FROM-clause subquery that indicates that an automatic index on that subquery is suggested. (check-in: 32b3d110 user: drh tags: exp-indexed-clause)
15:26
Convert the schema creation logic in the rtree extension to use the new sqlite3_str interface. (check-in: fd8b8c41 user: drh tags: trunk)
12:23
Fix typo in the shell.c source file. (check-in: 389dc0a9 user: mistachkin tags: trunk)
00:41
Export the deduceDatabaseType() function the shell.c source file. (check-in: d0f35739 user: drh tags: trunk)
00:23
Add the --append option to the ".backup" command in the CLI. (check-in: 0dfdbdee user: drh tags: trunk)
2018-05-12
23:59
Add test cases for geopoly_overlap(). (Later:) This branch is closed and the development of the geopoly logic is moved to the rtree-geopoly branch. (Closed-Leaf check-in: 39209251 user: drh tags: geojson)
23:56
Merge changes from trunk. (check-in: 715740e3 user: drh tags: geojson)
23:56
In the CLI, allow comment lines that begin with '#', but only in a context where a dot-command is allowed. In other words, '#' at the beginning of a line in the middle of an SQL statement is just part of the SQL. (check-in: 4ee136d6 user: drh tags: trunk)
23:31
Resolve issues with floating-point round-off error in the geopoly_overlap() routine. (check-in: a3c6696f user: drh tags: geojson)
21:09
Add the geopoly_svg() SQL function. (check-in: 318ba5f0 user: drh tags: geojson)
20:28
Preliminary tests show geopoly_overlap() is working. (check-in: 77bb7b7d user: drh tags: geojson)
16:05
An initial attempt at an overlap function in the geopoly extension. (check-in: c857976e user: drh tags: geojson)
2018-05-11
19:11
In the CLI, return non-zero if there are errors on the command-line. (check-in: 13e7300a user: drh tags: trunk)
16:50
Add the geopoly_within() SQL function. (check-in: 927d52a9 user: drh tags: geojson)
15:38
Add the geopoly_read() SQL function to the geopoly.c extension. (check-in: b37625e8 user: drh tags: geojson)
15:10
Fix a typo in the help message from the ".sha3sum" command in the CLI. (check-in: dba87a20 user: drh tags: trunk)
15:10
Make sure the open_db() routine in the CLI does not invoke access() with a NULL filename. (check-in: 20a8c611 user: drh tags: trunk)
14:02
Fix a typo in the help message from the ".sha3sum" command in the CLI. (check-in: e76f676c user: drh tags: geojson)
14:00
Make sure the open_db() routine in the CLI does not invoke access() with a NULL filename. (check-in: 2b8fd3b4 user: drh tags: geojson)
2018-05-09
16:32
Add a test case to check that the fts5 unicode64 tokenizer is dealing with codepoints greater than 65535 correctly. (check-in: 9f7a6ae8 user: dan tags: trunk)
15:27
The translation in and out of GeoJSON automatically adds or removes the redundant last vertex, as necessary. (check-in: 2653bedd user: drh tags: geojson)
15:20
Fix the geopoly_json() SQL function so that it works. (check-in: 236588d5 user: drh tags: geojson)
15:19
Merge from trunk the ability to use sqlite3_sql interfaces in extensions. (check-in: 5bb9e6a9 user: drh tags: geojson)
15:17
Add 14 new interfaces to the loadable extension mechanism. (check-in: 0e809cdc user: drh tags: trunk)
15:00
Add the geopoly_json() interface. Untested. (check-in: 25695c80 user: drh tags: geojson)
14:33
Merge trunk changes, and especially the newly published sqlite3_str interface. (check-in: f3609aef user: drh tags: geojson)
14:29
Fix minor problems with the sqlite3_str interface. (check-in: 43ea8a68 user: drh tags: trunk)
13:46
Make the internal dynamic string interface available to extensions using the new sqlite3_str object and its associated methods. This is mostly just a renaming of internal objects and methods to use external names, through there are a few small wrapper functions. (check-in: 87f261f0 user: drh tags: trunk)
10:11
Fix a typo in a comment used for documentation. No code changes. (check-in: b866693e user: drh tags: trunk)
02:23
Version 3.23.2 (Leaf check-in: f139f6f0 user: drh tags: release, branch-3.23, version-3.23.2)
2018-05-08
23:17
Correctly format the STAT1 and STAT4 content in the output from the ".fullschema" command in the CLI. Fix for ticket [e63a34a0045832dc850367552]. (check-in: 0c3f128f user: drh tags: trunk)
22:47
Experiments with routines for processing GeoJSON. (check-in: d22fbff2 user: drh tags: geojson)
13:32
Merge changes from trunk, especially the activation of the cell-overwrite optimization for indexes and WITHOUT ROWID tables. (check-in: a016144b user: drh tags: apple-osx)
13:03
Fix a harmless compiler warning in fuzzcheck. Add new OSSFuzz test cases to the test case library. (check-in: d2619746 user: drh tags: trunk)
12:49
Fuzz test cases for UPSERT. (check-in: fd11fbd2 user: drh tags: trunk)
2018-05-07
18:41
Activate the cell-overwrite optimization for index b-trees. (check-in: a68697d1 user: drh tags: trunk)
17:27
Improved comments on the cell-overwrite optimization code. (check-in: a4fe966d user: drh tags: trunk)
13:01
Merge enhancements from trunk, and especially the cell-overwrite optimization. (check-in: cb3aa778 user: drh tags: apple-osx)
11:48
On an UPDATE, try to overwrite an existing btree cell with the modified content, if the old and new cell are the same size. Use memcmp() first to avoid dirtying pages that are unchanged. (check-in: 5887d8be user: drh tags: trunk)
11:37
Fix harmless compiler warnings associated with the new EXPLAIN QUERY PLAN logic. (check-in: 374d8e26 user: drh tags: trunk)
11:29
Fix harmless compiler warnings in the cell-overwrite logic. (Closed-Leaf check-in: 3e11dc31 user: drh tags: cell-overwrite-prototype)
02:50
Backout change [05fee1a21ea398f1e4d6f1cf3] because it does not take into account the LD_LIBRARY_PATH environment variable used by dl_open(). (check-in: b348d119 user: drh tags: trunk)
2018-05-05
16:50
In an ORDER BY LIMIT, make sure the ORDER BY expression evaluator does not try to reuse values from the result set if the result set has not yet be computed. This fixes a bug in the recent deferred-row loading optimization, check-in [c381f0ea57002a264fd958b28e]. OSSFuzz discovered the problem. (check-in: 5d61e75f user: drh tags: trunk)
01:23
Fix a slightly incorrect corruption detection branch in the btree logic. (check-in: 9191ff67 user: drh tags: trunk)
2018-05-04
20:00
Bring the code that changes the owner of WAL and rollback files when running as root into alignment with trunk. (check-in: 180516bf user: drh tags: apple-osx)
19:33
Merge recent enhancements from trunk. (check-in: e17bca2c user: drh tags: apple-osx)
19:18
Merge enhancements from trunk. (check-in: 9650f71b user: drh tags: cell-overwrite-prototype)
18:32
Fix requirements marks. No code changes. (check-in: 7fdad122 user: drh tags: trunk)
04:49
For the amalgamation-tarball, enable FTS5 and JSON1 by default and provide a new --enable-debug option that actives debugging facilities. (check-in: 03edecaf user: drh tags: trunk)
00:39
Make a separate limb in the EXPLAIN QUERY PLAN output for the various lines associated with the OR-optimization. (check-in: 75ac7b4e user: drh tags: trunk)
2018-05-03
23:20
In ORDER BY LIMIT queries, try to evaluate the ORDER BY terms first, and it it becomes clear that the row will not come in under the LIMIT, then skip evaluation of the other columns. (check-in: c381f0ea user: drh tags: trunk)
22:52
Fix a branch that has become unreachable due to recent enhancements. (check-in: 81ab5e0d user: drh tags: trunk)
21:51
Improved security for VACUUM. This check-in combines the fixes of [ab0d99d0b5ede] and [27754b74ddf646] in a way that is less likely to to be broken by future changes. (check-in: 260fc696 user: drh tags: trunk)
19:56
Overhaul of EXPLAIN QUERY PLAN. The output is now in the form of a tree. More details of the query plan are shown, and what is shown is truer to what actually happens. (check-in: ff01bbda user: drh tags: trunk)
19:47
Optimizations to the new EQP framework. (Closed-Leaf check-in: 956fef36 user: drh tags: rework-EQP)
16:56
Fix various error handling conditions on the cell overwrite optimization. Fix a test case so that it works with the new optimization. (check-in: f89b54f4 user: drh tags: cell-overwrite-prototype)
14:07
The BtCursor.info fields are only valid if info.nSize!=0. (check-in: 54c537ee user: drh tags: cell-overwrite-prototype)
13:56
Add more corruption checking to the cell overwrite logic. (check-in: 58d14afe user: drh tags: cell-overwrite-prototype)
12:57
Bug fixes in the overwrite optimization. (check-in: 0cb6cd2a user: drh tags: cell-overwrite-prototype)
03:59
The sqlite3BtreeInsert() routine tries to overwrite an existing cell with modified content if the new content is the same size. Pages are only dirtied if they change. This prototype works some, but still has issues. (check-in: 489451b3 user: drh tags: cell-overwrite-prototype)
01:37
Enhance EXPLAIN QUERY PLAN to report the generation of constant rows using VALUES or just a SELECT without FROM. (check-in: c75eee69 user: drh tags: rework-EQP)
2018-05-02
19:42
More test case updates. Tests are all running now. (check-in: dab5e529 user: drh tags: rework-EQP)
18:00
Fix test cases so that they work with the new EXPLAIN QUERY PLAN output format. Only some of the cases have been fixed. This is an incremental check-in. (check-in: 5f0e803e user: drh tags: rework-EQP)
16:13
Improved EQP output for recursive CTEs and multi-value VALUES clauses. (check-in: f2f52554 user: drh tags: rework-EQP)
15:00
Prevent VACUUM from running any commands in sqlite_master.sql other than CREATE statements. That is all that should be there anyhow. This fixes a problem discovered by OSSFuzz. Test cases in TH3. (check-in: ab0d99d0 user: drh tags: trunk)
14:24
Fix a dangling-else problem that was causing recursive CTEs to malfunction. Begin fixing test cases to work with the new EQP output. (check-in: 82ca44b8 user: drh tags: rework-EQP)
08:12
Fix a problem in the xBestIndex method of the closure extension causing it to allocate non-contiguous argvIndex values in some cases (an "xBestIndex malfunction" error). (check-in: 0c671507 user: dan tags: trunk)
03:03
Add sqlite3_win32_set_directory8() and sqlite3_win32_set_directory16() functions. (check-in: 6cf0f4e2 user: mistachkin tags: branch-3.23)
03:01
Add sqlite3_win32_set_directory8() and sqlite3_win32_set_directory16() functions. (check-in: 22089ea2 user: mistachkin tags: trunk)
02:22
Improvements to the EQP display for compound select statements. (check-in: 699a77e4 user: drh tags: rework-EQP)
00:33
Begin reengineering the EXPLAIN QUERY PLAN function to provide more intuitive output. (check-in: 70b48a79 user: drh tags: rework-EQP)
2018-05-01
18:39
The SQLITE_ALLOW_SQLITE_MASTER_INDEX compile-time option allows a CREATE INDEX statement against the sqlite_master table. Once created, the index works, and is usable by legacy instances of SQLite. (check-in: 853f3163 user: drh tags: trunk)
01:18
The ".selecttrace 0x4000" command causes the AST to be output to stdout as a table with four columns. (Leaf check-in: 2a75e631 user: drh tags: ast-trace-demo)
2018-04-30
19:32
Defer loading result column values into registers on an ORDER BY LIMIT until we know that the LIMIT does not exclude the current row. (Closed-Leaf check-in: ce4ef460 user: drh tags: faster-order-by-limit)
2018-04-28
19:08
Test cases added for SQLITE_DBCONFIG_RESET_DATABASE. (check-in: 08665a9e user: drh tags: trunk)
18:20
Fix an RBU problem causing spurious SQLITE_CONSTRAINT errors when restarting an RBU update in which more than one source table writes to a single target database table. (check-in: 564ae829 user: dan tags: trunk)
13:21
Add the SQLITE_DBCONFIG_RESET_DATABASE control for resetting a corrupt database file without closing any database connections. Added the ".dbconfig" command to the CLI. (check-in: a200a49e user: drh tags: trunk)
12:43
Add the SQLITE_DBCONFIG_RESET_DATABASE control as a replacement for the reset_database pragma. Resetting the database should be hard enough to do that it cannot be done by accident. (Leaf check-in: ff836cb8 user: drh tags: reset-database)
11:22
Merge updates from trunk. (check-in: 94877e49 user: drh tags: reset-database)
04:16
Prevent deep recursions on nested COLLATE operators. (check-in: 6e098ee4 user: drh tags: trunk)
04:10
Fix compiler warnings in FTS3. (check-in: de508e83 user: drh tags: trunk)
01:48
Document and expose sqlite3_win32_set_directory() function for use on Win32. (check-in: f677065a user: mistachkin tags: branch-3.23)
01:46
Document and expose sqlite3_win32_set_directory() function for use on Win32. (check-in: 7626b593 user: mistachkin tags: trunk)
01:44
Add comments about the intended use of the sqlite3_data_directory variable as it pertains to the sqlite3_win32_set_directory function. (Closed-Leaf check-in: d11c4197 user: mistachkin tags: win32dir)
01:37
Bump the version number to 3.23.2. (check-in: 242dc910 user: drh tags: branch-3.23)
01:27
Add the "PRAGMA reset_database=ON|OFF" command. When on, it causes the database to appear to be empty, causing the next transaction to reset it to an empty database. (check-in: 02e1a13c user: drh tags: reset-database)
2018-04-27
22:42
Document and expose sqlite3_win32_set_directory() function for use on Win32. (check-in: cbce7180 user: mistachkin tags: win32dir)
20:49
Better comments on the bindvtab.c implementation. All the two-argument version of the .set command. All bindings from .set and -D are still string. (Leaf check-in: 7b2a65a6 user: drh tags: shell-bindings)
18:05
Update test script fts3expr4.test so that it always creates fts3 tokenizers in the "en_US" locality. (check-in: 576a8f69 user: dan tags: trunk)
17:39
Add the ability to use bind parameters in the CLI. The new ".set KEY=VALUE" dot-command works to set bindings. Or use the "-Dkey=value" command-line option. Or use the built-in shell_bindings(k,v) virtual table to set, delete, or changing bindings. (check-in: 1f2944d1 user: drh tags: shell-bindings)
16:35
Fix a test script error causing tests to fail in soak.test. (check-in: 462b52b1 user: dan tags: trunk)
15:17
Enhance the comments in the templatevtab.c implementation. (check-in: 05f6278a user: drh tags: trunk)
2018-04-26
18:34
The previous fix for ticket [d85fffd6ffe856092ed8da] in check-in [0a514e62ad1ebe5c12da8dae] did not completely address the probably in that it only worked for cases where the OP_SCopy that loaded the register was the last instruction in the sequence for the expression, which is not necessarily the case for expressions like CASE...END. This revision prevents the registered that will be recomputed from being cached in the first place. (check-in: 9fd0faf5 user: drh tags: trunk)
18:01
Merge latest changes from trunk. Including the "ORDER BY ... LIMIT" optimization. (check-in: 83a4c9f0 user: dan tags: begin-concurrent-pnu)
17:54
Merge latest changes from trunk. Including the "ORDER BY ... LIMIT" optimization. (check-in: d8ae7ba0 user: dan tags: begin-concurrent)
17:43
When processing an "ORDER BY ... LIMIT" that does not use an index, check whether or not a record may appear in the final result set before adding it to the temp b-tree used for sorting. (check-in: 0fcfc36c user: dan tags: trunk)
16:13
When processing an "ORDER BY ... LIMIT" that does not use an index, check whether or not a record may appear in the final result set before adding it to the sorter. (Closed-Leaf check-in: 71bf91c2 user: dan tags: sorter-limit-opt)
15:50
Ensure that new.* values of an UPDATE do not get clobbered after the BEFORE triggers run when unmodified columns of the row being updated are reloaded. Fix for ticket [d85fffd6ffe856092ed8da] (check-in: 0a514e62 user: drh tags: trunk)
15:04
Clarification of the behavior of a BEFORE UPDATE trigger when the trigger changes the values of some of the columns used to compute new columns in the UPDATE. (check-in: 7bb23c2a user: drh tags: trunk)
12:27
Improved VDBE comment on the OP_Param opcode. No substantial changes. (check-in: 368c14da user: drh tags: trunk)
08:56
Update the "fuzz_malloc.test" script to print SQL statements in which OOM handling problems are found to stdout. (check-in: a956363c user: dan tags: trunk)
2018-04-25
19:02
Add new interfaces for accessing the list of SQL keywords: sqlite3_keyword_count(), sqlite3_keyword_name(), sqlite3_keyword_check(). (check-in: 7dd34e37 user: drh tags: trunk)
17:10
Add the new DO and NOTHING keywords to the keyword lists maintained by various extensions and auxiliary programs. (check-in: 77a98a07 user: drh tags: trunk)
13:27
Add the new SQLITE_SHELL_INIT_PROC compile-time entry point to the CLI. This is needed to work around the tighter sqlite3_config() constraints now in the CLI. (check-in: 3bcdbccf user: drh tags: trunk)
12:01
Avoid many unnecessary calls to sqlite3ReadSchema() and sqlite3Init() when the schema is known to be valid already. (check-in: 58cf812f user: drh tags: trunk)
10:30
Add an assert() to ensure that schema mutexes are held prior to accessing the DB_SchemaLoaded flag inside of sqlite3Init(). (check-in: d8b46290 user: drh tags: trunk)
2018-04-24
19:22
Update this branch with latest changes from trunk. (check-in: 2d8d13e4 user: dan tags: begin-concurrent-pnu)
19:21
Merge latest trunk changes into this branch. (check-in: b27bd799 user: dan tags: begin-concurrent)
18:59
Remove a recently added NEVER() macro from a branch that can be taken in obscure circumstances. (check-in: 2aa21003 user: dan tags: trunk)
18:53
Fix a problem with processing "LEFT JOIN tbl ON tbl.a = ? AND (tbl.b=? OR tbl.c=?)" in cases where there are indexes on both tbl(a, b) and tbl(a, c). (check-in: ce35e39c user: dan tags: trunk)
17:34
Do not attempt to use terms from the WHERE clause to drive indexes on the right table of a LEFT JOIN. Fix for ticket [4ba5abf65c5b0f9a96a7a40cd18b] (check-in: aeb694e3 user: drh tags: trunk)
16:51
Update the expert extension test cases to account for the fact that EXPLAIN QUERY PLAN now shows the start of each trigger in its output. (check-in: 8acb42f4 user: drh tags: trunk)
16:41
All the OR optimization to proceed even if the OR is also converted into an IN operator. (check-in: e252c654 user: drh tags: trunk)
14:18
Add a hyperlink to the ticket on the code comment for the fix to ticket [7fa8049685b50b5aeb0c2]. (check-in: 45247c7f user: drh tags: trunk)
14:05
Do not attempt to read values from indexes-on-expressions if the index is on the RHS of a LEFT JOIN. This won't work if the index cursor points at a null-row. Fix for [7fa80496]. (check-in: b8ef967a user: dan tags: trunk)
13:07
Enhance the CLI to render EXPLAIN QUERY PLAN using an ASCII-art graph. This works with ".eqp" modes and when the query begins with exactly "EXPLAIN QUERY PLAN". To see the original output format, add extra space characters in between words of the initial "EXPLAIN QUERY PLAN". (check-in: f53716ee user: drh tags: trunk)
10:57
Fix a memory leak following failure to open an external CSV file in the csv.c extension. (check-in: 526ee07d user: drh tags: trunk)
01:10
In EXPLAIN QUERY PLAN output, do not show an EXECUTE LIST SUBQUERY line for IN operators where the RHS is a list and not a subquery, since in that case there is no SUBQUERY to execute. (check-in: 8bc0207a user: drh tags: trunk)
00:08
Fix to check-in [ca34c2dd20ee071e] - avoid a NULL pointer dereference following an OOM. (check-in: c7e6e848 user: drh tags: trunk)
2018-04-23
20:38
Fix a problem in sqlite3ExprCompare() associated with UPSERT. (check-in: 67d0b2c1 user: drh tags: trunk)
20:04
Fix a formatting issue in the TreeView output for bare expression lists. (check-in: a6356817 user: drh tags: trunk)
19:30
Disable the OR optimization based on expressions in the ON clause of a LEFT JOIN. This is a temporary measure until we can devise a better fix. (Closed-Leaf check-in: 4df5ea93 user: drh tags: begin-concurrent-pnu-tempfix)
18:38
Add the ".imposter off" variant of the ".imposter" dot-command in the CLI. (check-in: d3dad06f user: drh tags: trunk)
17:43
The ".selecttrace 0x2000" command causes just the top-level parse tree to be displayed, after all transformations, and showing the EQP iSelectId at each level. (check-in: ca34c2dd user: drh tags: trunk)
17:18
The ".selecttrace 4" command now shows only a single parse tree after name resolution. (check-in: 5682146e user: drh tags: trunk)
17:09
Do not restore the iSelectId value until after the last SELECTTRACE when debugging Select processing. (check-in: 8088d8ca user: drh tags: trunk)
17:02
In the ".selecttrace" output, include the EXPLAIN QUERY PLAN iSelectId as part of each Select identifier. (check-in: 5c6339f9 user: drh tags: trunk)
13:28
Ensure that there are no bind-parameters or incorrect schema references in the UPSERT portions of an INSERT within a TRIGGER. (check-in: d47a6bdd user: drh tags: trunk)
00:25
Fix an unreachable branch associated with stack overflow in the LEMON-generated parser. (check-in: e3064ba3 user: drh tags: trunk)
2018-04-21
22:40
Performance improvements on the main loop of the LEMON-generated parser. (check-in: fec1ebad user: drh tags: trunk)
20:24
Enhance LEMON to track which symbols actually carry semantic content. Output the list of symbols that do not carry content at the end of the report, but do not (yet) do anything else with the information. (check-in: dcf2bafc user: drh tags: trunk)
14:11
A few more tests for upsert. (check-in: b78005b6 user: dan tags: trunk)
13:51
Add the %extra_context directive to lemon, as an alternative to %extra_argument. Use this to improve the performance of the parser. (check-in: be47a6f5 user: drh tags: trunk)
03:06
Fix UPSERT so that it plays nicely with AUTOINCREMENT. (check-in: 359725ab user: drh tags: trunk)
2018-04-20
20:47
Add the -dDIRECTORY command-line option to LEMON. (check-in: 9cd20475 user: drh tags: trunk)
20:37
Enhance the "rbu" command line utility a bit. (check-in: 61eb516f user: dan tags: trunk)
20:09
Fix a harmless compiler warning. (check-in: d2ab24f5 user: drh tags: trunk)
19:46
Avoid the use of statement journals on DELETEs of a single row without triggers or foreign keys. (check-in: 20bf5800 user: drh tags: trunk)
19:32
Avoid opening a statement journal on single-row UPDATEs without triggers or FK constraints. (check-in: 2772404b user: drh tags: trunk)
18:01
Fix a VDBE comment on upsert. Provide an error message when upsert detects index corruption. (check-in: 279c48f6 user: drh tags: trunk)
17:50
Add tests for name resolution in ON CONFLICT clauses. (check-in: cf253584 user: dan tags: trunk)
17:02
Avoid unnecessary cursor seeking when performing an UPSERT. (check-in: 693a3dcb user: drh tags: trunk)
16:49
Improved VDBE comment on UPSERT code. (Closed-Leaf check-in: 131ed95e user: drh tags: upsert-opt2)
16:27
Minor simplification of the previous checkin. (check-in: d1906689 user: drh tags: upsert-opt2)
15:56
Avoid unnecessary cursor seeks during upsert processing. (check-in: 7c4b6d54 user: drh tags: upsert-opt2)
15:34
Add test cases for UPSERT. And a fix for a "REPLACE INTO ... ON CONFLICT" statement where the new row conflicts with both the IPK and the ON CONFLICT indexes. (check-in: d8eb9f8d user: dan tags: trunk)
13:18
Enhance UPSERT so that the UPDATE uses the same set of cursors as the INSERT. (check-in: c37f39d1 user: drh tags: trunk)
00:40
Minor simplification of the cursor allocation logic for update. (check-in: fdf71be6 user: drh tags: trunk)
2018-04-19
23:52
Fix the handling of "PRAGMA count_changes=ON" with UPSERT. Also improved the implementation of count_changes in other places, without changing the behavior. (check-in: c6f71115 user: drh tags: trunk)
21:29
Minor simplification to the upsert logic. (check-in: e657c1d6 user: drh tags: trunk)
20:18
Avoid unnecessary OP_Goto instructions on an upsert of a table that only has a single secondary index. (Leaf check-in: 97dd21ab user: drh tags: upsert-opt)
20:06
Modify a test case in zipfile2.test to take into account that with some platform/file-system combinations it is possible to fopen() and fread() (but not fwrite()) a directory. (check-in: 893e6089 user: dan tags: trunk)
16:52
Add the --upsert option to the wordcount test program. (check-in: ee1e750b user: drh tags: trunk)
16:14
Add the ext/misc/templatevtab.c template for virtual tables. This is a work-in-progress as it still needs improvements to the comments in order to be useful as a template. (check-in: 22358fb5 user: drh tags: trunk)
13:52
Fix a problem in the new upsert implemention, discovered by OSSFuzz. (check-in: b6d5ea59 user: drh tags: trunk)
11:45
Fix the table name aliasing on INSERT so that it occurs before the column list rather than afterwards, just as it does for PostgreSQL. Add table name aliasing to UPDATE and DELETE. (check-in: 861a2e2a user: drh tags: trunk)
2018-04-18
19:56
Add the "sorter-reference" optimization, allowing SQLite to be configured so that some required values may be loaded from the database after external sorting occurs for SELECT statements with ORDER BY clauses that are not satisfied by database indexes. (check-in: ef74090a user: dan tags: trunk)
19:45
Minor changes to test script upsert4.test. (check-in: 0cb83c84 user: dan tags: trunk)
19:08
Avoid a NULL-pointer deref following OOM. (Closed-Leaf check-in: 413015c0 user: drh tags: sorter-reference)
18:19
Fix a test case inside distinct.test. (check-in: 61cb8a39 user: drh tags: trunk)
18:18
Improved matching of COLLATE clauses within the ON CONFLICT conflict-target. (check-in: 8f4376e5 user: drh tags: trunk)
17:56
Add extra test cases for UPSERT. (check-in: 7ea08d07 user: dan tags: trunk)
17:52
Fix a problem in the sqlite3ExprCompare() function that caused two dissimilar expressions to match if they have the same "COLLATE name" at the outer layer. (check-in: fb16348a user: drh tags: trunk)
16:03
Add support for PostgreSQL UPSERT syntax and functionality. (check-in: fba24aec user: drh tags: trunk)
15:33
Fix the build for SQLITE_OMIT_UPSERT (Closed-Leaf check-in: 32956519 user: drh tags: upsert)
15:21
Add the --sorterref N option to the CLI. (check-in: 902a4089 user: drh tags: sorter-reference)
14:48
Omit some code not used without SQLITE_ENABLE_SORTER_REFERENCES. Improvements to comments used for documentation. (check-in: f3596ab9 user: drh tags: sorter-reference)
14:04
Remove an unused local variable. (check-in: 9afeb0c8 user: drh tags: sorter-reference)
11:35
Enhance ALTER TABLE ADD COLUMN to support "DEFAULT true" and "DEFAULT false". (check-in: 594ebc69 user: drh tags: trunk)
10:44
Add checks to the CLI that issue a warning if SQLite gets initialized prior to the last sqlite3_config() call. (check-in: 40b11734 user: drh tags: trunk)
09:16
Fix a problem in the shell preventing it from working with SQLITE_OMIT_AUTOINIT builds. (check-in: 89209000 user: dan tags: trunk)
01:34
Add new testcase() macros and fix a bug that was revealed when trying to cover all the new test cases. (check-in: 266a99f7 user: drh tags: upsert)
2018-04-17
21:59
Remove unreachable branches. 100% MC/DC in TH3 now. (check-in: 558865d5 user: drh tags: upsert)
20:09
Added a comment on the assert() added to the previous check-in. (check-in: 542547c1 user: drh tags: upsert)
20:06
Fixes to the logic for constraint check reordering during upsert. Improved comments on constraint check bytecode. Add an assert that prevents the same label from being resolved more than once. (check-in: 1ddbb0ff user: drh tags: upsert)
19:29
During PRAGMA vdbe_addoptrace=ON, show calls to sqlite3VdbeResolveLabel() in the debugging output. (check-in: 9ff07a06 user: drh tags: upsert)
18:50
TK_REGISTER expressions nodes are probably not constant. Make sure sqlite3ExprIsConstant() knows this. (check-in: f3d91cad user: drh tags: upsert)
18:18
Simplification to the upsert logic. (check-in: f36d07a5 user: drh tags: upsert)
18:16
Add some more simple test cases for UPSERT. And a minor fix. (check-in: 27cd3b2f user: dan tags: upsert)
16:16
New test cases for upsert. (check-in: 907b5a37 user: drh tags: upsert)
2018-04-16
21:12
Add SQLITE_CONFIG_SORTERREF_SIZE configuration option. (check-in: b25a7bb7 user: dan tags: sorter-reference)
14:36
Merge the Lemon enhancement from trunk, resulting in smaller parser tables. (check-in: 641f4172 user: drh tags: upsert)
14:31
Lemon enhancements: (1) Do not allocate space for the 'error' non-terminal if it is not used. (2) Fix an off-by-one problem so that 'unsigned char' can be used for symbol numbers if the number of symbols is 256. (check-in: 3b7801ac user: drh tags: trunk)
13:26
Remove the MySQL upsert syntax. As an optional alias to the insert table name in order to finish out PostgreSQL upsert syntax emulation. (check-in: 810d9f63 user: drh tags: upsert)
13:00
Add support for the "excluded.*" names in the UPDATE clause of an upsert. (check-in: 0203f34f user: drh tags: upsert)
10:47
Merge changes from trunk. (check-in: 54d96772 user: drh tags: upsert)
10:41
Increase the version number to 3.24.0 (check-in: f94528e1 user: drh tags: trunk)
10:34
Reduce the size of the NameContext object by grouping seldom-used fields into a union. (check-in: dba3095f user: drh tags: trunk)
2018-04-14
22:35
Get upsert working on WITHOUT ROWID tables. (check-in: d3c53fd3 user: drh tags: upsert)
20:24
Make sure constraint checks occur in the correct order, even in the presence of upserts. (check-in: 07fb30c3 user: drh tags: upsert)
18:46
Experimental change to "SELECT * FROM ... ORDER BY" processing to load some column values from the db after sorting. (check-in: 9719cb46 user: dan tags: sorter-reference)
2018-04-13
21:55
First cut at logic to perform DO UPDATE for rowid tables. (check-in: a9080bc8 user: drh tags: upsert)
18:59
Add infrastructure for doing an UPDATE as part of an UPSERT. Still no actual UPDATE code, however. (check-in: 6d3017f9 user: drh tags: upsert)
16:29
Merge the preupdate hook change from trunk. (check-in: 7353caab user: drh tags: upsert)
16:23
Remove an always-true branch from the preupdate hook logic. (check-in: 0ab45188 user: drh tags: trunk)
15:14
Get the ON CONFLICT DO NOTHING form of upsert working by mapping it into INSERT OR IGNORE. (check-in: d07f05e9 user: drh tags: upsert)
14:27
Get the conflict-target clause parsing working correctly, with test cases. This change involves an enhancement to sqlite3ExprCompare() which needs to be reviewed on trunk prior to merging. (check-in: 5bf70425 user: drh tags: upsert)
13:44
Improved conflict-target matching logic. (check-in: 98d32ba6 user: drh tags: upsert)
13:06
Back off of the extended upsert syntax that allows multiple ON CONFLICT clauses. The syntax now is exactly as in PostgreSQL and MySQL. Add support for WHERE clauses on the conflict-target phrase, for partial indexes. (check-in: 2c1b1987 user: drh tags: upsert)
01:15
Begin adding upsert logic. This is an incremental check-in. (check-in: 80969643 user: drh tags: upsert)
2018-04-12
21:42
Break out the upsert code into a separate source file. (check-in: 389806b0 user: drh tags: upsert)
20:21
Fix another typo in a comment. (check-in: 046bb6d2 user: drh tags: upsert)
19:51
Simple comment clarification. No code or logic changes. (check-in: a26f9c9f user: drh tags: upsert)
17:28
Extend the upsert syntax to allow a WHERE clause on the UPDATE. (check-in: e4396c54 user: drh tags: upsert)
15:43
Update the upsert parsing so that it accepts conflict-target labels using the PostgreSQL syntax, and also accepts the MySQL "ON DUPLICATE KEY" syntax. (check-in: c48f64d8 user: drh tags: upsert)
13:15
Add the Upsert object for holding upsert clause information. (check-in: d83eaed5 user: drh tags: upsert)
12:25
Merge changes from trunk. (check-in: 9f6f1180 user: drh tags: upsert)
2018-04-11
17:10
Help the parser run faster by avoiding the "explain ::= ." production. (check-in: d7ec7b59 user: drh tags: trunk)
16:04
Prohibit bound parameters in the arguments to table-valued functions within a trigger. Problem discovered by OSSFuzz. (check-in: b7178209 user: drh tags: trunk)
14:11
Minor simplification to internal function generateSortTail(). (check-in: f32cdb41 user: dan tags: trunk)
2018-04-10
18:56
Include the 'sqlite3rebaser_' APIs in the Windows '.def' file. (check-in: 56e4965f user: mistachkin tags: trunk)
18:05
Merge all version 3.23.1 changes and enhancements from trunk. (check-in: e20fcb51 user: drh tags: apple-osx)
17:39
Version 3.23.1 (check-in: 4bb22940 user: drh tags: trunk, release, version-3.23.1)
15:31
Fix a problem causing the LEFT JOIN strength reduction optimization to be incorrectly applied in some cases where the WHERE clause of the query contains a filter expression of the form "lhs.x IS NOT ?". (check-in: 1fdaf2c3 user: dan tags: trunk)
14:29
When testing, avoid injecting an OOM fault into a file-control call made by SQLite on an unopened file-descriptor. (check-in: 9c1a5eba user: dan tags: trunk)
12:33
Increase the version number to 3.23.1. (check-in: 9488c87b user: drh tags: trunk)
12:10
Fix a problem causing the LEFT JOIN strength reduction optimization to be incorrectly applied in some cases where the WHERE clause of the query contains a filter expression of the form NOT(x AND y). Ticket [1e39b966]. (check-in: 38d319c1 user: dan tags: trunk)
10:37
Remove an unnecessary SQLITE_UNTESTABLE compile-time conditional from the command-line shell. (check-in: 80b75a34 user: drh tags: trunk)
00:53
Update the top-level README.md file to point to the whynotgit.html document. Put it on the correct branch, this time. (check-in: a52e3cdd user: drh tags: trunk)
00:30
Update the top-level README.md file to point to the whynotget.html document. (check-in: 7dfd4543 user: drh tags: upsert)
2018-04-09
20:36
Minor changes to the input grammar resulting in a faster and slightly smaller parser. (check-in: a2c443c0 user: drh tags: trunk)
15:57
Enhance the query planner so that it detects when the xBestIndex method of a virtual table gives out-of-sequence argvIndex values and reports an error. Secondary fix for ticket [2b8aed9f7c9e6]. (check-in: 9506ec14 user: drh tags: trunk)
14:26
Fix the fts5 xBestIndex method so that it is not confused by "IS", "!=", "REGEXP", "GLOB" or "LIKE" operators. Fix for ticket [2b8aed9f]. (check-in: a0ca4ddb user: dan tags: trunk)
13:58
Improvements to ".wheretrace" output. (check-in: ea2e5b34 user: drh tags: trunk)
11:43
Add a "flags" parameter to experimental API sqlite3changeset_apply_v2(). Also add the SQLITE_CHANGESETAPPLY_NOSAVEPOINT flag. (check-in: 3d29631f user: dan tags: trunk)
00:46
Fix a (harmless) signed integer overflow warning. (check-in: 43c2c60c user: drh tags: trunk)
2018-04-07
15:04
More complete parsing of UPSERT, including UPSERT within a trigger. The sqlite3Insert() logic to actually perform the UPSERT is not yet implemented, however. (check-in: 5cc2a5a3 user: drh tags: upsert)
2018-04-06
19:36
Demonstration of how the parser can be augmented to recognize a PostgreSQL-style UPSERT. This check-in implements parsing only. (check-in: 9b22905b user: drh tags: upsert)
19:12
Enhance LEMON to show precendence of symbols and all rules in the report that is generated in parallel to the parser. (check-in: 602fbd81 user: drh tags: trunk)
16:22
Fix a problem in the sessions module causing sqlite3session_apply_strm() to allocate enough memory for the entire input buffer - which defeats the point of a streaming interface. (check-in: 7594e609 user: dan tags: trunk)
2018-04-05
16:26
Fix an instance where an uninitialized VM register might be accessed. Fix for [093420fc0]. This problem was found by OSSFuzz. (check-in: a3b02db7 user: dan tags: trunk)
12:02
Fix the sqlite3WhereTrace mechanism so that it compiles with the --disable-amalgamation and the --enable-debug options to ./configure using clang. (check-in: 81322436 user: drh tags: trunk)
2018-04-04
12:21
Fix segfault in 'eval.c' extension when used with 'empty_result_callbacks'. (check-in: e8b87bd4 user: mistachkin tags: trunk)
2018-04-03
20:44
Fix an error message in speedtest1.c and make the "trigger" testset sensitive to the --size parameter. (check-in: 5a6fd9e0 user: drh tags: trunk)
20:00
Update speedtest1.c with new testset "trigger" based on the tests in speed4p.test. (check-in: 7b7fa5fa user: dan tags: trunk)
17:05
Fix a few small test script issues affecting SQLITE_TEMP_STORE=3 builds. (check-in: e171f372 user: dan tags: trunk)
14:25
Fix the generate_series virtual table so that it correctly returns no rows if any of its constraints are NULL. Ticket [fac496b61722daf28]. (check-in: 3328e828 user: drh tags: trunk)
14:04
Change the LEFT JOIN strength reduction optimization so that assumes that virtual table constraints can be true even if terms within the constraint are NULL. This works around dodgy virtual table implementations. Fix for ticket [fac496b61722daf2]. (check-in: cbb977fe user: drh tags: trunk)
2018-04-02
11:04
Version 3.23.0 (check-in: 736b53f5 user: drh tags: trunk, release, version-3.23.0)
00:16
Better solution to the LIKE problem from the previous check-in that works even if the SQLITE_LIKE_DOESNT_MATCH_BLOBS compile-time option is used. (check-in: b850dd15 user: drh tags: trunk)
2018-03-31
23:28
Fix a logic error discovered by OSSFuzz that can cause an assert() fault if a LIKE operator is used on an INTEGER PRIMARY KEY. (check-in: fc06ddd4 user: drh tags: trunk)
18:43
Fix an error in README-server-edition.html. (Leaf check-in: 754ad35c user: dan tags: server-process-edition)
16:31
Fix an assertion failure triggered by a SELECT with a compound sub-query that contains an incorrectly placed ORDER BY clause. This problem is just an assert() failure - non-DEBUG builds are not affected. Problem found by OSSFuzz. (check-in: 823779d3 user: dan tags: trunk)
2018-03-30
20:42
Update and add further detail to README-server-edition.html. (check-in: 337a0b67 user: dan tags: server-process-edition)
16:34
Fix a bug in the spellfix extension causing it to compute suboptimal answers. The problem was introduced by check-in [afd6fbc01052ccfc9]. (check-in: 3bf28fd9 user: drh tags: trunk)
15:59
Fix an off-by-one error in the dist3 algorithm of the spellfix extension. (check-in: 5c34af7b user: drh tags: trunk)
2018-03-29
16:54
Another change to test file zipfile.test to help it run on systems without "unzip". (check-in: b6252feb user: dan tags: trunk)
16:39
Fix a test script bug causing zipfile.test to fail on systems that do not have the "unzip" program installed. (check-in: d99022a5 user: dan tags: trunk)
13:47
Modify the sqlite3OsFileControl() interface to detect unopened sqlite3_file objects and return SQLITE_NOTFOUND. (check-in: 1fc72b70 user: drh tags: trunk)
11:02
Update memdb1.test so that it works with SQLITE_DEFAULT_AUTOVACUUM builds. (check-in: d67f1c7d user: dan tags: trunk)
2018-03-28
22:08
Fix a harmless compiler warning in the kvtest.exe program. (check-in: d48972cf user: drh tags: trunk)
21:45
Fix a harmless compiler warning. (check-in: f0d12354 user: drh tags: trunk)
20:29
Add -DSQLITE_ENABLE_DESERIALIZE to the "Device-Two" configuration in releasetest.tcl. (check-in: 765a014d user: dan tags: trunk)
15:56
Remove tab characters. No logical changes to code. (check-in: eb29b336 user: drh tags: trunk)
15:41
Update this branch with latest trunk changes. (check-in: df52e89f user: dan tags: server-process-edition)
15:06
Minor comment changes. (check-in: d282f064 user: drh tags: trunk)
2018-03-27
22:58
Fix a typo in the README file for ICU. No code changes. (check-in: 79c4383b user: drh tags: trunk)
15:13
The push-down optimization was being too aggressive such that it sometimes generated incorrect results. Reinstate the restriction (4) (with qualifications) that was removed by check-ins [b5d3dd8cb0b1e4] and [dd568c27b1d765]. (check-in: f08c1731 user: drh tags: trunk)
13:57
Provide the ability for the VFS to do a blocking wait on locks if compiled with SQLITE_ENABLE_SETLK_TIMEOUT. (check-in: e7dff982 user: drh tags: trunk)
2018-03-26
21:05
Do not inject OOM errors on SQLITE_FCNTL_LOCK_TIMEOUT calls as an OOM is not possible in that context. (Closed-Leaf check-in: 5474e560 user: drh tags: lowlevel-lock-timeout)
20:43
Avoid a race condition that might cause a busy_timeout to last longer than it should. (check-in: b8196056 user: drh tags: lowlevel-lock-timeout)
17:56
Fix a typo preventing test script avtrans.test from running in auto-vacuum mode. (check-in: c7473bdb user: dan tags: trunk)
17:40
Add infrastructure to support for using F_SETLKW with a timeout on system that support that functionality. Requires SQLITE_ENABLE_SETLK_TIMEOUT. (check-in: 2e54a743 user: drh tags: lowlevel-lock-timeout)
16:37
Refactor some internal object element names used by the busy handler, to simplify analysis. (check-in: 6c40c557 user: drh tags: trunk)
2018-03-24
23:16
Fix a couple issues in the 'session' module tests. (check-in: ccf734f7 user: mistachkin tags: trunk)
20:06
Fix harmless compiler warning seen with MSVC. (check-in: e9508ab1 user: mistachkin tags: trunk)
18:01
Add testcase() macros and improve comments in the LEFT JOIN strength reduction optimization. (check-in: 56134577 user: drh tags: trunk)
15:47
Yet another fault in the sqlite3ExprImpliesNotNull() routine, causing errors in the LEFT JOIN strength reduction optimization of check-in [dd568c27b1d76563]. (check-in: e88cf3d4 user: drh tags: trunk)
15:08
Fix a test script problem causing shell1.test to fail with -DSQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 2e06906e user: dan tags: trunk)
13:24
Bug fix in the LEFT JOIN strength reduction optimization of check-in [dd568c27b1d76563]. The sqlite3ExprImpliesNotNull() routine was mistakenly assuming that a CASE expression must always be NULL if contained any reference to a variable that was NULL. (check-in: cf171abe user: drh tags: trunk)
00:19
Prepend linkage macros to the sqlite3rebaser interfaces. (check-in: c64e8f37 user: drh tags: trunk)
2018-03-23
17:36
Fix typos in sqlite3session.h preventing documentation webpages from being generated. Also mark all new sessions functions (those related to rebasing) as experimental. (check-in: de974235 user: dan tags: trunk)
16:31
Fix minor problems with passing NULL pointers to memcmp() and memcpy() found by -fsanitize=undefined. (check-in: 0b06ce6d user: dan tags: trunk)
16:08
Fix the -readonly option on the CLI so that it actually works. (check-in: 0477fb3f user: drh tags: trunk)
14:56
Add some more tests for the IS TRUE / IS FALSE operators. (check-in: 9fe5bebe user: mistachkin tags: trunk)
14:50
Fix typo in a comment used for documentation. No changes to code. (check-in: 49974d3b user: drh tags: trunk)
14:24
Enhance .schema in shell to enable matching patterns with literal underscores. (check-in: 98e3f524 user: mistachkin tags: trunk)
13:18
Fix an error in the CLI in the previous ([0249d9aecf69948]) check-in. Only the pattern to sqlite3_strlike() need to be escaped. (check-in: 71d5f6e6 user: drh tags: trunk)
12:59
Fix the ANALYZE command so that it will process tables whose names begin with "sqlite" as long as they do not being with "sqlite_". (check-in: 0249d9ae user: drh tags: trunk)
00:31
Fix harmless compiler warnings seen with MSVC. (check-in: 2f2be1b1 user: mistachkin tags: trunk)
2018-03-22
20:35
Add APIs to the sessions module for "rebasing" changesets. (check-in: 509506c7 user: dan tags: trunk)
20:11
Remove some unused code from sqlite3rebaser_rebase(). (Closed-Leaf check-in: 07cc955e user: dan tags: sessions-rebase)
19:52
Fix another problem with rebasing updates against multiple remote changes. (check-in: c8e7b5a0 user: dan tags: sessions-rebase)
17:17
Fix an RBU problem causing errors when updating tables with default collation sequences that require quoting (e.g. COLLATE "ICU_root-u-kn-on"). Cherrypick of [eb4f452e]. (check-in: 5dd61e1c user: dan tags: branch-3.22)
17:13
Fix an RBU problem causing errors when updating tables with default collation sequences that require quoting (e.g. COLLATE "ICU_root-u-kn-on"). (check-in: eb4f452e user: dan tags: trunk)
17:02
Fix a test script problem causing rbuvacuum.test to fail when run along with other tests. (check-in: 901cb3b6 user: dan tags: trunk)
14:07
Add tests to ensure that patchsets are handled correctly by the session rebase APIs. (check-in: 0e45baae user: dan tags: sessions-rebase)
12:00
Add the left join strength reduction optimization. Enhance the push-down optimization so that it works with many LEFT JOINs. (check-in: dd568c27 user: drh tags: trunk)
11:28
Add the --valid-sql option to the optfuzz test program. (check-in: a8dfeec7 user: drh tags: trunk)
11:15
Remove some unused code from the sessions module. (check-in: a09518ab user: dan tags: sessions-rebase)
2018-03-21
20:21
Get the optfuzz program working. (check-in: 21346bbc user: drh tags: trunk)
20:13
Merge latest trunk changes into this branch. (check-in: d00b71ec user: dan tags: sessions-rebase)
19:46
Fix some documentation and other issues with the code on this branch. (check-in: a9ec6862 user: dan tags: sessions-rebase)
19:25
Add the optfuzz.c program for verifying the query planner using a fuzzer. This is an initial code check-in. (check-in: 3fb21251 user: drh tags: trunk)
17:29
Fix rebasing of UPDATE changes against a set of remote changesets that feature both OMIT and REPLACE conflict resolution on different fields of the same row. (check-in: d8bc3fdb user: dan tags: sessions-rebase)
01:59
Relax LEFT-JOIN restrictions on the push-down optimization. (Closed-Leaf check-in: b5d3dd8c user: drh tags: join-strength-reduction)
2018-03-20
22:52
Do a more thorough job of cleaning traces of the strength-reduced LEFT JOIN. (check-in: 08833dda user: drh tags: join-strength-reduction)
21:16
If terms of the WHERE clause require that the right table in a LEFT JOIN not be a null row, then simplify the LEFT JOIN into an ordinary JOIN. (check-in: 5b7abecc user: drh tags: join-strength-reduction)
20:27
Add further tests and documentation for the sessions rebase feature. (check-in: 7475a363 user: dan tags: sessions-rebase)
19:02
Fix incorrect testcase labels on two cases in join5.test. No changes to code. (check-in: 4661ac81 user: drh tags: trunk)
18:08
Improvements to the HAVING-to-WHERE optimization. The code uses less space and less CPU, and there is now ".selecttrace" output. (check-in: 5ad668d4 user: drh tags: trunk)
16:56
For 'zipfile', detect attempts to cause a duplicate entry via UPDATE. Also, fix handling of 'UPDATE OR REPLACE' statements run on zipfile virtual tables. Win32 portability fixes to the 'fileio' extension. Miscellaneous test fixes. (check-in: b36caeca user: mistachkin tags: trunk)
14:00
Merge all recent trunk enchancements, and especially the autoincrement write reduction fix. (check-in: 25790049 user: drh tags: begin-concurrent-pnu)
13:54
Remove debugging puts from concurrrent3.test. (check-in: 13b49756 user: drh tags: begin-concurrent)
13:52
Merge all recent enhancements from trunk. (check-in: b0c2f760 user: drh tags: begin-concurrent)
13:44
Avoid unnecessary write to the sqlite_sequence table when an insert is done into an autoincrement table with an application-specified rowid that is less than the maximum. (check-in: ec7addc8 user: drh tags: trunk)
13:26
Add the ability to disable the push-down optimization using the 0x1000 bit of SQLITE_TESTCTRL_OPTIMIZATIONS. Also some documentation fixes and an enhancement to ".eqp full" in the CLI. (check-in: ae34edb7 user: drh tags: trunk)
13:26
Fix handling of "UPDATE OR REPLACE" statements run on zipfile virtual tables. (Closed-Leaf check-in: 9a5ef341 user: dan tags: testFixes)
13:00
Remove a debugging statement accidently left in check-in [eddc35f3057e59fd] (Closed-Leaf check-in: 85a31557 user: drh tags: push-down-disable)
12:12
Add a test case for the fix on this branch. (check-in: 7834cf6c user: dan tags: testFixes)
12:04
In the CLI, avoid extra .selecttrace and .wheretrace output when in ".eqp full" mode. (check-in: 427bbf31 user: drh tags: push-down-disable)
11:58
Closer reading of the sqlite3_db_config() documentation show that it is subtly incorrect. This check-in fixes the problem. No code changes. (check-in: 44d90e7f user: drh tags: push-down-disable)
11:51
Fix a minor formatting issue on the sqlite3_db_config() documentation. No changes to code. (check-in: 8a439a6d user: drh tags: push-down-disable)
11:24
Add the ability to disable the push-down optimization using the 0x1000 bit of SQLITE_TESTCTRL_OPTIMIZATIONS. (check-in: eddc35f3 user: drh tags: push-down-disable)
2018-03-19
22:28
Minor improvements to ".selecttrace". No changes to non-debug code. (check-in: 03e541f6 user: drh tags: trunk)
19:05
Enhance the command-line completion extension to return the names of triggers and views along with the names of tables. (check-in: 10e32204 user: drh tags: trunk)
16:59
Show symbolic SELECT names in EXPLAIN QUERY PLAN output when compiling with SQLITE_ENABLE_SELECTTRACE. (Leaf check-in: 16c22ff8 user: drh tags: EQP-improvements)
16:09
In the compile_options pragma, show the actual value of the SQLITE_ENABLE_CEROD compile-time option, if it exists. (check-in: 1ec339fd user: drh tags: trunk)
16:06
Improved ".selecttrace" output formatting. No changes in non-debug code. (check-in: 30704d2a user: drh tags: trunk)
2018-03-17
16:26
Do not use sqlite3_column_decltype() in the CLI if it is compiled with SQLITE_OMIT_DECLTYPE. (check-in: 442e816b user: drh tags: trunk)
02:13
For 'zipfile', detect attempts to cause a duplicate entry via UPDATE. (check-in: cf78a882 user: mistachkin tags: testFixes)
00:44
Another Win32 portability fix for the 'zipfile' tests. (check-in: 9f604418 user: mistachkin tags: testFixes)
2018-03-16
23:59
Detect corruption in the form of the sqlite_sequence table pointing to the wrong type of btree. (check-in: 525deb7a user: drh tags: trunk)
23:54
Win32 portability fixes to the 'fileio' extension. (check-in: 9d2b0f8b user: mistachkin tags: testFixes)
23:54
Enable more 'zipfile' tests on Win32. (check-in: 49d2566c user: mistachkin tags: testFixes)
23:54
Make a couple tests less sensitive to timing. (check-in: bc2af8e0 user: mistachkin tags: testFixes)
23:53
Fix a duplicate test number and cleanup a bit of Makefile whitespace. (check-in: 56d11c25 user: mistachkin tags: testFixes)
20:23
Detect databases whose schema is corrupted using a CREATE TABLE AS statement and issue an appropriate error message. (check-in: d75e6765 user: drh tags: trunk)
20:15
Better error message text when the schema is corrupted by a CREATE TABLE AS entry. (Closed-Leaf check-in: e13993cf user: drh tags: corrupt-schema)
19:10
Fix a parsing issue associated with a corrupt sqlite_master table. (check-in: 5f779ff6 user: mistachkin tags: corrupt-schema)
18:46
Avoid writing the sqlite_sequence table when it has not actually changed. (Closed-Leaf check-in: 3e3849a9 user: drh tags: autoinc-enhancement)
18:02
Fix a problem with handling rebasing UPDATE changes for REPLACE conflict resolution. (check-in: f7bf71f1 user: dan tags: sessions-rebase)
07:49
Fix a problem in test script thread001.test causing a spurious "-1 files were left open" error when run separately. Cherrypick of [1774f1c3b]. (check-in: 6cf8172d user: dan tags: branch-3.19)
07:48
Fix a problem in test script thread001.test causing a spurious "-1 files were left open" error when run separately. (check-in: 1774f1c3 user: dan tags: trunk)
2018-03-15
19:25
Add simple tests for the sessions module rebase API. (check-in: cf0d1abb user: dan tags: sessions-rebase)
17:46
Fix a typo in a comment used to generate documentation. No code changes. (check-in: f1784aff user: drh tags: trunk)
15:09
Fix an issue with the fsdir() table-valued function not resetting correctly after each pass of a join. (check-in: 7ce4e71c user: drh tags: trunk)
05:25
Draft fix for an fsdir() issue reported via the mailing list. (Closed-Leaf check-in: 48641010 user: mistachkin tags: fsDirFix)
2018-03-14
21:06
Add largely untested APIs for rebasing changesets. (check-in: 39915b68 user: dan tags: sessions-rebase)
17:17
Merge the latest enhancements from trunk. (check-in: a658f80c user: drh tags: apple-osx)
15:25
Add the SQLITE_DBSTATUS_CACHE_SPILL option to sqlite3_db_status(). (check-in: 48a06eb0 user: drh tags: trunk)
15:06
Disable one of the test cases from check-in [21ecbce1378f3cc4] when API_ARMOR is not enabled. (check-in: 8fb23d42 user: drh tags: trunk)
14:53
Add the SQLITE_DBSTATUS_CACHE_SPILL option to sqlite3_db_status() (Closed-Leaf check-in: 3faeb851 user: drh tags: dbstatus-cache-spill)
08:27
Improve detection of out-of-range parameters in sqlite3_stmt_status() for SQLITE_ENABLE_API_ARMOR builds. (check-in: 21ecbce1 user: dan tags: trunk)
2018-03-13
20:31
Add sqlite3_changeset_apply_v2() and apply_v2_strm() to the sessions module. (check-in: 445bfe97 user: dan tags: sessions-rebase)
2018-03-12
21:09
Fix a typo causing SQLITE_LOG_CACHE_SPILL builds to fail. (check-in: 0171d4a7 user: dan tags: trunk)
2018-03-10
20:45
Add more tests for the profile output of the Tcl trace_v2 method. (check-in: 61eeb48f user: mistachkin tags: trunk)
20:25
Fix the second callback argument to the "profile" response of the "trace_v2" method in the TCL interface so that it shows the actual number of nanoseconds for the command, not the address of the variable containing the number of nanoseconds. (check-in: 8f9a1251 user: drh tags: trunk)
14:17
Add support for INSERT OR REPLACE and INSERT OR IGNORE on the zipfile extension. (check-in: 8ad35d48 user: drh tags: trunk)
13:21
Improved error messages from the zipfile extension. (check-in: f634a7e3 user: drh tags: trunk)
12:53
Avoid harmless left-shifts of negative numbers in the zipfile extension when building ZIP archives of files with pre-DOS dates. (check-in: 16bba865 user: drh tags: trunk)
12:34
Fix the zipfile extension so that it is able to create symbolic link entries in the ZIP file even on systems like Win32 that do not support symbolic links on the native filesystem. (check-in: 2a4493f4 user: drh tags: trunk)
2018-03-09
22:18
Fix the .archive command in the CLI so that it actually compresses content. (check-in: 3c2e3c2d user: drh tags: trunk)
21:54
Enhance the ".ar" command in the CLI so that it is able to update and create ZIP Archives. (check-in: 9404765e user: drh tags: trunk)
16:37
Setting ".stats 2" in the CLI causes column metadata for each prepared statement to be displayed. (check-in: 7fea00fd user: drh tags: trunk)
15:24
Simplification to the shell_exec() mechanism in the CLI. (check-in: 72e8f529 user: drh tags: trunk)
14:11
Fix a problem in test file nockpt.test causing errors with SQLITE_DEFAULT_AUTOVACUUM builds. (check-in: e547c83f user: dan tags: trunk)
14:06
Fix a test case in zipfilefault.test so that it only runs if JSON1 is available. (check-in: 072b2447 user: drh tags: trunk)
12:46
Attempt to fix a harmless compiler warning from Clang. (check-in: bba1bfbd user: drh tags: trunk)
2018-03-08
19:56
Enable API armor handling for the new deserialize APIs. (check-in: 0798c91a user: mistachkin tags: trunk)
18:14
Add the --append and --zip options of the CLI to the --help message. (check-in: f010c86e user: drh tags: trunk)
18:09
Include the 'sessionfuzz' tool in the clean target for MSVC. (check-in: 0f5a8666 user: mistachkin tags: trunk)
16:36
Updates to documentation on sqlite3_serialize() and sqlite3_deserialize(). No changes to code. (check-in: e71ceb60 user: drh tags: trunk)
2018-03-07
21:39
Fix harmless compiler warnings in the 'dbdump' tool. (check-in: 2b9bb266 user: mistachkin tags: trunk)
21:29
Fix harmless compiler warning in the 'sessionfuzz' tool. (check-in: 706800ba user: mistachkin tags: trunk)
21:13
Enable compilation of 'sessionfuzz' tool using MSVC. (check-in: c58de43b user: mistachkin tags: trunk)
20:48
Add the sessionfuzz test program and data obtained from a week of running AFL. Automatically run this test program on any "make test" on unix. (check-in: ecaedfe5 user: drh tags: trunk)
15:54
Update the autoconf Makefile for MSVC. (check-in: 36fec7a4 user: mistachkin tags: trunk)
15:19
Fix various compilation issues seen with MSVC. (check-in: d6fa9389 user: mistachkin tags: trunk)
14:53
Another tweak to the MSVC clean target. (Closed-Leaf check-in: 493abf10 user: mistachkin tags: msvcFixes)
14:49
Fix harmless compiler warning in FTS5. (check-in: 2d544711 user: mistachkin tags: msvcFixes)
14:42
Fix utility compilation issues with MSVC. (check-in: 5bd5a798 user: mistachkin tags: msvcFixes)
13:01
Add the sqlite3_serialize() and sqlite3_deserialize() interfaces, enabled when the -DSQLITE_ENABLE_DESERIALIZE compile-time option is used. (check-in: fc42d31d user: drh tags: trunk)
01:37
Mark an unreachable branch using NEVER(). (Closed-Leaf check-in: fadbc5e2 user: drh tags: memdb)
2018-03-06
21:43
Improved documentation for sqlite3_serialize() and sqlite3_deserialize(). Change the name of the compile-time option to enable these interfaces from SQLITE_ENABLE_MEMDB to SQLITE_ENABLE_DESERIALIZE. (check-in: f07e97ae user: drh tags: memdb)
20:54
Handle some boundary cases in memdb associated with OOM faults. (check-in: b58ca4cb user: drh tags: memdb)
19:14
Simplifications to the memdb VFS. (check-in: 6c3f723a user: drh tags: memdb)
11:49
Avoid running a couple of tests in crash8.test that depend on the presence of the journal file if running on an F2FS file-system that does not require a journal file. Cherrypick of [797e02e0]. (check-in: eeedfc74 user: dan tags: branch-3.19)
11:46
Avoid running a couple of tests in crash8.test that depend on the presence of the journal file if running on an F2FS file-system that does not require a journal file. (check-in: 797e02e0 user: dan tags: trunk)
04:01
Improvements to the memdb VFS. (check-in: a14fed69 user: drh tags: memdb)
02:00
Merge the walIteratorInit() fix from trunk. (check-in: 6399e101 user: drh tags: memdb)
2018-03-05
23:23
Fix walIteratorInit() so that it always leaves the iterator as a NULL pointer if an OOM occurs. This fixes an assertion fault introduced by check-in [044b0b65e716bff]. (check-in: e5ce256a user: drh tags: trunk)
21:19
Merge the session fix from trunk. (check-in: 6274cf1f user: drh tags: memdb)
21:17
Fix another crash in the sessions module triggered by malformed input. (check-in: 7e70c9b8 user: dan tags: trunk)
20:21
Improved command-line help for the -A option on the CLI. (check-in: d937ac18 user: drh tags: trunk)
20:20
A new way of doing archive commands on the command-line for the CLI. The -A option means that everything that follows is a ".archive" command, including any suffix on the -A option. (check-in: 9d8081fa user: drh tags: trunk)
19:34
In the CLI, add a new command-line option "--archive" (also "--ar") that passes all subsequent arguments to the ".archive" command. (check-in: a5c4d30a user: drh tags: trunk)
18:20
Merge session fixes from trunk. (check-in: 99c02aee user: drh tags: memdb)
2018-03-02
20:00
In sqlite3_checker, wrap the call to "SELECT checkfreelist()" in a transaction. (check-in: 02906e55 user: dan tags: trunk)
18:26
Merge latest changes from begin-concurrent into this branch. (check-in: 8ade94ba user: dan tags: begin-concurrent-pnu)
17:59
Update this branch with recent checkpoint related changes from trunk. (check-in: fb6b7938 user: dan tags: begin-concurrent)
17:40
Merge latest trunk changes into this branch. (check-in: 36801eff user: dan tags: begin-concurrent)
16:52
In a checkpoint, figure out if it is possible to checkpoint any frames at all before creating the wal-iterator. (check-in: 044b0b65 user: dan tags: trunk)
15:42
Optimize the obscure case of running a checkpoint against a very large wal file for which a large percentage of the frames have already been checkpointed. (check-in: 0f5057df user: dan tags: trunk)
2018-03-01
22:18
Allow the zSchema argument to sqlite3_serialize() to be NULL to mean the main database. (check-in: 5b01b991 user: drh tags: memdb)
18:09
Typo fixes in comments. No changes to code. (check-in: 1293d4f6 user: mistachkin tags: trunk)
15:20
Fix further crashes in sqlite3changeset_apply() caused by corrupt changeset blobs. (check-in: 2c01c72e user: dan tags: trunk)
13:44
Merge the latest enhancements from trunk. (check-in: c8083de1 user: drh tags: memdb)
12:05
Fix some crashes in the sqlite3changeset_apply() function that could be caused by corrupt changeset blobs. (check-in: 745a9a7f user: dan tags: trunk)
2018-02-28
22:21
Enhance the sessions documentation to show the methods of the various objects. (check-in: e0117775 user: drh tags: trunk)
21:50
Use <pre> around code snippets in the documentation for sessions interfaces. This is a documentation change only with no changes to code. (check-in: c949b915 user: drh tags: trunk)
04:30
Fix a potential NULL pointer deref following OOM in the new IS TRUE logic. (check-in: 48775ec6 user: drh tags: trunk)
2018-02-27
20:09
Update zonefile README.md file to mention the frame cache. (Leaf check-in: 84e9351b user: dan tags: zonefile)
19:50
Rationalize some code in zonefile.c. Fix other minor issues in the same. (check-in: f11beb16 user: dan tags: zonefile)
15:47
Enhance test 'zonefile1-6.5' to account for platform differences. (check-in: 8b617840 user: mistachkin tags: zonefile)
15:42
Adjustments to test numbers for the 'zonefile' extension. (check-in: 55de6f14 user: mistachkin tags: zonefile)
15:40
Add support for TRUE and FALSE keywords and for operators IS TRUE, IS FALSE, IS NOT TRUE, and IS NOT FALSE. If there is are columns named TRUE or FALSE, then the keywords resolve to the column names, for compatibility. The behavior of the "DEFAULT true" phrase is changed to mean what it says, rather than being an alias for "DEFAULT 'true'". (check-in: 9a7f02c5 user: drh tags: trunk)
14:49
Clean up comments and variable names prior to merge. (Closed-Leaf check-in: 6445519e user: drh tags: is-true-operator)
14:26
Have the zonefile extension use binary instead of text keys. (check-in: 39a4267f user: dan tags: zonefile)
00:58
Remove an unnecessary decision. (check-in: adcb4665 user: drh tags: is-true-operator)
2018-02-26
21:26
Code simplifications. New test cases. (check-in: 57508518 user: drh tags: is-true-operator)
20:15
Get the "DEFAULT true" and "DEFAULT false" phrases working correctly in CREATE TABLE. (check-in: 8002f87d user: drh tags: is-true-operator)
19:03
Enhance TreeView so that it can display the new IS TRUE expression trees. (check-in: 7e38305e user: drh tags: is-true-operator)
18:49
Refactor for correct NULL handling in the IS TRUE, IS FALSE, IS NOT TRUE, and IS NOT FALSE operators. (check-in: cf2abd59 user: drh tags: is-true-operator)
17:03
More tests pursuant to ticket [36fae083b450e3af857a459e20]. (check-in: c26f236d user: mistachkin tags: trunk)
16:49
Fix heap issue in the shell on Win32 caused by allocator mismatch. (check-in: 7b3a7551 user: mistachkin tags: trunk)
15:31
Merge the fix for determining truth of floating point values from trunk. (check-in: 003dc140 user: drh tags: is-true-operator)
15:27
Always interpret non-zero floating-point values as true even if their integer part is zero. Fix for ticket [36fae083b450e3af857a459e20]. (check-in: a983fa85 user: drh tags: trunk)
07:58
Add extra parameter to zonefileCodecCreate() to indicate whether the new object will be used for mock-encryption or mock-decryption. (check-in: 231832c4 user: dan tags: zonefile)
03:20
Experimental implementation of IS TRUE and IS FALSE operators. All TRUE and FALSE to act like constants if the names do not resolve to a column name. (check-in: 40314bc9 user: drh tags: is-true-operator)
2018-02-24
08:26
Test edge cases in the zonefile module. Fix a broken error message in the same. (check-in: 1764ade2 user: dan tags: zonefile)
2018-02-23
21:01
Fix a problem with handling "k >= ?" constraints in the zonefile module. (check-in: 9a99afaf user: dan tags: zonefile)
19:21
Add test cases and minor fixes for the zonefile module. (check-in: dbbcbf00 user: dan tags: zonefile)
14:09
Fix a problem causing SQLITE_HAVE_LZ4 builds of zonefile to fail unless SQLITE_HAVE_ZLIB is also defined. (check-in: 994aa77d user: dan tags: zonefile)
14:02
Fix a problem with DROP TABLE statements on zonefile virtual tables. (check-in: d2ed6910 user: dan tags: zonefile)
14:00
Fix harmless compiler warnings in the zonefile extension seen with MSVC. (check-in: d2800394 user: mistachkin tags: zonefile)
13:58
Avoid running a test case that requires zstd in non-SQLITE_HAVE_ZSTD builds. (check-in: d716dff4 user: dan tags: zonefile)
13:45
Merge updates from trunk. (check-in: 53f2100a user: mistachkin tags: zonefile)
13:38
Fix harmless compiler warnings in the zipfile extension seen with MSVC. (check-in: 15c587cf user: mistachkin tags: trunk)
13:38
Enable the JSON1 extension when compiling the test fixture with MSVC. (check-in: e9e9f27b user: mistachkin tags: trunk)
2018-02-22
21:06
Add tests cases and fix some minor zonefile problems. (check-in: f4d42162 user: dan tags: zonefile)
18:30
For the "SQLite archive" link in the README.md file, point to the CLI .archive command documentation, not the original "sqlar" website. (check-in: 4290faf5 user: drh tags: trunk)
18:28
Updates to the README.md file. Mention the ability to use SQLite-archives for download. (check-in: ab9a7ae4 user: drh tags: trunk)
16:46
Add an LRU cache of uncompressed frame content to the zonefile virtual table implementation. (check-in: 883e7e75 user: dan tags: zonefile)
2018-02-21
21:15
Modifications to the zonefile module to make it easier to add a cache of uncompressed frame content. (check-in: d9d5cc62 user: dan tags: zonefile)
16:36
Have zonefile store encryption keys in a hash-table instead of a linked list. Add extra tests for key management. (check-in: 3a63ea65 user: dan tags: zonefile)
10:43
In zonefile, change the "file TEXT" column back to "fileid INTEGER". The fileid can be used as a key with the associated zonefile_files table, which contains more information than just the filename. (check-in: 38d23888 user: dan tags: zonefile)
01:48
Remove an unreachable branch in the walIndexPage() logic. (check-in: 4e61a973 user: drh tags: trunk)
01:05
Small performance improvement in sqltie3WalFindFrame(). (check-in: 52013cad user: drh tags: trunk)
00:48
Remove an unnecessary memset(). (check-in: e7b7f588 user: drh tags: trunk)
2018-02-20
22:20
Make the walIndexPage() routine about 3x faster by factoring out the seldom used reallocation logic into a separate subroutine. (check-in: e2b10714 user: drh tags: trunk)
21:00
Add extra code to log details when corruption is detected in the pointer-map structure maintained by the b-tree layer in begin-concurrent transactions. (check-in: 57023371 user: dan tags: begin-concurrent-pnu)
20:57
Update README.md in ext/zonefile. (check-in: a13b2b38 user: dan tags: zonefile)
19:25
Fix a problem with reading the "file" column of a zonefile virtual table. (check-in: d8d0bdcb user: dan tags: zonefile)
18:47
Instead of just the frame number, store frame sizes and offsets in zonefile shadow table %_shadow_idx. (check-in: 56801c46 user: dan tags: zonefile)
17:02
In the speed-check.sh script, make WAL mode the default. Add the --legacy option to do DELETE mode. Continue to use DELETE mode for long-term performance graphs since WAL mode was not always available, but use WAL mode for day-to-day performance measurements. (check-in: cd816138 user: drh tags: trunk)
16:39
Remove a superfluous "#if 1". No logic changes. (check-in: caaffd32 user: drh tags: trunk)
15:23
Optimize calls to sqlite3_mprintf("%z...") so that they attempt to append text onto the end of the existing memory allocation rather than reallocating and copying. (check-in: 4bc8a48e user: drh tags: trunk)
13:46
Remove a lot of the text describing extended format options from the documentation on sqlite3_mprintf() and friends, since that information is now covered by the separate printf.html document. Provide links to that other document. No changes to code. (check-in: 99eec556 user: drh tags: trunk)
2018-02-19
22:46
Enhance the string formatter (used by printf()) so that the width and precision of string substitution operators refer to characters instead of bytes when the alternate-form-2 flag ("!") is used. Also fix the %c substition to always work within unicode, regardless of the alternate-form-2 flag. (check-in: c883c4d3 user: drh tags: trunk)
21:58
Printing a value of 0 using %c terminates the string. (Closed-Leaf check-in: 255612f0 user: drh tags: printf-enhancement)
21:07
Add support for invoking encryption hooks to zonefile. And mock encryption method "xor" for testing. (check-in: 55cf920c user: dan tags: zonefile)
20:41
More test cases for unicode handling in printf. (check-in: ac188211 user: drh tags: printf-enhancement)
20:23
Test cases and a bug fix on the new unicode handling in %c. (check-in: e41d64e9 user: drh tags: printf-enhancement)
18:56
Fix the %c substitution in printf() so that it works with unicode characters. (check-in: c35be1d9 user: drh tags: printf-enhancement)
18:03
Make the alternate-form-2 flag ("!") change the meaning of width and precision from bytes to characters for the %q, %Q, and %w extensions of printf(). (check-in: 391540ac user: drh tags: printf-enhancement)
17:03
In the printf() library, measure width and precision in characters rather than bytes if the "!" (alternate-form-2) flag is present on a %s or %z substitution. (check-in: ca31c663 user: drh tags: printf-enhancement)
16:34
Only try to use the geteuid() interface on unix if HAVE_FCHOWN is defined. This fixes the build for vxWorks, we are told. (check-in: 38f654dc user: drh tags: trunk)
16:28
Add support for the ExtendedHeaderSize header field to zonefile. (check-in: 78267a09 user: dan tags: zonefile)
14:27
Modify the zonefile format in order to avoid depending on the filesize to determine the extent of the final frame. See README.md for details. (check-in: 4dbe0cba user: dan tags: zonefile)
13:53
Fix an assert so that it compares two CellInfo objects field by field instead of using memcmp(). Memcmp() does not work on x86 because of uninitialized padding bytes. (check-in: 88258770 user: drh tags: trunk)
2018-02-18
17:50
Fix a memory leak in the processing of nested row values. This problem has existed every since row values support was added (version 3.15.0, 2016-10-14) but was only just now detected by OSSFuzz. (check-in: 2df6bbf1 user: drh tags: trunk)
00:54
Port mutex enhancments from check-in [f53b8a573b] to the Win32 implementation. (check-in: 74bb7225 user: mistachkin tags: trunk)
2018-02-17
20:22
Add support for "brotli" compression to the zonefile module. (check-in: 3eb25b3f user: dan tags: zonefile)
19:38
Add support for compression types "lz4" and "lz4hc" to the zonefile module. (check-in: bbe5b21f user: dan tags: zonefile)
18:33
Add support for compression methods "zstd" and "zstd_global_dict". (check-in: a993a50b user: dan tags: zonefile)
07:38
Fix a data race causing a tsan complaint with SQLITE_ENABLE_API_ARMOR builds on unix. The race condition is not dangerous in practice, it just upsets tsan. (check-in: f53b8a57 user: dan tags: trunk)
2018-02-15
21:00
Do not allow parameters or schema references inside of WITH clause of triggers and views. This fixes a bug discovered by OSSFuzz and present since common-table-expressions were first added in 2014-02-03. (check-in: b918d4b4 user: drh tags: trunk)
20:37
Add support for zlib compression to the zonefile module. (check-in: 72b8a7ef user: dan tags: zonefile)
20:00
On unix, the "PRAGMA fsync_interval=N" command causes an extra fdatasync() after writing N bytes of content, to force a write-queue flush in the underlying OS. This is an experimental hack that is not expected to land on trunk. (Leaf check-in: b18cc5fe user: drh tags: write-queue-flush-hack)
15:24
Fix another point in zonefile.c so that all files are opened in either "rb" or "wb" mode. (check-in: fb1c2277 user: dan tags: zonefile)
15:17
When calling fopen() in the zonefile extension, use modes "rb" and "wb" instead of "r" and "w". This makes no difference on unix, but is required when accessing binary files on other systems. (check-in: 4bb854dd user: dan tags: zonefile)
03:56
Improve performance of editdist3() by keeping the costs in sorted order. Also add a new regression test to editdist3(). (check-in: dc734c5b user: drh tags: trunk)
03:05
Reduce the number of calls to strncmp() required to run editDist3Core(). (check-in: afd6fbc0 user: drh tags: trunk)
01:03
Fix the --heap, --pagecache, --lookaside and other options to the command-line shell that invoke sqlite3_config() so that they work again. (check-in: 00707f2f user: drh tags: trunk)
2018-02-14
23:27
Add the --readonly option to the ".open" command in the CLI. (check-in: 06870bb1 user: drh tags: trunk)
20:58
Performance optimizations to the editdist3() function in the spellfix extension. (check-in: 70d304dc user: drh tags: trunk)
20:25
Disable assert() in the spellfix extension if not compiled with SQLITE_DEBUG. (check-in: 3c53ee0f user: drh tags: trunk)
15:30
New test cases for the editdist3() function in the spellfix extension. (check-in: 2d3f1f22 user: drh tags: trunk)
14:13
Try to optimize spellfix1 by storing a NULL in the k1 column of %_vocab if it would otherwise have the same value as the word column. (check-in: b76ec7cb user: drh tags: trunk)
2018-02-13
21:16
Fix formatting errors in ext/zonefile/README.md. (check-in: a2221e35 user: dan tags: zonefile)
20:53
Note the fact that zonefile depends on json1 in ext/zonefile/README.md. (check-in: fb27d8f6 user: dan tags: zonefile)
20:08
Fix handling of maxAutoFrameSize parameter. (check-in: d65e5855 user: dan tags: zonefile)
19:13
Improved test cases for the [f484b65f3d6230593c34f] bug. (check-in: 1f300514 user: drh tags: trunk)
19:01
Enhance ext/zonefile/README.md to describe the currently available functionality. (check-in: 100137c7 user: dan tags: zonefile)
18:48
Fix an incorrect table lookup used to find the appropriate search operator for a WHERE clause on a row-value inequality. The incorrect table lookup was causing an incorrect answer for the less-than operator. Fix for ticket [f484b65f3d6230593c34f11] (check-in: f3112e67 user: drh tags: trunk)
18:02
Remove, for now, the "priority" column from the zonefile_files virtual table. (check-in: 8bf5154b user: dan tags: zonefile)
17:33
Pad the 26 byte Zonefile header to 32 bytes so that the ZonefileIndex object is 8-byte aligned. (check-in: fdb6c0c5 user: dan tags: zonefile)
16:30
Remove an unused variable from FTS4. (check-in: 27ea783b user: drh tags: trunk)
16:21
Ensure that multiple updates of the same FTS4 row (i.e. the row with the same rowid) within a single transaction are written to separate segments. Fix for [d6ec09ec]. (check-in: d2a81a37 user: dan tags: trunk)
2018-02-12
20:50
Updates to the speed-check.sh script for improvements to the --vdbeprofile option. (check-in: f89c8f8e user: drh tags: trunk)
20:27
When compiling with VDBE_PROFILE, add the sqlite3NProfileCnt global variable which can be used to measure per-opcode values other than elapse time, if non-zero. (check-in: d44d5936 user: drh tags: trunk)
20:04
Add support for reading simple (no compression, no encryption) zonefile files. (check-in: dba42f0e user: dan tags: zonefile)
15:27
Update test file func6.test so that it works with SQLITE_ENABLE_NULL_TRIM builds. (check-in: e128d72f user: dan tags: trunk)
13:30
Fix a possible infinite loop in VACUUM that can come up when the schema has been carefully corrupted. Problem discovered by OSSFuzz. Test cases in TH3. (check-in: 27754b74 user: drh tags: trunk)
2018-02-10
21:04
Add start of "zonefile" virtual table. (check-in: 0b7bd169 user: dan tags: zonefile)
17:41
Add the start of the "zonefile" extension. (check-in: c125b4c3 user: dan tags: zonefile)
02:31
Fix misplaced testcase() macros from the previous check-in. (check-in: 3aed949a user: drh tags: trunk)
2018-02-09
23:25
Improve the performance of the built-in REPLACE() function in cases where it does many substitutions that make the string larger. OSSFuzz is reporting intermittant timeouts when running a test where it does a REPLACE() on a 930KB random blob. Perhaps this enhancement will fix that. (check-in: fab2c2b0 user: drh tags: trunk)
20:49
Add the zorder.c extension implementing zorder() and unzorder() SQL functions. (check-in: a57a77dc user: drh tags: trunk)
15:42
Make the tests in func6.test more robust against implementation changes. (check-in: b685d323 user: dan tags: trunk)
15:04
Fix a harmless compiler warning. (check-in: a6c31154 user: drh tags: trunk)
2018-02-08
01:00
Enhance sqlite3ErrStr() to include several more error codes. (check-in: ad5d3bdc user: mistachkin tags: trunk)
2018-02-07
18:45
Fix typo in comment. Skip tests added by check-in [4761db83b6] when running on Windows. (check-in: 468a389c user: mistachkin tags: trunk)
18:02
In extensions rtree, fts3 and fts5, ensure that when dynamic buffers are bound to persistent SQL statements using SQLITE_STATIC, the binding is replaced with an SQL NULL before the buffer is freed. Otherwise, a user may obtain a pointer to the persistent statement using sqlite3_next_stmt() and attempt to access the freed buffer using sqlite3_expanded_sql() or similar. (check-in: 2a5f813b user: dan tags: trunk)
16:14
When the final connection disconnects from a wal mode database, check that the database file has not been moved or unlinked before deleting the wal and shm files. (check-in: 4761db83 user: dan tags: trunk)
2018-02-05
21:02
Adjust the previous check-in, which modified the Win32 VFS, so that it works with SQLITE_OMIT_WAL. (check-in: 36c2e67e user: mistachkin tags: trunk)
20:42
Allocation the mutex used by the Win32 VFS only once at initialization, instead of every time it is needed. (check-in: 535ed0ac user: mistachkin tags: trunk)
16:39
Allocation the mutex used by the unix VFS only once at initialization, instead of every time it is needed. (check-in: 5764dc16 user: drh tags: trunk)
13:42
Fix another minor problem in walro2.test. (check-in: ba0631de user: dan tags: trunk)
13:28
Update test file walro2.test to account for systems with a page-size (getpagesize()) larger than 32KB. (check-in: d9e59cfb user: dan tags: trunk)
2018-02-04
20:33
In the CLI, make sure sqlite3_initialize() is called correctly even for non-UTF8 hosts. (check-in: a3591fb5 user: drh tags: trunk)
01:30
Fix harmless compiler warning seen with MSVC. (check-in: 63a91441 user: mistachkin tags: trunk)
01:29
Move variable declaration in zipfile extension to fix MSVC compiler error. (check-in: ac6a3248 user: mistachkin tags: trunk)
2018-02-02
16:46
Enable the ".wheretrace" and ".selecttrace" options in the shell when configure is run using --enable-debug. This mirrors a similar change that has already occurred on trunk. (Leaf check-in: c4f798b2 user: drh tags: branch-3.9.2)
16:28
Remove the "include <io.h>" win32 dependency from the zipfile extension. (check-in: cb3feb3b user: dan tags: trunk)
16:20
Remove the time() dependency from the zipfile extension. Use SQLite VFS methods instead. (check-in: 0702fb56 user: dan tags: trunk)
08:14
In SQLITE_ENABLE_BATCH_ATOMIC_WRITE builds on F2FS file-systems, invoke SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE if an SQLITE_FCNTL_COMMIT_ATOMIC_WRITE call fails. Also, do not use an atomic transaction to create the initial database. This is because if an error occurs while writing to the db file, any changes to the file-size do not seem to be rolled back automatically. The only time this matters is when the file was 0 bytes in size to start with. Cherrypick of [b3122db154]. (check-in: 22a228ed user: dan tags: branch-3.19)
08:08
Update a couple of test scripts so that they work on F2FS file-systems that support atomic transactions. Cherrypick of [49e58e645e]. (check-in: 1b394679 user: dan tags: branch-3.19)
2018-02-01
20:42
Add a few more zipfile tests. No changes to code. (check-in: 3f621545 user: dan tags: trunk)
19:41
Fix a problem triggered when a zipfile virtual table is created and written to within the same transaction. And add other zipfile tests. (check-in: 48f1c556 user: dan tags: trunk)
15:57
New assert() statements to help ensure that no other errors similar to [343634942dd54ab57b7] ever appear in the code. (check-in: 5a70af1e user: drh tags: trunk)
15:19
Fix a memory leak that could follow an IO error in the zipfile extension. And add other tests. (check-in: e6bb7506 user: dan tags: trunk)
01:13
When an index is based on a text representation of a numeric column in the original table, make sure the indexed value uses the canonical text representation of the numeric value in the table. Proposed fix for ticket [343634942dd54ab57b70]. (check-in: 88e2ce91 user: drh tags: trunk)
2018-01-31
20:18
When creating a new archive entry, have zipfile store UTC instead of local time in the legacy MS-DOS format timestamp field. (check-in: b730d187 user: dan tags: trunk)
19:45
Fix a test case in zipfile.test. (Closed-Leaf check-in: 4eb5b24c user: dan tags: zipfile-timestamp-fix)
19:13
When creating a new archive entry, have zipfile store UTC instead of local time in the legacy MS-DOS format timestamp field. (check-in: e2114df1 user: dan tags: zipfile-timestamp-fix)
16:50
Improve the omit-left-join optimization so that it works in some cases when the RHS is subject to a UNIQUE but not NOT NULL constraint. (check-in: 02ba8a7b user: drh tags: trunk)
14:07
Fix a failing assert() in the new code on this branch. (Closed-Leaf check-in: 74d857d1 user: dan tags: omit-left-join-fix)
01:38
Changes to the autoconf tarball so that it does not try to use system() when building on iOS. (check-in: 32ed9c10 user: drh tags: trunk)
2018-01-30
18:33
If a virtual table xColumn method sets an error message using sqlite3_result_error(), use that message in preference to any error message left in the sqlite3_vtab object. (check-in: 71e3b715 user: dan tags: trunk)
17:43
Add tests cases for the zipfile extension. (check-in: 13b786da user: dan tags: trunk)
14:07
Prevent users from creating zipfile() virtual tables without an argument. (check-in: 81fdbe0c user: dan tags: trunk)
2018-01-29
19:47
Add unix-only tests to check that the "unzip" program can unpack archives generated by the zipfile extension. (check-in: 438c5c52 user: dan tags: trunk)
18:41
Add aggregate function zipfile() to the zipfile extension. For composing new zip archives in memory. (check-in: e364eeac user: dan tags: trunk)
17:08
Update the omit-left-join optimization so that it works in some cases when the RHS is subject to a UNIQUE but not NOT NULL constraint. (check-in: 88411a40 user: dan tags: omit-left-join-fix)
16:22
Ensure the "unique-not-null" flag is set for automatic indexes on columns declared with "col UNIQUE NOT NULL" (where the NOT NULL comes after the UNIQUE). (check-in: 8767f7b8 user: dan tags: trunk)
2018-01-27
18:55
Fix missing header comments and other code issues in zipfile.c. (check-in: 6ea8ba31 user: dan tags: trunk)
16:29
If a zipfile virtual table is created with no argument - "CREATE VIRTUAL TABLE zzz USING zipfile()" - accumulate data in memory. Support "SELECT zipfile_blob(z) FROM zzz LIMIT 1" to retrieve a zip archive image. (check-in: e63185ed user: dan tags: trunk)
14:25
Changes to avoid a harmless UB warning from clang. (check-in: 19f5c140 user: drh tags: trunk)
13:55
New test case for ticket [ec32177c99ccac2b1] that works without the STAT4. (check-in: 5259d484 user: drh tags: trunk)
05:40
Proposed fix for the query planner problem of ticket [ec32177c99ccac2b1]. (check-in: eef8cbef user: drh tags: trunk)
03:26
Fix compiler warnings in zipfile.c. (check-in: bed610d9 user: drh tags: trunk)
2018-01-26
22:41
Fix the query planner so that it takes into account dependencies in the arguments to table-valued functions in subexpressions in the WHERE clause. Fix for ticket [80177f0c226ff54f6dd]. (check-in: 7daa6873 user: drh tags: trunk)
18:59
If the argument to table function zipfile() is a blob (not text), assume that it contains a zip file image to interpret, not the name of a file on disk. (check-in: 029ebcd3 user: dan tags: trunk)
18:37
Improve text-to-integer conversion in boundary cases. The sqlite3Atoi64() function always returns the minimum or maximum integer if the magnitude of the text value is too large. Trailing whitespace is now ignored. (check-in: ace0644a user: drh tags: trunk)
2018-01-25
20:50
Reorganize zipfile.c code to make it easier to add support for in-memory zip archive processing. (check-in: 30b92582 user: dan tags: trunk)
01:20
Slightly smaller and faster implementation of OP_If and OP_IfNot. (check-in: 6ab42934 user: drh tags: trunk)
2018-01-24
20:42
When unpacking a sorter record, do so from right to left instead of left to right, since by starting with the right-most column, the work done by OP_Column opcodes is reduced. (check-in: 8055e4f4 user: drh tags: trunk)
18:28
Reorganize spellfix.c to make it easier to edit automatically (e.g. using a script). No changes to functionality. (check-in: 090a64fa user: dan tags: trunk)
16:04
Rearrange fields of the BtCursor object so that it is smaller and requires less initialization, for a small performance improvement. (check-in: 0ddf5292 user: drh tags: trunk)
15:07
Add the normalize.c extension. (check-in: 16ebe558 user: drh tags: trunk)
15:02
Merge changes from trunk. (check-in: 6ef3de81 user: drh tags: memdb)
14:40
Interchange the numeric codes for CURSOR_VALID and CURSOR_INVALID to obtain a small size decrease and performance increase. (check-in: e0f192ea user: drh tags: trunk)
14:39
Adjust the fts3rank.test module so that it works on big-endian systems (hopefully - I don't have a big-endian machine to test the change on.) (check-in: e4766cab user: drh tags: trunk)
13:15
Improved error message output when the btreeinfo.c extension is run in a connection that lacks sqlite_dbpage support. (check-in: 461b0b81 user: drh tags: trunk)
12:14
Prevent a harmless unused variable warning when compiling with SQLITE_OMIT_TRACE. (check-in: 61a44961 user: drh tags: trunk)
11:29
Fix a formatting issue in sqlite3_prepare_v3() documentation. No changes to code. (check-in: 9e6066de user: drh tags: trunk)
11:25
Fix the sqlite3ext.h header file so that it correctly accesses the new sqlite3_value_nochange() and sqlite3_vtab_collation() interfaces. (check-in: 6185d190 user: drh tags: trunk)
06:30
Update a couple of test scripts so that they work on F2FS file-systems that support atomic transactions. (check-in: 49e58e64 user: dan tags: trunk)
01:58
Make the shell functional even if compiled with SQLITE_OMIT_COMPLETE. Omit the sqlite3_complete() call from the fuzzing interface if it is compiled with SQLITE_OMIT_COMPLETE. (check-in: c3e816cc user: drh tags: trunk)
01:02
Invoke the sqlite3_complete() interface from the fuzzer. (check-in: 332bf846 user: drh tags: trunk)
2018-01-23
20:22
Increase the version number to 3.23.0 for the next development cycle. (check-in: b58b60b2 user: drh tags: trunk)
19:24
Remove an unreachable branch from sqlite3SkipAccumulatorLoad(). (check-in: 8b9c8eab user: drh tags: trunk)
17:33
Work around a problem with GCC on 32-bit machines that cause the CAST operator to generate a floating-point result for strings that could be represented as very large integers. (check-in: 1b027319 user: drh tags: trunk)
16:38
Fix a bug causing spurious "sub-select returns N columns expected 1" errors in join queries with a term like "(a, b) IN (SELECT ...)" in the WHERE clause. Ticket [7310e2fb3d046a5f5]. (check-in: 14dfd96f user: dan tags: trunk)
15:26
Fix the modification-time setting logic in the fileio.c extension on Windows so that it works with utf8 filenames. (check-in: f785b904 user: drh tags: trunk)
14:01
In SQLITE_ENABLE_BATCH_ATOMIC_WRITE builds on F2FS file-systems, invoke SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE if an SQLITE_FCNTL_COMMIT_ATOMIC_WRITE call fails. Also, do not use an atomic transaction to create the initial database. This is because if an error occurs while writing to the db file, any changes to the file-size do not seem to be rolled back automatically. The only time this matters is when the file was 0 bytes in size to start with. (check-in: b3122db1 user: dan tags: trunk)
13:30
Fix comment typos. No changes to code. (check-in: 8e5e74c6 user: drh tags: trunk)
07:11
Skip defining WIN32_LEAN_AND_MEAN when it is already defined. (check-in: 195f5323 user: mistachkin tags: trunk)
04:22
Slightly faster implementation of the length() SQL function. (check-in: 9a4199ae user: drh tags: trunk)
03:44
Slightly faster function dispatch in the virtual machine by avoiding unnecessary reinitialization of variables that are already correctly initialized. (check-in: edd4e687 user: drh tags: trunk)
01:56
Enhance the PRAGMA noop_update statement so that the behavior persists across reprepare operations. (Leaf check-in: c25da6de user: drh tags: noop-update-reprepare)
00:17
Simplify one of the compiler warning fixes from the previous check-in. (check-in: 012d7d49 user: mistachkin tags: trunk)
00:05
Fix harmless compiler warnings seen with MSVC. (check-in: 76a11a80 user: mistachkin tags: trunk)
2018-01-22
19:04
Merge all version-3.22.0 changes. (check-in: 27e20d69 user: drh tags: apple-osx)
18:45
Version 3.22.0 (check-in: 0c55d179 user: drh tags: trunk, release, version-3.22.0)
15:45
Avoid unnecessary OOM detection warnings in a debugging routine. (check-in: 395f8ea7 user: drh tags: trunk)
15:20
Fix a test case in walro2.test so that it works with encryption extensions (when each page has a little less usable space available than usual). (check-in: b79521d2 user: dan tags: trunk)
14:49
On the walro2-X.4.2.2 test case, show the size as part of the test output. (check-in: ac5091d7 user: drh tags: trunk)
2018-01-20
15:48
Allow the shell to be built from the configure script with SQLITE_OMIT_VIRTUALTABLE defined. (check-in: 136bf323 user: dan tags: trunk)
2018-01-18
19:00
Use a loop to avoid recursion in the heightOfSelect() function. (check-in: 86de4359 user: dan tags: trunk)
17:46
Check for both zlib.h and -lz before enabling zlib support in the amalgamation configure script. (check-in: 8ecd13a1 user: dan tags: trunk)
17:09
Update the autoconf configure.ac script and Makefile.am templates so that ZLIB is automatically detected and used. (check-in: 41bfb6b8 user: drh tags: trunk)
16:59
Fix sessions module handling of sqlite_stat1 rows with (idx IS NULL). (check-in: 0e916416 user: dan tags: trunk)
16:56
Clarify the handling of the sqlite_stat1 table by legacy versions of the sessions module. (Closed-Leaf check-in: dc7c48cb user: dan tags: sessions-stat1)
16:53
Add comments describing the special sqlite_stat1 handling to sqlite3session.h. (check-in: 4431a325 user: dan tags: sessions-stat1)
16:52
Fix to the documentation for sqlite3_trace_v2(). No changes to code. (check-in: 6fbd0a11 user: drh tags: trunk)
16:42
Fix sessions module conflict handling for the sqlite_stat1 table. (check-in: f05ee74e user: dan tags: sessions-stat1)
15:06
Simplify the sessions preupdate-hook logic for transforming NULL to X'' for column sqlite_stat1.idx. (check-in: 089d7cec user: dan tags: sessions-stat1)
2018-01-17
21:14
Alternative implementation for the internal sqlite3Pow10() utility for MSVC, which is more accurate on that platform. (check-in: 469b96be user: drh tags: trunk)
20:57
Fix a problem in the sessions module with logging sqlite_stat1 rows for which (idx IS NULL) is true. (check-in: 25bf734b user: dan tags: sessions-stat1)
17:38
Fix a problem causing the sessions module to occasionally lose track of rows with composite primary keys when there are two rows with the same text value in the leftmost column of the PK. (check-in: 09aed136 user: dan tags: trunk)
16:11
Fix main.mk so that testfixture can be built either from the amalgamation or from individual source files. No changes to code. (check-in: a8aea925 user: dan tags: trunk)
13:15
Fix harmless compiler warnings, mostly unused parameters for UDFs in the CLI. (check-in: bfbeffab user: drh tags: trunk)
12:58
Omit the single test from zipfile.test that uses json functionality in non-SQLITE_ENABLE_JSON1 builds. (check-in: 6bb2a10f user: dan tags: trunk)
12:57
Update test file fts5fault6.test to account for test tokenizers implemented in Tcl returning SQLITE_ERROR instead of SQLITE_NOMEM following an OOM error. (check-in: c232f642 user: dan tags: trunk)
01:40
Simplifications to winOpenSharedMemory in the Win32 VFS. (check-in: 3e04999d user: mistachkin tags: trunk)
01:26
Corrections to error code handling in os_win.c, pursuant to walfault.test. (check-in: 56819222 user: mistachkin tags: trunk)
01:15
Fix duplicate test names in 'walfault.test'. (check-in: 7274d05f user: mistachkin tags: trunk)
2018-01-16
21:09
Fix a problem causing zipfile to store 0 in place of the CRC32 value for uncompressed files. (check-in: ba44724b user: dan tags: trunk)
21:05
Remove an unused field from the internal definition of the sqlite3_context object. (check-in: 948a26b5 user: drh tags: trunk)
21:00
Fix compiler warning in the FTS5 test interface. (check-in: 2ab4e8d5 user: drh tags: trunk)
20:50
Make the new sqlite3_vtab_collation() interface accessible to loadable extensions. (check-in: f301db3c user: drh tags: trunk)
20:44
Fix a test problem causing an error in fts5fault9.test. (check-in: 8e204811 user: dan tags: trunk)
20:37
Remove the unused SQLITE_CANTOPEN_DIRTYWAL result code. (check-in: 3c786305 user: drh tags: trunk)
20:20
Fix a makefile problem causing -DSQLITE_ENABLE_STMTVTAB builds to fail. (check-in: 7f6e5bdf user: dan tags: trunk)
20:05
Move the ZLIB version announcement in the CLI out of the default banner and put it in the ".version" command. (check-in: 231679d6 user: drh tags: trunk)
19:03
Show version of zlib in use when running the shell tool in interactive mode. (check-in: a8906b52 user: mistachkin tags: trunk)
17:33
Change a cat in zipfile.c from (z_const Bytef*) to just (Bytef*). This allows the module to build with older versions of zlib. (check-in: ac9af91d user: dan tags: trunk)
13:37
Fix a problem causing an infinite loop or other malfunction in some UPDATE statements with an OR term in the WHERE clause. Ticket [47b2581aa9bfecec] (check-in: feb2c2b6 user: dan tags: trunk)
02:38
Disable the ".archive" command tests in shell8.test if the CLI is compiled without ZLIB support. (check-in: ce8bfe6c user: drh tags: trunk)
2018-01-15
21:59
Merge the enhancements associated with the first 3.22.0 beta. (check-in: c9d2ec51 user: drh tags: apple-osx)
19:00
Fix a problem in the zipfile module causing it to generate incorrect checksums. Remove the ability to insert compressed data into a zip archive. (check-in: b0b7d036 user: dan tags: trunk)
15:49
Fix a zipfile problem with extracting zero length files compressed using deflate. (check-in: cf640872 user: dan tags: trunk)
14:32
Fix an error in the setDeviceCharacteristics() procedure for the (unsupported) QNX code in os_unix.c. (check-in: 8151913a user: drh tags: trunk)
2018-01-14
20:12
Avoid excess stack usage when a VALUES clause with lots of rows occurs within a scalar expression. This fixes a problem discovered by OSSFuzz. (check-in: a4fa0581 user: drh tags: trunk)
2018-01-13
23:28
Fix harmless compiler warnings in zipfile.c. (check-in: 8f7a592f user: drh tags: trunk)
19:08
Support UPDATE statements against zipfile virtual tables. (check-in: f2d2a5df user: dan tags: trunk)
14:28
Fully initialize the Mem object for serial-type 10, in case such a serial-type is found in a corrupt database file. (check-in: bd70a07d user: drh tags: trunk)
14:07
Fix a typo in test file crash8.test. (check-in: 4951d91d user: dan tags: branch-3.19)
14:02
Fix various problems in test scripts preventing "make test" from passing on F2FS file-systems with the "atomic-write" feature. (check-in: 6bedc743 user: dan tags: trunk)
14:01
Fix a typo in crash8.test. (Closed-Leaf check-in: c3dc7b8d user: dan tags: f2fs-test-fixes)
13:21
Fix various problems in test scripts preventing "make test" from passing on F2FS file-systems with the "atomic-write" feature. Cherrypick of [56d93d07]. (check-in: 6a296d4d user: dan tags: branch-3.19)
13:07
Fix various problems in test scripts preventing "make test" from passing on F2FS file-systems with the "atomic-write" feature. (check-in: 56d93d07 user: dan tags: f2fs-test-fixes)
02:07
Updates and minor typo fix for the README. (check-in: bb196fcb user: mistachkin tags: trunk)
01:53
Add the new "nochange" APIs to the extension loading mechanism. (check-in: cd7c4269 user: drh tags: trunk)
2018-01-12
23:38
Add the sqlite3_value_nochange() API, usable from within the xUpdate method of a virtual table to discover whether or not a column was unchanged at the SQL level. (check-in: dec3ea4e user: drh tags: trunk)
23:18
Improved comments. Slightly tighter implementation, but no big changes. (Closed-Leaf check-in: a1b3f285 user: drh tags: sqlite3_value_nochange)
21:00
Add the experimental sqlite3_value_nochange() interface usable by xUpdate methods of virtual tables to see if a column has actually changed values. (check-in: 8b7be15e user: drh tags: sqlite3_value_nochange)
19:33
Simplification to the implementation of OP_Insert. (check-in: 6acbdba5 user: drh tags: trunk)
19:20
Fix error handling in sqlite3session_diff() when it is invoked for table "sqlite_stat1". (check-in: 874285e4 user: dan tags: trunk)
18:46
Avoid an unnecessary branch when not using pre-update hooks. (check-in: ec96707e user: drh tags: trunk)
18:03
Fix obsolete comments. No changes to code. (check-in: ec39c99b user: drh tags: trunk)
17:25
Include changes made to the sqlite_stat1 table in changesets generated by the sessions module. sqlite_stat1 entries in such changesets are ignored by legacy clients. (check-in: 20642335 user: dan tags: trunk)
16:44
Experimental change to include changes made to the sqlite_stat1 table in changesets generated by the sessions module. sqlite_stat1 entries in such changesets are ignored by legacy clients. (Closed-Leaf check-in: bd46c442 user: dan tags: sessions-stat1)
14:34
Always use utimes() instead of utimensat() since the latter is not available even on some recent unix systems. (check-in: 30ed7a4b user: drh tags: trunk)
12:02
Add a test to ensure that the sqlite3changeset_apply() function ignores tables that do not have the expected primary keys. (check-in: bf2daf06 user: dan tags: trunk)
00:30
Enable the one-pass optimization for DELETE and UPDATE on RTree. This is parked in a branch because is seems to make no measureable performance difference. (Leaf check-in: 8b8314cb user: drh tags: rtree-one-pass)
2018-01-11
18:15
Add the sqlite3_vtab_nochange() interface. Test cases are in TH3. (check-in: a5d09dfa user: drh tags: trunk)
17:33
Change zipfile to be a WITHOUT ROWID virtual table and table-valued function. (check-in: 931201f6 user: dan tags: trunk)
17:04
Add the sqlite3_vtab_nochange() method which virtual table implementations can use to optimize UPDATEs. (Closed-Leaf check-in: d444b1ff user: drh tags: sqlite3_vtab_nochange)
16:16
Add test cases for running multiple RBU operations within the same process concurrently. (check-in: 407b5ed3 user: dan tags: trunk)
14:50
Minor formatting changes in zipfile.c. No logical code differences. (check-in: 4f68bed3 user: drh tags: trunk)
13:43
Fix typo in comment. No code changes. (check-in: 2c55571b user: drh tags: trunk)
00:38
Update the .help screen in the CLI. Make sure the temporary files for ".open" are not deleted too soon. (check-in: b8d92d8d user: drh tags: trunk)
00:04
Add the built-in edit(VALUE) and edit(VALUE,EDITOR) function to the CLI. (check-in: ef823c47 user: drh tags: trunk)
2018-01-10
23:29
Add the ".once -e" and ".once -x" commands to the CLI, and the ".excel" command that is an alias for ".once -x". (check-in: a6ed5ab9 user: drh tags: trunk)
23:27
Update test cases for the new "usage" for .output. (Closed-Leaf check-in: fbf5e43c user: drh tags: excel-shell-cmd)
22:27
Save and restore the output mode when doing ".once -x" or ".excel". (check-in: f697c164 user: drh tags: excel-shell-cmd)
22:15
An attempt to get ".once -e" working reliably on Windows. (check-in: 9b97f9d2 user: drh tags: excel-shell-cmd)
21:50
Fix a potential SQLITE_MISUSE in the .excel command when no database is open. (check-in: 9b95ff1a user: drh tags: excel-shell-cmd)
21:41
Add support for the ".excel" command (and ".once -e" and ".once -x") in the CLI. (check-in: 23fa7c57 user: drh tags: excel-shell-cmd)
19:50
Fix a harmless compiler warning in zipfile.c (check-in: 60c694c1 user: drh tags: trunk)
19:15
Include RTREE in the default CLI build. (check-in: 6a6a3d49 user: drh tags: trunk)
18:09
Modify the new "--append" option to the .archive so that it takes a filename argument, the same as "--file". (check-in: 58e3b07c user: drh tags: trunk)
17:44
Add the lsmode(MODE) function in the fileio.c extension and use that function in the .archive implementation. Add the --append and --dryrun options to the .archive command and remove the --zip option, making it automatic. (check-in: 38f28029 user: drh tags: trunk)
17:39
Fix minor problems with the new ".archive" command changes. (Closed-Leaf check-in: 612b30c9 user: drh tags: archive-improvements)
17:37
Return an SQLITE_CONSTRAINT error if an attempt is made to insert duplicate entries into a zip archive. (check-in: 1f099b2b user: dan tags: trunk)
17:19
In the fileio.c extension, change the filetype(MODE) function into lsmode(MODE). Use the new lsmode(MODE) function in shell.c. (check-in: 52d12ba9 user: drh tags: archive-improvements)
16:50
Implement the ".ar --create" command using a single "REPLACE INTO sqlar SELECT ... FROM fsdir();" statement. Add the shell_putsnl() SQL function for providing --verbose output. (check-in: 28ab9304 user: drh tags: archive-improvements)
16:30
Have the zipfile module automatically append "/" to directory names that do not already end with such a character. This is required for info-zip compatibility. (check-in: 94bc3c60 user: dan tags: trunk)
15:53
Add the "filetype()" SQL function for interpreting file modes to the fileio.c extension. (check-in: 58c0c74c user: drh tags: archive-improvements)
15:17
The ".ar" command deduces whether or not the target file is a ZIP or SQLAR and does the appropropriate thing. The "-z" option is omitted. The "--append" option is added to open auxiliary databases using apndvfs. (check-in: 430d1a7d user: drh tags: archive-improvements)
14:00
Allow the use of ".ar -t" without specifying an archive file or the "-z" option when the command-line shell is opened on a ZIP archive. (check-in: 9340a2c1 user: drh tags: archive-improvements)
13:58
Tag an unreachable branch using ALWAYS(). (check-in: c42c734f user: drh tags: trunk)
13:44
Checked into the wrong branch. (Closed-Leaf check-in: 55116dc3 user: drh tags: mistake)
13:11
Work on the ".archive" command. (1) Add the --dryrun option. (2) Do not require --file when open on a ZIP archive. (3) Miscellaneous code simplifications. This is an incremental check-in of work in progress. (check-in: a2baada4 user: drh tags: archive-improvements)
11:56
Fix a problem in os_unix.c causing it to return SQLITE_CANTOPEN instead of SQLITE_READONLY_RECOVERY. (check-in: 6a16f554 user: dan tags: trunk)
00:53
Rearrange some routines in shell.c to avoid the need to forward reference a static function. (check-in: fd7f51a1 user: drh tags: trunk)
00:40
Compute the correct column name even if the column identifier is the very last token in the SQL statement. This fixes a problem introduced by check-in [0fdf97efe5df745510c6b] and reported by the community during beta-testing. (check-in: 36b89d72 user: drh tags: trunk)
2018-01-09
22:23
When disconnecting from the 'swarmvtab' extension, close each database prior to invoking the 'openclose' function on it. (check-in: 3e5647cb user: mistachkin tags: trunk)
20:49
Fix harmless compiler warnings. (check-in: 0fb42090 user: mistachkin tags: trunk)
20:44
Return SQLITE_CONSTRAINT if a user attempts to update a zipfile table. (check-in: 64c9ccf6 user: dan tags: trunk)
20:34
In the os_unix.c implementation of xOpen(), do not return SQLITE_READONLY_DIRECTORY in cases where the file cannot be opened for reasons other than a readonly directory, such as the process running out of file descriptors. (check-in: fa8b80bb user: dan tags: trunk)
18:31
Fix a potential crash in sqlite3expert.c caused by a missing sqlite3_reset() call. (check-in: f6355970 user: dan tags: trunk)
15:57
Fix another -fsanitize issue in new shell code. (check-in: 6ee7b54c user: dan tags: trunk)
15:28
Updates to the README.md file for the ext/misc directory. No code changes. (check-in: 6b3f4349 user: drh tags: trunk)
15:25
Fix the shell so that it can be built with SQLITE_OMIT_VIRTUALTABLE. (check-in: 931421a2 user: dan tags: trunk)
14:30
Do not attempt to build the code in ext/expert/sqlite3expert.c if SQLITE_OMIT_VIRTUALTABLE is defined. (check-in: ba967ad2 user: dan tags: trunk)
14:27
Attempt to fix the fileio.c extension so that it builds on MinGW-64. (check-in: a7446d32 user: drh tags: trunk)
10:29
Fix a zipfile problem with adding new directories to an archive. (check-in: 5fed6703 user: dan tags: trunk)
07:16
Fix a problem in zipfile.c found by -fsanitize. (check-in: 4fe697fa user: dan tags: trunk)
02:27
Avoid a compiler warning when building with newer versions of MinGW (check-in: cba0206a user: drh tags: trunk)
00:28
Improve portability of compile-time MinGW detection for the command line shell. (check-in: 4a723614 user: mistachkin tags: trunk)
00:26
Fix harmless compiler warnings. (check-in: 1adf4e60 user: mistachkin tags: trunk)
2018-01-08
20:04
Test cases for sqlite3_normalize(). (Closed-Leaf check-in: 658f4225 user: drh tags: normalize)
19:59
Update the zipfile module so that it matches the documentation. (check-in: 7e7e472f user: dan tags: trunk)
19:29
Special handling of the NULL keyword. Sometimes it is a literal, and sometimes it is a keyword. (check-in: db5d138e user: drh tags: normalize)
19:18
Add IN-operator normalizating and the SQLITE_NORMALIZE_CLI compile-time option for generating a stand-alone program. (check-in: d77dbb39 user: drh tags: normalize)
17:34
Fix problems in the sqlite3expert.c code revealed by -fsanitize. (check-in: 7a93dd78 user: dan tags: trunk)
17:12
Add an "ifcapable trace {}" block to a test in fkey1.test that uses SQL tracing. (check-in: 7182591d user: dan tags: trunk)
17:09
Remove a superfluous define from the 'fileio' extension when compiled for Win32. (check-in: 6dcba669 user: mistachkin tags: trunk)
17:05
Fix a malloc/sqlite3_free mismatch in the shell tool code. (check-in: fe053b2e user: dan tags: trunk)
16:54
First code for an auxiliary function that will normalize an SQL statement. (check-in: 84814aac user: drh tags: normalize)
14:24
Fix compilation of 'sqltclsh.exe' for MSVC. (check-in: abb112d9 user: mistachkin tags: trunk)
2018-01-07
23:28
Avoid the use of utimensat() on older unix platforms. (check-in: 90cb01d8 user: drh tags: trunk)
21:58
Remove the dependency on test_windirent.h from the generated shell.c file. (check-in: 0a50c9e3 user: drh tags: trunk)
20:38
Modify the sqltclsh startup script to look for a properly formatted SQLAR at the end of the executable. Fix the CLI so that it automatically links against appendvfs and so that the --append command-line option works. (check-in: 67c4a8c6 user: drh tags: trunk)
19:52
Improved comments on the sqlar.c and compress.c extensions that describe the differences between the "zlib format" used by SQLAR, the raw deflate format used by ZIP, and the custom format used by compress.c. No changes to code. (check-in: c13415c5 user: drh tags: trunk)
2018-01-06
21:46
The shell detects and opens ZIP archives using the zipfile extension. (check-in: 05c99eb8 user: drh tags: trunk)
19:19
In the shell, include the ".archive" command only if compiling with SQLITE_HAVE_ZLIB. Add ".archive" to the ".help" output. (check-in: 366469f5 user: drh tags: trunk)
15:49
Better whitespace in the "CREATE TABLE sqlar()" statement for the ".ar" command. (check-in: 252ee55a user: drh tags: trunk)
15:46
Improved output from ".schema --indent" when a column definition is followed by a comment. (check-in: 87da7eff user: drh tags: trunk)
14:44
Remove a trailing tab from the Makefile for MSVC. (check-in: 00cc26e3 user: mistachkin tags: trunk)
14:43
Minor tweaks to the Makefile for MSVC. (check-in: 2f6cc5d8 user: mistachkin tags: trunk)
13:42
Add the appendvfs extension and code for the sqltclsh.exe executable. (check-in: b0a43e32 user: drh tags: trunk)
13:33
Fix the appendvfs so that it leaves sqlite3_file->pMethods as NULL if it fails to open. (Closed-Leaf check-in: 46b341e3 user: drh tags: appendvfs)
04:34
Add sqltclsh.exe to the windows makefile. (check-in: a6d5c7c2 user: drh tags: appendvfs)
2018-01-05
21:01
Make sure i64 and u64 typedefs are available throughout shell.c. (check-in: 656fb5aa user: drh tags: trunk)
20:30
Fix the shell.c.in amalgamator script so that it avoids generating redundant typedef statements. (check-in: 6c53c740 user: drh tags: trunk)
20:26
MinGW does not define the S_ISLNK macro; therefore, define it in the shell when needed. (check-in: 73023feb user: mistachkin tags: trunk)
20:13
Skip running the 'zipfile' test if the necessary static package cannot be loaded. (check-in: 5bc816ec user: mistachkin tags: trunk)
20:08
Fix shell compilation with MinGW by including the 'dirent.h' header. (check-in: dfe510b5 user: mistachkin tags: trunk)
19:49
Fix the autoconf makefile so that it builds testfixture correctly. (check-in: fbfe04c0 user: drh tags: trunk)
19:28
Sync up the autoconf Makefile for MSVC. (check-in: da8712bd user: mistachkin tags: trunk)
19:27
The 'releasetest' tool should pass the TCLDIR macro for MSVC to nmake. (check-in: eaa9c0dd user: mistachkin tags: trunk)
19:25
For the MSVC Makefile, the 'sqlite3_checker.exe' target requires the Tcl library. (check-in: 38109a47 user: mistachkin tags: trunk)
19:01
Add the ".ar" command to the command-line shell. (check-in: 148b8aee user: drh tags: trunk)
18:51
Fix a bug introduced by efforts to reduce compiler warnings in check-in [364ac333b030f0] (Closed-Leaf check-in: 1d6cee9a user: drh tags: sqlar-shell-support)
17:40
In the Makefile for MSVC, the default target should not include binaries that link against the Tcl library. (check-in: 5c6d0a1d user: mistachkin tags: sqlar-shell-support)
17:12
More adjustments to MSVC Makefile dependencies for zlib. (check-in: bb650e5d user: mistachkin tags: sqlar-shell-support)
17:10
Fix compiler warnings. (check-in: 19aabccf user: mistachkin tags: sqlar-shell-support)
16:23
Fix missing dependencies for shell.c in all makefiles. (check-in: 45495d3e user: drh tags: sqlar-shell-support)
16:05
In the Makefile for MSVC, only attempt to link against Tcl when it is needed. Also, only compile 'zipfile.c' when use of zlib is enabled. (check-in: a33ad33c user: mistachkin tags: sqlar-shell-support)
16:03
Add some missing #ifdefs for building without zlib. (check-in: c63fb170 user: mistachkin tags: sqlar-shell-support)
14:55
Fix compiler warnings. (check-in: 364ac333 user: drh tags: sqlar-shell-support)
11:34
Fix an LSM problem causing the wrong amount of "auto-work" to be performed under fairly obscure circumstances. (check-in: a4876672 user: dan tags: trunk)
07:57
Fix an LSM crash that could occur if LSM_CONFIG_AUTOFLUSH was set to 0. (check-in: 05346f83 user: dan tags: trunk)
01:22
Revise detection of 'tclsh.exe' in the Makefile for MSVC. (check-in: 45fabd86 user: mistachkin tags: sqlar-shell-support)
01:00
Enhance the 'zlib' build target for MSVC. (check-in: 0bc3b76e user: mistachkin tags: sqlar-shell-support)
00:53
Add missing #ifdef. (check-in: a0e18aea user: mistachkin tags: sqlar-shell-support)
2018-01-04
23:49
In the 'fileio' extension code for Win32, use the FILE_FLAG_BACKUP_SEMANTICS flag when setting the file times, just in case the file is actually a directory. (check-in: 4f344406 user: mistachkin tags: sqlar-shell-support)
22:50
Remove 'timespec' related code from the shell that has no effect and a (now) superfluous 'timespec' typedef from the Win32 dirent header file. (check-in: 57dac995 user: mistachkin tags: sqlar-shell-support)
22:46
Get the shell enhancements compiling with MSVC. (check-in: 335387f9 user: mistachkin tags: sqlar-shell-support)
19:54
Merge in all recent trunk enhancements. (check-in: 406f7918 user: drh tags: sqlar-shell-support)
19:20
Remove the snarky "_supported_" qualifier from the name of the sqlite_offset() SQL function. (check-in: a6eee0fc user: drh tags: trunk)
18:36
Fix problem causing free-list corruption when merging free-lists for two concurrent transactions that have both used page X as an in-memory free-list trunk page, where X lies past the end of the initial database images. (check-in: dc0fc2aa user: dan tags: begin-concurrent-pnu)
16:40
Fix a broken documentation hyperlink. No code changes. (check-in: d91e3f3d user: drh tags: trunk)
2018-01-03
23:54
Fix compiler warnings on Windows. (check-in: 512b8e40 user: drh tags: memdb)
23:40
New test cases and fixes for minor problems. (check-in: e0da2cc3 user: drh tags: memdb)
22:48
Miscellaneous code and comment cleanup. (check-in: fa6069fb user: drh tags: memdb)
19:03
Replace sqlite3_memdb_config() with sqlite3_deserialize(). Remove the "db memdb" command from the TCL interface, replacing it with "db serialize" and "db deserialize". (check-in: 2f6e9df9 user: drh tags: memdb)
16:49
Replace the sqlite3_memdb_ptr() interface with the more general sqlite3_serialize() interface. (check-in: 8cf2ed4e user: drh tags: memdb)
13:20
Simplify the "sqlite3" command in the TCL interface. The filename is now optional. There is a new --memdb option with an argument that is the blob to which the database content should be initialized. (check-in: 47398ae7 user: drh tags: memdb)
12:39
Fix typo in the Makefile for MSVC. (check-in: e5c6ade8 user: mistachkin tags: memdb)
01:47
Add another test case (found by OSSFuzz) for the problem fixed in check-in [2846458a] and described by ticket [dc3f932f5a147771]. No changes to code. (check-in: 4165fae9 user: drh tags: trunk)
01:28
Add support for the "memdb" VFS and the sqlite3_memdb_ptr() and sqlite3_memdb_config() interfaces, to enable an SQLite database to be manipulated as an in-memory object. (check-in: fb2ac2d2 user: drh tags: memdb)
2018-01-02
21:29
Fix code indentation. No logic changes. (check-in: e115f258 user: drh tags: trunk)
19:57
Fix a spurious SQLITE_CORRUPT error that could occur within a COMMIT of a concurrent transaction. (check-in: 50c8952c user: dan tags: begin-concurrent-pnu)
18:11
In the constraint resolution logic, be careful not to cache column values in registers whose initialization might be bypassed by an OP_NoConflict opcode. Fix for ticket [dc3f932f5a147771] reported by OSSFuzz. (check-in: 2846458a user: drh tags: trunk)
16:02
Enhance the memvfs extension so that it can be read/write. (check-in: 04c9197d user: drh tags: trunk)
13:48
Updates to the sqlite3_file_control() documentation. No changes to code. (check-in: 240e32ab user: drh tags: trunk)
12:50
Do not attempt to use pragma_module_list in the command-line shell unless it has been compiled with -DSQLITE_INTROSPECTION_PRAGMAS. (check-in: 39ca5fcd user: drh tags: trunk)
00:04
The ".schema" command in the command-line shell now shows the structure of table-valued functions and eponymous virtual tables if they are named on the ".schema" command line. Example: ".schema sql%" shows the structure of the "sqlite_dbstat" and "sqlite_stmt" virtual tables. (check-in: f80f6651 user: drh tags: trunk)
2018-01-01
21:49
Improved name quoting and escaping in the auxiliary column info section of the ".schema" output for views and virtual tables. (check-in: d64b14e3 user: drh tags: trunk)
21:28
In the output of ".schema", show the column names of virtual tables and views in a separate comment. (check-in: 2234a87f user: drh tags: trunk)
20:11
Minor simplification to the ".schema" logic in the command-line shell. (check-in: add45c47 user: drh tags: trunk)
19:33
Enable the introspection pragmas for command-line shell builds. (check-in: 0b04223f user: drh tags: trunk)
16:59
Experiments with the regexp.c extension, trying to get it to report the exact substring that matches the RE. (Leaf check-in: 3d6fba62 user: drh tags: regexp-span)
2017-12-30
18:32
Have zipfile support DELETE commands. (check-in: 01d4e866 user: dan tags: sqlar-shell-support)
14:26
Rearrange things a bit so that writing to a zipfile does not invert the order of objects it contains. (check-in: f69e8194 user: dan tags: sqlar-shell-support)
2017-12-29
20:19
Update ext/misc/zipfile.c to support creating and adding entries to existing zip archives. (check-in: 2dec2dec user: dan tags: sqlar-shell-support)
17:21
Add support for the sqlite_unsupported_offset() SQL function if and only if compiled using -DSQLITE_ENABLE_OFFSET_SQL_FUNC. Use that definition when compiling the command-line shell. (check-in: 4f1f1f52 user: drh tags: trunk)
16:37
Stricter test cases. (Closed-Leaf check-in: 9406c0a6 user: drh tags: location-function)
15:19
Fix a typo in the MSVC makefile. (check-in: 89e5720a user: drh tags: location-function)
15:04
Change the function name to sqlite_unsupported_offset(X). Only enable the function if compiled with -DSQLITE_ENABLE_OFFSET_SQL_FUNC. The makefiles add that definition to shell builds. (check-in: 7a7f826e user: drh tags: location-function)
14:33
Enhance location(X) so that it works with indexes and WITHOUT ROWID tables. The function might return an offset to the main table or to an index, depending on whether the column X would be loaded from the main table or from the index. (check-in: dd94d6a8 user: drh tags: location-function)
13:35
Merge recent enhancements from trunk. (check-in: 6251e438 user: drh tags: location-function)
12:50
Add test cases for the undocumented behavior of duplicate columns on an INSERT or UPDATE. (check-in: f4349c0c user: drh tags: trunk)
2017-12-27
22:09
The output of sqlite3_trace() now shows each command of a trigger as it is evaluated. This feature involved major changes to the parser, such as removing the ExprSpan object and replacing it with a new mechanism for capturing the original SQL text of phrases in the input SQL. (check-in: 0fdf97ef user: drh tags: trunk)
21:30
Omit all sqlite3_trace() output from the triggers associated with foreign key constraints. (Closed-Leaf check-in: fda08e3d user: drh tags: span-refactor)
21:13
Improve the shell tool ".ar --list --verbose" command. (check-in: b64681a6 user: dan tags: sqlar-shell-support)
20:38
Show the text of individual statements within a trigger, as they execute, as comments in the output from sqlite3_trace() and sqlite3_trace_v2(). (check-in: fe3d2b97 user: drh tags: span-refactor)
19:43
Add and use the internal sqlite3DbSpanDup() interface. (check-in: a8e1545c user: drh tags: span-refactor)
19:27
Merge recent enhancements from trunk. (check-in: 76373091 user: drh tags: span-refactor)
18:54
Have the shell tool ".ar --list" and ".ar --extract" commands support zip files. Currently the "-zip" switch is required. (check-in: a532a0f6 user: dan tags: sqlar-shell-support)
18:19
Enhance the Lemon parser generator so that it creates a faster parser at the cost of slightly larger parser tables. Add the ability to measure coverage of the generated state machine when compiling with the -DYYCONVERGE option. In SQLite, add the SQLITE_TESTCTRL_PARSER_COVERAGE test-control to query the new parser coverage feature. (check-in: 1b22b42e user: drh tags: trunk)
17:36
The previous check-in had an error in the coverage reporting logic. (Closed-Leaf check-in: ec9b19eb user: drh tags: lemon-improvements)
17:14
Change the coverage measurement logic in the lemon-generated parser so that it only checks for coverage of state/lookahead pairs that are valid syntax. It turns out that some states are unreachable if the lookahead is not valid syntax, because the states are only reachable through a shift following a reduce, and the reduce does not happen if the lookahead is a syntax error. (check-in: 9dce4650 user: drh tags: lemon-improvements)
16:13
In the lemon-generated parser, do not report the End-of-input character and the wildcard character as missed coverage. (check-in: 3fe96487 user: drh tags: lemon-improvements)
15:21
In LEMON, fix an off-by-one error that can make the lookahead table one byte too smal. (check-in: 93792bc5 user: drh tags: lemon-improvements)
2017-12-26
20:39
Add new file ext/misc/zipfile.c, containing a virtual table for read-only access to simple zip archives. (check-in: 8e366b99 user: dan tags: sqlar-shell-support)
18:32
Change the lemon-parser coverage report format to report all state/lookahead pairs and indicate on each whether it is hit or missed. (check-in: 86e30fc2 user: drh tags: lemon-improvements)
18:14
Merge bug fixes from trunk. (check-in: d76e1206 user: drh tags: lemon-improvements)
18:04
Add support for measuring and reporting coverage of the parser state machine using the SQLITE_TESTCTRL_PARSER_COVERAGE test-control. (check-in: 1253a872 user: drh tags: lemon-improvements)
14:46
Faster and smaller implementation of sqlite3AtoF() based on a suggestion from Cezary H. Noweta. (check-in: fd2e0e7a user: drh tags: trunk)
14:32
Fix crashes that could occur if SQL NULL values were passed to the built-in FTS5 snippet function. Edit: breaks amalgamation builds. (check-in: 6a790b67 user: dan tags: trunk)
14:30
Add options to speedtest1.c and speed-check.sh for testing performance of floating-point computatations. (check-in: ebfea872 user: dan tags: trunk)
14:12
Add options to speedtest1.c and speed-check.sh for testing performance of floating-point computatations. (Closed-Leaf check-in: b3c61051 user: drh tags: mistake)
14:11
Fix crashes that could occur if SQL NULL values were passed to the built-in FTS5 snippet function. Edit: breaks amalgamation builds. (check-in: 553a3ad3 user: dan tags: mistake)
2017-12-25
13:43
Fix an assertion fault on a syntax error input caused by check-in [6b2ff26c25bb9da3]. Problem discovered by OSSFuzz. (check-in: 90d6e4f1 user: drh tags: trunk)
04:15
Enhance LEMON so that it generates the action table in such a way that no range check is needed on the lookahead table to verify that the next input token is valid. This makes the lookahead table slightly larger (about 120 bytes) but helps the parser to run faster. (check-in: 7eb0198d user: drh tags: lemon-improvements)
00:10
In the LEMON-generated parser, avoid unnecessary tests for the acceptance state. (check-in: fdbb35c5 user: drh tags: lemon-improvements)
2017-12-24
23:38
In the LEMON-generated parser, rearrange the meanings of integer action codes so that reduce actions occur last. This means that the most common case (reduce actions) can be recognized with a single comparison operation, thus speeding up the main parser loop, slightly. (check-in: 7bfe7a36 user: drh tags: lemon-improvements)
18:56
Fix a NULL pointer dereference after a syntax error that can occur as a result of check-in [6b2ff26c25bb9da3] yesterday. This problem was discovered by the OSSFuzz. (check-in: d49afb8f user: drh tags: trunk)
17:06
Improved parser tracing output. (check-in: 25be5750 user: drh tags: lemon-improvements)
17:01
Grammar changes: the sclp non-terminal should always be followed by a scanpt. (check-in: 74a0181f user: drh tags: span-refactor)
14:14
Improved parser tracing output. (check-in: c4951833 user: drh tags: span-refactor)
00:18
Remove the ExprSpan object. Instead, keep track of the test of subphrases in the parse using the "scanpt" non-terminal. (check-in: 3eab7bdc user: drh tags: span-refactor)
2017-12-23
18:40
Merge recent enhancements from trunk. (check-in: edceaccd user: drh tags: appendvfs)
18:34
Merge enhancements from trunk. (check-in: 150f07fe user: drh tags: sqlar-shell-support)
14:39
Simplification to the error handling logic in the extension loader. (check-in: 07c77314 user: drh tags: trunk)
13:55
Improve the error message that comes back when sqlite3_load_extension() fails because the named file exists but is not a valid shared library. (check-in: 05fee1a2 user: drh tags: trunk)
12:33
Move the generation of output column names earlier in the case of a CREATE TABLE AS. This is a fix for ticket [3b4450072511e62] and a continuation of check-in [ade7ddf1998190b2b63] that fixes cases of ticket [de3403bf5ae5f72ed6] that were missed previously. (check-in: 6b2ff26c user: drh tags: trunk)
11:51
Add a SELECTTRACE() macro to indicate when column names are assigned to a SELECT statement. This helps with debugging for tickets like [de3403bf5ae5f72e] and [3b4450072511e621]. (check-in: 8f194008 user: drh tags: trunk)
2017-12-22
19:53
In the sqlite3TreeViewExprList() routine, show the "AS" alias name for each expression in the list, if it exists. (check-in: 5efd854f user: drh tags: trunk)
00:52
Modify the new sqlite3_vtab_collation() interface so that it takes a pointer to the sqlite3_index_info object passed into xBestIndex rather than an sqlite3 connection pointer, which the xBestIndex method might not have access to. (check-in: 5c1fe666 user: drh tags: trunk)
2017-12-21
21:41
Fix SQLITE_DBCONFIG_TRIGGER_EQP so that it works even if SQLITE_DEBUG is not defined. (check-in: afbbfff7 user: drh tags: trunk)
21:02
Add the ".eqp trigger" option to the ".eqp" command in the command-line shell. Implemented using the new SQLITE_DBCONFIG_TRIGGER_EQP control. (check-in: 2c51644a user: drh tags: trunk)
18:55
Add the ".expert" command to the shell tool's ".help" output. (check-in: fc6193af user: dan tags: trunk)
18:23
Change the name of SQLITE_DBCONFIG_FULL_EQP to be SQLITE_DBCONFIG_TRIGGER_EQP (which we can do without breaking compatibility because the former name has not yet appeared in an official release) and streamline its implementation. (check-in: fffc7685 user: drh tags: trunk)
14:46
Add the SQLITE_DBCONFIG_MAX preprocessor macro which will always be equal to the largest SQLITE_DECONFIG value. (check-in: 95d41033 user: drh tags: trunk)
02:17
Add the experimental ".expert" command to the sqlite3.exe shell. (check-in: 0821bae7 user: drh tags: trunk)
2017-12-20
23:46
Lowercase local variable names in the SHA3 extension in order to avoid collisions with macros in termios.h. (check-in: 3ec73711 user: drh tags: trunk)
2017-12-19
18:56
Fix crash in sqlite3_vtab_collation() when called for an IS NOT NULL constraint. (check-in: ad38d2c4 user: dan tags: trunk)
17:42
Experimentally add the SQLite expert functionality to the shell tool. (Closed-Leaf check-in: 51068dba user: dan tags: expert-in-shell)
2017-12-16
20:20
Add an experimental location(X) SQL function that attempt to return the location of the payload within the database for the record that contains column X. location(X) returns NULL if X is not an ordinary table column or if SQLite cannot figure out the location because it is using a covering index. (check-in: 51be9558 user: drh tags: location-function)
19:36
Add the sqlite3_vtab_collation() function, which allows an xBestIndex callback to determine the collation sequence that SQLite will use for a comparison. And the SQLITE_DBCONFIG_FULL_EQP configuration option, which enhances the output of "EXPLAIN QUERY PLAN" so that it includes statements run by triggers. And the code for the sqlite3_expert extension and command line application. (check-in: 4c782c95 user: dan tags: trunk)
19:16
Merge latest trunk changes into this branch. (Closed-Leaf check-in: d5b597b5 user: dan tags: schemalint)
19:11
Do not use the compress() and uncompress() functions in ext/misc/compress.c - they are not quite compatible with the spec. Instead use new functions in ext/misc/sqlar.c. (check-in: 7652b3c2 user: dan tags: sqlar-shell-support)
04:37
Add unnecessary initializations to some local variables in the rtree module to suppress false-positive compiler warnings coming out of MSVC. (check-in: 64487d65 user: drh tags: trunk)
2017-12-15
20:21
Enhance the "swarmvtab" extension. See header comments in ext/misc/unionvtab.c for details. (check-in: 01c17365 user: dan tags: trunk)
12:22
In the LEMON parser generator, provide reduce actions with access to the lookahead token. (check-in: 42af190f user: drh tags: trunk)
2017-12-14
19:24
Fixes to the appendvfs.c extension. Add the "sqltclsh" application that uses appendvfs.c to find its scripts. (check-in: ee248b52 user: drh tags: appendvfs)
19:15
Have the writefile() function optionally set the modification-time of the files it writes or creates. And many small fixes to the new code on this branch. (check-in: 7b51269c user: dan tags: sqlar-shell-support)
16:57
The "apndvfs" VFS shim now appears to be working for both reads and writes. (check-in: 7f7b72d8 user: drh tags: appendvfs)
16:28
Add the ability to write to an appended database. This check-in compiles but is otherwise untested. (check-in: e343c63c user: drh tags: appendvfs)
15:40
Improve error and usage messages output by the shell ".ar" command. (check-in: b9d2d5d9 user: dan tags: sqlar-shell-support)
14:50
Bring in the latest trunk changes. (check-in: 75d85177 user: drh tags: appendvfs)
13:55
Merge latest trunk changes into this branch. (check-in: 803156cb user: dan tags: sqlar-shell-support)
2017-12-13
23:47
In valueFromExpr() only generate a OOM fault if there have been no prior faults. (check-in: 3765aaf7 user: drh tags: trunk)
22:42
Add support for the 'lsm1.c' target in the MSVC makefile. (check-in: 6de21dea user: mistachkin tags: trunk)
20:35
An improved way of generating the SQLITE_READONLY_DIRECTORY error. The error message submitted to sqlite3_log() is still correct this way. (check-in: 1c0aa919 user: drh tags: trunk)
20:17
Add the shell tool ".ar --update" command. (check-in: 825e3c03 user: dan tags: sqlar-shell-support)
20:04
Add support for the "--list" command. And for arguments to the "--extract" command. (check-in: 32c4fa25 user: dan tags: sqlar-shell-support)
20:02
New result code SQLITE_READONLY_DIRECTORY is returned when an attempt is made to write on a database file that is in a read-only directory and hence the journal file could not be created. This situation formerly returned SQLITE_CANTOPEN, which less helpful. (check-in: 3ec73c38 user: drh tags: trunk)
18:01
Correctly invalidate a column cache line when it is overwritten with NULL. Fix for ticket [123c9ba32130a6c9d432]. (check-in: 65754dc3 user: drh tags: trunk)
15:32
Change some LSM code internal typenames from "Blob" and "Pgno" to "LsmBlob" and "LsmPgno". This allows the LSM code to be compiled as a single unit with sqlite3.c. (check-in: 30bf38d5 user: dan tags: trunk)
14:22
Add script to amalgamate all LSM files into "lsm1.c". (check-in: e32b69d7 user: dan tags: trunk)
10:11
Minor enhancement to two assert() statements in the default VFSes. (check-in: 9cede8a8 user: drh tags: trunk)
2017-12-12
20:28
Add tests and fixes for the shell ".ar" command -f option. (check-in: 1a986797 user: dan tags: sqlar-shell-support)
20:04
Add support for parsing options in non-traditional tar form to the ".ar" command. Have writefile() attempt to create any missing path components. And not to throw an exception if it is called to create a directory that already exists. (check-in: 38dbeb1e user: dan tags: sqlar-shell-support)
18:17
Merge latest begin-concurrent changes into this branch. (check-in: 3fde0b4d user: dan tags: begin-concurrent-pnu)
2017-12-11
20:22
Enhance virtual table "fsdir" in ext/misc/fileio.c. Add support for "-C" to the shell command's ".ar c" command. (check-in: 0394889a user: dan tags: sqlar-shell-support)
17:20
Fix a buffer overwrite in fts5 that could occur when processing a prefix query. (check-in: 92fc146b user: dan tags: trunk)
14:02
Abort on an invalid paramater to sqlite3BitvecSet(). (check-in: 163c8709 user: drh tags: begin-concurrent)
2017-12-09
18:28
Add support for -C to ".ar x". (check-in: 8cd70960 user: dan tags: sqlar-shell-support)
17:58
Improve parsing of ".ar" commands. Add new test file for the same. (check-in: 840401cc user: dan tags: sqlar-shell-support)
01:02
Fix a harmless API signature mismatch in the unix VFS. (check-in: bab9de7f user: drh tags: trunk)
2017-12-08
19:37
The query planner tries to avoids using indexes that use unknown collating functions. (check-in: 02013fc1 user: drh tags: trunk)
16:23
Add compile time switch SQLITE_ENABLE_ICU_COLLATIONS. For enabling ICU collations without also enabling the tokenizer, the LIKE operator, the REGEXP operator, or the unicode aware upper()/lower() scalar functions. (check-in: a079f914 user: dan tags: trunk)
14:07
Make sure the bComplex variable in sqlite3DeleteFrom() is initialized when compiling with -DSQLITE_OMIT_TRIGGER. (check-in: e526d0c4 user: drh tags: trunk)
2017-12-07
22:10
When doing a table scan using an index, do not error out if collating functions used by that index are unavailable, since they will not be used. (check-in: bbd69fa6 user: drh tags: trunk)
22:04
Fix typo in comment. No changes to code. (check-in: 95958b60 user: mistachkin tags: trunk)
21:03
Add the ".ar x" command to the shell. For extracting the contents of sqlar archives. (check-in: 0cc699d1 user: dan tags: sqlar-shell-support)
16:51
Fix harmless compiler warnings in the rot13 extension. (check-in: 11347077 user: drh tags: trunk)
15:44
Begin adding support for the sqlar archive format to shell.c. There is no "extract" command so far, only "create". (check-in: c9827a01 user: dan tags: sqlar-shell-support)
13:15
Updates to the main README.md file. (check-in: 6bfafc35 user: drh tags: trunk)
2017-12-06
20:50
Fix an unreachable branch in cases when SQLITE_ENABLE_STAT4 is not defined. (check-in: 6a55bd67 user: drh tags: trunk)
2017-12-05
19:07
For MSVC, simplify default locations for Tcl and ICU by using directories inside 'compat'. (check-in: 8155b5ac user: mistachkin tags: sqlar-shell-support)
18:54
Add support for including zlib in the shell when compiling with MSVC. (check-in: e1838cee user: mistachkin tags: sqlar-shell-support)
18:32
If SQLITE_HAVE_ZLIB is defined at build-time, include the functions in ext/misc/compress.c in the shell. (check-in: 0296286a user: dan tags: sqlar-shell-support)
15:00
Merge latest trunk changes, including the compilation fix for builds that define both SQLITE_ENABLE_MULTITHREADED_CHECKS and SQLITE_ENABLE_API_ARMOUR. (check-in: 2cb5d2a9 user: dan tags: apple-osx)
14:58
Fix a compilation problem when both SQLITE_ENABLE_MULTITHREADED_CHECKS and SQLITE_ENABLE_API_ARMOUR are defined. (check-in: 0342ce51 user: dan tags: trunk)
2017-12-01
18:40
Fix the ".lint fkey-indexes" shell command so that it works with WITHOUT ROWID tables. (check-in: 5771b1d6 user: dan tags: trunk)
2017-11-30
11:21
Fix some minor problems in test scripts. (check-in: 4c551fde user: dan tags: trunk)
07:56
Merge latest trunk changes, including the fixes for test file walprotocol.test. (check-in: b425b998 user: dan tags: apple-osx)
07:55
Update test file walprotocol.test to account for the changes in the wal locking protocol. (check-in: 64e56700 user: dan tags: trunk)
2017-11-29
16:16
Merge latest trunk changes into this branch. (check-in: 373fa21b user: dan tags: schemalint)
2017-11-28
20:43
Fix an assertion fault found by OSSFuzz. (check-in: 75d69987 user: dan tags: trunk)
13:48
Merge the snapshots-always-lock-the-wal-file change into this branch. (check-in: 3ec976e0 user: dan tags: apple-osx)
13:39
Lock the wal file for all snapshot transactions, even if they would not otherwise require this, preventing checkpointers and writers from wrapping the wal file. This means that if one connection has an open snapshot transaction it is guaranteed that a second connection can open a transaction on the same snapshot. (check-in: b81a3149 user: dan tags: trunk)
08:08
Merge latest trunk changes, including the SQLITE_ENABLE_MULTITHREADED_CHECKS feature, into this branch. (check-in: 1fd10349 user: dan tags: apple-osx)
07:52
Add experimental feature to detect threading bugs in apps that use SQLITE_CONFIG_MULTITHREADED. Enabled at compile time using SQLITE_ENABLE_MULTITHREADED_CHECKS. (check-in: 40b598c8 user: dan tags: trunk)
07:47
Use a symbolic constant instead of a literal (-1) to identify a warn-on-contention mutex. (Closed-Leaf check-in: 12a23c0a user: dan tags: multithreaded-checks)
02:47
Add the "PRAGMA table_ipk(TABLE)" command for evaluation purposes. (Leaf check-in: 2494132a user: drh tags: pragma-table-ipk)
00:52
Update tests to deal with SQLITE_FAST_SECURE_DELETE. (check-in: e6b89304 user: drh tags: trunk)
2017-11-27
17:56
Fix a faulty NEVER assert() that could fail for SQLITE_ENABLE_STAT4 builds that use foreign keys. (check-in: 465350e5 user: dan tags: trunk)
2017-11-26
02:14
Fix an CSV output quoting problem in the command-line shell on Windows. (check-in: 6500cdbd user: drh tags: trunk)
2017-11-25
21:09
Fix builds with both SQLITE_ENABLE_MULTITHREADED_CHECKS and SQLITE_THREADSAFE=0 defined. (check-in: 7d0b12fc user: dan tags: multithreaded-checks)
17:51
Add experimental feature to detect threading bugs in apps that use SQLITE_CONFIG_MULTITHREADED. Enabled at compile time using SQLITE_ENABLE_MULTITHREADED_CHECKS. (check-in: a66886ac user: dan tags: multithreaded-checks)
2017-11-24
19:24
Add the "^" syntax from fts3/4 to fts5. (check-in: 24d7058e user: dan tags: trunk)
16:55
Enhance the configure script to detect zLib. (check-in: e3b6e220 user: drh tags: trunk)
2017-11-23
04:45
Fix a problem in the omit-table-from-left-join optimization from check-in [0cd82ee9a8413cf] that was discovered by OSSFuzz. (check-in: b016c28f user: drh tags: trunk)
00:45
Completely disable the skip-ahead-distinct optimization for all but the inner-most loop of a DISTINCT join. Fix for ticket [ef9318757b152e3a26e9592] (check-in: b7595cf2 user: drh tags: trunk)
2017-11-21
23:47
An experimental optimization to DISTINCT that causes an immediate exit of the inner loop of a join following each output row if the inner loop does not contribute any columns to the result set. (Leaf check-in: a33f88ac user: drh tags: distinct-early-out)
23:38
Fix the skip-ahead-distinct optimization on joins for cases there the table in the inner loop of the join does not contribute any columns to the result set. Proposed fix for ticket [ef9318757b152e3a2] (check-in: 2dcef5a9 user: drh tags: trunk)
21:15
Fix typo in the Makefiles for MSVC. (check-in: 17dd2f73 user: mistachkin tags: trunk)
21:14
Fix compilation issue (C99-ism) in the shell seen with MSVC. (check-in: 9cb47430 user: mistachkin tags: trunk)
20:53
Update the omit-table-from-left-join optimization so that it can omit tables from the middle of the join as well as the end. (check-in: 0cd82ee9 user: dan tags: trunk)
19:22
Update the omit-table-from-left-join optimization so that it can omit tables from the middle of the join as well as the end. (Closed-Leaf check-in: 618ca9fe user: dan tags: left-join-optimization)
2017-11-20
15:46
Fix a problem preventing the planner from identifying scans that visit at most one row in cases where that property is guaranteed by a unique, not-null, non-IPK column that is the leftmost in its table. (check-in: 7fdb1e2a user: dan tags: trunk)
15:45
Fix a typo in a test script on this branch. (Closed-Leaf check-in: bff5dcfd user: dan tags: left-join-omit-fix)
14:40
Fix a problem preventing the planner from identifying scans that visit at most one row in cases where that property is guaranteed by a unique, not-null, non-IPK column that is the leftmost in its table. (check-in: 299d7ca5 user: dan tags: left-join-omit-fix)
2017-11-18
18:07
Enhance the log messages produced in some cases if database corruption is encountered by an SQLITE_DEBUG build. (check-in: ee840a76 user: dan tags: trunk)
17:30
Enhance the log messages produced in some cases if database corruption is encountered by an SQLITE_DEBUG build. (Closed-Leaf check-in: 23a31280 user: dan tags: sqlite-corrupt-page)
2017-11-17
21:01
Improved fix for ticket [da78413751863] that does not require disabling the query flattener as was done in [005d5b870625]. This also makes the code generator for vector IN operators a little easier to understand. (check-in: 723f1be3 user: drh tags: trunk)
20:22
Add missing entry for SQLITE_IOERR_VNODE to the switch statement in sqlite3ErrName(). (check-in: e2b3e335 user: dan tags: apple-osx)
20:16
Add an 'extern "C"' wrapper to sqlite3_private.h. (check-in: 97ab1efe user: dan tags: apple-osx)
20:10
Merge test script fixes from trunk into this branch. (check-in: 32f5f461 user: dan tags: apple-osx)
20:07
Add some missing "finish_test" lines to the end of test scripts. (check-in: c21406ab user: dan tags: trunk)
17:32
New assert() statements in the rowvalue IN expression processing. (check-in: 00c32831 user: drh tags: trunk)
15:02
Clarification of comments on sqlite3FindInIndex(). No changes to code. (check-in: 071cabd2 user: drh tags: trunk)
13:23
Merge latest changes from trunk, including the temporary db/ATTACH/master-journal fix. (check-in: 162c7543 user: dan tags: apple-osx)
13:21
Do not count temporary databases that have been attached using ATTACH when figuring out if a master-journal file is required by a transaction. (check-in: 93e012a3 user: dan tags: trunk)
08:20
Avoid creating a master journal if all or all but one of the databases in the transaction is a temp file. (Closed-Leaf check-in: 355d1232 user: dan tags: master-journal-temp-files)
2017-11-16
20:48
In the LSM extension, ensure that empty space on pages is zeroed before they are written to disk. This helps with compressed databases, and stops valgrind complaining about uninitialized bytes and write(). (check-in: 5ffec5db user: dan tags: trunk)
19:17
Merge the latest changes, and the stmtvtab1.test fix, from trunk. (check-in: 85247880 user: drh tags: apple-osx)
19:04
Add a missing "finish_test" to the end of the stmtvtab1.test script. (check-in: e0b5c058 user: drh tags: trunk)
2017-11-15
19:14
Futher improvements to the .testctrl interface in the shell. (check-in: 1ca3b8cc user: drh tags: trunk)
17:07
UI improvements on the .testctrl dot-command in the shell. (check-in: 5d66219c user: drh tags: trunk)
16:29
Merge all the latest changes from trunk. (check-in: 1a1a73b8 user: drh tags: appendvfs)
2017-11-14
23:48
In the parse tree, combine LIMIT and OFFSET into a single expression rooted on a TK_LIMIT node, for a small code size reduction and performance increase, and a reduction in code complexity. (check-in: 3925facd user: drh tags: trunk)
21:06
Fix a typo that prevented successful builds on macs. (check-in: adf83060 user: drh tags: apple-osx)
20:36
Merge the patch that enables reading a read-only WAL-mode database, without any special query parameters, as long as the -shm and -wal files are on disk. (check-in: 8c2a769c user: drh tags: apple-osx)
20:06
Merge changes from trunk. This fixes the SQLITE_ENABLE_UPDATE_DELETE_LIMIT functionality so that it works with views and WITHOUT ROWID tables. (check-in: d90e5f34 user: dan tags: begin-concurrent)
20:00
Merge all changes from trunk prior to the read-only WAL enhancement. (check-in: 1754faef user: drh tags: apple-osx)
19:34
Add the ability to read from read-only WAL-mode database files as long as the -wal and -shm files are present on disk. (check-in: 00ec95fc user: drh tags: trunk)
18:26
Fix the SQLITE_ENABLE_UPDATE_DELETE_LIMIT functionality so that it works with views and WITHOUT ROWID tables. This is a modified cherrypick of [dae4a97a]. (check-in: b2679d3b user: dan tags: branch-3.8.9)
17:06
Fix the SQLITE_ENABLE_UPDATE_DELETE_LIMIT functionality so that it works with views and WITHOUT ROWID tables. (check-in: dae4a97a user: dan tags: trunk)
03:42
Improvement to a comment. No changes to code. (Closed-Leaf check-in: 486949fc user: drh tags: readonly-wal-recovery)
2017-11-13
05:51
Remove some branches in walTryBeginRead() that were added by check-in [ce5d13c2de] but became unreachable with the addition of logic in check-in [18b26843] that enabled read-only clients to parse the WAL file into a heap-memory WAL-index, thus guaranteeing that the WAL-index header is always available. (check-in: 9c6b38b9 user: drh tags: readonly-wal-recovery)
2017-11-11
20:11
In wal.c: improved comments, new assert() and testcase() macros, and replace some magic numbers with appropriate symbolic constants. (check-in: 13ec8a77 user: drh tags: readonly-wal-recovery)
13:30
Further comment improvements in wal.c. No code changes. (check-in: 34638800 user: drh tags: readonly-wal-recovery)
2017-11-10
20:13
Omit some extra code from non-SQLITE_ENABLE_UPDATE_DELETE_LIMIT builds. (Closed-Leaf check-in: 72be33f9 user: dan tags: update-delete-limit-fix)
20:00
Improved comments and variable names in the read-only WAL logic. (check-in: d3c25740 user: drh tags: readonly-wal-recovery)
17:47
Add further tests for the code on this branch. (check-in: f8c4e33f user: dan tags: update-delete-limit-fix)
16:14
Fix a problem involving "DELETE/UPDATE...LIMIT" statements that use an INDEXED BY clause. (check-in: 09f94c2c user: dan tags: update-delete-limit-fix)
15:42
Fix a problem with (DELETE...LIMIT) statements against WITHOUT ROWID tables with a single column PK. (check-in: 35477a3d user: dan tags: update-delete-limit-fix)
12:41
Fix harmless compiler warning seen with MSVC. (check-in: 3711ef23 user: mistachkin tags: trunk)
2017-11-09
23:24
Avoid superfluous SHM unlock call in the Win32 VFS. (check-in: 5a384be6 user: mistachkin tags: readonly-wal-recovery)
22:25
Cleanup superfluous whitespace changes. (check-in: a2908e2c user: mistachkin tags: readonly-wal-recovery)
22:23
Revise and vastly simplify the Win32 SHM file locking semantics, allowing all new tests to pass. (check-in: d0997b0f user: mistachkin tags: readonly-wal-recovery)
20:37
Add an assert() in the Win32 VFS. (check-in: 22e58330 user: mistachkin tags: readonly-wal-recovery)
20:34
Enhance walro2.test to better ensure that readonly_shm clients are not using invalid *-shm files. (check-in: ff630b66 user: dan tags: readonly-wal-recovery)
20:02
Get read-only SHM file tests passing on Win32. (check-in: abef0535 user: mistachkin tags: readonly-wal-recovery)
19:53
Add SQLITE_ENABLE_UPDATE_DELETE_LIMIT for views and WITHOUT ROWID tables. (check-in: 584b88aa user: dan tags: update-delete-limit-fix)
18:53
Further corrections to read-only SHM file handling on Win32. (check-in: 43c31170 user: mistachkin tags: readonly-wal-recovery)
18:21
Corrections to Win32 lock detection for SHM files. (check-in: 3a91be97 user: mistachkin tags: readonly-wal-recovery)
17:29
Corrections to the Win32 porting changes on this branch. (check-in: 0b26a5a2 user: mistachkin tags: readonly-wal-recovery)
17:29
Make it possible to use OSTRACE for multi-process testing. (check-in: 0a7d416c user: mistachkin tags: readonly-wal-recovery)
16:30
Initial work on porting the changes on this branch to Win32. (check-in: 3738bfd0 user: mistachkin tags: readonly-wal-recovery)
04:13
Disallow ORDER BY and LIMIT on UPDATE and DELETE of views and WITHOUT ROWID tables. This is a temporary fix for ticket [d4beea1633f1b88f] until a better solution can be found. (check-in: 30aa941f user: drh tags: branch-3.8.9)
03:55
Disallow ORDER BY and LIMIT on UPDATE and DELETE of views and WITHOUT ROWID tables. This is a temporary fix for ticket [d4beea1633f1b88f] until a better solution can be found. (check-in: 62fe56b5 user: drh tags: trunk)
2017-11-08
19:26
Extra comments on the sqlite3OsShmMap() call in walBeginUnlocked(). No changes to code. (check-in: 033ee92b user: drh tags: readonly-wal-recovery)
17:51
Turns out that SQLITE_READONLY_CANTLOCK is an historical name that must be preserved. So make a new SQLITE_READLOCK_CANTINIT name instead. (check-in: 04974a8b user: drh tags: readonly-wal-recovery)
17:32
Change the name of SQLITE_READONLY_CANTLOCK to SQLITE_READONLY_CANTINIT. (check-in: 6d7f94fa user: drh tags: readonly-wal-recovery)
11:14
Fix a problem causing LSM to add unnecessary padding to empty segments in compressed databases. (check-in: 1bc2d046 user: dan tags: trunk)
02:50
Improved comments used for documentation of sqlite3_vfs. No changes to code. (check-in: db8f22d0 user: drh tags: trunk)
2017-11-07
21:25
Update an assert in wal.c. (check-in: 94527b89 user: dan tags: readonly-wal-recovery)
21:15
Handle the race condition that may occur if another process connects and then checkpoints and truncates the wal file while a readonly-shm client is building its heap-memory wal-index. (check-in: 5a6703fc user: dan tags: readonly-wal-recovery)
19:02
Fix handling of partial indexes in checkindex.c (sqlite3_checker). (check-in: 31932a9e user: dan tags: trunk)
18:20
Fix a problem causing an INDEXED BY specifying an unusable partial index to be mishandled. (check-in: 292a0408 user: dan tags: trunk)
16:54
Add the --trace option to the sqlite3_checker utility program. (check-in: dc217b7c user: drh tags: trunk)
16:23
Enhance the checkindex.c virtual table so that it will output the index_name and after_key parameters. Also add a new diagnostic output column named scanner_sql which shows the SQL statement used to implement the current index scan. (check-in: 32e2520c user: drh tags: trunk)
15:43
On unix, if the *-shm file cannot be opened for read/write access, open it read-only and proceed as if the readonly_shm=1 URI option were specified. (check-in: ba718754 user: dan tags: readonly-wal-recovery)
09:08
Add fault-injection tests for the code on this branch. (check-in: a7d949fb user: dan tags: readonly-wal-recovery)
2017-11-06
20:02
Merge latest trunk changes into this branch. (check-in: 7f217eda user: dan tags: begin-concurrent)
19:49
Add further test cases for the new code on this branch. And a couple of fixes. (check-in: 71af9acb user: dan tags: readonly-wal-recovery)
10:04
Allow "BEGIN CONCURRENT" transactions to modify the temp schema. (check-in: 0fb6d91c user: dan tags: begin-concurrent)
09:34
Fix a harmless compiler warning from Xcode 9.1. (check-in: 66d98310 user: drh tags: trunk)
2017-11-04
21:06
Add further tests for the code added on this branch. (check-in: a6716fcd user: dan tags: readonly-wal-recovery)
18:10
In cases where a readonly_shm client cannot take the DMS lock on the *-shm file, have it parse the wal file and create a wal-index to access it in heap memory. (check-in: 18b26843 user: dan tags: readonly-wal-recovery)
08:53
Fix an LSM problem with read-only connections and compression (not compression-factory) callbacks. (check-in: 51ee5188 user: dan tags: trunk)
2017-11-03
19:34
Fix some comments in new code on this branch. No changes to code. (Closed-Leaf check-in: cbec1bfe user: dan tags: fcntl_shm_read)
17:51
Merge latest trunk changes with this branch. (check-in: 585e0a09 user: dan tags: fcntl_shm_read)
17:17
Allow readonly_shm connections to access the *-shm file using read() even if it is unable to take a DMS lock. (check-in: 9b0d5c4f user: dan tags: fcntl_shm_read)
08:46
The extensions functions in spellfix are all deterministic. (check-in: 29ec855e user: drh tags: trunk)
06:45
Fix harmless compiler warnings. (check-in: d088c5a3 user: mistachkin tags: trunk)
2017-11-02
18:57
Fix test cases in wal2.test broken by the locking change in the previous commit. (check-in: f569c351 user: dan tags: readonly-wal-recovery)
11:12
Avoid locking shm-lock WAL_READ_LOCK(0) during recovery. Doing this allows recovery to proceed while a readonly_shm connection in unlocked mode has an ongoing read transaction. (check-in: 5190d84a user: dan tags: readonly-wal-recovery)
2017-11-01
20:59
If a readonly_shm connection cannot map the *-shm file because no other process is holding the DMS lock, have it read from the database file only, ignoring any content in the wal file. (check-in: ce5d13c2 user: dan tags: readonly-wal-recovery)
19:58
Fix harmless compiler warnings in sqlite3_checker.exe (check-in: 491f867b user: drh tags: trunk)
19:50
Make sure the JSON1 extension is available to sqlite3_checker.exe (check-in: a946a8ed user: drh tags: trunk)
19:44
Add the checkindex.c extension and the sqlite3_checker utility program used for doing live validation of large databases. (check-in: 0c5d18a0 user: drh tags: trunk)
19:30
Fix the SQLITE_NoopUpdate #define so that it occurs under the correct conditions. (check-in: bdf791f9 user: drh tags: begin-concurrent-pnu)
19:22
Adjust page numbers in the ext/repair/test/checkfreelist01.test module due to the fact that the pending-byte page is no longer shifted down to a low-numbered page but is in its rightful place. (Closed-Leaf check-in: c1641aff user: drh tags: checkindex)
18:48
The "PRAGMA noop_update" command now requires SQLITE_ENABLE_NOOP_UPDATE and no longer requires SQLITE_DEBUG. (check-in: 81baf67c user: drh tags: begin-concurrent-pnu)
18:31
Add the "sqlite3_imposter DB SCHEMA ROOT SQL" command to sqlite3_checker. Use it to fix the checkindex01.test module. There are still errors reported by the checkfreelist01.test module. (check-in: 0593a2ba user: drh tags: checkindex)
18:05
Move the test scripts for checkfreelist and checkindex over into the ext/repair/test directory. Run them now using the sqlite3_checker utility with the --test option. Some tests are currently failing due to an incomplete port. This is an incremental check-in. (check-in: 17f8d5e1 user: drh tags: checkindex)
13:09
Minor cleanup in checkindex.c. Add progress displays when checking a single index in the top-level TCL script for sqlite3_checker. (check-in: 3ca31cc3 user: drh tags: checkindex)
07:06
Merge latest trunk changes into this branch. (check-in: 985bfc99 user: dan tags: readonly-wal-recovery)
06:59
Fix a race condition in os_unix.c that might allow a client to use a *-shm file corrupted by a power failure if another client fails between locking the *-shm file and truncating it to zero bytes. (check-in: d655bfab user: dan tags: readonly-wal-recovery)
01:05
When sqlite3_checker finds a problem, show the row key as part of the error message, not the row index number. (check-in: 6ffe917d user: drh tags: checkindex)
01:01
Actually perform index checks when running sqlite3_checker (check-in: 54530020 user: drh tags: checkindex)
00:10
Begin putting functionality into the sqlite3_checker binary. (check-in: e82e883b user: drh tags: checkindex)
2017-10-31
18:15
Merge all recent enhancements from trunk. (check-in: 24adf90f user: drh tags: checkindex)
18:09
Add the checkfreelist extension to the sqlite3_checker binary. (check-in: 0c22f0d6 user: drh tags: checkindex)
15:55
Fix an error in the Makefile.msc for the sqlite3_checker.exe target. (check-in: 49d0c6f1 user: drh tags: checkindex)
15:49
Add build infrastructure for the sqlite3_checker command-line utility. (check-in: 429e3c3c user: drh tags: checkindex)
14:56
Update the built procedures for the sqlite3_analyzer utility to allow it to be linked with an external sqlite3.o library. Automatically detect a missing dbstat extension and report the compile-time error. (check-in: bb39744f user: drh tags: trunk)
12:20
Fix redundancies in the makefiles that resulted from moving shell.c over to shell.c.in. (check-in: bf09fa68 user: drh tags: trunk)
12:06
Fix a minor comment typo. No changes to code. (check-in: 5f79e6d9 user: drh tags: trunk)
12:01
Fix a couple of issues in incremental_index_check to do with CREATE INDEX statements that contain embedded SQL comments. (check-in: 2aef4181 user: dan tags: checkindex)
03:40
Remove unnecessary NEVER() and ALWAYS() conditionals. (check-in: 1c80c75d user: drh tags: trunk)
2017-10-30
23:25
Add the showshm utility program for printing out the shm header in a human-readable format. (check-in: f6304fd1 user: drh tags: trunk)
20:44
Clarify some comments describing the WAL index file. No changes to code. (check-in: 3be3aad9 user: drh tags: trunk)
19:38
Add support for indexes on expressions to incremental_index_check. (check-in: 8c1c701f user: dan tags: checkindex)
18:49
Improve the performance of the LIKE operator by using strcspn() to aid wildcard matching. (check-in: 37284d4e user: drh tags: trunk)
18:26
Speed up wildcard searches in LIKE using strchr() (Closed-Leaf check-in: 4d336d74 user: drh tags: like-compare-opt)
17:05
In checkindex.c, use C code instead of SQL/group_concat() to compose various SQL clauses. This is to make it easier to support indexes on expressions. (check-in: 940606b3 user: dan tags: checkindex)
08:04
Fix an issue in incremental_index_check with indexes that use non-default collation sequences. (check-in: 3ebb2351 user: dan tags: checkindex)
2017-10-28
20:54
Increase the version number for the next release - which is still months away but there have been significant query planner enhancements since the previous release. (check-in: 457eedfa user: drh tags: trunk)
20:51
Reactivate query flattening when the result set of the outer query has no function calls or subqueries. This is a partial reversal of check-in [c9104b59]. Co-routines are still preferred if the outer query has a complex result set, but for simple results sets, query flattening is used. Check-in [4464f40ccd7] is completely backed out due to this change. (check-in: d17ef7d1 user: drh tags: trunk)
20:31
Fix "after" parameter handling in the incremental_index_check code. (check-in: c40c3c62 user: dan tags: checkindex)
12:20
Add test cases from OSSFuzz to prevent a regression in co-routine processing. (check-in: 689743d8 user: drh tags: trunk)
2017-10-27
23:28
I was a little concerned about this check-in. Though I could not generate a failure myself, I thought it was risky. I checked it in for further testing. Then, overnight, OSSFuzz found a failure case for me. So the change is now moved out into a deadend branch. Was: Use OP_SCopy rather than OP_Copy to transfer results from a co-routine to its consumer. This undoes an earlier fix for ticket [98825a79ce] by check-in [ec6a06246e] because that problem no longer occurs due to WHERE clause push-down. (Closed-Leaf check-in: 0926df09 user: drh tags: mistake)
20:53
Add the start of the "incremental_index_check" virtual table in ext/repair/checkindex.c. For incremental verification of index contents. (check-in: d5b9dada user: dan tags: checkindex)
18:24
Fix a Pager ref-count leak in the sqlite_dbpage virtual table. (check-in: c063bb04 user: drh tags: trunk)
17:09
Handle the Ctrl-C event for the shell on Win32. (check-in: c8aaf371 user: mistachkin tags: trunk)
12:27
Additional test case demonstrating the ability to access structure elements using quoted names in the JSON1 extension. (check-in: 8d3cc928 user: drh tags: trunk)
2017-10-26
20:04
Enhance the min/max optimization so that it works with indexes on expressions. (check-in: 6caec908 user: drh tags: trunk)
18:43
Extra ".selecttrace" output following aggregate analysis. No changes to production builds. (check-in: 6fbf74ab user: drh tags: trunk)
17:34
Fix an error in the previous commit on this branch. (check-in: f71dfee0 user: dan tags: readonly-wal-recovery)
17:05
Instead of extra locks, use F_GETLK to ensure that readonly_shm clients cannot connect to a wal-mode database if there are no writers. (check-in: 5492f457 user: dan tags: readonly-wal-recovery)
15:21
Fix a bug causing "make amalgmation-autoconf" to create an invalid package if either the current or parent directory contains a file named install.sh or install-sh. (check-in: e1faa785 user: dan tags: trunk)
2017-10-25
23:28
Use extra locks to prevent a readonly_shm=1 process from connecting to a WAL-mode database if there are no writers. (check-in: 35d97908 user: drh tags: readonly-wal-recovery)
19:18
Fix the sqlite3_dbpage virtual table so that it can read and write from any attached database. (check-in: d4f893e1 user: drh tags: trunk)
18:17
Add tests cases and fix minor issues in the rtreecheck() function. (check-in: d6130cd2 user: dan tags: trunk)
18:01
Add SQL scalar function rtreecheck() to the rtree module. For running checks to ensure the shadow tables used by an rtree virtual table are internally consistent. (check-in: 7d264980 user: mistachkin tags: trunk)
18:00
Fix compilation issue (C99-ism) seen with MSVC. (Closed-Leaf check-in: 61870b42 user: mistachkin tags: rtree-integrity-check)
16:38
Add SQL scalar function rtreecheck() to the rtree module. For running checks to ensure the shadow tables used by an rtree virtual table are internally consistent. (check-in: dde0bb3e user: dan tags: rtree-integrity-check)
16:14
Do not reference the ioctl() system call in the unix backend unless it is actually needed by the Batch Atomic Write extension. This should allow the build to work on VxWorks. (check-in: adfa7ed2 user: drh tags: trunk)
01:34
Add the sqlite_btreeinfo eponymous-only table for introspecting the schema and estimating the sizes of various btrees. (check-in: 1e30f477 user: drh tags: trunk)
2017-10-24
21:17
Force the autoconf makefile for MSVC to always use the 'find.exe' included with Windows. (check-in: b76bffd3 user: mistachkin tags: trunk)
19:12
Merge all enhancements and fixes from the 3.21.0 release. (check-in: 13be3a44 user: drh tags: apple-osx)
19:05
Merge all of the fixes from the 3.21.0 release. (check-in: 5ab662b4 user: drh tags: trunk)
18:55
Version 3.21.0 (Leaf check-in: 1a584e49 user: drh tags: release, branch-3.21, version-3.21.0)
17:28
Fix a problem in the incr-blob code causing a new cursor to be opened for every sqlite3_blob_reopen() call. (check-in: 41ef34a1 user: dan tags: branch-3.21)
2017-10-23
21:24
On the amalgamation package, enable the sqlite_dbpage virtual table so that the .dbinfo command works in the CLI. (check-in: 54b90b4f user: drh tags: branch-3.21)
20:20
Merge trunk fixes to swarmvtabfault.test and the lsm extension into this branch. No changes to core SQLite code. (check-in: f632b870 user: dan tags: branch-3.21)
20:17
In the 'swarmvtabfault' test module, make sure to close the database handle prior to raising an error from the 'not found' callback script. (check-in: f317037b user: mistachkin tags: trunk)
17:36
Cleanup a test database file prior to using it. (check-in: e1bf5e1d user: mistachkin tags: trunk)
16:34
Updates to test procedures so that they all work with encryption. No changes to the core SQLite code. (check-in: 04813307 user: drh tags: branch-3.21)
16:03
Avoid passing a NULL value as the second argument to memcpy(). (check-in: 58e5bb49 user: dan tags: branch-3.21)
11:48
In lsm (not SQLite), avoid opening the *-shm file before the database file is locked. Otherwise, there is a race condition whereby a connection in another process process may unlink() it while it is still in use. (check-in: c8b8b9b5 user: dan tags: trunk)
07:53
Fix minor test script problems revealed by releasetest.tcl. (check-in: c333ee7e user: dan tags: branch-3.21)
07:52
Fix minor test script problems revealed by releasetest.tcl. (check-in: 15e87d9b user: dan tags: trunk)
2017-10-22
08:03
Fix test cases in dbpage.test so that they work with SQLITE_DEFAULT_AUTOVACUUM=1 builds. (check-in: 9474f061 user: dan tags: branch-3.21)
08:02
Fix test cases in dbpage.test so that they work with SQLITE_DEFAULT_AUTOVACUUM=1 builds. (check-in: 0fcf1e61 user: dan tags: trunk)
07:58
Avoid running tests that use sqlite_dbpage with SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 6dde8d61 user: dan tags: branch-3.21)
07:57
Avoid running tests that use sqlite_dbpage with SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 7bd20a20 user: dan tags: trunk)
2017-10-21
17:17
Merge all the enhancements and bug fixes from trunk, since none are destablizing. Call this the second beta. (check-in: fb3ee1b7 user: drh tags: branch-3.21)
14:17
Catch and avoid a 16-bit integer overflow on the number of columns in a common table expression. This fixes a problem found by OSS-Fuzz. The test case is in TH3. (check-in: 6ee8cb6a user: drh tags: trunk)
13:29
Remove unnecessary "#if SQLITE_MAX_COLUMN". SQLITE_MAX_COLUMN is always defined. (check-in: 6ec82acd user: drh tags: trunk)
12:59
Initial implementation of the appendvfs extension. Untested. (check-in: 063a03a3 user: drh tags: appendvfs)
2017-10-19
15:17
Take extra care to avoid an OOB read caused by a corrupt b-tree page. This fixes a problem detected by Natalie Silvanovich of Google Project Zero. (check-in: 04925dee user: dan tags: trunk)
2017-10-18
15:02
Avoid using snprintf as a member variable of a struct in sqlite3ext.h. This causes problems on OSX. Similar to fix [a1fd3aa8]. (check-in: cd0471ca user: dan tags: trunk)
14:29
Avoid using snprintf as a member variable of a struct in sqlite3ext.h. This causes problems on OSX. (Closed-Leaf check-in: b066d5a6 user: dan tags: sqlite3ext-fix)
2017-10-17
18:33
The source code files generated for the 'sqlite3-all.c' target should not have Windows line-endings. (check-in: 6a08c434 user: mistachkin tags: trunk)
13:44
Fix the ".check" command of the command-line shell to return 1 (error) rather than 2 (exit) on a test failure. (check-in: e2af0cc6 user: drh tags: trunk)
2017-10-16
11:50
Improved comments, including a typo fix, on the whereLoopCheaperProperSubset() function. (check-in: 700a3c69 user: drh tags: trunk)
2017-10-15
22:16
In the query planner, do not consider index X to be a proper subset of index Y if X is a covering index but Y is not. (check-in: ee31c043 user: drh tags: trunk)
2017-10-14
19:58
Updates to the Makefiles for MSVC. Cherrypick of [ac8786f3f9f35cb6]. (check-in: 92eb721f user: mistachkin tags: branch-3.21)
19:54
Updates to the Makefiles for MSVC. (check-in: ac8786f3 user: mistachkin tags: trunk)
2017-10-13
20:14
Improved ability to generate stand-alone program using TCL and SQLite by compiling with -DTCLSH_INIT_PROC=name to cause the TCL interpreter to be initialized using procedure name(). Both sqlite3_analyzer and testfixture are now built this way. (check-in: d65d1f29 user: drh tags: trunk)
18:58
Add the tcl/mkccode.tcl script used to construct a single C-language source fiel for programs that combine C-code, SQLite, and TCL. Use this script to construct the sqlite3_analyzer program. (check-in: 298a3fdd user: drh tags: trunk)
16:24
Fix main.mk to name the win32 executable "sqlite3_expert.exe", not "sqlite3_expert". (check-in: e38571d5 user: dan tags: schemalint)
16:19
Move a bunch of unrelated test code out of tclsqlite.c and into test_*.c files. There is still some test code in tclsqlite.c, but the amount is greatly reduced. (check-in: a9c4bc88 user: drh tags: trunk)
16:01
The db_use_legacy_prepare command no longer exists. Use the undocumented -use-legacy-prepare option to DB version instead. (Closed-Leaf check-in: ea2fa9ab user: drh tags: tclsqlite-cleanup)
15:56
When compiling with SQLITE_TEST, extra options are available on the "DB version" command for controlling the internal state of the SqliteDb object, for testing purposes. (check-in: bf86478d user: drh tags: tclsqlite-cleanup)
15:06
Move some test logic out of tclsqlite.c and into auxiliary test_*.c files. This is a work in progress. (check-in: 95b7687f user: drh tags: tclsqlite-cleanup)
14:20
Update main.mk to build the sqlite3_expert program with -DSQLITE_THREADSAFE=0 and -DSQLITE_OMIT_LOAD_EXTENSION. To minimize dependencies. (check-in: 4c68ad7d user: dan tags: schemalint)
2017-10-12
20:37
Add the sqlite_dbpage virtual table (enabled using SQLITE_ENABLE_DBPAGE_VTAB). Make that virtual table and dbstat available to the command-line shell. (check-in: eaeeb09d user: drh tags: trunk)
20:24
Fix the EXPLAIN processing so that it returns SQLITE_ERROR on an OOM, as it should. (check-in: 4ec63ef2 user: drh tags: schemalint)
19:50
Create the new ext/repair folder and move checkfreelist.c there. Remove checkfreelist.c from the command-line shell (undoing check-in [48418f2e]). (Closed-Leaf check-in: dfdebd12 user: drh tags: dbpage)
15:28
Add the experimental "sqlite_expert" extension. Used to find index definitions that might help with specified SQL queries. (Later:) Parked on a dead-end branch due to an assertion fault in TH3. We will merge again after the bug is fixed. (Closed-Leaf check-in: d1ef9eab user: dan tags: withdrawn)
14:18
Fix a harmless compiler warning about an unused parameter. (check-in: de20133d user: drh tags: branch-3.21)
14:13
Update this branch to match latest trunk. (check-in: d325da6c user: dan tags: schemalint)
14:13
Fix the "snapshot-tarball" makefile target, which was broken by the shell.c change of check-in [36acc0a9]. (check-in: c643ace2 user: drh tags: branch-3.21)
14:03
Merge fixes from trunk. All changes are on makefiles and test scripts. There are no core code changes. (check-in: 1fb87a0c user: drh tags: branch-3.21)
13:47
The src/shell.c file is now generated from src/shell.c.in, so remove shell.c from version control and update the makefiles to build it automatically. (check-in: 36acc0a9 user: drh tags: trunk)
13:21
Merge fixes from the 3.21 branch. (check-in: 29292169 user: drh tags: trunk)
11:33
Fix a potential crash that may follow an OOM or other system error in the shell tool. (check-in: c36761e1 user: dan tags: trunk)
11:13
Update some test cases to work with SQLITE_OMIT_VIRTUALTABLE and DEFAULT_AUTOVACUUM builds. (check-in: 4b68f424 user: dan tags: trunk)
10:28
Make sure the tableColumnList() routine of the command-line shell does not cause a null-pointer dereference in an error condition. (check-in: 5d0ceb8d user: drh tags: branch-3.21)
01:24
Merge fixes from the 3.21 branch. (check-in: 18d4654f user: drh tags: dbpage)
01:19
Fix a typo in a numeric constant in an assert() - a bug that has been present in the code since check-in [79e22b95038] on 2010-03-30. (check-in: f0a2724f user: drh tags: branch-3.21)
2017-10-11
20:27
Add test file mmapwarm.test. With tests for the sqlite3_mmap_warm() extension. (check-in: 5c4980ef user: dan tags: trunk)
20:26
Merge latest trunk changes with this branch. (check-in: 2719cf5c user: dan tags: schemalint)
20:10
Change some internal details to bring this branch closer to the code on trunk. (check-in: 58e42cfd user: dan tags: schemalint)
18:26
Add the checkfreelist extension to the command-line shell. (check-in: 48418f2e user: drh tags: dbpage)
18:21
Check that the leaf count on each freelist trunk page is in range as part of checkfreelist processing. (check-in: 4e894062 user: dan tags: dbpage)
18:00
Add new extension "checkfreelist", which uses sqlite_dbpage to check that there are no invalid entries on the database free-list. (check-in: 21930ef5 user: dan tags: dbpage)
17:51
Convert the implementation of the ".dbstat" dot-command of the command-line shell to use the sqlite_dbpage table. (check-in: 497409e1 user: drh tags: dbpage)
17:50
Make JSON1 defines consistent in the makefiles for MSVC. (check-in: 31eee0e4 user: mistachkin tags: branch-3.21)
17:25
Enable JSON by default in the Windows command-line shell sqlite3.exe. (check-in: 79c96121 user: drh tags: branch-3.21)
17:13
Enable sqlite_dbpage and dbstat virtual tables in the shell, by default. (check-in: 01bf856c user: drh tags: dbpage)
15:02
Get writes working on the sqlite_dbpage virtual table. Add a few test cases. (check-in: a8b264d8 user: drh tags: dbpage)
13:48
Initial implementation of the "sqlite_dbpage" virtual table. Currently it is read-only and has a place-holder xBestIndex. (check-in: c2c1d656 user: drh tags: dbpage)
12:20
In the speed-check.sh test script, allow an additional test-name argument which becomes the comparison baseline, in place of "trunk". (check-in: 0245adff user: drh tags: trunk)
11:12
Create a branch for the 3.21.0 release. Development continues on trunk. (check-in: 0f160a8a user: drh tags: branch-3.21)
2017-10-10
20:11
Add new extension "bgckpt" in ext/misc/bgckpt.c. For experimenting with running wal2 mode checkpoints in a background thread. (check-in: 63955442 user: dan tags: wal2)
13:37
DROP TABLE now works for WITHOUT ROWID tables and the SQLITE_OMIT_AUTOVACUUM compile-time option. Fix for ticket [e651b1341861d6] (check-in: b8c1b5a5 user: drh tags: trunk)
2017-10-09
19:50
Merge latest trunk changes with this branch. (check-in: d218d815 user: dan tags: wal2)
19:49
Add a header comment to wal.c describing the differences between wal and wal2 mode. (check-in: 9c80cd20 user: dan tags: wal2)
2017-10-08
02:22
Fix harmless compiler warnings in FTS5 seen with MSVC. (check-in: 5594a121 user: mistachkin tags: trunk)
2017-10-07
23:58
Fix harmless compiler warning seen with MSVC. (check-in: 39d920d1 user: mistachkin tags: trunk)
23:35
Revise variable declaration moved in the previous check-in so sqlite3VdbeReset() is consistent with sqlite3VdbeRewind(). (check-in: 63d1b425 user: mistachkin tags: trunk)
23:31
Fix C99-style variable declaration issue seen with older versions of MSVC. (check-in: 14b181e8 user: mistachkin tags: trunk)
19:55
Ignore the *-wal2 file if the *-wal file is zero bytes in size. (check-in: f7360fad user: dan tags: wal2)
13:37
Check in test file wal2simple.test. (check-in: 8932b2f1 user: dan tags: wal2)
2017-10-06
18:00
Add tests for the example fts3 "rank" function that appears in the documentation. (check-in: 702b137a user: dan tags: trunk)
14:25
Merge latest trunk changes into this branch. (check-in: 7e435178 user: dan tags: wal2)
14:08
Fix a bug in recovering wal2 mode databases introduced by the previous commit. (check-in: 9e1502e1 user: dan tags: wal2)
13:43
Fix frame overwriting in wal2 mode. (check-in: a4b02bc9 user: dan tags: wal2)
2017-10-05
20:57
Fix compiler warnings that come up with SQLITE_OMIT_WAL. (check-in: 8ca0fa8d user: drh tags: trunk)
20:02
Fix a problem building with SQLITE_OMIT_WAL defined. (check-in: 373b0ace user: dan tags: trunk)
19:12
Fix the command-line shell so that the ".schema --indent" command does a better job of dealing with \r\n in the middle of a CREATE statement in the schema. (check-in: 4258fb57 user: drh tags: trunk)
18:14
Fix test case failures on this branch. (check-in: 16decc13 user: dan tags: wal2)
11:29
Disable the delta checksum verification in RBU by default. Reenable it using -DRBU_ENABLE_DELTA_CKSUM, if desired. (check-in: d22c99b6 user: drh tags: trunk)
2017-10-04
20:57
Add experimental mode that uses two wal files. Activated using "PRAGMA journal_mode = wal2". (check-in: e2fc5c81 user: dan tags: wal2)
18:26
Updates to requirements marks. (check-in: 40964a4e user: drh tags: trunk)
17:05
Update the speedtest1 program so that it prints the output of "PRAGMA compile_options" if the -stats option is specified. (check-in: 7c69f8f1 user: dan tags: trunk)
16:35
Fix typos in session extension header comments. No changes to code. (check-in: 182ec9d6 user: mistachkin tags: trunk)
14:13
New test cases for ticket [b899b6042f97f5] derived from a bug report on the mailing list from Wout Mertens. (check-in: ef94ea06 user: drh tags: trunk)
12:08
Amend recent changes to busy.test to avoid failing with SQLITE_ENABLE_STAT4 builds. (check-in: 9ff49441 user: dan tags: trunk)
12:06
Turn restriction 20 on the query flattener into an assert since the situation restricted can no longer occur because of the more aggressive use of co-routines. (check-in: 4464f40c user: drh tags: trunk)
10:39
Add tests to verify that the busy-handler is invoked correctly when processing "PRAGMA optimize" and ANALYZE commands. (check-in: fb83c3d8 user: dan tags: trunk)
05:59
Remove a redundant restriction from the query flattener. (check-in: 66629b2a user: drh tags: trunk)
02:30
Fix a minor typo in the query flattener header comment. No code changes. (check-in: d050dc60 user: drh tags: trunk)
2017-10-03
19:53
Simplify the computation of types on columns of a view. (check-in: 772b0db1 user: drh tags: trunk)
18:35
Do not enable SELECT tracing with -DSQLITE_DEBUG. Require the -DSQLITE_ENABLE_SELECTTRACE compile-time option to enable SELECT tracing. (check-in: f5c39583 user: drh tags: trunk)
17:29
Add some OK_IF_ALWAYS_TRUE() marks on optimization branches in select.c. (check-in: 1dd82808 user: drh tags: trunk)
17:17
Remove an unused variable from sqlite3Insert() and fix harmless compiler warnings associated with -DSQLITE_MUTATION_TEST. (check-in: 7be760e9 user: drh tags: trunk)
16:57
Fix the sqlite3_column_decltype() interface to return the correct datatype when the value comes through a CTE. (check-in: 966438bd user: drh tags: trunk)
14:24
The simplification to sqlite3SelectExpand() in last night's [3a4ffb21] check-in was not completely correct. This adjustment is needed for correct OOM handling in some configurations. (check-in: c5ad5e16 user: drh tags: trunk)
03:24
Simplification to the logic that computes column type names. Update: Does not work in all configurations. (Closed-Leaf check-in: f10ece96 user: drh tags: does-not-work)
03:01
Do not compute column and row size estimates for the transient Table objects associated with the result set of a SELECT statement, since those estimates are never used for anything constructive. (check-in: e4342fd4 user: drh tags: trunk)
2017-10-02
23:50
Mark a single branch within sqlite3SelectExpand() as an optimization. (check-in: 3a4ffb21 user: drh tags: trunk)
23:30
Simplification to sqlite3SelectPrep() for improved testability. (check-in: 5bf2ccb9 user: drh tags: trunk)
21:29
Add the OK_IF_ALWAYS_TRUE() and OK_IF_ALWAYS_FALSE() macros for marking conditionals that improve performance but do not change the outcome. (check-in: 6035c9b2 user: drh tags: trunk)
13:20
Avoid using lookaside memory for persistent virtual table structures. (check-in: d815f255 user: drh tags: trunk)
02:52
The query planner now always prefers to implement a FROM-clause subquery using a co-routine rather than flattening the subquery into the outer query. (check-in: c9104b59 user: drh tags: trunk)
02:32
Improvements to a comment in lempar.c. No code changes. (check-in: 8000d230 user: drh tags: trunk)
2017-09-30
11:47
More details in the header comment of pushDownWhereTerms(). No changes to code. (Closed-Leaf check-in: 92848623 user: drh tags: prefer-coroutine-sort-subquery)
10:50
Make sure the SQLITE_Stat34 optimization switch is always 0x800, a value which is hard-coded in the TH3 test suite. (check-in: 6aed4ea3 user: drh tags: prefer-coroutine-sort-subquery)
01:25
Fix unreachable conditionals and revise a testcase that was made obsolete by the changes on this branch. (check-in: 71f0adf7 user: drh tags: prefer-coroutine-sort-subquery)
2017-09-29
22:13
Always render a subquery that is not part of a join as a co-routine. (check-in: 6b1651d7 user: drh tags: prefer-coroutine-sort-subquery)
16:08
Merge the query flattener comment improvements from trunk. (check-in: f62cd4d9 user: drh tags: prefer-coroutine-sort-subquery)
16:07
Clean up the comments on the query flattener to more clearly and accurately express the conditions under which the flattener is able to run. (check-in: 0840f9f8 user: drh tags: trunk)
14:31
Merge changes from trunk. (check-in: 06f432fb user: drh tags: prefer-coroutine-sort-subquery)
12:44
Make sure the 6th parameter to the authorizer callback for view subqueries has the correct view name. (check-in: 2a45bbc9 user: drh tags: trunk)
12:12
Better names for subqueries in EXPLAIN comments. (check-in: 04ef40a8 user: drh tags: trunk)
2017-09-28
20:06
Do not flatten subqueries that contain an ORDER BY or GROUP BY clause and can be implemented using a co-routine. (check-in: 042d655d user: drh tags: prefer-coroutine-sort-subquery)
17:29
Remove the (undocumented) query-planner control that prevents a "SELECT ALL" subquery in FROM clause from being implemented as a co-routine. This control was added by [a29e117d7ec], where it was called a "stop-gap". (check-in: ff2f5a31 user: drh tags: trunk)
16:56
Fix over-length source code lines in select.c. No logic changes. (check-in: fd3267ef user: drh tags: trunk)
13:47
Fix an issue introduced by check-in [4cd2a9672c59] (2017-03-03) that could allow a negative value in the 3rd parameter to memmove() when defragmentPage() is called on a btree page with a corrupted freeblock list. The corruption is now detected early and results in an SQLITE_CORRUPT return before the memmove() is reached. (check-in: 5b9ae693 user: drh tags: trunk)
01:58
Add new routines to simplify dealing with collating sequences in expressions: sqlite3ExprNNCollSeq() and sqlite3ExprCollSeqMatch(). (check-in: 490e488e user: drh tags: trunk)
01:09
Indexes on expressions with a COLLATE clause are able to satisfy an ORDER BY with the same COLLATE clause. (check-in: 04130018 user: drh tags: trunk)
00:01
In two places, change the magic number -1 to its proper symbol XN_ROWID. (check-in: 80277d2f user: drh tags: trunk)
2017-09-27
16:51
Disable tests for the LIKE optimization when ICU is enabled, since the LIKE optimization only works for the built-in LIKE operator and ICU overrides the built-in. (check-in: f5ef2e1b user: drh tags: trunk)
2017-09-25
09:37
Add an extra snapshot related test case. (check-in: 24a95e14 user: dan tags: trunk)
2017-09-23
07:46
Experimental change so that snapshot transactions always lock the wal file - preventing writers or truncate-checkpointers from wrapping it. (Closed-Leaf check-in: d71eeaab user: dan tags: snapshots-lock-wal)
2017-09-22
20:18
Merge in all the trunk enhancements of the previous 7 months. The LIKE optimization has stopped working when there is an ESCAPE - that problem will be addressed in a subsequent check-in. (Leaf check-in: 8d2a1cca user: drh tags: est_count_pragma)
16:23
Use the updated Win32 VFS semantics for winOpen from check-in [5d03c738e9] for WinRT, et al, as well. (check-in: 2c03d8b8 user: mistachkin tags: trunk)
12:52
Partial backout of check-in [e0af9a904076]. It turns out we do need some extra space at the end of the record blob as an overrun area to use when decoding a maliciously malformed record. (check-in: 403b88a8 user: drh tags: trunk)
11:09
Cherrypick [ec37ad6d08] into this branch. With this patch, if SQLITE_SHARED_MAPPING is defined at build-time SQLite will use a single memory mapping for multiple connections to the same database file within a single process. (check-in: c7a5880d user: dan tags: begin-concurrent)
10:49
Merge latest trunk changes into this branch. (check-in: 307b802e user: dan tags: begin-concurrent)
00:24
Update the configure script so that it looks for tclsh8.7 ahead of tclsh8.6. (check-in: 0a12915b user: drh tags: trunk)
2017-09-21
20:43
In the Windows VFS, when trying to open a database file read/write, if it fails check to see if the file exists and is read-only and immediately fall back to a read-only open attempt, rather than running the AV retry loop. (check-in: 5d03c738 user: drh tags: trunk)
20:03
In the Windows VFS, do not emit an SQLITE_CANTOPEN error log message when falling back from SQLITE_OPEN_READWRITE to SQLITE_OPEN_READONLY. Wait until the open fails completely. (check-in: fa3f5bcc user: drh tags: trunk)
19:08
Fix harmless UB in the ICU extension. (check-in: 68e9a840 user: drh tags: trunk)
14:03
The sqlite3_snapshot_describe() interface useful for debugging snapshot logic. (Leaf check-in: 3fbfa9a8 user: drh tags: sqlite3_snapshot_describe)
13:11
Fix a potential use of an uninitialized pointer in RTree following an OOM error. (check-in: fd4ec0cd user: drh tags: trunk)
10:24
Fix a bug in tool/mksourceid.c: The mksourceid.c program was incorrectly including the "# Remove this line" line of the Fossil-generated "manifest" file in the SHA3 hash. That means that all SQLITE_SOURCE_IDs for trunk versions going back to check-in [30966d56] (2017-08-22) are incorrect. (check-in: 65765222 user: drh tags: trunk)
01:04
Revert one performance improvement changes from check-in [3b3e32d4cd07] as it was causing a reference to an uninitialized value. (check-in: f8b1c64d user: drh tags: trunk)
00:49
Fix the rendering of the P4_INTARRAY argument to the OP_IntegrityCk opcode in the output of EXPLAIN. (check-in: adc12c83 user: drh tags: trunk)
2017-09-20
18:47
Size and performance optimization on sqlite3VdbeMemGrow(). (check-in: 4b3f7eac user: drh tags: trunk)
18:07
The BLOB returned by sqlite3VdbeMemFromBtree() does not need to be zero-terminated. (check-in: e0af9a90 user: drh tags: trunk)
17:49
Small size and performance optimization in the bytecode engine. (check-in: 3b3e32d4 user: drh tags: trunk)
10:47
Improved resolution of large integer values in "CAST(x AS NUMERIC)". (check-in: 7f2bd4ff user: drh tags: trunk)
09:09
Updates to the "lemon.html" document received from Andy Goth. (check-in: 5b2002f3 user: drh tags: trunk)
2017-09-18
18:17
Add the sqlite3_mmap_warm() function as an extension in the ext/misc/mmapwarm.c source file. (check-in: 1b2de414 user: drh tags: trunk)
18:08
Fix a typo in the MSVC makefile. (Closed-Leaf check-in: 3235835b user: drh tags: mmap-warm)
16:28
Add extension "mmapwarm.c". Provides function sqlite3_mmap_warm(), used to "warm up" the memory mapping used by SQLite in mmap mode to access db file content. (check-in: d4a30b91 user: dan tags: mmap-warm)
13:16
Minor simplification of error message generation during compound query code generation. (check-in: a9447193 user: drh tags: trunk)
09:40
The out-of-bounds read on recovery fix of check-in [378afa16381a222a] caused problems for some corner-case error conditions. This alternative fix appears to work better. (check-in: 74f399d8 user: drh tags: trunk)
08:51
Merge latest trunk changes with this branch. (Leaf check-in: 2e573350 user: dan tags: shared-mapping-hack)
00:18
Fix the CSV virtual table extension so that it works when the default character is unsigned. (check-in: 42f07775 user: drh tags: trunk)
2017-09-17
19:45
Do not make the assumption (as check-in [4da49a95c0f07] incorrectly did) that the ExprList returned by sqlite3ExprListDup() would never be passed into sqlite3ExprListAppend(). Include a new test case that shows this sometimes does happen. (check-in: 29227d00 user: drh tags: trunk)
2017-09-16
20:58
Simplify the sqlite3VdbeGet() routine. Smaller, faster, and easier to maintain. (check-in: 5dbb255a user: drh tags: trunk)
2017-09-15
17:40
Remove an unnecessary parameter from selectInnerLoop(). (check-in: dd95887f user: drh tags: trunk)
15:38
Improved the header-comment documentation on sqlite3ExprCodeExprList(). No changes to code. (check-in: 5dc3ecb5 user: drh tags: trunk)
15:17
Optimization to the ExprList object to make it slightly smaller and faster. (check-in: 4da49a95 user: drh tags: trunk)
14:36
Fix a harmless comment typo. No changes to code. (check-in: f7f0bf1d user: drh tags: trunk)
2017-09-14
21:12
Add another test case for the problem fixed by the previous commit. (check-in: 1a7e0b61 user: dan tags: trunk)
20:41
Avoid an out-of-bounds read that can be caused by a specially constructed journal file. (check-in: cf5bf42c user: dan tags: trunk)
02:36
Avoid an out-of-bounds read on a recovery attempt using a carefully crafted database and rollback journal with mismatched page sizes. The test case for this is in TH3. (check-in: 378afa16 user: drh tags: trunk)
2017-09-13
20:20
Test case update due to PRAGMA integrity_check enhancements in [8525c30c]. No changes to code. (check-in: 43c6023b user: drh tags: trunk)
18:38
Experimental sqlite3_stmt_retryable() interface. (Leaf check-in: ebada072 user: drh tags: sqlite3_stmt_retryable)
12:55
Disable FTS3 matchinfo() tests that assume a littleEndian platform when running on bigEndian. (check-in: 87ccdf9c user: drh tags: trunk)
00:33
Improvements to PRAGMA integrity_check for better detection of malformed records. Integrity_check now avoids returning SQLITE_CORRUPT on a corrupt record. Also includes microoptimizations that I stumbled over while working on integrity_check. (check-in: 8525c30c user: drh tags: trunk)
00:13
PRAGMA integrity_check returns SQLITE_OK even if it encounters corruption while scanning indexes. (Closed-Leaf check-in: 81f62e99 user: drh tags: improved-integrity-check)
00:01
Fix test script comment. No changes to code. (check-in: a5a19492 user: mistachkin tags: trunk)
2017-09-12
23:58
Remove use of the rand_s() function (added by [139081bef9f63c3e]) as it appears to cause issues with some third-party DLLs. (check-in: 3a2793aa user: mistachkin tags: trunk)
20:09
Add the highly-experimental "PRAGMA noop_update=TRUE" command. (check-in: afe45271 user: drh tags: begin-concurrent-pnu)
18:49
Add the highly-experimental "PRAGMA noop_update=TRUE" command. (Leaf check-in: de2e3717 user: drh tags: pragma-noop-update)
18:11
Merge the mutex-free PRNG change into this branch. (check-in: 8b1fc4b9 user: dan tags: shared-mapping-hack)
18:03
Hack to have multiple connections to a single file share a single memory mapping of the databse file. (check-in: ec37ad6d user: dan tags: shared-mapping-hack)
15:05
Fix an error in [b22cdd67] that can cause a negative infinity to be (rarely) reported as a positive infinity. (check-in: 9780b23c user: drh tags: trunk)
13:27
Changes to (hopefully) get the build working with recent Intel compilers. (check-in: b22cdd67 user: drh tags: trunk)
00:24
Make sure all connections are closed in the pragma.test script. Test change only - no changes to code. (check-in: d7b7f038 user: drh tags: trunk)
2017-09-11
23:46
New test case for ticket [b899b6042f97f52d]. (check-in: 9d91ee5e user: drh tags: trunk)
20:54
Add support for new operators in virtual tables: !=, IS, IS NOT, IS NULL, and NOTNULL. (check-in: 3b7dbe9d user: drh tags: trunk)
19:47
Refactor names of constants and functions associated with the auxiliary operators for xBestIndex. (Closed-Leaf check-in: 0fb992af user: drh tags: vtab-extra-ops)
18:37
Minor adjustments to indentation and spacing for clarity. No changes to code. (check-in: d3153abd user: drh tags: vtab-extra-ops)
08:53
Add tests to check that affinities work with != operators on virtual table column values. No changes to code. (check-in: 8d24e080 user: dan tags: vtab-extra-ops)
2017-09-10
01:06
Simplifications to the PRAGMA integrity_check code generator. (check-in: 99b9140c user: drh tags: improved-integrity-check)
2017-09-09
22:46
Simplification and performance improvement to sqlite3_reset(). (check-in: b6425d01 user: drh tags: improved-integrity-check)
20:38
Improved detection of malformed records by PRAGMA integrity_check. (check-in: 8fa923ca user: drh tags: improved-integrity-check)
19:41
Enhance the vtab interface to handle IS, !=, IS NOT, IS NULL and IS NOT NULL constraints. (check-in: 34c8e952 user: dan tags: vtab-extra-ops)
08:03
Use a mutex-free PRNG for the random() and randomblob() SQL functions and for the randomness used during checkpoint operations. (Leaf check-in: e63d1a7c user: drh tags: mutex-free-randomness)
06:10
Merge trunk enhancements (check-in: 6a0b9d9d user: drh tags: apple-osx)
00:51
Fix harmless compiler warnings seen with MSVC. (check-in: faa22e29 user: mistachkin tags: trunk)
2017-09-08
17:48
Have the header comment for sqlite3Checkpoint() mention TRUNCATE along with the other three checkpoint types. No changes to code. (check-in: e1e3ca7e user: dan tags: trunk)
2017-09-07
09:56
Prevent a possible crash when trying to recover using a carefully corrupted \ and truncated rollback journal. (Test case in TH3) (check-in: 02828d71 user: drh tags: trunk)
2017-09-05
20:16
Update "PRAGMA integrity_check" to detect inconsistencies between a single record's header and body. (check-in: 9e393a0e user: dan tags: trunk)
17:23
Fix a comment describing the xRowid method of the "series" virtual table. No code changes. (check-in: 868cd196 user: dan tags: trunk)
16:24
Add experimental API sqlite3rbu_temp_size_limit(). For limiting the amount of temporary disk space RBU uses. (check-in: 7fdd6298 user: dan tags: trunk)
2017-09-04
19:31
Use the SQLITE_CORRUPT_BKPT return code in a couple more places. (check-in: 72d22c22 user: mistachkin tags: trunk)
18:44
Add the 'mksourceid' executable to the clean target for MSVC. (check-in: 77854694 user: mistachkin tags: trunk)
00:33
Proposed fix for ticket [b899b6042f97f5] (check-in: c7f9f47b user: drh tags: trunk)
00:19
Fix recent test cases in test/indexepxr2.test so that they work even without SQLITE_ENABLE_STAT4 and SQLITE_ENABLE_JSON1. (check-in: 03f3cc03 user: drh tags: trunk)
2017-09-01
14:50
Add the new sqlite3PagerUnrefPageOne() pager method to deal with the special case of unreferencing page1. (check-in: b2e2100c user: drh tags: trunk)
12:57
Remove an obsolete optimization in pcache that due to more recent changes was recently making the code a little slower. (check-in: c4e7e175 user: drh tags: trunk)
12:18
Small size and performance improvement in pcacheManageDirtyList() by not zeroing the PgHdr.pDirtyNext and PgHdr.pDirtyPrev pointers for PgHdr objects that are not on the dirty list. (check-in: 919863b1 user: drh tags: trunk)
2017-08-31
21:11
Clarify the documentation about "protected" versus "unprotected" sqlite3_value objects. No changes to code. (check-in: 4094a341 user: drh tags: trunk)
2017-08-30
13:21
Remove unnecessary "__declspec(dllexport)" qualifiers from generated file shell.c. (check-in: bcc20be5 user: dan tags: trunk)
04:44
Small performance optimization in pcache1. (check-in: ffd437da user: drh tags: trunk)
2017-08-29
20:21
Faster memory allocation from lookaside by not trying to keep track of the number of outstanding allocations, and rather computing that value only when requested. (check-in: a06263f1 user: drh tags: trunk)
17:52
Add a Tcl script to run the performance tests described in README-server-edition.html. (check-in: 1b3df8ff user: dan tags: server-process-edition)
2017-08-28
17:32
Add the --enable-update-limit option to the ./configure script. (Leaf check-in: f545db6c user: drh tags: begin-concurrent-branch-3.19)
17:30
Avoid unnecessary mutexes in the pcache1 implementation in the common case where no auxiliary page cache memory is configured. (check-in: 5cd9ff87 user: drh tags: begin-concurrent-branch-3.19)
17:26
Remove the rarely-used scratch memory allocator. This makes the code smaller, faster, and easier to maintain. In place of the scratch allocator, add the SQLITE_CONFIG_SMALL_MALLOC configuration option that provides a hint to SQLite that large memory allocations should be avoided. (check-in: cc440400 user: drh tags: begin-concurrent-branch-3.19)
17:19
Merge recent enhancements from trunk. (check-in: d53108e7 user: drh tags: begin-concurrent)
17:00
Add the --enable-update-limit option to the ./configure script. (check-in: 64a8ae68 user: drh tags: trunk)
16:11
Avoid unnecessary mutexes in the pcache1 implementation in the common case where no auxiliary page cache memory is configured. (check-in: 1ba051e3 user: drh tags: trunk)
15:51
Remove the rarely-used scratch memory allocator. This makes the code smaller, faster, and easier to maintain. In place of the scratch allocator, add the SQLITE_CONFIG_SMALL_MALLOC configuration option that provides a hint to SQLite that large memory allocations should be avoided. (check-in: 54b00024 user: drh tags: trunk)
14:33
Backport changes to shell.c into shell.c.in. (check-in: 2348045f user: drh tags: trunk)
11:12
Fix the ".dump", ".schema", and ".fullschema" commands of the command-line shell so that they work even if PRAGMA empty_result_callbacks is enabled. Fix for ticket [02f0f4c54f281]. (check-in: cf0d3715 user: drh tags: trunk)
2017-08-27
10:55
Instrumentation and changes in an effort to reduce thread contention. (Leaf check-in: c93298d5 user: drh tags: reduced-thread-contention)
2017-08-25
19:51
Fix a few over-length source code lines. No functional changes. (check-in: 1783c54c user: drh tags: trunk)
15:43
Size and performance optimization for sqlite3Init(). (check-in: 776d9128 user: drh tags: trunk)
13:34
Small performance optimization in sqlite3WhereBegin(). (check-in: 39f708d1 user: drh tags: trunk)
13:02
Convert a branch made unreachable by [59560d07] into an assert(). (check-in: 2738b8db user: drh tags: trunk)
11:44
Improve the internal mechanism used to keep track of what kind of syncing to do for WAL transaction commits and checkpoint operations. Use the checkpoint-style of syncing to sync the header of a new or restarted WAL file. (check-in: e8d23afe user: drh tags: trunk)
09:17
Avoid returning duplicate rows in experimental pragmas "pragma_list", "module_list" and "function_list". (check-in: b79cc8dc user: dan tags: trunk)
01:14
Update the mechanism used to keep track of what kind of syncing to do for WAL transaction commits and checkpoint operations. Use the checkpoint-style of syncing to sync the header of a new or restarted WAL file. (Closed-Leaf check-in: bf65dae8 user: drh tags: wal-sync-refactor)
2017-08-24
20:54
Fix an incorrect hyperlink in a comment. (check-in: 25292b9a user: drh tags: trunk)
16:21
Version 3.20.1 (Leaf check-in: 8d3a7ea6 user: drh tags: release, branch-3.20, version-3.20.1)
15:43
Fixes to documentation about SQLITE_OPEN_URI. (check-in: 7ec72314 user: drh tags: trunk)
14:08
Increase the version number to 3.20.1. (check-in: 70338c7c user: drh tags: branch-3.20)
14:04
Make sure the sqlite3_result_pointer() interface does not leave a VM register in an inconsistent state. Fix for ticket [7486aa54b968e9b5]. Test cases are in TH3. (check-in: abc7adfd user: drh tags: branch-3.20)
13:55
Make sure the sqlite3_result_pointer() interface does not leave a VM register in an inconsistent state. Fix for ticket [7486aa54b968e9b5]. Test cases are in TH3. (check-in: d2f9230c user: drh tags: trunk)
10:10
Test BEGIN CONCURRENT transactions that consist entirely of read-only statements. (check-in: c3fe1f4b user: dan tags: begin-concurrent)
2017-08-23
23:09
Performance optimization to pageFindSlot() in the b-tree layer. (check-in: 59560d07 user: drh tags: trunk)
20:36
Size and performance optimization to dropCell() and freeSpace(). (check-in: bc1ec123 user: drh tags: trunk)
14:45
Smaller and faster implementation of the fillInCell() routine. (check-in: 77074990 user: drh tags: trunk)
2017-08-22
21:23
Update documentation to make it clear that SQLITE_SOURCE_ID and sqlite3_sourceid() might changes if the source code is edited. (check-in: e69c0c87 user: drh tags: trunk)
21:07
Less dramatic changes to the source-id following an edit. Modify the way that the amalgamation is constructed to give it the opportunity to detect changes and modify the source-id. (check-in: 564c7340 user: drh tags: trunk)
19:54
Modify the SQLITE_SOURCE_ID if the source code has changed in any way since the previous check-in. (check-in: 515d6a83 user: drh tags: trunk)
19:49
Trying again to get out-of-tree builds to work correctly. (Closed-Leaf check-in: a1b3337e user: drh tags: mksourceid)
19:44
mksourceid still does not work right. (Leaf check-in: ca5dcb4a user: drh tags: mistake)
19:43
Attempting to fix the source-id generator so that it works for out-of-tree builds. (check-in: 5a037ac2 user: drh tags: mksourceid)
19:19
Add the "mksourceid" program to the build process. That program changes the SQLITE_SOURCE_ID if the source tree has been modified in any way. (check-in: d4c05e04 user: drh tags: mksourceid)
15:21
Fix error tests in seldom-used compile-time branches of the unix backend. (check-in: 885c2b44 user: drh tags: trunk)
2017-08-21
02:20
Remove an unnecessary conditional. (check-in: 56d19f9f user: drh tags: trunk)
02:05
Minor optimization to sqlite3VdbeMemSetStr(). (check-in: 6538ef7b user: drh tags: trunk)
2017-08-19
20:38
Space and size optimization to the printf implementation. (check-in: d01d2cff user: drh tags: trunk)
15:50
Ensure that write-locks on pages are dropped at the end of each write transaction, even if there is still a read transaction open. (check-in: 2dd36ade user: dan tags: server-process-edition)
2017-08-18
22:30
Another size and performance optimization to readDbPage(). This time we eliminate some unnecessary local variables. (check-in: 745bc8de user: drh tags: trunk)
21:14
Size and performance optimization the readDbPage() routine in the pager. (check-in: ca9e1875 user: drh tags: trunk)
19:28
Version 3.19.4 (check-in: 605907e7 user: drh tags: release, version-3.19.4, branch-3.19)
18:55
Add tests to this branch. (check-in: abb6e076 user: dan tags: server-process-edition)
16:09
For the unix VFS, avoid an unnecessary stat() system call prior to opening any file in the common case where there are no unused file descriptors. (check-in: 3075cfa0 user: drh tags: trunk)
16:04
Do not search for locks to clear when connecting to a db in multi-process mode unless it looks like the previous user of the client-id crashed. (check-in: 66fb9e1c user: dan tags: server-process-edition)
14:34
Combine the OP_CreateTable and OP_CreateIndex opcodes of the bytecode engine into a single OP_CreateBtree opcode. This simplifies the implementation and makes the bytecode programs clearer. (check-in: eb1202b5 user: drh tags: trunk)
08:29
Only use indexes on expressions to optimize ORDER BY and GROUP BY if the collation sequence matches. Possible fix for [e20dd54a]. (check-in: 37e19008 user: dan tags: trunk)
2017-08-17
20:53
Use the __builtin_clzll() function of gcc to improve the performance and reduce the size of the sqlite3LogEst() routine. (check-in: a42a438c user: drh tags: trunk)
19:32
Add support for crash recovery in multi-process mode. And add test cases for the same. (check-in: a8115f95 user: dan tags: server-process-edition)
19:23
Small optimization in the Expr tree walker. (check-in: 264a5e1b user: drh tags: trunk)
18:54
Size optimization in the authorizer error message generation logic. (check-in: 0367a4d5 user: drh tags: trunk)
18:23
In sqlite3ViewGetColumnNames(), return the number of errors, not an error code. (check-in: f13682ea user: drh tags: trunk)
18:17
The RTREE extension should return SQLITE_CORRUPT_VTAB, not just SQLITE_CORRUPT when it encounters incorrectly formatted shadow tables. (check-in: 0712f057 user: drh tags: trunk)
14:47
Remove an unnecessary branch from the [be436a7f4587ce517ddc] fix. (check-in: fb6ca99b user: drh tags: trunk)
14:12
Add test cases for ticket [be436a7f4587ce517] using virtual table modules fts5 and rtree. (check-in: 2101b420 user: dan tags: trunk)
02:26
Defer schema resets when the query planner is running. Proposed fix for ticket [be436a7f4587ce517]. (check-in: a7bc7752 user: drh tags: trunk)
2017-08-16
19:20
Avoid a test for CURTYPE_BTREE in sqlite3VdbeCursorMoveto() in order to reduce the size and improve the performance of OP_Column. (check-in: f078deb2 user: drh tags: trunk)
17:06
Update this branch with the latest changes from trunk. (check-in: 380a7b7a user: dan tags: server-process-edition)
16:52
Enhance this branch to support page-level-locking (without MVCC) for multi-process deployments. (check-in: 04e0cb57 user: dan tags: server-process-edition)
14:16
Remove an unnecessary local variable from OP_Column, for a small size reduction and performance increase. (check-in: 39543903 user: drh tags: trunk)
11:04
Performance improvement in the OP_Column opcode. (check-in: dc98a92f user: drh tags: trunk)
2017-08-15
14:14
Small size and performance improvement in the OP_Column opcode. (check-in: 2cf3f3de user: drh tags: trunk)
03:46
Btree optimization: New field BtCursor.pPage that points to the current page, saving a single pointer dereference on each access. (check-in: 373b71d1 user: drh tags: trunk)
01:07
Fix a problem allowing a conflicting transaction to be committed in the case where more than one 32KB shared-memory page has been written to since the transaction was started. (check-in: 346a710d user: drh tags: begin-concurrent-branch-3.19)
2017-08-14
23:53
Minor size and performance optimization to sqlite3BtreeCloseCursor(). (check-in: 16969338 user: drh tags: trunk)
18:13
Change the internal btree routine moveToRoot() to return SQLITE_EMPTY if the table is empty or if it has pgnoRoot==0. This simplifies the callers, making them smaller and faster. The SQLITE_EMPTY result code is intercepted and changed into SQLITE_OK before surfacing in an API. (check-in: 240d5714 user: drh tags: trunk)
17:03
Fix harmless indentation error. (check-in: 25e92baa user: drh tags: trunk)
14:53
Sometimes a TK_COLUMN Expr node can have Expr.pTab==0 if it is a reference to an expression column in an index on an expression. Fix for ticket [aa98619ad08ddcab]. (check-in: d0da791b user: drh tags: trunk)
07:16
Remove code for PLL support in wal mode from this branch. (check-in: 8e1b28ed user: dan tags: server-process-edition)
06:55
Update this branch with latest trunk changes. (check-in: bc2498d6 user: dan tags: server-process-edition)
01:33
Properly dequote column names in tables constructed by an aggregate SELECT. (check-in: 7e0d3e9c user: drh tags: trunk)
2017-08-12
18:31
Add new test file fts5vocab2.test. (check-in: 02174842 user: dan tags: trunk)
14:06
Add a more rigorous test case for the bug fixed by the previous commit on this branch. (check-in: 42560723 user: dan tags: begin-concurrent)
02:16
Update the speed-check.sh test script to append log output to the end of the cout-NAME.txt file. (check-in: 14d262d6 user: drh tags: trunk)
02:01
Remove the zBase field from the StrAccum object. Resulting code is slightly smaller and faster. (check-in: 6e52fa5f user: drh tags: trunk)
01:09
Size and performance micro-optimization on sqlite3SrcListIndexedBy(). (check-in: 28a5aec1 user: drh tags: trunk)
2017-08-11
21:16
Fix a problem allowing a conflicting transaction to be committed in the case where more than one 32KB shared-memory page has been written to since the transaction was started. (check-in: 38dd9b50 user: dan tags: begin-concurrent)
20:22
Add another PAGERTRACE() macro to show when pages are added to Pager.pAllRead. No impact on production builds. (check-in: 11054cf5 user: drh tags: begin-concurrent)
19:31
Add a PAGERTRACE() macro to log when frames are written into the WAL file. This is for analysis only and is a no-op for production builds. (check-in: 39f39e3d user: drh tags: begin-concurrent)
19:16
Merge the latest enhancements from trunk. (check-in: 47e71695 user: drh tags: begin-concurrent)
18:59
Fix compiler warnings that arise if the PAGERTRACE macro is turned on. This changes does not affect production builds. (check-in: 831156a4 user: drh tags: trunk)
18:55
Improved comments in the header of the LSM1 vtab module. No code changes. (check-in: aa49926d user: drh tags: trunk)
13:51
New test cases for LSM1. (check-in: cb0c49cb user: drh tags: trunk)
12:49
Convert the LSM1 virtual table to be WITHOUT ROWID and get UPDATE and DELETE operations working on it. (check-in: 2164031b user: drh tags: trunk)
03:47
Simplification to the like optimization logic. Remove unnecessary branches. (check-in: 9466d952 user: drh tags: trunk)
2017-08-10
20:43
Allow WITHOUT ROWID virtual tables to be writable as long as they have exactly one column as their PRIMARY KEY. (check-in: c601d128 user: drh tags: trunk)
20:36
Add the "instance" type to the fts5vocab virtual table module. For direct access to the contents of the fts5 term index. (check-in: 34a7bd71 user: dan tags: trunk)
19:12
Fix a typo in csv01.test introduced by the previous commit. (Closed-Leaf check-in: f38ff718 user: dan tags: writable-vtab-without-rowid)
19:10
Add extra tests to this branch. (check-in: b0e3b88a user: dan tags: writable-vtab-without-rowid)
17:53
Test case for writing to a WITHOUT ROWID virtual table. The TCLVAR virtual table is modified to add a "fullname" column which is the primary key, and to accept update operations against the primary key. (check-in: 6997e00c user: drh tags: writable-vtab-without-rowid)
15:19
Experimental changes that allow a WITHOUT ROWID virtual table to be writable as long as it has only a single-column PRIMARY KEY. (check-in: ab9ee4c1 user: drh tags: writable-vtab-without-rowid)
03:27
Add a first draft of the "vtablog" extensions that implements a generic virtual table useful for experimentation using the command-line shell. (check-in: e49279e6 user: drh tags: trunk)
2017-08-09
22:55
Preserve the error code from xConnect or xCreate methods in virtual table implementations when they are encountered during parsing. (check-in: dcdf0913 user: drh tags: trunk)
20:35
Add experimental sqlite3_open_v2() flag SQLITE_OPEN_REUSE_SCHEMA. For sharing identical in-memory schema objects between connections. (check-in: a6256980 user: dan tags: reuse-schema)
19:27
Various bug fixes for the new LSM1 virtual table design. (check-in: 94434a25 user: drh tags: trunk)
18:40
Work toward redesigning the interface to the LSM1 virtual table. (check-in: 313df946 user: drh tags: trunk)
2017-08-08
21:40
The identifier "vsnprintf" appears to be a reserved word in recent versions of XCode, so avoid using it as a structure field. (check-in: 795eede3 user: drh tags: trunk)
21:30
Fix a faulty signed/unsigned character comparison in the LIKE optimization logic. (check-in: f4a4b149 user: drh tags: trunk)
20:03
Enhance the CSV virtual table extension so that it accepts the last row of the CSV file even if the last row omits the closing \n, as long as the last row has a full set of columns. (check-in: 537e3be2 user: drh tags: trunk)
2017-08-07
19:12
Avoid casting a value larger than 2^31 to a (size_t) or (SIZE_T) on systems where it is a 32-bit type. (check-in: b26d7a1c user: dan tags: trunk)
19:06
On Windows, avoid casting a value larger than 2^31 to a (SIZE_T) on systems where it is a 32-bit type. (Leaf check-in: f08d63b4 user: mistachkin tags: mmap-size-limit)
18:54
Fix a problem with handling SQLITE_FCNTL_MMAP_SIZE requests with a negative parameter in os_unix.c. (check-in: 4249fcf7 user: dan tags: mmap-size-limit)
18:27
Update bigmmap.test to account for builds that use "-DSQLITE_MAX_MMAP_SIZE=<integer-constant>LL". (check-in: 7c8b6f1c user: dan tags: mmap-size-limit)
18:13
Avoid casting a value larger than 2^31 to a (size_t) on systems where it is a 32-bit type. (check-in: 46c3085d user: dan tags: mmap-size-limit)
17:28
Fix an out-of-order test number. (check-in: 38f30091 user: mistachkin tags: trunk)
17:14
Add new test file "bigmmap.test". For testing builds with -DSQLITE_MAX_MMAP_SIZE > 2GB. (check-in: 17447062 user: dan tags: trunk)
14:15
Update this branch with latest trunk changes. (check-in: 17bc7ded user: dan tags: server-process-edition)
14:06
Fix a bug on this branch involving mmap mode and readonly transactions. (check-in: 355c594e user: dan tags: server-process-edition)
2017-08-05
16:15
Fix a segfault in swarmvtab that could occur if there was an error in the SQL statement passed to the constructor. Add other test cases. (check-in: 6ce8b7ca user: dan tags: trunk)
15:49
Microoptimization in pcache1.c makes the code slightly smaller and faster. (check-in: 422cd9f3 user: drh tags: trunk)
15:30
Fix memory leak in swarmvtab. (check-in: 002a9c7b user: dan tags: trunk)
2017-08-04
20:27
Add the swarm virtual table to the existing union virtual table module. (check-in: 0f6f6f03 user: drh tags: trunk)
20:15
Add the optional non-found-callback to the swarm-vtab. (Closed-Leaf check-in: a94e2f60 user: drh tags: union-vtab)
17:39
Add further test cases for swarmvtab. And minor code changes. (check-in: 0f82d3b9 user: dan tags: union-vtab)
16:16
Add test cases and associated fixes for swarmvtab. (check-in: 7ae20eac user: dan tags: union-vtab)
08:24
Add SQLITE_API qualifiers to public API functions in header file sqlite3rbu.h. (check-in: e11e6eb1 user: dan tags: trunk)
08:23
Update script tool/mksqlite3c.tcl to avoid duplicating the SQLITE_API qualifier when copying sqlite3rbu.h into the amalgamation. (Closed-Leaf check-in: 61ab112f user: dan tags: sqlite3rbu.h-fix)
2017-08-03
20:13
Modify swarmvtab to use a separate database connection for each database file. (check-in: 1f05ad29 user: dan tags: union-vtab)
15:50
Add SQLITE_API qualifiers to public API functions in header file sqlite3rbu.h. (check-in: d8637bad user: dan tags: sqlite3rbu.h-fix)
15:43
Fix some problems in RBU test cases. Also update RBU source code to better handle the trivial case where an RBU update is applied to a database zero pages in size. (check-in: 7676b39b user: dan tags: trunk)
00:29
Optimization to the comparison opcodes in the byte-code engine. (check-in: 654935c7 user: drh tags: trunk)
2017-08-02
22:43
In the KeyInfo object, refactor the nField and nXField elements into nKeyField and nAllField, which are more useful and run a little faster. (check-in: aea5990e user: drh tags: trunk)
19:59
Enhance the code in unionvtab.c to also provide the "swarmvtab" virtual table module. There are still several problems on this branch. (check-in: 03d94388 user: dan tags: union-vtab)
19:04
Avoid redundant calls to sqlite3ApiExit() in sqlite3_step(). (check-in: 527974d4 user: drh tags: trunk)
18:28
Only attempt to invoke WAL callbacks when a transaction has committed. (check-in: bcc6dacb user: drh tags: trunk)
18:27
Minor optimization on clearCell() (check-in: f3c39c29 user: drh tags: trunk)
15:50
Optimizations associated with error handling in btree cursors. (check-in: 49ba54e2 user: drh tags: trunk)
12:38
Remove unused token codes. (check-in: c45078c0 user: drh tags: trunk)
11:36
Rearrange some of the added token codes for a very slight size decrease and performance increase. (check-in: cb3742f5 user: drh tags: trunk)
11:04
Rearrange integer token values in the parser and logic in the resolveP2Values() routine for a small size reduction and performance increase. (check-in: 1cad2926 user: drh tags: trunk)
03:21
Show which opcodes are jumps in the comments when generating the opcodes.h header file. (check-in: eef643a3 user: drh tags: trunk)
03:21
Add the "%token" control to the lemon parser. Not currently used by SQLite. (check-in: a6e4c5ae user: drh tags: trunk)
02:46
Faster implementation of resolveP2Values(). (check-in: 82e46fe0 user: drh tags: trunk)
2017-08-01
20:59
Slightly smaller and faster by allocating Parser objects on the stack. (check-in: 436a89b9 user: drh tags: trunk)
19:53
Split the OP_Last opcode into OP_Last and OP_SeekEnd. Use OP_SeekEnd to position a cursor prior to appending. Ticket [cb91bf4290c211d]. (check-in: 3e02474c user: drh tags: trunk)
14:16
Take advantage of atomic-write capabilities in the F2FS filesystem when the database is stored on such a filesystem. This is a compile-time option activated using SQLITE_ENABLE_BATCH_ATOMIC_WRITE. (check-in: 24190b22 user: drh tags: trunk)
13:54
Merge recent enhancements from trunk. (check-in: aafe1fec user: drh tags: begin-concurrent)
13:24
Version 3.20.0 (check-in: 9501e22d user: drh tags: release, branch-3.20, version-3.20.0)
00:20
Allow ATTACH and DETACH inside of a transaction. (check-in: 95e8f316 user: drh tags: trunk)
2017-07-31
20:06
TclKit batch tool updates for MSVC. Cherrypick of [bcec155e0d6c6b17] and [0c77935cf9949099]. (check-in: 96ff1675 user: mistachkin tags: branch-3.20)
19:55
Add documentation file ./README-server-edition.html. (check-in: fbc4f4ad user: dan tags: server-process-edition)
19:39
Recognize 'AMD64' as 'x64' in the TclKit batch tool for MSVC. (check-in: 0c77935c user: mistachkin tags: trunk)
19:34
Sync up the MSVC autoconf makefile. (check-in: 44cebc6e user: drh tags: branch-3.20)
19:26
Sync up the MSVC autoconf makefile. (check-in: b3b89f4f user: mistachkin tags: trunk)
17:51
Fix a windows-compatibility issue in the recently added schema6.test script. (check-in: 14e6c302 user: drh tags: trunk)
17:40
More consistent column names. Cherry-pick of [09834279] and [0c38dde45] as a fix for ticket [de3403bf5ae]. (check-in: be0e24a0 user: drh tags: branch-3.20)
17:06
Prevent OSSFuzz from using debugging pragmas that are disabled in default builds and which generate lots of excess output. (check-in: cdc6494c user: drh tags: trunk)
16:42
Move the generation of output column names earlier, to right after name resolution and before query transformations such as flattening. This prevents the names from getting mangled by query transformations, and obviates hacks in the query flattener that attempt to work around the name mangling. The resulting code is smaller and faster and gives more consistent output. Fix to ticket [de3403bf5ae5f72ed]. (check-in: ade7ddf1 user: drh tags: trunk)
13:22
Use batch atomic writes when running on a recent F2FS filesystem, if compiled with SQLITE_ENABLE_BATCH_ATOMIC_WRITE. (check-in: 2dd0c77d user: drh tags: branch-3.19)
13:11
Move the generation of output column names earlier, to right after name resolution and before query transformations such as flattening. This prevents the names from getting mangled by query transformations, and obviates hacks in the query flattener that attempt to work around the name mangling. The resulting code is smaller and faster and gives more consistent output. This is a fix for ticket [de3403bf5ae5f72ed] and a cherry-pick of check-in [09834279aeca3bda] (check-in: 499942b3 user: drh tags: branch-3.19)
12:19
Correctly handle an "INTEGER PRIMARY KEY UNIQUE" column in a WITHOUT ROWID table. This is a fix for ticket [bc115541132dad136], cherry-picked from check-in [5216bfb73f1a49bdd8] (check-in: 322a2ede user: drh tags: branch-3.19)
12:07
Increase the version number to 3.19.4 (check-in: b77f297d user: drh tags: branch-3.19)
12:04
Merge further enhancements to the batch-atomic-write subsystem. (Leaf check-in: 4be4265d user: drh tags: batch-atomic-write-3.19)
2017-07-30
20:30
Correctly handle an "INTEGER PRIMARY KEY UNIQUE" column in a WITHOUT ROWID table. This is a fix for ticket [bc115541132dad136] cherry-picked from [5216bfb73f1a49bdd]. (check-in: 5c8cb1ff user: drh tags: branch-3.20)
19:50
Add the schema6.test module for demonstrating schemas that generate identical and different content. (check-in: ac1da06a user: drh tags: trunk)
18:40
Correctly handle an "INTEGER PRIMARY KEY UNIQUE" column in a WITHOUT ROWID table. This is a fix for ticket [bc115541132dad136], a problem discovered by OSSFuzz. (check-in: 5216bfb7 user: drh tags: trunk)
2017-07-29
17:10
Merge latest trunk changes with this branch. (check-in: b42c8779 user: dan tags: server-process-edition)
17:02
New test cases for column name generation interacting with the query flattener. (Closed-Leaf check-in: 0c38dde4 user: drh tags: early-column-names)
17:01
Update test program "tserver" to use a native pthreads mutex/condition variable to efficiently manage wal file checkpoints without the wal file growing indefinitely. (check-in: 8299bdb7 user: dan tags: server-process-edition)
16:01
Move the generation of output column names earlier, to right after name resolution and before query transformations such as flattening. This prevents the names from getting mangled by query transformations, and obviates hacks in the query flattener that attempt to work around the name mangling. The resulting code is smaller and faster and gives more consistent output. This is an alternative fix to ticket [de3403bf5ae5f72ed]. (check-in: 09834279 user: drh tags: early-column-names)
14:56
Use the subquery column name, not the original SQL statement text, as the added AS clause in the query flattener. (Closed-Leaf check-in: 5df7f0e6 user: drh tags: flattener-column-names)
03:33
In the query flattener, only add AS clauses to output columns of the outer query that are copied directly from the inner query. Formerly, all columns of the outer query received an AS clause if they did not have one already. This is a proposed fix for ticket [de3403bf5ae5f72]. (check-in: 439cc5c5 user: drh tags: flattener-column-names)
2017-07-28
22:22
Update Tcl version used by the TclKit batch tool for MSVC. (check-in: bcec155e user: mistachkin tags: trunk)
22:13
Fix harmless compiler warning. (check-in: 3286e1a0 user: mistachkin tags: trunk)
21:02
Reduce the number of mallocs required of writers in server mode. (check-in: 60953997 user: dan tags: server-process-edition)
20:49
Disable the writecrash.test module on Windows. (Leaf check-in: 4c0520d4 user: drh tags: batch-atomic-write)
18:16
More precise determination of when an in-memory journal needs to be spilled to disk. (check-in: 6a505bdd user: drh tags: batch-atomic-write)
13:18
Add new extended error codes for the atomic write file-controls. (check-in: 94a20047 user: drh tags: batch-atomic-write)
12:20
Fix a punctuation typo in the documentation for sqlite3_step(). No changes to code. (check-in: c965b757 user: drh tags: branch-3.20)
11:05
Add new test file test/atomic.test. (check-in: f9213e48 user: dan tags: batch-atomic-write)
02:02
Backport of all batch-atomic-write changes through check-in [67bad7fb9b] (check-in: def55027 user: drh tags: batch-atomic-write-3.19)
01:53
Add the SQLITE_ENABLE_BATCH_ATOMIC_WRITE macro to ctime.c (check-in: 67bad7fb user: drh tags: batch-atomic-write)
00:45
Release candidate 3 for 3.20.0 (check-in: d891a2a0 user: drh tags: branch-3.20)
2017-07-27
22:16
Enhance the like optimization so that it works with an ESCAPE clause. (check-in: 2495acf7 user: drh tags: branch-3.8.9)
20:24
Enhance the like optimization so that it works with an ESCAPE clause. (check-in: f5d330f4 user: drh tags: trunk)
19:59
Increase the version number to 3.21.0 in anticipation for changes to go into the next release. (check-in: 0645f25c user: drh tags: trunk)
18:49
Merge the pointer-passing interface changes from the 3.20 branch. (check-in: c63903a4 user: drh tags: trunk)
18:43
Simplified documentation for the pointer passing interface. (check-in: 2dfcd9a8 user: drh tags: branch-3.20)
18:34
Do not set device-capabilities flags SEQUENTIAL or SAFE_APPEND for f2fs file-systems. (check-in: 4477e60c user: dan tags: batch-atomic-write)
17:45
Add destructor functions for the pointer argument (NB: not the type string) to the sqlite3_bind_pointer() and sqlite3_result_pointer() interfaces. Use this new capability to resolve a pointer leak in the custom geometry function mechanism of the RTREE extension. (check-in: 5a2340b8 user: drh tags: branch-3.20)
16:42
In sqlite3_bind_pointer(), invoke the destructor if the bind index is out of range, like sqlite3_bind_blob() does. (Closed-Leaf check-in: d6684d2a user: drh tags: pointer-with-destructor)
15:53
Improved implementation of the destructor on pointer-passing interfaces. (check-in: 601ad679 user: drh tags: pointer-with-destructor)
14:04
A demonstration of how FTS3 cursor pointers can be passed from the MATCH operator to the snippet() function securely and opaquely without having to use the sqlite3_result_pointer() and sqlite3_value_pointer() interfaces. (Closed-Leaf check-in: 49cf31da user: drh tags: pass-pointer-as-blob)
03:48
Add a destructor argument to sqlite3_bind_pointer() and sqlite3_result_pointer(). (check-in: 3d9e841f user: drh tags: pointer-with-destructor)
00:27
Do now allow the geometry object in the right operand of a MATCH operator in the RTREE extension to be inpersonated by a BLOB literal. (check-in: 24c9cd46 user: drh tags: branch-3.19)
2017-07-26
19:59
Add the new sqlite3.mDbFlags field. Factor out bits of sqlite3.flags that do not interact with PRAGMA statements into sqlite3.mDbFlags. (check-in: 3808a00f user: drh tags: trunk)
18:26
Allow ATTACH and DETACH to occur inside of a transaction. (Closed-Leaf check-in: ac1fd6be user: drh tags: attach-in-trans)
10:04
Fix a comment on the UnpackedRecord.r1 and UnpackedRecord.r2 fields. No changes to code. (check-in: 622b1089 user: drh tags: trunk)
2017-07-25
15:12
Release candidate 2 for 3.20.0. (check-in: f39cb76b user: drh tags: branch-3.20)
01:34
Fix a bug in the deterministic date/time function logic that can only appear with STAT3 or STAT4. (check-in: 1ca707a4 user: drh tags: trunk)
2017-07-24
20:01
Do not attempt to run test file unionvtabfault.test with SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 1a632a9a user: dan tags: trunk)
19:43
Update this branch with latest changes from trunk. (check-in: d0719ad7 user: dan tags: server-process-edition)
19:25
Do not attempt to run test file unionvtab.test with SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 9a5a3d60 user: dan tags: trunk)
19:23
Only open a db in server-mode if there is a directory named "db-journal" in the file-system and the VFS is an exclusive locking VFS. (check-in: e77d29f6 user: dan tags: server-process-edition)
17:37
Handle a real OOM condition when incrblob2.test is run on a low-memory machine. (check-in: f483d06a user: drh tags: trunk)
15:29
Additional documentation on sqlite3_bind_pointer() and sqlite3_result_pointer(). No changes to code. (check-in: b1572d4e user: drh tags: trunk)
14:44
Compiler warning fix associated with date/time functions. (check-in: a98f07d9 user: drh tags: trunk)
2017-07-22
20:12
Add a test for the outcome of a process crash within an xWrite VFS method call. (check-in: eb871800 user: dan tags: batch-atomic-write)
16:58
Add the "atomic-batch-write" permutation to permutations.test. This permutation fails if not run on a file-system that supports atomic-batch-writes. (check-in: 9f1b83fa user: dan tags: batch-atomic-write)
16:32
Keep batch-atomic-writes turned on for journal_mode=MEMORY, but turn them off for synchronous=OFF. Refuse to compile with both SQLITE_MMAP_READWRITE and SQLITE_ENABLE_BATCH_ATOMIC_WRITE. Fix up some comments in the commit logic. (check-in: 2e80e19e user: drh tags: batch-atomic-write)
16:00
Omit unused batch-atomic-write code if SQLITE_ENABLE_BATCH_ATOMIC_WRITE is not defined. (check-in: a89b62c4 user: drh tags: batch-atomic-write)
2017-07-21
21:06
Use ioctl(F2FS_IOC_GET_FEATURES) to determine whether or not atomic batch writes are available. (check-in: 532bbf1f user: dan tags: batch-atomic-write)
20:31
Remove stray (and incomplete) comment from a test file. No changes to code. (check-in: 8de20fc7 user: mistachkin tags: trunk)
20:29
Fix typo in comment. No changes to code. (check-in: 65ec077b user: mistachkin tags: batch-atomic-write)
14:49
Additional documentation on the new VFS interface. No changes to code. (check-in: 83077ec8 user: drh tags: batch-atomic-write)
07:56
Add new interfaces sqlite3_result_pointer(), and sqlite3_value_pointer() and use them to transfer the eponymous FTS3 column pointer to the snippet() and offsets() routines. This changes is a cherry-pick of [f0f49224] via [69906880cee] and is ultimately inspired by check-in [72de49f2]. (check-in: 8201f4e1 user: drh tags: branch-3.18)
07:45
Add new interfaces sqlite3_result_pointer(), and sqlite3_value_pointer() and use them to transfer the eponymous FTS3 column pointer to the snippet() and offsets() routines. This changes is a cherry-pick of [f0f49224] with version-specific edits. That check-in was inspired by check-in [72de49f2]. (check-in: 69906880 user: drh tags: branch-3.9.2)
04:08
Add new interfaces sqlite3_result_pointer(), and sqlite3_value_pointer() and use them to transfer the eponymous FTS3 column pointer to the snippet() and offsets() routines. This is a cherry-pick of [f0f49224] which was in turn inspired by [72de49f2]. (Leaf check-in: 5a3022e0 user: drh tags: branch-3.8.10)
03:23
Add new interfaces sqlite3_result_pointer(), and sqlite3_value_pointer() and use them to transfer the eponymous FTS3 column pointer to the snippet() and offsets() routines. This is a cherry-pick of [f0f492245e95], which is in turn inspired by check-in [72de49f2]. (Leaf check-in: a66a5b39 user: drh tags: branch-3.8.6)
2017-07-20
21:18
Add the documentation text for the new VFS interfaces used by batch-atomic writes. (check-in: 5e944eea user: drh tags: batch-atomic-write)
21:01
Transform two #ifdef statements into #if statements. (check-in: f2c6b584 user: drh tags: batch-atomic-write)
21:00
Split SQLITE_ENABLE_ATOMIC_WRITE into two options - the original and SQLITE_ENABLE_BATCH_ATOMIC_WRITE. (check-in: 7eb9bf2c user: dan tags: batch-atomic-write)
20:49
Fix a harmless typo, but one that would show up in the documentation if not fixed. (check-in: e4b1dd36 user: drh tags: trunk)
19:49
Add support for F2FS atomic writes. Untested at this point. (check-in: 416973ed user: dan tags: batch-atomic-write)
19:28
Minor fix to the concurrent.test module so that it works on windows. (check-in: 58553d61 user: drh tags: begin-concurrent)
19:08
Fix compiler warnings. (check-in: 44c760d1 user: drh tags: begin-concurrent)
18:56
Fix a faulty #ifdef on the previous check-in (check-in: 7355e742 user: drh tags: begin-concurrent)
18:28
Get the build working with SQLITE_OMIT_CONCURRENT. (check-in: a29401e9 user: drh tags: begin-concurrent)
17:47
Merge all the latest trunk enhancements. (check-in: 213c61cb user: drh tags: begin-concurrent)
16:55
Experimental API sqlite3_stmt_refresh() to force a prepared statement to recompile if it needs to due to a schema change or other factor. (Leaf check-in: 10556ee4 user: drh tags: sqlite3_stmt_refresh)
15:08
Enhance the built-in date/time functions so that they can be used in CHECK constraints, in the WHERE clause or partial indexes, and index expressions, provided that none of the non-deterministic keywords ("now", "localtime", "utc") are used as arguments. (check-in: a90c062d user: drh tags: trunk)
14:36
New test cases for date/time functions in indexes on expressions, in the WHERE clause of partial indexes, and in CHECK constraints. (Closed-Leaf check-in: b7f70c7f user: drh tags: index-on-date-func)
13:17
Combine the Parse.ckBase and Parse.iSelfTab fields into just Parse.iSelfTab. This fixes a problem with date/time functions in check-constraints. Add some test cases for date/time functions in index expressions and check constraints. (check-in: 22eda098 user: drh tags: index-on-date-func)
2017-07-19
19:48
Allow indexes to be created on date/time functions as long as the 'now' date and the 'localtime' and 'utc' modifiers are not used. (check-in: 0a5e1c04 user: drh tags: index-on-date-func)
18:54
Merge latest trunk changes with this branch. (check-in: be0df0a6 user: dan tags: server-process-edition)
18:01
Remove some 'breakpoint' commands in test files. (check-in: d14fc621 user: mistachkin tags: trunk)
17:12
Create "pure" versions of the date/time functions that omit the 'now' feature and are therefore deterministic and usable in an index. (Closed-Leaf check-in: 55791928 user: drh tags: pure-date-functions)
11:52
Add further tests to unionvtab.test. (check-in: c93284cd user: dan tags: trunk)
11:20
Add VFS interfaces needed to make use of batch atomic write capabilities in the underlying filesystem. (check-in: 929bc46b user: drh tags: batch-atomic-write)
2017-07-18
21:19
Fix a crash in unionvtab caused by a misconfiguration. Add other test cases for the same. (check-in: 255d6b99 user: dan tags: trunk)
20:59
Fix shell.c.in so that it aligns with shell.c. (check-in: 505fdc8f user: drh tags: trunk)
20:49
Add test cases and fix minor error-handling issues in unionvtab.c. (check-in: deadaad2 user: dan tags: trunk)
20:30
Fix duplicate test name. No changes to code. (check-in: 47b80ecc user: mistachkin tags: trunk)
20:28
Fix another harmless compiler warning. Get the MSVC makefile working with unionvtab. (check-in: d49639c2 user: drh tags: trunk)
20:22
Suppress harmless compiler warnings in union-vtab. (check-in: 4d147a1e user: drh tags: trunk)
20:17
Remove an unused variable from unionvtab.c. (check-in: a447fdf1 user: dan tags: trunk)
20:03
Improve the readability of the unionvtab code. (check-in: 5bcf0f86 user: dan tags: trunk)
19:51
Have unionvtab support constraints on the column that corresponds to the INTEGER PRIMARY KEY field of the underlying source tables in the same way as rowid. (check-in: 4a6c416f user: dan tags: trunk)
18:50
Add test cases to unionvtab.test. (check-in: 6c9128e1 user: dan tags: trunk)
18:19
Add the union-vtab extension - still experimental and under active development. (check-in: 948f9504 user: drh tags: trunk)
17:34
Do not use the flattening optimization for a sub-query on the RHS of a LEFT JOIN if that subquery reads data from a virtual table. Because it prevents the planner from creating an automatic index on the results of the sub-query, the flattening optimization sometimes slows things down in this case. (check-in: 9dbae1df user: dan tags: trunk)
17:13
Avoid creating an automatic index on the RHS of a LEFT JOIN to optimize an IS term. Fix for [ce68383b]. (check-in: d2f0b2e8 user: dan tags: trunk)
14:41
Change the default command-line shell history depth to 2000 lines. (check-in: 0b69aa7e user: drh tags: trunk)
2017-07-17
21:03
Add test cases to test/unionvtab.test. (Closed-Leaf check-in: f2c4a584 user: dan tags: union-vtab)
20:25
Enhance error detection and fix other issues in unionvtab code. (check-in: 9c3f1b9a user: dan tags: union-vtab)
20:21
Merge all the latest fixes and enhancements from trunk. (check-in: e181225d user: drh tags: apple-osx)
19:37
Try to push relevant WHERE clause terms of the outer query down into the subquery in order to help the subquery run faster and/or use less memory. This is a cherry-pick of [6df18e949d36] with bug fixes. (check-in: cd6ac078 user: drh tags: branch-3.8.9)
19:25
When checking for the WHERE-clause push-down optimization, verify that all terms of the compound inner SELECT are non-aggregate, not just the last term. Fix for ticket [f7f8c97e97597]. (Closed-Leaf check-in: adc082c1 user: drh tags: push-down-backport)
19:14
Do not apply the WHERE-clause pushdown optimization to terms that originate in the ON or USING clause of a LEFT JOIN. Fix for ticket [c2a19d81652f40568c]. (check-in: 52674f94 user: drh tags: push-down-backport)
19:07
For FROM-clause subqueries that cannot be flattened, try to push relevant WHERE clause terms of the outer query down into the subquery in order to help the subquery run faster and/or use less memory. Cherry-pick from [6df18e949d36]. Still need to backport bug fixes associated with that check-in. (check-in: 043d6ce8 user: drh tags: push-down-backport)
18:45
Merge all changes from branch-3.20. Improvements to the fts5() extension interface. Work around a gcc/valgrind bug in the sqlite3_value_pointer() interface. (check-in: e0aca7d2 user: drh tags: trunk)
17:46
Interchange to branches within an "if" statement in sqlite3_value_pointer() in order to work around a bug in gcc. (Closed-Leaf check-in: 8a606e4a user: drh tags: branch-3.20)
15:38
Improved the interface to the fts5() extension mechanism for enhanced security. (check-in: bc78235f user: drh tags: branch-3.20)
13:37
Merge the pointer-type enhancement from the 3.20 branch. (check-in: 9e8e1c4a user: drh tags: trunk)
12:41
Comment changes clarifying details of the pointer-type parameter. No changes to code. (check-in: e4579e50 user: drh tags: branch-3.20)
12:27
Add the pointer-type parameter to sqlite3_bind_pointer(), sqlite3_result_pointer(), and sqlite3_value_pointer(). The pointer type is a static string that must match (according to strcmp()) or else the pointer is passed as a NULL. This is a security measure to prevent crossing pointers between different extensions. (check-in: e1196567 user: drh tags: branch-3.20)
11:39
Improve the sqlite3_result_pointer() interface so that it cannot be faked using sqlite3_result_null() and sqlite3_result_subtype(). (Closed-Leaf check-in: c13264d5 user: drh tags: pointer-types)
09:30
Use integer handles for fts3 cursors for a small performance improvement. (Closed-Leaf check-in: f4f7196b user: dan tags: union-vtab, fts3-int-cursor)
00:40
Add an experimental "pointer type" parameter to sqlite3_bind_pointer(), sqlite3_result_pointer(), and sqlite3_value_pointer(). The pointer type is a string that must compare equal using strcmp() or else the pointer comes through as a NULL. (check-in: 211cce04 user: drh tags: pointer-types)
2017-07-15
20:48
Add the "unionvtab" virtual table extension in ext/misc/unionvtab.c. (check-in: 62a86aa6 user: dan tags: union-vtab)
20:44
Merge the fix for ticket [a4e06e75a9ab61a12] from trunk. (check-in: b64d64c8 user: drh tags: branch-3.20)
20:33
Fix a register allocation problem in PRAGMA integrity_check that caused the same register to be used for two different purposes on the first ATTACHed database if the schema for the ATTACHed database was noticable more complex than the schema for the first database. Fix for ticket [a4e06e75a9ab61a1]. (check-in: 253945d4 user: drh tags: trunk)
20:25
Fix a missing \n at the end of a comment causing a line to be too long. No code changes. (check-in: 687bd478 user: drh tags: trunk)
17:57
Enhance the showstat4 utility program to show the full precision of floating point values in sqlite_stat4 tables. (check-in: 5ec37c62 user: drh tags: trunk)
13:49
Minor change to one of the command-line shell test scripts to make that script compatible with Tcl 8.5. (check-in: 47cf83a0 user: drh tags: branch-3.20)
13:35
First release candidate for version 3.20.0. (check-in: 035a86ec user: drh tags: branch-3.20)
10:44
Add new interfaces sqlite3_bind_pointer(), sqlite3_result_pointer(), and sqlite3_value_pointer() used to safely move pointer values through SQL without exposing underlying memory address information. (Leaf check-in: d6a44b35 user: drh tags: branch-3.17)
08:02
Fix another minor problem in test file like.test. (check-in: 0953e746 user: dan tags: trunk)
06:35
Fix test problems causing the "prepare" permutation test to fail. (check-in: b61cc5a0 user: dan tags: trunk)
2017-07-14
20:53
Fix test problems with stmtvtab1.test under some permutations. (check-in: ad6699d4 user: dan tags: trunk)
19:52
Fix a typo in a comment used to generate documentation. No code changes. (check-in: 65f9f29c user: drh tags: trunk)
19:47
Identify requirements text in the SQLITE_DBCONFIG_ENABLE_QPSG documentation. Add some implementation marks for SQLITE_DBCONFIG_MAINDBNAME requirements. No code changes. (check-in: ab165dcf user: drh tags: trunk)
19:22
Add requirements marks for some of the new features in the 3.20 release. (check-in: 26423867 user: drh tags: trunk)
19:12
Tweak Makefile.in so that testfixture can be built with the --disable-amalgamation configure switch. (check-in: 394c6f4f user: dan tags: trunk)
17:50
Modify mkopcodeh.tcl so that it can handle "same as" opcodes with values larger than the total number of opcodes. (check-in: 1eb56fe0 user: dan tags: trunk)
15:57
In the LSM1 virtual table, dequote the filename before opening the file. (check-in: 6ed4ef03 user: drh tags: trunk)
15:45
Changes to the LSM1 Tcl tests to make things work on Win32. (check-in: 7dc5e70e user: mistachkin tags: trunk)
15:42
Include a hint in the header comment of the LSM1 makefile about how to set the LSMOPTS variable. (check-in: b5e3b264 user: drh tags: trunk)
15:32
Update the Makefile for LSM1 so that the LSMOPTS can be set prior to including the Makefile, in order to add platform arguments such as -fPIC. (check-in: fe319bcd user: drh tags: trunk)
15:18
Fix a typo in the header comment to the remember extension. No code changes. (check-in: 604b9664 user: drh tags: trunk)
15:14
Change the name of the STMT virtual table to SQLITE_STMT. Also remove the first column of that virtual table, which was a pointer leak. (check-in: 1bc4e934 user: drh tags: trunk)
13:24
Minor updates to requirements marks and documention. No changes to code. (check-in: 8f6dd5e2 user: drh tags: trunk)
11:40
Add very simple tcl tests for the lsm1 extension. (check-in: 5e0a9793 user: dan tags: trunk)
08:15
Add simple tests for "PRAGMA freelist_format". (check-in: 98a36f4c user: dan tags: server-process-edition)
04:16
Minor tweaks to documentation. No code changes. (check-in: d8cd0434 user: drh tags: trunk)
00:28
Fix harmless compiler warnings in the readline tab-completion logic of the command-line shell. (check-in: 271ca4ac user: drh tags: trunk)
2017-07-13
22:39
Improved documentation for the new sqlite3_bind_pointer() interface and its cousins. (check-in: 889968bd user: drh tags: trunk)
22:03
Improvements to the documentation for SQLITE_PREPARE_PERSISTENT. No code changes. (check-in: 26577814 user: drh tags: trunk)
21:06
Make the freelist format a separate feature from the page-level locking. Freelist format is now configure using "PRAGMA freelist_format". (check-in: dcc40797 user: dan tags: server-process-edition)
20:11
Fix documentation typo. No changes to code. (check-in: 9319f7b7 user: drh tags: trunk)
19:11
Update header comments on the carray() and remember() extensions to bring out the fact that the pointer arguments must be bound using sqlite3_bind_pointer(). (check-in: 55f53965 user: drh tags: trunk)
18:09
Add new interfaces sqlite3_bind_pointer(), sqlite3_result_pointer(), and sqlite3_value_pointer() used to safely move pointer values through SQL without exposing underlying memory address information. (check-in: 72de49f2 user: drh tags: trunk)
17:56
Fix an incorrect type signature for the loadable extension pointer for sqlite3_result_pointer(). (Closed-Leaf check-in: 0bd7875b user: drh tags: bind-pointer)
17:54
Add the three new pointer interfaces to the loadable extension mechanism. Update sqlite3_value_subtype() documentation to remove the statement about it not being used internally. (check-in: e5a51803 user: drh tags: bind-pointer)
17:48
Update the FTS3 extension to use sqlite3_result_pointer() and sqlite3_value_pointer() for passing FTS3 cursor objects from the table into functions such as snippet(). (check-in: 0fa2e170 user: drh tags: bind-pointer)
17:34
Merge the latest changes from trunk. (check-in: a54be6e0 user: drh tags: bind-pointer)
2017-07-12
20:43
Smaller and faster implementation for vdbeFreeOpArray() and freeP4(). (check-in: 0c805935 user: drh tags: trunk)
18:05
Fix harmless compiler warnings about incomplete structure initializers. (check-in: 604c11d1 user: drh tags: trunk)
17:26
Remove unnecessary EP_Leaf settings on the Expr object. (check-in: f951c8b7 user: drh tags: trunk)
17:08
The EP_Resolved flag on the Expr object is not required for correctness nor performance, so remove it. (check-in: 54f55d3b user: drh tags: trunk)
14:10
Clarification and simplification and result column naming logic. (check-in: 68824a43 user: drh tags: trunk)
14:03
Fix a problem in an lsmtest test case caused by writing data in "text" mode instead of "binary". (check-in: 3e56a79a user: dan tags: trunk)
12:19
Compile cleanly with SQLITE_OMIT_UTF16. (check-in: 783100b8 user: drh tags: trunk)
2017-07-11
20:36
In lsm, attempt to unmap the database file before truncating it when disconnecting. A mapped file may not be truncated on win32. (check-in: 39069941 user: dan tags: trunk)
19:55
Simplify the way in which the database file is truncated when the last connection disconnects. Also ignore the error code from the xTruncate call - as truncating a database file is always optional. (check-in: b0a49d90 user: dan tags: trunk)
18:38
Add SQL function usleep() to test program tserver.c. (check-in: 8cbe8f2b user: dan tags: server-process-edition)
18:11
Fix harmless compiler warnings in the core. (check-in: 55e93f25 user: drh tags: trunk)
17:54
Make win32GetTimeOfDay() in the lsm1 test code more portable. (check-in: 2fe3a843 user: mistachkin tags: trunk)
17:28
Enabled the new sqlite3_prepare_v3() and sqlite3_prepare16_v3() interfaces for loadable extensions. (check-in: b9debd62 user: drh tags: trunk)
17:06
Fix a whitespace alignment issue in lsm1. (check-in: a8e651e0 user: mistachkin tags: trunk)
16:47
Fix a bug causing readonly mvcc connections to read the wrong cache entry in some cases. (check-in: b6157267 user: dan tags: server-process-edition)
16:46
Fix more harmless compiler warnings in lsm1, seen with MSVC 2015. (check-in: 0f1307f1 user: mistachkin tags: trunk)
16:36
Fix harmless compiler warnings seen with MSVC for lsm1. (check-in: cf6da4a5 user: mistachkin tags: trunk)
13:59
Add support for tab-completion (using the ext/misc/completion.c virtual table) to the command-line shell. (check-in: 95cd1d9f user: drh tags: trunk)
13:34
Change the src/shell.c file so that it is generated from a new script at tool/mkshellc.tcl and the template file src/shell.c.in, and automatically includes the extensions it needs out of ext/misc. (check-in: 17e0bb12 user: drh tags: trunk)
02:53
Fix a backup2 test case so that it works on FreeBSD. (check-in: 724819b4 user: drh tags: trunk)
02:05
Add the "phase" output column on the COMPLETION table-valued function, for debugging. Improved comments on the implementation. (check-in: 0e213555 user: drh tags: trunk)
01:38
The COMPLETION virtual table now looks at the names of databases, tables, and columns in addition to SQL keywords. (check-in: 1cc97711 user: drh tags: trunk)
00:09
Incomplete implementation of the COMPLETION table-valued function. So far it only works for SQL keywords. (check-in: caefbc72 user: drh tags: trunk)
2017-07-10
21:32
Fix harmless compiler warnings in lsmtest. (check-in: bd8a1fb9 user: mistachkin tags: trunk)
20:39
Fix errors in comments in the STMT virtual table. No code changes. (check-in: 9a8f045d user: drh tags: trunk)
20:33
Minor cleanup and refactoring of the Win32 VFS for lsm1. (check-in: bf7eda67 user: mistachkin tags: trunk)
19:54
Another spelling error in the README.md file. (check-in: 05129374 user: drh tags: trunk)
19:08
Spelling error in README.md (check-in: 12bc47c5 user: drh tags: trunk)
19:07
Yet another typo in README.md (check-in: 75c9327b user: drh tags: trunk)
19:05
Fix another README.md typo. (check-in: 20b1f0ef user: drh tags: trunk)
19:03
Fix an obsolete statement about Lemon in the README.md file. (check-in: 4f6ce7a3 user: drh tags: trunk)
18:57
Cleanup header usage in lsmtest for files that require _O_BINARY. (check-in: f3a6a64e user: mistachkin tags: trunk)
18:52
Updates to the repository README.md file. (check-in: 7bfd3ab7 user: drh tags: trunk)
18:33
In LSM, avoid calling the VFS xTestLock method to test for a lock that conflicts with one held by the same process. The results of such a call are considered undefined (since they are different under win32 and posix). (check-in: a82a9bea user: dan tags: trunk)
18:04
Add the "--newlines" option to the ".dump" command in the shell to disable the newline escaping mechanism. (check-in: bde431b1 user: drh tags: trunk)
17:00
When multiple constraints need to be evaluated for a row, do any constraints that involve correlated subqueries last. Hence, the priority is index-covered constraints first, correlated subquery constraints last, and all others in the middle. This is a follow-on and improvement to the push-down optimization of check-in [d7bb79ed]. (check-in: c4cb9048 user: drh tags: trunk)
16:38
Additional debugging Noop-comment in the constraint generator when wheretrace is enabled. (Closed-Leaf check-in: 0ca7474f user: drh tags: defer-where-subqueries)
15:26
Small performance optimization in sqlite3WhereExprUsage(). (check-in: 38edc677 user: drh tags: defer-where-subqueries)
15:17
Fix another problem on this branch. (check-in: a4fc9811 user: dan tags: defer-where-subqueries)
14:39
Fix a problem causing non-covered WHERE terms to be evaluated before covered WHERE terms. (check-in: 7d3cb39f user: dan tags: defer-where-subqueries)
14:33
When testing non-indexed WHERE constraints, test those that involve correlated sub-queries last of all. This increases the chances of not having to run the sub-query at all. (check-in: 1f9c1f35 user: dan tags: defer-where-subqueries)
13:24
For sqlite3TreeView() debugging output, show the Expr.flags field on scalar subqueries. (check-in: dc857a96 user: drh tags: trunk)
12:07
Update error message text for standard error codes to better describe the latest usage of those error codes. Modify sqlite3_open_v2() so that it does return a valid sqlite3 object in the event of SQLITE_MISUSE due to bad open flags, so that sqlite3_errmsg() does not report "out of memory" in that case. (check-in: f27b6370 user: drh tags: trunk)
11:17
Remove the error message text from disused error codes such as SQLITE_EMPTY and SQLITE_FORMAT. (check-in: 871752f2 user: drh tags: trunk)
2017-07-09
18:55
Always make "column%d" column-names 1-based, never 0-based. (check-in: 70096c50 user: drh tags: trunk)
00:30
Make sure the columns of a VALUES() clause are named "column%d" even if the VALUES() clause is a subquery in the FROM clause of an outer query. (check-in: acf3b9cc user: drh tags: trunk)
2017-07-08
22:30
Add the --icc, --gcc7, and --orm options to the speed-check.sh test script. (check-in: 70dae08a user: drh tags: trunk)
20:46
Support read-only MVCC transactions in server-mode. Started using "BEGIN READONLY". (check-in: 5a043aa8 user: dan tags: server-process-edition)
18:27
Disable compiler intrinsics when using the Intel C Compiler. (Leaf check-in: dbb59f61 user: drh tags: icc-fix)
01:01
Fix the covering index OR optimization (check-in [fcbd6abd]) so that it works with SQLITE_MAX_ATTACHED>30. Broken by a bad cherry-pick merge. (check-in: d227de8a user: drh tags: branch-3.8.9)
2017-07-07
22:58
Merge in all the latest trunk enhancements. (check-in: 7f48f6ab user: drh tags: apple-osx)
22:47
Basic test cases for PRAGMA secure_delete=FAST. (check-in: 0c246017 user: drh tags: trunk)
22:39
Fix test cases in wal2.test due to the fact that Darwin checks to see if the SHM file is writable before attempting to open in read/write. (check-in: 6b618b18 user: drh tags: apple-osx)
21:20
Fix comment in the Win32 VFS for lsm1. (check-in: 12a421bc user: mistachkin tags: trunk)
21:15
For lsmtest, use a more portable means of setting open() files to binary. (check-in: aea6e0ff user: mistachkin tags: trunk)
20:35
Adjust copy_file() lsmtest function so it works properly for locked database files on Win32. (check-in: 54a38555 user: mistachkin tags: trunk)
20:33
Avoid even trying to open a SHM file read/write in WAL mode if we know that the file is read-only. This avoids scare security log messages. (check-in: d9d92781 user: drh tags: apple-osx)
20:06
Add the "PRAGMA secure_delete=FAST" option, which overwrites most deleted content without increasing the amount of I/O. Deleted content might persist on the free page list, however. And extra CPU cycles are used for zeroing, of course. (check-in: 38978ce6 user: drh tags: trunk)
19:43
Change the error message text for SQLITE_ERROR to omit the part about "missing database" as that meaning is now obsolete (since approx SQLite 2.0). (check-in: 732f90d6 user: drh tags: trunk)
19:22
Fix typos in Win32 VFS for lsm1. (check-in: 0961ec87 user: mistachkin tags: trunk)
19:12
Fix the memcpy calls in the lsmWin32OsShmMap function for lsm1. (check-in: aa4890b9 user: mistachkin tags: trunk)
19:02
Enhance the MSVC makefile 'clean' target to handle lsm1. (check-in: 2d6faebc user: mistachkin tags: trunk)
18:31
Add support for LSM_DEBUG to the MSVC makefile for lsm1. (check-in: 277a7fed user: mistachkin tags: trunk)
18:06
In the command-line shell, when running ".schema" give a sensible error when the database file is locked. (check-in: cc329eb8 user: drh tags: trunk)
17:57
Fix the usleep() macro in the Win32 test code for lsm1. (check-in: 63599fa5 user: mistachkin tags: trunk)
17:43
Add new PRAGMAs: "function_list", "module_list", and "pragma_list". All are enclosed within #ifdef SQLITE_INTROSPECTION_PRAGMAS. The compile-time option is not on ctime.c yet, since these are still experimental and one can always test "PRAGMA pragma_list" and see whether or not it returns an empty set. (check-in: e0b6ae92 user: drh tags: trunk)
17:33
Add the "Pragma_list" pragma. Put all three pragmas created on this branch inside of #ifdef SQLITE_INTROSPECTION_PRAGMAS. (Closed-Leaf check-in: 2f3c3781 user: drh tags: list-pragmas)
16:46
Improve clarity in the Win32 VFS for lsm1. (check-in: 9c7a9e80 user: mistachkin tags: trunk)
16:40
Merge latest trunk changes with this branch. (check-in: 216c757f user: dan tags: server-process-edition)
16:29
Add support for LSM_DEBUG_MEM to the MSVC makefile for lsm1. (check-in: 3340de83 user: mistachkin tags: trunk)
16:27
Remove a block from the Win32 VFS for lsm1 that is now superfluous. (check-in: 5f726f28 user: dan tags: trunk)
16:12
Have this branch maintain an in-memory hash-table of old pages for read-only MVCC clients. There is no way to access it yet. (check-in: a3a9a2e1 user: dan tags: server-process-edition)
16:09
In lsmtest, use an empty string instead of ":memory:" when requesting a temporary database from SQLite. This prevents other test code from trying to unlink() ":memory:", which fails on win32. (check-in: 281ad505 user: dan tags: trunk)
16:07
Remove a block from the Win32 VFS for lsm1 that is now superfluous. (check-in: db4a4140 user: mistachkin tags: trunk)
16:06
Memory reallocation fix for the Win32 VFS for lsm1. (check-in: 5a3140e4 user: mistachkin tags: trunk)
16:00
Enhance the sqlite3VdbeMultiLoad() interface to automatically generate the OP_ResultRow opcode on PRAGMA implementations, for a small reduction in the library footprint. (check-in: c46f0f07 user: drh tags: trunk)
15:43
Add new pragmas: "function_list" and "module_list" (check-in: e5f01d7f user: drh tags: list-pragmas)
14:54
Fix an obsolete comment on the sqlite3_namelist() function implementation. (Closed-Leaf check-in: f4229857 user: drh tags: experimental-namelist)
14:26
Merge recent enhancements from trunk. (check-in: 73d0fc02 user: drh tags: bind-pointer)
13:59
Exploit the fact that Expr.pRight and Expr.x are never used at the same time for a small performance gain. (check-in: aacbb9a4 user: drh tags: trunk)
12:58
More efficient and compact implementation of walkExpr(). (check-in: 115d4b83 user: drh tags: trunk)
12:43
More aggressive use of EP_Leaf on expression nodes, to help prune searches. (check-in: c1a1d68c user: drh tags: trunk)
11:49
Very slightly smaller and faster sqlite3WalkSelect(). (check-in: 9bc65635 user: drh tags: trunk)
2017-07-06
22:43
Small adjustment to main.mk that facilitates giving non-standard compile-time options to the shell. (check-in: 7c7d53a9 user: drh tags: trunk)
22:40
Always load the schema before starting tab-completion. (check-in: 907fd3aa user: drh tags: experimental-namelist)
20:08
Tab-completion now also works using readline/editline. (check-in: c906739f user: drh tags: experimental-namelist)
19:26
Use the sqlite3_namelist() interface to implement simple tab-completion using linenoise. (check-in: 5cc7b0e2 user: drh tags: experimental-namelist)
18:52
Change the sqlite3_namelist() interface to return a pointer to an array of pointers to strings, and to avoid duplicates. (check-in: 70291110 user: drh tags: experimental-namelist)
18:25
The sqlite3_namelist() routine now works for all name types. (check-in: e41d6217 user: drh tags: experimental-namelist)
17:36
Initial implementation of a highly experimental interface for listing all keywords and symbolic names for an SQLite database connection. (check-in: 04ef6783 user: drh tags: experimental-namelist)
16:33
Change the (machine-generated) keywordhash.h file to increase the scope of the tables used for keyword matching, so that the tables are accessible to functions other then keywordCode(). (check-in: c5ed5ebd user: drh tags: trunk)
13:51
More compact implementation of the typeof() SQL function. (check-in: efb4aab0 user: drh tags: trunk)
13:23
Avoid unnecessary upper-to-lower case conversion for function names when registering the built-in functions. (check-in: 06269257 user: drh tags: trunk)
03:06
Small size reduction in findCollSeqEntry(). (check-in: 55ecd303 user: drh tags: trunk)
02:49
Avoid unnecessary calls to sqlite3GetCollSeq() for a small performance gain. (check-in: 503ba172 user: drh tags: trunk)
01:28
Slightly more compact implementation of the byte-code generator for the COMMIT and ROLLBACK commands. (check-in: 4da663d9 user: drh tags: trunk)
01:02
Small performance increase in sqlite3SrcListAppend(). (check-in: 7b2623f1 user: drh tags: trunk)
2017-07-05
23:33
Make the hash table implementation a little smaller and faster. (check-in: f762f1ef user: drh tags: trunk)
18:48
Have fts3 virtual table cursors free internal resources when they reach EOF, instead of waiting until the xClose method is called. (check-in: b6b14ab6 user: dan tags: trunk)
16:20
Make use of covering indexes in the OR optimization. (check-in: fcbd6abd user: drh tags: branch-3.8.9)
14:54
Add the count-of-view optimization when compiled using SQLITE_COUNTOFVIEW_OPTIMIZATION. (check-in: b7ae4b87 user: drh tags: branch-3.8.9)
14:29
Fix a problem in lsmtest causing one test to fail for multi-threaded LSM connections. (check-in: 2bce64c8 user: dan tags: trunk)
2017-07-04
19:34
Add the count-of-view optimization when compiled using SQLITE_COUNTOFVIEW_OPTIMIZATION. (check-in: d1ba2002 user: drh tags: trunk)
19:23
Fix further OOM handling cases in LSM. (check-in: ca757c86 user: dan tags: trunk)
17:25
Fix a couple of problems in handling OOM conditions within LSM. (check-in: 989a5c17 user: dan tags: trunk)
12:50
Fix a problem in the lempar.c Lemon template for YYSTACKDEPTH<=0 introduced by check-in [36e54cd8b1fb37] (check-in: 268a40f4 user: drh tags: trunk)
2017-07-03
21:09
Fix compiler warnings in LSM1, especially in the test logic. (check-in: 9bd3be92 user: drh tags: trunk)
20:19
Fix a bug in lsm queries on levels undergoing incremental an merge that contain range-delete markers. (check-in: b2c24879 user: dan tags: trunk)
17:37
Attempt to improve documentation on sqlite3_column_ and sqlite3_value_ interfaces. (check-in: 9111ac69 user: drh tags: trunk)
09:00
Add more tests for LSM log file recovery. Fix a problem in recovering log files that contain range deletes. (check-in: e34eafd4 user: dan tags: trunk)
2017-07-01
20:59
Fix a memory management problem in lsm log recovery code. (check-in: dd55af30 user: dan tags: trunk)
15:21
Enhance the RTree module to detect node truncation early and report an error. (check-in: 66de6f4a user: drh tags: trunk)
2017-06-30
23:46
Update the carray() and remember() extension functions so that they user the new sqlite3_value_pointer() interface. (check-in: a99fa94d user: drh tags: bind-pointer)
23:09
Add APIs for binding pointers that can be used by app-defined functions. (check-in: d9f4a831 user: drh tags: bind-pointer)
20:11
Improved documentation for sqlite3_value_type(). (check-in: 0db20efe user: drh tags: trunk)
19:22
Add some assert() statements in the Win32 interface for lsm1. (check-in: d076d58f user: mistachkin tags: trunk)
18:12
Fix some minor typos in lsm1. (check-in: 0ef777d7 user: mistachkin tags: trunk)
11:44
Avoid constantly freeing and reallocing small internal buffers associated with LSM cursors. Instead, allow them to persist for the lifetime of the cursor if they are LSM_SEGMENTPTR_FREE_THRESHOLD (default 1024) bytes or smaller. This change is based on research by Martijn Blaauw. (check-in: bacfe8cb user: dan tags: trunk)
2017-06-29
21:33
In the command-line shell, add the -quote option to start up in quote mode. Enhance the ".mode" command so that it reports the current output mode if given no arguments. (check-in: 5e3f9ea5 user: drh tags: trunk)
21:11
Remove the ".explain" command from the ".help" output of the command-line shell, though keep the implementation around for backwards compatibility. (check-in: 7782c04e user: drh tags: trunk)
20:31
Some simple tests for the STMT virtual table. (check-in: a26e17ee user: drh tags: trunk)
20:23
Avoid reading or writing the 32 locking bytes at the end of the first meta-page of an LSM database. (check-in: 3ed6877f user: dan tags: trunk)
20:13
Avoid reading or writing the 32 locking bytes at the end of the first meta-page of an LSM database. (Closed-Leaf check-in: 2b5df3e8 user: dan tags: lsm-metapage-fix)
19:08
Fix issues in the POSIX and Win32 interfaces for lsm1. (check-in: 38ec4141 user: mistachkin tags: trunk)
17:27
Edit comments in sqlite.h.in used for generating documentation, to improve the description of the new sqlite3_prepare_v3() interfaces, and other miscellaneous cleanup. No changes to executable code. (check-in: 284707a7 user: drh tags: trunk)
16:51
More updates to the Win32 interface for lsm1. (check-in: cae64769 user: mistachkin tags: trunk)
15:57
Correct typo in the Win32 interface for lsm1. (check-in: 1b4facb1 user: mistachkin tags: trunk)
15:24
Add interfaces sqlite3_prepare_v3() and sqlite3_prepare16_v3() with the extra prepFlags argument. Add the SQLITE_PREPARE_PERSISTENT option as one bit in that argument. Use the new option in FTS3, FTS5, and RTREE. (check-in: 03977248 user: drh tags: trunk)
15:13
Further corrections to the Win32 interface for lsm1. (check-in: 4df6e247 user: mistachkin tags: trunk)
14:33
Rename the "stmts" virtual table to just "stmt" without the final "s". (check-in: adfdb801 user: drh tags: trunk)
14:17
A couple fixes for the Win32 interface for lsm1. (check-in: ebbd98e9 user: mistachkin tags: trunk)
13:41
Add the stmts virtual table to testfixture builds. Add new compile-time options SQLITE_ENABLE_QPSG and SQLITE_ENABLE_STMTSVTAB to ctime.c (check-in: 60c62829 user: drh tags: trunk)
13:35
Compilation fix for lsm1 using MSVC. (check-in: b7794cc5 user: mistachkin tags: trunk)
13:19
Add the LSM1 extension. (check-in: 824e8327 user: drh tags: trunk)
13:13
Add the "stmts" virtual table to the amalgamation, activated when compiled using -DSQLITE_ENABLE_STMTSVTAB. Add the SQLITE_STMTSTATUS_REPREPARE and SQLITE_STMTSTATUS_RUN statistics outputs from sqlite3_stmt_status() and add corresponding columns to the stmts virtual table. Change the numeric value of SQLITE_STMTSTATUS_MEMUSED to get it out of the way of counter values. (check-in: 88976ae3 user: drh tags: trunk)
12:59
The query planner examines the values of bound parameters to help determine if a partial index is usable. Reprepares may happen if the bindings change. This behavior is disabled by the QPSG setting. (check-in: c322bfa2 user: drh tags: trunk)
12:54
Implement xUnlink, xShmMap, and xShmUnmap for lsm1 on Win32. (Closed-Leaf check-in: 680cc064 user: mistachkin tags: lsm-vtab)
12:49
Add the SQLITE_STMTSTATUS_REPREPARE and SQLITE_STMTSTATUS_RUN options to sqlite3_stmt_status(). Use this for two new columns in the stmts virtual table. (Closed-Leaf check-in: b0b0c8f8 user: drh tags: stmts-vtab)
01:23
Fix the exprCompareVariable() routine so that it works for non-UTF8 text. (Closed-Leaf check-in: 25acd965 user: drh tags: partial-index-variables)
00:20
Implement xRemap for lsm1 on Win32. Also, zero file handle when closing it. (check-in: 93c9aa7d user: mistachkin tags: lsm-vtab)
2017-06-28
21:47
Alternative implementation of exprCompareVariable(). (check-in: b959c629 user: drh tags: partial-index-variables)
21:36
Implement xLock and xTestLock for lsm1 on Win32. (check-in: 9112117d user: mistachkin tags: lsm-vtab)
20:21
Merge tserver fixes with this branch. (check-in: 58a0aab8 user: dan tags: server-process-edition)
20:12
Fix bugs in test program tserver.c. (Leaf check-in: 093b9108 user: dan tags: server-edition)
18:25
Make the query planners use of partial indexes based on bound variables responsive to the SQLITE_DBCONFIG_ENABLE_QPSG setting. (check-in: a934dd14 user: drh tags: partial-index-variables)
18:07
Merge the in the latest enhancements from trunk. (check-in: 8f63c586 user: drh tags: partial-index-variables)
17:29
Instead of the new sqlite3_prepare_v3() interface, provide the SQLITE_DBCONFIG_PREPARE_FLAGS interface which sets the flags on the single next call to sqlite3_prepare_v2() or its cousins. (Closed-Leaf check-in: 942c3ef8 user: drh tags: dbconfig-prepare-flags)
15:56
Incorporate recent trunk changes. (Closed-Leaf check-in: 62b8269b user: drh tags: prepare_v3)
15:47
Build the "stmts" virtual table into the amalgamation. It is active only when compiled using SQLITE_ENABLE_STMTSVTAB. That option is supplied to the command-line shell. (check-in: 0ff057d8 user: drh tags: stmts-vtab)
15:17
Fix harmless compiler warnings in the CSV extension. (check-in: f02a5459 user: drh tags: trunk)
15:01
Faster parser stack overflow detection. (check-in: 36e54cd8 user: drh tags: trunk)
14:26
Minor tweak to the SQL grammar to make the parser tables a few bytes smaller. (check-in: cc4810b2 user: drh tags: trunk)
13:47
In the lemon-generated parser, store the number of symbols on the RHS of each rule as a negative number and add it to the stack pointer, rather than storing the value as a positive and subtracting it. This makes the parser faster. (check-in: b362f0d8 user: drh tags: trunk)
11:56
In the lemon-generated parser, automatically promote SHIFTREDUCE actions on nonterminal systems to pure REDUCE actions, for a performance enhancement. (check-in: c46d94a8 user: drh tags: trunk)
01:21
Simplify error handling logic in sqlite3_exec() to save about 40 bytes. (check-in: 6480916c user: drh tags: trunk)
01:12
Minor code simplification in the ALTER TABLE logic. (check-in: bfc4e7f3 user: drh tags: trunk)
00:55
Avoid an unnecessary call to sqlite3XPrintf() in the code generator, for a performance improvement. (check-in: 29d6ceb3 user: drh tags: trunk)
2017-06-27
23:36
Add SQLITE_DBCONFIG_ENABLE_QPSG that forces the query planner stability guarantee. This is the fix for ticket [b9f010107724c] (check-in: b82efd2a user: drh tags: trunk)
22:33
Improve a local variable name. (check-in: d0f6973d user: mistachkin tags: lsm-vtab)
22:27
Initial work on porting lsmtest to Win32. (check-in: 7e669d9b user: mistachkin tags: lsm-vtab)
20:23
Support clients within a single process only. (check-in: dfa9a4d5 user: dan tags: server-process-edition)
18:15
Implement xFullpath for lsm1 on Win32. (check-in: dbe9c8aa user: mistachkin tags: lsm-vtab)
16:48
Merge latest trunk changes with this branch. (check-in: 2b095406 user: dan tags: apple-osx)
16:39
Fix a virtual table problem that can occur when the vtab is on the RHS of a LEFT JOIN and there is a MATCH constraint in the ON clause, or when the vtab is in a sub-query that is the RHS of a LEFT JOIN and there is a MATCH constraint in the WHERE clause of the sub-query. (check-in: 87b38166 user: dan tags: trunk)
06:28
Minor corrections to the previous check-in. (check-in: e1cf8a78 user: mistachkin tags: lsm-vtab)
05:59
Work in progress porting lsm1 to Win32. (check-in: 2017636e user: mistachkin tags: lsm-vtab)
2017-06-26
21:08
Add the -withoutnulls option to the "db eval" method in the TCL interface. (check-in: 18f0616e user: drh tags: trunk)
18:42
The ".import" command of the shell, and the csv virtual table extension both ignore a single UTF-8 BOM at the beginning of their input. (check-in: 7c15d762 user: drh tags: trunk)
16:13
Add the "-unsetnull 1" option to the "sqlite3" command in the TCL interface. (Closed-Leaf check-in: cbe441b2 user: drh tags: unsetnull-option)
14:46
Make sure sqlite3VdbeSetVarmask() is never invoked when QPSG is enabled. (Closed-Leaf check-in: ebcfa73e user: drh tags: enable-QPSG)
13:57
Add the SQLITE_DBCONFIG_ENABLE_QPSG option to activate the query planner stability guarantee. This involves refactoring the sqlite3.flags bitvector to carve out a free bit to use. (check-in: 7076e828 user: drh tags: enable-QPSG)
11:46
Remove an invalid assert() from lsm test code. (check-in: ca8a7e99 user: dan tags: lsm-vtab)
08:24
Fix another problem with multi-threaded mode in the LSM test code. (check-in: 461ced77 user: dan tags: lsm-vtab)
07:31
Update a test case to reflect the fact that the lsm blocksize is configured in KiB. And defaults to 1024, not 2048. (check-in: d7015475 user: dan tags: lsm-vtab)
06:53
Fix some compiler warnings in lsm_file.c. (check-in: 23f16382 user: dan tags: lsm-vtab)
2017-06-24
19:21
Disable shell tests for the .schema command if virtual tables are not available. (check-in: c8186874 user: drh tags: trunk)
18:10
Consider the values bound to SQL variables when determining whether or not a partial index may be used. (check-in: 7b59c353 user: dan tags: partial-index-variables)
16:35
Make sure the config.h header is included by ctime.c, if that header exists. (check-in: c2ea6293 user: drh tags: trunk)
16:03
Query planner tuning: When deciding between two plans with the same cost, bias the selection toward the one that does not use the sorter. (check-in: f0ec36d4 user: drh tags: trunk)
13:31
Make sure enough memory is allocated for pathological quoting cases when computing a quoted table name in the command-line shell. (check-in: 0583b84a user: drh tags: trunk)
2017-06-23
21:05
Merge all recent trunk enhancements into the apple-osx branch. (check-in: 53b14a38 user: drh tags: apple-osx)
15:47
When generating individual loops for each ORed term of an OR scan, move any constant WHERE expressions outside of the loop, as is done for top-level loops. (check-in: 712267c9 user: dan tags: trunk)
2017-06-22
16:51
When generating individual loops for each ORed term of an OR scan, move any constant WHERE expressions outside of the loop, as is done for top-level loops. (Closed-Leaf check-in: e4a022be user: dan tags: or-optimization)
2017-06-21
01:36
Enable pragma virtual tables for the integrity_check, quick_check, and foreign_key_check pragmas. (check-in: 118f7bb3 user: drh tags: trunk)
2017-06-20
19:20
Ensure that test tool "tserver" finalizes all statements before attempting to close a database handle. (check-in: d8568aac user: dan tags: server-edition)
18:19
Rename the azCompileOpt global constant to avoid a harmless compiler warning about a name conflict with a local variable. (check-in: 94e420ec user: drh tags: trunk)
17:43
Ensure that the query planner knows that any column of a flattened LEFT JOIN can be NULL even if that column is labeled with "NOT NULL". Fix for ticket [892fc34f173e99d8]. (check-in: 48346268 user: dan tags: trunk)
2017-06-19
11:44
Experimental "PRAGMA secure_delete=FAST" pragma. The intent is to overwrite deleted content with zeros without increasing the amount of disk I/O. (Closed-Leaf check-in: f1682f0f user: drh tags: fast-secure-delete)
2017-06-17
19:06
Avoid adding an artifical "LIMIT 1" on scalar subqueries that do not need it. This seems like a pointless optimization as it makes minimal run-time difference but does increase code complexity. Parked on a branch for historical reference. (Leaf check-in: c21628e9 user: drh tags: subquery-limit-opt)
18:49
Fix a missing comma in the previous check-in. (check-in: f3db02f4 user: drh tags: trunk)
17:55
Rework the code in ctime.c a bit to report on more compile time options. And to only output configuration options passed in to SQLite, not the default values of #define symbols set automatically. Also generate the large array in ctime.c using new script tool/mkctime.tcl, instead of entering it manually. (check-in: 9a443397 user: dan tags: trunk)
17:29
Ensure that the value of the THREADSAFE symbol is always included when reporting compile time options, even if it was not explicitly configured. (Closed-Leaf check-in: 95141c64 user: dan tags: ctime-refactor)
16:39
Add extra test cases for sqlite3changeset_apply() and ALTER TABLE ADD COLUMN. (check-in: 603838fc user: dan tags: trunk)
09:59
Version 3.18.2 (check-in: 036ebf72 user: drh tags: release, branch-3.18, version-3.18.2)
00:39
When building an ephemeral table of integers, do not assume that the table does not already contain N if the insert cursor points to N-1. Fix for ticket [61fe9745]. Also increase the version number to 3.18.2. This is the release candidate. (check-in: e1b71029 user: drh tags: branch-3.18)
2017-06-16
19:51
Rework the code in ctime.c a bit to report on more compile time options. And to only output configuration options passed in to SQLite, not the default values of #define symbols set automatically. Also generate the large array in ctime.c using new script tool/mkctime.tcl, instead of entering it manually. (check-in: bc1951d6 user: dan tags: ctime-refactor)
18:31
Minor refactoring change to clarify how ATTACH works. No functional changes. (check-in: 3944a32e user: drh tags: trunk)
13:43
Prevent pagesize changes on VACUUM in encrypted databases even when running the VACUUM on an attached database. (check-in: 11693849 user: drh tags: trunk)
13:41
Version 3.18.1 (check-in: 77bb4623 user: drh tags: release, branch-3.18, version-3.18.1)
12:15
An unintentional fork was created due to a typo when creating branch-3.18. This check-in resolves the fork and is the 3.18.1 release candidate. (check-in: 20e5ffb1 user: drh tags: branch-3.18)
2017-06-15
16:56
Move the "shell_add_schema()" SQL function used by the ".schema" command of the command-line shell to a different spot in the shell.c source file so that it is not in the middle of an unrelated module. (check-in: 254617a1 user: drh tags: trunk)
16:45
Fix typo and improve the wording of the description of "Metadata" in the output of the sqlite3_analyzer tool. (check-in: ca1ff707 user: drh tags: trunk)
15:06
Merge the latest changes from trunk. (check-in: 60105c22 user: drh tags: lsm-vtab)
13:07
Fix harmless compiler warnings in the shell.c file (check-in: 9afd7a2f user: drh tags: trunk)
12:50
Improvements to the ".tables" command in the command-line shell so that it shows the name of all schemas if the name is anything other than "main". (check-in: c7f778b7 user: drh tags: trunk)
12:21
In the command-line shell, enhance the ".schema" command show that it shows the schema for ATTACH-ed databases in addition to "main". (check-in: 48e08628 user: drh tags: trunk)
07:47
Increase the version number to 3.18.1. (check-in: 4be2eba8 user: drh tags: branch-3.18)
00:52
Enhance the sqlite3_analyzer.exe utility so that it computes and shows the number of bytes of metadata on btree pages and per table and index entry. (check-in: 43ad41ef user: drh tags: trunk)
2017-06-13
16:52
Fix sqlite3rbu_close() so that the pzErrmsg parameter may be passed NULL. (check-in: c433672d user: dan tags: trunk)
04:31
Fix the processing of double-negatives in WHERE clause constraints with STAT4. Ticket [cfa2c908f2182] (check-in: 35b34bdf user: drh tags: trunk)
2017-06-12
23:44
Ensure pointer map entries are always added when a row that does use overflow pages replaces one that does not in an auto-vacuum database. Fix for [fda22108]. (check-in: 30c50f0e user: drh tags: branch-3.18)
2017-06-11
20:17
Fix an off-by-one error that messes up the display of loop codes in the ".wheretrace" debugging output for queries with more than 62 candidate loops when SQLITE_ENABLE_WHERETRACE is on. (check-in: 0bbdaf28 user: drh tags: trunk)
19:51
When reusing a materialized view, make sure the estimated number of output rows is correctly initialized to avoid confusing the query planner. (check-in: 87aceb41 user: drh tags: trunk)
19:40
Fix the sessiondiff test module so that it does not run if the session extension is not enabled. (check-in: 8f92b7a6 user: drh tags: trunk)
18:26
Fix a potential null-pointer deference following OOM introduced by check-in [e39795d7] (unreleased). (check-in: a2f77285 user: drh tags: trunk)
2017-06-10
17:23
Remove sqlite3_log() and abort() calls added to this branch to debug the pointer-map problem ([fda22108]). (check-in: 79544fc2 user: dan tags: begin-concurrent)
2017-06-09
15:14
Merge enhancements and fixes from trunk. (check-in: 3fd050c3 user: drh tags: prepare_v3)
11:43
Update the documentation to make it clear that the table name parameter to sqlite3_table_column_metadata() may not be NULL. (check-in: 2881ab1e user: drh tags: trunk)
02:27
Adjust the implementation of the ".selftest" feature of the shell to avoid using the deprecated sqlite3_get_table() interface. (check-in: 3168e2c9 user: drh tags: trunk)
2017-06-08
16:23
Update the recent auto-vacuum fix so that it works for the in-memory pointer-map structure used by this branch. (check-in: 8e311a6d user: dan tags: begin-concurrent)
16:10
Merge 3.19.3 changes with this branch. (check-in: e2d38d51 user: dan tags: begin-concurrent)
15:54
Merge changes for version 3.19.0 with this branch. (check-in: 0f59bb94 user: dan tags: begin-concurrent)
14:41
Merge the auto_vacuum bug fix and all other changes from the 3.19.3 release. (check-in: 93f32dd2 user: drh tags: apple-osx)
14:35
Add a testcase() to confirm that an OOM on sqlite3DbStrNDup() is handled correctly in trigger.c. (check-in: 343e5599 user: drh tags: trunk)
14:26
Version 3.19.3 (check-in: 0ee482a1 user: drh tags: release, version-3.19.3, branch-3.19)
11:32
Fix an issue with OPT_FEATURE_FLAGS in configure.ac. (check-in: 97b5c4a5 user: drh tags: branch-3.19)
11:27
Increase the version number to 3.19.3. (check-in: 903fff53 user: drh tags: branch-3.19)
11:26
Ensure pointer map entries are always added when a row that does use overflow pages replaces one that does not in an auto-vacuum database. Fix for [fda22108]. (check-in: 9478106c user: drh tags: branch-3.19)
11:14
Ensure pointer map entries are always added when a row that does use overflow pages replaces one that does not in an auto-vacuum database. Fix for [fda22108]. (check-in: b30dfba8 user: dan tags: trunk)
2017-06-07
22:32
In SQLITE_DEBUG mode, attempt to log the page number of the database that contained the problem when SQLITE_CORRUPT errors are seen. (check-in: e39795d7 user: drh tags: trunk)
19:46
Fix another lsmtest build problem. Add the "-trans BOOLEAN" option to "lsmtest speed2". (check-in: 61853bc1 user: dan tags: lsm-vtab)
16:25
Merge in trunk enhancements. (check-in: f8bbb608 user: drh tags: prepare_v3)
15:55
Add too/tserver.c - the implementation of a simple multi-threaded server designed for interactive testing of concurrency between connections used by different threads of the same process. (check-in: 05b4fc43 user: dan tags: server-edition)
10:55
Cause the ANALYZE command to build sqlite_stat1 table entries for empty tables with the assumption that such tables really contain 10 elements. This gives better query plans for tables that are truely empty, but is likely to cause problems in legacy systems, so the change is kept off trunk. Some TCL tests fail on this check-in due to the new stat1 entries. (Leaf check-in: c81f260c user: drh tags: analyze-empty-tables)
2017-06-06
18:22
Add the SQLITE_DEFAULT_ROWEST compile-time option for changing the estimated number of rows in tables that lack sqlite_stat1 entries. (check-in: 802b82f3 user: drh tags: branch-3.8.9)
18:20
Add the SQLITE_DEFAULT_ROWEST compile-time option for changing the estimated number of rows in tables that lack sqlite_stat1 entries. (check-in: 234ede26 user: drh tags: trunk)
16:14
Fix a threading problem in lsm test code. (check-in: 501238b9 user: dan tags: lsm-vtab)
2017-06-05
19:20
Fix a subtle bug in the remember UDF of the kvtest.exe utility program. (check-in: 9eea3670 user: drh tags: trunk)
16:33
Fix a bug in test_fs.c that occurs when the first component of a path contains a GLOB or LIKE escape character. (check-in: 73c70590 user: dan tags: trunk)
13:28
For the kvtest utility, add the --vacuum option to "kvtest stat" and also run PRAGMA integrity_check with "kvtest stat". (check-in: f3c25df4 user: drh tags: trunk)
12:29
Fix the column width deduction logic in the command-line shell to account for multi-byte utf8 characters. (check-in: ed0842c1 user: drh tags: trunk)
10:31
Omit some of the fstree tests in vtabH if the PWD contains LIKE wildcards. (check-in: ead29f9c user: drh tags: trunk)
2017-06-03
20:09
Initialize a variable to zero to prevent an (incorrect) compiler warning of it potentially being uninitialized. (check-in: 65182ce0 user: drh tags: trunk)
19:16
Fix the SQLITE_PTR_TO_INT macro so that works on recent versions of LLVM on Macs. (check-in: c4089ffb user: drh tags: trunk)
18:27
Remove unused header file from kvtest. (check-in: dd7e043f user: drh tags: trunk)
17:24
In kvtest, add the ability to work with a hierarchy of files on disk, in addition to having all files in the same directory. (check-in: f568f666 user: drh tags: trunk)
15:17
Add the --nocheckpoint and --multitrans options to kvtest. (check-in: 5828633c user: drh tags: trunk)
2017-06-02
23:44
Merge all recent trunk enhancements. (check-in: 1d23294d user: drh tags: lsm-vtab)
23:32
Add the --fsync flag to kvtest, and document the --nosync flag. (check-in: 7fdc78a6 user: drh tags: trunk)
19:31
Work toward enhancing kvtest to measure write performance. (check-in: fc73e7d2 user: drh tags: trunk)
15:44
Change the name of the OP_Seek opcode into OP_DeferredSeek for better clarity of function. No functional code changes. (check-in: ab33d299 user: drh tags: trunk)
13:16
Fix a typo in the header comment of the "series.c" virtual table extension. (check-in: d637feb4 user: drh tags: trunk)
09:31
Extend even further the logging designed to find problems in the pointer-map structure. Call abort() to dump a core as soon as such a problem is seen. (check-in: f131677d user: dan tags: begin-concurrent)
2017-06-01
16:13
Add test code for LSM to the ext/lsm1/lsm-test directory. (check-in: bb7436e8 user: dan tags: lsm-vtab)
01:53
Add a comment to the Lemon documentation regarding the security of the lemon.exe command-line tool. (check-in: 4c2458c1 user: drh tags: trunk)
00:54
Add interfaces sqlite3_prepare_v3() and sqlite3_prepare16_v3() with the extra prepFlags argument. Add the SQLITE_PREPARE_PERSISTENT option as one bit in that argument. (check-in: 4a25c588 user: drh tags: prepare_v3)
2017-05-31
17:30
Add the SQLITE_STMTSTATUS_MEMUSED opcode to sqlite3_stmt_status() for finding the heap memory usage by a single prepared statement. (check-in: c26cf978 user: drh tags: trunk)
17:06
Generate extra log messages in response to irregularites in the pointer-map used by "BEGIN CONCURRENT" transactions. (check-in: f7e3e2bc user: dan tags: begin-concurrent)
16:21
Add the SQLITE_STMTSTATUS_MEMUSED option for sqlite3_stmt_status() that reports the amount of heap memory used for a single prepared statement. (Closed-Leaf check-in: b57d5104 user: drh tags: stmtstatus-memused)
16:09
Add the experimental "stmts" virtual table for introspection of prepared statements. (check-in: cb4c5c66 user: drh tags: trunk)
13:45
Avoid allocating excess memory to the KeyInfo objects. (check-in: df785943 user: drh tags: trunk)
13:27
Remove a completely unnecessary memset() from the INSERT code generator. (check-in: 7d58836b user: drh tags: trunk)
11:24
Very small performance increase in sqlite3VdbeSetNumCols(). (check-in: 8885b446 user: drh tags: trunk)
03:20
Reorder fields in the PgHdr object for a performance increase. (check-in: 326e63d7 user: drh tags: trunk)
02:58
Avoid unnecessary memory zeroing during expression list allocation. (check-in: de28e651 user: drh tags: trunk)
00:49
Size and performance optimizations to sqlite3ResolveExprNames(). (check-in: af8c0fed user: drh tags: trunk)
2017-05-30
18:34
Change sqlite3BtreeNext() and sqlite3BtreePrevious() so that they return SQLITE_DONE if they have already reached the end (or beginning) of the table. This gives a performance increase and size reduction. (check-in: e972a386 user: drh tags: trunk)
18:14
Omit a test of codepoint 0x202F (non-break narrow space) from the fts3 ICU tests. Different versions of ICU apparently handle this obscure codepoint slightly differently. (check-in: 69ae6889 user: dan tags: trunk)
2017-05-29
22:44
More efficient error handling and reset in the binding mechanism. (check-in: 9a3e3b34 user: drh tags: trunk)
19:23
Instead of a root page number, log the object (table or index) name if a page level locking conflict is detected. (check-in: 9ad846e5 user: dan tags: begin-concurrent)
17:59
Omit unnecessary fstat() calls for determining the database file size, resulting in smaller and faster code. (check-in: dd61c736 user: drh tags: trunk)
17:43
Fix an issue with OPT_FEATURE_FLAGS in configure.ac. (check-in: 43ce3bd3 user: drh tags: trunk)
16:45
Avoid unnecessary fstat() calls to determine the database size when transitioning into a read transaction on a rollback-mode database. (Closed-Leaf check-in: 6c3476b5 user: drh tags: io-opt)
14:57
Avoid unnecessary calls to fstat() to determine the database file size. (check-in: c733a1de user: drh tags: io-opt)
14:30
Fix a typo in a comment. No code changes. (check-in: cb29b838 user: drh tags: trunk)
14:27
Enhance the log messages emitted when a page conflict is detected. (check-in: 92618492 user: dan tags: begin-concurrent)
14:26
Optimizations to the Walker object and its methods to make the code a little smaller and to help it run a little faster. (check-in: 6854a34e user: drh tags: trunk)
13:09
Correctly initialize the iSelectId of FROM clause terms that are a self join of a reused materialized subquery. Without this, the EXPLAIN QUERY PLAN output for the query will identify the subquery using the uninitialized (and arbitrary) iSelectId. (check-in: 43c9ae37 user: drh tags: trunk)
03:48
Improve shell help text for the '.open' command. (check-in: 7cc940a9 user: mistachkin tags: trunk)
2017-05-27
22:42
Smaller and faster vdbeSorterCompareText(). (check-in: 542dc4c5 user: drh tags: trunk)
18:05
Add debugging functions btreePageOriginFile() and btreePageOriginOffset(). (Leaf check-in: 214d238a user: dan tags: btree-debug)
2017-05-26
18:18
Adjust the bitvec related sqlite3_log messages added by [9527089b]. (check-in: a7e0e7a4 user: dan tags: begin-concurrent)
16:51
Add extra test cases for deferred page allocation. (check-in: 9df01957 user: dan tags: begin-concurrent)
16:15
Fix a problem with deferred page allocation in transactions that revert page allocations by savepoint rollbacks. (check-in: a4a3bbe6 user: dan tags: begin-concurrent)
2017-05-25
21:35
Small performance increase and size decrease in the btreeInitPage() routine. (check-in: 6f415833 user: drh tags: trunk)
21:02
Fix a problem with the deferred page allocation on this branch that could occur when the database file is just slightly smaller than the PENDING_BYTE page offset. (check-in: 47a7dd92 user: dan tags: begin-concurrent)
17:36
Merge all fixes from the 3.19.2 release. (check-in: 12964240 user: drh tags: apple-osx)
17:27
Merge the LEFT JOIN query flattener fixes from 3.19.2. (check-in: 6513e4a1 user: drh tags: trunk)
16:50
Version 3.19.2 (check-in: edb4e819 user: drh tags: release, branch-3.19, version-3.19.2)
11:39
The SQLITE_EXTRA_IFNULLROW compile-time option causes OP_IfNullRow opcodes to be issued for references to the right-hand side table of *any* flattened join, not just LEFT JOINs. This puts extra stress on the OP_IfNUllRow opcodes for testing purposes. (check-in: 1a074c8a user: drh tags: branch-3.19)
00:28
The TK_IF_NULL_ROW expression node must be treated as a variable that references the table Expr.iTable. Proposed fix for ticket [7fde638e94287d2c]. (check-in: b30a364a user: drh tags: branch-3.19)
00:12
Increase the version number to 3.19.2 since ticket [7fde638e94287d2] is going to necessitate another patch release. (check-in: c315727a user: drh tags: branch-3.19)
00:08
The TK_IF_NULL_ROW expression node must be treated as a variable that references the table Expr.iTable. Proposed fix for ticket [7fde638e94287d2c]. (check-in: 77fc2301 user: drh tags: trunk)
2017-05-24
15:32
Fix harmless compiler warnings in FTS5. (check-in: 57a60e95 user: mistachkin tags: trunk)
13:08
Version 3.19.1 (check-in: f6d7b988 user: drh tags: release, branch-3.19, version-3.19.1)
04:32
Fix a problem in STAT4 equality estimation for multi-column indexes introduced by check-in [3e0590dee0e68cc1599]. (check-in: 19dad0a7 user: drh tags: branch-3.8.9)
04:18
Fix a problem in STAT4 equality estimation for multi-column indexes introduced by check-in [3e0590dee0e68cc1599]. (check-in: cfb0d9e0 user: drh tags: trunk)
2017-05-23
20:00
Remove the msvc.h header file from the autoconf tarball. (check-in: 84996aef user: drh tags: trunk)
19:35
Do not use strcpy() in the (obsolete) amatch extension. In releasetest.tcl, run Apple tests using -Os instead of -O1 (check-in: 4440e420 user: drh tags: trunk)
19:23
Add experimental new API sqlite3_wal_info(). (check-in: 5b9d498f user: dan tags: begin-concurrent)
15:33
Disable the LEFT JOIN flattening optimization for aggregate queries, as it does not currently work. Further fix for ticket [cad1ab4cb7b0fc344]. (check-in: 05ada741 user: drh tags: branch-3.19)
15:21
Disable the LEFT JOIN flattening optimization for aggregate queries, as it does not currently work. Further fix for ticket [cad1ab4cb7b0fc344]. (check-in: 44b21e35 user: drh tags: trunk)
12:44
Ensure that the expression rewriter inside the query flattener decends into the substructure of the TK_IF_NULL_ROW operator. This is a continuation of the fix for ticket [cad1ab4cb7b0fc344]. (check-in: 28d2902d user: drh tags: branch-3.19)
12:36
Ensure that the expression rewriter inside the query flattener decends into the substructure of the TK_IF_NULL_ROW operator. This is a continuation of the fix for ticket [cad1ab4cb7b0fc344]. (check-in: 941d8142 user: drh tags: trunk)
01:35
Change the version number to 3.19.1. (check-in: 16656b8f user: drh tags: branch-3.19)
01:30
Remove a surplus semicolon, which was harmless on gcc and clang but caused compile-time errors on msvc. This only comes up using the encryption extension. (check-in: 4510d55d user: drh tags: branch-3.19)
01:29
When flattening a query, make sure iTable attribute of TK_IF_NULL_ROW operators (that result from a prior flattening of a LEFT JOIN) are updated correctly. Fix for ticket [cad1ab4cb7b0fc344]. (check-in: 919d36e6 user: drh tags: branch-3.19)
01:21
When flattening a query, make sure iTable attribute of TK_IF_NULL_ROW operators (that result from a prior flattening of a LEFT JOIN) are updated correctly. Fix for ticket [cad1ab4cb7b0fc344]. (check-in: 92c17850 user: drh tags: trunk)
00:32
Remove a surplus semicolon, which was harmless on gcc and clang but caused compile-time errors on msvc. This only comes up using the encryption extension. (check-in: 987a2b55 user: drh tags: trunk)
2017-05-22
19:24
Pull in all changes from the 3.19.0 release. (check-in: bbd2d0e1 user: drh tags: apple-osx)
18:09
Fix incompatibilities between the "sqldiff --changeset" command and the sessions module. Specifically, allow sessions to process changesets containing tables with zero operations on them and have sqldiff output the expected output for tables with multi-column primary keys. (check-in: 0bb23c48 user: dan tags: trunk)
18:00
Add the ".cd" command to the command-line shell. (check-in: 5fe28e15 user: drh tags: trunk)
17:39
Increase the version number to 3.20 for the next release cycle. (check-in: ab471f61 user: drh tags: trunk)
14:04
Merge the last-minute 3.19.0 changes into trunk. (check-in: e6ba2a93 user: drh tags: trunk)
13:58
Version 3.19.0 (check-in: 28a94eb2 user: drh tags: release, branch-3.19, version-3.19.0)
13:06
Include the "msvc.h" header file in the amalgamation tarball. (check-in: 3dd6fe53 user: drh tags: branch-3.19)
08:04
Fix a case where NULL was being passed to memcmp() following an OOM. This is probably not a real problem, as the number-of-bytes parameter was passed 0 in this case, but it was causing a santizer complaint. (check-in: 3ea2bad2 user: dan tags: trunk)
08:01
Add code to this branch to emit a log message after each cumulative second that the WRITER lock has been held. (check-in: a726d981 user: dan tags: server-edition)
00:45
When planning a query using sorting, resolve ties in the solver by selecting loop plans with the smaller unsorted cost. (check-in: f261678c user: drh tags: trunk)
00:27
When planning a query using sorting, resolve ties in the solver by selecting loop plans with the smaller unsorted cost. (check-in: 962531e7 user: drh tags: branch-3.8.9)
2017-05-19
23:04
Prevent a possible NULL pointer dereference in the OP_Found opcode that can follow an OOM error. Problem found by OSS-Fuzz. (check-in: 50ad60de user: drh tags: branch-3.19)
22:51
Prevent a possible NULL pointer dereference in the OP_Found opcode that can follow an OOM error. Problem found by OSS-Fuzz. (check-in: c2de178f user: drh tags: trunk)
20:55
Improved comments on one routine in the query planner. Improved diagnostic output for ".wheretrace". No production code changes. (check-in: 946b87a5 user: drh tags: trunk)
20:47
Fix a documentation typo. No changes to code. (check-in: 68942a4f user: drh tags: trunk)
20:46
Branch for the 3.19 release. (check-in: f2b829ec user: drh tags: branch-3.19)
19:57
Invoke sqlite3_log() in response to irregularities surrounding the Pager.pAllRead bit-vector. (check-in: 9527089b user: dan tags: begin-concurrent)
12:32
Fix some problems in fts5 code detected by -fsanitize=undefined. (check-in: 35f72104 user: dan tags: trunk)
2017-05-18
20:47
Fix a problem on this branch causing some page-level read-locks to be omitted. (check-in: 0eed1521 user: dan tags: begin-concurrent)
18:17
Fix a documentation typo. No changes to code. (Closed-Leaf check-in: cfa4aa20 user: drh tags: doc-type)
2017-05-16
09:49
Update the tool/warnings.sh script to automatically use the right options on OpenBSD. (check-in: 7940bff3 user: dan tags: trunk)
2017-05-15
19:32
Avoid writer starvation by adding a RESERVED state to page locks. (check-in: 9b7f8024 user: dan tags: server-edition)
17:56
Merge changes from trunk. (check-in: 6e0f64ab user: drh tags: schemalint)
17:34
Merge the latest changes from trunk. (check-in: 14ea8400 user: drh tags: begin-concurrent)
15:12
Fix the build so that it works again with SQLITE_OMIT_SUBQUERY. (check-in: bb0d9281 user: drh tags: trunk)
15:05
Improvements to the omittest.tcl script. (check-in: 0f05d7e9 user: drh tags: trunk)
2017-05-13
19:07
Avoid running recovery while there is another read/write client. (check-in: a38858a2 user: dan tags: server-edition)
2017-05-12
18:52
Require exclusive access to the db to wrap the wal file. Have "PRAGMA wal_checkpoint = restart" block for this. (check-in: cbf44ed9 user: dan tags: server-edition)
14:05
Make sure the 'sqlite3changegroup_*' functions are included in the SQLITE_APICALL handling. (check-in: a123cb93 user: mistachkin tags: trunk)
2017-05-11
19:09
Add another test case for the new authorizer functionality. (check-in: 339df63f user: dan tags: trunk)
18:49
Merge recent enhancements from trunk. (check-in: b55c0f14 user: drh tags: apple-osx)
18:42
Enhance the json_extract() function to reuse parses of the same JSON when the function appears multiple times in the same query. (check-in: 3ba9e7ab user: drh tags: trunk)
18:14
Do not save the state of an fts5 merge operation mid-way through an input term, even if no previous entry for that term has caused any output. Doing so may corrupt the FTS index. (check-in: 9a2de4f0 user: dan tags: trunk)
16:49
Cache the JSON parse used by json_extract(). (Closed-Leaf check-in: 44ca6c2c user: drh tags: auxdata-cache)
15:20
Negative N values in sqlite3_get_auxdata() and sqlite3_set_auxdata() can be used to access an auxiliary data cache over all functions in a single prepared statement. (check-in: ff530675 user: drh tags: auxdata-cache)
13:43
New requirements marks and documentation for the authorizer. (check-in: 3980ea09 user: drh tags: trunk)
12:27
Improvements to the sqlite3_set_authorizer() documentation. (check-in: 47629b19 user: drh tags: trunk)
12:05
Change the SQLITE_READ authorization call for unreferenced tables to use an empty string for the column name, as this is less likely to impact legacy authorization callbacks that assume column names are always non-NULL. (check-in: 4139953a user: drh tags: trunk)
2017-05-10
19:42
Rename fields of the internal AuxData object to make them unique and easier to search for. (check-in: 2be9850c user: drh tags: trunk)
16:33
Improved documentation for the SQLITE_READ authorizer callback. No code changes. (check-in: 92c5ea70 user: drh tags: trunk)
16:18
Fix a problem causing a lock to be held past the end of a transaction. Use a blocking lock to take the read-lock on page 1 taken by all transactions. (check-in: 2584df3d user: dan tags: server-edition)
16:12
Invoke the SQLITE_READ authorizer callback with a NULL column name for any table referenced by a query but from when no columns are extracted. (check-in: 92ab1f72 user: drh tags: trunk)
13:46
Use a blocking call to obtain the wal-mode WRITER lock in some cases. (check-in: 4464ca1d user: dan tags: server-edition)
13:36
Fix a couple of test scripts so that they work with -DSQLITE_DISABLE_FTS4_DEFERRED builds. (check-in: 30018d31 user: dan tags: trunk)
12:58
Avoid unnecessary codec operations on in-memory subjournals. (check-in: 199b2a84 user: drh tags: trunk)
12:49
Do not invoke codec macros for in-memory subjournals. (Closed-Leaf check-in: d2bb0066 user: drh tags: codecless-inmemory-subjournal)
2017-05-09
16:32
Fix a problem with wrapping the log file in server mode. (check-in: 270b7d1e user: dan tags: server-edition)
2017-05-08
20:15
Add some support for wal mode to the hack on this branch. (check-in: b733afc1 user: dan tags: server-edition)
18:29
Do not invoke codec macros when reading or writing an in-memory sub-journal. (check-in: 2c145ee6 user: dan tags: codecless-inmemory-subjournal)
2017-05-06
18:09
Fix an obscure assertion fault that can follow an OOM. The problem was introduced by check-in [a1cf44763277b6c7]. (check-in: 04e7e565 user: drh tags: trunk)
17:12
Fix requirements marks and harmless compiler warnings. (check-in: 198ff4c0 user: drh tags: trunk)
16:04
Update this branch with latest trunk changes. (check-in: ed6bad67 user: dan tags: server-edition)
2017-05-04
14:02
Remove the tool/schemalint.tcl script. And related Makefile entries. It is superseded by sqlite3_expert. (check-in: 269bf52e user: dan tags: schemalint)
11:13
Fix a collision of the "B0" identifier name between the termios.h header file and the SHA3 implementation in the shell. (check-in: b9a58dac user: drh tags: trunk)
2017-05-03
19:36
Remove the unused "sqlite3_stack_used" TCL command from the test harness. (check-in: e24b7382 user: drh tags: trunk)
17:44
Fix the sqlite3GetInt32() function so that it correctly returns 0 on a zero-length input string. (check-in: 05eba9e3 user: drh tags: trunk)
15:54
Always enable URI filenames when compiling with SQLITE_HAS_CODEC. Also allow plaintext keys using the key= query parameter. (check-in: 31a51b4d user: drh tags: trunk)
13:05
Fix a harmless compiler warning on Windows. (check-in: 593e5dd0 user: drh tags: schemalint)
12:50
Get sqlite3_expert building on Windows. (check-in: d8254047 user: drh tags: schemalint)
12:15
In sqlite3expert.c, do not copy the schema for virtual tables. Updates to makefiles to make building easier. (check-in: da15752d user: drh tags: schemalint)
2017-05-02
20:42
In the sqlite3_expert command-line tool, allow two-dash options. Do not accept the database name if it begins with "-". (check-in: af7d1596 user: drh tags: schemalint)
19:45
Merge the latest enhancements from trunk. (check-in: a7dcf6a7 user: drh tags: schemalint)
18:00
Fix the fts3EvalAverageDocsize() routine so that it returns errors from sqlite3_reset() rather than always returning SQLITE_OK. (check-in: 430f539c user: drh tags: trunk)
17:54
Reuse the same materialization of a view when that view appears in a query more than once, such as in a self-join. (check-in: 9e35c89d user: drh tags: trunk)
16:55
Move terms of the HAVING clause that reference only columns in the GROUP BY clause over to the WHERE clause, resulting in a faster query plan. (check-in: 47cbb471 user: drh tags: trunk)
16:46
Additional comments on the sqlite3ExprIsConstantOrGroupBy() routine. No code changes. (Closed-Leaf check-in: 8424492e user: drh tags: having-where-optimization)
01:30
Fix typo in comment. No changes to code. (check-in: 6674814a user: mistachkin tags: trunk)
2017-05-01
20:07
Update this branch with latest trunk changes. (check-in: 83b1e163 user: dan tags: server-edition)
19:53
Remove an unnecessary branch. (check-in: a3317959 user: drh tags: having-where-optimization)
18:24
Enhance "PRAGMA integrity_check" to detect duplicate rowids within a leaf page. (check-in: adcad37b user: dan tags: trunk)
18:12
Clear the BTCF_ValidNKey flag set if a cursor is moved by sqlite3BtreeInsert(). Fix for [f68dc596c4]. (check-in: a6727eef user: dan tags: trunk)
17:04
Futher bug fixes to the function that determines when a materialized view can be reused. (Closed-Leaf check-in: c64fe3a1 user: drh tags: materialized-view-reuse)
16:37
Minor bug fixes and performance enhancement. (check-in: b2aae559 user: drh tags: materialized-view-reuse)
15:15
Initial implementation of an optimization that attempts to reuse the same materialization of a view on a self-join of the view. (check-in: 478c34b9 user: drh tags: materialized-view-reuse)
14:25
Update this branch with latest trunk changes. (check-in: 11f4761c user: dan tags: schemalint)
14:09
Add extra tests for the optimization on this branch. (check-in: 4921cd95 user: dan tags: having-where-optimization)
2017-04-29
20:53
Automatically transfer terms from the HAVING clause to the WHERE clause of an aggregate query in cases where the result of evaluating the term depends only one one or more of the GROUP BY expressions (and on no other inputs). (check-in: 5375a3ce user: dan tags: having-where-optimization)
19:29
Add a single testcase() macro to the subquery processing logic. (check-in: 4e1df76e user: drh tags: trunk)
18:02
Improvements to opcode documentation in the bytecode engine. No changes to code. (check-in: e54c9f8d user: drh tags: trunk)
15:48
Avoid reading the file-size before page 1 is read-locked. (check-in: f6b025bf user: dan tags: server-edition)
15:27
Evaluate WHERE clause terms that reference only the index before evaluating terms that require the table, and thereby avoid seeking the table row if index terms are false. This is called the "push-down" optimization in the MySQL world, we are told. Do not confuse with WHERE-clause push-down. (check-in: d7bb79ed user: drh tags: trunk)
14:56
Minor size and performance improvements to the push-down optimization. (Closed-Leaf check-in: 91dfb61a user: drh tags: pushdown-optimization)
2017-04-28
19:59
Within a loop that uses a non-covering index test, test non-indexed terms that can be tested without seeking the main table cursor before those that cannot. (check-in: afe68f0a user: dan tags: pushdown-optimization)
17:32
Fix various bugs revealed by running performance tests. (check-in: a40b42c4 user: dan tags: server-edition)
14:09
Add a missing releasePage() call to the server-mode free-list management code. (check-in: a5a08548 user: dan tags: server-edition)
10:20
Use a different free-list format for server-mode databases in order to reduce contention. (check-in: 778e8a10 user: dan tags: server-edition)
2017-04-27
14:12
Do not write master journal filenames into server-mode journal files. Use SQLITE_MUTEX_STATIC_APP1 to protect critical sections in server.c. (check-in: 3144ae40 user: dan tags: server-edition)
13:05
If possible, delete the journal file when a database connection is closed. (check-in: d5b5326d user: dan tags: server-edition)
2017-04-26
20:45
Experimental implementation of pessimistic page-level locking based on rollback mode. (check-in: 64ecf7c7 user: dan tags: server-edition)
17:21
Add new test file cachespill.test. (check-in: 2d0b6431 user: dan tags: trunk)
14:34
Replace <fts5.h> with "fts5.h" in test file fts5_test_tok.c. (check-in: 63d9ca5c user: dan tags: trunk)
04:32
Fix a subtle bug in Lemon discovered and reported on the mailing list by Kelvin Sherlock, who also suggested the correct fix. (check-in: 304689f8 user: drh tags: trunk)
2017-04-24
16:14
Bring in all the latest enhancements from trunk. (check-in: 031feebc user: drh tags: apple-osx)
14:16
When building an ephemeral table of integers, do not assume that the table does not already contain N if the insert cursor points to N-1. Fix for ticket [61fe9745]. (check-in: 1c1b0862 user: dan tags: trunk)
2017-04-22
00:20
Fix an assertion fault found by OSSFuzz. (check-in: e39769f4 user: drh tags: trunk)
2017-04-21
19:58
Another minor formatting fix. (check-in: 9fa2ce3c user: dan tags: schemalint)
19:56
Fix formatting errors in the previous commit. (check-in: da9a2e5a user: dan tags: schemalint)
19:53
Update the README.md file in the ext/expert/ directory. (check-in: 3b2ff4e0 user: dan tags: schemalint)
17:03
Remove a NEVER macro for a condition that may be true as of [a47efb7c]. Problem reported by OSSFuzz. (check-in: bdc50d8d user: dan tags: trunk)
16:04
Fix an FTS5 bug that could cause a prefix-query without a prefix-index on a database that contains delete-markers to return extra, non-matching, rows. (check-in: 840042cb user: dan tags: trunk)
2017-04-20
17:35
Merge latest trunk changes into this branch. (check-in: b1533bc4 user: dan tags: schemalint)
17:03
Avoid creating a temp table in the user database in the sqlite3_expert code. (check-in: 4e366996 user: dan tags: schemalint)
16:43
Speed this branch up a bit by filtering before the virtual table layer when sampling user data. (Closed-Leaf check-in: 8e57c313 user: dan tags: schemalint-failure)
16:18
Avoid adding INTEGER PRIMARY KEY columns to candidate indexes. (check-in: 4577fea5 user: dan tags: schemalint)
16:08
Avoid creating a temp table in the user database in the sqlite3_expert code. Trouble is, this makes sampling for stat1 data much slower. (check-in: c62e3582 user: dan tags: schemalint-failure)
09:54
Add an option to generate stat1 data based on a subset of the user database table contents to sqlite3_expert. (check-in: c69c3e21 user: dan tags: schemalint)
2017-04-19
13:25
Further improvements to coverage of fts3 module. (check-in: 6b21d0fd user: dan tags: trunk)
07:33
Further modifications and test cases to improve test coverage of fts3. (check-in: ea8a0d2c user: dan tags: trunk)
2017-04-18
20:10
Have sqlite3_expert_analyze() populate the sqlite_stat1 table before running queries through the planner for the second time. (check-in: a157fcfd user: dan tags: schemalint)
13:50
Use sqlite3_table_column_metadata() instead of a SELECT statement to check for the existence of a %_stat table in fts3. This leads to smaller and easier to test code. (check-in: dc2a4802 user: dan tags: trunk)
11:20
Improved optimizations of views as the right operand of a LEFT JOIN. (check-in: 41c27bc0 user: drh tags: trunk)
09:04
Fix sqlite3_expert handling of triggers on views. (check-in: ff4976da user: dan tags: schemalint)
05:49
Refactor the fts3ColumnMethod() function so that all branches can be covered. (check-in: e47fdb49 user: dan tags: trunk)
2017-04-17
23:23
Defer checking for null in the comparison operators, since that is an uncommon case. (check-in: 56845256 user: drh tags: trunk)
20:50
Do not allow a Mem object to be both NULL and some other type at the same time. (check-in: e698db19 user: drh tags: trunk)
18:42
Consolidate two branches of code in the "PRAGMA foreign_key_check" implementation. (check-in: 69f51f83 user: dan tags: trunk)
18:02
Fix a problem in "PRAGMA foreign_key_check" in handling a WITHOUT ROWID child table with an INTEGER PRIMARY KEY parent key. Also, if an FK violation is detected in a WITHOUT ROWID child table, do not try to read and return the rowid. The second column returned by "PRAGMA foreign_key_check" in this case (WITHOUT ROWID child table) is now always set to NULL. (check-in: 690870bd user: dan tags: trunk)
17:03
Add support for analyzing trigger programs to the sqlite3_expert code. (check-in: 159e8022 user: dan tags: schemalint)
16:07
Further improvements to test coverage in fts3. (check-in: 352413ee user: dan tags: trunk)
13:38
Improve coverage of code in fts3. (check-in: 1a08a836 user: dan tags: trunk)
13:18
Fix the ".column" output mode in the command-line shell so that it correctly counts and formats multi-byte UTF characters. (check-in: f508aff8 user: drh tags: trunk)
2017-04-16
22:41
In the showwal command-line tool, for unix builds, if the auxiliary argument is of the form "Ntruncate" where "N" is a frame number, then truncate the WAL file after the N-th frame. (check-in: 90015df3 user: drh tags: trunk)
22:08
Add the anycollseq.c loadable extension in etc/misc (check-in: d7b9813c user: drh tags: trunk)
2017-04-15
16:52
Fix problems with handling constraints on the rowid column in sqlite3expert.c. (check-in: 2e630879 user: dan tags: schemalint)
15:47
Merge latest trunk changes into this branch. (check-in: 2d0c458e user: dan tags: schemalint)
14:30
Add header comment for sqlite3_vtab_collation(). (check-in: d238694c user: dan tags: schemalint)
14:16
Fix memory leaks in the code on this branch. Make use of the sqlite3_index_constraint.usage field. Do not try to handle ORDER BY terms with explicit COLLATE clauses - they don't get passed to the vtab layer anyway. (check-in: 0cd75a87 user: dan tags: schemalint)
11:53
In the skip-ahead-distinct optimization, fix a bug in the logic that determines when to invoke the optimization based on sqlite_stat1 statistics. (check-in: 89f9e436 user: drh tags: trunk)
2017-04-14
22:41
Fix to the decision logic for when to use the skip-ahead-distinct optimization. (Closed-Leaf check-in: e50fd489 user: drh tags: skip-ahead-distinct)
19:46
Remove end-of-line whitespace from lemon.c. (check-in: d78355c8 user: drh tags: trunk)
19:44
Fix some left-over K&R-C constructs in lemon.c. No changes to the core. (check-in: a5379905 user: drh tags: trunk)
19:41
Modify the code in ext/expert/ to use the vtab interface instead of sqlite3_whereinfo_hook(). Remove sqlite3_whereinfo_hook(). (check-in: 3bb65850 user: dan tags: schemalint)
19:03
Add the TK_IF_NULL_ROW opcode to deal with non-NULL result columns in the result set of a view or subquery on the RHS of a LEFT JOIN that gets flattened. (Closed-Leaf check-in: 3a5860d8 user: drh tags: left-join-view)
17:30
When doing a DISTINCT query using an index, try to use the index to skip ahead to the next distinct element, rather than doing a full scan of the index. (This is the "skip-ahead-distinct" optimization.) (check-in: f489b5bb user: drh tags: trunk)
17:18
An initial attempt to optimize VIEWs that occur as the right operand of a LEFT JOIN. This particular check-in does not work correctly because it does not deal with the case of columns in the VIEW that return non-NULL even when all columns in the table of the VIEW are NULL because of the LEFT JOIN. (check-in: 1838a59c user: drh tags: left-join-view)
14:50
Make USE_FULLWARN=1 the default for MSVC and fix harmless compiler warnings. (check-in: 6bf67376 user: mistachkin tags: trunk)
14:02
Enhance the sqlite3TreeView() display for Expr objects so that it shows the iRightJoinTable value for Expr nodes that have the EP_FromJoin property. (check-in: 5159cb8f user: drh tags: trunk)
12:39
Simplify the interface to the subst() routines that are part of the query flattener by collecting common parameters into the SubstContext object and passing around a pointer to that object. (check-in: e651074b user: drh tags: trunk)
12:27
Remove an incorrect ALWAYS(). (check-in: f956f6ae user: drh tags: trunk)
00:45
Fix a couple of unreachable branches. (check-in: 1aa0ea8d user: drh tags: skip-ahead-distinct)
2017-04-13
21:29
Fix the skip-ahead-distinct optimization so that it works with indexes that have repeated columns with different collating sequences. (check-in: ce1e2b88 user: drh tags: skip-ahead-distinct)
19:48
Simplification of the skip-ahead-distinct logic. There is still an issue with handling COLLATE. (check-in: 57c5173b user: drh tags: skip-ahead-distinct)
18:33
New test cases and minor fixes for the optimization on this branch. (check-in: 70ac9ea1 user: dan tags: skip-ahead-distinct)
16:19
Update this branch with latest changes from trunk. (check-in: 5fcd840c user: dan tags: schemalint)
15:51
Reinstate the SQLITE_API qualifier on the sqlite3_delete_database() method in test_delete.c. Accidentally removed by the previous commit. (check-in: 59c70108 user: dan tags: trunk)
15:36
Update the code in test_delete.c to use the "win32" VFS if SQLITE_OS_WIN is defined. (check-in: fa9bb7b7 user: dan tags: trunk)
13:01
Only use the skip-ahead-distinct optimization if the index has been analyzed and we know that a skip-head is likely to skip over at least 11 rows. The magic number 11 was determined by experimentation. (check-in: 0cf16dec user: drh tags: skip-ahead-distinct)
09:45
Allow a user column name to be used on the LHS of a MATCH operator in FTS5. (check-in: 6f54ffd1 user: dan tags: trunk)
01:19
Forward port the skip-ahead-distinct branch which was abandoned for some reason that I do not recall. This port should have been achived by a merge of trunk into the previous head of skip-ahead-distinct, but that did not work. So I had to manually "rebase" the changes. (check-in: 132339a1 user: drh tags: skip-ahead-distinct)
00:12
Fix a regression caused by the fix for ticket [6c9b5514077fed34551f98e64c09a1] - control characters allowed in JSON. (check-in: 8e7b6118 user: drh tags: trunk)
2017-04-12
17:50
Update fts5 to support "<colset> : ( <expr> )" for column filtering, as well as "<colset> : NEAR(...)" and "<colset> : <phrase>". (check-in: c847543f user: dan tags: trunk)
17:38
Improved \n and \r escapes in the ext/misc/dbdump.c utility function. The implementation of dbdump.c now matches the implementation in the CLI. (check-in: f2643315 user: drh tags: trunk)
2017-04-11
20:48
Avoid updating unaffected indexes on a table as part of an UPDATE that requires foreign key processing in some cases. (check-in: 7aae5c0f user: dan tags: trunk)
19:58
Avoid updating unaffected indexes on a table as part of an UPDATE that requires foreign key processing in some cases. (Closed-Leaf check-in: 477bea9e user: dan tags: fkey-optimization)
19:00
Update this branch with latest trunk changes. (check-in: 0f66a093 user: dan tags: schemalint)
18:55
Limit the depth of recursion for valid JSON in the JSON1 extension in order to avoid using excess stack space in the recursive descent parser. Fix for ticket [981329adeef51011052667a9]. (check-in: 1f68c184 user: drh tags: trunk)
18:29
Fix a formatting issue in the output of the sqlite3_expert program. (check-in: cc8c3581 user: dan tags: schemalint)
18:06
Smaller and faster implementation of exprMightBeIndexed(). (check-in: 76cd611d user: drh tags: trunk)
17:43
Add header comments to the API functions in sqlite3expert.h. Include a list of all candidate indexes in the report output by the sqlite3_expert program. (check-in: 0c45c5eb user: dan tags: schemalint)
16:44
Very slight smaller and faster sqlite3SelectNew() (check-in: 4143650c user: drh tags: trunk)
12:20
Add an ALWAYS() around an unreachable condition in sqlite3VdbeMemGrow(). (check-in: 0f3eb61f user: drh tags: trunk)
11:52
Fix a segfault that could occur if an indexed expression was used in a comparison operation within the result-set of a SELECT statement. (check-in: d6bb7c42 user: dan tags: trunk)
01:30
When evaluating a query that uses an index on an expression, try to use the expression values read directly from the index rather than reevaluating the expression. (check-in: a47efb7c user: drh tags: trunk)
01:01
Improved comments. Fix a problem when an indexed expression is used in an ORDER BY clause. (Closed-Leaf check-in: c59eaf2b user: drh tags: covering-index-on-expr)
2017-04-10
23:42
Merge changes from trunk. (check-in: 8978465f user: drh tags: covering-index-on-expr)
20:51
Smaller and faster vdbeFreeOpArray() (check-in: e052436d user: drh tags: trunk)
20:27
Slightly smaller and faster sqlite3VdbeMemGrow(). (check-in: efd1702a user: drh tags: trunk)
20:00
Add ext/expert/README.md. (check-in: 9318f1b9 user: dan tags: schemalint)
16:13
Changes to allow the code in sqlite3expert.c to be tested directly (via the API in sqlite3expert.h) instead of by invoking the sqlite3_expert application. Fix memory leaks and other problems. (check-in: 5dd98317 user: dan tags: schemalint)
12:31
Add a new JSON test case to verify that all control characters are escaped in the json_quote() function. (check-in: 6ee12221 user: drh tags: trunk)
12:25
Change the JSON extension so that it disallows control characters inside of strings. Fix for ticket [6c9b5514077fed34551f98e64c09a10dc2fc8e16]. (check-in: 475d8f82 user: drh tags: trunk)
2017-04-09
19:23
Do not expose the name of the internal Mem object in the public interface defined by sqlite3.h. (check-in: 19dd753f user: drh tags: trunk)
08:38
Fix the -file option on the sqlite3_expert program. (check-in: 0857c48e user: dan tags: schemalint)
2017-04-08
19:00
Merge latest trunk with this branch. (check-in: e051e8f2 user: dan tags: schemalint)
18:56
Rename shell6.test to expert1.test. Have it invoke the sqlite3_expert binary if it is present. (check-in: be0deff9 user: dan tags: schemalint)
18:24
Merge all recent changes from trunk. (check-in: c23ef5e2 user: drh tags: apple-osx)
18:18
Disallow leading zeros on numeric constants in JSON. Fix for ticket [b93be8729a895a528e2] (check-in: 204e72f0 user: drh tags: trunk)
17:41
Use hash tables instead of in-memory database tables for a few purposes in sqlite3expert.c. (check-in: bf10e68d user: dan tags: schemalint)
14:11
Expand on the comment above OP_Destroy to explain why it throws an error if there are any active reader VMs. (check-in: b9a8c2b9 user: dan tags: trunk)
13:52
Have the rtree module close any open blob-handle within the xSavepoint method. This prevents such an open blob handle from interfering with DROP TABLE operations. (check-in: fa4416ad user: dan tags: trunk)
13:42
Fix the quoting mechanism for ".dump" so that it is not applied for the ".mode quote" output. (check-in: 78c1e903 user: drh tags: trunk)
09:12
Have fts5 close any open blob-handle when a new savepoint is opened. This ensures that fts5 does not prevent DROP TABLE statements (which always open a savepoint) from succeeding. (check-in: a921ada8 user: dan tags: trunk)
01:09
Make sure the RTree sqlite3_blob handle is reset prior to renaming the table. (check-in: 1cdae2db user: drh tags: trunk)
00:55
Fix the ".dump" command so that it works with ".headers on". Also fix the display of ".mode insert" with ".headers on". (check-in: a6ce57ee user: drh tags: trunk)
00:25
Merge the latest trunk changes. (check-in: dd16439e user: drh tags: apple-osx)
2017-04-07
20:20
Use replace() instead of char() to quote newline and return characters in strings in the output of .dump, to avoid excess expression complexity. (check-in: 73073529 user: drh tags: trunk)
20:14
Refactor code to suggest indexes from the shell tool into an extension in ext/expert. Unfinished. (check-in: 305e19f9 user: dan tags: schemalint)
19:52
Remove an unused token type. (check-in: 13a42223 user: drh tags: covering-index-on-expr)
19:41
Proof of concept for the ability to use the expression columns in an index on expressions in place of equivalent expressions in the result set or in the WHERE clause. This check-in compiles but is mostly untested. (check-in: a52ef2ad user: drh tags: covering-index-on-expr)
11:45
Use replace() instead of char() to quote newline and return characters in strings in the output of .dump, to avoid excess expression complexity. (Closed-Leaf check-in: 4c2b5729 user: drh tags: shell-fix)
2017-04-06
18:44
Changes to allow indexes to be recommended for queries on SQL views. (check-in: 0884ff1d user: dan tags: schemalint)
14:56
Fix the ".lint fkey" shell command for cases where the child key is also an INTEGER PRIMARY KEY. (check-in: 48826b22 user: dan tags: trunk)
12:06
Fix the ".lint fkey" shell tool command so that it works for foreign keys that refer implicitly to primary key columns with non-BINARY default collation sequences. (check-in: 327eff25 user: dan tags: trunk)
2017-04-05
13:44
Remove a confusing and pointless sentence from the documentation for the sqlite3_interrupt() interface. (check-in: c5f1a2b6 user: drh tags: trunk)
12:39
Split off sqlite3DbFreeNN() from sqlite3DbFree() and use it in cases where we know that the argument to be freed is never NULL. (check-in: ad90e8bb user: drh tags: trunk)
11:57
Save a few bytes and a few CPU cycles in sqlite3ExprListDelete() routine. (check-in: 9e6c9391 user: drh tags: trunk)
11:49
Remove a conditional made unreachable by the previous ExprList enhancement. (check-in: a1cf4476 user: drh tags: trunk)
11:32
Combine the ExprList_item objects and the ExprList wrapper into a single memory allocation, for improved performance and reduced footprint. (check-in: 2b6560ad user: drh tags: trunk)
10:54
Attempt to remove bash-isms from configure.ac. Use -O0 with --enable-debug. (check-in: 71ed35cc user: drh tags: trunk)
2017-04-04
19:58
Fix a problem causing "PRAGMA integrity_check" to disable the xfer optimization for subsequent VACUUM operations on tables with one or more CHECK constraints. This could result in VACUUM producing slightly larger database files. (check-in: e5bb7db5 user: dan tags: trunk)
17:50
Add some support for OR terms to sqlite3_whereinfo_hook(). (check-in: 5cd07000 user: dan tags: schemalint)
04:23
Add the sqlite3_whereinfo_hook() API - an experimental API replacing the DBCONFIG_WHEREINFO hack on this branch. (check-in: a54aef35 user: dan tags: schemalint)
2017-04-03
14:07
Avoid an unnecessary call to sqlite3WhereGetMask() inside of whereShortCut(). (check-in: 5c11f430 user: drh tags: trunk)
13:59
Do not attempt to run sync2.test with SQLITE_DISABLE_DIRSYNC builds. (check-in: 658f08ce user: dan tags: trunk)
13:33
Force a schema load prior to "PRAGMA optimize". (check-in: 86897c24 user: drh tags: trunk)
13:17
Fix typos in the documentation for OP_Column. (check-in: 777b43e6 user: drh tags: trunk)
12:04
Slightly smaller and faster implementation for vdbeSorterCompareInt(). (check-in: 84fa069c user: drh tags: trunk)
2017-04-01
20:44
Remove an unnecessary setting of the Mem.enc field for the output of the OP_Record opcode, for a performance improvement and size reduction. (check-in: e6e36b28 user: drh tags: trunk)
20:14
Minor performance enhancements to the OP_Affinity opcode. (check-in: c45cd3b9 user: drh tags: trunk)
19:45
Remove an unnecessary clearing of the Vdbe.iCurrentTime value. (check-in: fcd2acdd user: drh tags: trunk)
11:59
Faster implementation for sqlite3VdbeIntValue() and sqlite3VdbeRealValue(). (check-in: 8698df60 user: drh tags: trunk)
11:40
Remove unused fields from the BtCursor object. (check-in: 1c0d82e0 user: drh tags: trunk)
00:20
Save a 78 bytes of code space and a million CPU cycles in speedtest1 by storing the cell index for the leaf page in the BtCursor object in its own field (BtCursor.ix), rather than as an entry in the BtCursor.aiIdx array. (check-in: 2452f061 user: drh tags: trunk)
2017-03-31
11:20
Merge latest trunk into this branch. (check-in: cb721d0b user: dan tags: schemalint)
08:00
Update shell6.test to account for the fact that tests are now run in a separate directory. (check-in: 1e3622de user: dan tags: schemalint)
2017-03-30
20:35
Merge changes from the 3.18.0 release. (check-in: 785c37d9 user: drh tags: begin-concurrent)
20:26
Merge all changes from the 3.18.0 release. (check-in: ed28f15e user: drh tags: apple-osx)
17:13
Declare the Lemon-generated parser object as itself. (Duh) (check-in: c8000e94 user: drh tags: trunk)
16:51
Increase the version number for the next development cycle. (check-in: 9e550ccc user: drh tags: trunk)
16:37
Ensure that the stack space used to hold the Lemon-generated parser object is always 8-byte aligned. (check-in: 1279de0b user: drh tags: trunk)
2017-03-29
23:22
When compiling with MSVC, disable extra SELECT/WHERE tracing for dynamically built shells. (check-in: a6891942 user: mistachkin tags: trunk)
18:03
Avoid unnecessary blob handle invalidation when changes are made to an unrelated table. (check-in: 4a01880b user: drh tags: trunk)
17:06
Slightly smaller and faster implementation of pcache1InitBulk(). (check-in: 06c2b685 user: drh tags: trunk)
16:55
Fix some tests in malloc5.test to account for the sqlite3_release_memory() change in the previous commit. (check-in: d336858d user: dan tags: trunk)
15:18
Fix the sqlite3_release_memory() interface so that it works even if SQLITE_DEFAULT_PCACHE_INITSZ is non-zero. (check-in: 5d902b7f user: drh tags: trunk)
2017-03-28
18:48
Version 3.18.0 (check-in: 424a0d38 user: drh tags: release, branch-3.18, version-3.18.0)
2017-03-25
19:16
Add the new sqlite3_set_last_insert_rowid() interface to the extension loader thunk. (check-in: 8469fc0d user: drh tags: trunk)
18:31
Do not run tests for ".dump --preserve-rowids" when testing SQLITE_OMIT_VIRTUALTABLE builds. (check-in: 55df410b user: dan tags: trunk)
18:15
Disable the new --preserve-rowids option on the CLI ".dump" command if compiled with SQLITE_OMIT_VIRTUALTABLE. (check-in: bd5bbe4e user: drh tags: trunk)
18:03
Make the default value for SQLITE_DEFAULT_SYNCHRONOUS a simple integer literal, so that it does not show up goofy in the output of "PRAGMA compile_options;". (check-in: 833ab321 user: drh tags: trunk)
12:08
Fix two harmless compiler warnings. (check-in: 32be9c3f user: drh tags: trunk)
2017-03-24
19:45
Fix a harmless compiler warning in the JSON1 extension. (check-in: c2c3dd84 user: drh tags: trunk)
18:38
Previous check-in was not correct. This is a better fix for the OP_Once problem of ticket [06796225f59c057cd120f1]. (check-in: 8194dd28 user: drh tags: trunk)
17:59
Fix the OP_Once opcode so that it works correctly for recursive triggers. Ticket [06796225f59c057cd120f1]. (check-in: 25560145 user: drh tags: trunk)
15:09
Merge all recent enhancements from trunk. (check-in: fd5676fe user: drh tags: begin-concurrent)
13:31
Add the RFC-7396 Appendix A test cases for json_patch(). (check-in: c5441d2d user: drh tags: trunk)
12:35
Fix an error in the new json_patch() routine discovered by Ralf Junker. (check-in: 9d535041 user: drh tags: trunk)
2017-03-23
23:44
Add the json_patch() SQL function to the JSON1 extension. (check-in: 47608848 user: drh tags: trunk)
20:33
Change the name of the json_merge_patch() function to just json_patch(). (Closed-Leaf check-in: 04d41004 user: drh tags: json_mergepatch)
19:51
Improvement to the amalgamation configure.ac file contributed by Bob Friesenhahn. (check-in: bf28a55d user: drh tags: trunk)
17:22
Do not run test file autoanalyze1.test if OMIT_VIRTUALTABLE is defined. (check-in: e1d06a57 user: dan tags: trunk)
17:03
Remove an invalid assert() statement failing when VACUUMing a database that contains an index on a column explicitly declared "COLLATE BINARY". (check-in: 9f2e04d3 user: dan tags: trunk)
12:56
Avoid redundant edits in the json_merge_patch() function. (check-in: 4a8e6437 user: drh tags: json_mergepatch)
00:46
Fix harmless compiler warnings in the new json_merge_patch() logic. (check-in: 5d2cf5a2 user: drh tags: json_mergepatch)
00:13
Various fixes to the json_merge_patch() function. (check-in: f49fd255 user: drh tags: json_mergepatch)
2017-03-22
21:45
Change the name of the new function to "json_merge_patch()". (check-in: 53bf70f3 user: drh tags: json_mergepatch)
21:24
Initial implementation of the json_mergepatch(A,B) SQL function. (check-in: a2674440 user: drh tags: json_mergepatch)
12:51
Fix harmless compiler warnings in the shell. (check-in: a7868297 user: drh tags: trunk)
2017-03-21
20:17
New simplified memory initialization for MacOS. (check-in: 055b36f1 user: drh tags: trunk)
18:56
Fix an incorrect assert in the ANALYZE logic for STAT4 on WITHOUT ROWID tables. (check-in: ad741976 user: drh tags: trunk)
17:19
Add short script ext/fts3/tool/fts3cov.sh. To help measure test-coverage of fts3 source code. (check-in: ee9588e8 user: dan tags: trunk)
10:45
Do not run sync2.test as part of the "inmemory_journal" permutation. (check-in: 9f680bc7 user: dan tags: trunk)
2017-03-20
22:58
Add the --native-malloc option to fuzzcheck. Fix ossfuzz.c and fuzzcheck.c so that they both deallocate the temp_store_directory before closing. (check-in: 0dd18ec8 user: drh tags: trunk)
20:42
Fix the fuzzcheck program so that it can create new databases again. (check-in: 021e8874 user: drh tags: trunk)
19:35
Avoid passing NULL as the second argument to memcpy() in fts3. (check-in: 49b93d97 user: dan tags: trunk)
19:26
Avoid a technically undefined right-shift of a signed value in rtree.c. (check-in: a144875f user: dan tags: trunk)
18:53
Fix some problems in fts3 found by address-sanitizer. (check-in: 16a8e84f user: dan tags: trunk)
16:34
Avoid the possibility of signed integer overflow with oversized precisions in %d conversions in the printf() implementation. (check-in: ef3a7c87 user: drh tags: trunk)
16:06
Do not run sync2.test as part of the "journaltest" permutation, as it uses "PRAGMA synchronous = off". (check-in: 285005a9 user: dan tags: trunk)
15:29
Ensure that a "--" prefix is added to sqlite3_trace_v2() output for nested SQL statements. (check-in: 673a7b67 user: drh tags: trunk)
15:11
Only run sync2.test on unix, as it depends on instrumentation in os_unix.c. (check-in: ecb9321e user: dan tags: trunk)
14:44
Fix the check.test script so that it works on Windows. (check-in: 8822eb5d user: drh tags: trunk)
13:03
Documentation fix: SQLITE_SOURCE_ID is a now a SHA3-256 hash. (check-in: 2aa22509 user: drh tags: trunk)
2017-03-18
13:59
Only do the specialized MacOS single-core zone_malloc initialization if compiled with the SQLITE_MIGHT_BE_SINGLE_CORE flag. This avoids a (harmless) warning about OSAtomicCompareAndSwapPtrBarrier() being deprecated. (check-in: 4e6a03d9 user: drh tags: trunk)
2017-03-17
23:08
Fix an error in the newly revised documentation for SQLITE_LIMIT_VDBE_OP. No changes to code. (check-in: f4cf8635 user: drh tags: trunk)
22:51
Set a reasonable limit on the number of opcodes in a prepared statement for ossfuzz.c. This should prevent timeouts in OSS-Fuzz when it generates totally unreasonable queries. (check-in: f74899ed user: drh tags: trunk)
22:50
Begin enforcing the SQLITE_LIMIT_VDBE_OP. The documentation warned that this day might come. (check-in: ef591461 user: drh tags: trunk)
14:59
Add the --show-errors and --show-max-delay command-line options to the ossshell test program. (check-in: 626bdca9 user: drh tags: trunk)
14:15
Fix the Makefile.in so that it builds the ossshell test program correctly. (check-in: 36f5602e user: drh tags: trunk)
13:59
Fix a buffer overread in debugging routine sqlite3VdbeMemPrettyPrint(). Problem discovered by OSS-Fuzz. (check-in: f336fba7 user: dan tags: trunk)
03:21
Fix a problem in the enhanced PRAGMA integrity_check where it verifies CHECK constraints: Do not be confused by the reuse of the Table.pCheck field by VIEWs with named columns. Problem discovered by OSS-Fuzz. (check-in: 019dd3d5 user: drh tags: trunk)
2017-03-16
18:55
If the user has not set it explicitly, set the "PRAGMA synchronous" setting to SQLITE_DEFAULT_SYNCHRONOUS when a database connection changes from wal to rollback journal mode. (check-in: 5c604479 user: dan tags: trunk)
18:54
Fix a typo causing the build to fail if SQLITE_DEFAULT_SYNCHRONOUS==SQLITE_DEFAULT_WAL_SYNCHRONOUS. (Closed-Leaf check-in: df39adea user: dan tags: default-synchronous-fix)
18:14
If the user has not set it explicitly, set the "PRAGMA synchronous" setting to SQLITE_DEFAULT_SYNCHRONOUS when a database connection changes from wal to rollback journal mode. (check-in: 78030c0f user: dan tags: default-synchronous-fix)
14:28
Simplified OOM detection in the instr() SQL function. (check-in: 6d85eb57 user: drh tags: trunk)
13:30
Fix an uninitialized variable reference in the text generator for "PRAGMA vdbe_trace=ON" output. Problem discovered by OSS-Fuzz. (check-in: e3d48716 user: drh tags: trunk)
13:14
Fix a problem in the "showdb" utility that prevents it from correctly decoding cells with no content beyond the record header. (check-in: eb7680a1 user: drh tags: trunk)
12:11
Fix a crash that could follow an OOM condition in the instr() SQL function. Problem discovered by OSS-Fuzz. (check-in: 6e59e903 user: dan tags: trunk)
2017-03-15
20:27
Updates to README files under the ext/ hierarchy. No changes to code. (check-in: 029bc5d2 user: drh tags: trunk)
19:11
Add the "Obtaining The Code" subsection in the top-level README.md file. No changes to code. (check-in: b1b1aa8b user: drh tags: trunk)
14:20
Mention the ".selftest" command in the ".help" output of the CLI. (check-in: 37f766db user: drh tags: trunk)
14:04
Make "PRAGMA temp.synchronous=N" a no-op to ensure that the TEMP schema always has synchronous=OFF. This fixes an issue discovered by OSS-Fuzz. (check-in: bcf6bb08 user: drh tags: trunk)
13:47
Improved header comment on the shathree.c extension. No changes to code. (check-in: 84f2e3d5 user: drh tags: trunk)
2017-03-14
15:27
Updates to the MSVC makefiles. (check-in: 1e4b9e7c user: mistachkin tags: trunk)
2017-03-13
22:10
Add the dbdump.c extension that implements functionality similar to the ".dump" command of the CLI, though in a separate library. (check-in: 2b9980a2 user: drh tags: trunk)
22:02
Add dbdump.exe to the MSVC makefile. (Closed-Leaf check-in: 59241a50 user: drh tags: dbdump)
21:49
Fixes to the dump logic. All appears to be working in preliminary tests. (check-in: 007b11e3 user: drh tags: dbdump)
21:26
First draft of the complete dbdump.c library. (check-in: 84ea4fcc user: drh tags: dbdump)
19:26
Infrastructure for an extension C-library to implement sqlite3_db_dump() and a corresponding "dbdump" command-line utility - both of which do the same work as the ".dump" command of the CLI. (check-in: 74c5ace4 user: drh tags: dbdump)
18:31
Merge all recent changes from trunk. (check-in: 3d04b2cd user: drh tags: apple-osx)
18:24
In the output of the ".dump" command in the CLI, quote newline and carriage-return characters using the char() function, so that they do not get eaten by end-of-line processing logic in the OS or in other command-line utilities and/or libraries. (check-in: 68f6dc7a user: drh tags: trunk)
17:37
Fix the sqlite3TreeViewSelect() routine so that it works with a null pointer to the Select object. (check-in: 9034cf7e user: drh tags: trunk)
14:30
Fix a segfault that could occur following an OOM error in the flattenSubquery() routine. (check-in: c6dda3f7 user: dan tags: trunk)
13:45
In the OSSFuzz test module, invoke the progress handler much more frequently so that timeouts are detected punctually even if the test script is running opcodes that individually take a long time (for example, an OP_Function opcode that invokes "randomblob(1.5e6)"). (check-in: f3b6959c user: drh tags: trunk)
2017-03-12
20:28
Fix a possible NULL pointer dereference in following an OOM error in sqlite3ExprIsInteger(). Problem found by OSS-Fuzz. (check-in: 5ec655e8 user: drh tags: trunk)
19:39
Remove an obsolete assert() in the IN operator code generation. (check-in: 18bf6aca user: drh tags: trunk)
2017-03-11
13:02
Make sure the translateColumnToCopy() routine in the query planner does not try to access an array that failed to be fully allocated due to a prior OOM. This fixes an issue discovered by OSSFuzz. (check-in: 3299a261 user: drh tags: trunk)
01:56
The output of the ".dump" command in the CLI quotes newline and carriage-return characters using "char(10)" and "char(13)". (Closed-Leaf check-in: 8b2954dd user: drh tags: string-quoting-dump)
00:46
Increase the number of significant digits in floating point literals on ".dump" output from the shell. (check-in: 7359fcac user: drh tags: trunk)
2017-03-10
18:36
Remove the rbu_round_trip.tcl script. It is now part of project "test-dbs". (check-in: b5bf2957 user: dan tags: trunk)
17:03
Fix an error in the SQLITE_MAX_MEMORY implementation resulting from a bad merge. Update the OSSFuzz interface so that it times out after running the byte-code engine for 10 seconds. (check-in: f8560c60 user: drh tags: trunk)
16:22
Add the -DSQLITE_MAX_MEMORY=N compile-time option. The default is no limit. (check-in: eabd4ef4 user: drh tags: trunk)
15:55
Add the SQLITE_MAX_MEMORY compile-time option that provides a hard upper bound on the amount of memory that SQLite will use, per process. (Closed-Leaf check-in: 77dfe2ab user: drh tags: max-memory-option)
14:36
Enhance the ".stats" dot-command in the CLI to use sqlite3_status64() instead of sqlite3_status(). (check-in: 118f5c05 user: drh tags: trunk)
01:05
Improvements to ".selftest --init". Tests are number in increments of 10 starting with 100. The tests are generated inside a SAVEPOINT. Errors are reported during test generation. Tests can be appended to existing tests. Add a test case to verify the schema. (check-in: b044b152 user: drh tags: trunk)
2017-03-09
22:00
Remove the test/dbselftest.c program. In its place, add the ".selftest" command to the CLI. The new CLI version is .selftest is slightly different in that it uses SHA3 hashing instead of SHA1, so the new is subtly incompatible with the old. (check-in: f4fcd46f user: drh tags: trunk)
18:13
Fix the ".dump" command to correctly extract tail data from corrupt WITHOUT ROWID tables. (check-in: 6c627e50 user: drh tags: trunk)
16:32
Add the --recovery-mode option to the CLI ".dump" command. This involves enhancing the "PRAGMA reverse_unordered_selects" command to accept a "TOGGLE" option. Recovery mode used to be always on. Now it is opt-in. Not sure this is the correct approach. Also not sure if TOGGLE is a good feature to have on boolean PRAGMA statements. (Closed-Leaf check-in: 5dc82a15 user: drh tags: dump-recovery)
13:50
Begin moving separate boolean variables in the ShellState object of the CLI into the shellFlgs bitmask. (check-in: 50eec5d9 user: drh tags: trunk)
2017-03-08
23:29
Refactor the output logic in the CLI. Not sure we want to go this way. Just saving the work for historical reference, or in case I decide to come back to it. (Leaf check-in: aacac906 user: drh tags: shell-print-refactor)
18:37
Merge recent enhancements from trunk, including the --preserve-rowids option to .dump and the .sha3sum commands of the CLI. (check-in: 9b439173 user: drh tags: apple-osx)
18:06
Make sure the database connection is open prior to running the ".sha3sum" command. (check-in: 2ea300fb user: drh tags: trunk)
17:56
In the ".sha3sum" command, if there is a LIKE pattern, show the hashes for each table separately. Without a LIKE pattern, show a single hash over the entire database. (check-in: 30f87883 user: drh tags: trunk)
16:10
Add the ".sha3sum" command to the CLI - used to compute a cryptographic hash of the content of a database file or of individual tables with in that file. (check-in: fc663799 user: drh tags: trunk)
15:03
Improved comments explaining the sha3_query() format. Fix a performance #ifdef error in the sha3 implementation. (check-in: 54ef7abd user: drh tags: trunk)
13:50
Add the shathree.c extension for implementing SHA3() and SHA3_QUERY() SQL functions. (check-in: f7ca9193 user: drh tags: trunk)
12:25
In the CLI, avoid unnecessary identifier quoting in the ".dump" output. Also add new ".dump" test cases. (check-in: de65f907 user: drh tags: trunk)
11:44
Add the --preserve-rowids option to the ".dump" command in the CLI. (check-in: c60aee24 user: drh tags: trunk)
2017-03-07
20:03
Add test script ext/rbu/rbu_round_trip.tcl. Uses "dbselftest" to test that "rbu" and "sqldiff" work together. (check-in: 961e79da user: dan tags: trunk)
14:47
Before beginning an incremental checkpoint in RBU, sync the directory containing the target database file. This ensures that the new directory entry created by renaming the *-oal file to *-wal is synced to disk. Cherrypick of [915a9a28]. (Leaf check-in: 694fe0b2 user: dan tags: version-3.17.0-rbu-fixes)
14:46
Fix another RBU case similar to the previous. This one for systems where the sector-size is larger than the page-size. Cherrypick of [4012bb3a]. (check-in: 59a11b7f user: dan tags: version-3.17.0-rbu-fixes)
14:45
When saving the state of an RBU update in the incremental-checkpoint phase, sync the database file. Otherwise, if a power failure occurs and the RBU update resumed following system recovery, the database may become corrupt. Cherrypick of [edee6a80]. (check-in: 811a5599 user: dan tags: version-3.17.0-rbu-fixes)
14:38
Performance optimization in the tokenizer/parser loop. (check-in: 2cb71583 user: drh tags: trunk)
12:18
Minor comment typo fixes. No changes to code. (check-in: 01cd9fb1 user: drh tags: trunk)
03:40
More size and speed improvements in the expression name resolver. (check-in: e0a3d39f user: drh tags: trunk)
03:25
Small size reduction and performance increase in the name resolver routine for expressions. (check-in: 1a3554e1 user: drh tags: trunk)
2017-03-06
23:51
Make the default MASK argument for "PRAGMA optimize" be 0xfffe, to allow for future expansion of up to 14 new default-on optimizations. (check-in: 73019a8b user: drh tags: trunk)
20:44
Fix a typo in a comment. No changes to code. (check-in: ec529bf1 user: drh tags: trunk)
20:00
Merge all pending 3.18 enhancements from trunk. (check-in: 1650c3f4 user: drh tags: apple-osx)
17:33
Add an initial implementation of the "PRAGMA optimize" command. (check-in: 137aeb2b user: drh tags: trunk)
11:39
Merge updates from trunk. (Closed-Leaf check-in: 5f7fc79a user: drh tags: auto-analyze)
2017-03-03
21:51
If a reprepare is needed after binding to a variable with a number larger than 32, set only the high-order bit of the Vdbe.expmask rather than setting all bits. This could potentially result in fewer false-positive reprepares. (check-in: 45797fee user: drh tags: trunk)
21:36
Remove an redundant function call from the date/time function implementation. (check-in: 4a04c48a user: drh tags: trunk)
20:43
Fix another corner-case for the 'start of ...' modifier in the date/time functions. Related to ticket [6097cb92745327a1]. (check-in: 8831f439 user: drh tags: trunk)
20:02
Fix a case introduced by [4cd2a967] where a corrupt database could cause a buffer overwrite. (check-in: 5d0455fe user: dan tags: trunk)
16:51
Before beginning an incremental checkpoint in RBU, sync the directory containing the target database file. This ensures that the new directory entry created by renaming the *-oal file to *-wal is synced to disk. (check-in: 915a9a28 user: dan tags: trunk)
2017-03-02
23:40
Fix a bug in the 'start of ...' date/time modifiers when they follow a julian day number. Fix for ticket [6097cb92745327a1]. (check-in: 081dbcfb user: drh tags: trunk)
16:56
Fix another RBU case similar to the previous. This one for systems where the sector-size is larger than the page-size. (check-in: 4012bb3a user: dan tags: trunk)
14:51
When saving the state of an RBU update in the incremental-checkpoint phase, sync the database file. Otherwise, if a power failure occurs and the RBU update resumed following system recovery, the database may become corrupt. (check-in: edee6a80 user: dan tags: trunk)
14:17
Add an optional bitmask of allowed optimizations on the "PRAGMA optimize" command. The 0x01 bit is Debug Mode. (check-in: a35388ee user: drh tags: auto-analyze)
13:22
Merge recent trunk enhancements. (check-in: c60cdb47 user: drh tags: auto-analyze)
13:13
Make sure the Vdbe.expmask value is set correctly in sqlite3VdbeSwap(). This fixes a problem introduced by [a8fd7052]. (check-in: 29f54b89 user: drh tags: trunk)
2017-03-01
11:30
Fix a use-after-free problem in the shell tool code that could occur if an SQL statement were executed after an ".open" command with invalid options. (check-in: ac760db0 user: dan tags: trunk)
2017-02-27
17:16
Make PATH handling more robust in the batch tools for MSVC. (check-in: 23a8917e user: mistachkin tags: trunk)
17:06
Improve performance of fts5 writes by writing the "averages" record once at the end of each transaction instead of every time the table is updated. (check-in: 2b210d69 user: dan tags: trunk)
16:15
Add an sqlite3_set_last_insert_rowid() method. Use it to work around fts4 and fts5 modifying the last-insert-rowid unintuitively from within commit processing. (check-in: 952a3906 user: dan tags: trunk)
14:52
Add an sqlite3_set_last_insert_rowid() method. Use it to work around fts4 and fts5 modifying the last-insert-rowid unintuitively from within commit processing. (Closed-Leaf check-in: fe41bb56 user: dan tags: set-last-insert-rowid)
12:23
Remove references to special handling in virtual table methods from the documentation for sqlite3_last_insert_rowid(). (check-in: 660f9569 user: dan tags: trunk)
2017-02-25
20:57
Add an 'extern "C"' block to header file sqlite3userauth.h. (check-in: ffd61fb4 user: dan tags: trunk)
17:47
Optimize defragmentPage() in the case where the page contains either one or two free-blocks and a small number of fragmented bytes. (check-in: 4cd2a967 user: dan tags: trunk)
16:24
Tweak the code on this branch to detect b-tree page corruption in the same cases as the trunk. (Closed-Leaf check-in: f9863b39 user: dan tags: defragmentpage-opt)
2017-02-24
19:58
Optimize defragmentPage() in the case where the page contains either one or two free-blocks and a small number of fragmented bytes. (check-in: 202b1c02 user: dan tags: defragmentpage-opt)
2017-02-23
16:30
Save a few bytes and a few cycles by setting Vdbe.expmask to zero for statements prepared using legacy interface sqlite3_prepare(). (check-in: a8fd7052 user: dan tags: trunk)
02:15
Add two NEVER() operators in the sqlite3BtreeRowCountEst() routine. (check-in: 7a959f6d user: drh tags: auto-analyze)
00:58
Do a single OP_Expire at the very end of "PRAGMA optimize", and omit the OP_Expire on ANALYZE commands invoked by the pragma. (check-in: 188300a3 user: drh tags: auto-analyze)
2017-02-22
20:24
Change the name of the analyze_as_needed pragma to "optimize". Enhance the comment (which will become documentation, assuming these changes land on trunk) to explain that the optimize pragma is likely to be enhanced in various ways in future releases and that applications should not depend upon the current behavior. (check-in: 9fced545 user: drh tags: auto-analyze)
19:49
Merge integrity_check and other improvements from trunk. (check-in: fe073905 user: drh tags: auto-analyze)
19:41
Move a branch condition in analyze.c inside an #ifdef SQLITE_ENABLE_STAT4 block. (check-in: d6afd98d user: dan tags: trunk)
19:27
Improve the performance of ANALYZE when SQLITE_ENABLE_STAT4 is defined. (check-in: 737a8244 user: dan tags: trunk)
18:53
Improvements to PRAGMA integrity_check. Verify CHECK constraints. Verify NOT NULL constraints even on table that lack indexes. Verify CHECK and NOT NULL constraints with PRAGMA quick_check. (check-in: aa02bd3c user: drh tags: trunk)
18:04
Cleanup and simplification of the output row count limit control of PRAGMA integrity_check. (Closed-Leaf check-in: 5af7d72e user: drh tags: integrity-check-improvements)
15:11
Fix integrity_check so that it verifies NOT NULL constraints even for tables that have no indexes. Enhance quick_check so that it verifies NOT NULL and CHECK constraints. (check-in: 5264844b user: drh tags: integrity-check-improvements)
14:15
Enhance "PRAGMA integrity_check" so that it verifies CHECK constraints. (check-in: 549bae08 user: drh tags: integrity-check-improvements)
2017-02-21
21:24
In sqlite3VdbeHalt(), return as soon as possible if Vdbe.magic!=VDBE_MAGIC_RUN. This makes sqlite3_reset() slightly faster in some cases. (check-in: 80adc0cb user: dan tags: trunk)
17:52
Fix an FTS5 problem that could cause a crash when certain queries were interrupted using sqlite3_interrupt(). (check-in: e400909f user: dan tags: trunk)
15:27
Very small enhancement to dispatch speed for SQL functions. (check-in: 3c3228ed user: drh tags: trunk)
14:04
The VDBE cycle counts for the sqlite3_progress_handler() callback are now cumulative. Leftovers from the previous statement are applied to the next statement. (Leaf check-in: 7a62fc6a user: drh tags: cumulative-progress-count)
13:29
Proof of concept for a "PRAGMA vdbe_cycle_limit=N" command. When N>0, invoke sqlite3_interrupt() whenever any byte code program uses more than N virtual machine cycles. (Leaf check-in: 9626b41e user: drh tags: vdbe_cycle_limit)
2017-02-20
23:32
Correct a harmless typo in the previous check-in. (check-in: 1589db01 user: mistachkin tags: trunk)
19:13
Avoid unsigned integer overflows for SQLITE_WIN32_HEAP_INIT_SIZE when the Win32 heap subsystem is used with very large values of SQLITE_DEFAULT_CACHE_SIZE and/or SQLITE_DEFAULT_PAGE_SIZE. (check-in: 96b6a98e user: mistachkin tags: trunk)
14:30
Small grammar simplification. (check-in: 0d8a868a user: drh tags: trunk)
13:11
Merge fixes from trunk. (check-in: ff213f2e user: drh tags: auto-analyze)
2017-02-18
22:52
Updated comments. No code changes. (check-in: e842ad39 user: drh tags: auto-analyze)
20:05
Add an optimization to OP_Column to speed up sequential OP_Column instructions that read earlier fields from the same cursor. Attempt to reorder OP_Column opcodes so as to take advantage of this. (Leaf check-in: c1adf959 user: dan tags: sort-column-opcodes)
15:58
Add the OP_SqlExec opcode and use it to implement "PRAGMA analyze_as_needed", invoking ANALYZE subcommands as necessary. This simplifies the implementation. (check-in: d386015f user: drh tags: auto-analyze)
13:47
Add the SQLITE_BUG_COMPATIBLE_20160819 compile-time option to omit the error message when an unrecognized argument is provided to the VACUUM command. (check-in: 49181427 user: drh tags: trunk)
02:42
Fix errors in the table resize detection. (check-in: 4229caec user: drh tags: auto-analyze)
02:19
In the analyze_as_needed pragma, avoid running unnecessary OP_LoadAnalysis and OP_Expire opcodes. Make the analyze_as_needed pragma responsive to the schema name. (check-in: 882599a4 user: drh tags: auto-analyze)
2017-02-17
23:52
Fix the #endif location for an #ifndef SQLITE_UNTESTABLE macro in the command-line shell. (check-in: 8cc9d74c user: drh tags: trunk)
21:23
Increase the estimated cost of sorting when sorting wide results sets, to account for the extra storage space and I/O required for the external sort. (Leaf check-in: 38298ef9 user: drh tags: apple-increased-sorting-cost)
19:24
The analyze_as_needed pragma now responds to table size growth and will automatically rerun the analysis after each 10x size increase. (check-in: bfbdd074 user: drh tags: auto-analyze)
16:26
Add the "PRAGMA analyze_as_needed" command. (check-in: e93db237 user: drh tags: auto-analyze)
15:26
Set the TF_StatsUsed flag on tables when the query planner outcome is affected by the sqlite_stat1 data. Also, change the column names of the "PRAGMA stats" command so that they are not keywords. (check-in: fb2b8ae8 user: drh tags: auto-analyze)
13:38
Enhance the Index and Table objects so that they remember if their stats come from the sqlite_stat1 table. Make the "PRAGMA stats" an SQLITE_DEBUG only pragma. Add the flags column to "PRAGMA stats". These are all preliminary steps toward a "PRAGMA analyze_ifneeded;" feature. (check-in: 85026c8e user: drh tags: auto-analyze)
02:07
Merge fixes from trunk. (Leaf check-in: 662e8ccf user: drh tags: increased-sorting-cost)
02:04
Fix a test case that was made to fail by the LIKE optimization enhancement in check-in [158290c0ab] but which went unnoticed because test builds were running with ICU enabled and ICU disables the LIKE optimization. (check-in: 218b2bbb user: drh tags: trunk)
01:43
Enable the ".wheretrace" and ".selecttrace" extensions in the command-line shell when compiled on Windows using DEBUG=3 or higher. Fix a harmless warning in the shell that comes up when compiled this way. (check-in: 8a03be1d user: drh tags: trunk)
2017-02-16
21:29
Increase the estimated cost of sorting when sorting wide results sets, to account for the extra storage space and I/O required for the external sort. (check-in: aa0703e5 user: drh tags: increased-sorting-cost)
20:52
Change the name of WhereInfo.pDistinctSet to pResultSet, since it is now used for more than just DISTINCT processing. (check-in: 9fc5cd50 user: drh tags: trunk)
17:18
Change two MallocZero() calls into MallocRaw() to avoid unnecessary memset(). (check-in: ff5e733c user: drh tags: trunk)
16:26
Fix a comment on a field of the ExprList object. No changes to code. (check-in: bb8e2642 user: drh tags: trunk)
15:57
Increase Table.tabFlags from 8 to 32 bits. (check-in: 7e14044c user: drh tags: trunk)
15:06
Remove two redundant initializations from the virtual table logic. (check-in: 6bd82b95 user: drh tags: trunk)
14:48
Always use the IsVirtual() macro to determine if a Table object is a virtual table. Slightly smaller and faster code. (check-in: 6affb1c8 user: drh tags: trunk)
14:02
Merge recent enhancements from trunk. (check-in: 325ccfa9 user: drh tags: est_count_pragma)
2017-02-15
22:36
Query planner optimization to detect empty tables in a join early and bail out without doing excess work. (check-in: 58797e9b user: drh tags: trunk)
18:30
Minor enhancement to mutex tracing on Win32. (check-in: 830b9235 user: mistachkin tags: trunk)
17:47
simple test cases for carray_asc. (Leaf check-in: 1d4759c1 user: drh tags: carray_asc)
16:11
Add the companion "carray_asc" table-valued function to the carray extension. (check-in: a2b4f60b user: drh tags: carray_asc)
16:04
Bummer. Checked this in as a branch off of the wrong branch.... Was: Add the companion "carray_asc" table-valued function to the carray extension. (Closed-Leaf check-in: 396b9d99 user: drh tags: mistake)
15:11
Remove the CLANG_VERSION macro, since we have learned that version numbers in clang are "marketing" and are inconsistent and unreliable. Builds using clang will still use the GCC_VERSION macro since clang works hard to be gcc compatible. (check-in: 8d3f485d user: drh tags: branch-3.17)
15:09
Remove the CLANG_VERSION macro, since we have learned that version numbers in clang are "marketing" and are inconsistent and unreliable. Builds using clang will still use the GCC_VERSION macro since clang works hard to be gcc compatible. (check-in: 810d2932 user: drh tags: trunk)
04:16
Further reforms to Tcl_*Alloc() usage. (check-in: ee1e6896 user: mistachkin tags: trunk)
01:39
In the blob test code, avoid crashing on low-memory systems by using Tcl_AttemptAlloc(). (check-in: 1d267757 user: mistachkin tags: trunk)
01:02
Make SQLITE_GET_MUTEX_TIME a proper noop on non-Win32/non-POSIX. (Leaf check-in: 4ca2b2f8 user: mistachkin tags: mutexDbg2)
00:52
Another compilation fix for POSIX. (check-in: 82ef47ea user: mistachkin tags: mutexDbg2)
00:45
Make fine time granularity work on POSIX. (check-in: 79057716 user: mistachkin tags: mutexDbg2)
00:02
Compilation fix for POSIX. (check-in: 9964ad24 user: mistachkin tags: mutexDbg2)
2017-02-14
23:58
Experimental enhancements to mutex debugging. (check-in: 80481754 user: mistachkin tags: mutexDbg2)
21:47
Clarification of the help text for the command-line shell. (check-in: ca4f1e49 user: drh tags: trunk)
20:00
Enable the SQLITE_ENABLE_NULL_TRIM option for WITHOUT ROWID tables. (check-in: 54836270 user: drh tags: trunk)
16:30
More realistic lengths of string values in speedtest1 with --testset orm. (check-in: e4731fd6 user: drh tags: trunk)
15:58
Fix a testcase number on the ORM testset of speedtest1. (check-in: 58b2f911 user: drh tags: trunk)
15:57
Add the new "--testset orm" to the speedtest1 utility. (check-in: 1836adc1 user: drh tags: trunk)
2017-02-13
16:17
Merge all changes up through the 3.17.0 release. (check-in: 1913a758 user: drh tags: apple-osx)
16:02
Version 3.17.0 (check-in: ada05cfa user: drh tags: release, version-3.17.0, branch-3.17)
13:35
Change all legacy instances of "#if SQLITE_DEBUG" to "#ifdef SQLITE_DEBUG" for consistency. (check-in: 670f10b2 user: drh tags: trunk)
13:26
Fix typos in using the MSVC_VERSION macro. (check-in: f3b65926 user: drh tags: trunk)
13:20
Avoid a duplication #define in FTS5 (check-in: c447441c user: drh tags: trunk)
11:35
Fix typos in using the MSVC_VERSION macro. (check-in: 25ebadd0 user: drh tags: branch-3.17)
2017-02-11
15:02
Ensure that indexed expressions with collating sequences are handled correctly. Fix for ticket [eb703ba7b50c1a5] backported from trunk. (check-in: b2e49ae3 user: drh tags: branch-3.17)
14:59
Fix indexes on expressions so that they can be actually used with a COLLATE clause. (check-in: e464b919 user: drh tags: trunk)
13:51
Ensure that indexed expressions with collating sequences are handled correctly. Proposed fix for ticket [eb703ba7b50c1a5]. (check-in: 9689d04b user: drh tags: trunk)
2017-02-10
21:40
Bump the version number up to 3.18.0. (check-in: 7520c238 user: drh tags: trunk)
21:37
Enhance the LIKE optimization so that it works for arbitrary expressions on the LHS as long as the pattern on the RHS does not begin with a digit or a minus sign. (check-in: 158290c0 user: drh tags: trunk)
19:38
Add the "," flag to printf(). (check-in: 064445b1 user: drh tags: trunk)
17:38
Version 3.17.0 release candidate (check-in: ad867e87 user: drh tags: branch-3.17)
2017-02-09
17:12
Cleanup the usage of the SQLITE_DISABLE_INTRINSIC compile-time option. Remove the SQLITE_RUNTIME_BYTEORDER compile-time option. Use -DSQLITE_BYTEORDER=0 instead. Fix a bug in R-Tree that occurs when compiling on a known little-endian machine without the use of intrinsic byteswapping functions. (check-in: 798fb9d7 user: drh tags: trunk)
2017-02-08
19:12
Avoid preparing a SELECT statement each time an UPDATE or DELETE by docid is executed against an fts3 table. (check-in: 1afec575 user: dan tags: trunk)
19:10
Avoid preparing a SELECT statement each time an UPDATE or DELETE by docid is executed against an fts3 table. (Leaf check-in: 9962c10a user: dan tags: fts3-seekstmt-cache)
18:13
Typo fixes in comment. No changes to code. (check-in: c09dd5c0 user: mistachkin tags: trunk)
16:55
Merge the 3.17.0beta changes from trunk. (check-in: 92dbd875 user: drh tags: apple-osx)
16:01
Always invoke the xRoundup() method of the memory allocator before calling xMalloc(). (check-in: 77b470b0 user: drh tags: trunk)
12:18
Round up the size of all memory allocations to a multiple of 8 bytes when using the system memory allocator. (check-in: c46e06fa user: drh tags: trunk)
2017-02-07
21:44
When generating the hash on the sqlite_master table in dbselftest, use an ORDER BY clause, since the sqlite_master table is reordered by VACUUM. (check-in: c8bfd99b user: drh tags: trunk)
21:09
MSVC makefile enhancments for several command line tools and the session extensions. (check-in: fc1dfe87 user: mistachkin tags: trunk)
21:00
Fix harmless compiler warnings in dbfuzz. (check-in: 61242267 user: drh tags: trunk)
20:57
Fix harmless compiler warnings in kvtest.c (check-in: db6b3993 user: drh tags: trunk)
20:51
The dbselftest utility now generates hashes in the selftest table with --init. It also accepts multiple database files on the command-line. (check-in: e68829c9 user: drh tags: trunk)
19:36
Omit fts5fault1.test from the inmemory_journal permutation. (check-in: cb1e83f9 user: dan tags: trunk)
19:23
Update a test parameter in malloc5.test to account for the increase in default lookaside buffer size. (check-in: be82d5ae user: dan tags: trunk)
17:36
Add the initial version of the "dbselftest" utility program. (check-in: 1fcac836 user: drh tags: trunk)
16:15
Update an error message in corruptC.test. (check-in: 722e57fe user: dan tags: trunk)
14:45
Fix a build problem affecting non-amalgamation rtree builds. (check-in: bb7f445b user: dan tags: trunk)
14:22
Fix a test case to account for the fact that sqlite3_blob_reopen() now returns SQLITE_IOERR_NOMEM instead of SQLITE_NOMEM if an OOM occurs in the VFS layer. (check-in: e11cc523 user: dan tags: trunk)
13:51
Fix SQLITE_BYTEORDER #defines in R-Tree when compiled separately from the amalgamation. (check-in: a136609c user: drh tags: trunk)
12:58
Make the cellMargin() routine of R-Tree slightly smaller and faster while also fixing a harmless compiler warning. (check-in: 07fe6228 user: drh tags: trunk)
03:44
Back out [ec8ff892ac] which is causing missed OOM errors on some tests. (check-in: 0611770d user: drh tags: trunk)
00:55
Fix a minor typo in a comment in R-Tree. No changes to code. (check-in: f77ee9e9 user: drh tags: trunk)
2017-02-06
16:52
Remove a small amount of unnecessary code from R-Tree. (check-in: e5aea894 user: drh tags: trunk)
15:27
Add the "max-limits" utility program to the tools/ subdirectory. (check-in: c54173b6 user: drh tags: trunk)
07:37
Fix a bug in kvtest causing "init --variance 0" runs to generate single byte blob values only. (check-in: 6b0276f9 user: dan tags: trunk)
01:19
Remove incorrect testcase() macros from R-Tree. (check-in: 853a58a7 user: drh tags: trunk)
2017-02-04
20:15
Simplification to the error handling to extension loading in sqlite3_open(). (check-in: ec8ff892 user: drh tags: trunk)
17:33
Allow sqlite3session_apply() to apply changesets to tables that have been extended using ALTER TABLE ADD COLUMN. (check-in: b20ff81f user: dan tags: trunk)
15:29
Merge recent trunk enhancements. (check-in: 6c3f0902 user: drh tags: apple-osx)
14:30
Merge the latest trunk changes, especially the RTREE enhancement to use sqlite3_blob objects. (Leaf check-in: 61bd2a88 user: drh tags: sqlite3_blob_reset)
14:24
In RTREE, use an sqlite3_blob object rather than an sqlite3_stmt object for reading content out of the %_node shadow table. (check-in: 97ccf3e4 user: drh tags: trunk)
13:12
Close sqlite3_blob objects on xSync rather than waiting until xCommit. (Closed-Leaf check-in: 95ee745f user: drh tags: rtree-blob-agressive-release)
2017-02-03
20:54
Improved performance and stack usage when processing VALUES clauses with a very large number of rows. (check-in: 5706d470 user: drh tags: trunk)
19:16
Avoid a performance problem when very large "VALUES(..), (..), (..)" terms are used in queries. (Closed-Leaf check-in: f5306ad6 user: dan tags: recursive-selectdup)
15:16
Improved tests for the carray() table-valued function. (check-in: 83a099f1 user: drh tags: trunk)
14:44
Modify the sqlite3SelectDup() routine to avoid recursing on Select.pPrior. (check-in: a7674ead user: dan tags: recursive-selectdup)
00:07
Merge in the sqlite3_blob_reset() interface. (Closed-Leaf check-in: e9c94a1f user: drh tags: rtree-sqlite3_blob)
2017-02-02
23:57
Add the sqlite3_blob_reset() interface. Enhance the behavior of sqlite3_blob objects so that they can go active again after encountering an error by rerunning sqlite3_blob_reopen(). More work needed on the documentation. (check-in: 53b77838 user: drh tags: sqlite3_blob_reset)
20:32
Ensure that all cursors have their positions saved prior to rolling back a savepoint. (check-in: 8e03a8e9 user: drh tags: trunk)
19:24
Fix issues in the sha1 extension seen with MSVC. (check-in: 5a0da77c user: mistachkin tags: trunk)
16:30
Remove the unused pReadNode prepared statement from each RTREE object. (check-in: e51dc0ec user: drh tags: rtree-sqlite3_blob)
16:08
Fix a potential uninitialized (though harmless) variable in RTREE. (check-in: a1c74e09 user: drh tags: rtree-sqlite3_blob)
15:35
The sqlite3_blob_close() interface can cause recursive invocations of nodeBlobReset() in RTREE. Make sure that does not cause problems. (check-in: 88333441 user: drh tags: rtree-sqlite3_blob)
14:40
Change RTREE so that the sqlite3_blob object is closed whenever the cursor count drops to zero and there is not a pending write transaction. (check-in: 9bb4eafe user: drh tags: rtree-sqlite3_blob)
02:28
Use the sqlite3_blob interface for reading values from the %_node shadow table in RTREE. This is a work in progress. There are still some minor problems. (check-in: fc4917d7 user: drh tags: rtree-sqlite3_blob)
00:46
This is an experimental patch that ensures that all cursors have their position saved prior to starting a ROLLBACK TO. (Closed-Leaf check-in: 01d97e5b user: drh tags: savepoint-rollback)
2017-02-01
23:06
Fix harmless compiler warnings seen with MSVC. (check-in: 0c66cf0f user: mistachkin tags: trunk)
23:03
Backout the change in [02f6293f27] as it causes MSVC to complain. (check-in: aaae74d0 user: mistachkin tags: trunk)
22:59
Fix C99-style variable declaration issue seen with older versions of MSVC. (check-in: 54d28546 user: mistachkin tags: trunk)
22:43
Fix harmless compiler warnings seen with MSVC. (Closed-Leaf check-in: 997f765b user: mistachkin tags: msvcWarn)
22:32
Add an option to the MSVC makefile to enable treating warnings as errors. (check-in: 6a378c29 user: mistachkin tags: trunk)
17:08
Unwind the RTREE dimension loop inside of rtreeCallbackConstraint(). (check-in: 4854ea9c user: drh tags: trunk)
16:41
Completely unroll the dimension loop inside of cellArea() in RTREE. (check-in: 3c4c0126 user: drh tags: trunk)
15:49
Precompute the nDim2 value in the Rtree object and use that to make loops over coordinates faster. (check-in: f1f3c8cc user: drh tags: trunk)
15:24
Use compiler intrinsic functions (when available) for byteswapping in RTREE. (check-in: 82fcd54a user: drh tags: trunk)
15:19
Fix the build by making the OPFLAG_ISNOOP macro available unconditionally. (check-in: 510933cb user: drh tags: trunk)
14:19
Update the documentation comment in sqlite.h.in for sqlite3_preupdate_hook(). (check-in: 7f857020 user: dan tags: trunk)
14:10
Changes so that the pre-update hook and the sessions module work with WITHOUT ROWID tables. (check-in: 964bdc27 user: dan tags: trunk)
02:25
More RTREE performance optimizations related to decoding values. (check-in: c5395e74 user: drh tags: trunk)
01:34
Improved comments on the statGet() implementation in ANALYZE. No changes to code. (check-in: 9663eea2 user: drh tags: trunk)
2017-01-31
21:22
R-TREE optimization: unwrap the coordinate decode loop in rtreeCallbackConstraint(). (check-in: 0bf7b518 user: drh tags: trunk)
19:10
Very small performance improvements and size reductions in sqlite3VdbeExec() and blobSeekToRow(). (check-in: 85dddf2b user: drh tags: trunk)
19:02
Simplifications to blobSeekToRow(). (Closed-Leaf check-in: 495ea824 user: drh tags: micro-optimizations)
17:31
Add a speed-test program for the sessions module. (Closed-Leaf check-in: 25f1275f user: dan tags: preupdate-without-rowid)
16:49
Remove a C99-style comment. Fixes to the kvtest-speed.sh script. (check-in: 91eb6b62 user: drh tags: micro-optimizations)
16:43
Remove another unnecessary local variable initialization from sqlite3VdbeExec() (check-in: 2361b03b user: drh tags: micro-optimizations)
16:34
Remove an unnecessary initialization of the pOp variable in sqlite3VdbeExec(). (check-in: 02f6293f user: drh tags: micro-optimizations)
15:29
Add the "stat" command to kvtest.c. Also add the --variance option to the "init" command. Add the tool/kvtest-speed.sh script used for doing performance testing on key/value access patterns. (check-in: b63deed6 user: drh tags: trunk)
15:27
Fix a typo in a comment. (check-in: bd22bf9c user: drh tags: trunk)
14:08
Merge latest trunk with this branch. (check-in: 4a592abb user: dan tags: preupdate-without-rowid)
12:41
Further minor enhancement and size reduction in sqlite3ExprAssignVarNumber(). (check-in: eacfdcf2 user: drh tags: trunk)
03:52
Performance optimization in sqlite3ExprAssignVarNumber(). (check-in: 5987ca1f user: drh tags: trunk)
2017-01-30
19:44
Experimental change to invoke the preupdate hook when WITHOUT ROWID tables are written. (check-in: 856f8604 user: dan tags: preupdate-without-rowid)
11:38
Fix building with SQLITE_OMIT_FOREIGN_KEY defined. (check-in: e93d2c49 user: dan tags: trunk)
2017-01-28
20:46
In the amalgamation, allocate the parser engine object from stack rather than from heap, for improved performance. This only happens in the amalgamation, since otherwise the sqlite3RunParser() routine does not know the object size. (check-in: 4fe879d4 user: drh tags: trunk)
19:53
Fix a couple comment typos. No changes to code. (check-in: 2a2e7d86 user: mistachkin tags: trunk)
19:45
Avoid redundant table b-tree cursor seeks in UPDATE statements that use the two-pass strategy. (check-in: dc555b10 user: dan tags: trunk)
15:26
Updates to the sqlite3_blob documentation. No changes to code. (check-in: 426b440a user: drh tags: trunk)
13:40
In the speed-check.sh script, automatically invoke "fossil test-diff --tk" on the cachegrind output against trunk, if not generating a trunk run. (check-in: aa1ab371 user: drh tags: trunk)
06:50
Fix a typo in the docs for sqlite3_update_hook(). (check-in: 7c029655 user: dan tags: trunk)
2017-01-27
19:27
Add the sha1.c loadable extension that implements the sha1() and sha1_query() SQL functions. (check-in: 24e77c1c user: drh tags: trunk)
17:02
Fix a problem causing the pre-update hook to be invoked by DROP TABLE statements. (check-in: fbb6bf1b user: dan tags: trunk)
16:39
Merge all recent trunk enhancements into the apple-osx branch. (check-in: 0e14fe1b user: drh tags: apple-osx)
16:24
Merge all recent enhancements from trunk. (check-in: fe86ff54 user: drh tags: est_count_pragma)
13:14
Alternative ICU fix (compare to check-in [50e60cb4]) that avoids casting integers to pointers. (check-in: d9752c8f user: drh tags: trunk)
01:52
In the command-line shell, enhance the ".mode" command so that it restores the default column and row separators for modes "line", "list", "column", and "tcl". (check-in: 58f02e6e user: drh tags: trunk)
01:25
Another micro-optimization in accessPayload(). Slightly smaller and faster. (check-in: c012619b user: drh tags: trunk)
01:13
Performance optimization in accessPayload(). (check-in: ebb1fd98 user: drh tags: trunk)
00:31
Simplify the accessPayload() routine so that it always populates the overflow page cache. In the one case where populating the page cache can lead to problems, simply invalidate the cache as soon as accessPayload() returns. This simplification reduces code size and helps accessPayload() to run a little faster. This backs out the eOp==2 mode of accessPayload() added by check-in [da59198505]. (check-in: 68e7a8c6 user: drh tags: trunk)
2017-01-26
21:30
Remove an unreachable branch in the error handling logic for sqlite3BtreePayloadChecked(). (check-in: 293bf3ed user: drh tags: trunk)
18:00
Improvement to the OP_Permutation opcode to prevent it from using CPU cycles for initialization in prepared statements that do not use that opcode. (check-in: b4a98f65 user: drh tags: trunk)
17:26
Remove the obsolete lastRowid cache from the sqlite3VdbeExec() for a size reduction and performance improvement. (check-in: b4803184 user: drh tags: trunk)
17:11
Performance optimization in sqlite3VdbeCloseStatement(). (check-in: 1e96e5ec user: drh tags: trunk)
16:54
Performance optimization to sqlite3_blob_read(). (check-in: 7459f4b7 user: drh tags: trunk)
16:27
Minor simplification and performance optimization for Direct Overflow Read. (check-in: 3e96d6ef user: drh tags: trunk)
02:26
Make SQLITE_DIRECT_OVERFLOW_READ work for in WAL mode as long as the page being read is not in the the -wal file. (check-in: 9879be18 user: drh tags: trunk)
01:54
Enhancements to the kvtest utility program. Add the --jmode option. Improved output formatting. (check-in: 62a4851c user: drh tags: trunk)
00:58
Modify the ICU extension to use a static initializer, as VC++ complains about a dynamic initialization. Maybe the dynamic structure initialization is a GCC extension. This fixes a problem identified on the SQLite mailing list by Ziemowit Laski. (check-in: 50e60cb4 user: drh tags: trunk)
2017-01-25
20:55
Trim NULL values off the end of records when the SQLITE_ENABLE_NULL_TRIM compile-time option is used. Increase the size of the P5 operand to 16 bits. Fix a problem with short records in the sessions extension. (check-in: 4801bd59 user: drh tags: trunk)
18:53
Fix another pre-update hook issue, this time in sqlite3preupdate_old(). (Closed-Leaf check-in: c7651d21 user: dan tags: trim-nulls)
18:12
Fix a test script problem in exclusive2.test causing it to fail on this branch. (check-in: f66614dc user: dan tags: trim-nulls)
17:44
Fix a problem with the pre-update hook on this branch. (check-in: 6fc4fbfa user: dan tags: trim-nulls)
14:58
Experimental enhancement to automatically trim NULL values from the end of records, for a reduced disk footprint. This change also involves increasing the P5 operand from 8 to 16 bits. (check-in: 118ded40 user: drh tags: trim-nulls)
14:38
Ensure that sqlite3_blob_reopen() correctly handles short rows. Fix for ticket [e6e962d6b0f06f46e]. (check-in: 8cd1a445 user: drh tags: trunk)
13:54
Fix SQLITEINT_H macro usage in two extensions. (check-in: 0803390c user: drh tags: trunk)
04:41
Ensure that sqlite3_blob_reopen() correctly handles short rows. Proposed fix for ticket [e6e962d6b0f06f46e]. Further testing needed. (Closed-Leaf check-in: 57d8dad3 user: drh tags: blob_reopen-fix)
2017-01-23
21:12
Experimental changes to permit a VFS to directly override the initial page size. (Leaf check-in: 64131724 user: mistachkin tags: pagePerSector)
19:11
Document the --mmap option in the --help screen for kvtest. Enhance kvtest so that numeric arguments can have suffixes like "K" or "M". Add kvtest to the unix makefiles. (check-in: 175bda87 user: drh tags: trunk)
18:40
Add the --mmap option to the kvtest utility program. (check-in: 4948f7e6 user: drh tags: trunk)
16:56
Optimization: Try to avoid unnecessary btree searching when repositioning a cursor to the next row. (check-in: ee793d30 user: drh tags: trunk)
15:58
Add the missing SQLITE_API symbol to test_delete.c (it is not added automatically as this file is not part of the amalgamation). (check-in: 7a4f512d user: dan tags: trunk)
07:06
Fix a problem preventing FTS5 from correctly passing the FTS5_TOKENIZE_PREFIX flag to custom tokenizer implementations. (check-in: 03c60134 user: dan tags: trunk)
2017-01-22
16:34
Fix an uninitialized variable in the command-line shell. (check-in: 06b8001a user: drh tags: trunk)
02:04
Fixes to documentation comments in the public header file. (check-in: 772dcb08 user: mistachkin tags: trunk)
00:11
Fix an initialized variable in kvtest. (check-in: ed62c5a6 user: drh tags: trunk)
2017-01-21
21:47
A better implementation of the moveto-neighbor optimization that checks for nearby rows on adjacent pages. (Closed-Leaf check-in: 2c4ecb85 user: drh tags: btree-moveto-neighbor)
16:54
B-tree optimization: When seeking on a rowid table that has already been positioned, check to see if the new row happens to be the next row on the same leaf page. That is a reasonably common case, and if it is true it avoids a full binary search. (check-in: 8e5cfb20 user: drh tags: btree-moveto-neighbor)
16:27
Change sqlite3_blob_reopen() to call sqlite3VdbeExec() directly rather than going through sqlite3_step(). Performance enhancement. (check-in: 347df3c1 user: drh tags: trunk)
16:21
Fix problems in the previous commit. (Leaf check-in: 74ad80eb user: dan tags: trigger-trace)
15:58
Add extra (somewhat inefficient) trace callbacks for triggers if SQLITE_TRACE_TRIGGER is defined. (check-in: ffda1d1e user: dan tags: trigger-trace)
15:55
In the kvtest.c test utility, reuse the buffer into which blobs are read, rather than reallocating it for each row. This is a closer match to how other test programs work, and thus provides a better comparison. (check-in: 0d1ad13a user: drh tags: trunk)
15:30
A proof-of-concept for running sqlite3_blob_open() without using OP_Column when operating on a pure key/value table. This demo does not include any corrupt database checking. Uses about 3% fewer CPU cycles on a key/value performance test. (Leaf check-in: 4cda3b30 user: drh tags: kv-access-opt-demo)
14:11
Remove an unnecessary sqlite3_bind_int64() call from sqlite3_blob_open(). Also other minor refactoring of the sqlite3_blob implementation. (check-in: 9d197a53 user: drh tags: trunk)
2017-01-20
20:43
Minor performance optimization and size reduction to the accessPayload() routine in btree.c. (check-in: 264e5c10 user: drh tags: trunk)
16:47
Fix a typo in the help message for kvtest. (check-in: 8971d98f user: dan tags: trunk)
16:46
Add option "--stats" to test program kvtest. Specifying --stats causes kvtest to output information similar to the shell tool option of the same name. (check-in: 90291327 user: dan tags: trunk)
16:09
Get the "--testset rtree" option working on speedtest1. Add the --rtree, --lookaside, and --clang options to the speed-check.sh script. (check-in: 87b640c8 user: drh tags: trunk)
00:40
Minor performance optimizations to sqlite3_blob_open() and sqlite3_blob_reopen(). (check-in: 52a61967 user: drh tags: trunk)
2017-01-19
21:20
If compiled with SQLITE_INLINE_MEMCPY, all memcpy() calls are replaced with in-line code. With that change, cachegrind shows which memcpy() calls are taking the most time. This is a performance-measurement hack only and is not for production use. (check-in: 9ed38521 user: drh tags: trunk)
18:20
In the 'vtshim' extension, avoid accessing freed memory when handling errors from xCreate/xConnect. (check-in: ffd559af user: mistachkin tags: trunk)
12:07
Add a prototype of the sqlite3_kv_reset() interface. (Leaf check-in: 088c5903 user: drh tags: sqlite3_kv)
11:52
Add test cases for the instrumentation on this branch. Fix some OOM handling issues in the same. (Leaf check-in: 50ca94b9 user: dan tags: transaction-pages)
2017-01-18
23:12
For Windows 8.x and higher, require the SQLITE_WIN32_WIN8_SECTOR_SIZE compile-time option in order to enable sector size determination. (Leaf check-in: 47beb55c user: mistachkin tags: winSectorSize)
22:47
In the 'windirent' test module, use a macro for the hidden/system attribute checking. (check-in: a84a08d0 user: mistachkin tags: trunk)
22:19
Remove superfluous option to Tcl 'lsort' in the vtabH test file. (check-in: b92cc6e5 user: mistachkin tags: trunk)
22:16
Make the vtabH-3.1 test more portable and robust. (check-in: d3c91c1f user: mistachkin tags: trunk)
22:16
Fix handling of initial hidden and/or system files in the opendir() implementation for Windows. No changes to non-test code. (check-in: 26dd42b4 user: mistachkin tags: trunk)
20:14
Add temporary code to record and report on the set of b-tree pages read and written by the current transaction. This is likely still buggy. (check-in: 2a8f6c89 user: dan tags: transaction-pages)
19:54
Begin fleshing out the key/value accessor implementation. This is an incremental check-in. (check-in: 02d60e19 user: drh tags: sqlite3_kv)
19:36
Improve and update comments. (check-in: 2dc16d34 user: mistachkin tags: winSectorSize)
19:06
Minimize the requested permissions when opening the volume on Windows 7 and Vista. (check-in: 8d429a59 user: mistachkin tags: winSectorSize)
17:20
Baseline interface definition for the experimental sqlite3_kv accessor object. (check-in: a435841e user: drh tags: sqlite3_kv)
01:11
Add runtime version checking for winSectorSize. (check-in: cb9d1ab3 user: mistachkin tags: winSectorSize)
00:27
When determining sector sizes on Windows 7 and Vista, make sure the target file is on the same volume as corresponding root directory. (check-in: de699ead user: mistachkin tags: winSectorSize)
2017-01-17
10:41
Fix a problem that could cause a spurious SQLITE_NOMEM error when attempting to resume an RBU operation if the previous client failed right after completing the incremental checkpoint. Also a "cannot vacuum wal db" error that could occur when resuming an RBU vacuum if an error (OOM or IO error) occurs during the incremental checkpoint. (check-in: 681d96eb user: dan tags: trunk)
00:10
Disable intrinsic functions for Windows using Clang, due to reports of linkage errors. This causes a 0.6% performance reduction. We will want to revisit this change in the future. (check-in: 7fd560c6 user: drh tags: trunk)
2017-01-16
18:10
Back out check-in [0b3174e0b1364c] and replace it with a better fix for \ticket [91e2e8ba6ff2e2] - a fix that does not cause the problem identified by ticket [7ffd1ca1d2ad4ec]. Add new test cases for both tickets. (check-in: 9b64af7b user: drh tags: trunk)
16:43
Back out check-in [0b3174e0b1364c] and replace it with a better fix for ticket [91e2e8ba6ff2e2] - a fix that does not cause the problem identified by ticket [7ffd1ca1d2ad4ec]. (Closed-Leaf check-in: 06136652 user: drh tags: automatic-index-affinity)
16:01
Add test cases for tickets [91e2e8ba6ff2e2] and [7ffd1ca1d2ad4ec]. (check-in: 9d0dfe0b user: drh tags: automatic-index-affinity)
11:54
An example showing how to improve performance of sqlite3VdbeSerialPut() using the GCC intrinsic function __builtin_bswap64(). (Leaf check-in: e42ed9b4 user: drh tags: builtin-bswap64)
2017-01-13
22:21
Merge updates from trunk. (check-in: 8b42b8e3 user: mistachkin tags: winSectorSize)
18:24
Fix a problem preventing resumption of RBU operations after recovering from a process or system failure that occurs during the incremental-checkpoint phase. (check-in: 97914266 user: dan tags: trunk)
12:53
Fix the build for SQLITE_ENABLE_MEMORY_MANAGEMENT. (check-in: 8c85b8fd user: drh tags: trunk)
2017-01-12
23:37
Attempt to detect physical sector sizes on Windows Vista and higher. (check-in: 6e388423 user: mistachkin tags: winSectorSize)
19:10
Remove a branch that is probably unreachable, and which adds no value. (check-in: 9acc7238 user: drh tags: trunk)
16:21
Fix harmless compiler warnings in the UPDATE code generator. (check-in: 385db266 user: drh tags: trunk)
16:14
Remove an unnecessary corruption test from the btree balancer. If corruption is present, it will be found harmlessly by later tests. (check-in: bddf3956 user: drh tags: trunk)
15:19
Test case macros to show that the previous check-in is well tested. (Leaf check-in: bd8b977a user: drh tags: extra-testcase-macros)
15:11
Improved detection of cells that extend into the reserved space at the end of the page while adjusting overflow page pointers during autovacuum. (check-in: 8097712c user: drh tags: trunk)
11:52
Remove invalid test case from cursorhints2.test (check-in: 163cc1b2 user: drh tags: trunk)
11:50
Make sure Tcl_AppendResult() always has a NULL-pointer argument at the end. (check-in: c07aef6f user: drh tags: trunk)
2017-01-11
21:03
Changes to allow some multi-row UPDATE statements to avoid the two-pass approach. (check-in: 7ae6104a user: dan tags: trunk)
20:10
Fix a problem causing the pre-update hook to be passed an incorrect rowid value in some single-pass multi-row updates. (Closed-Leaf check-in: 62257eb5 user: dan tags: onepass-update)
19:03
Fix a problem with single-pass multi-row UPDATE statements that invoke REPLACE conflict handling. (check-in: 0a2b8e1b user: dan tags: onepass-update)
16:52
Attempt to detect physical sector sizes on Windows 8 and higher. (check-in: 381fd34b user: mistachkin tags: winSectorSize)
15:42
Fix a problem preventing UPDATE statements that use a range-scan on the PK index of a WITHOUT ROWID table from using a one-pass strategy. (check-in: cab86c90 user: dan tags: onepass-update)
14:21
In the STAT4 computations, ensure that the aAvgEq values do not go negative. (check-in: 4f83f680 user: drh tags: branch-3.8.9)
14:15
In the STAT4 computations, ensure that the aAvgEq values do not go negative. (check-in: f58f75b5 user: drh tags: trunk)
2017-01-10
20:04
Changes to allow some multi-row UPDATE statements to avoid the two-pass approach. (check-in: 46db23cc user: dan tags: onepass-update)
17:37
Add a test case for ticket [25e335f802dd]. (check-in: e500c15a user: dan tags: trunk)
17:33
Throw an error if the ON clause of a LEFT JOIN references tables to the right of the ON clause. Fix for ticket [25e335f802dd]. (check-in: c92ecff2 user: drh tags: trunk)
16:09
Avoid unnecessary calls to the xRoundup() method of the memory allocator when the soft heap limit is not set. (check-in: 4209b89e user: drh tags: trunk)
15:08
Fix a potential assertion fault discovered by OSS-Fuzz. (check-in: 71c03b59 user: drh tags: trunk)
2017-01-09
20:57
Merge latest changes from trunk, and also move the perf-counter into the inner loop of sqlite3BtreeMovetoUnpacked(). (Leaf check-in: ff9eab95 user: drh tags: vdbe-aux-perf)
19:55
Remove a redundant assignment statement. (check-in: a5fa0965 user: drh tags: trunk)
19:27
Performance optimization and size reduction in the OP_Variable opcode. (check-in: 237aa974 user: drh tags: trunk)
18:22
Fix typo in a comment. No changes to code. (check-in: d38fd229 user: mistachkin tags: trunk)
18:20
Try to move OP_Concat operations outside the inner loop. This turns out to make things very slightly slower, at least in speedtest1.c. (Closed-Leaf check-in: 8a90f691 user: drh tags: failed-optimization)
15:44
Modify the OP_RowData opcode so that when P3!=0 it is allowed to hold an ephemeral copy of the content. This avoids unnecessary memcpy() operations in the xfer-optimization and VACUUM. (check-in: 6e106acd user: drh tags: trunk)
13:43
Add the SQLITE_UINT64_TYPE compile-time option. (check-in: a5fe03bc user: drh tags: trunk)
07:00
Merge the "changebatch" functionality into this branch. (check-in: 50fb1eb3 user: dan tags: begin-concurrent)
06:53
Disable the optimization from [8cb8516d] (omit TableLock instructions for non-sharable databases) on this branch. This branch uses the TableLock instructions to ensure that the db schema is not written from within a BEGIN CONCURRENT transaction. (check-in: c8ca3e0a user: dan tags: begin-concurrent)
06:33
Upgrade this branch to 3.16 plus the various fixes that appeared after its release. (check-in: d0e212d0 user: dan tags: begin-concurrent)
2017-01-07
14:47
Improvements to the iIdxNoSeek optimization of sqlite3GenerateRowDelete() so that it is automatically disabled for BEFORE triggers but works in all other cases. (check-in: 3178ec4c user: drh tags: trunk)
14:26
Critical fix to the previous check-in so that it works when there are BEFORE triggers that move the cursor before the OP_Delete has a chance to be applied. (check-in: db2c0960 user: drh tags: trunk)
03:26
Avoid an unnecessary btree seek while deleting an index entry due to a conflict on a REPLACE operation. (check-in: f0495c51 user: drh tags: trunk)
00:56
Avoid duplicate b-tree searches in the duplicate row detector used to implement DISTINCT. (check-in: d577dda0 user: drh tags: trunk)
00:42
This hack illustrates how to use the VDBE_PROFILE mechanism to show which bytecode operators are using resources other than time. In this case, the number of loops through the binary search code in sqlite3BtreeMovetoUnpacked() is measured, for the purpose of helping to identify unnecessary btree searches. (check-in: 746b1836 user: drh tags: vdbe-aux-perf)
2017-01-06
17:01
Merge the changes for version 3.16.2. (check-in: c59c8880 user: drh tags: apple-osx)
16:32
Version 3.16.2 (Leaf check-in: a65a6289 user: drh tags: release, branch-3.16, version-3.16.2)
13:53
Clarify the documentation on sqlite3_column_count(). (check-in: 01b4cb26 user: dan tags: branch-3.16)
13:52
Ensure that "PRAGMA case_sensitive_like" and "PRAGMA shrink_memory" set the number of output columns to 0 (as they are statements that return no data). (check-in: 4a97ba4e user: dan tags: branch-3.16)
13:49
Ensure that "PRAGMA case_sensitive_like" and "PRAGMA shrink_memory" set the number of output columns to 0 (as they are statements that return no data). (check-in: 6696cd18 user: dan tags: trunk)
11:56
Improve handling of corrupt databases in fts5. (check-in: b0726941 user: dan tags: branch-3.16)
11:55
Improve handling of corrupt data in fts5. (check-in: 609ac1c7 user: dan tags: trunk)
01:09
Clarify the documentation on sqlite3_column_count(). (check-in: 9ea0badd user: drh tags: trunk)
00:02
Remove several non-portable tests for the deprecated temp_store_directory PRAGMA. (check-in: 28d87789 user: mistachkin tags: trunk)
2017-01-05
20:01
Ensure that sqlite3_column_count() returns 0 for the "set" mode of "get/set" PRAGMA statements that do not return a value in that case (e.g. page_size, cache_size, auto_vacuum). (check-in: e745da6b user: dan tags: branch-3.16)
20:00
Ensure that sqlite3_column_count() returns 0 for the "set" mode of "get/set" PRAGMA statements that do not return a value in that case (e.g. page_size, cache_size, auto_vacuum). (check-in: 2f57939a user: dan tags: trunk)
19:32
Ensure that sqlite3_column_count() returns 0 for the "set" mode of "get/set" PRAGMA statements that do not return a value in that case (e.g. page_size, cache_size, auto_vacuum). (Closed-Leaf check-in: 5c05d8ec user: dan tags: pragma-columncount-fix)
17:27
Version 3.16.2 second release candidate (check-in: 285c5a54 user: drh tags: branch-3.16)
17:25
Fix handling the case where a sub-query in a FROM clause is itself a UNION ALL, and one side of that UNION ALL is a query on a view that includes an ORDER BY. Fix for ticket [190c2507]. (check-in: ec1e85a6 user: dan tags: branch-3.16)
17:23
Fix handling the case where a sub-query in a FROM clause is itself a UNION ALL, and one side of that UNION ALL is a query on a view that includes an ORDER BY. Fix for ticket [190c2507]. (check-in: 590ca83b user: dan tags: trunk)
15:50
Version 3.16.2 release candidate (check-in: 9d8ffe13 user: drh tags: branch-3.16)
14:05
Increase the version number to 3.16.2 (check-in: 9592cbcf user: drh tags: branch-3.16)
13:56
Fix problems in trigger and foreign key handling when doing REPLACE on a WITHOUT ROWID table that has no secondary indexes. Fix for ticket [30027b613b4]. (check-in: 8a788594 user: drh tags: branch-3.16)
13:52
Ensure that the sqlite3_value_text() interface returns a buffer that is long enough to hold the complete string plus the zero terminator even when the input is a zeroblob. Fix for a problem detected by OSS-Fuzz. (check-in: ca185808 user: drh tags: branch-3.16)
13:50
Fix problems in trigger and foreign key handling when doing REPLACE on a WITHOUT ROWID table that has no secondary indexes. Fix for ticket [30027b613b4]. (check-in: 571f166e user: drh tags: trunk)
07:58
Ensure that the sqlite3_value_text() interface returns a buffer that is long enough to hold the complete string plus the zero terminator even when the input is a zeroblob. Fix for a problem detected by OSS-Fuzz. (check-in: 2dc7eeb5 user: drh tags: trunk)
06:57
Fix some problems with foreign key processing within REPLACE ops on WITHOUT ROWID tables with no triggers or auxiliary indexes. (Closed-Leaf check-in: c1220b1a user: dan tags: replace-fix)
2017-01-04
22:02
Improved the comment on the block of code the provides the performance optimization originally added by check-in [925840cfdb]. The original check-in omitted condition 4, which was the cause of bug [30027b613b]. (check-in: c6506b82 user: drh tags: replace-fix)
20:13
Possible fix for [30027b61]. There may still be problems surrounding foreign key processing. (check-in: 71ccb1f4 user: dan tags: replace-fix)
14:53
Adjust filename creation in test_sqllog.c so that it uses leading zeros on counters, so that files appear in order when sorted lexicographically. (check-in: 8d670973 user: drh tags: trunk)
13:09
Performance enhancements in the printf implementation. (check-in: 82e4001b user: drh tags: trunk)
04:18
Factor constant functions out of the inner loop since they are more expensive than the extra OP_Copy needed to move the result into place. (check-in: 80ad317f user: drh tags: trunk)
04:10
Clean up the implementation of constant function factorization. (Closed-Leaf check-in: 2ab997e4 user: drh tags: factor-constant-funcs)
01:07
Attempt to factor out constant functions from the interior of table scans, since functions can often be expensive to compute. (check-in: 62e9270a user: drh tags: factor-constant-funcs)
00:26
Changes to the printf implementation for better performance. (Closed-Leaf check-in: acdb8f6f user: drh tags: printf-optimization)
2017-01-03
21:57
Use compiler intrinsic functions for signed integer math when overflow detection is needed. (check-in: d3ac32a6 user: drh tags: trunk)
21:50
Back out the use of __sync_fetch_and_sub() as it does not appear to work. (Closed-Leaf check-in: 4c2efd42 user: drh tags: gnu-safe-math)
21:03
Fix a typo in a comment. (check-in: ae087123 user: drh tags: gnu-safe-math)
20:20
Merge changes from the 3.16.1 release (check-in: dcbec226 user: drh tags: apple-osx)
20:01
Use the CLANG_VERSION macro to control clang-specific features. (check-in: f8ebeec2 user: drh tags: gnu-safe-math)
18:27
Version 3.16.1 (check-in: 979f0439 user: drh tags: release, version-3.16.1, branch-3.16)
18:05
Use the GCC built-in __sync_fetch_and_sub() to make the sqlite3StatusDown() routine atomic, and thereby avoid some mutexing. (check-in: f69ce75b user: drh tags: gnu-safe-math)
17:33
Make use of the __buildin_OP_overflow() functions from GCC when doing 64-bit signed integer arithmetic. (check-in: 82cbebb8 user: drh tags: gnu-safe-math)
16:03
Bump the version number up to 3.16.1. (check-in: a60b60d6 user: drh tags: branch-3.16)
15:59
Defer size checking on row-value assignments for when the RHS is a SELECT until after the "*" wildcards have been expanded. (check-in: 5c892938 user: drh tags: branch-3.16)
15:57
Fix the row-values in UPDATE statements within TRIGGER problem identified by ticket [8c9458e7]. (check-in: bf984e98 user: drh tags: branch-3.16)
14:45
Add the experimental affinity() SQL function when SQLITE_DEBUG is defined. (check-in: bed0eaa5 user: drh tags: trunk)
14:39
Put the affinity() function implementation inside of #ifdef SQLITE_DEBUG. (Closed-Leaf check-in: f778f58a user: drh tags: affinity-sql-func)
14:30
Merge all the latest changes from trunk. (check-in: c27cd8a8 user: drh tags: affinity-sql-func)
13:45
Defer size checking on row-value assignments for when the RHS is a SELECT until after the "*" wildcards have been expanded. (check-in: 36944be6 user: drh tags: trunk)
11:59
Fix a typo on a comment. No code changes. (check-in: abc27b60 user: drh tags: trunk)
08:11
Add test cases for the fix in [f12ed3ce]. No problems discovered. (check-in: 548532fd user: dan tags: trunk)
02:58
Improvements to the way vector assignment size checking is done. Size checks when the RHS is a SELECT are deferred until after "*" wildcards are expanded. (Closed-Leaf check-in: 696219b1 user: drh tags: vector-size-check)
01:24
Fix the row-values in UPDATE statements within TRIGGER problem identified by ticket [8c9458e7]. (check-in: f12ed3ce user: drh tags: trunk)
00:27
Improved assert()s on the sqlite3ExprListDup() logic for TK_SELECT_COLUMN. (Closed-Leaf check-in: 14da99d4 user: drh tags: rowvalue-update-trigger)
2017-01-02
23:43
Test cases for the row-value UPDATE TRIGGER fix. (check-in: b9b96437 user: drh tags: rowvalue-update-trigger)
23:18
Put an ALWAYS() on an unreachable branch in the sqlite3ExprListDup() routine. (check-in: 2caaaab5 user: drh tags: rowvalue-update-trigger)
22:36
Proposed fix for the row-value TRIGGER UPDATE problem described in ticket [8c9458e7]. (check-in: 61a442ea user: drh tags: rowvalue-update-trigger)
19:10
Increase the version number to 3.17.0 for the next release cycle. (check-in: 16415b5a user: drh tags: trunk)
19:02
Provide the SQLITE_DEFAULT_LOOKASIDE compile-time option and make it's default value be 1200,100 (raised from 512,125 in the latest release). (check-in: 584da48f user: drh tags: trunk)
18:40
Change SQLITE_DEFAULT_PCACHE_INITSZ from 100 to 20, which is experimentally determined to be slightly faster. (check-in: 12d9493c user: drh tags: trunk)
18:19
Avoid unnecessary calls to sqlite3BtreeEnterAll() and sqlite3BtreeLeaveAll() when no btree is using shared-cache. (check-in: cfb31582 user: drh tags: trunk)
12:20
Add the --all option to the wordcount test program. Fix the speedtest1 test program so that it builds on MSVC and so that the --lookaside 0 0 option works. (check-in: cb338f36 user: drh tags: trunk)
11:57
Version 3.16.0 (check-in: 04ac0b75 user: drh tags: trunk, release, version-3.16.0)
2017-01-01
12:44
Detect row-value comparison size mismatches even when the size of one operand is obscured by an unexpanded subquery. (check-in: 2c4d167c user: drh tags: trunk)
2016-12-31
21:55
Add the --help and --all options to the wordcount test utility. (Closed-Leaf check-in: 18baeadf user: drh tags: wordcount-enhancement)
18:37
In speedtest1.c, make the "--lookaside 0 0" option completely disable lookaside. (Closed-Leaf check-in: 52b99bcb user: drh tags: speedtest1)
14:33
Minor #include change to speedtest1.c so that it will compile under MSVC. (check-in: 8c28fde0 user: drh tags: speedtest1)
2016-12-30
17:40
Fix a crash that could occur following an OOM in the group_concat() function if the second argument is an SQLITE_BLOB value. (check-in: 14d855d2 user: dan tags: trunk)
15:16
Strengthen the defense against OOM in the instr() SQL function. (check-in: a0971e71 user: drh tags: trunk)
14:25
Add a test to ensure that the app-defined pcache xFetch() method is never passed a key of zero. (check-in: 0bdbe49c user: drh tags: trunk)
14:15
Avoid passing NULL pointers to memcmp() or memcpy(), even when the "number-of-bytes" argument is passed 0. (check-in: 56ff72ab user: dan tags: trunk)
13:55
Clarify the expectations for the behavior of the xFetch method on the sqlite3_pcache_methods object for the case when the key is zero. (Closed-Leaf check-in: b0810ac1 user: drh tags: pcache1-zero-page)
13:40
Improved detection of zero page numbers in the page cache. (check-in: 5550e815 user: drh tags: pcache1-zero-page)
12:10
Fix a harmless compiler warning in fuzzcheck.c (check-in: 2842bc60 user: drh tags: trunk)
12:06
Disable the pagerAcquireMapPage() routine if memory-mapped I/O is disabled. This fixes a harmless compiler warning on OpenBSD. (check-in: 3e25ba6e user: drh tags: trunk)
00:09
Encode a 64-bit integer literal in date.c as a constant expression so that it works on older compilers. Also fix a harmless compiler warning in vdbe.c. (check-in: f57952ba user: drh tags: trunk)
2016-12-29
19:48
Fix harmless compiler warnings in the command-line shell and in Lemon. (check-in: afcdc4a6 user: drh tags: trunk)
17:25
In kvtest.c, use stat() instead of fseek()/ftell() to determine the size of a BLOB to be read directly from disk. This makes the pile-of-files database more competative against SQLite. (check-in: a7dca29f user: drh tags: trunk)
16:58
Add the kvtest.c test program used to show that it is many times faster to read thumbnail and similar BLOBs out of an SQLite database than it is to read them as separate files from the filesystem. (check-in: 8074d59c user: drh tags: trunk)
16:49
Add more detail to the header command to further explain how to compile and use the kvtest.c utility. (Closed-Leaf check-in: 55d29839 user: drh tags: kvtest)
16:18
Fix kvtest.c so that it compiles using MSVC. (check-in: e2bbeae7 user: drh tags: kvtest)
15:26
In kvtest.c: do not show the --cache-size setting on fopen() runs. Show progress for the (potentially slow) "export" command. (check-in: b0f58d24 user: drh tags: kvtest)
14:44
Improvements to the kvtest.c utility. Added the --cache-size option. Additional reporting of version and settings at the end of "./kvtest run". (check-in: f6fcac6a user: drh tags: kvtest)
03:57
Add the kvtest.c test program for measuring key/value read performance under various scenarios. (check-in: 489e0787 user: drh tags: kvtest)
2016-12-27
15:59
Do not allow the nockpt.test module to run under the inmemory_journal permutation. (check-in: a6af06f1 user: drh tags: trunk)
13:33
Allow sqlite3_interrupt() to be invoked on a database connection that is in the process of being closed even if SQLITE_ENABLE_API_ARMOR is defined. (check-in: 7854bee2 user: drh tags: trunk)
12:45
Adjust a corruption test case to accommodate the sqlite3BtreeInsert() optimization of check-in [0b86fbca66]. (check-in: 4cb0945f user: drh tags: trunk)
12:35
Disable new test modules nockpt.test and interrupt2.test for incompatible permutations. Add a CORRUPT_DB term to an assert() in vdbe.c. (check-in: a54e619e user: drh tags: trunk)
12:08
Avoid a potential (harmless) signed integer overflow in memory usage accounting when calling sqlite3_realloc() to reduce the size of an allocation. (check-in: 2d71cbdf user: drh tags: trunk)
02:43
Minor changes to make some newer test cases work under more compile-time options. (check-in: 382eea36 user: drh tags: trunk)
2016-12-26
12:25
During fuzz testing with the fuzzcheck utility program, impose a record length limit of 100MB and a limit on the length of LIKE strings of 50 bytes. (check-in: edc9db41 user: drh tags: trunk)
12:14
Enable ossfuzz.c to build even if SQLITE_OMIT_PROGRESS_CALLBACK is defined. (check-in: a37c00dc user: drh tags: trunk)
01:41
Remove an incorrect ALWAYS() macro from balance_nonroot(), which could result in corrupt databases if it were optimized out. This ALWAYS was added only two weeks ago (check-in [f9f2e23bbd68a]) and has never appeared in an official release. (check-in: e447b23c user: drh tags: trunk)
00:18
Add the built-in affinity() SQL function. (check-in: 57e40e1c user: drh tags: affinity-sql-func)
00:15
Enhance the fuzztest utility with the --prng-seed option. Always reseed the PRNG prior to each test. (check-in: 8c5187f6 user: drh tags: trunk)
2016-12-24
21:32
Combine the implementations of the ".tables" and ".indexes" commands in the command-line shell. The ".indexes" command now puts the indexes in multiple columns, just like ".tables" and shows all indexes in all attached databases. (check-in: def29333 user: drh tags: trunk)
19:37
The schema name "main" is always an acceptable alias for the primary database even if the primary database is renamed using SQLITE_DBCONFIG_MAINDBNAME. (check-in: 2f481b85 user: drh tags: trunk)
18:18
Change the output format of the ".databases" command in the command-line shell so that it shows the schema name, a colon, and the corresponding filename. (check-in: 8558512e user: drh tags: trunk)
18:04
In the command-line shell, improve the formatting to the ".databases" command and on the ".tables" command, only show the schema prefix for databases past the first ("main") database. (check-in: c0d5626e user: drh tags: trunk)
2016-12-23
16:05
Fill in missing opcode documentation entries for OP_SorterNext and OP_SorterSort. (check-in: 2940661b user: drh tags: trunk)
13:54
Use the VList object to capture the mapping between SQL parameter names and variable numbers in a single memory allocation. (check-in: 99fddf2e user: drh tags: trunk)
13:52
Add check to prevent a VList from growing after pointers to labels have been taken. (Closed-Leaf check-in: aa23d7ea user: drh tags: VList)
13:30
Fix the VList object so that it actually works. (check-in: 9dcd8569 user: drh tags: VList)
03:59
Use the VList object to replace Parse.azVar for tracking the mapping between SQL parameter names and parameter numbers. There is a performance improvement, though there are still a few hiccups in the current code. (check-in: 68ecafa1 user: drh tags: VList)
2016-12-22
14:53
Fix harmless compiler warnings. (check-in: fa86db2f user: drh tags: trunk)
2016-12-21
21:26
Change the default lookaside configuration from 500 slots of 128 bytes each to 125 slots of 512 bytes each. This uses the same amount of memory (64,000 bytes) but seems to perform much better in test applications. (check-in: 52a12e47 user: drh tags: trunk)
19:45
Simplifications to the way UnpackedRecord objects are allocated. Smaller and faster code that also fixes a subtle (currently unreachable) bug. (check-in: f7ab01f2 user: drh tags: trunk)
2016-12-18
17:42
Change the OP_IfNotZero opcode so that it decrements register P1 by 1 rather than the value in P3, and so that it only decrements if originally positive. This avoids decrementing the smallest 64-bit signed integer. (check-in: 165c0446 user: drh tags: trunk)
2016-12-17
21:07
Refinements to the new dbfuzz test program. (check-in: 50325abe user: drh tags: trunk)
20:27
Enhance fuzzershell.c to read and execute SQL commands in the autoexec table of the database under test. Add the dbfuzz.c test program combining selected features of fuzzershell.c and fuzzcheck.c. (check-in: ef6e071a user: drh tags: trunk)
08:18
Fix a problem in the shell tools readfile() command causing blobs to be truncated at the first embedded 0x00 byte in release builds, or an assert() to fail in a debug build. (check-in: 8dedd6ad user: dan tags: trunk)
2016-12-16
21:29
Merge recent enhancements from trunk, and especially the pragma-as-vtab change. (check-in: 4b1e7804 user: drh tags: apple-osx)
21:15
Merge the pragma-as-vtab enhancement from trunk. (check-in: 89250777 user: drh tags: est_count_pragma)
21:02
Fix a potential memory leak following an OOM error in the pragma processing. (check-in: 396ab8f8 user: drh tags: est_count_pragma)
18:43
Add the ".lint fkey-indexes" command to the command-line shell. (check-in: 94689e3b user: drh tags: trunk)
18:41
Fix minor issues with the ".lint" command implemention in the shell and the shell help text related to ".lint". (Closed-Leaf check-in: 1268dc77 user: drh tags: fkey-missing-indexes)
18:14
Built-in PRAGMA statements without side-effects can be invoked as table-valued functions by prefixing their name with "pragma_". (check-in: d66ec5cf user: drh tags: trunk)
17:28
Change ".fkey_missing_indexes" to ".lint fkey-indexes". (check-in: ee621ade user: dan tags: fkey-missing-indexes)
16:49
Experimental merge of the est_count_pragma and the pragma-as-vtab branches. (Closed-Leaf check-in: 4b73ee33 user: drh tags: est-count-pragma-vtab)
16:44
Update .fkey_missing_indexes to use the built-in pragma vtabs. (check-in: 3ab05987 user: dan tags: fkey-missing-indexes)
16:13
Merge the pragma-as-vtab change into this branch. (check-in: 4ba45e72 user: dan tags: fkey-missing-indexes)
15:57
Merge recent trunk enhancements. (check-in: 74a0ca1f user: drh tags: est_count_pragma)
15:05
Fix a problem causing the planner to generate sub-optimal plans for some queries that use recursive WITH sub-queries with LIMIT clauses. (check-in: 053a149c user: dan tags: trunk)
04:20
Fix an error in the way the "schema" argument to some pragma virtual tables is handled. (Closed-Leaf check-in: 546821e2 user: drh tags: pragma-as-vtab)
02:31
Simplifications to facilitate full test coverage. (check-in: 01afc515 user: drh tags: pragma-as-vtab)
02:14
Minor bug fixes and enhancements to the pragma eponymous virtual tables. (check-in: 3f8f4615 user: drh tags: pragma-as-vtab)
01:09
Merge enhancements from trunk, and especially the ability to use temp.sqlite_master as an alias for sqlite_temp_master. (check-in: 994a4401 user: drh tags: pragma-as-vtab)
01:00
All temp.sqlite_master to be used as an alias for sqlite_temp_master. (check-in: 8d646905 user: drh tags: trunk)
2016-12-15
21:33
Fix the cost estimation in the BestIndex method of the eponymous pragma virtual table implementation. (check-in: 7126807a user: drh tags: pragma-as-vtab)
21:11
The pragma as eponymous virtual table mechanism now appears to work. (check-in: 2c274a1a user: drh tags: pragma-as-vtab)
20:59
Code to automatically create eponymous virtual tables for read-only pragmas. Compiles, but does not yet work. (check-in: 988a61e8 user: drh tags: pragma-as-vtab)
18:59
Do exponential rather than linear expansion of the SrcList.a array when appending new elements, to reduce the number of malloc() calls. (check-in: 4e374912 user: drh tags: trunk)
16:01
Do more pragma processing from tables rather than in-line code. (Closed-Leaf check-in: a88ca352 user: drh tags: table-driven-pragma)
06:01
Add the -groupbyparent option to the ".fkey_missing_indexes" command. (check-in: 976c51b4 user: dan tags: fkey-missing-indexes)
2016-12-14
19:28
Add the experimental ".fkey_missing_indexes" command to the shell tool. To identify indexes that should be created on child keys if FK processing is to be enabled. (check-in: 7df23aca user: dan tags: fkey-missing-indexes)
14:07
Refactor the Table.nRef field as Table.nTabRef for easier grepping. (check-in: 9cae4c2e user: drh tags: trunk)
13:54
Increase the size of the reference count on Table objects to 32 bits. (check-in: d08b72c3 user: drh tags: trunk)
11:39
Fix the configure makefile to align it with the manual makefile. Unsaved changes from the previous check-in. (check-in: 00a184b6 user: drh tags: trunk)
11:23
Adjust the unix makefiles so that "make test" runs fuzzcheck prior to even attempting to build the other test programs. (check-in: bb48f7a5 user: drh tags: trunk)
11:14
Three times faster sqlite3SrcListAppend() in the common case by avoiding the call to sqlite3SrcListEnlarge() for the first allocation. (check-in: 0ea2762f user: drh tags: trunk)
10:30
Fix the optimization that prevents writing freelist pages to the journal. (check-in: 6aa9b265 user: drh tags: trunk)
2016-12-13
23:22
In the command-line shell, in the output of the ".dump", ".schema", and ".fullschema" commands, convert CREATE TABLE statements that appear to come from shadow tables into CREATE TABLE IF NOT EXISTS statements. (check-in: c7021960 user: drh tags: trunk)
20:30
Fix harmless compiler warnings. (check-in: ed2c9f37 user: drh tags: trunk)
18:47
Convert sqlite3PagerGet() into a pointer-dispatched virtual method. This makes it about 25% faster. (check-in: 7f88bb44 user: drh tags: trunk)
18:34
In the pager, avoid checking for the illegal page number 0 except when creating a new page. (Closed-Leaf check-in: dee20ba9 user: drh tags: pager-get-method)
16:57
Fix a problem causing SQLite to return false "foreign key violation" errors when there is a partial (i.e. WHERE constrained) UNIQUE index on the parent key columns. This bug did not cause SQLite to allow illegal data to be inserted into the database, only to reject legal operations. (check-in: 850877d1 user: dan tags: trunk)
15:53
Further refinements to the virtual method implementation of sqlite3PagerGet(). (check-in: 67df4446 user: drh tags: pager-get-method)
14:32
Make the sqlite3PagerGet() interface into a virtual method, with different implementations based on the current state of the pager. This gives a small performance increase by avoiding unnecessary branches inside the various methods. (check-in: df5bb90d user: drh tags: pager-get-method)
2016-12-12
23:24
Add the --mmap option to the speedtest1 program and to the speed-check.sh script that is frequently used to run speedtest1. (check-in: 1a636d5e user: drh tags: trunk)
18:12
Remove unnecessary MemPage initialization resets in the autovacuum ptrmap processing. (check-in: 1b36fbb9 user: drh tags: trunk)
16:15
Merge all the latest performance enhancements from trunk. (check-in: a24f805b user: drh tags: apple-osx)
16:08
Faster operation for large in-memory databases. (check-in: 9675518b user: drh tags: trunk)
12:58
Merge recent enhancements from trunk. (check-in: dc006e08 user: drh tags: est_count_pragma)
11:05
Performance optimization in sqlite3PagerWrite(). (check-in: d4dff10a user: drh tags: trunk)
01:53
Updates to the tokenizer for EBCDIC. No changes for standard builds. (check-in: 4fc6580f user: drh tags: trunk)
01:30
Size and performance optimization in btreeInitPage() in the freeblock validation step. (check-in: 57deb1b4 user: drh tags: trunk)
00:58
Change the order of comparison for divider cell overflow in balance non-root to avoid a (harmless) reference to an uninitialized variable. (check-in: f9f2e23b user: drh tags: trunk)
2016-12-10
13:12
Avoid an unnecessary memset() in the sqlite3BtreeInsert() routine. (check-in: 35ecd4eb user: drh tags: trunk)
12:58
Reorder the fields in the VdbeCursor object so that those that need to be bulk zeroed on allocation are grouped at the beginning, and the memset() only runs over those fields that really need it. (check-in: 8165f88b user: drh tags: trunk)
04:06
Avoid signed integer overflow when dealing with a LIMIT and OFFSET whose sum exceeds the maximum integer value. (check-in: c9bdf7ad user: drh tags: trunk)
00:14
In balance_nonroot, try to combine dropCell/insertCell combinations for the dividers into a cell overwrites. This results in a very small (0.05%) performance gain which is probably not worth the added complexity. (Closed-Leaf check-in: 478627c9 user: drh tags: failed-dropCell-opt)
2016-12-09
19:42
When doing the sqlite3BtreeInsert() overwrite optimization, make sure the memcpy() does not extend off the end of the page. (check-in: 684ef458 user: drh tags: trunk)
18:09
Additional comments and an assert on the sqlite3BtreeInsert() overwrite optimization. (check-in: c1f0ae9d user: drh tags: trunk)
17:32
In sqlite3BtreeInsert() when replacing a re-existing row, try to overwrite the cell directly rather than deallocate and reallocate the cell. (check-in: 0b86fbca user: drh tags: trunk)
16:12
Fix an fts5 bug that could cause a crash following an OOM error or sqlite3_interrupt() interrupt. (check-in: 0ea3ece9 user: dan tags: trunk)
16:02
Avoid unnecessary zeroing of fields in the MemPage object that are going to be reinitialized before use anyhow. A smaller and faster binary results. (check-in: 01ada3d1 user: drh tags: trunk)
00:15
Fix an obscure problem in range estimation with STAT4. (check-in: 1f16c9a7 user: drh tags: trunk)
2016-12-08
23:52
Fix the showstat4 utility program so that is displays strings using standard SQL notation (single quotes) rather than C-style notation. (check-in: 92998e4a user: drh tags: trunk)
19:04
Fix a minor error in the cg_anno.tcl script causing the cycles-per-file counts to be miscomputed. (check-in: b26df26e user: drh tags: trunk)
18:36
Update the tool/cg_anno.tcl script to give a summary of cycle counts by canonical source file name. (check-in: 254a83bf user: drh tags: trunk)
01:38
More changes to take advantage of the sqlite3VdbeAppendP4() method. (check-in: 83bc5e40 user: drh tags: trunk)
2016-12-07
21:35
Add the sqlite3VdbeAppendP4() method for adding P4 content to the most recently coded instruction. (check-in: 28883e8f user: drh tags: trunk)
20:22
The use P4_DYNAMIC in place of the P4_MPRINTF operand type. (check-in: 3954f837 user: drh tags: trunk)
20:09
Performance optimization for sqlite3VdbeAddOp4(). (check-in: 04716c90 user: drh tags: trunk)
17:06
Put the SQLITE_UNTESTABLE compile-time option in the correct order for PRAGMA compile_options. (check-in: 24574a15 user: drh tags: trunk)
15:49
Rename the SQLITE_OMIT_BUILTIN_TEST compile-time option to SQLITE_UNTESTABLE. (check-in: f3608187 user: drh tags: trunk)
15:38
Prevent the flattening or where-term push-down optimizations from obscuring misuses of SQL row values that can lead to crashes or assert() failures. (check-in: 433d16ff user: dan tags: trunk)
13:49
Always honor the sqlite3.dbOptFlags bitmask, regardless of compile-time options. Continuing fix for ticket [da78413751863]. (check-in: afab1663 user: drh tags: trunk)
07:46
Merge latest trunk changes into this branch. (Leaf check-in: 391344d8 user: dan tags: changebatch)
2016-12-06
22:47
Performance improvement and size reduction in the Expr node allocator function sqlite3PExpr(). (check-in: 2a81763e user: drh tags: trunk)
19:33
Add missing nul-terminator to a Tcl_AppendResult() call in tclsqlite.c. (check-in: 0820f8b3 user: dan tags: trunk)
17:59
In the LEMON parser-generator, fix the stack overflow processing so that it correct invokes the destructor on the top-level of the parse stack. (check-in: e8247065 user: drh tags: trunk)
2016-12-05
20:16
Fix a harmless redundant local variable declaration in the date/time function logic. (check-in: b4bc40d1 user: drh tags: trunk)
20:06
Work around a bug in the definition of "ino_t" on some versions of Android. (check-in: 8df492c1 user: drh tags: trunk)
2016-12-02
19:07
Simplify the date/time function logic for improved rebustness and also to decrease the size of the binary. (check-in: 6e144735 user: drh tags: trunk)
17:08
Extend the valid range of 'unixepoch' dates from JulianDay 0 through 9999-12-31. (check-in: 768c9859 user: drh tags: trunk)
14:15
Fix a potential integer overflow during out-of-bound date computations. (Closed-Leaf check-in: 3c58b173 user: drh tags: date-overflow-fix)
02:19
Test cases for the improved LIKE/GLOB matcher. (check-in: 0bdb7ae1 user: drh tags: trunk)
2016-12-01
19:58
Avoid clearing the EP_FromJoin flag from terms in ON clauses when flattening sub-selects. Possible fix for [2df0107b]. (check-in: a427c405 user: dan tags: trunk)
19:38
Avoid clearing the EP_FromJoin flag from terms in ON clauses when flattening sub-selects. Possible fix for [2df0107b]. (Closed-Leaf check-in: 8bed4cd5 user: dan tags: left-join-fix)
18:57
Performance improvement for GLOB and LIKE matching for patterns with two or more multi-character wildcards ("*" or "%"). (check-in: 2df0ebf9 user: drh tags: trunk)
18:49
Faster version of patternCompare() that uses new return values rather than an extra parameter to communicate wildcard information back up to parent searches. (Closed-Leaf check-in: a1e2b6ce user: drh tags: pattern-compare-optimization)
17:34
Modify the patternCompare() function (used for GLOB, LIKE) to better handle patterns containing multiple wildcard characters ("*", "%"). (check-in: c5e5614d user: dan tags: pattern-compare-optimization)
2016-11-30
16:54
Add the remember(V,PTR) extension function which copies an SQL value into an application variable. (check-in: d2d30914 user: drh tags: trunk)
16:39
Merge all the latest changes from trunk. (check-in: 7ca58a07 user: drh tags: est_count_pragma)
14:47
Fix then handling of the (oversized) integer literal -0x8000000000000000. (check-in: 3816bb41 user: drh tags: trunk)
05:08
Change the OP_DecrJumpZero opcode back to its old behavior of always decrementing, except top the decrementing when it reaches the largest negative number. (check-in: 9d0d8c2e user: drh tags: trunk)
04:07
More improvements to boundary cases in the date/time functions, flowing out of branch coverage testing. (check-in: 1218005a user: drh tags: trunk)
01:05
Prevent a warning about integer overflow when using a very large negative LIMIT. (check-in: 96106d56 user: drh tags: trunk)
00:48
Further changes to the date/time functions to suppress harmless signed integer overflow warnings that could have occurred when doing out-of-range date calculations which, according to the docs, give undefined results. (check-in: dc453b34 user: drh tags: trunk)
2016-11-29
20:39
The documentation says that the built-in date-time functions give undefined results for dates before 0000-01-01 and after 9999-12-31. Change the actually implementation so that the answer given is really NULL. This also avoids unnecessary hand-wringing over an signed integer overflow that might otherwise occur when processing out-of-bound dates. (check-in: d410a839 user: drh tags: trunk)
2016-11-28
21:22
Fix broken hyperlinks to the sqlite3_snapshot objection definition in the documentation. No changes to code. (check-in: 9021f687 user: drh tags: trunk)
19:13
Version 3.15.2 (Leaf check-in: bbd85d23 user: drh tags: release, version-3.15.2, branch-3.15)
14:52
Simplify some code in fts5_expr.c. Add some extra test cases for the same. (check-in: 7cc2d60d user: dan tags: trunk)
2016-11-26
20:44
Merge all recent trunk changes, and especially the new sqlite3_snapshot_recover() interface. (check-in: 41a3af54 user: drh tags: apple-osx)
20:12
Update test case for opening SHM files read/write on a read-only connection so that they are only attempted on Darwin with SQLITE_ENABLE_PRESIST_WAL. (check-in: d6a7bf80 user: drh tags: apple-osx)
19:44
Add the sqlite3_snapshot_recover() interface and related functionality. (check-in: b70c85ce user: drh tags: trunk)
2016-11-25
20:20
Clarification of the behavior of sqlite3_stmt_readonly() on BEGIN IMMEDIATE statements. The is comment changes only - no changes to code. (check-in: a4205a83 user: drh tags: trunk)
19:32
Remove the OP_RowKey opcode. Use OP_RowData in its place. (check-in: 6ac7b07a user: drh tags: trunk)
19:18
Refactor the sqlite3BtreeKey() and sqlite3BtreeData() internal interfaces into sqlite3BtreePayload() and sqlite3BtreePayloadChecked(), respectively. This is a continuation of the optimization started by check-in [2d831074cf]. The result is a slightly smaller and faster binary. (check-in: 49ebc219 user: drh tags: trunk)
17:03
Small performance increase and size reduction in the OP_Column opcode. (check-in: a9498407 user: drh tags: trunk)
15:47
Performance enhancement to sqlite3_snprintf(). (check-in: c53dca7f user: drh tags: trunk)
15:11
Performance improvement in sqlite3StrAccumFinish() for the common case where no memory allocation is required. (check-in: b6acf5d4 user: drh tags: trunk)
14:30
Add a comment to help clarify the EP_FromJoin hack in exprCodeBetween(). (check-in: 6df7c574 user: drh tags: trunk)
2016-11-24
13:42
Fix a test case in vacuum5.test so that it works with the in-memory journal permutation. Cherrypick of [81c86401]. (check-in: e31d646a user: dan tags: branch-3.15)
2016-11-23
23:18
Fix the error message for invalid ".mode" arguments in the command-line shell, so that it mentions the new "quote" mode. (check-in: 9a603a18 user: drh tags: trunk)
21:33
Updates makefiles and build scripts on windows to used Tcl 8.6. (check-in: f693850a user: drh tags: branch-3.15)
21:14
Update the version number to 3.15.2. (check-in: 86dc74cb user: drh tags: branch-3.15)
21:13
Code constant vector components outside of any loops in CASE and BETWEEN expressions. Fix for [1a684656]. (check-in: 4c6efe60 user: drh tags: branch-3.15)
21:08
Prevent a possible use-after-free bug in the query optimizer. (check-in: 661b4506 user: drh tags: branch-3.15)
21:01
Disable the query flattener optimization for SELECT statements that are on the RHS of vector IN operators. This is a hack that fixes the bug described in ticket [da7841375186386c]. A better solution that does not disable the query flattener is needed, but this will server for the time being. (check-in: 27438fb4 user: drh tags: branch-3.15)
20:44
Fix a potential use-after-free error during parsing of malformed CREATE TABLE statement. (check-in: 0f956597 user: drh tags: branch-3.15)
20:37
Fix an fts5 problem causing a crash in phrase queries where the first token of the phrase matches one or more rows but some other token within the phrase matches zero. (check-in: 4efd331e user: drh tags: branch-3.15)
20:31
Fix OOM error reporting in the json1_group_object() SQL function. Remove an unreachable branch from the JSON1 logic. (check-in: 6492e57e user: drh tags: branch-3.15)
20:24
Fix the JSON1 extension so that the JSON validator correctly rejects malformed backslash escapes within string literals. (check-in: 7c466283 user: drh tags: branch-3.15)
20:19
Avoid a crash that can occur after an obscure OOM in the built-in INSTR() function. (check-in: 8a55b8e1 user: drh tags: branch-3.15)
20:12
Mark the ICU extension functions as deterministic. (check-in: 8fd2fcce user: drh tags: branch-3.15)
19:43
Handle some obscure "row value misused" cases that could cause segfaults or assertion failures. (check-in: 794763fd user: drh tags: branch-3.15)
19:40
Take care not to try to generate code for the ATTACH and DETACH commands if there were syntax errors during parsing. Fix for ticket [2f1b168ab4d4844] (check-in: f8cf7ff1 user: drh tags: branch-3.15)
19:31
Code constant vector components outside of any loops in CASE and BETWEEN expressions. Fix for [1a684656]. (check-in: c08aff13 user: dan tags: trunk)
14:19
Correctly display the names of SQL functions in the VDBE_PROFILE output. (check-in: 161192f1 user: drh tags: trunk)
2016-11-22
22:23
Merge bug fixes and enhancements from trunk. (Closed-Leaf check-in: e2c4bdf5 user: drh tags: serializable-snapshot)
21:11
Enclose the sqlite3WalSnapshotRecover() routine within (check-in: e7be3183 user: drh tags: serializable-snapshot)
20:29
Add a new requirement mark for CAST expressions. (check-in: bee2859b user: drh tags: trunk)
19:15
Update requirement marks to reflect changes in wording in the documentation. No changes to code. (check-in: f5ac98ef user: drh tags: trunk)
01:26
Remove unnecessary OP_Close opcodes for a size reduction and performance increase. (check-in: 32be7aae user: drh tags: trunk)
2016-11-21
21:33
Remove unnecessary OP_Close opcodes at the end of INSERT operations, resulting in smaller and faster code. (check-in: abeddb6d user: drh tags: trunk)
18:15
Enhance speedtest1.c so that is works on older versions of SQLite, before the introduction of the group_concat() aggregate function. (check-in: 9979ba80 user: drh tags: trunk)
2016-11-20
17:59
Fix harmless compiler warnings. (check-in: b3b7b42d user: drh tags: trunk)
12:00
Prevent a possible use-after-free bug in the query optimizer. (check-in: 0a98c8d7 user: drh tags: trunk)
2016-11-19
18:31
Remove the requirement to open the wal file before sqlite3_snapshot_recover() is called. Also add some comments to new functions. (check-in: 28393c41 user: dan tags: serializable-snapshot)
17:30
Test some extra error conditions in sqlite3_recover_snapshot(). (check-in: db314213 user: dan tags: serializable-snapshot)
17:20
Add another fault-injection test for sqlite3_snapshot_recover(). (check-in: 7e040406 user: dan tags: serializable-snapshot)
16:35
Fix a problem causing sqlite3_snapshot_recover() to return SQLITE_IOERR_SHORT_READ. (check-in: 525f75fa user: dan tags: serializable-snapshot)
14:53
Fix a bug in sqlite3_snapshot_recover() that could cause subsequent read transactions to use out-of-data cache entries. (check-in: 9abeb798 user: dan tags: serializable-snapshot)
2016-11-18
20:49
Add experimental sqlite3_snapshot_recover() API. (check-in: 174a6076 user: dan tags: serializable-snapshot)
18:43
Require that the database handle be in autocommit mode for sqlite3_snapshot_get() to succeed. This is because it may open a read transaction on the database file. (check-in: 83b658da user: dan tags: serializable-snapshot)
18:22
Add tests for snapshot interfaces. (check-in: 1f7ee7af user: dan tags: serializable-snapshot)
14:38
Enhance existing snapshot tests to serialize/deserialize snapshots. No new tests. (check-in: 16b9bf92 user: dan tags: serializable-snapshot)
2016-11-17
21:52
Experimental changes for faster in-memory DB operation for large databases. (Closed-Leaf check-in: 4fe94b0f user: drh tags: memdb-opt)
20:05
Fix a problem in rtreeD.test causing it to fail in OMIT_BUILTIN_TEST builds. (check-in: d6b3779e user: dan tags: trunk)
14:02
When opening the *-shm file for a readonly database, try to open it in read-write mode before falling back to readonly. This is in case some other read/write connection within the same process uses the same file descriptor. (check-in: a07c581e user: dan tags: apple-osx)
13:54
Change the --enable-debug option on configure so that it enables the ".selecttrace" and ".wheretrace" commands in the command-line shell. (check-in: 2331192b user: drh tags: trunk)
13:13
Disable the query flattener optimization for SELECT statements that are on the RHS of vector IN operators. This is a hack that fixes the bug described in ticket [da7841375186386c]. A better solution that does not disable the query flattener is needed, but this will server for the time being. (check-in: 005d5b87 user: drh tags: trunk)
2016-11-15
21:17
Add a needed #include to speedtest1.c. (check-in: 77aeb705 user: drh tags: trunk)
17:37
Experimental changes toward making snapshots serializable. (check-in: b6a81fa1 user: drh tags: serializable-snapshot)
04:00
Change the OP_Last opcode so that it is a no-op if the cursor is already pointing at the end of the b-tree. (check-in: 66347385 user: drh tags: trunk)
02:46
Make the VACUUM command about 9% faster by avoiding unnecessary calls to sqlite3BtreeMovetoUnpacked() while copying rowid tables. (check-in: 5ed0bd38 user: drh tags: trunk)
2016-11-14
20:47
Add 8794 new test cases received from the OSS-FUZZ project. (check-in: 03f75a67 user: drh tags: trunk)
20:08
Fix a potential use-after-free error during parsing of malformed CREATE TABLE statement. (check-in: c5dbc599 user: drh tags: trunk)
18:27
Enhance fuzzcheck.c to accept database-specific configuration parameters in the option CONFIG table. Add the fuzzdata5.db fuzz database containing test cases from OSS-FUZZ. (check-in: a71fad45 user: drh tags: trunk)
17:25
Fix the ossfuzz.c test module so that it does not segfault after a "PRAGMA empty_result_callbacks=1;". Add the ossshell.c program for simple command-line testing of ossfuzz.c. (check-in: 6f2d43ec user: drh tags: trunk)
15:28
Avoid unnecessary calls to sqlite3ExprCacheAffinityChange() when generating OP_MakeRecord opcodes that do not change any register affinities. (check-in: e211c579 user: drh tags: trunk)
08:19
Fix an fts5 problem causing a crash in phrase queries where the first token of the phrase matches one or more rows but some other token within the phrase matches zero. (check-in: e78f6f3b user: dan tags: trunk)
2016-11-11
20:37
Fix harmless compiler warnings in test code for MSVC. (check-in: 7b76be41 user: drh tags: trunk)
19:08
Avoid storing redundant fields in sorter records when the sort-key and data have fields in common. (check-in: b835cf3e user: drh tags: trunk)
19:01
Enhance the OP_IdxInsert opcode so that it can used unpacked key values if they are available. Update the code generator to take advantage of this new capability. The speedtest1.c test is about 2.6% faster as a result. Later: This also introduced bug [30027b613b]. Bummer. (check-in: 925840cf user: drh tags: trunk)
18:45
Merge trunk with this branch. (Closed-Leaf check-in: dd62d2de user: dan tags: sorter-opt)
18:19
Remove obselete and unused logic in the update code generator. Fix the sqlite3BtreeMovetoUnpacked() routine so that it remembers the rowid of the row that it landed on. (Closed-Leaf check-in: 1a587d72 user: drh tags: unpacked-IdxInsert)
18:08
Reenable the SQLITE_EXPR_REF optimization for "SELECT DISTINCT ... ORDER BY" queries. (check-in: 6e2e9d38 user: dan tags: sorter-opt)
17:52
Merge enhancements and bug-fixes from trunk. (check-in: 5515b827 user: drh tags: unpacked-IdxInsert)
17:08
Fix a problem with switching from wal to rollback mode when SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE is configured. (check-in: 46e00162 user: dan tags: trunk)
16:33
Add the test/ossfuzz.c interface adaptor for OSS-FUZZ. Make previsions for testing the adaptor using fuzzcheck.c. (check-in: 119d6ef8 user: drh tags: trunk)
15:49
Handle some obscure "row value misused" cases that could cause segfaults or assertion failures. (check-in: fba5fddb user: dan tags: trunk)
14:54
Back out the "--raw" option on ".read" in the command-line shell. Instead, fix the command-line shell so that if EOF is reached without seeing a final semicolon, it goes ahead and passes the accumulated SQL text to SQLite. (check-in: f98c8ac8 user: drh tags: trunk)
09:51
Add extra tests for the xBestIndex() virtual table method. (check-in: 642a8fba user: dan tags: trunk)
05:19
In the command line shell, avoid using utf8_printf() in a couple places where it is superfluous. (check-in: 6311a8bd user: mistachkin tags: trunk)
04:37
Add the --raw option to the ".read" dot-command of the command-line shell, to cause the named file to be read and sent directly into sqlite3_exec() without any interpretation. (check-in: 09233770 user: drh tags: trunk)
03:37
Take care not to try to generate code for the ATTACH and DETACH commands if there were syntax errors during parsing. Fix for ticket [2f1b168ab4d4844] (check-in: b0ff183b user: drh tags: trunk)
2016-11-10
21:19
Break up the sqlite3BtreeMovetoUnpacked() routine into an eponymous routine and sqlite3BtreeMovetoIntkey(). Each routine specializes in a single kind of btree. (Leaf check-in: 9a64a4f2 user: drh tags: split-moveto)
20:42
Avoid a few unnecessary calls to sqlite3BtreeMovetoUnpacked(). (check-in: eac0e827 user: drh tags: unpacked-IdxInsert)
20:14
Avoid storing redundant fields in sorter records when the sort-key and data have fields in common (as in "SELECT a FROM t1 ORDER BY 1"). (check-in: 0af62fdb user: dan tags: sorter-opt)
17:01
When doing a REPLACE on a WITHOUT ROWID table with no secondary indexes, bypass the OP_NoConflict/OP_Delete sequence and directly overwrite any preexisting row, for a performance increase. (check-in: f7041cbb user: drh tags: unpacked-IdxInsert)
16:07
Remove C++ style comments. No code changes. (check-in: 42f8aa62 user: drh tags: unpacked-IdxInsert)
14:24
Add the unpacked key fields to OP_IdxInsert for INSERT and UPDATE statements. (check-in: 67602e40 user: drh tags: unpacked-IdxInsert)
2016-11-09
20:14
Comment changes that attempt to better explain the behavior of the "seekResult" field on VdbeCursor objects and the seekResult parameter to sqlite3BtreeInsert() and the OPFLAG_USESEEKRESULT flag on insert opcodes. No changes to code. (check-in: 345b46be user: drh tags: unpacked-IdxInsert)
16:03
Fix a simple comment typo. No changes to code. (check-in: 51d0aed8 user: drh tags: unpacked-IdxInsert)
01:46
Fix typo in the CSV extension. (check-in: b4889588 user: mistachkin tags: trunk)
01:38
Make use of the unpacked key on the OP_IdxInsert on sorters with a LIMIT. (check-in: 42db7cd2 user: drh tags: unpacked-IdxInsert)
01:19
Fix a typo on the OP_IdxInsert documentation. No code changes. (check-in: e4acd982 user: drh tags: unpacked-IdxInsert)
01:07
Add a DISTINCT query to speedtest1.c. Also change INSERT OR REPLACE into just REPLACE. (check-in: 754ee844 user: drh tags: trunk)
00:57
Remove the "experimental" marking from the sqlite3_preupdate interfaces. But be sure all the interface definitions are within documentation. (check-in: d6dd2ad3 user: drh tags: trunk)
00:10
Enhance the OP_IdxInsert opcode to optionally accept unpacked key material. (check-in: 89d958ab user: drh tags: unpacked-IdxInsert)
2016-11-08
19:22
Avoid superfluous cursor seeks in "INSERT OR REPLACE" statements. (check-in: bec5b6d4 user: dan tags: trunk)
17:19
Avoid generating OP_TableLock unnecessary instructions on btrees that are not sharable. (check-in: 8cb8516d user: drh tags: trunk)
16:27
Fix the speedtest1.c test program so that it gives closing "%" wildcards on LIKE searches. (check-in: c2f84f63 user: drh tags: trunk)
00:30
Tweaks to speedtest1.c to better reflect mobile usage based on findings in the "Pocket Data" paper by Kennedy, Ajay, Challen, and Ziarek. (check-in: b5733cae user: drh tags: trunk)
2016-11-07
18:18
Fix OOM error reporting in the json1_group_object() SQL function. Remove an unreachable branch from the JSON1 logic. (check-in: b5409849 user: drh tags: trunk)
15:15
Replace some unreachable branches from the JSON1 extension with assert(). (check-in: 145cd13e user: drh tags: trunk)
13:37
Fix the JSON1 extension so that the JSON validator correctly rejects malformed backslash escapes within string literals. (check-in: 7a635391 user: drh tags: trunk)
2016-11-04
19:09
Merge recent trunk changes, including all the fixes that appeared in version 3.15.1. (check-in: 0e5ffd91 user: drh tags: apple-osx)
12:08
Version 3.15.1 (check-in: 1136863c user: drh tags: release, version-3.15.1, branch-3.15)
12:05
Avoid a crash that can occur after an obscure OOM in the built-in INSTR() function. (check-in: b86b79c4 user: dan tags: trunk)
12:03
Mark the ICU extension functions as deterministic. (check-in: afbbb6c6 user: drh tags: trunk)
11:23
Add an assert() to silence a coverity false-positive. (check-in: 97354093 user: drh tags: trunk)
07:25
Fix a test case in vacuum5.test so that it works with the in-memory journal permutation. (check-in: 81c86401 user: dan tags: trunk)
2016-11-03
21:35
Replace a couple more references to Tcl 8.5 in the Windows build tools. (check-in: 1d0e43c5 user: mistachkin tags: trunk)
19:27
Fix a test case in vacuum5.test so that it works with -DSQLITE_TEMP_STORE=2 and -DSQLITE_ENABLE_ATOMIC_WRITE.. (check-in: 752e14d9 user: dan tags: branch-3.15)
19:24
Fix a test case in vacuum5.test sot aht it works with -DSQLITE_ENABLE_ATOMIC_WRITE. (check-in: 3ca80010 user: dan tags: trunk)
19:01
Fix a test case in vacuum5.test so that it works with -DSQLITE_TEMP_STORE=2. (check-in: f5dd95e2 user: dan tags: trunk)
18:49
Add the SQLITE_FCNTL_WIN32_GET_HANDLE file control. (check-in: 5221e3cc user: drh tags: branch-3.15)
18:44
Increase the version number to 3.15.1. (check-in: ccdcce46 user: drh tags: branch-3.15)
18:38
Escape non-ASCII character from an ICU extension comment. (check-in: ee16fedd user: drh tags: branch-3.15)
18:36
Fix an issue that was causing the new database image to be assembled entirely in heap memory when VACUUMing a database, even if it should use a temp file. This could cause SQLITE_NOMEM errors when vacuuming very large databases on 32-bit systems. (check-in: 3fae483f user: drh tags: branch-3.15)
18:35
Make sure left-join markings are transferred to the virtual scalar subexpressions when decomposing a vector comparison in the ON clause of a LEFT JOIN. Fix for ticket [fef4bb4bd9185ec8f]. (check-in: aba1e22b user: drh tags: branch-3.15)
18:33
If all branches of an OR optimize scan that is the rhs of a LEFT JOIN use the same index, set the index cursor to return NULL values if there are no matches for a row on the lhs. Fix for ticket [34a579141b2c5ac] (check-in: 54eeddec user: drh tags: branch-3.15)
18:31
In the sessions module, avoid recording a change if an UPDATE statement overwrites a column with REAL affinity containing an integer value with the same value. (check-in: 0fc4f0f4 user: drh tags: branch-3.15)
18:30
Avoid using the "direct overflow read" optimization to read large blobs if the pager layer has a wal file open - even if the database header indicates that the db is not a wal database. (check-in: 63cfe197 user: drh tags: branch-3.15)
13:12
In the command-line shell, fix the .imposter command so that it works with indexes on expressions. Fix the ".mode quote" mode so that it works with ".headers ON". (check-in: ba9873da user: drh tags: trunk)
13:01
Add the ".imposter" command to the command-line shell. (check-in: be3ec8fd user: drh tags: trunk)
02:25
Fix an possible NULL pointer deference in the command-line shell that can occur when using imposter mode. (check-in: ad08753a user: drh tags: trunk)
2016-11-02
19:49
Adjust the MSVC makefile to use Tcl8.6 by default. (check-in: def8f598 user: drh tags: trunk)
16:29
When the block sorting optimization is used in a scalar subquery, be sure to exit the loop as soon as the first valid output row is received. Fix for ticket [cb3aa0641d9a4] backported to the 3.8.9 branch. (check-in: 8e4ba115 user: drh tags: branch-3.8.9)
14:50
Fix an issue that was causing the new database image to be assembled entirely in heap memory when VACUUMing a database, even if it should use a temp file. This could cause SQLITE_NOMEM errors when vacuuming very large databases on 32-bit systems. (check-in: 30288453 user: dan tags: trunk)
13:18
Fix a requirement mark. No changes to code. (check-in: d18f61b7 user: drh tags: trunk)
02:17
Use NOT NULL partial indexes when the query is constrained by a single LIKE or GLOB. (check-in: 9b3a3b41 user: drh tags: trunk)
2016-10-31
16:49
Add the SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE sqlite3_dbconfig() option - for disabling SQLite's default checkpoint-on-close behaviour. (check-in: 6d142025 user: dan tags: trunk)
16:16
Add the SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE sqlite3_dbconfig() option - for disabling SQLite's default checkpoint-on-close behaviour. (Closed-Leaf check-in: 093d2fc2 user: dan tags: no-ckpt-on-close)
2016-10-27
14:51
Remove the mutex from test_multiplex.c. (check-in: 6374978e user: dan tags: trunk)
01:02
Make sure left-join markings are transferred to the virtual scalar subexpressions when decomposing a vector comparison in the ON clause of a LEFT JOIN. Fix for ticket [fef4bb4bd9185ec8f]. (check-in: 619f5cc7 user: drh tags: trunk)
2016-10-26
18:41
Small size reduction and performance enhancement in whereScanInit(). (check-in: c23f5ef3 user: drh tags: trunk)
17:57
Small size reduction and performance improvement in whereScanNext(). (check-in: d861ee17 user: drh tags: trunk)
16:05
If all branches of an OR optimize scan that is the rhs of a LEFT JOIN use the same index, set the index cursor to return NULL values if there are no matches for a row on the lhs. Fix for ticket [34a579141b2c5ac] (check-in: ec9dab80 user: dan tags: trunk)
15:46
If all branches of an OR optimize scan that is the rhs of a LEFT JOIN use the same index, set the index cursor to return NULL values if there are no matches for a row on the lhs. (Closed-Leaf check-in: e7b9bc67 user: dan tags: leftjoin-or-fix)
13:58
Merge the SQLITE_ENABLE_URI_00_ERROR compile-time option. (check-in: 86675ae0 user: drh tags: trunk)
13:44
Add extra tests to check the result of including a %00 escape in a URI when ENABLE_URI_00_ERROR is defined. (Closed-Leaf check-in: 1aaa06e3 user: dan tags: uri-00-error)
12:58
Add an elapsed-time output for faststat1.c. (check-in: 71167951 user: drh tags: est_count_pragma)
12:15
Add compile time option SQLITE_ENABLE_URI_00_ERROR. If defined, any "%00" escape found in a URI is treated as an error. (check-in: e8a9bfec user: dan tags: uri-00-error)
2016-10-25
19:39
Simplifications to faststat1.c. Fix a bug in sqlite3MovetoProportional() for very large b-trees. (check-in: f7f78147 user: drh tags: est_count_pragma)
19:21
Further refinements to the faststat1.c utility. (check-in: b051fd19 user: drh tags: est_count_pragma)
18:28
Enhance faststat1.c to deal better with WITHOUT ROWID tables. (check-in: 65444f2e user: drh tags: est_count_pragma)
17:28
Merge recent trunk changes, and especially the PRAGMA index_info enhancement which is needed on this branch. (check-in: c3570e46 user: drh tags: est_count_pragma)
15:39
Enhance the "PRAGMA index_info" and "PRAGMA index_xinfo" statements so that they work on WITHOUT ROWID tables and provide information about the underlying index btree that implements the WITHOUT ROWID table. (Leaf check-in: fe49fb03 user: drh tags: index-info-on-table)
15:06
Add test case to demonstrate a "BEGIN EXCLUSIVE" command returning SQLITE_BUSY_SNAPSHOT. (check-in: b1158564 user: dan tags: trunk)
13:57
First attempt at a utility program to compute sqlite_stat1 without doing a full table scan. (check-in: 7b83581a user: drh tags: est_count_pragma)
2016-10-24
01:01
Performance optimization in moveToRoot(). Avoid repeated validity checking of the root page on each call. Once is enough. (check-in: 98795c2d user: drh tags: trunk)
2016-10-22
01:22
In the sessions module, avoid recording a change if an UPDATE statement overwrites a column with REAL affinity containing an integer value with the same value. (check-in: 5f3e6028 user: drh tags: trunk)
2016-10-21
21:21
In the sessions module, avoid recording a change if an UPDATE statement overwrites a column with REAL affinity containing an integer value with the same value. (Closed-Leaf check-in: b861328a user: dan tags: sessions-fix)
18:01
When reading from an index, the shared-cache lock must be on the corresponding table. (check-in: 04fe12b5 user: drh tags: est_count_pragma)
17:45
Merge updates from trunk, and especially the ".mode quote" enhancement to the shell. (check-in: 0c8a5b88 user: drh tags: est_count_pragma)
17:39
Add ".mode quote" to the command-line shell. (check-in: c4f5fa78 user: drh tags: trunk)
17:25
Add the btree_sample(INDEX,LOCATION,LIMIT) pragma. (check-in: affc2ef5 user: drh tags: est_count_pragma)
15:36
Fix problems in the est_count pragma for indexes and WITHOUT ROWID tables. (check-in: c39fd9b8 user: drh tags: est_count_pragma)
10:49
Avoid using the "direct overflow read" optimization to read large blobs if the pager layer has a wal file open - even if the database header indicates that the db is not a wal database. (check-in: b54c15f1 user: dan tags: trunk)
10:09
If SQLITE_DIRECT_OVERFLOW_READ is defined at compile time, add "DIRECT_OVERFLOW_READ" to the list of symbols returned by "PRAGMA compile_options". (check-in: b7d9727b user: dan tags: trunk)
2016-10-20
22:02
Experimental est_count pragma. (check-in: 340822af user: drh tags: est_count_pragma)
18:20
Add the ability for the PRAGMA statement to accept multiple arguments. Currently all arguments other than the first are ignored. (Leaf check-in: fd81d8a4 user: drh tags: multi-arg-pragma)
11:48
Add test case to incrblob4.test. No changes to code. (check-in: fd9c6ff0 user: dan tags: trunk)
2016-10-18
16:36
Minor simplification of the comparison opcodes. (check-in: 56474ebc user: drh tags: trunk)
15:29
Fix harmless uninitialized variable warnings in speedtest1.c. (check-in: 2aa7a03b user: drh tags: trunk)
14:35
Add the --repeat option to speedtest1.c and speed-check.sh. (check-in: 6ca0e06b user: drh tags: trunk)
2016-10-17
23:44
Fix SQLITE_DBCONFIG_REQUIRE_TXN so that it allows BEGIN IMMEDAITE and BEGIN EXCLUSIVE to run outside of a transaction. (Leaf check-in: 29997f79 user: drh tags: require-write-txn)
19:00
Escape non-ASCII character from an ICU extension comment. Cherrypick of [5ec02ecf3d20ce7e]. (Leaf check-in: a3a96c4d user: mistachkin tags: mutexDbg)
18:59
Enhancments to Win32 mutex debugging. (check-in: 2fb9a5dd user: mistachkin tags: mutexDbg)
18:44
Escape non-ASCII character from an ICU extension comment. (check-in: 5ec02ecf user: mistachkin tags: trunk)
18:33
Corrections to a couple recently added 'filectrl.test' results. (check-in: 3d89dc45 user: mistachkin tags: trunk)
15:28
Changes to support interrupting a checkpoint using sqlite3_interrupt(). (check-in: c88d36e2 user: dan tags: trunk)
00:48
Small size reduction and performance increase in the string duplicator. (check-in: cda998f0 user: drh tags: trunk)
2016-10-15
18:37
Add documentation for the OP_SorterInsert opcode, formerly omitted by mistake. No changes to code. (check-in: 16d88a90 user: drh tags: trunk)
08:56
Add test case to hook.test. No changes to non-test code. (check-in: 2674d779 user: dan tags: trunk)
2016-10-14
21:27
Add the SQLITE_FCNTL_WIN32_GET_HANDLE file control. (check-in: 16039be3 user: mistachkin tags: trunk)
21:16
Bump the version number in anticipation of the next development cycle. (check-in: aa6de9c4 user: drh tags: trunk)
10:20
Version 3.15.0 (check-in: 70787558 user: drh tags: trunk, release, version-3.15.0)
2016-10-13
12:56
Take care to avoid integer overflow when doing the initial page cache allocation with an excessively large cache_size setting. (check-in: 4d66ac98 user: drh tags: trunk)
2016-10-12
18:55
Avoid reading the -1-th element of an array in the query planner. Fix to a bug introduced by check-in [8e2b25f9b8a7] from earlier today. Curiously, the problem only appeared on 32-bit systems. (check-in: 443913d5 user: drh tags: trunk)
18:26
Add to sqlite3_analyzer command-line options --version and --tclsh, and also the undocumented --debug option. (check-in: e87d02d2 user: drh tags: trunk)
15:15
New testcase() macros to ensure coverage of the ORDER BY LIMIT optimization code in where.c. (check-in: 61f05269 user: drh tags: trunk)
14:48
Fix a problem affecting queries that match the pattern (... WHERE ipk IN (....) ORDER BY ? LIMIT ?). Fix for [96c1454c]. (check-in: 8e2b25f9 user: dan tags: trunk)
2016-10-10
14:48
Remove a stray line from session4.test causing a memory leak. No changes to SQLite code. (check-in: 6624c496 user: dan tags: trunk)
14:34
When handling ORDER BY expressions, do not assume all values of an indexed expressions are distinct. Fix for [4766f444]. (check-in: aebe429e user: dan tags: trunk)
13:29
Make sure indexes on expressions skip over initial NULL values in the index. Fix for ticket [4baa464912129477f3c9] (check-in: 71797ba4 user: drh tags: trunk)
10:06
Fix a case in which the rtree module was ignoring an OOM while generating an error message. (check-in: 788f86be user: dan tags: trunk)
2016-10-08
16:10
Update test/trace3.test to account for the fact that casting a pointer to a 64-bit signed integer might produce a negative value. (check-in: 010ec225 user: dan tags: trunk)
13:34
Corrections to Lemon documentation. No SQLite changes. (check-in: c568ae3e user: drh tags: trunk)
11:55
Add missing "static" to internal function whereRangeVectorLen(). (check-in: cbed3d75 user: dan tags: trunk)
09:21
Updates to the tool/warnings.sh script to make it easier to use on OpenBSD. (check-in: dbe2997f user: dan tags: trunk)
2016-10-05
20:14
Fix some compiler warnings in fts5. (check-in: b066637b user: dan tags: trunk)
20:10
Fix harmless compiler warnings. (check-in: 2dde3375 user: drh tags: trunk)
15:04
Add a test case for the fix in [a596b7c6cc]. (check-in: b2ef39b1 user: dan tags: trunk)
15:02
Do not set MEM_Blob unless the appropriate fields of the Mem object have been correctly initialized. (check-in: a596b7c6 user: drh tags: trunk)
01:33
Fix the backup_malloc.test script so that it works on Windows. (check-in: d080012d user: drh tags: trunk)
2016-10-04
12:20
Fix a problem with the lempar.c parser template. (check-in: 3a9d802f user: drh tags: trunk)
00:47
Do not bother to initialize unused fields in the BtreePayload object. (check-in: b10d0f93 user: drh tags: trunk)
2016-10-03
18:13
Allow deterministic functions in the WHERE clause of a partial index. (check-in: c6e9b942 user: drh tags: trunk)
16:33
Size and performance optimizations on the sqlite3ExprAssignVarNumber() routine. (check-in: 109852e5 user: drh tags: trunk)
15:28
Avoid unnecessary strlen() calls in sqlite3ExprAssignVarNumber() by passing in the token length from the parser. (check-in: d15ae2e5 user: drh tags: trunk)
14:44
Avoid unnecessary memset() calls in the query optimizer. (check-in: 5bb7cde0 user: drh tags: trunk)
12:56
Fix an obsolete comment on a variable definition in expr.c. No code changes. (check-in: 012ff6dd user: drh tags: trunk)
02:59
Make sure the sqlite_sequence table is updated when an optional xfer optimization is used. Fix for ticket [7b3328086a5c1]. (check-in: 81e4d4f8 user: drh tags: trunk)
01:21
Allocate Parse objects off of the stack where appropriate for a substantial performance increase and a size reduction. (check-in: ea8affa9 user: drh tags: trunk)
2016-10-01
23:55
Add SQLITE_USE_ALLOCA to the --lean configuration in speed-check.sh. (check-in: fe07609e user: drh tags: trunk)
21:43
Rearrange fields in the Parse object to reduce the amount of initialization required. (check-in: 361940b4 user: drh tags: trunk)
20:43
Reduce the width of a memset() to avoid double-initializing some variables. (check-in: 34edbfd1 user: drh tags: trunk)
19:32
Remove an unnecessary memset() call. (check-in: a76bff74 user: drh tags: trunk)
19:21
Use sqlite3DbMallocRawNN() where appropriate, instead of sqlite3DbMallocRaw(). (check-in: 54a449a4 user: drh tags: trunk)
16:53
Make sure deleting an unused prepared statement does not reference uninitialized fields in the structure. (check-in: 7983eef0 user: drh tags: trunk)
11:39
Avoid accessing Vdbe.pc if it is uninitialized. Check Vdbe.magic first. (check-in: 6ac6e446 user: drh tags: trunk)
00:37
Avoid unnecessary zeroing of fields in the Vdbe object when it is allocated. (check-in: 1e21bbe8 user: drh tags: trunk)
2016-09-30
22:24
Avoid initializing the column-cache section of the Parse object, since entries in the cache will be initialized as they are used, and avoiding the initial memset() saves many CPU cycles. (check-in: 63cf7eaf user: drh tags: trunk)
21:20
Fix an always-true conditional left over from the previous commit. (check-in: ab12fce3 user: drh tags: trunk)
20:22
Fix the Parse.aColCache column cache so that all of the valid entries are in the first Parse.nColCache slots. (check-in: 60285020 user: drh tags: trunk)
19:14
Another simplification to the Parse object. (check-in: c1419727 user: drh tags: trunk)
18:35
Remove unnecessary fields from the Parse object. (check-in: 814e41da user: drh tags: trunk)
17:46
Avoid unnecessary Mem initializations when generating a new sqlite3_stmt object. (check-in: 47ae1cda user: drh tags: trunk)
2016-09-29
20:28
Small size and performance optimization to sqlite3VdbeChangeP5(). (check-in: 3c93c8f5 user: drh tags: trunk)
19:50
Remove the peep-hole optimization of removing OP_Close opcodes that come before OP_Halt, as the extra work of removing those opcodes uses more cycles than just running them. (check-in: 984a96d7 user: drh tags: trunk)
19:27
Size and performance optimization to sqlite3ValueFromExpr() (check-in: 945f82bc user: drh tags: trunk)
15:53
Clarification and typo-fixes in comments. No changes to code. (check-in: e2cd79aa user: drh tags: trunk)
2016-09-28
20:42
Use Knuth multiplicative hashing for the symbol table. (check-in: cc29ddd6 user: drh tags: trunk)
16:15
Merge recent enhancements from trunk. (check-in: 06014163 user: drh tags: apple-osx)
16:05
Two more typo fixes in comments. (check-in: 40c0fb0a user: drh tags: trunk)
16:04
Fix typos in comments. No code changes. (check-in: 5bbd071d user: drh tags: trunk)
2016-09-27
00:09
Update requirements marks due to improvements in the wording of documentation. No changes to code. (check-in: bf903b2e user: drh tags: trunk)
00:03
Fix FTS3 test cases due to the flattener change of the previous check-in. (check-in: 0c8b9b21 user: drh tags: trunk)
2016-09-26
14:39
When flattening a query of the form "SELECT * FROM (SELECT * FROM tbl WHERE x=?) WHERE y=?", ensure that the final WHERE clause is "x=? AND y=?" instead of "y=? AND x=?". Although it is still not guaranteed, this makes the order in which WHERE clause terms are processed comport more closely to users expectations. (check-in: cf7f9e6d user: dan tags: trunk)
12:38
Inline the relevent parts of sqlite3ExprAlloc() into spanExpr(), for a performance improvement. (check-in: fe89225e user: drh tags: trunk)
2016-09-24
17:42
Omit the LikeOp object from the parser. Change more sqlite3PExpr() calls into sqlite3ExprAlloc() calls. (check-in: 795454a3 user: drh tags: trunk)
01:41
Add -DSQLITE_MAX_EXPR_DEPTH=0 to the --lean option on speed-check.sh. (check-in: a8cb1390 user: drh tags: trunk)
2016-09-23
21:36
Add the EP_Leaf flag bit to the Expr.flags field to indicate Expr nodes that do not have substructure. Use that bit to avoid unnecessary recursion. (check-in: 8a6ea455 user: drh tags: trunk)
20:59
Use sqlite3ExprAlloc() instead of sqlite3PExpr() for leaf nodes in the expression tree, where appropriate. This is both smaller and faster. (check-in: afac0709 user: drh tags: trunk)
18:13
New test case for the ORDER BY LIMIT optimization. (check-in: 9a5a489d user: drh tags: trunk)
18:06
Fix the ORDER BY LIMIT optimization backport so that it works when the ORDER BY uses the DESC direction. (check-in: 0c3cafb7 user: drh tags: branch-3.8.9)
2016-09-22
21:37
Fix a potential null-pointer dereference and crash in the case where one thread is calling sqlite3_column_text() and another thread is calling sqlite3_step() on the same prepared statement at the same instant. (check-in: ee1382a3 user: drh tags: trunk)
18:53
Remove the internal sqlite3CodeOnce() interface, replacing it with a direct call to sqlite3VdbeAddOp0(v,OP_Once). Slightly smaller and faster. (check-in: c3774c6a user: drh tags: trunk)
18:46
Makefile changes to support building winsqlite3.dll using STDCALL rather than CDECL. (check-in: 5e892d60 user: mistachkin tags: trunk)
2016-09-21
23:58
Fix speedtest1.c so that it works with SQLITE_OMIT_DEPRECATED. Add the --lean and --cachesize options to speed-check.sh. (check-in: 7785b3a2 user: drh tags: trunk)
19:43
Fix a problem with the fts5 auxiliary function API causing a crash when a query contained a phrase of zero terms. (check-in: 0741812d user: dan tags: trunk)
19:00
Do not run vacuummem.test if ENABLE_MEMORY_MANAGEMENT is defined. (check-in: 4a613d85 user: dan tags: trunk)
18:18
Fix obsolete requirements marks. Add new tests for VACUUM of attached databases. (check-in: 2b44f9aa user: drh tags: trunk)
17:53
Avoid running vacuum5.test in auto-vacuum mode. (check-in: be184bef user: dan tags: trunk)
17:47
Do not run test "delete_db.test" with either the journaltest or inmemoryjournal permutations. Ensure that the multiplexor tests in delete_db.test are performed in non-autovacuum mode. (check-in: 46b7d19e user: dan tags: trunk)
14:41
Update the fts5vocab table to handle "ORDER BY term" efficiently. (check-in: d4928fb5 user: dan tags: trunk)
2016-09-20
22:04
Improved implementation of 64-bit signed integer multiply that correctly detects overflow (and promotes to floating-point) in some corner cases. Fix for ticket [1ec41379c9c1e400] (check-in: db3ebd7c user: drh tags: trunk)
17:49
Fix harmless compiler warning. (check-in: 72429063 user: mistachkin tags: trunk)
17:38
Fix typo in comment. (check-in: bd3ecbb5 user: mistachkin tags: trunk)
01:46
Further performance enhancements in zeroblob() handling. (check-in: 21b0e3b7 user: drh tags: trunk)
01:19
Avoid unnecessary calls to ExpandBlob() for smaller and faster code. (check-in: 5e196fd1 user: drh tags: trunk)
2016-09-19
23:39
Very small optimization in the bytecode engine. (check-in: 46002511 user: drh tags: trunk)
11:00
Fix a segfault introduced by the row-value enhancement that comes up on a skip-scan where the first term of the index is unconstrained and the second term is of the form "columm IN (SELECT...)". (check-in: 2401ea5a user: drh tags: trunk)
10:24
Improved performance in sqlite3ExprCodeTarget(). (check-in: 75146165 user: drh tags: trunk)
02:19
Small performance optimization in the expression walker. (check-in: c6e6afb9 user: drh tags: trunk)
2016-09-18
16:08
Revise the implementation of OP_Once so that it is smaller, faster, and uses less memory. This also fixes an obscure bug introduced 3 days ago by check-in [5990a1bdb4a073]. (check-in: 6bf5ba10 user: drh tags: trunk)
2016-09-17
22:46
Minor enhancement to the TclKit batch tool: it should download the TclKit EXE alone when the TCLKIT_NOENV environment variable is set. (check-in: baceb988 user: mistachkin tags: trunk)
19:34
Small performance optimization in the freeSpace() routine of btree.c. (check-in: 63962e2a user: drh tags: trunk)
17:39
Improved description of the ElseNotEq opcode in comments. No changes to code. (check-in: e011435e user: drh tags: trunk)
2016-09-16
20:39
Fix typo in the name of a Win32 string conversion routine. Replace several uses of raw_printf() with utf8_printf() in the shell. (check-in: 6fc95dd7 user: mistachkin tags: trunk)
19:42
If no KEY is specified on ATTACH, copy the main schema key if the key size is non-zero. In other words, allow for -1 as a valid key size in support of the --textkey to SEE. (check-in: 03573887 user: drh tags: trunk)
19:11
Fix problems with the fileRead() function in the command-line shell. Fix a harmless memory leak in the command-line shell, to make validation testing easier. (check-in: e660402e user: drh tags: trunk)
18:53
Remove the #ifdef SQLITE_DEBUG from around the testcase_glob() routine in the command-line shell. (check-in: 9885dac4 user: drh tags: trunk)
17:50
Merge recent changes from trunk. (check-in: e3d9efa2 user: drh tags: apple-osx)
16:30
Fix a problem causing incorrect code to be generated for IN constraints like "a IN (1, 2, 3)" where column "a" is a rowid column with an extra UNIQUE index created on it. Ticket [0eab1ac759]. (check-in: a92aee55 user: dan tags: trunk)
15:42
Replace a faulty assert() with a testcase() to assure the condition is tested. Ticket [0eab1ac7591f]. (check-in: a49bc0a8 user: drh tags: trunk)
14:50
Add WHERETRACE macros showing every entry and exit from whereLoopAddBtreeIndex(). (check-in: e7653dec user: drh tags: trunk)
11:53
Fix SQLITE_OMIT_AUTHORIZATION so that it compiles cleanly. (check-in: a3e3b3e1 user: drh tags: trunk)
02:52
In the shell, make ".testcase" and ".check" available in all configurations, not just SQLITE_DEBUG. All testcases to be named. Show the result of each testcase on stdout. (check-in: 792afefa user: drh tags: trunk)
00:26
In the command-line shell, add the --new option to the ".open" command. Also, report the current database filename as part of the ".show" command. (check-in: 8e5c9203 user: drh tags: trunk)
2016-09-15
21:35
Add the ".testcase" and ".check" dot-commands in the shell, when compiled using SQLITE_DEBUG. (check-in: 62289f27 user: drh tags: trunk)
19:15
Omit the sqlite3Apis constant object when compiling with SQLITE_OMIT_LOAD_EXTENSION, since it is not used. (check-in: 7b104613 user: drh tags: trunk)
14:54
Remove no-op code (adding an assert() to prove that the code was no-op) in the text affinity logic of the bytecode engine comparison operators. (check-in: b9f5bdbf user: drh tags: trunk)
05:47
Fix a typo in a comment in sqlite.h.in. No changes to code. (check-in: 12df7152 user: dan tags: trunk)
00:32
Slight size reduction and performance increase in sqlite3VdbeHalt(). (check-in: 5990a1bd user: drh tags: trunk)
00:04
Optimization to vdbeRecordCompareInt() makes it slightly smaller and faster. (check-in: 5a2a7712 user: drh tags: trunk)
2016-09-14
18:56
Update comments used to generate API documentation to include the new "[dateof:3.X.Y]" notation for dates of release where appropriate. No changes to code. (check-in: 55f7f8ee user: drh tags: trunk)
01:43
Backport the ORDER BY LIMIT optimization to version 3.8.9. (check-in: db361482 user: drh tags: branch-3.8.9)
2016-09-12
18:50
Version 3.14.2 (check-in: 29dbef4b user: drh tags: release, branch-3.14, version-3.14.2)
14:23
Fix a bug in sqldiff causing it to confuse blobs zero bytes in size with NULL values. (check-in: 264e9c75 user: dan tags: trunk)
13:32
Add missing "finish_test" command to vacuum5.test. (check-in: 02f40c3b user: dan tags: trunk)
09:28
Have releasetest.tcl delete all test files except for "testfixture", "testfixture.exe", "sqlite3", "sqlite3.exe", "test.log" and "test-out.txt" after each test run is finished. Passing the "--keep" option restores the old behaviour. (check-in: e0e042dc user: dan tags: trunk)
2016-09-10
19:51
Changes to give a warning-free build with SQLITE_OMIT_INCRBLOB and SQLITE_OMIT_SHARED_CACHE. (check-in: 711c5917 user: drh tags: trunk)
14:43
Add test code to delete an SQLite database and its auxiliary files. (check-in: 8a9d1281 user: dan tags: trunk)
2016-09-09
20:26
Make the new file test_delete.c portable to MSVC on Windows. (Closed-Leaf check-in: 0e3ace39 user: mistachkin tags: test_delete)
20:23
Remove an unnecessary call to sqlite3VdbeMemExpandBlob() when casting to text. (check-in: 19e2e595 user: drh tags: trunk)
20:00
Add new file test_delete.c, containing test code for deleting an sqlite database. (check-in: fb0b95e9 user: dan tags: test_delete)
19:33
Performance improvements to the comparison operators in the bytecode engine. (check-in: 37803b19 user: drh tags: trunk)
15:12
Fix a out-of-order variable declaration for some compile-time configurations. (check-in: 6ac932c9 user: drh tags: trunk)
13:23
In releasetest.tcl, the --srcdir option is automatic, so no need to mention it in the --help output. (check-in: 2bdd838e user: drh tags: trunk)
13:17
Fix an obsolete comment in the releasetest.tcl source code. (check-in: afaaa276 user: drh tags: trunk)
12:29
In releasetest.tcl: Improved testing for uncommitted changes. If uncommitted changes are seen, exit immediately unless the --force option is used. (check-in: 9a14e6c4 user: drh tags: trunk)
2016-09-08
23:18
Remove an extra space before function names in the amalgamation. Cherrypick of [20f3c7436f6a8a7bab39]. (check-in: a04a21ad user: mistachkin tags: branch-3.14)
23:16
Remove an extra space before function names in the amalgamation. (Closed-Leaf check-in: 20f3c743 user: mistachkin tags: callbackConv)
23:12
Issue a warning and prompt the user to continue if the releasetest.tcl script is run in a checkout with uncommitted changes. (check-in: 30e917ff user: drh tags: trunk)
2016-09-07
20:12
Fix the sqlite3_trace_v2() interface so that it goes disabled if either the callback or mask arguments are zero, in accordance with the documentation. Cherrypick of [37e6c54b1afc6348]. (check-in: e9acf616 user: mistachkin tags: branch-3.14)
19:54
Add support for row-value comparisons, including IN operators, and row-value updates in the UPDATE statement. (check-in: ddb5f055 user: drh tags: trunk)
19:47
Fix the extra comments (added with -DSQLITE_ENABLE_EXPLAIN_COMMENTS) so that the sense of <, <=, >, and >= tests is correct and so that the SQLITE_STOREP2 version is shown correctly. Cherrypick of [4d43c4698eef4e3d]. (check-in: c844f3da user: mistachkin tags: branch-3.14)
19:37
Fix a problem handling expressions like "(a, b) IN (SELECT ... ORDER BY 1, 2)" when there is an index on "a" but not "b". (Closed-Leaf check-in: 7f2c5c9e user: dan tags: rowvalue)
19:31
Merge selected test fixes from trunk. (check-in: 71866b36 user: mistachkin tags: branch-3.14)
19:23
Sync up the MSVC makefiles. (check-in: b3777e1f user: mistachkin tags: branch-3.14)
18:20
Merge recent enhancements from trunk. (check-in: 00759af0 user: drh tags: apple-osx)
18:11
Add the ext/misc/memvfs.c extension that implements a VFS for read-only database files contained in memory. (check-in: 12b7782a user: drh tags: trunk)
13:30
Simplify the affinity handling logic in codeAllEqualityTerms(). Logically the same, just a little easier to read and understand. (check-in: bbab9621 user: drh tags: rowvalue)
13:20
Fix the ".read" command in the command-line shell so that it understands that the input is not interactive. (check-in: 7c2c0d1d user: drh tags: branch-3.14)
13:12
Merge fixes from trunk. (check-in: 193f036c user: drh tags: rowvalue)
12:47
Version number to 3.14.2. (check-in: 925ef2f9 user: drh tags: branch-3.14)
12:41
Makefile changes to support building winsqlite3.dll using STDCALL rather than CDECL. (check-in: af951e03 user: drh tags: branch-3.14)
12:20
Correct affinity computations for a SELECT on the RHS of an IN operator. Fix for ticket [199df4168c]. (check-in: 2d1983ff user: drh tags: branch-3.14)
12:08
The ORDER BY LIMIT optimization is not valid unless the inner-most IN operator loop is actually used by the query plan. Fix for ticket [0c4df46116e90f92]. (check-in: b4f8be1f user: drh tags: branch-3.14)
11:27
Fix a problem in internal function sqlite3OpenTableAndIndices causing an operand of an unrelated VM instruction to be overwritten. Fix for [ef360601]. (check-in: e5c30f22 user: drh tags: branch-3.14)
10:10
Fix the ".read" command in the command-line shell so that it understands that the input is not interactive. (check-in: d8451fe8 user: drh tags: trunk)
01:51
The ORDER BY LIMIT optimization is not valid unless the inner-most IN operator loop is actually used by the query plan. Fix for ticket [0c4df46116e90f92]. (check-in: 820644b8 user: drh tags: trunk)
2016-09-06
19:08
Remove obsolete vector-IN test cases. Fix a bad testcase() macro. (check-in: ab3f8f19 user: drh tags: rowvalue)
18:51
Fix corer cases of vector IN operators where the RHS is a compound SELECT that includes an ORDER BY clause. (check-in: 8329ac6f user: drh tags: rowvalue)
17:21
Remove an unnecessary branch from expr.c. (check-in: 7cc9746c user: dan tags: rowvalue)
17:13
Avoid unnecessary memory allocations for aiMap in codeEqualityTerm(). (check-in: 70319c3d user: drh tags: rowvalue)
16:53
Avoid a NULL pointer deref in codeAllEqualityConstraints() following an OOM. (check-in: c6e528c1 user: drh tags: rowvalue)
16:33
Simplify the fix in commit [7d9bd22c]. (check-in: bd5a3420 user: dan tags: rowvalue)
15:25
Fix the header comment on codeEqualityTerm(). (check-in: b7e710e4 user: drh tags: rowvalue)
14:58
Fix a problem handling (a, b) IN (SELECT ...) expressions when there is an index on just one of "a" or "b". (check-in: 231c72d9 user: dan tags: rowvalue)
14:37
Enhance the sqlite3GetTempRange() and sqlite3ReleaseTempRange() internal routines so that they use sqlite3GetTempReg() and sqlite3ReleaseTempReg() when nReg==1. (check-in: 4071da2f user: drh tags: rowvalue)
12:04
Fix a typo in a comment in expr.c. (check-in: 288e934f user: dan tags: rowvalue)
2016-09-05
22:50
Simplified logic to extract a column from a row value. (check-in: e8f105c3 user: drh tags: rowvalue)
20:46
Sync up the MSVC makefiles. (check-in: f66d0d8c user: mistachkin tags: callbackConv)
20:40
Merge updates from trunk. (check-in: ea635bf9 user: mistachkin tags: callbackConv)
19:57
Fix an assert() so that it does C-compiler does not combine an assert() conditional with a production code conditional and thereby confuse the mutation testing script. (check-in: 2fa5288a user: drh tags: rowvalue)
15:02
Simplifications to the SQLITE_KEEPNULL flag on VDBE comparison operators. (check-in: 96269f01 user: drh tags: rowvalue)
12:12
Do vector comparison size checking early - at name resolution time - to forestall future problems. (check-in: ae127bcc user: drh tags: rowvalue)
12:02
Catch vector size mismatch problems during name resolution to avoid later problems. (Closed-Leaf check-in: 56562a03 user: drh tags: early-vector-size-check)
09:44
Fix a crash that could occur under certain circumstances if the vectors on either side of a comparison operator were of a different size. (check-in: 42670935 user: dan tags: rowvalue)
2016-09-03
19:52
Fix a problem causing the affinity of sub-select row-value elements to be ignored in some contextes. (check-in: 7d9bd22c user: dan tags: rowvalue)
16:24
Merge the fuzzershell enhancement from trunk. (check-in: ed206048 user: drh tags: rowvalue)
16:23
Build the generate_series(START,END,STEP) table-valued function into fuzzershell, to make it easier to construct compact test cases that contain actual data. (check-in: 672c21bc user: drh tags: trunk)
15:31
Consider the affinity of "b" when using an "a IN (SELECT b ...)" expression with an index on "a". Fix for [199df416]. (check-in: f5e49855 user: dan tags: rowvalue)
01:46
Performance optimizations. (check-in: f1d06c49 user: drh tags: rowvalue)
2016-09-02
23:56
Merge recent changes from trunk. (check-in: c7271fbd user: drh tags: rowvalue)
21:34
Add a test case for the OOM handled by the previous commit. (check-in: 9bdf7ca1 user: dan tags: trunk)
21:17
Correctly detect an OOM occurring in the setDestPgsz() subroutine of backup. (check-in: d9d8a048 user: drh tags: trunk)
17:27
The previous commit could miss an SQLITE_NOMEM error. This commit catches it. (Closed-Leaf check-in: 3a9f4750 user: dan tags: mistake)
17:18
Within a backup operation, ensure that a read-transaction is opened on the source database before its page size is read. This ensures the page-size used to write to the backup database is the same as its actual page-size, which is important for ZipVFS databases. (check-in: 7908fc60 user: dan tags: trunk)
2016-09-01
14:03
Have "sqldiff --rbu" ignore rows with NULL values in primary key fields. RBU can't handle such rows and the documentation already says sqldiff ignores them. Because the code now uses "=" instead of "IS" to filter on primary key columns, diffs on virtual tables are faster now too. (check-in: f4ba894a user: dan tags: trunk)
09:35
If SQLITE_ENABLE_ZIPVFS is defined, journal_mode=off is configured and a savepoint or statement rollback is attempted, move the pager into the error state to prevent the transaction from being committed. This makes it safe to use journal_mode=off with zipvfs under some conditions. (check-in: 38d31e18 user: dan tags: trunk)
2016-08-29
14:18
Use some of the example code from the sessions documenatation in the sessions test cases. (check-in: 6602974d user: dan tags: trunk)
2016-08-27
20:21
Fix typos in comments. No changes to running code. (check-in: a07269f2 user: drh tags: trunk)
18:35
Fix some comments in sqlite3session.h. No changes to code. (check-in: 78cd64e2 user: dan tags: trunk)
18:34
Fixes to fts5 snippet() function. (check-in: d464a7b1 user: dan tags: trunk)
14:13
Merge updates from trunk. (check-in: 082fd5f8 user: drh tags: rowvalue)
14:05
Fix the extra comments (added with -DSQLITE_ENABLE_EXPLAIN_COMMENTS) so that the sense of <, <=, >, and >= tests is correct and so that the SQLITE_STOREP2 version is shown correctly. These changes are already in the rowvalue branch but are added here since they are technically unrelated to rowvalue. (check-in: 4d43c469 user: drh tags: trunk)
01:41
Fix the "Synopsis" on the OP_Lt, OP_Le, OP_Gt, and OP_Ge opcodes, which has been backwards for time out of mind. (check-in: f51248dc user: drh tags: rowvalue)
2016-08-26
22:09
Fix a minor problem in sqlite3FindInIndex() related to rowids being used as part of the index. (check-in: 829f802b user: drh tags: rowvalue)
21:15
Fix the sqlite3FindInIndex() to ensure that it always uses a prefix of the index and uses no repeated columns. Enhanced comments. (check-in: b9fc89e4 user: drh tags: rowvalue)
19:54
Add an EXPLAIN QUERY PLAN line for when a index is used to implement an IN operator. (check-in: 171aa833 user: drh tags: rowvalue)
19:47
Add test cases to rowvalue2.test. (check-in: 078bb69e user: dan tags: rowvalue)
19:31
Enhance sqlite3FindInIndex() so that it is able to make use of the primary keys at the end of an index. (check-in: 4b589fbf user: drh tags: rowvalue)
18:17
Fix a post-OOM crash in updateRangeAffinityStr(). Add several ALWAYS() macros on unreachable branches. (check-in: 87d40195 user: drh tags: rowvalue)
17:54
Fix a problem with affinity changes and vector range comparisons. (check-in: b34413ac user: dan tags: rowvalue)
13:19
Allow ROWID values in indexed vector comparisons. (check-in: b0cc6be4 user: drh tags: rowvalue)
12:00
Fix a problem in internal function sqlite3OpenTableAndIndices causing an operand of an unrelated VM instruction to be overwritten. Fix for [ef360601]. (check-in: 70901479 user: dan tags: trunk)
04:32
Rename a test procedure in 'speed3.test' to avoid a name collision. (check-in: 84de17bc user: mistachkin tags: trunk)
03:42
Comment improvements. Put ALWAYS and NEVER macros on three unreachable branches. (check-in: 39761700 user: drh tags: rowvalue)
02:10
Adapt the special case of '$' in item names for test 'vtabH-3.1' as well. (check-in: e4aeaa2b user: mistachkin tags: trunk)
01:47
Make the test 'vtabH-3.1' work when there are less than 5 top-level items. (check-in: 328f79bb user: mistachkin tags: trunk)
01:17
Support running the fstree tests in 'vtabH.test' on Windows when not using the system drive. (check-in: 3680f95f user: mistachkin tags: trunk)
01:02
Remove an unreachable branch from sqlite3ExprAffinity() (check-in: 9d96f614 user: drh tags: rowvalue)
2016-08-25
23:24
Fix typos in 'vtabF.test' file. No changes to code. (check-in: a8546fee user: mistachkin tags: trunk)
22:31
Merge recent changes from trunk. (check-in: 5789aab8 user: drh tags: rowvalue)
22:06
Fix the sqlite3_trace_v2() interface so that it goes disabled if either the callback or mask arguments are zero, in accordance with the documentation. (check-in: 37e6c54b user: drh tags: trunk)
21:14
Refactor the sqlite3ExprCodeIN() routine for improved maintainability. (check-in: b56705ae user: drh tags: rowvalue)
17:47
Another fix in the IN-operator algorithm description. (check-in: f474aeac user: drh tags: rowvalue)
17:40
Further refinement of the in-operator.md documentation. (check-in: df064837 user: drh tags: rowvalue)
15:46
Improvements to IN operator code generator comments. Avoid unnecessary Copy operations on the LHS of the IN operator. (check-in: b6344298 user: drh tags: rowvalue)
14:23
Corrections to the IN-operator notes. (check-in: 25033ee9 user: drh tags: rowvalue)
14:00
Add notes on the implementation of the IN operator. (check-in: d256b2ca user: drh tags: rowvalue)
2016-08-24
21:54
Simplified VDBE code for the vector NOT IN null-scanning loop. (check-in: 7ae504e6 user: drh tags: rowvalue)
21:24
Improved extended comments of comparison operators when the SQLITE_STOREP2 flags is set on P5. No changes to non-debug code. (check-in: bbc1b016 user: drh tags: rowvalue)
19:58
Modularize all use of the calling convention macros based on the USE_STDCALL nmake macro. (check-in: e4a56197 user: mistachkin tags: callbackConv)
19:14
Add the sqlite3changebatch_db() API. (check-in: bee44ebc user: dan tags: changebatch)
18:51
In sqlite3FindInIndex(), improve internal comments and avoid an unreachable branch. (check-in: 55945fc1 user: drh tags: rowvalue)
18:50
Fix a bug in the fts5 snippet function causing it to return text containing zero phrase instances. (Closed-Leaf check-in: b174ed2b user: dan tags: fts5-snippet-bias)
18:49
Merge updates from trunk. (check-in: 428fc38d user: mistachkin tags: callbackConv)
18:21
Sync up the MSVC autoconf makefile. (check-in: 77f7c31a user: mistachkin tags: trunk)
17:49
Fix more unreachable branches. (check-in: 6099c180 user: drh tags: rowvalue)
15:37
Add a NEVER() on an unreachable branch in comparisonAffinity(). (check-in: 505a2f20 user: drh tags: rowvalue)
12:22
Fix a buffer overrun in the code for handling IN(...) operators when the LHS of the operator contains indexed columns or expressions. (check-in: f41a0391 user: dan tags: rowvalue)
00:51
The previous OOM fix was bad. Back it out and replace it with a better one. (check-in: 1e3bc369 user: drh tags: rowvalue)
00:25
Avoid a potential null-pointer dereference following an OOM. (check-in: 25f6ed8d user: drh tags: rowvalue)
2016-08-23
19:02
Simplify the row value misuse error message. (check-in: 838c50a5 user: drh tags: rowvalue)
19:02
Add further tests for changebatch. And a fix to prevent a changeset from conflicting with itself. (check-in: 506d6ff4 user: dan tags: changebatch)
18:30
Fix a problem with rowvalue UPDATE when the rowvalue is not the left-most and the RHS is a multi-column subquery. (check-in: e149e6b9 user: drh tags: rowvalue)
18:09
Fix harmless compiler warnings in changebatch. (check-in: a721a738 user: drh tags: changebatch)
17:30
Fix an uninitialized variable in CASE expression code generation. (check-in: c8ffae05 user: drh tags: rowvalue)
17:02
Add a new method to sessions - sqlite3sessions_fullchangeset() - to return a changeset that always contains values for all old.* fields. Update changebatch to use these values to more reliably detect multi-column UNIQUE constraint violations. (check-in: efa761b2 user: dan tags: changebatch)
14:42
Fix the SQLITE_USER_AUTHENTICATION login check so that the SQLITE_AUTH_USER error code correctly propagates and is not overwritten by SQLITE_ERROR. (check-in: c640489d user: drh tags: trunk)
2016-08-22
21:01
Add a couple of extra tests to changebatch1.test. (check-in: 207d970b user: dan tags: changebatch)
20:49
Add an experimental module to detect conflicts between sessions changesets. (check-in: 0c9fd6b7 user: dan tags: changebatch)
20:10
Add support for the SQLITE_DBCONFIG_MAINDBNAME configuration option. (check-in: 78395193 user: drh tags: trunk)
14:30
Fix the vector BETWEEN operator so that it only evaluates the left-most vector expression once. Add support for vector comparisons in the CASE operator. (check-in: 07e69f43 user: drh tags: rowvalue)
00:48
Reinstate the mechanism in BETWEEN that avoids evaluating the first expression more than once, but fix the affinity extractor so that it works with this mechanism. The de-duplication of the first expression still does not work for vector expressions, though. (check-in: 2f39987f user: drh tags: rowvalue)
2016-08-20
22:49
The docs promise the in "x BETWEEN y AND z" the x expression is only evaluated once. That is no longer true, and so some tests are failing. This needs to be fixed before merging to trunk. (check-in: e50d264f user: drh tags: rowvalue)
21:11
Further comment enhancements. No changes to code. (check-in: d4562a9e user: drh tags: rowvalue)
21:02
Clarification of code comments in expr.c. Clean up the implementations of sqlite3ExprIsVector() and sqlite3ExprVectorSize() slightly. (check-in: 4fb66d65 user: drh tags: rowvalue)
18:06
Fixes for problems following OOM errors. (check-in: 9041ee4a user: drh tags: rowvalue)
17:23
Fix other minor problems with the fts5 snippet() function. (check-in: b56b2a85 user: dan tags: fts5-snippet-bias)
17:00
Do not duplicate the Expr.pLeft subtree of a TK_SELECT_COLUMN node. (check-in: 8384c77e user: drh tags: rowvalue)
15:01
Fix a segfault that could occur if a query that used a vector comparison contained certain types of syntax errors. (check-in: 203f07c5 user: dan tags: rowvalue)
12:00
Improvements to the vector comparison splitter in exprAnalyze(). (check-in: a3ffd283 user: drh tags: rowvalue)
01:06
Improvements to comments. No code changes. (check-in: 4165d20f user: drh tags: rowvalue)
00:51
Add support for vector assignments in the SET clause of an UPDATE statement. (check-in: f320d47d user: drh tags: rowvalue)
00:07
Change the way TK_SELECT_COLUMN is handled so that the subquery is only generated once even if part of the vector comparison is used for indexing and the other part is now. This change also is a pathway to vector assignment in UPDATE statements. (check-in: d8feea7d user: drh tags: rowvalue)
2016-08-19
19:58
Replace the magic number (-2) with its symbol XN_EXPR in the exprMightBeIndexed() routine. No logic changes. (check-in: d4a5af69 user: drh tags: rowvalue)
19:12
Improved comments on sqlite3CodeSubquery(). No changes to code. (check-in: acea4ee1 user: drh tags: rowvalue)
18:40
Show the WhereTerm.iField value on debugging output, when it is non-zero. (check-in: 931c9535 user: drh tags: rowvalue)
18:37
Register any built-in fts5 module before loading automatic extensions. This allows automatic extensions to register fts5 tokenizers and auxiliary functions. (check-in: b10e31dc user: dan tags: fts5-snippet-bias)
18:28
Fix an obsolete comment on codeEqualityTerm(). No changes to code. (check-in: d07be5af user: drh tags: rowvalue)
15:41
Merge recent enhancements from trunk. (check-in: b1787236 user: drh tags: rowvalue)
15:17
Merge the VACUUM attached database enhancement from trunk. (Closed-Leaf check-in: 12d5e38d user: drh tags: dbconfig_maindbname)
15:15
Enhance the VACUUM command so that it can operate on an attached database. (check-in: 083f9e62 user: drh tags: trunk)
15:12
Disable row counting on queries run while doing a VACUUM. (Closed-Leaf check-in: ad35ef11 user: drh tags: vacuum-attached-db)
14:25
Have the fts5 snippet() function avoid favouring snippets that begin with sentences that do not contain search terms. Add an extra bias in favour of the first sentence in the document. (check-in: d8180af2 user: dan tags: fts5-snippet-bias)
14:20
Add the capability to VACUUM an attached database by specifying the schema name as an argument to the VACUUM command. Since version 2.0, VACUUM has accepted an argument which was silently ignored. Now it has meaning. (check-in: 29d63059 user: drh tags: vacuum-attached-db)
2016-08-18
22:44
Add the SQLITE_DBCONFIG_MAINDBNAME interface. (check-in: d6e3d579 user: drh tags: dbconfig_maindbname)
22:19
Change the name of Db.zName to Db.zDbSName for improved long-term code maintainability. (check-in: cb9865e1 user: drh tags: trunk)
20:56
Fix a zName to zDbSName conversion missed in the previous check-in. (Closed-Leaf check-in: d7cf423c user: drh tags: zDbSName)
19:04
Fix a SQL NULL handling bug in the vector IN operator code generation. (check-in: 936146b1 user: drh tags: rowvalue)
18:09
Display SELECT_COLUMN expressions in the .wheretrace debugging output. (check-in: 3b27a5da user: drh tags: rowvalue)
17:55
Display VECTOR expressions in .wheretrace and .selecttrace debugging output. (check-in: 157347e2 user: drh tags: rowvalue)
15:36
Since the TK_VECTOR token is not actually used by the parser, make it an extra token code added by the tool/addopcodes.tcl script during parser build. (check-in: b40b202c user: drh tags: rowvalue)
15:21
Merge recent enhancements from trunk. (check-in: 4768a106 user: drh tags: rowvalue)
15:15
Simplify the vector comparison code generator logic, and the resulting VDBE code. (check-in: e2ad0b5d user: drh tags: rowvalue)
14:47
Adjust some tests to account for recent changes to the fts5 snippet function. (check-in: 184ecbe9 user: dan tags: fts5-snippet-bias)
14:33
Rename the Db.zName field to Db.zDbSName to make it more descriptive and to distinguish it from all of the other "zName" variables scattered throughout the code. (check-in: 92a22f01 user: drh tags: zDbSName)
2016-08-17
19:05
Bias the fts5 snippet() function to return snippets that look like they start at the start of sentences. (check-in: 60de1594 user: dan tags: fts5-snippet-bias)
11:14
Fix a problem in the fts5 snippet() auxiliary function. (check-in: a861713c user: dan tags: trunk)
2016-08-16
16:46
Fix a bug in destructor processing of Lemon. That has no impact on the SQLite grammar. The bug was introduced by prior work to optimize the Lemon-generated parser used by SQLite. (check-in: f9035b8e user: drh tags: trunk)
2016-08-13
14:30
Questionable changes to support interruptible checkpoint in ZipVFS. (Leaf check-in: c7a9f26d user: dan tags: interruptible-checkpoint)
14:17
Remove an unnecessary stack variable from sqlite3VdbeExec(). (Closed-Leaf check-in: c54bd9c8 user: drh tags: vector-compare)
13:03
Improvements to commits. No code changes. (check-in: 18f5a3be user: drh tags: vector-compare)
12:37
Fix to the vector less-than operator. All legacy tests passing now. (check-in: ec70a67e user: drh tags: vector-compare)
10:34
Fix an fts5 problem with corrupt database handling found by address-sanitizer. (check-in: e22252e1 user: dan tags: trunk)
10:02
Attempt to simplify the logic and generated code for vector comparisons. Basic comparison operators are working, but there are many indexing test failures still to be worked through. (check-in: dfc028cf user: drh tags: vector-compare)
06:38
Fix a buffer overread in fts5. (check-in: fcfbee6c user: dan tags: trunk)
2016-08-12
16:21
Have wal file checkpoints exit early if the sqlite3_interrupt() API function is called. (check-in: 8a5f41c7 user: dan tags: interruptible-checkpoint)
11:25
Add VdbeCoverage() macros on newly added VDBE branch operations. (check-in: 381aa731 user: drh tags: rowvalue)
11:01
Fix a post-OOM memory leak. (check-in: 14009b32 user: drh tags: rowvalue)
2016-08-11
19:12
Merge version 3.14 plus some subsequent patches (including the page-cache performance patch) from trunk. (check-in: d9f8918c user: drh tags: begin-concurrent)
18:53
Version 3.14.1 (check-in: a12d8059 user: drh tags: release, branch-3.14, version-3.14.1)
18:05
Add the "modeof=<filename>" URI parameter to os_unix.c - used to specify a file to copy permissions from when a new database is created. Also allow passing NULL as the second parameter to sqlite3rbu_vacuum(). (check-in: ed406d31 user: dan tags: trunk)
13:51
Fix a 1 byte buffer overwrite in the "sqldiff --rbu" command. (check-in: 1adb22f5 user: drh tags: branch-3.14)
13:08
Increase the version number to 3.14.1. (check-in: 34aed3a3 user: drh tags: branch-3.14)
13:03
Enhance sqlite3PcacheTruncate() to run faster in the common case where the cutoff is just a few pages less than the page number highwater mark. (check-in: 03dceaea user: drh tags: branch-3.14)
12:31
Merge recent changes from trunk. (check-in: 959677b9 user: drh tags: rowvalue)
12:01
Fix some problems with handling "no such collation sequence" errors. (check-in: 8278be06 user: dan tags: rowvalue)
09:55
Fix a 1 byte buffer overwrite in the "sqldiff --rbu" command. (check-in: ab83d707 user: dan tags: trunk)
01:24
Fix a harmless compiler warning in FTS5. (check-in: 2ea0c8b4 user: drh tags: trunk)
2016-08-10
20:02
Optimization to sqlite3WhereExprUsage(). (check-in: 95493058 user: drh tags: trunk)
19:43
List of MATCH operator names in isMatchOfColumn() should be constant. (check-in: 7319d676 user: drh tags: trunk)
18:56
Performance enhancement in the expression walker. (check-in: ebccbd96 user: drh tags: trunk)
15:02
Tweaks to pcache1TruncateUnsafe() to make it slightly smaller and faster and easier to test. (check-in: 059f4e2e user: drh tags: trunk)
14:40
Rearrange the code inside sqlite3RunParser() routine so that sqlite3Parser() is only called from a single place. This allows sqlite3Parser() to be in-lined, which results in a 0.25% overall performance gain. (check-in: 25d1d02b user: drh tags: trunk)
13:34
Increment the version number to 3.15. (check-in: 8c2701e7 user: drh tags: trunk)
13:30
Improved comments on the lempar.c parser template. Adjust the YY_SHIFT_USE_DFLT constant in the Lemon-generated parser tables so as to guarantee that it is always out of range of the yy_lookahead[] table. (check-in: 83622f3f user: drh tags: trunk)
11:50
Fix pcache1TruncateUnsafe() run faster for the case where iLimit is very close to iMaxKey. (check-in: b07a26df user: drh tags: trunk)
03:35
Try to make pcache1TruncateUnsafe() run faster for the case where iLimit is very close to iMaxKey. (Leaf check-in: 9ab53605 user: drh tags: debug)
02:54
Remove all timers and other debugging logs except for the one timer on pcache1TruncateUnsafe(). (check-in: 5980e625 user: drh tags: debug)
01:43
Performance optimization in the yy_find_shift_action() routine of the Lemon-generated parser. (check-in: ba6663be user: drh tags: trunk)
2016-08-09
21:08
Prototype for the remember(V,PTR) extension function. (Closed-Leaf check-in: f0942c36 user: drh tags: rememberFunc)
21:01
Fix harmless compiler warning. (check-in: 9a5a4f6e user: drh tags: trunk)
19:48
Minor update to the way fts5 column filters are parsed. (check-in: 14864f2b user: dan tags: trunk)
19:26
Have fts5 interpret column lists that begin with a "-" character as "match any column except" lists. (check-in: e5175456 user: dan tags: trunk)
11:44
Add another timer on pcache1TruncateUnsafe(). (check-in: 42ce53f6 user: drh tags: debug)
11:23
Add a debug timer to pcache1Truncate(). Change the formatting of some other messages to make them easier to read. (check-in: 7d0af4b5 user: dan tags: debug)
05:48
Add rowvalue5.test, which should have been part of the previous commit on this branch. (check-in: ea03e219 user: dan tags: rowvalue)
01:21
Refocus the timer on the pager_end_transaction() routine. (check-in: 9d4eb6e4 user: drh tags: debug)
2016-08-08
20:15
Fix some cases involving row values and virtual tables. (check-in: 156a41f3 user: dan tags: rowvalue)
18:42
Fix the EXPLAIN QUERY PLAN output for row value range constaints that use an index. (check-in: bb606511 user: dan tags: rowvalue)
16:52
Merge trunk changes with this branch. (check-in: 0e927a7e user: dan tags: rowvalue)
14:21
Merge all changes from the 3.14 release. (check-in: c3cd543f user: drh tags: apple-osx)
13:40
Version 3.14 (check-in: d5e98057 user: drh tags: trunk, release, version-3.14.0)
2016-08-07
18:52
Fix documentation typos. No changes to code. (check-in: ebc396a1 user: drh tags: trunk)
2016-08-05
20:54
Have the TEA package build without SQLITE_OMIT_DEPRECATED. As it uses recently deprecated interfaces sqlite3_profile() and sqlite3_trace(). (check-in: 95578898 user: dan tags: trunk)
16:16
Undo commit [f250166bb]. It is required to handle IO and other errors that occur within a VACUUM of a Zipvfs database. (check-in: ae72513a user: dan tags: trunk)
15:34
Remove an incorrect ALWAYS() statement and add a test case to show when the condition is sometimes false. (check-in: 0f57effa user: drh tags: trunk)
14:35
Fix a very obscure problem following OOM in sqlite3_declare_vtab(). (check-in: 68eac748 user: drh tags: trunk)
2016-08-04
14:08
Add extra logging calls to this branch. (check-in: 491f1ef3 user: dan tags: debug)
13:39
Merge all recent enhancements from trunk. (check-in: dacfff51 user: drh tags: apple-osx)
13:23
Revert the SQLITE_APICALL changes for now. That changes needs further research before it is released. Deferred until 3.15. (check-in: 9adda385 user: drh tags: trunk)
12:35
Add the experimental SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION compile-time option. When enabled, the "unknown function" error is suppressed for EXPLAIN and a no-op function named "unknown()" is substituted. This facilitiates using the command-line shell to analyze queries from applications that contain many application-defined functions that are not normally available to the shell. (check-in: b7f30a9f user: drh tags: trunk)
12:33
Add the experimental SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION compile-time option. When enabled, the "unknown function" error is suppressed for EXPLAIN and a no-op function named "unknown()" is substituted. This facilitiates using the command-line shell to analyze queries from applications that contain many application-defined functions that are not normally available to the shell. (check-in: e22ca3cd user: drh tags: apple-osx)
09:13
Merge the ORDER BY LIMIT fix, and other enhancements, from trunk. (check-in: bf5a9542 user: drh tags: apple-osx)
09:09
Make sure the ORDER BY LIMIT optimization is not applied if the inner-most loop can only have a single iteration and is hence not really a loop. (check-in: 13e3bd3d user: drh tags: trunk)
01:47
Add an experimental SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION compile-time option. This changes has been merged into main branches via cherry-pick. (Closed-Leaf check-in: 4ada023c user: drh tags: unknown-function)
2016-08-03
18:00
Fix a problem with estimating the number of rows visited by a query that uses a multi-column IN(SELECT...) constraint. (check-in: 3c2f908f user: dan tags: rowvalue)
16:39
Fix another problem involving vector range constraints and mixed ASC/DESC indexes. (check-in: 1559f4c4 user: dan tags: rowvalue)
16:14
Fix stat4-based cost estimates for vector range constraints. (check-in: 18af74ab user: dan tags: rowvalue)
14:51
Fix a typo in a comment in btree.c. No changes to code. (check-in: 722c1281 user: drh tags: trunk)
13:40
Fix the --help output on fuzzcheck so that it fix in an 80-character window. (check-in: b91444b5 user: drh tags: trunk)
2016-08-02
20:45
Add new test file rowvaluefault.test. (check-in: e496b2d6 user: dan tags: rowvalue)
20:42
Fix a unused variable that comes up with -DSQLITE_OMIT_DATETIME_FUNCS. (check-in: e2f9919e user: drh tags: trunk)
19:29
The 'replace.tcl' tool should use Unix line-endings. (check-in: 50de9631 user: mistachkin tags: trunk)
18:50
Add tests and fixes for vector operations that use sub-queries with different combinations of LIMIT, OFFSET and ORDER BY clauses. (check-in: 092b1c5f user: dan tags: rowvalue)
17:45
Fix SQLITE_OMIT_SUBQUERY builds. (check-in: 339f85f4 user: dan tags: rowvalue)
17:07
Fix a problem with vector range constraints and mixed ASC/DESC indexes. (check-in: e2ad30c8 user: dan tags: rowvalue)
16:24
Merge latest trunk changes into this branch. (check-in: d468101b user: dan tags: rowvalue)
16:18
Add missing comments and make some code on this branch clearer. (check-in: 6937677c user: dan tags: rowvalue)
13:26
Updates to requirements marks. No changes to code. (check-in: b23c10ac user: drh tags: trunk)
11:29
Fix a problem introduced by [77948b5eceab92a7] causing duplicate calls to be made to the xSavepoint() method of virtual tables under some circumstances. (check-in: e64a4173 user: dan tags: trunk)
08:45
Fix harmless compiler warnings in sqlite3_status(). (check-in: 7c38a79c user: drh tags: trunk)
2016-08-01
21:17
Update the wordcount.c test program and add a new script "time-wordcount.sh" for additional performance testing. (check-in: d8ef9f58 user: drh tags: trunk)
20:14
Fix a problem with vector range constraints involving the rowid column. And other issues. (check-in: 3ef75d45 user: dan tags: rowvalue)
17:06
Fix other harmless compiler warnings. (check-in: 90d2c490 user: drh tags: trunk)
16:57
Remove a duplicate typedef from loadext.c (remaining copy is in sqlite3ext.h). (check-in: fd184e5a user: dan tags: trunk)
16:50
Add an extra compiler switch to loadext.test to ensure that it picks up the correct version of sqlite3.h when building a test extension. (check-in: e57fa6af user: dan tags: trunk)
16:37
Fix a problem with IN(...) constraints where the LHS is a sub-select that is an aggregate query. (check-in: 1f4dba87 user: dan tags: rowvalue)
15:00
Update releasetest.tcl to automatically do one round of tests with USE_STDCALL=1 when running on Windows with MSVC. (check-in: a6a112de user: drh tags: trunk)
14:35
Avoid making unnecessary changes to the signatures of the sqlite3_auto_extension() and sqlite3_cancel_auto_extension() interfaces. (check-in: b6ea2f21 user: drh tags: trunk)
2016-07-30
21:02
Fix problems with vector == comparisons and NULL values. (check-in: 059d0d05 user: dan tags: rowvalue)
18:54
Fix harmless compiler warning seen with MSVC. (check-in: 390a38a1 user: mistachkin tags: trunk)
17:59
Merge latest trunk with this branch. (check-in: 63ae02d0 user: dan tags: rowvalue)
16:39
Remove the EP_Vector expression flag. (check-in: e9d9c6d4 user: dan tags: rowvalue)
03:33
A new version of the slow mutex log that uses gettimeofday() instead of trying to access the hardware timer. (check-in: 92b9fead user: drh tags: debug)
2016-07-29
20:58
Fix some issues with vector range constraints and the column cache. Also vector range constraints and rowid columns. (check-in: 42607366 user: dan tags: rowvalue)
18:12
Change the way "(a, b) = (SELECT *)" expressions are handled in where.c if there is an index on one of the columns only. (check-in: 4dfebff2 user: dan tags: rowvalue)
17:36
Using the header file 'intrin.h' requires MSVC 2005 or later. (check-in: 9fae75c0 user: mistachkin tags: trunk)
16:32
Turn memory status off by default. (check-in: ea3c7162 user: drh tags: debug)
14:31
Enhance a debugging log message to better identify a mutex. (check-in: e60cb6d8 user: dan tags: debug)
14:23
Use __sync_synchronous(), when available, instead of a mutex when a memory barrier is needed. (check-in: 7d4562e9 user: drh tags: debug)
14:10
Add calls to sqlite3_log() when sqlite3_mutex_enter() takes more than 100,000 CPU cycles. (check-in: 33c7ef7a user: drh tags: debug)
04:12
For test 'shell1-5.0', disable round-trip testing for characters in the range 0xE0 to 0xEF on Linux, due to intermittent shell portability issues. (check-in: 544c990a user: mistachkin tags: trunk)
02:04
Fix typo in a test file interactive output string. (check-in: 4fedd790 user: mistachkin tags: trunk)
01:55
Merge additional linkage macro changes from the branch. (check-in: 8b0eb22e user: drh tags: trunk)
01:49
Further refinement to the calling convention macros. (check-in: 45588de3 user: drh tags: trunk)
01:47
Merge updates from trunk. (check-in: 71ffa195 user: mistachkin tags: callbackConv)
01:46
Update the autoconf makefile for MSVC. (check-in: 2daf2098 user: mistachkin tags: callbackConv)
01:32
Undo some unhelpful changes to skip-scan scoring that were added by the check-in [9e2b2681] that improved scoring of index scan. (check-in: c7d51934 user: drh tags: trunk)
01:31
Add macro necessary for building several extensions when the __stdcall calling convention is not in use. (check-in: bc8c9b55 user: mistachkin tags: callbackConv)
2016-07-28
23:58
Missed a couple Tcl command deletion callbacks. (check-in: fc5c1876 user: mistachkin tags: callbackConv)
23:54
Use the SQLITE_TCLAPI macro in several extensions that were missed in the previous check-in. (check-in: df254365 user: mistachkin tags: callbackConv)
22:53
More compiler warning fixes for GCC related to the auto-extension mechanism. (check-in: b8218129 user: mistachkin tags: callbackConv)
22:46
The return type used by the auto-extension entry points is 'int', not 'void'. (check-in: bf9c86c7 user: mistachkin tags: callbackConv)
22:38
Make sure all the auto-extension mechanism function signatures match up precisely. (check-in: 87ba69b5 user: mistachkin tags: callbackConv)
22:23
Make the extension auto-loading mechanism work with the __stdcall calling convention. Also, fix a couple Tcl command calling conventions missed in the previous check-in. (check-in: 3ea567c4 user: mistachkin tags: callbackConv)
19:47
Fix further issues with multi-column IN(...) operators. Also some error handling cases surrounding row values. (check-in: cc3f6542 user: dan tags: rowvalue)
19:28
The 'sqlite3ext.h' content should be processed before being included in the amalgamation. (check-in: cbe1de47 user: mistachkin tags: trunk)
18:55
Decorate all interfaces with calling convention macros. (check-in: fd784887 user: drh tags: trunk)
18:49
All SQLite API functions and callbacks in the 'sqlite3ext.h' header file must be decorated with the calling convention. (Closed-Leaf check-in: 97fc6e43 user: mistachkin tags: callbackConv)
18:42
Merge recent trunk fixes. (check-in: 97657445 user: drh tags: apple-osx)
18:38
Disable the authorizer callback when reparsing the schema. This avoids undesirable authorization failures following an ALTER TABLE. (check-in: 805d01cd user: drh tags: trunk)
18:18
Fixup reserved function pointers in the Tcl stubs table and several macros containing Tcl function pointers. (check-in: 959cd013 user: mistachkin tags: callbackConv)
18:06
Adjustments to get 'testfixture.exe' compiling with Tcl 8.6 when __stdcall is enabled. (check-in: 90e89ec9 user: mistachkin tags: callbackConv)
17:24
Improvements to the way the COMPILER compile-time option is set when compiling with Clang. (check-in: 81f9cf86 user: drh tags: trunk)
17:11
Make sure the SQLITE_TCLAPI macro is always defined and use it for all callback functions that must interface with the Tcl C API. (check-in: f2f1323c user: mistachkin tags: callbackConv)
16:09
More work on getting the 'testfixture.exe' target to work correctly. (check-in: 36b72fd6 user: mistachkin tags: callbackConv)
15:38
Modify the mksqlite3h.tcl tool to handle the syscall typedef specially. (check-in: 478a84ef user: mistachkin tags: callbackConv)
15:09
Change mksqlite3h.tcl to automatically insert the SQLITE_CALLBACK calling convention macros. (check-in: 11ab9c9a user: drh tags: callbackConv)
14:37
Allow the 'testfixture.exe' target to be compiled with the __stdcall calling convention. (check-in: e8be3dfe user: mistachkin tags: callbackConv)
13:59
Merge latest trunk changes into this branch. (check-in: 9685880f user: dan tags: rowvalue)
12:52
New test case to insure legacy CREATE TABLE syntax is supported. (check-in: 6feff15c user: drh tags: trunk)
04:14
Work in progress on setting a calling convention for all callback functions. (check-in: 02b8040e user: mistachkin tags: callbackConv)
2016-07-27
19:33
Fix some problems with multi-column IN(SELECT...) processing. (check-in: 719a3b20 user: dan tags: rowvalue)
19:30
Enhance the query planner cost estimation for index scans to take into account WHERE clause terms that can be computed using only the index and that do not require looking up rows in the original table. This fixes an obscure performance regression that arose when the ORDER BY LIMIT optimization was added by check-in [bf46179d44843]. (check-in: 9e2b2681 user: drh tags: trunk)
19:20
Add test cases and fix a comment. (Closed-Leaf check-in: 50f8ea37 user: drh tags: improved-index-scan)
18:27
When estimating the cost of an index scan, factor in the cost savings of being able to use the index to evaluate some WHERE clause terms without having to do a table lookup. (check-in: a59b5622 user: drh tags: improved-index-scan)
16:03
Initialize a variable in where.c to avoid a valgrind warning. (check-in: 4d59df02 user: dan tags: trunk)
2016-07-26
18:15
Merge latest trunk changes into this branch. (check-in: d4f3d52c user: dan tags: rowvalue)
18:06
Fix where.c handling of "IN (SELECT ...)" expressions when the SELECT returns more than one result column. Also error handling for other row value constructor cases. (check-in: 061b8006 user: dan tags: rowvalue)
15:17
Merge fixes to sqlite3_scrub_backup() from trunk. (check-in: 91e811f5 user: drh tags: apple-osx)
10:46
Ensure that the sqlite3_scrub_backup() extension creates a backup database at least as large as indicated by the database header, even if the last page of the input database is a free-list leaf. (check-in: 483994a5 user: dan tags: trunk)
04:54
Merge the cache_spill VACUUM fix from trunk. (check-in: cc6bfdf8 user: drh tags: apple-osx)
04:49
Copy the cache_spill setting from the main database over to the vacuum_db transient database when running a VACUUM. (check-in: c0e7d98e user: drh tags: trunk)
04:31
Make sure affinity is applied correctly on lower-bound range constraints in the min() optimization. Fix for ticket [a0bac8b3c3d1bb]. (check-in: b819bace user: drh tags: trunk)
04:23
Make sure affinity is applied correctly on lower-bound range constraints in the min() optimization. Fix for ticket [a0bac8b3c3d1bb]. (check-in: 0e9f534f user: drh tags: apple-osx)
2016-07-25
22:46
Merge the VACCUM cache_size adjustment from trunk. (check-in: cdb7efd0 user: drh tags: apple-osx)
22:40
In the VACUUM command, set the cache_size of the transient vacuum_db database to be the same as the database being vacuumed. (check-in: b78d9954 user: drh tags: trunk)
21:11
Fix a test case in FTS5 to make it compatible with Tcl 8.5. (check-in: a495f8e7 user: drh tags: trunk)
18:50
Add the experimental SQLITE_VACUUM_CACHE_SIZE macro. (check-in: 68ecd8e0 user: drh tags: apple-osx)
17:31
Merge 3.14 alpha changes from trunk. (check-in: e98cefb1 user: drh tags: apple-osx)
16:10
Minor test infrastructure changes to better support SEE testing. (check-in: 8dcb9d50 user: drh tags: trunk)
14:40
Add a new %ifdef to parse.y so that the build works with SQLITE_OMIT_SUBQUERY. (check-in: 38a48cfb user: drh tags: trunk)
14:20
Changes to test scripts to get them all running on OpenBSD. (check-in: 9e7bedee user: drh tags: trunk)
12:10
Disable the DBSTATUS_CACHE_USED_SHARED tests on mac when memsys3/5 is disabled due to differences in the allocation sizes for the Darwin memory allocator. (check-in: d6f6c87c user: drh tags: trunk)
12:01
Update the vacuummem.test script so that it works on mac as well as on linux. (check-in: ea7fb98b user: drh tags: trunk)
11:57
If both MEMSYS3 and MEMSYS5 are enabled, than automatically disable MEMSYS3. (check-in: ccc22e14 user: drh tags: trunk)
11:39
Another attempt at getting --enable-memsysN working. (check-in: 5f40e6ad user: drh tags: trunk)
11:32
Fix the --enable-memsysN options in configure so that they actually work. (check-in: 67955255 user: drh tags: trunk)
11:27
Add --enable-memsys3 and --enable-memsys5 options to the configure script. (check-in: 67e1dc98 user: drh tags: trunk)
02:42
Evidence marks and code reformatting for SQLITE_TRACE_STMT operation. (check-in: e1e02238 user: drh tags: trunk)
02:31
Change SQLITE_TRACE_STMT to return unexpanded SQL text in the X argument. Add documentation on how and when to use sqlite3_expanded_sql(P) to compute the expanded text for legacy sqlite3_trace() compatibility. (check-in: 163e1522 user: drh tags: trunk)
00:05
Fix code so that the deprecated sqlite3_trace() and sqlite3_profile() interfaces are not called when SQLITE_OMIT_DEPRECATED is used. (check-in: 1c5baae3 user: drh tags: trunk)
2016-07-23
20:27
Use sqlite3_trace_v2() instead of sqlite3_trace() in the shell. (check-in: c8e0539b user: drh tags: trunk)
20:24
Allow vector IN(SELECT ...) expressions to use an index if either all the indexed columns are declared NOT NULL or if there is no difference between the expression evaluating to 0 and NULL (as in a WHERE clause). (check-in: e2fd6f49 user: dan tags: rowvalue)
19:34
Add the json_quote() function to the JSON1 extension. (check-in: 269892ab user: drh tags: trunk)
19:18
Small tweak to the btree balancer for improved tree balance. (check-in: 8817dedb user: drh tags: trunk)
14:50
Fix recently added tests so that they work in all configurations. (check-in: d0bcaf0c user: drh tags: trunk)
05:22
Add the sqlite3_expanded_sql() and sqlite3_trace_v2() interfaces. (check-in: 99a6c518 user: drh tags: trunk)
04:58
Improvements to sqlite3_trace_v2() documentation. Fix the sqlite3VdbeExpandSql() routine to respond better to OOM conditions. (Closed-Leaf check-in: 0400f642 user: drh tags: sqlite3_trace_v2)
02:07
Add requirements marks to the sqlite3_trace_v2() interface documentation. (check-in: ebd388e9 user: drh tags: sqlite3_trace_v2)
00:43
Fix sqlite3VdbeExpandSql() so that it handles OOMs by always returning NULL. (check-in: 5a027fe4 user: drh tags: sqlite3_trace_v2)
2016-07-22
21:35
Revise a warning fix from the previous check-in to improve clarity. Also, fix an incorrect test prefix (typo). (check-in: f50a3fd6 user: mistachkin tags: trunk)
21:26
Fix harmless compiler warnings seen with MSVC. (check-in: 8bb6e6fc user: mistachkin tags: trunk)
20:45
Be sure to hold the database connection mutex while calling sqlite3VdbeExpand() from within sqlite3_expanded_sql(). (check-in: 527b5ba6 user: drh tags: sqlite3_trace_v2)
20:20
Add requirements marks to the sqlite3_expanded_sql() documentation. (check-in: 409535e6 user: drh tags: sqlite3_trace_v2)
17:58
Merge latest trunk changes with this branch. (check-in: 60fed5cd user: dan tags: rowvalue)
10:09
Fix a problem with upper case module names in the "sqldiff --vtab" command. (check-in: 87e25fc4 user: dan tags: trunk)
2016-07-21
18:02
Add extra test cases to verify the fix in [64ca1a835]. (check-in: bf98a2de user: dan tags: trunk)
16:43
Add new test file vacuummem.test. To test that any temporary memory used by VACUUM is freed as soon as the VACUUM has finished (not, for example, when sqlite3_close() is finally called). (check-in: 1b1ad0b2 user: dan tags: trunk)
2016-07-16
11:47
Temporarily add extra sqlite3_log() calls to this version to help with debugging a performance problem. (check-in: 613c1cea user: dan tags: debug)
2016-07-15
19:17
Add the largely untested SQLITE_FTS5_NO_WITHOUT_ROWID compile time option to fts5. For building a dynamically loadable extension that does not use WITHOUT ROWID. (check-in: d0a1cf1c user: dan tags: trunk)
10:01
The sqlite3_expanded_sql() function compiles, but always returns NULL, when the SQLITE_OMIT_TRACE compile-time option is used. (check-in: 53c25ebe user: drh tags: sqlite3_trace_v2)
02:55
Merge fixes from trunk. Fix the tclsqlite.test script. (check-in: d2b1fa55 user: drh tags: sqlite3_trace_v2)
02:50
Disable the CSV extension when virtual tables are disabled. (check-in: ec718089 user: drh tags: trunk)
01:49
Modify the Tcl test command 'sqlite3_bind_blob' to make use of the Tcl_GetByteArrayFromObj() API. (check-in: e03c8189 user: mistachkin tags: sqlite3_trace_v2)
00:39
Fix typo in sqlite3_trace_v2(). (check-in: 97ccf15f user: mistachkin tags: sqlite3_trace_v2)
00:23
Corrections and enhancements for the new tests. (check-in: 20e74c63 user: mistachkin tags: sqlite3_trace_v2)
00:09
Modify one test result to be case-insensitive. (check-in: 5ccbeeea user: mistachkin tags: sqlite3_trace_v2)
00:07
Add tests, including some for the sqlite3_expanded_sql() API. (check-in: 8b8c0b74 user: mistachkin tags: sqlite3_trace_v2)
2016-07-14
23:17
More work on the Tcl interface and tests for the sqlite3_trace_v2() API. (check-in: f3c4aa97 user: mistachkin tags: sqlite3_trace_v2)
21:26
Initial work on the Tcl API interface to the new sqlite3_trace_v2() function. (check-in: 7b59fa40 user: mistachkin tags: sqlite3_trace_v2)
20:19
Experimental patch restore the slight bias in btree-balancing immediately after the change to reduces the amount of memcpy() work done by balancing. (Leaf check-in: 46bd9533 user: drh tags: btree-balance-bias)
19:48
Minor tweak the the b-tree balancer. (Closed-Leaf check-in: d2a0af7a user: drh tags: btree-tuning)
19:13
Fix ALTER TABLE so that it does not promote the schema version past 3, as that will cause DESC indexes to go corrupt. Ticket [f68bf68513a1c]. (check-in: a7db6e45 user: drh tags: trunk)
09:22
Fix copy/paste typo in the new sqlite3_expanded_sql() function. (check-in: e7d18c70 user: mistachkin tags: sqlite3_trace_v2)
01:13
Fix a parameter misordering on sqlite3_trace_v2() in the loadable extension interface. (check-in: 989de2d5 user: drh tags: sqlite3_trace_v2)
01:09
Add the sqlite3_expanded_sql() interface. Refinements to the sqlite3_trace_v2() interface to make it more useful. (check-in: 99ee7ee5 user: drh tags: sqlite3_trace_v2)
2016-07-13
23:18
Legacy tests now passing. (check-in: f33526a3 user: drh tags: sqlite3_trace_v2)
22:55
First cut at implementing the new sqlite3_trace_v2() interface. (check-in: cb0062fe user: drh tags: sqlite3_trace_v2)
21:30
Interface design for a new sqlite3_trace_v2() method that supersedes sqlite3_trace() and sqlite3_profile(). (check-in: 0c569f75 user: drh tags: sqlite3_trace_v2)
19:48
Modifications towards better vector IN(...) support on this branch. Not activated yet. (check-in: 34e35c71 user: dan tags: rowvalue)
13:05
Fix harmless compiler warnings in shell.c for NetBSD. (check-in: 824b39e5 user: drh tags: trunk)
00:55
Fix header comments and remove an unnecessary version restriction from the carray() table-valued function implementation. (check-in: 021d0fb8 user: drh tags: trunk)
2016-07-12
19:54
Fix the error counter reset in Lemon generated parsers. This has no effect on SQLite. (check-in: 3ef93950 user: drh tags: trunk)
2016-07-10
19:35
Merge comment typo fixes from trunk. (check-in: 728c5aa4 user: mistachkin tags: rowvalue)
19:35
Fix typos in comments. No changes to code. (check-in: 77c692a6 user: mistachkin tags: trunk)
2016-07-09
20:23
Add some support for using row value constructors in certain parts of SQL expressions. There are many bugs on this branch. (check-in: b2204215 user: dan tags: rowvalue)
17:47
Add the "#/value-list/" style of results for approximate value matching in the do_test command of the test infrastructure. Use this new result style to make the SQLITE_DBSTATUS_CACHE_SIZE_SHARED tests cross-platform. (check-in: c869bf34 user: drh tags: trunk)
17:15
Fix a compiler warning in test code - in the int64array_addr TCL command. (check-in: 29fb988f user: drh tags: trunk)
16:38
Fix compiler warnings on windows. (check-in: 8b22f777 user: drh tags: trunk)
16:14
Fix various internal #defines to conform to new C-language naming restrictions, specifically that private-use macros names must not begin with "_". (check-in: 5471aca0 user: drh tags: trunk)
00:06
Add support for the win32-none VFS. (check-in: b5f32a89 user: drh tags: trunk)
2016-07-08
21:14
Initial work on a Win32 VFS with NOP locking. (Closed-Leaf check-in: 549abe3f user: mistachkin tags: win32nolock)
19:54
Another attempt to fix error handling in Lemon. This change is a no-op for SQLite's usage. (check-in: e1d8ef31 user: drh tags: trunk)
02:14
In the sqldiff program, make sure the first argument to the db_prepare() utility function is always a valid format string. (check-in: 8bb8d886 user: drh tags: trunk)
2016-07-06
18:42
Add the SQLITE_DBSTATUS_CACHE_USED_SHARED sqlite3_db_status() parameter. This option is similar to DBSTATUS_CACHE_USED, except that it divides memory used by shared caches evenly between all connections. (check-in: 06cf2680 user: dan tags: trunk)
18:12
Change the name of the SQLITE_DBSTATUS_PROPORTIONAL_CACHE_USED to SQLITE_DBSTATUS_CACHE_USED_SHARED. (Closed-Leaf check-in: d58401ab user: dan tags: dbstatus-prop-cache-used)
10:17
Fix a test script problem causing a test to fail if the ICU extension is enabled. (check-in: 0c228f5d user: dan tags: trunk)
10:12
Add the SQLITE_DBSTATUS_PROPORTIONAL_CACHE_USED sqlite3_db_status() parameter. (check-in: 118321c8 user: dan tags: dbstatus-prop-cache-used)
09:19
Fix a memory leak in recently added test code. (check-in: 724e4cdc user: dan tags: trunk)
08:32
Fix a typo in test program bc_test1.c. (check-in: 2c61b7ab user: dan tags: begin-concurrent)
2016-07-05
16:11
More fixes to Lemon so that it automatically resets its error counter at the end of a parse. (check-in: 2683b375 user: drh tags: trunk)
12:47
Attempt to reset the error count in the Lemon-generated parser after a parse failure. (check-in: 91889fa3 user: drh tags: trunk)
2016-07-04
11:47
Add the sqlite3rbu_state() API. Used to determine the current state (creating OAL, ready to move OAL, incremental-checkpoint, finished or error) of an RBU operation. (check-in: 0357875f user: dan tags: trunk)
11:34
Add the carray() virtual table as a loadable extension. (check-in: d8bc6feb user: drh tags: trunk)
2016-07-03
02:35
Change the name of the intarray() extension to carray() and give it an optional third parameter that specifies the datatype as one of 'int32', 'int64', 'double', or 'char*'. 'int32' is the default. (Closed-Leaf check-in: a204ba99 user: drh tags: prototype-int-array)
2016-07-02
20:57
Fix an off-by-one comparison in the intarray() virtual table. Get the intarray() virtual table tests working using the legacy makefile. (check-in: 7c3d441f user: drh tags: prototype-int-array)
20:51
Merge the alternative table-valued function RHS of IN operator implementation from trunk. (check-in: 507fdbfb user: drh tags: prototype-int-array)
12:33
Fix a problem in table-valued functions on the RHS of an IN operator that occurs following an OOM error. (check-in: bead151e user: drh tags: trunk)
12:08
Add support for table-valued functions on the RHS of an IN operator. (check-in: ac6000f0 user: drh tags: trunk)
2016-07-01
20:12
Fix the transitive constraint logic error that can result in a null pointer dereference. Fix for ticket [e8d439c77685eca6]. (check-in: 228a7879 user: drh tags: trunk)
19:48
Add test cases to the transitive constraint fix. (Closed-Leaf check-in: c952af89 user: drh tags: planner-fix)
12:39
Add the sqlite3rbu_state() API. Used to determine the current state (creating OAL, ready to move OAL, incremental-checkpoint, finished or error) of an RBU operation. (Closed-Leaf check-in: 92e7df0f user: dan tags: rbu-state-api)
2016-06-29
06:19
Add the ability to have a table-valued function on the RHS of an IN operator. (check-in: ba1b441b user: drh tags: prototype-int-array)
05:08
Another test case for the intarray($PTR,$N) virtual table. (check-in: 06e1fab7 user: drh tags: prototype-int-array)
05:00
Add a prototype intarray($PTR,$N) table valued function. (check-in: 233b3338 user: drh tags: prototype-int-array)
2016-06-28
22:27
Proposed fix for a problem in the query planner. (check-in: a33d2356 user: drh tags: planner-fix)
2016-06-26
04:06
Prevent the WhereLoop.rSetup cost estimate from going negative on complex queries. (check-in: f8105085 user: drh tags: trunk)
2016-06-25
11:43
Fix the handling of OP_Eq opcodes that compare a register against itself and that require an affinity change. (check-in: 507014e4 user: drh tags: trunk)
2016-06-24
06:23
Fix the ctime.test script so that it works with clang. (check-in: 77e4f7a3 user: drh tags: trunk)
02:50
Fix the Makefile.in to avoid unnecessary recompiles of sqlite3.c. (check-in: 67c39e16 user: drh tags: trunk)
02:21
Provide for a separate default page size for TEMP and transient database files and initialize that separate default page size to 1024 instead of 4096. (Leaf check-in: a2778ae4 user: drh tags: temp-page-size)
2016-06-23
16:48
Update the sqldiff utility so that if the --vtab switch is specified "rtree", "fts3", "fts4" and "fts5" tables are diff'd directly and the underlying real database tables ignored. Without this switch, all virtual tables are ignored and the diff is performed on the underlying real tables. (check-in: b8671e94 user: dan tags: trunk)
12:35
Fix the build for -DSQLITE_OMIT_VIRTUALTABLE (check-in: 91113142 user: drh tags: trunk)
2016-06-21
10:34
Update the sqldiff utility so that if the --vtab switch is specified "rtree", "fts3", "fts4" and "fts5" tables are diff'd directly and the underlying real database tables ignored. Without this switch, all virtual tables are ignored and the diff is performed on the underlying real tables. (Closed-Leaf check-in: 5d0a9d4c user: dan tags: sqldiff-vtab-support)
2016-06-20
17:25
For a table on the rhs of a LEFT JOIN operator, do not include terms like "IS NULL" from the WHERE clause in the cursor-hint. These may be false for rows that the cursor would otherwise visit, but true for a row of all NULL values generated by the LEFT JOIN. (check-in: 913e5956 user: dan tags: trunk)
17:22
Allow LIKE operators that appear in a WHERE clause to be included in the cursor-hint for a cursor on the rhs of a LEFT JOIN. (Closed-Leaf check-in: 7455d932 user: dan tags: cursor-hints)
2016-06-17
19:27
Include WHERE terms in the cursor-hint passed to a cursor opened for the rhs of a LEFT JOIN iff we can be sure that those terms will not evaluate to true if the LEFT JOIN generates a row of NULLs. (check-in: 998095ab user: dan tags: cursor-hints)
14:59
Fix a duplicate test name in cursorhint2.test. (check-in: fcd12b69 user: dan tags: cursor-hints)
14:47
Fix a typo in the cursorhint2.test script. (check-in: c1a5a57c user: dan tags: cursor-hints)
14:33
If a table is on the rhs of a LEFT JOIN, include only terms from the joins ON(...) clause in the cursor-hint passed via OP_CursorHint. (check-in: 2a2346b0 user: dan tags: cursor-hints)
13:01
Add the json_quote() function to the JSON1 extension. (Closed-Leaf check-in: 2c3714ae user: drh tags: json_quote)
2016-06-16
17:14
Add a missing OP_ColumnsUsed opcode to code for expressions like "? IN (SELECT ...)" in cases where expression can use an index that may contain NULL values. (check-in: 0b1579ca user: dan tags: trunk)
11:16
Fix a typo in a comment on the SrcList object. (check-in: 48b555c4 user: drh tags: trunk)
2016-06-15
10:21
Merge changes from trunk. (check-in: 0f707d15 user: drh tags: apple-osx)
2016-06-13
19:58
Fix RBU so that it builds with -DSQLITE_ENABLE_8_3_NAMES. Fix "PRAGMA compile_options" for SQLITE_ENABLE_8_3_NAMES such that it reports the numeric setting: "1" or "2". (check-in: 0230ca17 user: drh tags: trunk)
15:59
Fix the declaration of the table implemented by DBSTAT so that it uses correct datatypes. (check-in: a1e1cdc5 user: drh tags: trunk)
12:51
Fix an incorrect assert() in the btree logic. (check-in: fcf6114b user: drh tags: trunk)
12:34
Fix the "onecolumn" and "exists" methods of the TCL interface so that they work in combination with the "profile" callback. (check-in: d362ba15 user: drh tags: trunk)
2016-06-10
22:49
Enhance "PRAGMA table_info" to that it provides information about eponymous virtual tables. (check-in: 53a1e5d5 user: drh tags: trunk)
2016-06-08
18:07
Prefer to use partial indexes for full table scans when that is possible. (check-in: fe187432 user: drh tags: trunk)
14:04
Add the "dbhash.exe" utility program that computes a SHA1 hash over the invariant content of an SQLite database file. Free space in the file, the page size, auto_vacuum status, text encoding, and so forth do not change the hash. Only the content matters. (check-in: f48a4ad3 user: drh tags: trunk)
13:59
Fix an undersized buffer in the SHA1 implementation. (Closed-Leaf check-in: fb276815 user: drh tags: dbhash)
13:49
Fix the dbhash utility so that it ignores the root page number when hashing the sqlite_master table. Add new command-line options. Add the ability to hash multiple databases with a single command. (check-in: 44f157e0 user: drh tags: dbhash)
01:03
An initial attempt at a "dbhash" command-line utility. (check-in: 2247649c user: drh tags: dbhash)
2016-06-07
20:25
Fix the walcrash4.test test module so that it works on windows. (check-in: 2091a4c9 user: drh tags: trunk)
2016-06-06
20:36
In winFullPathname, translate '/X:' to 'X:' before doing anything else. (check-in: e404ad70 user: mistachkin tags: trunk)
20:27
Translate filenames of the form "/c:/*" into just "c:/*" on WinRT and Cygwin. (SQLite has long done this for Win32/WinNT.) (check-in: f8470ffc user: drh tags: trunk)
18:17
Fix lempar.c so that the shift-reduce optimization works for error processing. This is a Lemon issue only and has no impact on SQLite. (check-in: 3665a2f5 user: drh tags: trunk)
13:24
Initialize the yyerrcnt variable in the lemon parser template. This has no effect on SQLite itself. (check-in: 45531654 user: drh tags: trunk)
01:54
Small performance boost and size decrease in sqlite3BtreeMovetoUnpacked(). (check-in: e106a77d user: drh tags: trunk)
01:48
Small performance improvement in the LIKE function. (check-in: 5fb0c354 user: drh tags: trunk)
01:14
Btree interface refactoring: (1) The sqlite3BtreeKeySize() interface is renamed to sqlite3BtreeIntegerKey() and modified to work only for table btrees with a rowid. (2) The sqlite3BtreeDataSize() interface is renamed to sqlite3BtreePayloadSize() and modified to work with any btree. (3) The sqlite3BtreeDataFetch() and sqlite3BtreeKeyFetch() routines are combined into a single sqlite3BtreePayloadFetch() routine. The result of these changes is a smaller binary and fewer CPU cycles needed to run queries. (check-in: 2d831074 user: drh tags: trunk)
2016-06-04
21:05
Improved comment on cursorOwnsBtShared(). No changes to code. (Closed-Leaf check-in: 5e269c2d user: drh tags: btree-refactor)
20:58
Fix a C99-ism and a compiler warning for MSVC. (check-in: aa53a36e user: drh tags: btree-refactor)
20:37
Change the sqlite3BtreeKeySize() interface into sqlite3BtreeIntegerKey() and make it only work for table btrees. Change sqlite3BtreeDataSize() into sqlite3BtreePayloadSize() and make it work for all btrees. Combine sqlite3BtreeDataFetch() and sqlite3BtreeKeyFetch() into a single sqlite3BtreePayloadFetch() routine. These changes seem to make the b-tree interface more rational and they reduce both binary size and CPU usage. (check-in: bef35e18 user: drh tags: btree-refactor)
17:12
Allocate KeyInfo objects from lookaside if possible. (check-in: b411107a user: drh tags: trunk)
16:33
Fix up speedtest1.c so that it will compile and run on SQLite versions prior to 3.6.18 (circa 2009-09-11). (check-in: 9583c0fb user: drh tags: trunk)
13:57
Remove an unreachable branch in the UNIQUE constraint parsing. (check-in: 313e990c user: drh tags: trunk)
2016-06-03
18:59
The OR optimization is usable on virtual tables with LIKE, REGEXP and/or GLOB terms in the WHERE clause. (check-in: fa3a89fc user: drh tags: trunk)
18:44
Add support for virtual tables using a WITHOUT ROWID schema. This merge also includes enhancements to the CSV extension, which is used for testing of the new WITHOUT ROWID virtual table mechanism. (check-in: aa7e9d0c user: drh tags: trunk)
18:21
Fix a memory leak when a WITHOUT ROWID eponymous virtual table is used. (Closed-Leaf check-in: 31b83a7d user: drh tags: without-rowid-vtab)
17:27
Disallow access to the rowid column on WITHOUT ROWID virtual tables. (check-in: d31c2597 user: drh tags: without-rowid-vtab)
13:35
Enhance the sqlite3_load_extension() interface to permit extensions to return SQLITE_OK_LOAD_PERMANENTLY which will prevents unloading when the database connection closes. (check-in: 5908aa4d user: drh tags: trunk)
01:01
Performance optimizations on the CSV virtual table. Disallow WITHOUT ROWID virtual tables that have an xUpdate method, for now. (check-in: 3134b326 user: drh tags: without-rowid-vtab)
2016-06-02
23:13
Add the CSV extension to the test fixture. Fix a memory leak in the CSV extension. Add test cases for the CSV extension, including one that uses a WITHOUT ROWID virtual table participating in the OR optimization. (check-in: 95f483e8 user: drh tags: without-rowid-vtab)
17:44
Add the data= parameter to the CSV virtual table extension. (check-in: 76919104 user: drh tags: without-rowid-vtab)
16:22
Fix corner cases in the WITHOUT ROWID virtual table logic. (check-in: a393bbb9 user: drh tags: without-rowid-vtab)
2016-06-01
10:37
Fix an issue preventing RBU vacuum from working with virtual tables. (check-in: 3bd85fa5 user: dan tags: trunk)
05:02
Fix compilation issues with the VFS stat extension. (check-in: f6e95652 user: mistachkin tags: trunk)
2016-05-31
21:18
An experimental branch with code that allows virtual tables to be declared as WITHOUT ROWID tables. This might be useful for virtual tables that model external data sources that do not have a convenient way of computing a unique rowid. The current check-in almost works, but there are still serious issues. (check-in: 49638f18 user: drh tags: without-rowid-vtab)
18:44
Add the columns=N parameter to the CSV extension. (check-in: 28ebeadd user: drh tags: trunk)
18:08
Add the testflags parameter to the csv extension. (check-in: b93fb2fe user: drh tags: trunk)
16:22
Add the "csv" virtual table for reading CSV files, as an extension in the ext/misc/ subfolder. (check-in: 00d3570c user: drh tags: trunk)
2016-05-30
08:28
Fix an FTS5 problem (segfault or incorrect query results) with "... MATCH 'x OR y' ORDER BY rank" queries when either token 'x' or 'y' is completely absent from the dataset. (check-in: 64ca1a83 user: dan tags: trunk)
05:45
Minor tweaks to the bc_test1 test program. (check-in: d0d0bab4 user: dan tags: begin-concurrent)
2016-05-28
18:53
Experimental change to allow virtual tables to take advantage of LIKE, REGEXP and GLOB terms that are part of OR expressions within WHERE clauses. (Closed-Leaf check-in: 242507b4 user: dan tags: vtab-experimental)
17:45
Remove an unnecessary malloc from the vfsstat extension. (check-in: 24f258c2 user: drh tags: trunk)
17:23
Enhance the sqlite3_load_extension() interface to permit extensions to return SQLITE_OK_LOAD_PERMANENTLY which will prevent the extensions from unloading when the database connection closes. (Closed-Leaf check-in: d3f99a5e user: drh tags: load-permanently)
15:22
Enhance "PRAGMA compile_options" so that it shows the version of the compiler used to generate the executable, for common compilers. (check-in: 6a0f2009 user: drh tags: trunk)
15:09
Update the amalgamation-tarball configure script so that it can use header file "readline/readline.h" with library file "libedit". (check-in: cbf72b04 user: dan tags: trunk)
15:03
Enhance the sqlite3_load_extension() API so that the first parameter (the "db" parameter) can be NULL. An extension that is not associated with any database connection remains loaded for the life of the process. (Closed-Leaf check-in: 3a461043 user: drh tags: persistent-extensions)
14:53
Add the vfsstat.c loadable extension - a VFS shim that measures the amount of I/O, and an eponymous virtual table that is used to extract and view the measurements. (check-in: 0987487d user: drh tags: trunk)
00:13
Clang can define _MSC_VER in some circumstances; therefore, check for Clang first. (Closed-Leaf check-in: 3f710bc3 user: mistachkin tags: ctimeCompiler)
2016-05-27
21:13
Check for Clang before GCC. (check-in: 7c2cd4b0 user: mistachkin tags: ctimeCompiler)
20:30
Remove surplus quotation marks from the COMPILER= compile_options setting for Clang. (check-in: 5c966f20 user: mistachkin tags: ctimeCompiler)
19:34
Remove surplus quotation marks from the COMPILER= compile_options setting for GCC. (check-in: 664c132d user: drh tags: ctimeCompiler)
18:09
Add basic compiler information to the results of 'PRAGMA compile_options'. (check-in: d734e2df user: mistachkin tags: ctimeCompiler)
12:30
Improvements to WHERE-clause debug tracing. Show TK_MATCH expressions and show more details on WhereTerm traces. (check-in: 71087c12 user: drh tags: trunk)
04:10
Fix Lemon so that it actually works with -DYYSTACKDEPTH=0. (check-in: a9be4c2d user: drh tags: trunk)
01:07
Fix the Lemon-generated parser so that it compiles with -DYYSTACKDEPTH=0. It does compile now, but there are subtle issues still. (check-in: 28d439f8 user: drh tags: trunk)
2016-05-26
20:56
Add a new OP_SeekRowid opcode, that combines the functions of OP_MustBeInt and OP_NotExists. This makes the code slightly smaller and faster. (check-in: ffe80a1b user: drh tags: trunk)
20:52
Add further instrumentation to the bc_test1.c test app. (check-in: 5528de4a user: dan tags: begin-concurrent)
2016-05-25
18:53
Add the libvers.c tool in the tool/ subdirectory. (check-in: 2a41f098 user: drh tags: trunk)
2016-05-24
18:55
Enhance Lemon and the parser template so that it can once again build parsers that have no unreachable branches. (check-in: 41fd46e2 user: drh tags: trunk)
18:50
Minor change to the walcrash4.test module so that it works when SQLITE_DEFAULT_WAL_SYNCHRONOUS is set to something other than 2. (check-in: 61e239bc user: drh tags: trunk)
16:20
Fix an obscure problem with transactions written in "PRAGMA synchronous=full" mode on systems that do not support POWERSAFE_OVERWRITE causing an xSync() call to be omitted if the last frame written by a transaction is aligned to a sector boundary. This means that if a power failure or OS crash occurs very soon after such a transaction is committed, it may be lost following system recovery. (check-in: 37de3eab user: dan tags: trunk)
00:40
Improvements to the initialization of the push-down automoton for the Lemon-generated parser. Smaller and faster. (check-in: 3b28b68e user: drh tags: trunk)
2016-05-23
21:56
Use a pointer to the top of the stack rather than an index into the stack in the Lemon-generated parser template, for about 6.6% parser performance gain. (check-in: 3c2a7705 user: drh tags: trunk)
19:02
Avoid a minor error message when running RTREE without an sqlite_stat1 table. (check-in: 276e92f5 user: drh tags: trunk)
18:27
Fix the rtreeG.test test case. (Closed-Leaf check-in: 9589e937 user: drh tags: tree-stat1-fix)
18:12
Fix RTREE so that it does not run queries against the sqlite_stat1 if that table does not exist. (check-in: 48526a2f user: drh tags: tree-stat1-fix)
18:06
Remove an extra "finish_test" from the end of rtreeC.test. (check-in: bfbb6dd8 user: drh tags: tree-stat1-fix)
16:16
Improve the error messages generated by the rtree module when a constraint fails. (check-in: 3ad2531e user: dan tags: trunk)
16:15
Lemon enhancement: avoid unnecessary reduce actions that convert one non-terminal into another but have no side effects. (check-in: a86e782a user: drh tags: trunk)
14:24
Fix comment typos and improve clarity of presention in Lemon. The output should be identical. (check-in: b91a5b82 user: drh tags: trunk)
02:57
Merge changes from trunk. (check-in: 815cc2bb user: drh tags: apple-osx)
00:10
Update the configure script with additional hints on the location of tclConfig.sh, hints needed by the latest versions of Xcode. (check-in: 90411a28 user: drh tags: trunk)
2016-05-21
23:25
More tweaks to improve the performance of the insert logic, slightly. (check-in: dec13075 user: drh tags: trunk)
20:03
Simplify the sqlite3BtreeInsert() interface by gathering the five arguments describing the content to be inserted into the new BtreePayload structure, and thus reducing the number of parameters from eight to four. (check-in: 55f348cd user: drh tags: trunk)
19:10
Remove some unused legacy code from the btree insert logic. (check-in: 2ce11667 user: drh tags: trunk)
18:50
Use pthreads mutexes and conditions to synchronize threads in bc_test1. (check-in: f33aa76f user: dan tags: begin-concurrent)
12:29
Yet another minor size reduction and performance increase in the b-tree insert logic. (check-in: 1dbaf7a1 user: drh tags: trunk)
11:23
Small size reduction and performance increase in the sqlite3BtreeInsert() logic. (check-in: 656aa1ec user: drh tags: trunk)
00:45
Add the shell-script used for routine performance testing. (check-in: 8e366f18 user: drh tags: trunk)
2016-05-20
23:51
Add a simple TCL script for summing cachegrind information for each VDBE opcode. (check-in: 96cf821b user: drh tags: trunk)
21:40
Another optimization on the OP_Column opcode. (check-in: 1765672c user: drh tags: trunk)
20:58
Fix typo in comment. (check-in: 9db8f214 user: mistachkin tags: trunk)
19:51
Slight performance improvement in the OP_Column opcode. (check-in: 5c157474 user: drh tags: trunk)
18:09
Remove the sqlite3PagerClearCache() routine, which does not accomplish anything useful. (check-in: f250166b user: drh tags: trunk)
15:53
Performance optimization and size reduction on the freeP4() routine. (check-in: 4dc56e86 user: drh tags: trunk)
15:24
Increase the version number to 3.14.0 since we are already making significant code changes. (check-in: 1a0d0576 user: drh tags: trunk)
15:15
Use sqlite3VdbeAddOp0() to code OP_Expire, to save a few bytes. (check-in: 3d55d24d user: drh tags: trunk)
14:54
Optimizations to link list merge sort code in vdbesort.c, pcache.c, and rowset.c. Resulting binaries are 10 bytes smaller and use 0.03% fewer CPU cycles. (check-in: 9033afbb user: drh tags: trunk)
14:11
For queries with both ORDER BY and LIMIT, if the rows of the inner loop are emitted in ORDER BY order and the LIMIT has been reached, then optimize by exiting the inner loop and continuing with the next cycle of the first outer loop. (check-in: 559733b0 user: drh tags: trunk)
13:44
Set the NULLEQ flag on the sequence counter comparison in the ORDER BY LIMIT optimization, to avoid coverage complaints about not testing the NULL case. (Closed-Leaf check-in: ed1b30dc user: drh tags: orderby-limit)
12:22
Autoconf configure.ac adjustment to try to get it to look for both editline and readline automatically. (check-in: 645bd696 user: drh tags: trunk)
00:21
A few simple test cases for the ORDER BY LIMIT optimization. (check-in: 08849eab user: drh tags: orderby-limit)
2016-05-19
22:40
Appears to work now. Needs test cases, more comments, and code optimization. (check-in: 990fe50c user: drh tags: orderby-limit)
22:13
In a query with both ORDER BY and LIMIT, if the inner loop satisfies the ORDER BY then try to cut short each invocation of the inner loop once the LIMIT has been satisfied. This check-in is a partial implementation only. (check-in: 852d1eda user: drh tags: orderby-limit)
19:31
Fixup comments on wctrlFlags value definitions. (check-in: 58b516e8 user: drh tags: trunk)
18:56
Clean up the WHERE_* macros used for the wctrlFlags parameter on the sqlite3WhereBegin() interface, freeing up some bits to be used for other things. (check-in: d0130584 user: drh tags: trunk)
17:51
Optimization marks in vdbe.c. No logic changes. (check-in: cf273741 user: drh tags: trunk)
16:58
Performance improvement in the OP_Column opcode. (check-in: 4737cadc user: drh tags: trunk)
16:21
Add test cases to test some fts3/4 edge case behaviour surrounding the '*' character. (check-in: 1f577e1f user: dan tags: trunk)
11:12
Small size reduction and performance improvement in the OP_Column opcode. (check-in: 0d773061 user: drh tags: trunk)
2016-05-18
21:03
Add the "scrub" utility program that simultaneously backs-up a live database and erases all deleted content. (check-in: c981ab2a user: drh tags: trunk)
21:01
Omit the unnecessary WHERE_REOPEN_IDX flag in the WHERE interface. (check-in: 915416d1 user: drh tags: trunk)
20:53
Merge the 3.13.0 release changes. (check-in: e2e9b985 user: drh tags: apple-osx)
10:57
Version 3.13.0 (check-in: fc49f556 user: drh tags: trunk, release, version-3.13.0)
2016-05-17
21:17
Enhance the scrub utility program so that it does a FULL checkpoint prior to starting the backup, to ensure that the database file content matches what needs to be backed up without having to look at the WAL file. (Closed-Leaf check-in: ab1c5ce5 user: drh tags: scrub-backup)
17:11
Merge the latest changes from trunk. (check-in: 5021dfe1 user: drh tags: scrub-backup)
2016-05-16
14:35
Do not run snapshot_fault.test as part of the inmemory_journal permutation. (check-in: 995c084b user: dan tags: trunk)
13:37
Merge recent fixes from trunk. (check-in: 0d9b82af user: drh tags: apple-osx)
11:55
Disable shell.exe test cases for UTF8 filenames as they do not work on MinGW. (check-in: 386bcbba user: drh tags: trunk)
2016-05-13
17:22
Improvements to a comment in the pcache.c file. No changes to code. (check-in: b369980f user: drh tags: trunk)
15:22
Remove the unused PGHDR_NEED_READ flag. Add invariant checking (during SQLITE_DEBUG builds only) for the PgHdr object. (check-in: 771c5411 user: drh tags: trunk)
12:12
Clarification of the pagerFlushOnCommit() logic. (check-in: 3401d9dc user: drh tags: trunk)
11:50
Fix pager_end_transaction() to ensure that a ROLLBACK does not clobber unwritten pages in a TEMP file pcache. (check-in: 9495d338 user: drh tags: trunk)
04:24
Additional debugging and tracing logic for pcache.c, turned off by default using an "#if 0". (check-in: 32a62e3b user: drh tags: trunk)
2016-05-12
19:17
Disable ALWAYS and NEVER when compiled with SQLITE_MUTATION_TEST. (check-in: 24d9fbc1 user: drh tags: trunk)
19:05
Simplification of the sqlite3FaultSim() call inside of sqlite3PagerCommitPhaseOne(). (check-in: 1b0f4cc3 user: drh tags: trunk)
18:38
Add an assert in pager.c to confirm that pPager->tempFile is always true for in-memory databases. (check-in: 3fd71092 user: drh tags: trunk)
17:06
Add extra OPTIMIZATION-IF-FALSE comments where required to pcache.c. (check-in: 9d55b8f5 user: dan tags: trunk)
12:08
For in-memory databases, it does not matter if pcache entries are marked "clean" or "writable". (check-in: 06c1e27c user: drh tags: trunk)
12:01
Remove an unnecessary call to sqlite3PcacheMakeClean() inside of the ROLLBACK logic. (check-in: 0dc50d99 user: drh tags: trunk)
09:48
Add a missing OPTIMIZATION-IF-FALSE comment to pcache.c. (check-in: bc202e5b user: dan tags: trunk)
2016-05-11
23:54
For in-memory databases, it does not matter if pcache entries are marked "clean" or "writable". (Closed-Leaf check-in: ad601c79 user: drh tags: pager-dev)
20:03
Remove a redundant condition from pcache.c. Add an OPTIMIZATION-IF-TRUE comment to another condition that requires it. (check-in: 3bfd2621 user: dan tags: trunk)
18:20
Remove a redundant condition from pcache.c. Add an OPTIMIZATION-IF-TRUE comment to another condition that requires it. (Closed-Leaf check-in: 4533ed35 user: dan tags: mistake)
15:41
Remove some a small amount of redundant code related to PCache.pSynced from pcache.c. (check-in: 9cc8cad7 user: dan tags: trunk)
12:47
Do not reset the page cache when a rollback journal truncate fails, as doing so can cause loss of information for an in-memory TEMP file. (check-in: 345ce1c9 user: drh tags: trunk)
11:04
Always truncate, rather than persist, the rollback journal of a TEMP database. (check-in: 42fb6f1e user: drh tags: trunk)
10:57
Add pcache tracing macros. Off by default. Requires changing an "#if 0" and recompiling to enable. (check-in: d9313d19 user: drh tags: trunk)
2016-05-10
20:16
Add another test case to temptable3.test. (check-in: 22364024 user: dan tags: trunk)
20:03
Fix a problem in sqlite3PagerMovepage() when working on a temp table for which pages have been spilled. (check-in: 20cf8811 user: drh tags: trunk)
2016-05-09
23:11
Fixes to requirements marks. No changes to code. (check-in: 79ecd0ef user: drh tags: trunk)
22:35
Enhancements to test/sort5.test so that it works with SEE. (check-in: 8a39c8ee user: drh tags: trunk)
22:32
Remove some forgotten debugging lines from test/sort5.test. (check-in: f5875489 user: drh tags: trunk)
19:58
Omit the unnecessary WHERE_REOPEN_IDX flag in the WHERE interface. (Closed-Leaf check-in: da94a6e0 user: drh tags: dev)
19:03
Update a comment in fts5.h. No changes to code. (check-in: 14e53d0e user: dan tags: trunk)
18:05
Fix the FTS5 xQueryPhrase() API function so that it recognizes column filters. (check-in: 48505cde user: dan tags: trunk)
2016-05-07
18:02
Add options to bc_test1.c to make it more flexible. (check-in: ec6ef5f2 user: dan tags: begin-concurrent)
12:15
Make the sqlite3DeleteTable() routine smaller and faster. (check-in: d75140b8 user: drh tags: trunk)
12:15
Fix typo in the intpkey-17.2 test. (check-in: a45fda65 user: drh tags: trunk)
2016-05-06
21:04
Add test/bc_test1.c, for testing the degree of concurrency provided by this branch under various conditions. (check-in: 128c7eae user: dan tags: begin-concurrent)
20:23
Simplification to the logic used to decide between OP_Seek and OP_NotExists. Use OP_NotExists for both DELETE and UPDATE. (check-in: 3a695263 user: drh tags: trunk)
18:47
Corrections to comments on the whereScanInit() interface. (check-in: ab7ab415 user: drh tags: trunk)
16:49
For DELETE operations, make sure that seeks on the main table are not deferred, since if they are and none of the indexes reference columns of the table, the seek might never occur until the OP_Delete opcode, which is too late. Fix for ticket [16c9801ceba49]. (check-in: 93a2bace user: drh tags: trunk)
16:30
Fix an error in main.mk causing testfixture to use individual fts5 source code files instead of fts5.c. (check-in: 933a1c81 user: dan tags: trunk)
16:06
In the WHERE generator, when building code for a DELETE operation, make sure that seeks to the main table are not deferred. This is a better fix for the [16c9801ceba49] bug than the previous. (Closed-Leaf check-in: 150dd09e user: drh tags: ticket-16c9801ce)
15:16
Fix a bug in sqlite_analyzer causing it report (slightly) incorrect values for the number of entries in indexes or WITHOUT ROWID tables. (check-in: dc37750d user: dan tags: trunk)
11:31
Do not scan indexes that have the integer primary key as their left-most column. This fixes the crash of ticket [16c9801ceba] but it seems like the wrong fix. More investigation needed. (check-in: 50312273 user: drh tags: ticket-16c9801ce)
2016-05-05
23:59
Additional error reporting. Open the source database read/write so that it can delete the WAL file when done. (check-in: d2efd3c1 user: drh tags: scrub-backup)
23:39
Working when run against sqlite.fossil. (check-in: b0bd9dd6 user: drh tags: scrub-backup)
23:09
Finished implementation compiles, but untested. (check-in: aeb88bdf user: drh tags: scrub-backup)
17:15
Initial check-in of the "scrub.exe" utility program prototype. Not yet fully functional. In particular, no scrubbing is done. (check-in: bdf2ec77 user: drh tags: scrub-backup)
11:53
Renumber internal constants in the printf() implemention for a small performance improvement. (check-in: 69d11447 user: drh tags: trunk)
2016-05-04
21:06
Disable the session extension API if SQLITE_ENABLE_SESSION is not defined. (check-in: 71af9ac1 user: drh tags: trunk)
19:04
Fix typo in comment. No changes to code. (check-in: 6c43ba1c user: mistachkin tags: trunk)
14:45
Only disable the one-pass DELETE optimization if the WHERE clause contains a correlated subquery. Uncorrelated subqueries are allowed. This is a refinement of check-in [3f221f592a9a1] that is the fix for ticket [dc6ebeda9396087]. (check-in: aae38969 user: drh tags: trunk)
14:20
Portability enhancements to the configure script on the amalgamation tarball. (check-in: 7184c4b8 user: drh tags: trunk)
11:28
Disable the PagerDontWrite() optimization for temp tables. It can cause database corruption if a page passed to PagerDontWrite() is dirty at the start of a transaction that is subsequently rolled back. (check-in: 6341ab2f user: dan tags: trunk)
2016-05-03
19:40
Minor style tweaks in the MSVC makefile. (check-in: 1b43358f user: mistachkin tags: trunk)
19:36
Add the experimental SQLITE_FCNTL_WIN32_GET_HANDLE file control. (Leaf check-in: b6ddabe1 user: mistachkin tags: win32GetHandle)
14:57
The session extension is disabled by default. To enable it using --enable-session on ./configure on unix and add SESSION=1 to the nmake on Windows. Or add -DSQLITE_ENABLE_SESSION and -DSQLITE_ENABLE_PREUPDATE_HOOK to build manually. (check-in: bcaa650e user: drh tags: trunk)
13:14
Turn the session extension off by default. Enable using --enable-session on configure scripts, or using the SESSION=1 argument to nmake on Windows. (Closed-Leaf check-in: e462cde2 user: drh tags: session-make)
02:43
Fix the build when SQLITE_ENABLE_DATA_PROTECTION is defined. (check-in: 8f05e140 user: drh tags: apple-osx)
00:04
Avoid left-shifts of signed integers. (check-in: 0715ce16 user: drh tags: trunk)
2016-05-02
19:05
Remove some randomness from test script temptable2.test. (check-in: 5830cf72 user: dan tags: trunk)
16:59
Fix a test case in temptable2.test so that it works on systems that lack a coherient cache (ex: OpenBSD) and thus do not support the "PRAGMA mmap_size" command. (check-in: 088cf838 user: drh tags: trunk)
15:00
Merge enhancements and bug fixes from trunk. (check-in: f52765ee user: drh tags: apple-osx)
13:57
Fix harmless LLVM compiler warnings in the srcck1.c utility program used during the build process. (check-in: e4af9675 user: drh tags: trunk)
12:18
Disable the multi-row one-pass DELETE optimization when the WHERE clause contains a subquery. Fix for ticket [dc6ebeda9396087]. (check-in: 3f221f59 user: drh tags: trunk)
10:25
Improvements to the way the LIKE optimization is implemented, resulting in slightly smaller and faster code that is easier to test. (check-in: 54c63b32 user: drh tags: trunk)
2016-04-30
19:23
Change the way tester.tcl handes $argv so that in "permutations.test <permutation> <filename>" <filename> may be the name of any file in the test/ directory. (check-in: 820c57bb user: dan tags: trunk)
18:10
Remove an unnecessary branch from the OP_String8 opcode. (check-in: 459a0b45 user: drh tags: trunk)
17:19
More bug fixes to Lemon identified by Kelvin Sherlock. None of these have any impact on SQLite. (check-in: 762bdc55 user: drh tags: trunk)
02:59
Simplifications to the OP_Halt opcode implementation. (check-in: daf4630f user: drh tags: trunk)
2016-04-29
20:30
Fix the temporary directory search algorithm for unix so that it fails gracefully even if all candidate directories are inaccessible. This fixes a bug that was introduced by check-in [9b8fec60d8e]. (check-in: 614bb709 user: drh tags: trunk)
17:07
Fix the nolock VFS so that it supports shared memory. (check-in: ce11f8e8 user: drh tags: apple-osx)
16:01
Merge the latest enhancements from trunk. (check-in: 91e5c07e user: drh tags: begin-concurrent)
15:52
Merge enhancements from trunk, and in particular the TEMP file deferred I/O enhancements. (check-in: 81b76901 user: drh tags: apple-osx)
15:39
Postpone I/O associated with TEMP files for as long as possible, with the hope that the I/O can ultimately be avoided completely. (check-in: 9d0a5ae0 user: drh tags: trunk)
14:12
Fix test script temptable2.test so that it works with the "inmemory_journal" and "journaltest" permutations. (Closed-Leaf check-in: b7bec7f2 user: dan tags: tempfiles-25)
11:35
Merge latest trunk changes, including test case fixes, with this branch. (check-in: 99794aca user: dan tags: tempfiles-25)
11:33
Modify the permutations.test script so as to set any permutation specific configuration values before running each individual test script. Fix a mostly harmless buffer overread in the sessions module. (check-in: 4cbd5024 user: dan tags: trunk)
11:28
Lemon bug fix: Do not merge action routines unless their destructors are also identical. Problem and suggested fix reported on the mailing list by Kelvin Sherlock. (check-in: 4792d6db user: drh tags: trunk)
10:13
Fix an almost entirely harmless buffer overread in the sessions module. (Closed-Leaf check-in: 89b0ee33 user: dan tags: permutations-fix)
02:55
Some optimization comments added to vdbe.c. No functional changes to code. (check-in: e7c22e3b user: drh tags: trunk)
2016-04-28
22:29
Further simplifications and improved commentting on the rowset.c module, including several optimization comments. (check-in: 9f15a520 user: drh tags: trunk)
20:11
Comment changes only: Add several optimization marks in rowset.c. Add a header comment that explains what the various special comments mean. (check-in: 8cdbe89a user: drh tags: trunk)
19:23
Fix typo in comment. No changes to code. (check-in: 9f6f17b5 user: mistachkin tags: trunk)
18:53
Rearrange some code in the RowSet logic for clarity of presentation, while adding an /*OPTIMIZATION-IF-TRUE*/ comment. It should operate identically. (check-in: 5748e643 user: drh tags: trunk)
14:59
Merge latest changes from trunk with this branch. (check-in: 45467ee4 user: dan tags: permutations-fix)
14:54
Avoid running sessionfault.test and sessionfault2.test as part of the "inmemory_journal" permutation. (check-in: 5973d3bf user: dan tags: permutations-fix)
14:15
Use comments to mark several branches as optimizations. No changes to code. (check-in: 33e62747 user: drh tags: trunk)
09:53
Ensure that quota.test deletes the directory named "test.db" that it creates. (check-in: 045edd4b user: dan tags: permutations-fix)
03:52
Remove an unnecessary conditional from the sqlite3DecOrHexToI64() routine. (check-in: fcf85bfe user: drh tags: trunk)
00:32
Change the sqlite3Atoi64() routine so that it returns failure if not all of the input characters are consumed, even if it consumed all characters up to the first 0x00. This has no impact on external APIs as far as I can tell. (check-in: 46d4ffff user: drh tags: trunk)
2016-04-27
18:54
Modify the permutations.test script so as to set any permutation specific configuration values before running each individual test script. (check-in: 2662d8fe user: dan tags: permutations-fix)
15:24
More simplification of the sqlite3AtoF() routine. Add special comments to indicate branches that are for optimization purposes only and that give the correct answer even if always or never taken. (check-in: 0065fe97 user: drh tags: trunk)
11:24
Fix a couple of test script problems on this branch. Both related to the fact that temp database page sizes can no longer be changed by VACUUM or the backup API after the temp db is populated. (check-in: 6bb5aa2b user: dan tags: tempfiles-25)
02:35
Remove still more unnecessary branches from sqlite3AtoF(). (check-in: 3adfe9f3 user: drh tags: trunk)
2016-04-26
23:14
Further simplifications to sqlite3AtoF() to remove unneeded branches. (check-in: dd69e53c user: drh tags: trunk)
21:02
Remove an unnecessary line from the sqlite3AtoF() routine. (check-in: a9d00749 user: drh tags: trunk)
18:58
The pcache and the built-in VFSes should not use mutexes when SQLITE_CONFIG_SINGLETHREAD is set. (check-in: 12418b10 user: drh tags: trunk)
17:10
Fix an issue in temptable2.test preventing it from working with SQLITE_DEFAULT_AUTOVACUUM=1 builds. (check-in: e790aac0 user: dan tags: tempfiles-25)
16:03
Merge the checksymbols fix from trunk into this branch. (check-in: 04911cee user: dan tags: tempfiles-25)
13:13
Fix the "checksymbols" target in Makefile.in to be able to deal with the sqlite3changegroup family of interfaces. (check-in: d819bfbd user: drh tags: trunk)
2016-04-25
22:39
Add an sqlite3FaultSim() all to make it easier to simulate IO errors in a VACUUM commit. (check-in: 8bfde416 user: drh tags: tempfiles-25)
19:28
Remove an obsolete comment from the pager. No code changes. (check-in: 36f97ca8 user: drh tags: tempfiles-25)
19:25
Update the RBU vacuum code so that databases that use custom collation sequences can be vacuumed. (check-in: 7dd48c10 user: dan tags: trunk)
19:20
Fix some unreachable branches in the pager. (check-in: 3ae44770 user: drh tags: tempfiles-25)
15:03
Merge bug fix from trunk. (check-in: a905d5e0 user: drh tags: tempfiles-25)
02:20
When checking for the WHERE-clause push-down optimization, verify that all terms of the compound inner SELECT are non-aggregate, not just the last term. Fix for ticket [f7f8c97e97597]. (check-in: ec215f94 user: drh tags: trunk)
01:43
Fix a typo in the Makefile. (check-in: d0a579b3 user: mistachkin tags: trunk)
2016-04-23
21:16
Merge the temporary directory search algorithm fix from trunk. (check-in: 9b8fec60 user: drh tags: tempfiles-25)
20:59
Fix the fix to the temporary directory search algorithm so that it continues to return "." as a fallback if that directory has the correct permissions. (check-in: b38fe522 user: drh tags: trunk)
19:55
Merge the latest trunk changes. (check-in: 84da122d user: drh tags: tempfiles-25)
17:24
Fix a problem with mixing temp-files and mmap-mode. (check-in: c80c5c62 user: dan tags: tempfiles-25)
14:55
Fix some problems to do with temp-file databases and recovering from IO and SQLITE_FULL errors. (check-in: 3d61da4a user: dan tags: tempfiles-25)
2016-04-21
23:37
Change the temporary directory search algorithm on unix so that directories with only -wx permission are allowed. And do not allow "." to be returned if it lacks -wx permission. (check-in: 67985761 user: drh tags: trunk)
18:13
Add the sqlite3rbu_vacuum() API, to create an RBU handle that can be used to rebuild a database in the same way as the VACUUM command. (check-in: bd4a6f83 user: dan tags: trunk)
16:44
If a call to sqlite3rbu_close() on an rbu handle opened by sqlite3rbu_vacuum() returns other than SQLITE_OK, delete the contents of the rbu_state table. This ensures that if an RBU vacuum operation either completes successfully or encounters an error, the next call to sqlite3rbu_vacuum() with the same parameters starts a new RBU vacuum operation. (Closed-Leaf check-in: 6e4ac704 user: dan tags: rbu-vacuum)
15:44
Merge the latest changes from trunk. (Closed-Leaf check-in: 8183fa68 user: drh tags: skip-ahead-distinct)
15:35
Merge all recent enhancements from trunk. (check-in: a15c49ae user: drh tags: apple-osx)
15:26
Fix a problem in rbu vacuum on tables with a large sqlite_master table. (check-in: 23eac52e user: dan tags: rbu-vacuum)
15:24
Add a function prototype in order to fix a compiler warning. (check-in: 49aec971 user: drh tags: tempfiles-25)
15:03
Merge updates from trunk. (check-in: cc28106e user: drh tags: tempfiles-25)
02:27
Add the SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION method for enabling sqlite3_load_extension() while leaving the load_extension() SQL function disabled. (check-in: c4f165c4 user: drh tags: trunk)
01:58
Test cases for SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION. (Closed-Leaf check-in: debafa5e user: drh tags: load-ext-security)
01:30
Revert sqlite3_enable_load_extension() to its original long-standing behavior. Add SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION which will enable only the C-API and leave the SQL function disabled. (check-in: b2ae5bfa user: drh tags: load-ext-security)
2016-04-20
20:08
Add a documentation comment for sqlite3rbu_vacuum() to sqlite3rbu.h. (check-in: da5c753d user: dan tags: rbu-vacuum)
19:30
When an error occurs while transitioning out of WAL mode, make sure the locking state is not left at EXCLUSIVE. (check-in: 3340f086 user: drh tags: trunk)
18:31
Fix a locking race condition in Windows 10 that can occur when two or more processes attempt to recover the same hot journal at the same time. (check-in: 38a4e9d9 user: drh tags: trunk)
17:47
Add fault injection tests for rbu vacuum. Fix some problems revealed by the same. (check-in: f042fdd1 user: dan tags: rbu-vacuum)
12:16
Merge all recent enhancements from trunk. (check-in: 1f709fbf user: drh tags: begin-concurrent)
00:30
API Change: Modify sqlite3_enable_load_extension() so that it only enables/disables the load_extension() SQL function, and leaves the C-APIs enabled at all times. In this way, applications can enable extension loading for the C interface without having to expose that capability to the SQL. (check-in: edb454e4 user: drh tags: load-ext-security)
2016-04-19
19:27
Updates to ensure the values of PRAGMA settings like "page_size", "auto_vacuum", "user_version" and "application_id" are not lost when a database is RBU vacuumed. (check-in: 74ffea76 user: dan tags: rbu-vacuum)
17:11
When an RBU vacuum is started on a db identified using a URI filename, pass the same URI parameters when creating the new version of the db. This ensures that RBU vacuum works with password protected databases. (check-in: ca021ba8 user: dan tags: rbu-vacuum)
16:20
Detect attempts to use rbu vacuum on a wal mode database (not allowed). And attempts to write to a database in the middle of an rbu vacuum (which prevents the vacuum from resuming). (check-in: 00b2f4b0 user: dan tags: rbu-vacuum)
2016-04-18
21:00
Another fix to rbu vacuum for a zipvfs case. (check-in: 29407d70 user: dan tags: rbu-vacuum)
18:18
Fix some zipvfs related problems in RBU vacuum. (check-in: d76f4aaa user: dan tags: rbu-vacuum)
17:30
Version 3.12.2 (Leaf check-in: 92dc59fd user: drh tags: release, branch-3.12.0, version-3.12.2)
16:18
Correctly interpret negative "PRAGMA cache_size" values when determining the cache-size used for sorting large amounts of data (i.e. the functionality in vdbesort.c). (check-in: 39dd67af user: drh tags: branch-3.12.0)
16:12
Fix a problem in the code generator for joins on virtual tables where the outer loop of the join uses the IN operator. (check-in: a2cf4968 user: drh tags: branch-3.12.0)
16:06
Fix the sqlite3BtreeDelete() routine so that it preserves the correct key even when the row being deleted is not on a leaf page. Fix for ticket [a306e56ff68b8fa56] (check-in: 368e86c7 user: drh tags: branch-3.12.0)
15:59
Increase the version number to 3.12.2. (check-in: 9c37e9ce user: drh tags: branch-3.12.0)
15:54
Remove quotes from identifiers used as datatype names in a CREATE TABLE statement. Fix for ticket [7d7525cb01b68] (check-in: ab9d279f user: drh tags: branch-3.12.0)
15:46
Remove quotes from identifiers used as datatype names in a CREATE TABLE statement. Fix for ticket [7d7525cb01b68] (check-in: eba27d4d user: drh tags: trunk)
13:36
Merge recent trunk changes. (check-in: d9768de5 user: drh tags: tempfiles-25)
13:30
sqlite3PCachePerecentDirty() should return 0 if the pcache is empty. (check-in: 85f3d80e user: drh tags: tempfiles-25)
13:09
The last parameter to pread64() and pwrite64() should be off64_t, not off_t. (check-in: 3a7d7298 user: drh tags: trunk)
09:17
Add the -vacuum switch to the "rbu" demonstration program. (check-in: 9a0078a5 user: dan tags: rbu-vacuum)
2016-04-16
19:02
Changes so that rbu vacuum works with zipvfs databases. (check-in: bae7f875 user: dan tags: rbu-vacuum)
17:53
Avoid creating any extra files ("<target>-vacuum") when running an RBU vacuum. Ensure that the OAL file created is "<target>-oal", not "<target>-vacuum-oal". (check-in: dc19aacc user: dan tags: rbu-vacuum)
15:03
Fix a couple of assert() statements that were failing with OOM error tests. (check-in: 8eb3d7d8 user: dan tags: rbu-vacuum)
2016-04-15
22:03
Add the SQLITE_SkipAhead optimization setting (check-in: 87703b76 user: drh tags: skip-ahead-distinct)
20:46
Add the experimental sqlite3rbu_vacuum() API function. For opening an RBU handle that rebuilds a database from scratch. (check-in: 0216b48f user: dan tags: rbu-vacuum)
16:27
Skip-ahead is now just an optimization. If it gets confused, it falls back to an incremental scan with redundancy elimination. (check-in: 6fac0b92 user: drh tags: skip-ahead-distinct)
16:17
Skip-ahead does not always work. So we still have to check for redundancy. (check-in: db5a2364 user: drh tags: skip-ahead-distinct)
15:54
Fixes to the skip-ahead distinct logic. More issues remain. (check-in: 45a70b2b user: drh tags: skip-ahead-distinct)
15:06
Merge enhancements from trunk, especially the ".eqp full" enhancement to the command-line shell. (check-in: 491f0dbd user: drh tags: skip-ahead-distinct)
15:03
CLI enhancement: Add the ".eqp full" option, that shows both the EXPLAIN QUERY PLAN and the EXPLAIN output for each command run. Also disable any ".wheretrace" and ".selecttrace" when showing EQP output. (check-in: 3e217d62 user: drh tags: trunk)
14:13
Several new test cases that cause failures. (check-in: 0379f2cf user: drh tags: skip-ahead-distinct)
13:24
Fixed crash bugs. Still sometimes gets the wrong answers. (check-in: 2afcb2c7 user: drh tags: skip-ahead-distinct)
01:55
Progress toward getting DISTINCT to use a seek to advance to the next distinct row, when driven by an appropriate index. (check-in: 9e14aa14 user: drh tags: skip-ahead-distinct)
2016-04-14
19:29
Work toward improving analysis and code generation for DISTINCT and aggregate queries. (Leaf check-in: 129083bd user: drh tags: better-distinct-agg)
17:29
In the ICU extension toupper() and tolower() SQL functions, avoid calling u_strToUpper() or u_strToLower() a second time if the buffer passed to the first invocation turns out to be large enough. (check-in: d23e5813 user: dan tags: trunk)
16:40
Add the SF_HasAgg constant (currently unused). Also enhance the comments on many other constant definitions to detail constraints on their values. (check-in: 7b7a69d0 user: drh tags: trunk)
15:44
Correctly interpret negative "PRAGMA cache_size" values when determining the cache-size used for sorting large amounts of data (i.e. the functionality in vdbesort.c). (check-in: 79147dca user: dan tags: trunk)
15:38
Add some missing testcase() macros to the pushDownWhereTerms() routine. (check-in: 67d7f79c user: drh tags: trunk)
13:35
Rename WhereInfo.pResultSet to pDistinctSet to more accurately reflect what it represents. (check-in: 53179614 user: drh tags: trunk)
13:16
Since the return value of sqlite3OsClose() is always ignored, we might as well make it "void" instead of "int", and thereby save 50 bytes in the compiled binary. (check-in: 7ee570e7 user: drh tags: trunk)
13:06
Additional ".selecttrace" debugging output when the query is transformed from a DISTINCT into a GROUP BY. (check-in: 5a469145 user: drh tags: trunk)
2016-04-13
21:00
Fix compiler warnings by removing surplus local variables in the schema pretty-printer logic of the command-line shell. (check-in: 55a62483 user: drh tags: trunk)
19:20
Merge enhancements from trunk via tempfiles-lazy-open. (check-in: ae16310c user: drh tags: tempfiles-25)
16:52
On commit, flush dirty temp-file pages only if the file is already open and 25% or more of the cache is dirty. (check-in: f6babf29 user: dan tags: tempfiles-25)
16:02
Merge enhancements from trunk. (Closed-Leaf check-in: e2edd34e user: drh tags: tempfiles-lazy-open)
15:52
Fixes for harmless compiler warnings. (check-in: 68142dc5 user: drh tags: trunk)
15:33
Add the --indent option to the .schema and .fullschema commands in the shell, to enable simple but effective pretty-printing. (check-in: 83cfe82c user: drh tags: trunk)
2016-04-12
20:26
A couple more compiler warning fixes. (Closed-Leaf check-in: 929fa4c3 user: mistachkin tags: warnings)
20:15
Even more compiler warning fixes. (check-in: 7faec9ea user: mistachkin tags: warnings)
20:05
More harmless compiler warning fixes. (check-in: ab69527c user: mistachkin tags: warnings)
19:30
Compilation fix for a C99-ism in the 'fts3view' tool. (check-in: bedb88a4 user: mistachkin tags: trunk)
19:20
Fix harmless compiler warnings in the 'session' module. (check-in: a18a6ce2 user: mistachkin tags: trunk)
19:09
Once a temporary database file has been opened, flush all dirty pages to disk when comitting a transaction. (check-in: bbac71aa user: dan tags: tempfiles-lazy-open)
17:13
Fix speedtest1 so that it automatically unlinks its test database prior to startup. (check-in: b65b69f6 user: drh tags: trunk)
16:59
Add the --temp option to the speedtest1.c performance test program. (check-in: 8053a6e2 user: drh tags: trunk)
16:23
Improved localtime() support for WindowsCE (check-in: 662c32af user: drh tags: trunk)
16:11
Add and adjust comments. (Closed-Leaf check-in: 541c6da2 user: mistachkin tags: winCeLocalTime)
16:10
Merge enhancements from trunk. (check-in: 9682c043 user: drh tags: tempfiles-lazy-open)
16:04
Add the sqlite3_snapshot_cmp() interface (available only with SQLITE_ENABLE_SNAPSHOT). (check-in: 7e728965 user: drh tags: trunk)
15:14
Update the documentation for sqlite3_snapshot_cmp() to make the circumstances under which the comparison is valid clearer. Add tests for the same. (Closed-Leaf check-in: 8fc83474 user: dan tags: snapshot-cmp)
11:58
Update the header comment on the memjournal.c file. No code changes. (check-in: 07f10dea user: drh tags: trunk)
00:26
Performance optimization the Vdbe allocator. (check-in: e2c4995b user: drh tags: trunk)
00:16
Avoid unnecessary calls to object destructors for a small performance gain. (check-in: aec94b6e user: drh tags: trunk)
00:00
Performance improvements in sqlite3WhereExprUsage(). (check-in: fdf75239 user: drh tags: trunk)
2016-04-11
22:45
Further refinements. (check-in: b35bb928 user: mistachkin tags: winCeLocalTime)
22:24
Merge updates from trunk. (check-in: b8094166 user: mistachkin tags: winCeLocalTime)
22:23
Fix typo in the MSVC makefile. (check-in: 3189a7f1 user: mistachkin tags: trunk)
22:10
Fix some compilation issues. (check-in: 016481b3 user: mistachkin tags: winCeLocalTime)
19:59
Add the sqlite3_snapshot_cmp() API. (check-in: c698a21a user: dan tags: snapshot-cmp)
19:24
Fix a typo in temptable2.test. (check-in: 04b1890f user: dan tags: tempfiles-lazy-open)
19:23
Add tests for wal mode to temptable2.test. (check-in: c6d0d441 user: dan tags: tempfiles-lazy-open)
19:01
Performance optimization to sqlite3Dequote() and its callers. (check-in: 9efe2265 user: drh tags: trunk)
18:50
Merge latest trunk changes with this branch. (check-in: ffc62af1 user: dan tags: tempfiles-lazy-open)
18:49
Add extra tests to temptable2.test. (check-in: 7dd9d4c1 user: dan tags: tempfiles-lazy-open)
18:25
Performance optimization for the sqlite3ExprListDelete() routine. (check-in: 2764aeaa user: drh tags: trunk)
18:15
Performance optimizations in the column cache of the code generator, and especially the sqlite3ExprCacheRemove() routine. (check-in: e35b345c user: drh tags: trunk)
18:07
Fixes for OOM and IO error handling with temp file databases. (check-in: 4eb06e84 user: dan tags: tempfiles-lazy-open)
16:43
Simplification and performance improvements in sqlite3ExprDup() and its subroutines. More work is possible in this area. (check-in: 476cc283 user: drh tags: trunk)
16:35
Rename the OP_MX_JUMP macro to SQLITE_MX_JUMP_OPCODE to avoid confusing the opcode name generator. (check-in: e554a4c3 user: drh tags: trunk)
14:49
Performance improvement in sqlite3ExprDelete(). (check-in: 60ad80e3 user: drh tags: trunk)
13:36
Remove the VdbeOp.opflags field and its associated initialization overhead. Update mkopcodeh.tcl to reorder opcode numbers to help the resolveP2Values() routine run faster. (check-in: 099478fa user: drh tags: trunk)
09:39
Update this branch with the latest changes from the trunk. (check-in: 982b753d user: dan tags: tempfiles-lazy-open)
01:43
Back off of the parser optimization in the previous check-in, slightly, to preserve some backwards compatibility regarding some undocumented behavior in the '#AAA' style query parameter. (check-in: ef1966c2 user: drh tags: trunk)
01:26
Small size reduction and performance improvement in the parser. (check-in: 16df7128 user: drh tags: trunk)
01:06
Factor out the common operation of setting the Expr.x.pSelect field of an Expr object into a subroutine. (check-in: 6a5cceee user: drh tags: trunk)
2016-04-09
18:04
Fix a problem in the code generator for joins on virtual tables where the outer loop of the join uses the IN operator. (check-in: 6c56b3a0 user: drh tags: trunk)
17:04
Fix the sqlite3BtreeDelete() routine so that it preserves the correct key even when the row being deleted is not on a leaf page. Fix for ticket [a306e56ff68b8fa56] (check-in: ca2ef8a8 user: drh tags: trunk)
14:36
Limit the number of digits shown in the "prereq" mask for ".wheretrace" debugging output. (check-in: 3686ed74 user: drh tags: trunk)
2016-04-08
21:35
Attempt to treat the arguments to a table-valued function as if they occur in the ON clause of a LEFT JOIN rather than in the WHERE clause. But this causes undesirable behavior with generate_series, as demonstrated by test cases. This is an incremental check-in pending further work. (Leaf check-in: 00ac73a0 user: drh tags: tabfunc-in-left-join)
19:44
Update documentation for sqlite3_snapshot_open(). No code changes. (check-in: 1dfa5234 user: drh tags: trunk)
15:09
Version 3.12.1 (check-in: fe7d3b75 user: drh tags: release, branch-3.12.0, version-3.12.1)
2016-04-07
23:18
Enhance the query planner so that IS and IS NULL operators are able to drive an index on a LEFT OUTER JOIN. (check-in: 84d2a09e user: drh tags: branch-3.12.0)
21:29
Update the version number to 3.12.1. This is the first release candidate. (check-in: 300f1b61 user: drh tags: branch-3.12.0)
21:29
Carry table column types through into VIEW definitions, where possible. (check-in: 3360ab09 user: drh tags: branch-3.12.0)
21:22
Prevent the in-memory journal read cursor from entering an inconsistent state when it reads the last few bytes out of the journal file. Fix for ticket [7f7f8026eda38]. (check-in: c232b99e user: drh tags: branch-3.12.0)
21:14
Add test cases for ticket [7f7f8026eda387d544]. (check-in: 87aa9357 user: drh tags: trunk)
18:42
Prevent the in-memory journal read cursor from entering an inconsistent state when it reads the last few bytes out of the journal file. Fix for ticket [7f7f8026eda38]. (check-in: c4b9c611 user: drh tags: trunk)
14:16
Avoid decrementing a pointer off the front end of the buffer in OP_MakeRecord. (check-in: 153135bf user: drh tags: trunk)
14:05
Instead of just commenting out the unneeded code in the previous check-in, remove it completely. (check-in: 8415d484 user: drh tags: trunk)
14:01
Remove an unnecessary test for a NULL pointer in freeP4(). (check-in: e84e88e3 user: drh tags: trunk)
13:45
Update comments on the unix file locking protocol. No changes to code. (check-in: 716b20de user: drh tags: trunk)
2016-04-06
18:20
For a pager backed by a temp file, store the main journal in memory until it is at least sqlite3_config.nStmtSpill bytes in size. Prevent the backup API from being used to change the page-size of a temp file. (check-in: 84c55701 user: dan tags: tempfiles-lazy-open)
17:32
Add a couple options to the MSVC makefile. (check-in: ea4de04d user: mistachkin tags: branch-3.12.0)
16:27
Fix a problem in test script lock.test. Fix minor issues in pager.c. (check-in: 84de8813 user: dan tags: tempfiles-lazy-open)
15:39
Add tests to this branch. Fix a problem with temporary databases in auto-vacuum mode. (check-in: afe9bd9b user: dan tags: tempfiles-lazy-open)
2016-04-05
23:39
Remove an unnecessary branch in the sqlite3LogEstToInt() routine. (check-in: da81d7af user: drh tags: trunk)
21:07
Defer opening the file used for the temp database (where CREATE TEMP TABLE tables are stored) until the database is too large to reside entirely within the cache. There are likely still problems on this branch. (check-in: be5a549e user: dan tags: tempfiles-lazy-open)
20:59
Carry table column types through into VIEW definitions, where possible. (check-in: fb555c3c user: drh tags: trunk)
19:46
Remove superfluous directories from the Makefile clean targets. (check-in: 0bf9926c user: mistachkin tags: trunk)
18:24
Oops. Branched from the wrong baseline. Ignore this one. (Closed-Leaf check-in: 8f1f300c user: drh tags: mistake)
17:59
Merge updates from trunk. (check-in: 00990020 user: mistachkin tags: winCeLocalTime)
17:50
Add the SQLITE_DBCONFIG_REQUIRE_TXN argument for sqlite3_dbconfig() which when set requires an explicit transaction before updating the database. (check-in: b7570ac1 user: drh tags: require-write-txn)
15:59
Incorrect version of build.c checked in at [87e5f5a6c60e3] (because I neglected to press the "Save" button on the text editor). There is no change to the logic, just improved presentation. (check-in: cf569f9f user: drh tags: trunk)
14:02
Make sure "0" intended as a NULL pointer is cast to a pointer when used in a varargs functions parameter. (check-in: ed128e8b user: drh tags: trunk)
14:01
Remove an unnecessary conditional from the index builder. (check-in: 87e5f5a6 user: drh tags: trunk)
13:35
Use SQLITE_WITHIN() for pointer range comparisons in some testing code. (check-in: 7cacf4e9 user: drh tags: trunk)
13:19
Do not allow pointer arithmetic to move a pointer across a memory allocation boundary. (check-in: 85b97931 user: drh tags: trunk)
00:44
Avoid unnecessary memset() operations in sqlite3PagerGet(). (Leaf check-in: 0c97b802 user: drh tags: pager-get-noinit)
2016-04-04
18:04
Fix documentation typos. Comment changes only. No changes to code. (check-in: d5fc2f7f user: drh tags: trunk)
17:59
Improve error messages from the 'shell1-5.0' test. (check-in: cefd36ff user: mistachkin tags: trunk)
17:34
Improved handling of UTF8 by the command-line shell. (check-in: 4534ebf1 user: drh tags: trunk)
17:23
Add the ".auth ON|OFF" command to the command-line shell. (check-in: 65c7bcc4 user: drh tags: trunk)
16:40
Test that the view name is passed to the authorization callback when a SELECT statement is run on a view. (check-in: 8627a4cd user: dan tags: trunk)
15:47
Add and enhance the new tests. (Closed-Leaf check-in: f4cbd18d user: mistachkin tags: altShellFix)
14:57
Enhance sqlite3session_apply() and sqlite3session_apply_strm() so that conflicts are retried before the xConflict() callback is invoked, as long as the "apply" operation is making forward progress. (check-in: 42a21966 user: drh tags: trunk)
13:46
Minor performance optimization in the comparison opcodes of the VDBE. (check-in: e375fe52 user: drh tags: trunk)
12:38
Fix harmless compiler warnings. (check-in: 0213d6af user: drh tags: trunk)
02:33
Refinements to the previous check-in. (check-in: b36dfdff user: mistachkin tags: altShellFix)
02:16
Experimental changes to the command line shell to make it work better with Unicode on Windows. (check-in: 74183a5f user: mistachkin tags: altShellFix)
02:05
More refactoring and cleanup work on the Win32 string conversion and utility routines. (check-in: 02ccb444 user: mistachkin tags: altShellFix)
2016-04-03
22:44
Revise and enhance the Win32 string conversion routines. (check-in: 345860c9 user: mistachkin tags: altShellFix)
20:50
Replace the new fprintf() calls. (check-in: f76c3a0c user: mistachkin tags: altShellFix)
20:45
Merge updates from trunk. (check-in: 566b551e user: mistachkin tags: altShellFix)
2016-04-01
17:54
Preupdate hook documentation fixes. No changes to code. (check-in: 59814f35 user: drh tags: trunk)
12:35
When reading an sqlite_stat1 table with missing entries for some indexes, set the default for the missing indexes after all other indexes are set so that the default values are more in line with indexes that are actually in the stat1 table. (check-in: a62340dc user: drh tags: trunk)
2016-03-31
22:53
Update the clean target in the MSVC makefile. (check-in: 69f4d832 user: mistachkin tags: trunk)
21:36
Version 3.9.3 (check-in: dfbfd34b user: drh tags: release, branch-3.9, version-3.9.3)
21:16
Enhance the query planner so that IS and IS NULL operators are able to drive an index on a LEFT OUTER JOIN. (check-in: f1e6bb95 user: drh tags: branch-3.9)
20:40
Enhance the query planner so that IS and IS NULL operators are able to drive an index on a LEFT OUTER JOIN. (check-in: c648539b user: drh tags: trunk)
15:08
Add another OOM test to this branch. (Closed-Leaf check-in: 49763fc3 user: dan tags: session-retry)
10:50
Add further tests for the code on this branch. Fix a problem in OOM handling. (check-in: 195f3340 user: dan tags: session-retry)
02:44
Enhanced comments describing the sessions file format. No changes to code. (check-in: 84dc41e2 user: drh tags: session-retry)
00:45
Fix the return code in sessionRetryConstraints(). (check-in: ea917c14 user: drh tags: session-retry)
2016-03-30
21:19
Have the sqlite3session_apply() function and its streaming equivalent retry any operations that failed with SQLITE_CONSTRAINT after all other operations on the same table have been attempted. New code is largely untested. (check-in: 1085911a user: dan tags: session-retry)
16:23
Updates for the MSVC makefiles. (check-in: 7cf0cab7 user: mistachkin tags: trunk)
16:22
Fix typo in comment. No changes to code. (check-in: 64d75cbe user: mistachkin tags: trunk)
15:30
Simplifications and clarification to update callback handling in the OP_Delete and OP_Insert opcodes. (check-in: 47887ef8 user: drh tags: trunk)
14:26
Increase the version number to 3.13.0 on account of the new session extension. (check-in: e9bcd5ac user: drh tags: trunk)
14:17
Remove a redundant test for disabling RESTRICT with defer_foreign_keys=ON. (check-in: 9cdf813c user: drh tags: trunk)
13:43
Incorporate the sessions extension and the SQLITE_ENABLE_PREUPDATE_HOOK compile-time option. (check-in: 4af7a90f user: drh tags: trunk)
12:56
Avoid compiler warnings and excess opcodes when SQLITE_ENABLE_PREUPDATE_HOOK is not used. Fix the EXPLAIN output for P4_TABLE opcodes. (Closed-Leaf check-in: 5ab46d76 user: drh tags: sessions)
12:20
Improvements to the performance testing program "speedtest1.c" and the shell script that invokes it. (check-in: e4bee561 user: drh tags: trunk)
2016-03-29
21:19
Fix some code and test coverage issues in fts5_index.c. (Leaf check-in: 7635c680 user: dan tags: fts5)
10:36
Merge 3.12.0 changes. (check-in: d7381eff user: drh tags: begin-concurrent)
10:30
Merge 3.12.0 changes. (check-in: eef55744 user: drh tags: apple-osx)
10:19
Merge changes for 3.12.0. (check-in: ed22eb65 user: drh tags: sessions)
10:14
Version 3.12.0 (check-in: e9bb4cf4 user: drh tags: trunk, release, version-3.12.0)
2016-03-28
20:13
Add further tests for savepoint rollback. Fix various code issues and add missing comments in fts5_index.c. (check-in: a805c6f7 user: dan tags: fts5)
15:06
Integrate the vcreate-stmt branch into this one. (check-in: 06039d90 user: dan tags: fts5)
14:57
Open a statement transaction for "CREATE VIRTUAL TABLE" statements in order to ensure that if the xCreate() call fails, changes made to the sqlite_master and possibly other tables are rolled back. (Closed-Leaf check-in: d0a3853b user: dan tags: vcreate-stmt)
11:01
Fix the multiplexor so that it does not assume that the xGetLastError method is non-NULL in the child VFS. (check-in: f6a88ccc user: drh tags: trunk)
2016-03-26
20:11
Fix a problem with OOM handling when setting an fts5 configuration option. (check-in: 53b80a6d user: dan tags: fts5)
15:36
More changes to the shellN.test scripts to get them working on all variations of Windows. (check-in: 8213c2f5 user: drh tags: trunk)
14:41
Remove the catchcmd_collapse_space procedure in tester.tcl - no longer needed. (check-in: 3bd499d3 user: drh tags: trunk)
13:26
Update shell1.test tests to deal with backslash escaping in TCL on Windows-style pathnames. (check-in: 219a251e user: drh tags: trunk)
2016-03-25
20:10
Do not run the shell3.test module under mingw because of mingw's dodgy command-line parsing. (check-in: a7c080a9 user: drh tags: trunk)
17:19
In the Win32 VFS, avoid trying to use rand_s() on Windows CE. (check-in: 183350fa user: mistachkin tags: trunk)
17:09
Add the catchcmd_collapse_space command and use it to help make shell testing more robust against TCL space escapes. (check-in: 93caabb6 user: drh tags: trunk)
12:10
Fix two instances of undefined behavior in the C code - both harmless for all current compilers. (check-in: 99fd194c user: drh tags: trunk)
2016-03-24
20:55
Make test cases in shell1.test robust against TCL deciding to quote strings using lots of backslashes. (check-in: 817e93f4 user: drh tags: trunk)
20:36
Prevent negative values of SQLITE_DEFAULT_CACHE_SIZE from making SQLITE_WIN32_HEAP_INIT_SIZE negative. (check-in: e0737f52 user: mistachkin tags: trunk)
15:32
Larger margins for one memsubsys1 range check when running with a non-zero reserved-bytes value. (check-in: 6db1d1fb user: drh tags: trunk)
15:09
Fix some test scripts so that they work with various permutations. (check-in: f4d234b5 user: dan tags: trunk)
14:34
Merge the beta changes into sessions. (check-in: beb5ea14 user: drh tags: sessions)
2016-03-23
17:54
Avoid calling realloc() with a zero size in fuzzcheck.c. (check-in: a1fd1469 user: drh tags: trunk)
16:32
Fix "ifcapable" tests in capi3.test and capi3c.test so that the tests work with more build configurations. (check-in: 3fa88f68 user: dan tags: trunk)
15:53
Remove an unused local variable from FTS5. (check-in: 0ed693c2 user: drh tags: trunk)
15:04
Explicitly limit the size of fts5 tokens to 32768 bytes. (check-in: 70fc69ee user: dan tags: trunk)
13:46
Update a requirement mark. No changes to code. (check-in: 41298464 user: drh tags: trunk)
2016-03-22
20:05
The sqlite3_column_decltype() routine should return NULL, not an empty string, if the column has no declared type. (check-in: 605eba4a user: drh tags: trunk)
15:26
Fix harmless compiler warning for MSVC. (check-in: 142cd359 user: mistachkin tags: trunk)
15:25
Fix a harmless compiler warning. (check-in: 5ace870d user: drh tags: trunk)
15:01
Fix some errors in fts5 test scripts. (check-in: e1ab2d37 user: dan tags: trunk)
14:37
Create the "uptr" typedef (the same as uintptr_t when available) and use it to cast pointers before comparison. (check-in: 2484cc0c user: drh tags: trunk)
14:10
Avoid the possibility of integer overflow on a pointer comparison test for corruption in the database file. (check-in: ff1b1ac3 user: drh tags: trunk)
2016-03-21
22:28
Fix harmless compiler warnings. (check-in: 25d776e4 user: drh tags: trunk)
16:25
Add tests to ensure that fts5 is now deterministic. (check-in: 3d076094 user: dan tags: trunk)
16:19
Skip recently added test cases in nolock.test when running in the inmemory_journal permutation. (check-in: a1dcf7af user: drh tags: trunk)
16:06
Remove an unreachable branch from the unlink verification logic in the UNIX VFS. (check-in: 4dc30cce user: drh tags: trunk)
15:54
Merge all recent changes from trunk. (check-in: 8ee7d346 user: drh tags: begin-concurrent)
15:32
Merge 3.12.0 beta changes from trunk. (check-in: 3296a0ce user: drh tags: sessions)
15:30
Have fts5 cache the structure of its index in main memory. Use "PRAGMA data_version" to figure out when this cache should be invalidated. (check-in: 902f2217 user: dan tags: trunk)
15:18
Rearrange code so that tests pass whether SQLITE_DEBUG is defined or not. (Closed-Leaf check-in: 89296a46 user: dan tags: fts5-data-version)
14:52
Merge the sqlite3_system_errno() change from trunk. (check-in: 063f1b37 user: drh tags: apple-osx)
14:46
Add the sqlite3_system_errno() interface. (check-in: 4bd12b57 user: drh tags: trunk)
12:28
Make sure system errors that occur durign sqlite3_step() are captured for use by sqlite3_system_errno(). (Closed-Leaf check-in: b4a1114f user: drh tags: sqlite_system_errno)
11:57
Improved comments. No logical changes to code. (check-in: a6b6c6c4 user: drh tags: sqlite_system_errno)
11:38
Do a better job of capturing all system errno values regardless of when they occur. (check-in: 7d49998d user: drh tags: sqlite_system_errno)
10:49
Merge updates from trunk. (check-in: 86ab8643 user: drh tags: sqlite_system_errno)
09:56
Change the way fts5 internally allocates segment ids in order to eliminated non-determinism from the module. (check-in: d6e2637d user: dan tags: trunk)
00:38
Change the Vdbe.aMem array so that it is zero-based instead of one-based. (check-in: c39081e8 user: drh tags: trunk)
00:30
Remove an unreachable branch. Improvements to comments. (Closed-Leaf check-in: c5677ecd user: drh tags: zero-base-aMem)
2016-03-19
23:32
Change the Vdbe.aMem array so that it is zero-based instead of one-based. (check-in: e07b0c47 user: drh tags: zero-base-aMem)
18:11
Fix exclusive.test so that it works with -DSQLITE_TEMP_STORE=3. (check-in: d7852c63 user: dan tags: trunk)
18:00
Updates to the Lemon documentation. (check-in: f0953414 user: drh tags: trunk)
17:48
Add the sqlite3rbu_bp_progress() API to the RBU extension. Used to obtain the percentage progress of an RBU update. (check-in: 209e31c7 user: dan tags: trunk)
17:09
Fix a problem detecting invalid values in the rbu_control column of an rbu database table. (Closed-Leaf check-in: a1132dd9 user: dan tags: rbu-percent-progress)
16:21
Update the sqldiff tool so that it generates an rbu_count table. (check-in: 1f7afb6e user: dan tags: rbu-percent-progress)
15:34
Merge latest trunk changes, including fixes to test script rbudiff.test, into this branch. (check-in: 734fc68f user: dan tags: rbu-percent-progress)
15:13
Fix another problem in test script rbudiff.test. (check-in: 41c29c12 user: dan tags: trunk)
14:53
Fix test scripts sqldiff.test and rbudiff.test so that they work with the --testdir option. (check-in: 1ffe3cde user: dan tags: trunk)
14:47
Add test file fts5multiclient.test. (check-in: 7832466f user: dan tags: fts5-data-version)
00:40
Fix a VDBE register allocation bug exposed by recent enhancements to PRAGMA integrity_check. (check-in: c73b5b9c user: drh tags: apple-osx)
00:35
Fix a register allocation bug in the VDBE code generator for PRAGMA integrity_check; (check-in: 88439a86 user: drh tags: trunk)
2016-03-18
20:12
Add further tests for sqlite3rbu_bp_progress(). Fix a problem in handling WITHOUT ROWID tables in the same. (check-in: 65e02368 user: dan tags: rbu-percent-progress)
18:56
Change the name of the new API on this branch to "sqlite3_bp_progress". Add tests and documentation for the same. (check-in: 1a1b69e8 user: dan tags: rbu-percent-progress)
11:03
Test case tweaks to better support the Apple configuration options. (check-in: cb0ffe84 user: drh tags: apple-osx)
10:29
Add tests for the changes on this branch. Fix a problem with calls to the new progress indicator API made after an rbu update has been resumed. (check-in: bf823217 user: dan tags: rbu-percent-progress)
00:58
Merge recent enhancements from trunk. (check-in: ec052b4f user: drh tags: apple-osx)
00:39
Fix FTS5 so that it works with SQLITE_OMIT_AUTORESET. (check-in: b199637d user: drh tags: trunk)
00:19
Fix more test-case errors in the Apple configuration. (check-in: 6631e1e6 user: drh tags: trunk)
2016-03-17
23:56
Fix some test cases so that they work under the Apple configuration. (check-in: 399c6076 user: drh tags: trunk)
23:16
Fix harmless compiler warnings that arise with -DSQLITE_OMIT_LOAD_EXTENSION (check-in: 65ba2f0b user: drh tags: trunk)
23:00
Changes to releasetest.tcl: Rename the "OS-X" configuration to "Apple". Bring the "Apple" configuration up to date. Allow the use of "if:os=..." arguments in a configuration. Run the Apple configuration on Linux in addition to on Macs, but without -DSQLITE_ENABLE_LOCKING_STYLE. (check-in: beb2a80b user: drh tags: trunk)
21:06
Add an API to indicate the percentage progress of an rbu update. (check-in: ffc58d2c user: dan tags: rbu-percent-progress)
19:28
Change the xGetLastError() method on the windows VFS so that it continues to format an error message (if requested) but returns the system error code, rather than an SQLite status code. (check-in: 1602f6b5 user: drh tags: sqlite_system_errno)
19:07
A more compact implementation of the code generator for the IS and IS NOT operators. (check-in: 8607e3ac user: drh tags: trunk)
18:41
An alternative method of encoding the wildcard in "SELECT *". This is an experiment. (Closed-Leaf check-in: 41335d88 user: drh tags: select-wildcard)
17:23
Simple test cases for sqlite3_system_errno() (check-in: 185bc864 user: drh tags: sqlite_system_errno)
16:01
Experimental implementation of the sqlite3_system_errno() interface. (check-in: 6782c87b user: drh tags: sqlite_system_errno)
12:39
Fix some OOM-handling issues in the fts5 changes on this branch. (check-in: 020a0bda user: dan tags: fts5-data-version)
2016-03-16
21:29
The prepared statements for some pragmas can now be reused without invoking an automatic reprepare. (check-in: 97b0e88c user: drh tags: trunk)
20:53
Merge the changes on the reusable-pragma branch into this one. (check-in: 6c4a17b9 user: dan tags: fts5-data-version)
20:44
Some pragmas can be reused without an automatic reprepare. (Closed-Leaf check-in: db1ce7e1 user: drh tags: reusable-pragma)
20:05
Fix a comment on the freelist_count and data_version pragmas. (check-in: 10a3e2a0 user: drh tags: trunk)
19:53
Add a cast to an implict (size_t -> int) conversion in fts5_expr.c. (check-in: d9b5ff7a user: dan tags: trunk)
19:48
Have fts5 cache the decoded structure of fts5 indexes in memory. Use "PRAGMA data_version" to detect stale caches. (check-in: 33ef2210 user: dan tags: fts5-data-version)
19:45
Enhance Lemon so that it reorders the reduce rules such that rules without actions occur at the end and so that the first rule is number 0. This reduces the size of the jump table on the reduce switch, and helps the parser to run faster. (check-in: d5712f21 user: drh tags: trunk)
19:34
Merge the latest enhancements from trunk. (check-in: a7978ab6 user: drh tags: begin-concurrent)
19:10
Avoid a few unnecessary fstat()s on journal files. (check-in: dbf84705 user: drh tags: trunk)
18:26
Fix the query planner so that it is able to use the integer primary key from an index as part of a multi-column constraint. (check-in: 96ea9909 user: drh tags: trunk)
01:16
Merge all recent enhancements from trunk. (check-in: 6a7ee04b user: drh tags: sessions)
01:09
Merge the SQLITE_OMIT_CODEC_FROM_TCL compile-time option from trunk. (check-in: 161d91e4 user: drh tags: apple-osx)
01:03
Add the SQLITE_OMIT_CODEC_FROM_TCL compile-time option. (check-in: 45f7f0c8 user: drh tags: trunk)
00:36
Rearrange some internal fields in the sqlite3_stmt object to avoid a harmless TSAN warning. (check-in: e0b116ed user: drh tags: trunk)
2016-03-15
22:00
Change the OP_IntegrityCk opcode to accept the list of root pages as an intarray argument in P4. Slightly smaller and faster. (check-in: 15e4a272 user: drh tags: trunk)
19:10
In the Win32 VFS, use SQLITE_FCNTL_LAST_ERRNO instead of (the older) SQLITE_LAST_ERRNO. (check-in: 9463762c user: mistachkin tags: trunk)
17:52
Implement FROM-clause subqueries as co-routines whenever they are guaranteed to be the outer-most loop of the join. (check-in: c7bae50b user: drh tags: trunk)
12:45
Merge updates from trunk - FTS5 fixes and enhancemenets to the tests scripts so that they work with SEE. (check-in: f41a7361 user: drh tags: apple-osx)
12:37
More test-case changes so that everything works when the reserved_bytes value in the header is non-zero. (check-in: 2fd095b1 user: drh tags: trunk)
09:55
Fix the shellN.test test scripts so that they work with the --testdir option. (check-in: 051c61eb user: dan tags: trunk)
09:42
Update this branch with latest trunk changes. (check-in: 249cd361 user: dan tags: schemalint)
2016-03-14
21:26
Fix the permutations.test script so that it works again. (check-in: 9f194f90 user: drh tags: trunk)
21:12
Update test scripts so that they work with SEE. (check-in: f4693ba4 user: drh tags: trunk)
20:49
Changing page size using VACUUM or backup is not allowed with a codec attached. (Closed-Leaf check-in: 92be06c1 user: drh tags: see-testing)
18:42
Merge test script fixes from trunk. (check-in: ea1d2cdd user: drh tags: see-testing)
18:34
Many more test cases fixed. Only a few remain. (check-in: 99b9d7ee user: drh tags: see-testing)
17:05
Many test cases fixed to work with encryption. (check-in: d866fffb user: drh tags: see-testing)
16:16
Test script changes to support testing the SQLite Encryption Extension. (check-in: 1c70aa5c user: drh tags: see-testing)
15:43
Fix the backcompat.test script so that it works with the --testdir test option. (check-in: f7480e33 user: dan tags: trunk)
15:03
Run TCL tests in the "testdir" subdirectory. (check-in: 90e0cc7b user: drh tags: trunk)
14:59
More file pathname normalization. (Closed-Leaf check-in: fa8c1292 user: drh tags: test-in-subdir)
14:28
Normalize the $testdir and $argv0 paths so that they continue to work in the testing subdirectory. (check-in: 19225b81 user: drh tags: test-in-subdir)
13:42
Run TCL tests in a subdirectory "testdir". (check-in: f632bba0 user: drh tags: test-in-subdir)
12:16
Fix a memory leak in fts5 that could occur following a syntax error in a query expression. (check-in: 54b8968e user: dan tags: trunk)
2016-03-12
19:33
Fix a problem handling 'NEAR("" token)' in fts5 found by fuzzing. (check-in: 10a827ae user: dan tags: trunk)
16:32
Fix handling of strings that contain zero tokens in fts5. And other problems found by fuzzing. (check-in: 72b3ff0f user: dan tags: trunk)
2016-03-11
23:07
Do not allow the use of WAL mode with nolock=1 because it does not work. (check-in: 74f5d3b0 user: drh tags: trunk)
15:25
Tweak the amalgamation autoconf files so that the --disable-static-shell option works again. (check-in: 83efcdeb user: dan tags: trunk)
14:30
Update spellfix1_scriptcode() to output 215 (latin) for pure numeric text. (check-in: df44308b user: drh tags: trunk)
2016-03-10
19:08
Check for PDB files prior to attempting to copy them in the MSVC batch build tool. (check-in: d7c20f04 user: mistachkin tags: trunk)
15:12
Add tests to cover untested branches in recent fts5 changes. (check-in: fa0033ed user: dan tags: trunk)
14:28
Use #ifdefs to remove code that is unreachable in some configurations, replacing it with an assert(). (check-in: f96ec84d user: drh tags: trunk)
14:22
Remove an unused local variable. (check-in: 3c343c3d user: drh tags: trunk)
2016-03-09
20:54
Add an incremental optimize capability to fts5. Make the 'merge' command independent of the 'automerge' settings. (check-in: 55667144 user: dan tags: trunk)
18:17
Fix a problem in fts3/4 that was causing it to discard data cached in-memory if an 'optimize' command is run when there is no data on disk. The usual way this would happen is if the very first transaction that writes to the fts3/4 table also includes an 'optimize' command. (check-in: 79338b99 user: dan tags: trunk)
15:34
Slight simplification to the query optimizer logic associated with IN (SELECT). (check-in: 2c55c3c2 user: drh tags: trunk)
15:14
Add another test case for bug [5e3c8867]. (check-in: d91e57e4 user: dan tags: trunk)
15:09
When optimizing expressions of the form "x IN (SELECT ...)" make sure that the subquery is not correlated. Fix for ticket [5e3c886796e5512]. (check-in: 1ed6b06e user: drh tags: trunk)
13:39
Automatically disable SQLITE_ENABLE_EXPLAIN_COMMENTS if SQLITE_OMIT_EXPLAIN is defined. (check-in: 8d4b6b2b user: drh tags: trunk)
12:35
In the query planner, make sure OOM errors are reported up into whereLoopAddVirtual() so that it shuts down appropriately. (check-in: a13c59d0 user: drh tags: trunk)
11:59
Disable the bestindex*.test modules when building without virtual table support. (check-in: e0bac2f3 user: drh tags: trunk)
08:08
Merge latest trunk changes with this branch. (check-in: 59caca43 user: dan tags: schemalint)
08:07
Fix a problem in the schemalint code that comes up when a sub-query uses one or more of the same tables as its parent. (check-in: fc18cc92 user: dan tags: schemalint)
04:17
Simplifications to the memjournal.c logic to facilitate testing. (check-in: 8baa2c2c user: drh tags: trunk)
03:44
Move the write failure test in memjrnlCreateFile() to just after the actual write, thus reducing the number of instances of the test by one. (check-in: 7f00d80c user: drh tags: trunk)
03:29
Update a comment in btree.c to account for WITHOUT ROWID tables. No code changes. (check-in: fa20dcb0 user: drh tags: trunk)
02:12
Change a branch made obsolete by recent parser enhancements into an assert(). (check-in: ee486ef7 user: drh tags: trunk)
02:03
Add an #ifdef and an ALWAYS() for coverage. (check-in: 069337a9 user: drh tags: trunk)
2016-03-08
23:44
Change an unreachable branch in the virtual table query planner into an assert(). (check-in: 73b97b9e user: drh tags: trunk)
23:18
Improved comments on virtual table query planning. Added many new WHERETRACE() macros. (check-in: 4c89c253 user: drh tags: trunk)
17:59
In memjournal.c, reuse the same sqlite3_file object for both the in-memory phase and the on-disk phase. (check-in: e7fbbdc2 user: drh tags: trunk)
17:44
Modify the memjournal.c code to make it a bit smaller. (Closed-Leaf check-in: d99ac415 user: dan tags: memjournal-exp)
16:35
Merge changes from trunk, especially the SQLITE_DEFAULT_SYNCHRONOUS enhancements. (check-in: 29741941 user: drh tags: apple-osx)
16:07
Drop support for SQLITE_EXTRA_DURABLE. The new SQLITE_DEFAULT_SYNCHRONOUS compile-time option is a more general replacement. (check-in: f6d3156b user: drh tags: trunk)
16:02
Remove an unused goto label in the RBU extension. (check-in: 2179a106 user: drh tags: trunk)
15:52
Add a new row type to RBU (a peer of insert, update and delete) - "delete then insert". (check-in: 1d9468d2 user: dan tags: trunk)
15:47
Add the SQLITE_DEFAULT_SYNCHRONOUS and SQLITE_DEFAULT_WAL_SYNCHRONOUS compile-time options. Automatically switch to the WAL_SYNCHRONOUS setting when first opening a WAL-mode database if the synchronous setting has not been previously set by the application. (check-in: 5a847a67 user: drh tags: trunk)
15:37
Update fts3/4 so that the 'merge=X,Y' command merges at least, instead of exactly, Y segments from a single level. This matches the documentation. 'merge=X,0' is, as it was in 3.11, an error. (check-in: 64b3cb29 user: dan tags: trunk)
15:30
Make the SQLITE_DEFAULT_SYNCHRONOUS and SQLITE_DEFAULT_WAL_SYNCHRONOUS values zero-based to agree with PRAGMA synchronous. (Closed-Leaf check-in: 592d2104 user: drh tags: default-synchronous)
15:14
If SQLITE_DEFAULT_WAL_SYNCHRONOUS is not the same value as SQLITE_DEFAULT_SYNCHRONOUS and the application has not run "PRAGMA synchronous", then set synchronous to the SQLITE_DEFAULT_WAL_SYNCHRONOUS setting when entering WAL mode for the first time. (check-in: 5791407b user: drh tags: default-synchronous)
14:40
Add compile-time options SQLITE_DEFAULT_SYNCHRONOUS and SQLITE_DEFAULT_WAL_SYNCHRONOUS used to specify the default synchronous settings for all database connections. (check-in: 1fefa967 user: drh tags: default-synchronous)
14:16
Fix ATTACH to use the symbolic name PAGER_SYNCHRONOUS_FULL rather than an integer literal. (check-in: c4e192a0 user: drh tags: trunk)
14:01
Merge coverage improvements and comment fixes from trunk. (check-in: 58023bfc user: drh tags: apple-osx)
13:56
Fix comments on pager flag settings to include synchronous=EXTRA. (check-in: 3a65a1fc user: drh tags: trunk)
02:59
Simplified error detection in the xBestIndex processing. (check-in: 82ca2131 user: drh tags: trunk)
01:32
Add the ALLBITS macro as a shorthand for "(Bitmask)(-1)". (check-in: 91bd619d user: drh tags: trunk)
01:11
Add a NEVER() to the code generator. Change the parameter name "mExtra" to "mPrereq" in the query planner, to more closely reflect its meaning. (check-in: 721ae51e user: drh tags: trunk)
00:39
Changes so that some assert()s in the virtual table query planner are correct even following an OOM error. (check-in: 9805f6f8 user: drh tags: trunk)
2016-03-07
21:28
Fix a typo and remove an unused variable from test logic. (check-in: 9f31516c user: drh tags: apple-osx)
20:48
Merge recent enhancements from trunk. (check-in: 84f09f00 user: drh tags: apple-osx)
20:14
Update fts3/4 so that the 'merge=X,0' command merges X pages from all segments of the first level in the fts index that contains 2 or more segments. (check-in: cddf69db user: dan tags: trunk)
19:08
Avoid a NULL pointer dereference following an OOM while generating code for IN operators on virtual tables. (check-in: c9240086 user: drh tags: trunk)
17:49
Merge the virtual table query planner enhancement, the RTREE cost estimate fix, and the statement journal spill delay enhancement from trunk. (check-in: 17fd8f3c user: drh tags: sessions)
17:39
Add a new row type to RBU (a peer of insert, update and delete) - "delete then insert". (Closed-Leaf check-in: 169311c8 user: dan tags: rbu-delete-then-insert)
17:37
Add the SQLITE_CONFIG_STMTJRNL_SPILL option for sqlite3_config(). (check-in: b6c42024 user: drh tags: trunk)
2016-03-05
21:32
Fix a problem in the previous commit affecting queries with three or more tables joined together to the right of a LEFT or CROSS JOIN operator. (check-in: d8d89d69 user: dan tags: trunk)
21:07
Change the way SQLite invokes the xBestIndex method of virtual tables so that N-way joins involving virtual tables work as expected. (check-in: 19544438 user: dan tags: trunk)
20:28
Adjust the cost estimates for RTREE such that the expected number of rows and expected cost is halved for each additional constraint. (Closed-Leaf check-in: fd7cd060 user: drh tags: xbestindex-fix)
17:29
Change the way SQLite invokes the xBestIndex method of virtual tables so that N-way joins involving virtual tables work as expected. (check-in: ffc65968 user: dan tags: xbestindex-fix)
15:35
Remove the unused journal.c source file (its function have been subsumed into memjournal.c). Refactor some of the names in memjournal.c. No functional changes. (check-in: 5f2a262d user: drh tags: trunk)
15:03
Work around (incorrect) ASAN warnings in memjournal.c. (check-in: 4de09777 user: drh tags: trunk)
14:19
Fix an integer size mismatch problem in test_bestindex.c (check-in: 2e35eb6b user: drh tags: trunk)
14:00
Fix an incorrect #ifdef on sqlite3LogEstToInt(). (check-in: dca7b233 user: drh tags: trunk)
2016-03-04
21:18
Fix an assert() in sqlite3VarintLen(), even though it is impossible to hit in SQLite due to the way sqlite3VarintLen() is used. (check-in: 251424c5 user: drh tags: trunk)
19:55
Simplify the computation of Index.aAvgEq. (Leaf check-in: c4488730 user: drh tags: analyze-worst-case)
18:45
Merge changes from trunk. (check-in: 5294c977 user: drh tags: analyze-worst-case)
16:42
Merge recent enhancements from trunk. Default page size is 4096. Writes to statement journals are avoided. (check-in: 456df336 user: drh tags: sessions)
14:57
Merge recent enhancements from trunk, and especially the changes that reduce the heap-memory footprint of schemas, and defer opening and writing to statement journals. (check-in: 2f0c195c user: drh tags: apple-osx)
14:43
Defer opening and writing statement journals until the size reaches a threshold (currently 64KiB). (check-in: cb9302cc user: drh tags: trunk)
14:23
Update test cases to taken deferred statement-journal opening into account. (Closed-Leaf check-in: 5b2fe521 user: drh tags: memjournal-exp)
13:08
Merge changes from trunk. (check-in: a87305df user: drh tags: memjournal-exp)
04:01
Change the default cache_size to -2000 (which means 2000*1024 bytes independent of page_size). (check-in: 2682e8e4 user: drh tags: trunk)
03:43
Change the default page size for new database files to 4096 (from 1024). Except, when building the testfixture, preserve the legacy page size. Also fix a comment on SQLITE_MAX_ATTACHED. (check-in: 2e8a9ca9 user: drh tags: trunk)
03:20
Detect the presence of pread()/pwrite() system calls on unix systems and use them if available. (check-in: 82cbf5ad user: drh tags: trunk)
03:14
Further fixes to the pread()/pwrite() enabling logic. (Closed-Leaf check-in: 38fb54e7 user: drh tags: pread)
03:02
Fix the build for cases when pread()/pwrite() are not available. (check-in: 7d67d876 user: drh tags: pread)
02:59
Add the test_bestindex.c file to Makefile.in and Makefile.msc so that "make test" will work again. (check-in: 6ec6b6a9 user: drh tags: trunk)
02:38
Update the configure script to detect pread/pwrite and update os_unix.c to use those routines if they are available. (check-in: 2cffb9e5 user: drh tags: pread)
00:13
Get in-memory subjournals working for builds without SQLITE_ENABLE_ATOMIC_WRITE. (check-in: b5378dce user: drh tags: memjournal-exp)
2016-03-03
21:29
Merge the latest updates from trunk. (check-in: 55c00f71 user: drh tags: memjournal-exp)
21:22
Reduce the amount of heap memory required to store many schemas by storing the column datatype appended to the column name (with a \000 separator), rather than in separate memory allocation. (check-in: 16fbf2e1 user: drh tags: trunk)
20:42
Allow the left-hand side of IN operators on virtual tables to have the aConstraintUsage[].omit flag clear. (check-in: 3eb74342 user: drh tags: trunk)
17:54
Merge 3.11.1 changes into trunk. (check-in: 7abc2dd9 user: drh tags: trunk)
16:17
Version 3.11.1 (Leaf check-in: f047920c user: drh tags: release, branch-3.11, version-3.11.1)
15:16
Increase the default upper bound on scope to 30. (check-in: b1258814 user: drh tags: branch-3.11)
2016-03-02
17:57
Add new test script bestindex1.test to the utf16 permutation. (Closed-Leaf check-in: 5893e972 user: dan tags: vtab-IN-opt)
16:13
Add an extra test for the change on this branch. (check-in: d2d28251 user: dan tags: vtab-IN-opt)
16:01
Enhance test_bestindex.c so that it can be used to test plans generated by xBestIndex. (check-in: 3c15a9bf user: dan tags: trunk)
15:37
Fix a recently introduced problem in permutations.test causing an error when the QUICKTEST_OMIT environment variable is defined. (check-in: 45bc9557 user: dan tags: branch-3.11)
13:26
Fix an error in an fts5 test script. (check-in: b2a03e2d user: dan tags: branch-3.11)
03:28
Allow the left-hand side of IN operators on virtual tables to have the aConstraintUsage[].omit flag clear. (check-in: 1622623c user: drh tags: vtab-IN-opt)
00:58
Add the optional -DSERIES_OMIT_CONSTRAINT_VERIFY=0 option to the series.c extension that implements the generate_series() virtual table. (check-in: 3d9daa92 user: drh tags: trunk)
2016-03-01
22:48
New test cases and infrastructure for testing the xBestIndex method of virtual tables. (check-in: 1d41c161 user: drh tags: trunk)
22:41
Improved debugging output with wheretrace. Fix some typos in test script comments. (check-in: 13a37fd4 user: drh tags: trunk)
18:35
Fix a memory leak in the test code on this branch. (Closed-Leaf check-in: 7a1add56 user: dan tags: test-bestindex)
18:24
Allow test_bestindex.c to set the omit flag for a constraint. (check-in: 759b9d5b user: dan tags: test-bestindex)
18:07
Add test code useful for testing the planners use of teh virtual table xBestIndex() method. (check-in: de034c0d user: dan tags: test-bestindex)
16:56
Do not attempt to run fts5bigtok.test or fts5merge2.test if FTS5 is not compiled in. (check-in: f7ed3739 user: dan tags: branch-3.11)
16:02
Add -DSQLITE_ENABLE_FTS5 to one of the release-test configurations in releasetest.tcl. Run fts5 tests as part of "make test" if SQLITE_ENABLE_FTS5 is defined. (check-in: 3cee9371 user: dan tags: branch-3.11)
15:52
Remove a forgotten "breakpoint" command from an FTS5 test script. (check-in: 61927c8f user: drh tags: branch-3.11)
15:41
Increase the version number to 3.11.1 (check-in: 2dcd2fda user: drh tags: branch-3.11)
15:09
Merge branch-3.11-matchinfo into this branch. (check-in: 42358170 user: dan tags: branch-3.11)
14:51
Fix a problem in fts5 where a corrupt db could lead to a (huge) buffer overread. Cherrypick of [c9a30e117f]. (Closed-Leaf check-in: daef5869 user: dan tags: branch-3.11-matchinfo)
14:50
Fix an fts5 problem causing 'optimize' to corrupt the fts index under some circumstances. Cherrypick of [251d6473f7]. (check-in: 5b1b7ab5 user: dan tags: branch-3.11-matchinfo)
14:31
Change the estimated row counts in stat1 to be one-third worst-case and two-threads average case. (check-in: 21bfd47c user: drh tags: analyze-worst-case)
12:45
Fix test cases to align with the improved stats computation. (check-in: 810967bf user: drh tags: analyze-worst-case)
02:11
Better estimatedCost in the xBestIndex method of the generate_series vtab. (check-in: f2c16094 user: drh tags: trunk)
2016-02-29
23:02
Improvements to the logic for adding the "noskipscan" flag to stat1 entries. (check-in: 421b5b54 user: drh tags: analyze-worst-case)
21:27
The ANALYZE command automatically appends "noskipscan" to sqlite_stat1 entries that have large worst-case repeat estimates but small average repeat estimates. (check-in: 6326ba58 user: drh tags: analyze-worst-case)
20:18
When using a temporary file for a statement journal, store the first 64KiB in memory. If the file grows larger than that, flush it to disk and free the memory. Hardcoding to 64KiB is just an experiment to check that the memjournal.c code works. (check-in: 44b2dc18 user: dan tags: memjournal-exp)
20:00
Fix minor problems with new code in memjournal.c. (check-in: 9fd3f7b9 user: dan tags: memjournal-exp)
18:30
Modify the ANALYZE command to store worst-case statistics in sqlite_stat1, rather thn average case. (check-in: 5a0143c9 user: drh tags: analyze-worst-case)
17:34
Fix a problem in fts5 where a corrupt db could lead to a (huge) buffer overread. (check-in: c9a30e11 user: dan tags: trunk)
17:16
Fix an fts5 problem causing 'optimize' to corrupt the fts index under some circumstances. (check-in: 251d6473 user: dan tags: trunk)
15:53
Reduce the amount of heap required to store many schemas by storing each column datatype appended to the column name, rather than as a separate allocation. (Closed-Leaf check-in: 842b2116 user: drh tags: schema-storage)
13:44
Very minor improvement to the performance and reduction in size to the parser by capturing the name and datatype of table columns in a single grammar rule reduction. (check-in: 4b55c520 user: drh tags: trunk)
13:37
Further simplifications to the grammar. (Closed-Leaf check-in: 519fd03b user: drh tags: schema-storage)
2016-02-27
23:25
Update the parser so that it pulls out the column name and type all in one go, rather than using separate reductions. (check-in: ad3ffe2e user: drh tags: schema-storage)
21:16
Eliminate the need for the Column.zDflt (using Column.pDflt instead) to reduce the amount of memory needed to hold the schema. (check-in: d8c94a46 user: drh tags: trunk)
20:14
Extend the code in memjournal.c so that it subsumes the role of journal.c. And (untested) can flush journal or statement journal files to disk after they grow to a specified size. (check-in: e0b0b431 user: dan tags: memjournal-exp)
19:19
Tighter description of I/O stats in the shell. Show I/O stats on speedtest1.c. (check-in: f681d800 user: drh tags: trunk)
19:03
More compact implementation of PRAGMA onconflict, and some test cases. (Leaf check-in: 3e5d38f5 user: drh tags: pragma-onconflict)
17:16
Experimental "PRAGMA onconflict=FAIL" statement to change the default ON CONFLICT algorithm to something other than ABORT. (check-in: 3a0c347c user: drh tags: pragma-onconflict)
17:12
Enhance the ".stats" command in sqlite3.exe to show one-time stats information if invoked with one argument. Also show /proc/PID/io information if run on Linux. (check-in: 3c36948f user: drh tags: trunk)
14:04
Fix a requirement mark to conform to a typo fix in the documentation. (check-in: d1392c62 user: drh tags: trunk)
14:00
Enhance documentation of sqlite3_snapshot_open() to explain that the database connection must have participated in at least one read operation prior to the beginning of the transaction for which the snapshot is to be opened. Add test cases for this fact. (check-in: 33dd671c user: drh tags: trunk)
00:21
Add 'Replace.exe' to the MSVC clean target. (check-in: c2277fab user: mistachkin tags: trunk)
00:21
Fix typo in ICU error message. (check-in: 00c8fffd user: mistachkin tags: trunk)
00:07
Make sure the Replace.cs file is included in the autoconf tarball. (check-in: b850df48 user: drh tags: trunk)
2016-02-26
23:13
Support generating the '.def' file using the autoconf Makefile for MSVC. (check-in: 3617564c user: mistachkin tags: trunk)
21:20
Fix a potential buffer overflow in the ICU upper() function. (check-in: b8dc1b9f user: drh tags: trunk)
21:03
Further refinements to the MSVC batch build process. (check-in: cf4e4fbd user: mistachkin tags: trunk)
21:01
Further refinements to the MSVC batch build process. (check-in: 4e54e9c0 user: mistachkin tags: branch-3.11)
16:14
Merge all recent enhancements from trunk, and in particular the SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER change. (check-in: 4fb4aee8 user: drh tags: apple-osx)
16:03
Fix the ICU extension LIKE function so that it does not read past the end of a buffer if it it passed malformed utf-8. (check-in: 424b7aee user: dan tags: trunk)
15:38
Provide the new SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER option to sqlite3_db_config() that can be used to activate the two-argument version of fts3_tokenizer() for a specific database connection at run-time. (check-in: 374b5108 user: drh tags: trunk)
13:22
Fix a typo in a comment (though an important comment in that it is used to generate documentation). (check-in: ff3d7f84 user: drh tags: trunk)
04:13
Ephemeral tables used to hold manifested views may not be unordered since they might be subject to an ordered comparison if they are part of a join. (check-in: 3ef6a315 user: drh tags: trunk)
04:04
Remove a debugging "exit" command mistakenly left in the "where.test" module. (check-in: beda0b8c user: drh tags: trunk)
2016-02-25
23:27
Add some comments in the VSIX test tool. (check-in: c871473f user: mistachkin tags: trunk)
23:25
Add tool for smoke-testing the UWP VSIX package. (check-in: d27f32c6 user: mistachkin tags: trunk)
23:22
Enhance checking of prerequisites in the vsixtest tool. (Closed-Leaf check-in: 799d5f09 user: mistachkin tags: vsixTest)
23:21
Fix an incorrect cost computation for sorting (introduced just a few check-ins ago). Should be NlogN, not NloglogN. (check-in: 2459d323 user: drh tags: trunk)
21:38
Small optimization in FK handling. (check-in: e0d25913 user: mistachkin tags: trunk)
21:27
Change the srcck1.c utility program to use only unsigned characters. (check-in: d64d005e user: drh tags: trunk)
21:19
Change the "PRAGMA stats" command to report size values in LogEst units. The eliminates the need for sqlite3LogEstToInt() unless non-standard compile-time options are used, so leave it out except in those cases. (check-in: 832c237f user: drh tags: trunk)
20:17
Disable the RESTRICT foreign key action if "PRAGMA defer_foreign_keys" is set. (check-in: 9ffff484 user: dan tags: trunk)
19:52
Disable the RESTRICT foreign key action if "PRAGMA defer_foreign_keys" is set. (check-in: 8fea1166 user: dan tags: sessions)
18:54
Merge all the latest changes from trunk. (check-in: b8659004 user: drh tags: sessions)
18:40
Query planner improvements: Take the LIMIT into account when estimated the cost of an ORDER BY. Avoid automatic indexes on query loops that are expected to run less than twice. See [9e2b2681] for a later enhancement. (check-in: bf46179d user: drh tags: trunk)
18:22
Improvement on the previous check-in: disallow automatic indexes for any loop that is expected to run less than twice. (Closed-Leaf check-in: aab53a21 user: drh tags: planner-improvements)
18:03
Do not use an automatic index on an outer loop that only runs once. (check-in: 5957e793 user: drh tags: planner-improvements)
16:04
Take the LIMIT clause into account when estimating the cost of sorting. (check-in: d491745c user: drh tags: planner-improvements)
13:33
In the command-line shell: When the ".import" command is creating a new table using column names from the first row of CSV input, make sure double-quotes in the name are properly escaped. (check-in: 2e67a1c8 user: drh tags: trunk)
08:02
Improve readability and logging of the vsixtest script. (check-in: 4fe7c4e9 user: mistachkin tags: vsixTest)
02:56
Enable all steps and add/update comments. (check-in: 788f99f4 user: mistachkin tags: vsixTest)
02:49
More work. Install and build steps are now tested. (check-in: 0ab74373 user: mistachkin tags: vsixTest)
2016-02-24
23:31
Fix typo. Improve interim debugging. (check-in: e0029bdf user: mistachkin tags: vsixTest)
23:25
Test build all supported configurations and platforms during VSIX testing. (check-in: cce40a0b user: mistachkin tags: vsixTest)
21:42
Initial work on an automated VSIX testing tool. Not working or tested yet. (check-in: 496e4ac9 user: mistachkin tags: vsixTest)
20:16
Extend [3e9ed1ae] so that covering indexes on WITHOUT ROWID tables are also identified. (check-in: e721975f user: dan tags: trunk)
19:57
Change a char* to const char* in order to suppress some harmless compiler warnings. (check-in: 56f62e34 user: drh tags: trunk)
17:18
When an index completely covers a table, it can be used as a covering index even if columns past the 63rd column are indexed and accessed. (check-in: 3e9ed1ae user: drh tags: trunk)
16:14
Fix a problem with handling identifiers that start with "x" if SQLITE_OMIT_BLOB_LITERAL is defined. (check-in: b65217c6 user: dan tags: trunk)
15:43
Identify indexes that completely cover their table. (Closed-Leaf check-in: 71d488b5 user: drh tags: covering-index)
13:35
LSM1: Fix the integer key encoding so that negative keys are in numeric order. (check-in: f92dc418 user: drh tags: lsm-vtab)
2016-02-23
16:28
Add the SQLITE_BITMASK_TYPE compile-time option. (check-in: 0064a8c7 user: drh tags: trunk)
01:41
Merge trunk enhancements. (check-in: fac4f4ec user: drh tags: lsm-vtab)
01:37
Add support for (variable length) integer keys in LSM1. (check-in: 32f3daec user: drh tags: lsm-vtab)
2016-02-22
23:44
Remove code not needed now that synchronous=OFF database files no longer trigger the use of a master journal. (check-in: aa9f4c62 user: drh tags: trunk)
23:14
Avoid an unnecessary seek operation some corner-case skip-scan operations. (check-in: 2a6003a9 user: drh tags: trunk)
21:19
Clearer presentation of the logic. No functional changes. (Closed-Leaf check-in: a3dcf6db user: drh tags: skip-scan-improvement)
20:52
Avoid an unnecessary seek operation on some corner-case skip-scans. (check-in: 38e837e6 user: drh tags: skip-scan-improvement)
19:51
Add test script shell6.test, containing tests for schemalint. (check-in: 0b734065 user: dan tags: schemalint)
16:32
Merge the master-journal optimization and other recent changes from trunk. (check-in: 18c3ab47 user: drh tags: apple-osx)
16:04
Always use the sqlite3VdbeDeleteAuxdata() routine for clearing auxdata on function parameter, rather than having a separate deleteAuxdataFromFrame() for doing the job for trigger frames. (check-in: 64386fa3 user: drh tags: trunk)
14:57
Avoid creating a master journal unless two or more databases in the transaction can actually benefit from that master journal. (check-in: 3ed18906 user: drh tags: trunk)
13:23
Change magic numbers associated with synchronous settings to named constants. (check-in: 9230ba6c user: drh tags: trunk)
13:01
Merge up to trunk. (check-in: f9e5fb88 user: drh tags: lsm-vtab)
09:45
Add an extra test case for the change in commit [c4295725]. (check-in: a48ac4c3 user: dan tags: trunk)
2016-02-19
19:46
Further enhancements to the MSVC batch build tool. (check-in: 06f1495f user: mistachkin tags: trunk)
19:29
Use the arguments to NMAKE consistently in the MSVC batch build tool. (check-in: 480e5049 user: mistachkin tags: branch-3.11)
19:03
Enhance clean target in the MSVC makefiles. (check-in: 66a9ad4a user: mistachkin tags: branch-3.11)
18:54
Use a separate list of aux-data structures for each trigger program at the VDBE level. Fix for [dc9b1c91]. (check-in: c4295725 user: dan tags: trunk)
16:19
Enhance speedtest1 to display the particular version of SQLite under test. (check-in: 0cb728c1 user: drh tags: trunk)
15:17
Fix a couple of harmless warnings generated by clang. (check-in: a1a3ff1f user: drh tags: trunk)
14:20
Fix a harmless uninitialized variable access. (check-in: 398522e6 user: drh tags: trunk)
14:10
Make sure WhereClause objects are fully initialized before use when planning OR queries. (check-in: 16205302 user: drh tags: trunk)
13:29
Fix (harmless) compiler warnings in some of the TCL-based test code. (check-in: 7c26d2b4 user: drh tags: trunk)
13:20
Add an SQLITE_DISABLE_INTRINSIC #ifdef to the sqlite3Put4Byte() function. (check-in: ba9c6827 user: drh tags: trunk)
13:19
Omit the unused yyzerominor constant. (check-in: 60ad68a9 user: drh tags: trunk)
10:19
Add an "#ifndef SQLITE_AMALGAMATION" guard around a typedef in fts5_test_mi.c to avoid redefining "u32" if it is compiled as part of the amalgamation. Cherrypick of [f9c49ba1]. (check-in: ce0f1ed5 user: dan tags: branch-3.11-matchinfo)
10:18
Add an "#ifndef SQLITE_AMALGAMATION" guard around a typedef in fts5_test_mi.c to avoid redefining "u32" if it is compiled as part of the amalgamation. (check-in: f9c49ba1 user: dan tags: trunk)
07:53
Fix a couple of bugs in the schemalint code. (check-in: 02fbf699 user: dan tags: schemalint)
05:07
Modify the MSVC batch build tool to support the MSVC autoconf Makefile. (check-in: 72b10e5e user: mistachkin tags: branch-3.11)
00:48
Further improvements to the MSVC batch build tool. (check-in: b9626b59 user: mistachkin tags: trunk)
00:47
Further improvements to the MSVC batch build tool. (check-in: 90dd6eb1 user: mistachkin tags: branch-3.11)
2016-02-18
21:15
Correct the install location for the UWP VSIX package. (check-in: f74de325 user: mistachkin tags: trunk)
21:00
Correct the install location for the UWP VSIX package. (check-in: b47d0302 user: mistachkin tags: branch-3.11)
19:10
Have the schemalint output distinguish between existing and recommended indexes. (check-in: 4ab3df25 user: dan tags: schemalint)
16:16
Remove SQLITE_TEST macros from fts5_test_mi.c. Add the SQLITE_FTS5_ENABLE_TEST_MI compile time symbol - to make it easier to create builds that include the fts5 matchinfo demo by default. (check-in: e2ef6667 user: dan tags: branch-3.11-matchinfo)
14:53
Merge the tokenizer buffer overrun bug-fix from trunk. (check-in: 82e7e31b user: drh tags: apple-osx)
14:49
Avoid a potential buffer overrun if an SQL statement being parsed ends with an illegal "!" token. (This problem was detected by fuzzcheck running under valgrind. The problem was introduced by check-in [9570b6b43df3], two days ago and has not appeared in a release.) (check-in: 2a8d97e7 user: drh tags: trunk)
14:03
Improved handling of the -v option on the fuzzcheck test program. (check-in: c8cd7804 user: drh tags: trunk)
13:32
Remove an unnecessary "include <tcl.h>" line from fts5_test_mi.c. (check-in: 31d8b69e user: dan tags: trunk)
01:36
Merge recent performance enhancements and the enhanced API_ARMOR from trunk. (check-in: b7fa0fb3 user: drh tags: apple-osx)
01:29
Add extra API armor on the sqlite3_bind_blob() interface. (check-in: 80de1ad5 user: drh tags: trunk)
01:22
Memory leak associated with SQLITE_WRITE_WALFRAME_PREBUFFERED (check-in: 7bcd3ab5 user: drh tags: apple-osx)
2016-02-17
20:47
When VDBE opcodes fail, they cause an immediate exit from the loop, rather than depending on the rc==SQLITE_OK test at the top of the loop. This is faster and smaller. (check-in: 24c7151c user: drh tags: trunk)
20:06
Schemalint changes: Avoid creating candidate indexes if a compatible index exists. Do not quote identifiers that do not require it. (check-in: cf0f7eeb user: dan tags: schemalint)
18:44
Fix up all VDBE opcodes so that they cause an immediate exit on any kind of error, and thereby eliminate the need to test "rc" at the top of the loop. Resulting code is a little smaller and faster. (Closed-Leaf check-in: a444633a user: drh tags: vdbe-performance)
15:01
Bump the version number to 3.12.0. (check-in: c17d7276 user: drh tags: trunk)
14:48
Remove the "#ifdef SQLITE_TEST" condition from fts5_test_mi.c. Update fts5_main.c so that if SQLITE_FTS5_TEST_MI is defined when it is built the fts5_test_mi.c entry point is automatically called. This makes it easier to build versions of fts5 that include the matchinfo() demo by default. (check-in: 87e6e225 user: dan tags: trunk)
14:11
Improve test coverage of demo code in fts5_test_mi.c. (check-in: 8a78050d user: dan tags: trunk)
13:24
Enhance Lemon to generate more compact and efficient code for yy_reduce(). Update the main SQL grammar to take advantage of the new capabilities. (check-in: 53fd040c user: drh tags: trunk)
12:34
More agressive use of /*A-overwrites-X*/ in the parser. Fix an off-by-one error in parser stack overflow detection. (Closed-Leaf check-in: 417e7777 user: drh tags: parser-performance)
11:13
Documentation typo on sqlite3_wal_hook(). No changes to code. (check-in: fc2043eb user: drh tags: trunk)
04:33
Enhance Lemon so that if reduce code contains a comment of the form "/*A-overwrites-X*/" then a LHS label A is allowed to overwrite the RHS label X. (check-in: 5cfe9545 user: drh tags: parser-performance)
01:46
Further improvements to the Lemon-generated code for yy_reduce(). (check-in: ef95a7d6 user: drh tags: parser-performance)
01:18
In Lemon, add the ability for the left-most RHS label to be the same as the LHS label, causing the LHS values to be written directly into the stack. (check-in: 4bb94c7c user: drh tags: parser-performance)
2016-02-16
21:19
Experimental changes to Lemon for improved parser performance. (check-in: a65d583c user: drh tags: parser-performance)
18:37
Fix further issues in schemalint. (check-in: 73a7f010 user: dan tags: schemalint)
13:04
Minor simplification to the tokenizer. Slightly smaller and faster. (check-in: 9570b6b4 user: drh tags: trunk)
01:01
Improve the Lemon parser template (lempar.c) so that it avoids unnecessary work when the grammer defines YYNOERRORRECOVERY (as SQLite does). Slightly smaller and faster code results. (check-in: 9235b0cf user: drh tags: trunk)
2016-02-15
23:46
Fix a harmless compiler warning in FTS5. (check-in: e52c9075 user: drh tags: trunk)
22:37
Readability improvements for winRandomness. (check-in: 1640f814 user: mistachkin tags: trunk)
22:28
Fix comment. No changes to code. (check-in: 2e1f2eff user: mistachkin tags: trunk)
22:01
Revise compiler checks for the rand_s() function. (check-in: 287f508d user: mistachkin tags: trunk)
21:31
On windows systems when rand_s() is available, use it to obtain additional seed material in winRandomness(). (check-in: 139081be user: drh tags: trunk)
20:41
Improved entropy gathering for the implementation of winRandomness(). (check-in: fea3705e user: drh tags: trunk)
20:12
Progress towards integrating schemalint into the shell tool. Some cases work now. (check-in: 58d4cf26 user: dan tags: schemalint)
19:38
Add working -q and --help options to testfixture. (check-in: 404494e5 user: drh tags: trunk)
18:58
In the tool/warning.sh script, disable Android-specific compiler warning tests when not running on Linux. (check-in: 153f01a8 user: drh tags: trunk)
18:47
Fix harmless compiler warnings previously seen in 64-bit MSVC builds. (check-in: 70262463 user: drh tags: trunk)
18:15
Add the SQLITE_NOMEM_BKPT macro to enhance the ability to debug OOM errors. Only effective with compiling with SQLITE_DEBUG. (check-in: 9b345476 user: drh tags: trunk)
18:02
Minor code simplifications. (check-in: c3b38efd user: drh tags: trunk)
17:56
Make the application-defined SQL function logic more compact and faster, especially faster for the case where an application defines thousands of new SQL functions. (check-in: 7d49ed32 user: drh tags: trunk)
17:44
Merge version 3.11.0 (check-in: c393ddc7 user: drh tags: begin-concurrent)
17:40
Merge 3.11.0 changes. (check-in: 5cecc509 user: drh tags: apple-osx)
17:39
Merge 3.11.0 changes. (check-in: 631023dd user: drh tags: sessions)
17:29
Version 3.11.0 (check-in: 3d862f20 user: drh tags: trunk, release, version-3.11.0)
15:06
Make sure the codec is invoked when overwriting existing frames of the WAL file. Yikes! (check-in: f694e60a user: drh tags: trunk)
00:34
Improvements to the application-defined function mechanism so that it is more compact and runs faster, especially when the application defines thousands of new SQL functions. (Closed-Leaf check-in: 3201fbcc user: drh tags: many-app-functions)
2016-02-14
00:14
Update a comment. (Closed-Leaf check-in: e9753d9a user: mistachkin tags: noMemBkpt)
2016-02-13
23:43
Enhance ability to debug out-of-memory errors. (check-in: 6a9c4a3e user: mistachkin tags: noMemBkpt)
18:54
Provide Sqlite3_SafeInit() and Sqlite3_SafeUnload() entry points on the TCL interface, but have the always return TCL_ERROR, because the non-standard TCL builds on Macs require this. (check-in: 37ec3015 user: drh tags: trunk)
17:35
Merge changes from the 3.11.0 release candidate. (check-in: d198a6db user: drh tags: apple-osx)
15:08
Fix another test problem in sessionfault.test. (check-in: f6d1cf79 user: dan tags: sessions)
14:45
Harden sqlite3session_delete() against trying to delete a session that is not currently on the session list. (check-in: 6c2d34df user: drh tags: sessions)
14:39
Fix a problem in sessionfault.test causing it to segfault following a test failure. This commit does not fix the actual test failure - just the subsequent segfault. (check-in: 582b2ae7 user: dan tags: sessions)
14:07
Merge the changes for the 3.11.0 release candidate from trunk. (check-in: 4d7a802e user: drh tags: sessions)
2016-02-12
18:48
Fix a potential buffer overread provoked by invalid utf-8 in fts5. (check-in: a049fbbd user: dan tags: trunk)
17:56
Fix a fairly obscure buffer overread in fts5. (check-in: 13058020 user: dan tags: trunk)
17:30
Fix a documentation typo. No changes to code. (check-in: d9c98587 user: drh tags: trunk)
17:27
Enhance mptester so that it takes great care to delete its test database prior to start-up, including checking the return code from unlink() and retrying after a delay if unlink() fails. Hopefully this will clear intermittant startup problems on Windows. (check-in: 6ea84ec1 user: drh tags: trunk)
05:19
Naming updates for Universal Windows Platform. (check-in: 717c1fc4 user: mistachkin tags: trunk)
00:13
Remove an unused parameter from whereSortingCost(). (check-in: b5d77199 user: drh tags: trunk)
2016-02-11
22:41
Automatically disable FTS3 and FTS4 when building with SQLITE_OMIT_VIRTUALTABLE. (check-in: 0beb32d2 user: drh tags: trunk)
21:59
Enhance the MSVC makefile to enable building 'testfixture' fully from source code. (check-in: f183e059 user: mistachkin tags: trunk)
21:55
Remove the unexplained extra 3.0 cost factor for the B-tree sorting that is done to implement DISTINCT in the absence of an index to help. (check-in: 52571991 user: drh tags: trunk)
21:53
Remove the unused fts5BlobCompare() routine. (check-in: defc762d user: drh tags: trunk)
21:38
Prevent 'expanded command line X too long' errors during the batch 'for' loops used for copying files. (Closed-Leaf check-in: 67ee9b5a user: mistachkin tags: testFixtureSrc)
21:28
Enhance the MSVC makefile to enable building 'testfixture' fully from source code. (check-in: 54ff3a26 user: mistachkin tags: testFixtureSrc)
21:01
Experimental integration of schemalint functionality with the shell tool. Does not work yet. (check-in: ed49f297 user: dan tags: schemalint)
18:18
Fix another unused variable warning in fts5 code. (check-in: 61b4c120 user: dan tags: trunk)
18:08
Avoid a buffer overread when reading a corrupt fts5 structure record. (check-in: facbc424 user: dan tags: trunk)
17:01
Handle parser stack overflow when parsing fts5 query expressions. Fix some compiler warnings in fts5 code. (check-in: bc3f7900 user: dan tags: trunk)
15:37
Add JSON1 and FTS5 to the set of extensions subject to close compiler warning analysis. Fix some warnings in each. More (harmless) warnings still exist in FTS5. (check-in: cfe2eb88 user: drh tags: trunk)
13:30
Minor simplifications deferred to the next release. (Closed-Leaf check-in: a863729c user: drh tags: simplify)
2016-02-10
21:45
In the MSVC makefile, include the working directory so that it can pickup build generated files (e.g. sqlite3.h, etc). (check-in: e9e6000b user: mistachkin tags: trunk)
19:10
Add testcase() macros to the CHECK constraint avoidance logic. Avoid creating an unused VDBE label during CHECK constraint code generation. (check-in: 970881be user: drh tags: trunk)
18:24
Fix to previous check-in: Make sure CHECK constraints involving the ROWID are not ignored when the ROWID changes. (check-in: 7782cb1d user: drh tags: trunk)
16:52
Omit unnecessary CHECK constraints in UPDATE statements, when none of the columns referenced in the CHECK constraint are modified. (check-in: 02fbdbc7 user: drh tags: trunk)
16:03
Omit NOT NULL checks on unchanging columns in an UPDATE. (check-in: 6a3aaedf user: drh tags: trunk)
13:36
When generating the snapshot-tarball, truncate the date/time in the name to 12 significant digits (YYYYMMDDhhmm) omitting the seconds and fractional seconds. (check-in: 604f7775 user: drh tags: trunk)
13:17
Updates to the autoconf tarball README.txt file. (check-in: a3e911e3 user: drh tags: trunk)
2016-02-09
22:54
Update the snapshot tarball name to use the date (ISO8601 format) instead of the SHA1 hash in its name. (check-in: 070ec66f user: drh tags: trunk)
22:39
Add the new "snapshot-tarball" target to the unix makefiles, for building a tarball similar to "amalgamation-tarball" but named by the SHA1 hash of the current check-out rather than by the version number. (check-in: 4f360b2a user: drh tags: trunk)
22:00
Update the MSVC autoconf makefile with the recent changes from the primary one. (check-in: c7242aa3 user: mistachkin tags: trunk)
20:37
Fix the makefiles in the autoconf-tarball so that they build the command-line shell with SQLITE_ENABLE_EXPLAIN_COMMENTS. (check-in: 1135ad01 user: drh tags: trunk)
20:31
In the shell, use the appropriate string constant instead of a literal new-line. (check-in: 61951b15 user: mistachkin tags: trunk)
20:11
Enhance the command-line shell to be in auto-explain mode by default. It is no longer necessary to use the ".explain" command to put the shell into a mode where the EXPLAIN output is formatted nicely. That now happens automatically. (check-in: 751915cb user: drh tags: trunk)
20:04
Improved auto-detection of EXPLAIN output in the shell. (Closed-Leaf check-in: 6c6d7a6e user: drh tags: auto-explain)
18:39
Add auto-explain mode to the command-line shell. Default on. Auto-explain tries to automatically detect EXPLAIN queries and format them appropriately. (check-in: 1d62aa6b user: drh tags: auto-explain)
18:28
Fix MSVC makefile options that enable control-flow guard. (check-in: 51b6823f user: mistachkin tags: trunk)
17:12
Fix the top-level makefiles to always include SQLITE_ENABLE_EXPLAIN_COMMENTS when building the shell. Still need to fix main.mk and the amalgamation tarball. (check-in: 99228239 user: drh tags: trunk)
16:09
Code simplification: ALTER TABLE ADD COLUMN always upgrades the file_format to 4 if is not there already. No need to upgrade to only 2 or 3 since format 4 has now been supported for over 10 years. (check-in: e1d8ec85 user: drh tags: trunk)
15:50
Merge recent fixes and enhancements from trunk. (check-in: f0734017 user: drh tags: apple-osx)
15:44
Merge enhancements and fixes from trunk. (check-in: f040a5bb user: drh tags: sessions)
15:10
Merge latest trunk changes with this branch. (check-in: 1a4182ee user: dan tags: schemalint)
02:12
Make sure every co-routines has its own set of temporary registers and does not share temporaries, since a co-routine might expect the content of a temporary register to be preserved across an OP_Yield. Proposed fix for ticket [d06a25c84454a]. (check-in: ca72be86 user: drh tags: trunk)
2016-02-08
20:45
Fix spelling error in MSVC makefile comments. (check-in: 6eab74c9 user: mistachkin tags: trunk)
20:40
More work on Windows 10 SDK integration. (check-in: 1e563c6e user: mistachkin tags: trunk)
20:14
Fix a signed/unsigned comparison warning in fts5. (check-in: 85eb05dd user: dan tags: trunk)
20:06
Fix a compiler warning when compiling without SQLITE_ENABLE_FTS3_TOKENIZER. (check-in: 6926f28c user: drh tags: trunk)
19:40
Disable the two-argument form of the fts3_tokenizer() SQL function unless the library is built with -DSQLITE_ENABLE_FTS3_TOKENIZER. (check-in: e0eb217a user: dan tags: trunk)
19:36
Changes to help the tokenizer run about 33% faster. (check-in: a050e6f0 user: drh tags: trunk)
19:15
Add code to get the tokenizer character-class logic working for EBCDIC. (Closed-Leaf check-in: 04f7da77 user: drh tags: tokenizer-char-class)
03:23
Faster keywordCode() implementation by taking advantage of the fact that the input is always pure ASCII alphabetic and underscore and that the keyword table is always upper-case. (check-in: ff406b97 user: drh tags: tokenizer-char-class)
02:30
Demonstrate a much faster sqlite3GetToken() routine by using a lookup table to map initial token characters into a character class. This check-in does not work for EBCDIC. More optimization needed. (check-in: 9115baa1 user: drh tags: tokenizer-char-class)
2016-02-07
20:39
Fix harmless compiler warning in 'srcck1' tool and add it to the clean targets. (check-in: 852a529a user: mistachkin tags: trunk)
00:08
Add the sourcetest target to Makefile.msc. (check-in: ab269e72 user: drh tags: trunk)
2016-02-06
22:32
Add a utility program that looks for assert(), NEVER(), ALWAYS(), and testcase() macros that have side-effects, and reports errors when they are found. Also fix a bug that this utility detected as it was being tested. (check-in: b0b4624f user: drh tags: trunk)
19:48
Make sure variable declarations occur at the beginning of blocks, even with SQLITE_DEBUG enabled. (check-in: 2f7778e6 user: drh tags: trunk)
14:14
Fix an assert() to have a test instead of a side effect (check-in: a2952231 user: pdr tags: trunk)
2016-02-05
21:09
Add tests for and remove unreachable branches from fts5 in order to restore test coverage. (check-in: 22589018 user: dan tags: trunk)
19:40
More work on Windows 10 SDK integration. (Closed-Leaf check-in: ebace2c9 user: mistachkin tags: win10sdk)
19:18
Further streamlining of fts5 prefix query code. (check-in: ca91bd8a user: dan tags: trunk)
17:49
Make sure the "bak.db" database file does not actually exist before starting the "quota.test" testing. (check-in: 1cac6c45 user: drh tags: trunk)
16:46
From test scripts, remove stray "breakpoint" commands and blank lines at the ends of files. (check-in: a6b35273 user: drh tags: trunk)
14:34
Merge PRAGMA synchronous=EXTRA and OOM performance enhancements from trunk. (check-in: 332c8036 user: drh tags: begin-concurrent)
14:29
Merge OOM handling optimizations and PRAGMA synchronous=EXTRA as well as other enhancements from trunk. (check-in: 201fcbee user: drh tags: apple-osx)
14:15
Merge enhancements from trunk. (check-in: a533608c user: drh tags: sessions)
14:11
Improvements to the way out-of-memory conditions are handled, resulting in an almost 1% performance gain in the commmon case where OOM errors do not occur. (check-in: b082538d user: drh tags: trunk)
13:38
Add the slightly faster sqlite3DbMallocRawNN(db,n) routine for the majority cases where db is guaranteed to be not NULL. (Closed-Leaf check-in: 0a802e96 user: drh tags: oom-handling)
04:55
Improve ERRORLEVEL handling in the MSVC batch build tool sub-routine 'fn_UnsetVariable'. (check-in: fe123ab4 user: mistachkin tags: trunk)
04:50
OOM failures on sqlite3_errmsg16() in an app-defined function are no longer benign. (check-in: 9efb223f user: drh tags: oom-handling)
04:39
Another small tweak to the MSVC batch build tool. (check-in: 76718bbc user: mistachkin tags: trunk)
02:50
Minor simplification of schema error reporting. (check-in: a8846aee user: drh tags: oom-handling)
02:42
Further performance improvements that fall out of the mallocFailed changes. (check-in: d94416dd user: drh tags: oom-handling)
01:55
Improvements to the way that OOM errors are processed. (check-in: c3ef0347 user: drh tags: oom-handling)
2016-02-04
19:50
Temporarily back out the 0.5% performance improvement from check-in [632071bac5ff32]. Need a more elaborate solution that works with reentrant virtual tables and SQL functions. (check-in: 42736fb0 user: drh tags: trunk)
19:45
Further improve performance of unindexed fts5 prefix queries. (check-in: c9c6457d user: dan tags: trunk)
17:31
Avoid running some particularly time-consuming tests as part of veryquick.test. (check-in: f465944b user: dan tags: trunk)
11:48
Remove unnecessary sets of db->mallocFailed. (check-in: b787165b user: drh tags: trunk)
11:15
Use sqlite3_malloc64() instead of sqlite3_malloc() in the spellfix extension. (check-in: 634d008c user: drh tags: trunk)
10:28
Escape control characters in JSON. Fix for ticket [ad2559db380abf8]. (check-in: 4f1b5229 user: drh tags: trunk)
09:48
Refinements to synchronous logic: (1) Use PAGER_SYNCHRONOUS_FULL rather than the corresponding magic number. (2) Honor SQLITE_NO_SYNC on xDelete calls with sync (3) Count xDelete syncs during testing (4) Fix #ifs on SQLITE_EXTRA_DURABLE so that directory syncs on journal unlink are off by default. (check-in: e3157cb5 user: drh tags: trunk)
02:34
Add and use the sqlite3VdbeZeroRegister() interface for coding the common operation of writing zero into a register. (Leaf check-in: 1c8d3001 user: drh tags: zero-register)
2016-02-03
22:14
In the VDBE loop, only check for OOM errors at jumps rather than after every opcode, for about a 0.5% performance increase. (check-in: 632071ba user: drh tags: trunk)
20:04
Improve performance of fts5 prefix queries on detail=col tables. (check-in: ca11f46d user: dan tags: trunk)
19:52
Fix markup errors in comments used to generate the documentation - specifically in the documentation on the OP_Seek opcode. (check-in: ef252bc4 user: drh tags: trunk)
19:20
Add "PRAGMA synchronous=EXTRA" which syncs the directory containing the rollback journal when the rollback journal is deleted in order to commit a transaction in DELETE mode. (check-in: af924018 user: drh tags: trunk)
01:55
Enhance the internal sqlite3VdbeAddOpList() interface to automatically update jump destinations. Use this feature to simplify the AUTOINCREMENT code generator. (check-in: ae8b9d2e user: drh tags: trunk)
2016-02-02
21:19
Add tests to restore full coverage of fts5 code. (check-in: 063755c8 user: dan tags: trunk)
17:40
Enhance the performance of fts5 AND and OR queries. (check-in: 62ea9e5a user: dan tags: trunk)
02:53
Merge recent enhancements from trunk. (check-in: 347f6a80 user: drh tags: begin-concurrent)
02:30
Merge recent enhancements from trunk. (check-in: e6a4a163 user: drh tags: apple-osx)
02:22
Merge all recent enhancements from trunk. (check-in: f3f92001 user: drh tags: sessions)
02:04
Enhance the comment on the sqlite3_index_constraint object to bring attention to the fact than iColumn field can be negative for a rowid. (check-in: d8b7b199 user: drh tags: trunk)
00:59
Add the SQLITE_DBCONFIG_REQUIRE_WRITE_TXN connection setting, which if enabled requires all write operations to be enclosed within BEGIN ... COMMIT. (Leaf check-in: 7453790c user: drh tags: require-write-txn)
2016-02-01
21:48
Change the OP_SetCookie instruction to write the literal P3 value, not the value in register P3. (check-in: 6d7d4703 user: drh tags: trunk)
20:12
Improve performance of fts5 queries. (check-in: 2334e882 user: dan tags: trunk)
17:20
Number VDBE opcodes starting with 0 instead of 1, as this obviates the lower-bound test on "switch(opcode){...}", making the code smaller and faster. (check-in: 4c9222f7 user: drh tags: trunk)
16:36
Update walcrash.test to ensure that, during a particular test, enough data is written to cause SQLite to sync the wal file 14 times. (check-in: 5d7c0928 user: dan tags: trunk)
13:58
Fix a problem causing the OR/covering-index optimization to be disabled if compile time parameter SQLITE_MAX_ATTACHED were set to greater than 30. (check-in: a17712bf user: dan tags: trunk)
13:21
Minor simplification to the OP_AutoCommit opcode. Fix some code comments related to transaction control. (check-in: a9b6a067 user: drh tags: trunk)
00:21
Fix an assert() that might fail on a corrupt database. (check-in: 22eaced7 user: drh tags: trunk)
2016-01-30
21:09
Fix new test cases in stat.test so that they work with -DSQLITE_DEFAULT_AUTOVACUUM=1 builds. (check-in: a2810cf6 user: dan tags: trunk)
19:16
Performance enhancement for fts5 column filter queries on detail=full tables. (check-in: 13fb4aa6 user: dan tags: trunk)
16:59
Merge the implementation of OP_IdxRowid and OP_Seek so that OP_Seek no longer requires the rowid register and a separate OP_IdxRowid call. Shorter and faster prepared statements result. (check-in: 9bec50a1 user: drh tags: trunk)
15:52
Only honor the register subtype value if the MEM_Subtype flag is set. Revised and improved fix for ticket [f45ac567eaa9f9]. (check-in: 1f4c667f user: drh tags: trunk)
15:46
A different way to clear the subtype on VDBE registers when the value of the register is overwritten with new content. To fix [[f45ac567eaa9f93]. (Closed-Leaf check-in: 2e9fb129 user: dan tags: clear-subtype-flag)
14:53
Take care to clear the subtype on VDBE registers when the value of the register is overwritten with new content. (Closed-Leaf check-in: ec653cbc user: drh tags: clear-subtype-fail)
14:17
Output subtype information on register traces for PRAGMA vdbe_trace. (check-in: 96b78020 user: drh tags: trunk)
13:32
Add the BTREE_FORDELETE and BTREE_AUXDELETE flags to the b-tree layer interface and use them. Add assert() statement to verify that they are correct. (check-in: 85c46704 user: drh tags: trunk)
12:50
Simplification and size reduction to the printf logic. Remove the bFlags parameter from sqlite3VXPrintf() and sqlite3XPrintf(). Use sqlite3XPrintf() instead of sqlite3_snprintf() for rendering P4 values in EXPLAIN output. (check-in: 0bdb41c4 user: drh tags: trunk)
02:10
Make use of covering indexes in the OR optimization. (check-in: 9de3d712 user: drh tags: trunk)
00:45
Change the P4_INTARRAY so that always begins with a length integer. Print the content of the INTARRAY on EXPLAIN output. (Closed-Leaf check-in: 6c520d57 user: drh tags: covering-or)
2016-01-29
21:16
Add tests for the change on this branch. (check-in: 7cb697f8 user: dan tags: covering-or)
20:58
Different comment on the alternative cursor fields of VdbeCursor. (check-in: 6e3dcb6d user: drh tags: covering-or)
19:29
Experimental attempt to make better use of covering indexes within OR queries. (check-in: a323ac3a user: dan tags: covering-or)
19:04
Improvements to FORDELETE processing, including bug fixes and adding assert() statements to help verify correct operation. (Closed-Leaf check-in: 46080b04 user: drh tags: btree-fordelete-flag)
18:48
Remove a stray "exit" in a test script. (Closed-Leaf check-in: 10c88bf9 user: drh tags: fordelete-assert)
18:11
Avoid unnecessary WHERE clause term tests when coding a join where one of the tables contains a OR constraint. (check-in: 512caa1a user: drh tags: trunk)
18:04
Prepend "rc!=SQLITE_OK || " to the nExtraDelete assert() condition. (check-in: 2a055ed0 user: dan tags: fordelete-assert)
16:57
Avoid unnecessary WHERE clause term tests when coding a join where one of the tables contains a OR constraint. (Closed-Leaf check-in: ab946039 user: drh tags: OR-clause-improvement)
08:38
Avoid two more instances of pointer arithmetic on freed pointers. (check-in: 2910ef64 user: dan tags: trunk)
2016-01-28
18:22
Modify the order of terms in an "if" condition to avoid implicitly comparing a dangling pointer to NULL following an OOM error. (check-in: 5372f800 user: dan tags: trunk)
17:06
Modifications to ensure the nExtraDelete-related assert() statement does not fail. (check-in: f43ff8f8 user: dan tags: fordelete-assert)
08:58
Remove a duplicate "p->magic = VDBE_MAGIC_RUN;" line from vdbeaux.c. (check-in: 688eb3b4 user: dan tags: trunk)
02:47
Fix for pthread detection in the configure scripts. (check-in: 47633ffd user: drh tags: trunk)
00:04
Minor correction to the batch tool changes in the previous check-in. (check-in: 7c89d75d user: mistachkin tags: trunk)
2016-01-27
23:50
Make the MSVC batch build tool sub-routine 'fn_UnsetVariable' a bit more robust. (check-in: 1edd5f31 user: mistachkin tags: trunk)
16:26
Change the name of the BTREE_IDXDELETE flag to BTREE_AUXDELETE, to better reflect its purpose. (check-in: 1d3bf6be user: drh tags: fordelete-assert)
16:17
Fix tests in fordelete.test to test for the BTREE_AUXDELETE flag. (check-in: bbd25cf1 user: dan tags: fordelete-assert)
15:49
Add assert() statements on the nExtraDelete variable in vdbe.c to try to verify that the FORDELETE and IDXDELETE flags are being generated correctly. Those flags are not currently generated correctly, and so the assert()s trip on this check-in. (check-in: dde1db0d user: drh tags: fordelete-assert)
07:28
Support building for Windows 10 desktop using 'MinCore.lib'. (check-in: 4bf89891 user: mistachkin tags: trunk)
2016-01-26
23:32
Merge all recent trunk enhancements. (check-in: 9a71d56d user: drh tags: btree-fordelete-flag)
20:19
Performance improvements for fts5, particularly detail=col mode. (check-in: a3d7b8ac user: dan tags: trunk)
20:08
Further minor performance improvements and code-size reductions related to fts5 column filters on detail=col tables. (Leaf check-in: b4ac61ae user: dan tags: fts5-perf)
19:30
Improve the performance of fts5 column filters on detail=col tables. (check-in: 249a2d07 user: dan tags: fts5-perf)
17:08
Enhance fts5txt2db.tcl, a script used to generate fts5/fts4 databases for performance testing. (check-in: c646e403 user: dan tags: fts5-perf)
15:23
Change the automatic index mechanism so that it avoids creating transient indexes on columns that are known to have low cardinality. (Leaf check-in: 12ef3a8f user: drh tags: autoindex-planning)
14:48
Fix issues on unix with opening database files via symlinks that are not in the current working directory. And with nested symlinks. (check-in: 4003db4a user: dan tags: trunk)
13:56
Ensure that unixFullpathname() always nul-terminates its output buffer, even when returning an error. (Closed-Leaf check-in: 4a438556 user: dan tags: follow-symlinks)
00:12
Remove an unused variable. (check-in: 1c2656c1 user: drh tags: follow-symlinks)
2016-01-25
23:24
Add the ability to do Windows builds to the amalgamation tarball. (check-in: abd2b357 user: drh tags: trunk)
23:19
Minor changes to the autoconf/README.txt file. (Closed-Leaf check-in: 6df8a9c0 user: drh tags: msvcMakeMin)
22:08
Fix a compiler warning about doing pointer arithmetic involving a NULL pointer even though the result of computation is never used. (check-in: 7c49a947 user: drh tags: trunk)
18:43
Only use lstat() if the HAVE_LSTAT macro is defined. Fix some test file issues. (check-in: 8a6e4147 user: dan tags: follow-symlinks)
18:05
Simplify the unixFullpathname() function. This adds a dependency on lstat(). (check-in: f71249d3 user: dan tags: follow-symlinks)
17:04
Fix issues on unix with opening database files via symlinks that are not in the current working directory. And with nested symlinks. (check-in: 80398fd4 user: dan tags: follow-symlinks)
15:57
Replace the OP_SetIfNotPos operator with OP_OffsetLimit in the VDBE, for simpler and smaller code. (check-in: 7ac017a4 user: drh tags: trunk)
13:55
Add the SQLITE_EXTRA_DURABLE compile-time option. (check-in: 30671345 user: drh tags: trunk)
02:15
Small simplification to the prepare statement opcode memory reuse logic. Easier to read, and slightly smaller and faster. (check-in: 8a1deae4 user: drh tags: trunk)
01:07
Small simplification and performance improvement in memsys5Free(). (check-in: 0a9cff5c user: drh tags: trunk)
2016-01-23
22:55
Add the SQLITE_SPELLFIX_STACKALLOC_SZ compile-time option to control how much stack space is available for use as the Wagner matrix in editDest3 of the spellfix extension. (check-in: dd0100dd user: drh tags: trunk)
21:57
More updates to the README. (check-in: 9f02868d user: mistachkin tags: msvcMakeMin)
20:43
Updates to the autoconf README file. (check-in: 4ce60fa4 user: drh tags: msvcMakeMin)
20:34
Move Makefile.min.msc into the autoconf subdir where it belongs and change its name to Makefile.msc. Adjust build scripts accordingly. (check-in: 12eb8db7 user: drh tags: msvcMakeMin)
20:16
Minor coding style tweaks for the mkmsvcmin tool. (check-in: c15e0fc4 user: mistachkin tags: msvcMakeMin)
20:09
Adjust the amalgamation-tarball build process so that it includes the MSVC makefile and the sqlite3.rc resource file. (check-in: e420f3dc user: drh tags: msvcMakeMin)
19:47
Improved comments on the transformation script and on the generated Makefile. (check-in: c6e633ab user: drh tags: msvcMakeMin)
19:24
Use the -integer option when sorting list elements. (check-in: 949aa614 user: mistachkin tags: msvcMakeMin)
18:51
Fix an fts5 problem with using both xPhraseFirst() and xPhraseFirstColumn() within a single statement in detail=col mode. (check-in: 72d53699 user: dan tags: fts5-perf)
18:24
Changes to spellfix to try to get it to use stack space instead of heap space in cases where that makes sense. (check-in: dfcebc73 user: drh tags: trunk)
16:20
Merge trunk changes (including fixes for warnings in fts5) with this branch. (check-in: ceccc9ad user: dan tags: fts5-perf)
15:57
Fix some signed/unsigned comparison compiler warnings in fts5. (check-in: 3be336aa user: dan tags: trunk)
14:45
Fix a problem involving detail=col and column filters. (check-in: 7558a0ad user: dan tags: fts5-perf)
14:05
Remove an assert() that can be false if compiled with SQLITE_USE_ALLOCA. (check-in: f0a551ed user: drh tags: trunk)
07:53
Add tooling to create an MSVC Makefile capable of building the core library and shell only, using a pre-built amalgamation. (check-in: c46f1a13 user: mistachkin tags: msvcMakeMin)
01:54
Cleanup localtime() support for Windows CE. (check-in: 39759a55 user: mistachkin tags: winCeLocalTime)
00:07
More work on the MSVC build. (check-in: a79c46bc user: mistachkin tags: trunk)
2016-01-22
23:17
In the TCL interface, if a database connection object was opened with the -uri 1 option, then also honor URI filenames for the "backup" and "restore" commands. (check-in: a1c8116c user: drh tags: trunk)
22:16
More MSVC makefile cleanup. (check-in: df22556f user: mistachkin tags: trunk)
19:48
Experimental performance enhancements for fts5. (check-in: b5a57b81 user: dan tags: fts5-perf)
19:44
Reenable the xCurrentTime and xGetLastError methods on the unix VFSes as long as SQLITE_OMIT_DEPRECATED is not defined. (check-in: c11c85fd user: drh tags: trunk)
17:48
Add the sqlite3TokenInit() utility function. (check-in: 73231753 user: drh tags: trunk)
15:44
Have the dbstat module dequote any argument passed to the CREATE VIRTUAL TABLE statement before attempting to match it against the names of attached databases. (check-in: e60461e9 user: dan tags: trunk)
14:46
Merge latest trunk changes into this branch. (check-in: 9341491c user: dan tags: schemalint)
14:44
Fix handling of transitive constraints in schemalint.tcl. (check-in: 44edc1aa user: dan tags: schemalint)
14:32
Update the schemalint.tcl script so that the argument to a -select option may be either an SQL statement or the name of a file containing an SQL statement (check-in: d4e37767 user: dan tags: schemalint)
04:22
Enable FTS4 when building the shell with the MSVC makefile. (check-in: e4c07df5 user: mistachkin tags: trunk)
03:54
Further refinements to the MSVC makefile. (check-in: 67625b96 user: mistachkin tags: trunk)
01:25
MSVC makefile enhancements for use with the Windows 10 SDK. (check-in: ac2e9d3d user: mistachkin tags: trunk)
2016-01-21
18:56
Fix typo in 'Makefile.in'. (check-in: 29a51c6d user: mistachkin tags: trunk)
17:25
Disable the RESTRICT foreign key action if "PRAGMA defer_foreign_keys" is set. (Closed-Leaf check-in: 82470d1c user: dan tags: disable-restrict)
17:06
Add a new hint bit on the flags parameter of sqlite3BtreeDelete(). The new BTREE_IDXDELETE bit indicates that the call is to delete an index entry corresponding to a table row that has already been deleted. (check-in: ac2cbadd user: drh tags: btree-fordelete-flag)
15:55
Improved comments on the FORDELETE hint. No logic changes. (check-in: a3cec529 user: drh tags: trunk)
2016-01-20
18:47
Add 'rbu' to the clean targets. (check-in: f60f0250 user: mistachkin tags: trunk)
16:36
Add a -detail option to the loadfts5.tcl script. For creating tables with the detail= option set. (check-in: 81e830e2 user: dan tags: trunk)
16:02
Merge the LIKE-operator bug fix from trunk. (check-in: 36cb3d6e user: drh tags: sessions)
15:27
Version 3.10.2 (Leaf check-in: 17efb420 user: drh tags: release, version-3.10.2, branch-3.10)
15:20
Fix a problem in autoconf/configure.ac causing --enable-readline to fail if libedit was not present. (check-in: d4a6425f user: dan tags: branch-3.10)
15:19
Fix a problem in autoconf/configure.ac causing --enable-readline to fail if libedit was not present. (check-in: e8adeb64 user: dan tags: trunk)
15:08
Fix the build so that it works for SQLITE_OMIT_WAL again. (check-in: d1c15de5 user: drh tags: branch-3.10)
15:05
Fix a potential use-after-free problem when compiling with SQLITE_HAS_CODEC. (check-in: b94a3a37 user: drh tags: branch-3.10)
14:32
Increase version number to 3.10.2. (check-in: c1f918dc user: drh tags: branch-3.10)
14:30
Case folding in the LIKE operator should look at all bits of the character, not just the lower 8 bits. Fix for ticket [80369eddd5c94]. This is a back-out of check-in [0a99a8c4facf] with a testcase added. (check-in: 29dc4a3e user: drh tags: branch-3.10)
14:22
Case folding in the LIKE operator should look at all bits of the character, not just the lower 8 bits. Fix for ticket [80369eddd5c94]. This is a back-out of check-in [0a99a8c4facf] with a testcase added. (check-in: 204432ee user: drh tags: trunk)
12:18
Merge recent enhancements from trunk. (check-in: 5520f600 user: drh tags: begin-concurrent)
11:40
Merge all recent enhancements from trunk. (check-in: 3ed49691 user: drh tags: apple-osx)
11:33
Merge recent enhancements from trunk. (check-in: 327af5f6 user: drh tags: sessions)
08:47
Improve performance of sqlite3VtabImportErrmsg(). (check-in: 18d61c8e user: dan tags: trunk)
03:36
Performance improvement in sqlite3DbMallocRaw(). (check-in: ff8eadbe user: drh tags: trunk)
02:36
Suppress the display of the P4 operand in EXPLAIN output when an opcode has been converted into a No-op. (check-in: 9f8297f8 user: drh tags: trunk)
02:21
Remove an unnecessary memset() from the symbol name resolver. (check-in: da527dda user: drh tags: trunk)
02:01
Remove an unnecessary memset() for a small size reduction and speed improvement. (check-in: 730d7efb user: drh tags: trunk)
01:48
During compilation, transfer the azVar[0..nzVar-1] array from Parse to Vdbe rather than copying it. Smaller and faster code. (check-in: 80dd495f user: drh tags: trunk)
01:32
Very small simplification to the btree balancer. (check-in: f421adf5 user: drh tags: trunk)
2016-01-19
21:36
Fix an incorrect VFS version number check in the threadtest3.c test program. (check-in: 5bf6442b user: drh tags: trunk)
17:54
Fix two harmless compiler warnings about comparisons of dangling pointers. (check-in: 86944f19 user: drh tags: trunk)
16:06
Add further fts5 tests. 100% code coverage is finally restored. (check-in: b914ece0 user: dan tags: trunk)
2016-01-18
17:48
Add tests for fts5. Fix a crash that can occur in fts5 if the database content is corrupted. (check-in: acaf4264 user: dan tags: trunk)
13:18
Avoid unnecessary calls to memset() for a small performance improvement. (check-in: 9e8c23ac user: drh tags: trunk)
09:08
Add a debugging function to print human-readable versions of fts5 detail=none leaf pages. (check-in: 8358af36 user: dan tags: trunk)
00:46
Simplification of the VDBE bytecode for incremental blob I/O. (check-in: d23849f6 user: drh tags: trunk)
00:20
Fix a problem with SQLITE_TEST_REALLOC_STRESS. (check-in: 0aaf3feb user: drh tags: trunk)
2016-01-16
21:06
Add extra tests to cover untested branches in fts5. (check-in: 61deab04 user: dan tags: trunk)
20:50
Improvements to the way sqlite3VdbeAddOpList() works, resulting in a slightly smaller and faster binary. (check-in: 88ceb588 user: drh tags: trunk)
18:58
Add further tests for fts5. Fix some problems with detail=col mode and auxiliary functions. (check-in: de77d602 user: dan tags: trunk)
15:12
Use sqlite3VdbeAddOp4() rather than a separate sqlite3VdbeChangeP4() call, for a slightly smaller and faster binary. (check-in: a4258cd4 user: drh tags: trunk)
03:16
Fix a potential use-after-free problem when compiling with SQLITE_HAS_CODEC. (check-in: 653ea15a user: drh tags: trunk)
2016-01-15
21:55
Remove an unnecessary memset(). (check-in: 689421a9 user: drh tags: trunk)
19:54
Rationalize some code in fts5_storage.c. Add tests to cover recently added branches in fts5. (check-in: 3b72df40 user: dan tags: trunk)
16:11
Remove unnecessary de-initialization of the Parse object. (check-in: 75ab30c5 user: drh tags: trunk)
15:06
Work toward making the schema parsing logic simplier and more compact. (check-in: c52ca2c0 user: drh tags: trunk)
05:39
Fix a couple C99-isms in FTS5 that cause compile errors on MSVC. (check-in: 584848d4 user: mistachkin tags: trunk)
2016-01-14
22:19
Combine the xFunc and xStep pointers of the FuncDef object into a single pointer xSFunc. (check-in: 0d1b3d7d user: drh tags: trunk)
20:05
Add a test to verify that the fts3 and fts5 "unicode61" tokenizers are byte for byte compatible. (check-in: 8ec83143 user: dan tags: trunk)
19:32
Simplification to the ISO8610 parser in the imnplementation of date/time functions. (check-in: b9159f42 user: drh tags: trunk)
18:01
Minor adjustments to the MSVC makefile. (check-in: e2cba1bb user: mistachkin tags: trunk)
15:46
Merge the latest enhancements and fixes from trunk. (check-in: fccc5f20 user: dan tags: begin-concurrent)
15:03
Merge the latest enhancements and fixes from trunk. (check-in: d85774e0 user: drh tags: apple-osx)
14:48
Merge the latest fixes and enhancements from trunk. (check-in: 007e5c6d user: drh tags: sessions)
14:33
Yet another change to FTS5 trying to get it to merge successfully into sessions. (check-in: 8dedff3b user: drh tags: trunk)
14:29
Fix more compiler warnings in FTS5. (check-in: f791fc70 user: drh tags: trunk)
14:19
Fix another compiler warning in fts5 code. (check-in: d17bc2c9 user: dan tags: trunk)
14:15
Fix compiler warnings in fts5. (check-in: 5a343cc0 user: dan tags: trunk)
13:22
Fix harmless compiler warnings in RBU and add RBU to the autoconf and windows makefiles. (check-in: fabe78c5 user: drh tags: trunk)
12:23
Fix harmless compiler warnings in sqldiff.c. (check-in: 74808a79 user: drh tags: trunk)
01:56
Fix the build so that it works for SQLITE_OMIT_WAL again. (check-in: d55a557b user: drh tags: trunk)
00:01
Version 3.10.1 (check-in: 254419c3 user: drh tags: release, version-3.10.1, branch-3.10)
2016-01-13
21:23
Look for pthread_mutexattr_init() instead of pthread_create() in autoconf scripts, to work around issues with ASAN. (check-in: 9c3a0dc2 user: drh tags: trunk)
18:26
Version number to 3.10.1. (check-in: 4660da25 user: drh tags: branch-3.10)
18:25
Add documentation for new API functions to the comments in fts5.h. (check-in: 14d296fa user: dan tags: trunk)
18:21
Add the SQLITE_FCNTL_JOURNAL_POINTER file control. (check-in: ea9ce228 user: drh tags: branch-3.10)
18:12
Add the SQLITE_FCNTL_JOURNAL_POINTER file control. (check-in: ad3daa54 user: drh tags: trunk)
18:06
Add documentation for the SQLITE_FCNTL_JOURNAL_POINTER file-control. (Closed-Leaf check-in: 807c5aee user: drh tags: file-control-journal)
17:59
When the block sorting optimization is used in a scalar subquery, be sure to exit the loop as soon as the first valid output row is received. Fix for ticket [cb3aa0641d9a4]. (check-in: 8b4f5080 user: drh tags: branch-3.10)
17:50
When the block sorting optimization is used in a scalar subquery, be sure to exit the loop as soon as the first valid output row is received. Fix for ticket [cb3aa0641d9a4]. (check-in: cdbb0947 user: drh tags: trunk)
2016-01-12
19:45
Add the "detail" option to fts5. Used to reduce the amount of information stored in an fts5 index. (check-in: a220e85f user: dan tags: trunk)
19:37
Add the ".vfslist" command to the command-line shell. (check-in: 5727562b user: drh tags: trunk)
19:28
Improve performance of fts5 low level iterators. (Closed-Leaf check-in: bc5118f4 user: dan tags: fts5-offsets)
14:10
Fix a harmless use of an uninitialized variable following system errors in the multi-threaded sorter. (check-in: 4bb2c1df user: drh tags: trunk)
04:08
Remove an unused field from the MemPage object. (check-in: 5fc0a4c1 user: drh tags: trunk)
02:28
Make sure all bytes of the WAL file are initialized even if the checksums are not being computed until commit due to WAL overwrite. (check-in: 1f44a9bd user: drh tags: trunk)
02:00
Fix an uninitialized field in the Select object when SELECTTRACE is enabled. (check-in: fc628516 user: drh tags: trunk)
00:37
Various #ifdef enhancements for improved VxWorks support. (check-in: 75cd41ff user: drh tags: trunk)
2016-01-11
22:58
Performance optimization in the sqlite3VdbeChangeP4() routine of the code generator. (check-in: 28bd8d5f user: drh tags: trunk)
22:43
Fix duplicate test number in 'waloverwrite'. (check-in: f5fb8268 user: mistachkin tags: trunk)
18:30
Merge trunk with this branch. (check-in: a73d245f user: dan tags: fts5-offsets)
18:23
Add the fts5speed.tcl script to ext/fts5/tool/. (check-in: 2c0b9355 user: dan tags: fts5-offsets)
18:05
Performance optimization on the Column opcode. (check-in: ecc98bef user: drh tags: trunk)
17:30
Fix bugs in fts5 synonym processing for detail=col and other modes. (check-in: 0e3c5454 user: dan tags: fts5-offsets)
14:19
Performance optimization in sqlite3WalkExpr(). (check-in: 2f8bd5fa user: drh tags: trunk)
13:10
Merge recent enhancements, and especially the WAL overwrite change, from trunk. (check-in: c4a858b2 user: drh tags: sessions)
13:03
Import the version number change to 3.11.0. (check-in: 132772d1 user: drh tags: apple-osx)
12:52
Increase the version number to 3.11.0 due to the WAL overwrite enhancement. (check-in: 8e807bfa user: drh tags: trunk)
12:49
Merge enhancements from trunk, and in particular the WAL overwrite feature. (check-in: 79125ec9 user: drh tags: apple-osx)
12:13
If a single page is written to the wal file more than once, instead of appending the second and subsequent copy to the wal file, overwrite the first. Update: See the important bug fix at [f694e60a]! (check-in: d493d4f1 user: dan tags: trunk)
08:12
Add a test case to waloverwrite.test to check that savepoint rollback does not cause a problem. (Closed-Leaf check-in: 87dae56c user: dan tags: wal-overwrite-frames)
03:48
Slightly smaller and faster LIKE/GLOB comparison implementation. (check-in: 5dddcc78 user: drh tags: trunk)
00:52
Improved testability. (check-in: e83d3a2a user: drh tags: wal-overwrite-frames)
2016-01-09
23:55
All WAL frame overwrites even if there are active savepoints. This is safe because a ROLLBACK TO will cause all reverted pages to be rewritten to the WAL file prior to COMMIT. (check-in: 99b31a6b user: drh tags: wal-overwrite-frames)
18:57
If it is known that checksums will be recalculated on transaction commit, skip calculating checksums when appending frames to the wal file. When recalculating checksums, recalculate them starting with the first overwritten frame - not the first frame in the transaction. (check-in: 16b34f25 user: dan tags: wal-overwrite-frames)
16:39
If a single page is written to the wal file more than once, have each subsequent copy overwrite the original frame. (check-in: 5d113aef user: dan tags: wal-overwrite-frames)
2016-01-08
22:31
Typo fix in the previous commit. (check-in: 52c16603 user: drh tags: trunk)
22:18
More #ifdef fixes for the unix VFS. (check-in: 122c111e user: drh tags: trunk)
19:34
Fix the build for SQLITE_OMIT_SHARED_CACHE, which was broken, possibly by check-in [2d96aeba]. (check-in: 3392f8fa user: drh tags: trunk)
19:17
Fix a problem with #ifdefs on the system calls in the unix VFS that causes problems when compiling with SQLITE_OMIT_WAL. (check-in: ceceea4c user: drh tags: trunk)
17:28
Remove an obsolete #ifdef related to iOS support. (check-in: e9a51d2a user: drh tags: trunk)
17:21
Begin adding fts5 tests involving synonyms and detail=none/col tables. (check-in: b3e6f15e user: dan tags: fts5-offsets)
12:46
Reduce the number of calls to memset() in sqlite3DbMallocZero(). (check-in: cede2bf8 user: drh tags: trunk)
08:35
Fix test file vtabH.test so that it works with SQLITE_ENABLE_ICU builds. (check-in: 19c1f448 user: dan tags: trunk)
07:53
Fix fts5vocab.test so that it works with detail=none tables. (check-in: d9135cc7 user: dan tags: fts5-offsets)
02:27
Add the experimental SQLITE_FCNTL_JOURNAL_POINTER file control for obtaining the sqlite3_file pointer associated with a rollback journal or WAL file. (check-in: a02ace9a user: drh tags: file-control-journal)
2016-01-07
21:12
Omit performance tracking from the memsys5 memory allocator if neither SQLITE_DEBUG nor SQLITE_TEST are defined. (check-in: af5c7714 user: drh tags: trunk)
20:07
Update the fts5vocab module to work with detail=col and detail=none tables. (check-in: eedd095d user: dan tags: fts5-offsets)
17:19
Fix to cause BtShared.db to be set correctly on shared-cache connections in SQLITE_THREADSAFE=0 builds. Added assert()s to verify the correct setting of BtShared.db. (check-in: 2d96aeba user: drh tags: trunk)
17:09
Small performance and size optimization spotted while working on the shared-cache problem. (check-in: 828958ff user: drh tags: trunk)
16:43
Add some assert() statements to verify, where possible, that BtShared.db is set correctly. (Closed-Leaf check-in: 359277e0 user: dan tags: shared-cache-fix)
16:06
Have the vdbe layer call sqlite3BtreeEnter() on all b-trees in use from within sqlite3VdbeExec() even in SQLITE_THREADSAFE=0 builds. This ensures that BtShared.db is set correctly. (check-in: d0214602 user: dan tags: shared-cache-fix)
02:06
Add the "sqlite3 -sourceid" command in the TCL interface. Use that command and others to output additional information about the test configuration at the conclusion of a TCL test. (check-in: 4f80440b user: drh tags: trunk)
2016-01-06
20:50
Merge updates from trunk. (check-in: 5cbab637 user: mistachkin tags: altShellFix)
19:43
Fix a test script problem caused by a change in constraint handling within the core. (check-in: 625695b3 user: dan tags: fts5-offsets)
19:35
Merge latest trunk changes into this branch. (check-in: e7dcd013 user: dan tags: fts5-offsets)
18:53
Fix an fts5 problem involving detail=none, "ORDER BY rowid DESC" and deleted items. Also add tests to verify that the documented operator precedences are correct. (check-in: 8d05cfd4 user: dan tags: fts5-offsets)
15:54
Disable the --limit-mem option on fuzzcheck unless the SQLITE_ENABLE_MEMSYS5 or SQLITE_ENABLE_MEMSYS3 compile-time options are used. (check-in: 55a11fd6 user: drh tags: trunk)
15:49
Merge changes for version 3.10.0. (check-in: e1d2ffc0 user: drh tags: begin-concurrent)
15:14
Merge changes for version 3.10.0. (check-in: fa4705c9 user: drh tags: sessions)
14:35
Merge all version 3.10.0 updates. (check-in: 77c28c2b user: drh tags: apple-osx)
11:01
Version 3.10.0 (check-in: fd0a50f0 user: drh tags: trunk, release, version-3.10.0)
10:17
Fix a problem with the xPhraseFirstColumn() API in detail=col mode. Remove some unused test code from fts5ac.test. (check-in: a4e55f73 user: dan tags: fts5-offsets)
2016-01-05
21:04
Rationalize and extend some fts5 test code. Fix bugs revealed by the same. (check-in: fd217fdb user: dan tags: fts5-offsets)
03:39
Always use -DSQLITE_ENABLE_MEMSYS5 for fuzzcheck so that the --limit-mem option will work. (check-in: a8556977 user: drh tags: trunk)
03:39
Another attempt to get reuse of excess opcode array space working correctly on all architectures and platforms. (check-in: 2f858374 user: drh tags: trunk)
01:48
Permit the 'test_fs' test module to be compiled and used on MinGW. (check-in: ac27f38e user: mistachkin tags: trunk)
2016-01-04
23:43
Fix a corner case in the opcode-array reuse logic where the number of bytes of reusable space might be computed to be a negative number, due to unusual system alignment restrictions and rounding error. (check-in: 1aa53014 user: drh tags: trunk)
19:12
Fix an OOM handling problem in fts5 detail=none and detail=col modes. Also a bug in the xInst() API when used with detail=col and column filtering expressions. Update the matchinfo() test function so that 'b' is fast with detail=col tables. (check-in: ee38f9df user: dan tags: fts5-offsets)
19:02
Merge in last-minute patches for the 3.10.0 beta. (check-in: c785cd78 user: drh tags: sessions)
16:19
Update more fts5 tests to run in detail=none and detail=column modes as well as the default detail=full. (check-in: 3fcf3b1e user: dan tags: fts5-offsets)
13:06
Fix the conflict2.test module which was broken by check-in [e30062e9f6c]. (check-in: b779ca8a user: drh tags: trunk)
12:07
A new approach to very large sqlite3_mprintf() strings: Back out the [d655a665] check-in and instead make the size fields in StrAccum unsigned. Strings generated by sqlite3_mprintf() can now be as large as 2^31-1 bytes. (check-in: 7adb789f user: drh tags: trunk)
04:44
Improved comment on the vtabH-3.1 test. (check-in: 22abe080 user: drh tags: trunk)
04:41
Adjust the vtabH.test module to ignore files in the root directory of Windows machines that contain the "$" character. (check-in: 73e33550 user: drh tags: trunk)
04:28
Limit the length of sqlite3_mprintf() output to 2^30 bytes, even if SQLITE_MAX_LENGTH is set larger at compile-time. (check-in: d655a665 user: drh tags: trunk)
03:48
Fix a harmless compiler warning. (check-in: 4b404a99 user: drh tags: trunk)
01:08
Add releasetest.tcl cases for SQLITE_LIKE_DOESNT_MATCH_BLOB and for SQLITE_ENABLE_CURSOR_HINTS. (check-in: f300c35e user: drh tags: trunk)
2016-01-03
18:59
Alternative to [76f5efa6], move definition of utf8_printf up. (check-in: 54c5522d user: mistachkin tags: altShellFix)
18:07
Bug fix: the conflict resolution behavior for the implied NOT NULL constraint on the PRIMARY KEY of a WITHOUT ROWID table should be ABORT. (check-in: e30062e9 user: drh tags: trunk)
11:27
Fix a premature reference to utf8_printf in shell.c. (check-in: 76f5efa6 user: drh tags: trunk)
11:17
Add the number of cores used and the name of the host computer to the summary at the end of releasetest.tcl. (check-in: cd3ae0f1 user: drh tags: trunk)
2016-01-02
19:01
Changes to run many fts5 tests with detail=none and detail=col tables as well as the default detail=full. Also fixes for the bugs uncovered by running said tests. (check-in: 6322a1d9 user: dan tags: fts5-offsets)
05:00
Fix a (harmless) typo in an #ifdef for SQLITE_ENABLE_CURSOR_HINTS (check-in: 2047d2de user: drh tags: trunk)
2016-01-01
16:42
Remember the size of the Vdbe.aOp[] array in bytes, to avoid unnecessary calls to sqlite3_msize(). (check-in: 3e852804 user: drh tags: trunk)
16:26
Avoid misaligned memory allocations on Sparc in sqlite3VdbeMakeReady(). This fixes a problem introduced by check-in [a9e819082b]. (check-in: a304e346 user: drh tags: trunk)
14:14
Merge recent trunk enhancements. (check-in: 6bea792c user: drh tags: begin-concurrent)
13:31
Merge all recent trunk enhancements. (check-in: 5b700f31 user: drh tags: apple-osx)
13:25
Merge the latest enhancements from trunk. (check-in: c0be246a user: drh tags: sessions)
03:37
Fix an assert() that might be false for a corrupt database. (check-in: 68360cd2 user: drh tags: trunk)
00:15
Remove unreachable branches from the new JSON aggregate functions. (check-in: 6e30f8c6 user: drh tags: trunk)
2015-12-31
22:29
Fix the ieee754.test module so that it works both on systems that report infinity as "inf" and as "Inf". (check-in: d41d4d73 user: drh tags: trunk)
19:06
In the shell, use utf8_printf() when any string formatting is present and raw_printf() otherwise. (check-in: 8cf01fff user: mistachkin tags: trunk)
19:04
Fix harmless compiler warning seen with MSVC. (check-in: 98ec778d user: mistachkin tags: trunk)
18:39
Fix the fts5 integrity-check code so that it works with detail=none tables. (check-in: 3a1df69e user: dan tags: fts5-offsets)
17:36
Fix some problems with fts5 detail=none tables. Some still remain. (check-in: 6a6f7bc4 user: dan tags: fts5-offsets)
15:34
Fix harmless compiler warnings associated with SQLITE_ENABLE_HIDDEN_COLUMNS. (check-in: 9c392c10 user: drh tags: trunk)
04:34
Small size and performance optimization to the VDBE comparison opcodes. (check-in: 7a0b9413 user: drh tags: trunk)
2015-12-30
20:50
Use the OvflOffset() macro to try to remove some magic numbers from btree.c. (Leaf check-in: 1541607d user: drh tags: ovfloffset-macro)
19:58
Updates to fts5 to support detail=none mode. As of this commit, many cases are still broken. (check-in: ac8f4cf0 user: dan tags: fts5-offsets)
18:18
Reduce the size of the CellInfo object from 32 to 24 bytes on 64-bit machines, for a small performance increase and library size reduction. (check-in: 6a4cfc7a user: drh tags: trunk)
17:03
Enhance the command-line shell so that it can handle MBCS characters on input and output. (check-in: 3d81dfe3 user: drh tags: trunk)
16:51
Changes to the way that the default BINARY collating sequence is recorded result in a slightly smaller and slightly faster executable. More work could be done to make this cleaner. (check-in: 2081d757 user: drh tags: trunk)
15:18
Simplification to the xfer-optimization logic. (check-in: f35ba018 user: drh tags: trunk)
14:06
Remove unnecessary tests from the LIKE pattern matcher. Slightly faster and slightly smaller, and it should also now works with EBCDIC. (check-in: 0a99a8c4 user: drh tags: trunk)
13:36
Enhance the command-line shell to handle MBCS characters on input and output. (Closed-Leaf check-in: a0a08b8c user: drh tags: mbcs-shell)
01:07
Add the json_group_array() and json_group_object() aggregate functions to the JSON1 extension. (check-in: 7f386a93 user: drh tags: trunk)
2015-12-29
19:35
Add the xPhraseFirstColumn() and xPhraseNextColumn() API functions to fts5. For iterating through the set of columns that contain intances of a phrase. (check-in: 8c30605b user: dan tags: fts5-offsets)
2015-12-28
19:55
Change the name of the offsets=0 option to "detail=column". Have the xInst, xPhraseFirst and other API functions work by parsing the original text for detail=column tables. (check-in: 228b4d10 user: dan tags: fts5-offsets)
2015-12-24
14:53
Avoid a harmless compiler warning on systems where the byteorder cannot be determined at compile-time. (check-in: 7c7b7f26 user: drh tags: trunk)
2015-12-23
16:42
Fix some harmless gcc compiler warnings. Mostly in fts5, but also two in the core code. (check-in: 5d44d4a6 user: dan tags: trunk)
10:54
Enhance the 'utc' modifier on date/time functions so that if the LHS is already known to be in UTC, the modifier becomes a no-op. This is not an incompatibility because the behavior is documented as "undefined" in that scenario. (check-in: b910a3d5 user: drh tags: trunk)
2015-12-22
18:54
Updates so that fts5 API functions xInst, xPhraseFirst and xPhraseNext work with the offsets=0 option. (check-in: 69bffc16 user: dan tags: fts5-offsets)
2015-12-21
18:45
Fix an fts5 integrity-check problem that affects offsets=0 tables with prefix indexes. (check-in: 609a0bc7 user: dan tags: fts5-offsets)
15:22
Ensure that the Expr objects that describe indexed expressions are not modified by code generation. Fix for an assert() problem found by Jon Metzman using AFL. (check-in: 34073ce8 user: drh tags: trunk)
2015-12-18
19:07
Fix a problem with prefix queries on fts5 offsets=0 tables. (check-in: ad0987d8 user: dan tags: fts5-offsets)
16:29
Micro-optimizations and comment fixes on the mem5.c memory allocator module. (check-in: 8bf5e056 user: drh tags: trunk)
03:59
Reduce the size of the CellInfo object from 32 to 24 bytes on 64-bit machines. (Closed-Leaf check-in: 78507154 user: drh tags: optimize-cellinfo)
2015-12-17
20:36
Add the "offsets=0" option to fts5, to create a smaller index without term offset information. A few things are currently broken on this branch. (check-in: 40b5bbf0 user: dan tags: fts5-offsets)
19:17
Make the VdbeCursor object even smaller. But the resulting library is bigger and slower than trunk. This branch is a failed experiment. (Leaf check-in: 896a06cc user: drh tags: optimize-vdbecursor)
17:30
Reduce the size of the VdbeCursor object by a pointer (the pBt pointer used for ephemeral tables). (check-in: 98b710c3 user: drh tags: optimize-vdbecursor)
14:18
Fix the spellfix1_scriptcode() function to ignore whitespace and punctuation, and to recognize hebrew and arabic scripts. (check-in: 7adfa4a5 user: drh tags: trunk)
13:28
Fixes for harmless compiler warnings. (check-in: 85ebd46c user: drh tags: trunk)
2015-12-16
23:30
Fix even more harmless compiler warnings. (Closed-Leaf check-in: 1d0e6aa1 user: mistachkin tags: msvcWarn)
22:06
Fix some more harmless compiler warnings. (check-in: 18f531e1 user: mistachkin tags: msvcWarn)
21:09
Fix compiler warning seen with MSVC. (check-in: 18a4c054 user: mistachkin tags: msvcWarn)
19:55
Merge recent enhancements from trunk. (check-in: cb22efaf user: drh tags: begin-concurrent)
19:47
Merge recent enhancements from trunk. (check-in: f6c9273c user: drh tags: sessions)
13:07
Make greater use of the SQLITE_WITHIN macro. (check-in: f2fc3aed user: drh tags: trunk)
2015-12-15
19:32
Update the mkautoconfamal.sh script to make the building of the sqlite3-autoconf-VERSION.tar.gz package more orthodox. (check-in: 1928f894 user: dan tags: trunk)
13:50
Add the SQLITE_OMIT_PARSER_TRACE compile-time option. (check-in: 2fda43e6 user: drh tags: trunk)
2015-12-14
19:42
Add a missing memAboutToChange() macro to vdbe.c, the lack of which was causing an assert() to fail incorrectly. Problem found by libfuzzer. (check-in: 1a247911 user: dan tags: trunk)
2015-12-12
19:23
Update some stale comments in delete.c. No changes to code. (Leaf check-in: f59a3326 user: dan tags: onepass-delete-or)
17:31
Add further tests for the changes on this branch. Also fix a memory-leak that could follow a malloc failure. (check-in: 21526012 user: dan tags: onepass-delete-or)
2015-12-11
14:59
Add a new assert() statement to the snapshot-specific part of sqlite3WalBeginReadTrans(). (check-in: d8a12023 user: dan tags: trunk)
13:59
Merge recent changes from trunk. Also remove unused variables to permit compiling with -Werror. (check-in: 57b700ba user: drh tags: onepass-delete-or)
13:51
Simplified alignment constraints in the memory reuse logic of sqlite3VdbeMakeReady(). (check-in: e998513e user: drh tags: trunk)
12:53
Merge recent trunk enhancements, and in particular the snapshot interface. (check-in: 7e7b2406 user: drh tags: apple-osx)
12:44
Add the experimental snapshot interface. Because it is experimental, it is subject to change or removal at a later date. (check-in: 9b124a5a user: drh tags: trunk)
04:11
Fix a memory allocation bug introduced last week by check-in [a9e819082ba]. The bug only appears on systems where the size of a structure is not always a multiple of 8 - which in practice means only on 32-bit windows systems. (check-in: 96d3e99f user: drh tags: trunk)
03:27
Mention that the snapshot interfaces are only available if SQLite is compiled with SQLITE_ENABLE_SNAPSHOT. (Closed-Leaf check-in: 843c15a5 user: drh tags: snapshot-get)
03:20
Disable the snapshot test scripts if not compiled with SQLITE_ENABLE_SNAPSHOT. (check-in: 5fd008f0 user: drh tags: snapshot-get)
03:16
Fix a variable type mismatch problem in the snapshot logic. (check-in: 93fb8010 user: drh tags: snapshot-get)
01:22
Fix a bad assert related to snapshots. (check-in: 767ee30e user: drh tags: snapshot-get)
2015-12-10
22:48
Snapshot documentation updates. Comment changes only - no changes to code. (check-in: ef51a398 user: drh tags: snapshot-get)
20:03
Update the sqlite3_snapshot_get() API so that if the caller does not have an open read transaction on the named database, one is automatically opened. (check-in: b9c90f10 user: dan tags: snapshot-get)
19:44
Add tests to snapshot.test. (check-in: f3b74362 user: dan tags: snapshot-get)
19:11
Return SQLITE_BUSY (not SQLITE_BUSY_SNAPSHOT) if sqlite3_snapshot_open() fails to obtain the shared checkpointer lock. (check-in: 5343060b user: dan tags: snapshot-get)
18:06
Add tests to ensure that an sqlite3_snapshot_open() client cannot be tricked into reading a corrupt snapshot even if another process fails mid-checkpoint. (check-in: b908048b user: dan tags: snapshot-get)
17:59
Move pointer range comparisons into a macro, where they can be dealt with in a more portable way. (check-in: 05bc4f92 user: drh tags: trunk)
15:45
Have sqlite3_snapshot_open() avoid a race condition by taking a shared CHECKPOINTER lock while checking pInfo->nBackfillAttempted. (check-in: 8084eae0 user: dan tags: snapshot-get)
15:09
Move pointer range comparisons into a macro, where they can be dealt with in a more portable way. (Closed-Leaf check-in: ad3124c8 user: drh tags: stdint.h)
03:16
Fix spacing typo in comment. No changes to code. (check-in: 3a18526f user: mistachkin tags: snapshot-get)
02:15
Add the nBackfillAttempted field in formerly unused space in WalCkptInfo and use that field to close the race condition on opening a snapshot. (check-in: cb68e9d0 user: drh tags: snapshot-get)
2015-12-09
20:05
Update sqlite3_snapshot_open() to reduce the chances of reading a corrupt snapshot created by a checkpointer process exiting unexpectedly. (check-in: 7315f7cb user: dan tags: snapshot-get)
17:45
Add extra test cases to delete4.test. (check-in: 571b64b9 user: dan tags: onepass-delete-or)
17:23
Further simplifications to the VDBE code generation logic that flow out of the previous check-in. (check-in: 6a5dfe85 user: drh tags: trunk)
16:26
Simplification of the DROP TRIGGER logic using sqlite3NestedParse() instead of hand-coded VDBE code. This is a manual cherry-pick of the key change from check-in [c80bbf14b365d]. (check-in: 8021b4c8 user: drh tags: trunk)
16:08
Fix a problem with the DROP TABLE command on this branch. (check-in: c80bbf14 user: dan tags: onepass-delete-or)
16:04
Merge unrelated fixes from trunk. (check-in: 362615b4 user: drh tags: snapshot-get)
10:06
Add simple tests and bugfixes for DELETE statements that qualify for the OR-optimization. (check-in: 10ca7357 user: dan tags: onepass-delete-or)
08:13
Merge latest trunk with this branch. (check-in: dc236f11 user: dan tags: onepass-delete-or)
2015-12-08
19:50
Experimental optimization for DELETE statements with WHERE clauses that qualify for the OR-optimization. (check-in: d52376df user: dan tags: onepass-delete-or)
16:58
Changes to avoid undefined behavior in memset() and memcpy() and in the comparisons of pointers from different allocations. All problems are found by analysis tools - none have been seen in the wild. (check-in: 901d0b8f user: drh tags: trunk)
16:08
Avoid doing comparisons with pointers that might have been previously been passed to realloc() and/or free(). (check-in: f20396ad user: drh tags: trunk)
14:37
Avoid unnecessary work inside of verifyDbFile() in the unix VFS. (Closed-Leaf check-in: f3c0579e user: drh tags: unix-vfs-optimization)
04:18
Add a test case of the form "WHERE a<2 OR a<3" using PRAGMA count_changes. This test case was failing before the 3.9.0 release. (check-in: 177862c1 user: drh tags: trunk)
00:47
Update the TclKit download URL. (check-in: 07e5199c user: mistachkin tags: trunk)
2015-12-07
23:31
Update MSVC batch build tool to the latest Windows 10 SDK version. (check-in: 2ad50171 user: mistachkin tags: trunk)
21:46
Add the ".changes ON|OFF" command to the sqlite3.exe command-line shell, for testing and verifying the sqlite3_changes() and sqlite3_total_changes() interfaces. (check-in: 9bbe1afc user: drh tags: trunk)
18:18
Fix the openDirectory() routine in the unix VFS so that it works for databases located in the root of the filesystem and for database files that have no pathname at all. (check-in: e7ae120d user: drh tags: trunk)
16:43
Changes to avoid undefined behavior detected by analysis tools - never observed in the wild. Later: This check-in introduces a bug, fixed at [a304e34675404aee]. (check-in: a9e81908 user: drh tags: trunk)
14:33
Add tests for snapshot_get(), _open() and _free(). (check-in: 502cc6f3 user: dan tags: snapshot-get)
2015-12-05
20:51
Add untested implementations of experimental APIs sqlite3_snapshot_get(), _open() and _free(). (check-in: 0715eb00 user: dan tags: snapshot-get)
2015-12-04
13:44
Remove the dependence on "exec ls -U" from the vtabH.test module, as the -U option to "ls" is not universally available. (check-in: 4ecbc75b user: drh tags: trunk)
03:27
Prevent a segfault on Solaris in the test_fs.c due to differences in the definition of the dirent object. (check-in: 042738ad user: drh tags: trunk)
2015-12-03
22:33
Fix typos in requirements text and update requirements marks. No changes to code. (check-in: 8534a46c user: drh tags: trunk)
21:47
Improved OOM recovery in the SELECT code generator logic. (check-in: e6521a43 user: drh tags: trunk)
20:50
Make the SQLITE_ENABLE_8_3_NAMES compile-time option available to sqlite3_compileoption_used(). (check-in: 06338201 user: drh tags: trunk)
20:42
Cleaner code and additional comments on the handling of 8+3 filenames when trying to find the name of a database file based on its journal filename, in the unix VFS. (check-in: 9e489a71 user: drh tags: trunk)
13:43
Make the sqlite3_status64(), sqlite3_strlike(), and sqlite3_db_cacheflush() APIs available to loadable extensions. (check-in: a78e8656 user: drh tags: trunk)
12:01
Fix threadtest3 so that it builds using the autoconf build system. (check-in: d96de532 user: dan tags: trunk)
11:51
Improve concurrency in test_multiplex.c. Add a switch to "threadtest3" allowing it to run using the multiplexor VFS. (check-in: 9d2c62b0 user: dan tags: trunk)
01:48
A unix VFS change replaces fsync() with fstat() when using SQLITE_NO_SYNC, so set PRAGMA synchronous=OFF in the sysfault-3 test to avoid erroneously causing errors in xSync. (check-in: 4f7f3550 user: drh tags: trunk)
2015-12-02
20:53
Merge recent enhancements from trunk. (check-in: 9130661a user: drh tags: begin-concurrent)
20:40
Merge recent enhancements from trunk. (check-in: d1a1278d user: drh tags: sessions)
20:22
Merge all recent trunk enhancements, especially the unix VFS changes. (check-in: e1fb33c7 user: drh tags: apple-osx)
19:46
Remove unreachable branches from the decltype computation logic in the query planner. (check-in: 4f2bcff9 user: drh tags: trunk)
18:59
Have the sqlite3_column_decltype() API report the declared types for the left-most SELECT statement in a compound SELECT. (check-in: 3e1d71fc user: dan tags: trunk)
17:40
Fix an incorrect, though harmless, assert() in the unix VFS. (check-in: 4692ae84 user: drh tags: trunk)
16:10
Remove more (dead) SQLITE_FCNTL_WAL_BLOCK logic from wal.c - code that was missed during the [e1d5320ca08933] check-in. (check-in: 58c15c6a user: drh tags: trunk)
15:44
Remove an unreachable branch from the unixMapfile() routine of the unix VFS. (check-in: b50f67bc user: drh tags: trunk)
13:11
Minor simplifications to the unix VFS. (check-in: 2f13c16b user: drh tags: trunk)
02:33
Change the SQLITE_NO_SYNC compile-time option to call fstat() in place of fsync() rather than being a total no-op. (check-in: f64ea8a0 user: drh tags: trunk)
02:08
Fix a (harmless) off-by-one error in the unix VFS logic that fsync()s a directory after deleting a file. (check-in: 3d02711a user: drh tags: trunk)
01:04
Simplification of the logic used to take the process-wide lock in the unix-excl VFS. (check-in: 73defd52 user: drh tags: trunk)
00:05
Remove all traces of SQLITE_FCNTL_WAL_BLOCK from the unix VFS - that feature had been disabled for a long time and never actually worked. (check-in: e1d5320c user: drh tags: trunk)
2015-12-01
22:09
Simplification to the posix_fallocate() replacement used for the SQLITE_FCNTL_SIZE_HINT file control in the unix VFS. (check-in: 74934d3f user: drh tags: trunk)
21:23
Add the SQLITE_LIKE_DOESNT_MATCH_BLOBS compile-time option. (check-in: 9e1d6d4c user: drh tags: trunk)
17:48
The test_fs.c test module now works on Windows. (check-in: e3d86284 user: drh tags: trunk)
16:21
Simplification to the read and write primatives in the unix VFS. (check-in: 9eefa449 user: drh tags: trunk)
2015-11-30
23:29
Add experimental support for the 'test_fs' test module on Win32. (Closed-Leaf check-in: f3ffb3ae user: mistachkin tags: testFsWin32)
22:52
Add the SQLITE_PRINTF_PRECISION_LIMIT compile-time option. (check-in: ecad75d6 user: drh tags: trunk)
22:22
Fix a problem in xFullPathname for the unix VFS. The problem was found by Kostya Serebryany using libFuzzer. (check-in: bb1e2c4d user: drh tags: trunk)
20:36
The EOVERFLOW errors from fstat() is not possible unless SQLite has been compiled with SQLITE_DISABLE_LFS. (check-in: 8cfb7a50 user: drh tags: trunk)
19:16
Add a rule to main.mk to build the schemalint.tcl script into an executable. Similar to the way the sqlite3_analyzer executable is built. (check-in: b8251065 user: dan tags: schemalint)
19:15
Fix the threadtest3 test program so that it works with VFSes that omit the xCurrentTime() method and supply only xCurrentTimeInt64(). (check-in: 3b155855 user: drh tags: trunk)
18:17
Fix the schemalint.tcl script to handle identifiers that require quoting. (check-in: 451e0faf user: dan tags: schemalint)
12:01
Add the "colUsed" field to the sqlite3_index_info structure passed to virtual table xBestIndex methods. To indicate the subset of the virtual table columns that may be required by the current scan. (check-in: 47f10b7e user: dan tags: trunk)
00:05
Simplifications to the locking logic in the unix-dotfile VFS. (check-in: 58381352 user: drh tags: trunk)
2015-11-29
21:46
Fix the sqldiff utility program so that it works for schemas that have tables with zero-length column names. (check-in: 64263ccb user: drh tags: trunk)
2015-11-28
21:49
Improvements to temporary file creation logic in the unix VFS. (check-in: d6e177fd user: drh tags: trunk)
18:06
Add the SQLITE_FCNTL_VFS_POINTER file control which obtains a pointer to the top-level VFS in use by a database connection. (check-in: 7c6a809e user: drh tags: trunk)
17:38
Disable testing with SQLITE_USER_AUTHENTICATION as the makefiles are not set up to do that. (check-in: 14bbcdc6 user: drh tags: trunk)
2015-11-26
22:12
The first argument to SQLITE_CONFIG_PAGECACHE, SQLITE_CONFIG_SCRATCH, and SQLITE_CONFIG_HEAP must always be a pointer. (check-in: 5e14cadf user: drh tags: trunk)
19:33
Add the "colUsed" field to the sqlite3_index_info structure passed to virtual table xBestIndex methods. To indicate the subset of the virtual table columns that may be required by the current scan. (Closed-Leaf check-in: 116b2064 user: dan tags: vtab-colused)
15:51
Fix a problem with the userauth extension and no-authentication databases. Run the tests for this extension as part of the Debug-One module in releasetest.tcl. (check-in: 8b156219 user: dan tags: trunk)
10:37
Simplify logic for syncing directories after creating or deleting a file in the unix VFS. (check-in: eb180b4f user: drh tags: trunk)
02:21
Small simplification to the xOpen method in the unix VFS. (check-in: 96e7d638 user: drh tags: trunk)
2015-11-25
23:13
Simplify the temporary filename generator and the time-of-day functions in the unix VFS. (check-in: 6c5621ce user: drh tags: trunk)
18:40
Fix harmless compiler warnings in test_fs.c. Fix typos and clean up the text of the documentation for sqlite3_strglob() and sqlite3_strlike(). (check-in: 697b2053 user: drh tags: trunk)
18:07
Update test_fs.c to include a virtual table that reads a file-system hierarchy. Use it to further test GLOB and LIKE support for virtual tables. (check-in: 6ef6578c user: dan tags: trunk)
18:03
Make the xAccess method of the unix VFS smaller and faster. (check-in: 191aef98 user: drh tags: trunk)
15:15
Remove unused methods from the unix VFS. (check-in: 228bd15b user: drh tags: trunk)
14:00
Simplification of the error code translator in os_unix.c. Code cleanup only. The logic is unchanged. (check-in: 2a20f793 user: drh tags: trunk)
11:56
Fix the fts5 "prefix=" option to match the documentation (space separated list, multiple prefix= options supported). The undocumented comma-separated format (compatible with fts4) still works. (check-in: 11eb8e87 user: dan tags: trunk)
01:57
Enhancement the virtual table interface to support LIKE, GLOB, and REGEXP operators. Also add the sqlite3_strlike() interface, which might be useful as part of the implementation of LIKE on some virtual tables. (check-in: a6bfd469 user: drh tags: trunk)
2015-11-24
21:23
Add the sqlite3_strlike() interface, which might be useful for implementing LIKE operators on virtual tables. (Closed-Leaf check-in: e70ec71d user: drh tags: vtab-like-operator)
18:16
Fix a problem in whereexpr.c causing a crash while processing a user-function taht accepts zero arguments. (check-in: 069e51b1 user: dan tags: vtab-like-operator)
18:04
Fix harmless compiler warnings in the TCL test harness logic. (check-in: 2fba7a96 user: drh tags: vtab-like-operator)
17:44
Merge latest trunk changes with this branch. (check-in: 99222bb3 user: dan tags: vtab-like-operator)
17:39
Add further tests and related fixes for GLOB/REGEXP/LIKE support in virtual tables. (check-in: c5e9fd0d user: dan tags: vtab-like-operator)
16:40
Remove from os_unix.c pointless logic that tries to prevent a recurrence of a warning message that can only occur once. (check-in: 20256177 user: drh tags: trunk)
15:12
Fix a comment typo in the unix VFS. No changes to code. (check-in: 32e13879 user: drh tags: trunk)
15:06
Make the geteuid() system call overloadable using xSetSystemCall() on the unix VFSes. (check-in: 6c2ddea6 user: drh tags: trunk)
03:50
Add a test case for the fix of check-in [19d9f9ce691963310] (check-in: 19a9c07b user: drh tags: trunk)
02:10
Remove an incorrect ALWAYS() macro. Fix for ticket [e5c6268dd807fa8950] - a problem introduced in SQLite 3.9.0 and found by libFuzzer. (check-in: 824ad96f user: drh tags: trunk)
01:17
Add a clarifying comment to the virtual table test module 'test8'. (check-in: e92f97a6 user: mistachkin tags: trunk)
00:49
Do not try to eliminate No-ops at the end of VDBE program as this can cause problems for some DISTINCT handling algorithms, and does not improve performance. This also fixes an assertion fault found by libFuzzer. (check-in: 19d9f9ce user: drh tags: trunk)
2015-11-23
21:09
Add experimental support for LIKE, GLOB and REGEXP to the virtual table interface. (check-in: 277a5b40 user: dan tags: vtab-like-operator)
18:28
In the CREATE INDEX statements output by schemalint.tcl, avoid declaring an explicit collation sequence that is the same as the column's default. (check-in: d3aa067c user: dan tags: schemalint)
17:14
Merge latest trunk changes with this branch. (check-in: 8f1ef090 user: dan tags: schemalint)
17:10
Fix ORDER BY handling in the schemalint.tcl script. Add internal self-tests to the same script. (check-in: b8f277c9 user: dan tags: schemalint)
2015-11-21
19:43
Fix an obscure memory leak found by libfuzzer that may occur under some circumstances if expanding a "*" expression causes a SELECT to return more than 32767 columns. (check-in: 60de5f23 user: dan tags: trunk)
17:53
Add a new OP_BColumn opcode where the cursor is guaranteed to be of type CURTYPE_BTREE and is thus able to skip some checks and run slightly faster. (Leaf check-in: 093e0d10 user: drh tags: btree-column-opcode)
17:27
Fix over-length source code lines. No logic changes. (check-in: 198d191b user: drh tags: trunk)
13:24
Do not allow table-valued function syntax on ordinary tables and views as those objects are not table-valued functions. Fix for ticket [73eba7ba5c7c0fc]. Problem found by libFuzzer. (check-in: ff5716b8 user: drh tags: trunk)
2015-11-20
20:55
Add support for ORDER BY clauses to schemalint.tcl. (check-in: 93bdf70e user: dan tags: schemalint)
19:22
Refactor the VdbeCursor object. It is now slightly smaller and faster and is easier to understand. (check-in: 9b1d174d user: drh tags: trunk)
13:49
Merge all the latest enhancements and fixes from trunk. (check-in: 41c8b8e3 user: drh tags: begin-concurrent)
13:33
In the OP_Column opcode, only test the btree payload size for exceeding the string length limit if the payload does not fit on a single page. (check-in: 35c7f6cb user: drh tags: trunk)
13:17
Enhancements to a comment in sqliteInt.h. No changes to code. (check-in: 5446ae64 user: drh tags: trunk)
2015-11-19
19:48
Merge the latest enhancements from trunk. (check-in: 2c9e5436 user: drh tags: apple-osx)
19:40
Merge the latest enhancements from trunk. (check-in: 7d6cfc79 user: drh tags: sessions)
19:31
Merge the latest enhancements from trunk. (check-in: 8aede091 user: drh tags: lsm-vtab)
19:27
Work toward more flexible typing for keys and values. (check-in: 5c79f531 user: drh tags: lsm-vtab)
18:11
Fix problems with the way the IsHiddenColumn() macro is defined. (check-in: 126b998c user: drh tags: trunk)
18:09
Fix a problem with VACUUM and __hidden__ columns. (check-in: 13995756 user: dan tags: trunk)
17:55
When manifesting a view as part of an DELETE or UPDATE, be sure to include the hidden columns in the manifestation. (check-in: 28df5dc4 user: drh tags: trunk)
16:46
Fix problems with INSERT INTO ... SELECT ... statements that write to tables with __hidden__ columns. (check-in: 59bd0ec7 user: dan tags: trunk)
16:33
Create the new TK_ASTERISK token to represent the "*" in "SELECT *". Formerly that operator was TK_ALL, which was also used for UNION ALL. Less confusion if they operator symbols are distinct. (check-in: 201ac6d4 user: drh tags: trunk)
14:11
If compiled with SQLITE_ENABLE_HIDDEN_COLUMNS, then columns in ordinary tables and views that have names beginning with "__hidden__" are omitted from the "*" expansion in SELECT statements and from the automatic list of columns following the table name in an INSERT INTO statement. (check-in: 011904ca user: drh tags: trunk)
13:53
Only support the magic "__hidden__" column name prefix interpretation when compiled with SQLITE_ENABLE_HIDDEN_COLUMNS. (Closed-Leaf check-in: 5490646b user: drh tags: hidden-columns-in-tables)
13:21
Fix a 10-year-old misguided attempt at parser performance improvement that actually made parsing slightly slower. (check-in: 3833cbac user: drh tags: trunk)
2015-11-18
21:22
Get the __hidden__ column mechanism working on views with INSTEAD OF triggers. (check-in: 20c1e9ce user: drh tags: hidden-columns-in-tables)
20:59
Add tests for views to hidden.test. (check-in: 27d4b6f5 user: dan tags: hidden-columns-in-tables)
20:57
Honor the "__hidden__" prefix on the columns of views. (check-in: 3071ba2b user: drh tags: hidden-columns-in-tables)
20:07
Add a test for the __hidden__ hack on this branch. (check-in: ebf4bbff user: dan tags: hidden-columns-in-tables)
18:43
If a table column name begins with "__hidden__" then do not include that column in "*" expansions in SELECT statements, nor fill in that column in an INSERT INTO that omits the column list. This branch is a proof-of-concept only and is not intended to ever be merged into trunk. (check-in: 2dbffb3a user: drh tags: hidden-columns-in-tables)
2015-11-17
21:42
When using mmap mode on Win32, use a read-only mapping by default. Write to the database file using WriteFile(). Unless SQLITE_MMAP_READWRITE is defined, in which case use a read/write mapping and write into the file using memcpy(). (check-in: 4f521b5b user: mistachkin tags: trunk)
20:56
When using mmap mode on unix, use a read-only mapping by default. Write to the database file using write(). Unless SQLITE_MMAP_READWRITE is defined, in which case use a read/write mapping and write into the file using memcpy(). (check-in: 67c5d3c6 user: dan tags: trunk)
19:17
Fix uninitialized variable in the command line shell. (check-in: dc2ac024 user: mistachkin tags: trunk)
19:16
Fix harmless compiler warning. (check-in: eea26b6c user: mistachkin tags: trunk)
02:23
Basic functionality is now working. (check-in: aa129c51 user: drh tags: lsm-vtab)
00:15
The virtual table compiles but does not work and is missing many features. This is an incremental check-in. (check-in: a32849d6 user: drh tags: lsm-vtab)
2015-11-16
16:00
Import the LSM code from SQLite4 for use in an experimental virtual table. NB: This is a speculative experiment and could easily result in a dead-end branch. (check-in: 3d930501 user: drh tags: lsm-vtab)
15:28
Add testfixture command "vfs_current_time_int64". Returns the value returned by the xCurrentTimeInt64 method of the default VFS. (check-in: f79d5b18 user: dan tags: trunk)
08:54
In the shell tool, avoid testing if (sqlite3_vfs.xGetCurrentInt64) is NULL for a version 1 VFS. This field is only defined for version 2 and greater. (check-in: ad5fcaa5 user: dan tags: trunk)
2015-11-15
11:13
Fix the column name uniquifier so that it works with zero-length column names. (check-in: 791761eb user: drh tags: trunk)
2015-11-14
22:04
Code simplification in sqlite3ColumnsFromExprList(). Update the %z format code so that it works with buffers obtained from sqlite3DbMalloc(). Add a testcase for the slow column name uniquifier. (check-in: 92724260 user: drh tags: trunk)
20:52
Use a hash table to improve the preformance of column name uniqueness checking. (check-in: 5b08f29f user: drh tags: trunk)
16:47
Use randomness to prevent slowness in the generated-column-name uniqueness checking. (check-in: 62667129 user: drh tags: trunk)
2015-11-13
20:52
Fix a memory leak in the fuzzcheck utility. (check-in: dfd6d9f4 user: drh tags: trunk)
16:59
Add the "--enable-static-shell" option to the amalgamation autoconf script. If set (the default) the compiled shell tool is statically linked against sqlite3.o. Otherwise, it is linked against libsqlite3.so. (check-in: 499a02a3 user: dan tags: trunk)
13:15
Add the --transaction option to the sqldiff tool. (check-in: 8882d1f3 user: drh tags: trunk)
12:52
Fix the releasetest-out.txt log output from releasetest.tcl so that it works when the --jobs option is used. (check-in: 6bb314a5 user: drh tags: trunk)
12:32
Disable two PRAGMA cache_spill tests when MEMORY_MANAGEMENT is enabled. (check-in: ebda77aa user: drh tags: trunk)
02:13
Merge fixes from trunk. (check-in: f9060b2a user: drh tags: apple-osx)
00:03
Change the error messages so that they can be grepped using '^!' instead of '^ '. There are far too many extraneous outputs that begin with a space. (check-in: 367ec0db user: drh tags: trunk)
2015-11-12
23:48
Update the SQLLOG logic so that to builds in accordance with the instructions in the header comment. (check-in: ee6f2fee user: drh tags: trunk)
22:15
Always parse the schema *before* running "PRAGMA cache_size", not after. (check-in: 12e7d9ec user: drh tags: trunk)
21:55
Import the test_sqllog.c enhancements from trunk. (check-in: 178da339 user: drh tags: apple-osx)
21:42
Add a space before each line of error output in the test scripts so that all errors can be conveniently located in logs by doing "grep '^ '". (check-in: 9d532fb5 user: drh tags: trunk)
20:12
Add support for the SQLITE_SQLLOG_CONDITIONAL environment variable to the logging code in test_sqllog.c. When defined, logging is only performed if the "<database>-sqllog" file is present in the file system when the main database is opened. (check-in: cab8126b user: dan tags: trunk)
16:51
Merge the latest enhancements from trunk, and in particular the "PRAGMA cache_spill=N" change. (check-in: e72331c7 user: drh tags: apple-osx)
16:44
Enhance the "PRAGMA cache_spill" statement to accept an integer argument which is the threshold at which spilling will begin. (check-in: f79d264d user: drh tags: trunk)
15:47
Test cases. Minor problems fixed. All appears to work now. (Closed-Leaf check-in: 9a431362 user: drh tags: cache_spill=N)
15:04
Fix a #define in parse.y that disabled unused code in the generated parser. (check-in: f84e3085 user: drh tags: trunk)
14:57
First attempt at enhancing the "PRAGMA cache_spill" statement to accept a cache threashold size. (check-in: 549d42be user: drh tags: cache_spill=N)
2015-11-11
18:43
Fix missing word in a documentation comment. No changes to code. (check-in: ed24d302 user: mistachkin tags: trunk)
18:08
Add a hack to debug out a description of the WHERE clause of a SELECT (or other) statement. Use this in script tool/schemalint.tcl to automatically recommend indexes that might speed up specific queries. (check-in: c6fa01c2 user: dan tags: schemalint)
15:28
Improvements to the SQLITE_CONFIG_PAGECACHE documentation. Enhance the command-line shell to be able to take advantage of the full range of SQLITE_CONFIG_PAGECACHE capabilities, such as setting pMem==NULL and N<0. (check-in: 2518d5c9 user: drh tags: trunk)
2015-11-10
14:51
Improved output formatting for "PRAGMA parser_trace=ON;". (check-in: e43e1171 user: drh tags: trunk)
14:27
Make the output of "PRAGMA parser_trace" go to stdout instead of stderr. (check-in: 1e484991 user: drh tags: trunk)
13:45
Save a few bytes in the parser by using "int" instead of "u8" or "u16" for all small integer types. (check-in: 5dcd212b user: drh tags: trunk)
12:41
Change all parsers to use the standard "lempar.c" template in the tool/ folder and remove the customized lempar.c from src/, plus other compiler performance and space enhancements. (check-in: 0e7fb24a user: drh tags: trunk)
12:31
Fix harmless compiler warnings in FTS5. (Closed-Leaf check-in: 09752e51 user: drh tags: parser-enhancements)
03:30
Performance enhancement to the tokenizer. (check-in: 6ea2df86 user: drh tags: parser-enhancements)
00:02
Remove an unused non-terminal from the grammar. (check-in: 3c37c522 user: drh tags: parser-enhancements)
2015-11-09
19:35
Fix a comment typo in the lempar.c template that was missed by the prior check-in. (check-in: c4a7e93f user: drh tags: parser-enhancements)
19:33
Change the parser to use the standard "lempar.c" template over in the tool/ folder rather than the customized "lempar.c" found in src/. (check-in: 0a72991f user: drh tags: parser-enhancements)
15:06
Avoid recursion in the yy_find_shift_action() routine of the Lemon-generated parser, so that routine can be inlined, for a size reduction and performance increase. (check-in: 0557a179 user: drh tags: trunk)
14:11
Size reduction and performance improvement in the stack-popping logic of the Lemon-generated parser. (check-in: 9748c48a user: drh tags: trunk)
12:47
Fix incorrect WHERE clause in sqldiff, as reported on the mailing list by Youcef Hilem. (check-in: e0ed4c3e user: drh tags: trunk)
12:44
Check in the cg_anno.tcl and run-speed-test.sh scripts, as an historical record. (check-in: 836418d3 user: drh tags: trunk)
12:33
Avoid unnecessary function prologues in the sqlite3VdbeAddOp3() routine. (check-in: 7c6a19ba user: drh tags: trunk)
02:08
Small size reduction and performance increase in the parser. (check-in: d62cd757 user: drh tags: trunk)
2015-11-07
18:32
Enhance the sqldiff utility to deal gracefully with ALTER TABLE ADD COLUMN. (check-in: 7ea036ac user: drh tags: trunk)
18:07
Fix a bug in CTE handling discovered by LibFuzzer that can cause an infinite loop in the query planner. (check-in: 088009ef user: dan tags: trunk)
17:51
Add test cases for WITH clauses. (Closed-Leaf check-in: e7e65c75 user: dan tags: infinite-with-loop-bug)
17:48
Proposed fix for an infinite loop bug in the WITH clause semantic analysis logic. (check-in: 028475cb user: drh tags: infinite-with-loop-bug)
15:19
Enhance TreeView to show WITH clauses. Add an assert to detect the infinite loop behavior when certain kinds of errors occur on a nested WITH clause. (check-in: 2040d88e user: drh tags: infinite-with-loop-bug)
01:57
Merge recent enhancements and fixes from trunk. (check-in: 5429f99b user: drh tags: apple-osx)
01:33
Merge recent enhancements and bug fixes from trunk. (check-in: 78bc42e6 user: drh tags: sessions)
01:19
The OPFLAG_SEEKEQ optimization is only applicable to equality comparisons against an index, not against a rowid table. (check-in: 0f5b147d user: drh tags: trunk)
00:51
Fix a harmless sanitizer warning in the ieee754 extension. (check-in: dd9a26ec user: drh tags: trunk)
2015-11-06
20:22
Avoid an unnecessary key comparison when doing an indexed lookup against an equality constraint. (check-in: d741e1cc user: drh tags: trunk)
20:13
Work around a sign-extension bug in the optimizer on the HP C compiler that comes with HP/UX. (check-in: 46c36b15 user: drh tags: trunk)
20:04
Test changes: Omit numindex1.test from valgrind, since valgrind uses a none-standard floating-point processor which gives inconsistent answers. Run one releasetest.tcl module using LONGDOUBLE_TYPE=double. (check-in: d421efbf user: drh tags: trunk)
19:53
Enforce consistent comparison results between integer and floating point values. Fix for ticket [38a97a87a6e4e83]. (check-in: 849e686d user: drh tags: trunk)
17:59
Merge the fixes and tests for the ieee754 extension. (Closed-Leaf check-in: 7a9988d3 user: drh tags: int-float-precision)
17:28
A proposed patch for working around a bug in the optimizer for the HP compiler found on HP/UX Itanium. (Closed-Leaf check-in: 8a171548 user: drh tags: hp-optimizer-fix)
17:01
Test cases for the ieee754 extension. (check-in: 840cbda8 user: drh tags: trunk)
14:59
A different approach to handling integer/float comparisons. This seems to work better on systems where "long double" and "double" are the same type, but still needs refinement and testing. (check-in: a3f7614b user: drh tags: int-float-precision)
12:50
Have fts5 load its configuration from the xConnect() method is invoked. This ensures that the very first query run uses the correct value of the 'rank' option. (check-in: 33e6606f user: dan tags: trunk)
04:14
More test cases for indexes on large numeric values. (check-in: c220741a user: drh tags: int-float-precision)
03:37
Some simple test cases from the mailing list. (check-in: 1d642b73 user: drh tags: int-float-precision)
01:04
Increase the precision of integer vs. floating-point comparisons. Candidate fix for ticket [38a97a87a6e4e8]. (check-in: cfcaa0ff user: drh tags: int-float-precision)
2015-11-05
22:30
Improvements and simplifications to the equality seek logic. Tests are adjusted so that they all pass now. (Closed-Leaf check-in: 997ce6c9 user: drh tags: seekeq-experiment)
21:49
Fix typo in help information for an FTS5 script. (check-in: 777ae800 user: mistachkin tags: trunk)
20:25
The top of an index equality loop normally starts with OP_SeekGE and OP_IdxGT. This check-in adds a flag to OP_SeekGE such that it fails immediately if the key is not equal, then jumps over the OP_IdxGT, saving a call to the key comparison functions. Consider this check-in a proof-of-concept. It needs improvement before going on trunk. Some tests fail, but only because they new use fewer key comparisons than expected (which is a good thing!). (check-in: 32e31b9b user: drh tags: seekeq-experiment)
18:09
Add the 'hashsize' configuration option to fts5, for configuring the amount of memory allocated to the in-memory hash table while writing. (check-in: 44548009 user: dan tags: trunk)
11:47
Remove a #pragma used to work around an issues with MSVC 2012 that has been overcome but subsequent changes. (check-in: 8303e4cf user: drh tags: trunk)
03:26
Remove #pragma that was used to work around an obsolete issue with MSVC 2012. (Closed-Leaf check-in: b9b22fae user: mistachkin tags: reoptimizeArm)
2015-11-04
22:31
Performance improvements in the getAndInitPage() routine of btree.c. (check-in: 2aa50f6f user: drh tags: trunk)
20:22
Rename the sqlite3PagerAcquire() function to sqlite3PagerGet(). The former macro called sqlite3PagerGet() has been removed. (check-in: 708253be user: drh tags: trunk)
16:34
In releasetest.tcl, run larger test first if --jobs is greater than 1. Run smaller tests cases first if --jobs is 1. (check-in: 3fece5d0 user: drh tags: trunk)
13:03
Exclude cffault.test and symlink.test from the (incompatible) inmemory_journal permutation. (check-in: 4f16e968 user: drh tags: trunk)
2015-11-03
23:39
Increase the fuzzcheck timeout when running valgrind. (check-in: a5816877 user: drh tags: trunk)
19:13
In 'e_uri.test', make sure all created test database files get deleted. (check-in: 40c4f4a6 user: mistachkin tags: trunk)
15:39
In the releasetest.tcl script, add the --progress option to cause the start of each subprocess to be shown. Otherwise, revert to the old-style display. Improvements to the handling of the --buildonly option. (check-in: d969792f user: drh tags: trunk)
15:16
In the releasetest.tcl script, show the --jobs object on the command-line summary. Report the time of each "starting:" event. Do not show errors on a --dryrun. (check-in: b7510777 user: drh tags: trunk)
14:49
Update the releasetest.tcl script so that it can run multiple tests in parallel in separate processes. (check-in: e3de8291 user: drh tags: trunk)
06:23
Further enhancement and a bit of cleanup. (Closed-Leaf check-in: 0d8b5978 user: mistachkin tags: mp-releasetest)
02:47
Use the native name for the MSVC makefile as well. (check-in: e457c615 user: mistachkin tags: mp-releasetest)
2015-11-02
23:29
Attempt to centralize and simplify the MSVC handling. (check-in: 4ae96d6d user: mistachkin tags: mp-releasetest)
23:21
Fix the backcompat.test module so that it does not try to compare against itself on windows. (check-in: f625bce8 user: drh tags: mp-releasetest)
21:05
Get things working better on Windows with MSVC. (check-in: 22cc3e6c user: mistachkin tags: mp-releasetest)
20:52
Fix the --dryrun option on the releasetest.tcl script. (check-in: e565e026 user: dan tags: mp-releasetest)
20:28
Fix releasetest.tcl so that it does not choke if a test fails so badly that there is no log file. Add the --jobs switch to the usage message. (check-in: 20e96f52 user: dan tags: mp-releasetest)
20:24
Fix releasetest.tcl so that output lines are less than 80 characters wide. (check-in: aef177fe user: dan tags: mp-releasetest)
18:57
Merge all recent enhancements and fixes from trunk. (check-in: 0546d1cd user: drh tags: sessions)
18:32
Add the "--jobs N" option to the releasetest.tcl script to allow tests to be run in parallel by N processes. N defaults to 1. (check-in: 3d29f912 user: dan tags: mp-releasetest)
18:31
Version 3.9.2 (check-in: bda77dda user: drh tags: release, branch-3.9, version-3.9.2)
15:10
Merge latest trunk changes, including the follow-symlinks functionality and 3.9.2 bugfixes, into this branch. (check-in: 447521d7 user: dan tags: apple-osx)
15:08
On unix, if a file is opened via a symlink, create, read and write journal and wal files based on the name of the actual db file, not the symlink. (check-in: 6d5ce3ed user: dan tags: trunk)
11:19
When creating an automatic-index on a sub-query, add a unique integer to the end of each index key to ensure the entire key is unique. Fix for [8a2adec1]. (check-in: c0c4b6b3 user: drh tags: branch-3.9)
11:10
Aborted releaset of 3.9.2. (check-in: c33a275b user: drh tags: branch-3.9)
2015-11-01
21:42
Increase the version number to 3.9.2. (check-in: 14bd4fbf user: drh tags: branch-3.9)
21:35
If a table-constraint PRIMARY KEY lists a single column in single-quotes and that column has type INTEGER, then make that column an integer primary key, for historical compatibility. Fix for ticket [ac661962a2aeab3c331]. (check-in: dab0e607 user: drh tags: branch-3.9)
21:19
If a table-constraint PRIMARY KEY lists a single column in single-quotes and that column has type INTEGER, then make that column an integer primary key, for historical compatibility. Fix for ticket [ac661962a2aeab3c331]. (check-in: db319a03 user: drh tags: trunk)
2015-10-31
17:58
On unix, if a file is opened via a symlink, create, read and write journal and wal files based on the name of the actual db file, not the symlink. (Closed-Leaf check-in: c7c81050 user: dan tags: follow-symlinks)
2015-10-30
20:54
Add mutex operations to test code in test3.c to avoid triggering assert() failures in certain configurations. (check-in: 9f19420b user: dan tags: trunk)
17:17
Merge the sqlite3_db_cacheflush() enhancements and other changes from trunk. (check-in: f2cde4cf user: drh tags: begin-concurrent)
16:50
Merge all the latest enhancements from trunk. (check-in: 395a153f user: drh tags: sessions)
16:37
Merge the 3.10.0 version number update from trunk. (check-in: 980d6207 user: drh tags: apple-osx)
16:36
Increase the version number to 3.10.0, due to the addition of the sqlite3_db_cacheflush() interface. (check-in: 7565b046 user: drh tags: trunk)
16:23
Merge latest trunk changes, including sqlite3_db_cacheflush(), with this branch. (check-in: 6e4306ef user: dan tags: apple-osx)
16:14
Add new API function sqlite3_db_cacheflush(). (check-in: ad80d307 user: dan tags: trunk)
14:28
Return immediately if sqlite3PagerWrite() is called when the pager is in PAGER_ERROR state. (Closed-Leaf check-in: a6695b00 user: dan tags: cacheflush)
14:25
Add the --enable-editline option to various autoconf scripts. (check-in: 866f0277 user: drh tags: trunk)
09:13
Test that calling sqlite3_db_cacheflush() does not interfere with savepoints. (check-in: 0e09e4a2 user: dan tags: cacheflush)
2015-10-29
21:11
Do not attempt to flush the pages of an in-memory database to disk if sqlite3_db_cacheflush() is called. (check-in: 9b79a390 user: dan tags: cacheflush)
20:57
Add a test case that calls sqlite3_db_cacheflush() on an in-memory database. (check-in: f0cdfb54 user: dan tags: cacheflush)
18:16
Avoid automatically rolling back the transaction if an SQLITE_IOERR or SQLITE_FULL error occurs within sqlite3_db_cacheflush(). (check-in: 370b5d52 user: dan tags: cacheflush)
14:29
The optimization on this branch is logically incorrect. It changes the return value of "SELECT 0 OR 'xyzzy'" FROM 0 to 'xyzzy'. (Closed-Leaf check-in: a0c08d26 user: drh tags: simplify-or-clause)
13:48
Fix uses of ctype functions (ex: isspace()) on signed characters in test programs and in some obscure extensions. No changes to the core. (check-in: 34eb6911 user: drh tags: trunk)
12:27
Apply optimizations to simplify OR clauses that contain constant terms. (check-in: d533e23f user: drh tags: simplify-or-clause)
01:11
Enhance comments in the MSVC batch build tool. (check-in: 2964ce25 user: mistachkin tags: trunk)
2015-10-28
20:01
Make the internal sqlite3PExpr() interface responsive to the TKFLG_DONTFOLD flag on the operator parameter. (check-in: b10ab59f user: drh tags: trunk)
19:46
Add experimental API sqlite3_db_cacheflush(). (check-in: 65b86dc1 user: dan tags: cacheflush)
16:05
Factor out adding NOT expression nodes in the parser into a subroutine. (check-in: 00185418 user: drh tags: trunk)
2015-10-27
20:04
Have contentless and external content fts5 tables ignore "OR REPLACE" conflict handling. (check-in: a85c2a47 user: dan tags: trunk)
17:48
Fix problems with prefix queries in fts5. (check-in: 3b5758c6 user: dan tags: trunk)
13:35
Provide hints to the storage engine using the sqlite3BtreeCursorHint() interface when compiling with SQLITE_ENABLE_CURSOR_HINTS. (check-in: 45d3539e user: drh tags: trunk)
13:24
Split out sqlite3BtreeCursorHintFlags() from sqlite3BtreeCursorHint() the interface for improved performance. (Closed-Leaf check-in: b3ec9a0d user: drh tags: cursor-hints)
2015-10-26
20:50
Merge latest trunk changes, including the SQLITE_IOERR_AUTH error code, with this branch. (check-in: bc195e1c user: dan tags: apple-osx)
20:39
Add new extended error code SQLITE_IOERR_AUTH. (check-in: b4e70dd0 user: dan tags: trunk)
20:11
Merge the BTREE_FORDELETE enhancement with this branch. (check-in: 20da0849 user: dan tags: cursor-hints)
18:51
Merge in all trunk changes prior to the BTREE_FORDELETE enhancement. (check-in: 53d5a4ad user: drh tags: cursor-hints)
18:01
Capture BTREE_FORDELETE test cases that were mistakenly omitted from the previous merge. (check-in: de697251 user: drh tags: trunk)
17:50
Provide the BTREE_FORDELETE flag to sqlite3BtreeCursor() if the cursor will be used only for deletions and seeking. (check-in: 871b1c78 user: drh tags: trunk)
16:34
Fix an uninitialized variable problem in the test code added by the previous commit. (Closed-Leaf check-in: 7849662e user: dan tags: btree-fordelete-flag)
16:31
Test that the binary record "0x01 0x00" is interpreted by OP_Column as a vector of NULL (or default) values. (check-in: 5bdc3c82 user: dan tags: btree-fordelete-flag)
14:54
Fix a C99-ism and a harmless compiler warning. (check-in: 138783b5 user: drh tags: trunk)
14:41
When compiling with SQLITE_HAS_CODEC, honor the hexkey= query parameter on URI pathnames in sqlite3_open_v2(). (check-in: e0ce3fc0 user: drh tags: trunk)
12:55
Remove an unreachable branch in malloc.c. (check-in: a36b7fe9 user: drh tags: trunk)
2015-10-24
20:31
When creating an automatic-index on a sub-query, add a unique integer to the end of each index key to ensure the entire key is unique. Fix for [8a2adec1]. (check-in: bfea226d user: dan tags: trunk)
2015-10-23
11:50
Remove an unused #define from whereInt.h. Add comments describing the new sqlite3BtreeCursor() flags. (check-in: 4c0ba8be user: dan tags: btree-fordelete-flag)
2015-10-22
20:54
Modifications to pass a flag to internal routine sqlite3BtreeCursor() when a cursor that is used solely for deleting b-tree entries, or for obtaining the components of keys to delete from other b-trees, is opened. (check-in: cdc92919 user: dan tags: btree-fordelete-flag)
18:06
Alternate compiler warning fix for sqlite3StatusHighwater. (check-in: 4315d202 user: mistachkin tags: trunk)
2015-10-21
22:08
Fix harmless compiler warnings in FTS5. (check-in: aa4e01ea user: mistachkin tags: trunk)
22:07
Fix compilation of 'testfixture' with MSVC when the FTS5 and JSON1 extensions are enabled. (check-in: e31aa97a user: mistachkin tags: trunk)
20:56
Remove some branches made unreachable by recent changes from fts5. (check-in: ae350bfb user: dan tags: trunk)
20:07
Minor optimization for fts5 queries. (check-in: 363b36d5 user: dan tags: trunk)
08:26
Add extra debugging function to test_rbu.c. Enhance the documentation for sqlite3rbu_db() to define the validity of the returned database handles. (check-in: b9c4aa52 user: dan tags: trunk)
2015-10-20
23:40
Fix compiler warnings. (Closed-Leaf check-in: 12e869bb user: mistachkin tags: noWarn)
23:27
Fix harmless compiler warnings in FTS5. (check-in: 0a903ec2 user: mistachkin tags: trunk)
21:05
More optimizations for fts5 prefix queries. (check-in: b8fb263e user: dan tags: trunk)
19:55
Fix #line directives added to generated file fts5.c. (check-in: 1f5f5804 user: dan tags: trunk)
15:49
Initialize variables in the fts5 integrity-check code to avoid compiler warnings. (check-in: e979e2cc user: dan tags: trunk)
2015-10-19
20:49
Another optimization for fts5 prefix (and other) queries. (check-in: 60a8bde0 user: dan tags: trunk)
17:43
Another tweak to improve performance of fts5 prefix queries. (check-in: 69be427c user: dan tags: trunk)
15:59
Fix a problem in the fts5txt2db.tcl script causing it to fail when creating tables with more than 8 columns. (check-in: 68ee426a user: dan tags: trunk)
2015-10-17
20:34
Add tests to cover new branches added to the fts5 code by the previous commit. (check-in: cf618334 user: dan tags: trunk)
19:49
Handle equality and range constraints on the "term" column of fts5vocab tables. Also have the same module report columns using names instead of indexes. (check-in: 6020d96a user: dan tags: trunk)
01:00
Change the code generator for UPDATE to generate code in an order that might run more efficiently in many cases. (Leaf check-in: c6239bf9 user: drh tags: improved-update)
2015-10-16
23:55
Fix a comment in expr.c and add a CORRUPT_DB to an assert() in btree.c. (check-in: 0df371d1 user: drh tags: trunk)
20:55
Merge the 3.9.1 updates from trunk. (check-in: bf866e6c user: drh tags: begin-concurrent)
20:53
Merge recent enhancements from trunk. Version now 3.9.1. (check-in: 26fa091d user: drh tags: cursor-hints)
20:52
Merge the 3.9.1 changes. (check-in: dd07688d user: drh tags: apple-osx)
20:20
Merge the version 3.9.1 updates. (check-in: 2bbb9595 user: drh tags: sessions)
20:13
Enhancements to the MSVC makefile. (check-in: 39e8a5d9 user: mistachkin tags: trunk)
20:12
Merge the 3.9.1 changes into trunk. (This only updates the version number and configure script since all the other changes in 3.9.1 were cherrypicked from trunk.) (check-in: eb231742 user: drh tags: trunk)
17:31
Version 3.9.1 (check-in: 767c1727 user: drh tags: release, branch-3.9, version-3.9.1)
15:56
Cherrypick the json form-feed fix, and other #ifdef and build script changes to address minor issues that came to light after the 3.9.0 release. Update the version number to 3.9.1. No logic changes except for the form-feed bug-fix in json1 (ticket [57eec374ae1d0a1d4a]). (check-in: 746fcd2f user: drh tags: branch-3.9)
15:42
Fix the fuzzershell utility program so that it compiles with the amalgamation that includes JSON1 support. (check-in: d6fc616e user: drh tags: trunk)
15:35
Fix the JSON1 extension so that it does not depend on isdigit() and strtod() from the standard library when compiled into SQLite as part of the amalgamation. (check-in: bc9a9a60 user: drh tags: trunk)
15:16
Form-feed is not valid whitespace for json. Fix for ticket [57eec374ae1d0a1d] (check-in: 28957d63 user: drh tags: trunk)
14:54
Have the sqlite3VdbeSerialType() function go ahead and compute the serial length as well, since it is always needed. This avoids unnecessary calls to sqlite3VdbeSerialTypeLen(). (check-in: 2ad72be1 user: drh tags: trunk)
14:23
Use a lookup table to compute the content length for serial types less than 128, for a 1.2% performance improvement. (check-in: 33957248 user: drh tags: trunk)
13:50
Simplify the OP_Column logic slightly. One very small performance improvement added. (check-in: 0114b45d user: drh tags: trunk)
12:53
OP_Column optimization: Do not check for an oversize row header unless the row header size is larger than the content available on the local page. (check-in: 8125b74c user: drh tags: trunk)
12:39
Improved header comment on the tool/vdbe_profile.tcl script. No changes to code. (check-in: b17ad8fc user: drh tags: trunk)
03:34
Whenever two or more OP_Column opcodes on the same cursor occur in succession, try to reordering them so that the one that extracts the right-most column is first, so that it will warm up the row cache for all those that follow. This gives a small performance boost. (Leaf check-in: 08e8f04d user: drh tags: reorder-column-opcodes)
2015-10-15
21:30
Performance optimization for the OP_Column opcode. (check-in: 076be547 user: drh tags: trunk)
21:13
Merge updates from trunk. (Leaf check-in: 40493680 user: mistachkin tags: mutexInitIsInitReCheck)
21:12
Merge updates from trunk. (Leaf check-in: a447cf90 user: mistachkin tags: mutexInitSimpleCmpSwap)
20:17
Experiments with an OP_Unpack opcode that extracts multiple columns from a record without caching. (Leaf check-in: 39ae92f5 user: drh tags: unpack-opcode)
19:21
Enhance the use of the column cache for UPDATE statements, making them more efficient for the case where a column is modified to be an expression of other unmodified columns. (check-in: 871e091d user: drh tags: trunk)
18:04
Add the OP_IntCopy opcode - an optimized version of OP_SCopy that only works for integer values. (check-in: 3a2f73a4 user: drh tags: trunk)
17:31
Optimization to the out2Prerelease() helper routine in the VDBE engine. (check-in: 79298fe8 user: drh tags: trunk)
17:21
Remove a superfluous conditional from the memory allocation initialization. (check-in: 9ccf8f8d user: drh tags: trunk)
16:20
Performance optimizations to the sqlite3MallocSize() by requiring the argument to always be non-NULL. (check-in: cb65989b user: drh tags: trunk)
15:28
Change sqlite3StatusSet() into sqlite3StatusHighwater() so that only the highwater mark is recorded. This gives a small size reduction and performance improvement. (check-in: 6422d223 user: drh tags: trunk)
12:06
Make sure sqlite.h is not #included by itself. (check-in: a61880c2 user: drh tags: trunk)
07:44
Merge in the 3.9.0 changes from trunk. (check-in: 5c3a2a6e user: drh tags: begin-concurrent)
2015-10-14
23:04
In the MSVC makefile, add LIBTCLPATH variable to make it easier to run tests when the Tcl library is not already present in the PATH. (check-in: 54127602 user: mistachkin tags: trunk)
22:46
In the MSVC makefile, make sure LDFLAGS is used for the tool executables as well. (check-in: 0a17ee49 user: mistachkin tags: trunk)
21:08
Tests and minor fixes to improve coverage of FTS5 code. (check-in: f4de6d45 user: dan tags: trunk)
20:34
Fix harmless compiler warnings. (check-in: 1c46c194 user: mistachkin tags: trunk)
20:09
Merge in all the 3.9.0 updates from trunk. (check-in: 29444149 user: drh tags: cursor-hints)
20:03
Update makefiles to remove all uses of "awk" - to make building SQLite easier on Windows systems. The only requirements now are tclsh, a C compiler, and common file utilities. (check-in: 4bd0d43d user: drh tags: trunk)
20:01
Enable cross-compiling the various tool EXEs with MSVC. (check-in: 7d772333 user: mistachkin tags: trunk)
19:52
Fixes to the JSON1 extension and its use by fuzzcheck to avoid problems when building DLLs. (check-in: 01d3ee7b user: drh tags: trunk)
19:44
Fix fuzzcheck.c so that it assumes that JSON1 is already compiled in and does not need to be initialized further. (Closed-Leaf check-in: ec003958 user: drh tags: dll-build-fix)
18:45
Avoid exporting sqlite3_json_init() from amalgamation builds. (check-in: 8463f7e7 user: dan tags: dll-build-fix)
12:29
Version 3.9.0 (check-in: a721fc0d user: drh tags: trunk, release, version-3.9.0)
10:56
Add the missing 'extern "C" {...}' blocks to fts5.h and sqlite3rbu.h. (check-in: 47a2ce97 user: dan tags: trunk)
2015-10-13
20:42
Merge in the final few changes before the 3.9.0 release. (check-in: e1afdbb5 user: drh tags: sessions)
17:49
Merge 3.9.0 prerelease changes into the apple-osx branch. (check-in: 1900ce01 user: drh tags: apple-osx)
2015-10-12
22:31
Remove the unused fts5ExprColsetTest() routine. (check-in: 9ecafc0c user: drh tags: trunk)
22:20
Fix a couple harmless compiler warnings. (check-in: 7f896a97 user: mistachkin tags: trunk)
19:12
Further tweaks to improve fts5 prefix query performance. (check-in: 1c20c1c2 user: dan tags: trunk)
04:56
Change all references to 3.8.12 into 3.9.0. Comment changes only - no changes to code. (check-in: 6f2858f6 user: drh tags: trunk)
03:56
Remove AWK requirement from the MSVC batch build tool. (Closed-Leaf check-in: 6d9cdb93 user: mistachkin tags: omit-awk)
03:44
The TclKit batch tool should not download the TclKit SDK when the TCLKIT_NOSDK environment variable is set. (check-in: 7c5d583b user: mistachkin tags: omit-awk)
2015-10-11
20:39
Detect and report circularly defined views even if the views have the columns defined in the CREATE VIEW statement. (check-in: 9ab9c8c6 user: drh tags: trunk)
20:08
Remove an unreachable branch in the query flattener substitution logic. (check-in: 46ee3453 user: drh tags: trunk)
19:46
Improved substitution logic in the query flattener. Saves code space, and (more importantly) works correctly with table-valued functions. (check-in: 3d0bd95e user: drh tags: trunk)
2015-10-10
23:39
Enhance TclKit batch tool (and MSVC makefile) to support targets that require the Tcl stub library. (check-in: bc6223b1 user: mistachkin tags: omit-awk)
20:35
Pull in the latest 3.9.0 tweaks from trunk. (check-in: ed174ccf user: drh tags: sessions)
16:41
Work around a "security feature" bug in memcpy() on OpenBSD. (check-in: fab6f090 user: drh tags: trunk)
15:57
Remove another instance of strcpy() from FTS5, to mollify OpenBSD. (check-in: 35e6248a user: drh tags: trunk)
15:11
Omit the use of strcpy() in FTS5 since OpenBSD hates strcpy(). (check-in: bc24a5bb user: drh tags: trunk)
14:41
Compiler warning fixes: Rename some local variables from "j1" to avoid a name collision with the j1() bessel function in the math library. Omit a dummy initializer that gcc 4.6.3 does not like. (check-in: 9ddef84d user: drh tags: trunk)
14:00
Add some #ifdef-ery to json1.c to avoid a duplicate typedef when used in the amalgamation, since some compilers become upset over duplicate typedefs. (check-in: de28acd4 user: drh tags: trunk)
02:06
Remove a couple superfluous double quotes in the MSVC makefile. (check-in: 0f9e205b user: mistachkin tags: omit-awk)
01:55
Fix typo in the MSVC makefile. Replace remaining uses of AWK in the MSVC makefile with a Tcl script. (check-in: f8c2193b user: mistachkin tags: omit-awk)
00:53
More fine-tuning to the new TclKit tools. (check-in: 43addd8a user: mistachkin tags: omit-awk)
2015-10-09
20:40
The previous fix to JSON1 was not complete. A few more tweaks are needed for correct handling of all oversized integers. (check-in: 4a47f017 user: drh tags: trunk)
18:48
Tweak batch tool added in the previous check-in to permit the base URI to be overridden. (check-in: 1d2f82df user: mistachkin tags: omit-awk)
18:21
Fix the JSON1 extension so that it renders integers outside the range of -9223372036854775808 to +9223372036854775807 as floating-point numbers. (check-in: ae736e35 user: drh tags: trunk)
17:54
Remove fts5 sources from TESTSRC2 in main.mk as there is no SQLITE_TEST code in said files. (check-in: c1840639 user: dan tags: trunk)
17:36
Add tool capable of downloading a TclKit (and its associated SDK) on Windows. (check-in: 50673dda user: mistachkin tags: omit-awk)
17:28
Merge all changes through the first 3.9.0 beta from trunk. (check-in: 1ccae39b user: drh tags: apple-osx)
15:29
Merge the version 3.9.0 changes and the incorporation of JSON1 and FTS5 into the amalgamation from trunk. (check-in: c1d96fb6 user: drh tags: sessions)
14:37
Add --enable-fts5 and --enable-json1 options to the amalgamation autoconf package. (check-in: 8a4e1988 user: dan tags: trunk)
14:23
In the MSVC makefile, adjust the names of two nmake variables for consistency. (check-in: 92aa4b6b user: mistachkin tags: trunk)
13:42
Change the version number of the next release to 3.9.0. (check-in: aa8fdadf user: drh tags: trunk)
13:39
Add the JSON1 and FTS5 extensions to the amalgamation. Add new options to ./configure: --enable-json1 and --enable-fts5. (check-in: 1eb76993 user: drh tags: trunk)
13:29
Fix a typo in the MSVC Makefile (Closed-Leaf check-in: c8a12082 user: drh tags: amalg-json1-fts5)
12:48
Add configure script options --enable-fts5 and --enable-json1. Automatically search for -lm when using --enable-fts5. (check-in: a0c44f1d user: drh tags: amalg-json1-fts5)
11:09
Makefile and fts5 changes so that fts5 works with main.mk. Still does not work with Makefile.in. (check-in: 6ebac32d user: dan tags: amalg-json1-fts5)
01:42
Trying to get FTS5 tests to build and run using main.mk. Not yet working. (check-in: 206174f9 user: drh tags: amalg-json1-fts5)
2015-10-08
23:37
Json1 tests are working. Builds without FTS5 enabled. Still some problems building with FTS5. (check-in: 2928f8e8 user: drh tags: amalg-json1-fts5)
21:02
Remove calls to "load_static_extension" from fts5 test scripts. (check-in: 53dd7c4c user: dan tags: amalg-json1-fts5)
21:00
Further tweaks to main.mk so that fts5 builds as part of testfixture. (check-in: 97e11b79 user: dan tags: amalg-json1-fts5)
20:40
Fix further fts5 compilation issues. (check-in: 0d7f301f user: dan tags: amalg-json1-fts5)
20:28
Fix two more warnings in fts5 code. (check-in: 5343e601 user: dan tags: amalg-json1-fts5)
20:11
Fix a couple of errors in fts5 compilation. This branch still does not build with -Wall -Werror. (check-in: e9e76e12 user: dan tags: amalg-json1-fts5)
19:29
First attempt to add json1 and fts5 to the amalgamation. This check-in does not compile. (check-in: d820a1bd user: drh tags: amalg-json1-fts5)
17:35
In the RBU extension, use MoveFile() instead of rename() on Windows CE. (check-in: df9ef61f user: mistachkin tags: trunk)
14:55
Merge the 3.8.12 beta changes from trunk. (check-in: 35b1b8d4 user: drh tags: sessions)
02:44
Remove two unused lines of code - discovered by scan-build. (check-in: 77b707b7 user: drh tags: trunk)
2015-10-07
19:06
Further optimizations for fts5 prefix queries without a prefix index. (check-in: 83dc1ff7 user: dan tags: trunk)
17:06
Fix harmless compiler warning in FTS5. (check-in: 13adcd03 user: mistachkin tags: trunk)
17:01
Allow the subsitute character (codepoint 26 - 0x1A) to appear in fts5 barewords. (check-in: baec1b96 user: dan tags: trunk)
16:14
Adjustments to spellfix2.test so that it works reliably on mac. (check-in: d591e860 user: drh tags: trunk)
13:24
Add tests for fts5 phrase queries with column filters. (check-in: f20f9f81 user: dan tags: trunk)
12:36
Convert the tool/tostr.awk script into tool/tostr.tcl. Remove two obsolete Makefiles. Purge NAWK from the configure script and from unix makefiles. There are still two uses of NAWK in Makefile.msc. (check-in: 5b677521 user: drh tags: omit-awk)
12:21
Change the addopcodes.awk script into tool/addopcodes.tcl. (check-in: 8bbf3714 user: drh tags: omit-awk)
12:11
Convert the mkopcodec.awk script into tool/mkopcodec.tcl. (check-in: 1506cb33 user: drh tags: omit-awk)
09:02
Add further tests for fts5 prefix queries. (check-in: accdc98b user: dan tags: trunk)
04:20
Fix a typo in the previous check-in. (check-in: 80027709 user: mistachkin tags: trunk)
03:07
When running tests on Tcl 8.6 under Windows, skip tests 'uri-1.12.*' due to a change in Tcl behavior related to NTFS ADS (alternate data streams). (check-in: 8a0a2aa5 user: mistachkin tags: trunk)
02:52
Change mkopcodeh.awk into tool/mkopcodeh.tcl. (check-in: ed0ebc46 user: drh tags: omit-awk)
00:35
Remove three obsolete and unused files from tool/ (check-in: 0abd6529 user: drh tags: trunk)
2015-10-06
21:49
Fix typo in comments. No changes to code. (check-in: a05f903c user: mistachkin tags: trunk)
21:07
Simplifications to the VDBE bytecode that handles LIMIT and OFFSET. (check-in: 041df7c2 user: drh tags: trunk)
20:53
Optimizations for fts5 expressions that filter on column. More still to come. (check-in: bf1607ac user: dan tags: trunk)
17:27
Fix the LIMIT and OFFSET handling for UNION ALL queries that contain a subquery with ORDER BY on the right-hand side. Fix for ticket [b65cb2c8d91f668584]. (check-in: 4b631364 user: drh tags: trunk)
01:44
Adjustments to sqlite3MemoryBarrier() when compiling with MSVC and/or WinCE. (check-in: 3168326e user: mistachkin tags: trunk)
2015-10-05
19:41
Improve performance of prefix queries without a prefix index on fts5 tables. (check-in: f2f0184e user: dan tags: trunk)
15:39
Update fts3 so that expressions to the left and right of a NOT operator are balanced. This prevents relatively small expressions (a dozen terms or so) that are children of NOT operators from triggering the "expression tree is too large" error. (check-in: d6b66cd7 user: dan tags: trunk)
11:57
Add fts5txt2db.tcl, a tool for creating sample fts4/5 databases from text files. (check-in: 44f1ce30 user: dan tags: trunk)
2015-10-03
15:38
Update fts5 to support the table function syntax. "... FROM fts5_tbl WHERE fts5_tbl MATCH ?1 AND rank MATCH ?1" can now be written "FROM fts5_tbl(?1, ?2)". (check-in: 41d17d9e user: dan tags: trunk)
12:23
Add tests for the rtree module to verify that attempts to insert non-integer primary key values or non-numeric dimensions into an rtree table are handled correctly. (check-in: f653fce9 user: dan tags: trunk)
2015-10-02
20:04
Update fts5 to avoid using a statement journal for UPDATE and DELETE operations that affect at most a single row. (check-in: 5c83b9db user: dan tags: trunk)
2015-10-01
18:31
Fix an fts3 bug causing NEAR queries on uncommitted data to malfunction. (check-in: 6f90839e user: dan tags: trunk)
16:35
Changes to the sesssions module ensure that tables appear within changesets and patchsets in the same order that they were attached to the sessions object. (check-in: 76958902 user: dan tags: sessions)
2015-09-30
14:50
Merge recent enhancements from trunk, and especially the fix for ticket [1b266395d6bc10]. (check-in: b2face9a user: drh tags: sessions)
14:30
Add a corrupt database to test/fuzzdata3.db to validate the previous check-in. (check-in: e796c0ef user: drh tags: trunk)
14:19
Fix an assert() in btree.c that is only true for non-corrupt databases. (check-in: 29f7227f user: drh tags: trunk)
12:59
Clear the BTCF_ValidNKey flag when putting a cursor into REQUIRESEEK state. Fix for [1b266395]. (check-in: a6d5e4e8 user: dan tags: trunk)
11:19
Improve error handling in shell command ".tables". (check-in: 31a91ee7 user: dan tags: trunk)
2015-09-29
17:51
This condition was not always true after all.....

Change an always-true condition in the virtual table transaction interface into an assert(). (Closed-Leaf check-in: 3e15dea5 user: drh tags: mistake)

17:20
Use symbolic names XN_ROWID and XN_EXPR in place of the (-1) and (-2) magic numbers in Index.aiColumn[]. Add asserts to help verify that Index.aiColumn[] is always used correctly. Fix one place in FK processing where Index.aiColumn[] was not being used correctly. (check-in: 7d272aa6 user: drh tags: trunk)
16:47
Add the sqlite3_index_info.idxFlags field, allowing xBestIndex() implementations to specify to SQLite that a strategy may visit at most one row. Add support for this to fts3/4. Omit the statement journal from virtual table UPDATE and DELETE operations that are guaranteed not to affect more than one row. (check-in: a1d08fd3 user: dan tags: trunk)
16:41
Ensure that the xSavepoint() virtual table method is correctly invoked if there are already open savepoints (or statement transactions) the first time a virtual table is written within a transaction. (check-in: 77948b5e user: dan tags: trunk)
15:50
Remove dead code, replacing with assert() statements that make sure the code really was dead. (Closed-Leaf check-in: 0e317dda user: drh tags: vtab-onepass)
13:25
Create the sqlite3IsToplevel(Parse*) interface to check to see if a top-level VDBE is being coded (versus a trigger) and use that interface. (check-in: 59662cd2 user: drh tags: vtab-onepass)
12:32
Fix compiler warnings. (check-in: d1a07838 user: drh tags: vtab-onepass)
12:19
Fix an off-by-one error in test function fts5_decode(). (check-in: 3a9f0762 user: dan tags: trunk)
11:59
Merge latest trunk change into this branch. (check-in: b519c0d6 user: dan tags: vtab-onepass)
11:57
Change the name of the new sqlite3_index_info.flags field to "idxFlags". Add documentation for the same to sqlite.h.in. (check-in: f61203bc user: dan tags: vtab-onepass)
10:11
Add tests for fts3 and onepass update/delete operations. Also fix a problem with onepass updates that do not affect any rows. (check-in: 820c8044 user: dan tags: vtab-onepass)
2015-09-28
23:45
Avoid unnecessary cursors and seeking when running a DELETE against a WITHOUT ROWID table. (Leaf check-in: 70ec88b2 user: drh tags: delete-without-rowid-opt)
20:03
Also allow UPDATE on virtual tables to use the onepass strategy. (check-in: 1aa27d70 user: dan tags: vtab-onepass)
17:05
Extra information provided by .wheretrace on input flags to the query planner and on the result of sqlite3WhereOkOnePass(). (check-in: c5566bb3 user: drh tags: trunk)
15:23
Update fts3 to use the onepass strategy for delete operations. (check-in: fffab4f7 user: dan tags: vtab-onepass)
15:20
Changes to allow DELETE operations on virtual tables to use the onepass strategy under some circumstances. (check-in: e73f919f user: dan tags: vtab-onepass)
15:08
Add test cases to the ONEPASS optimization corruption problem fixed by the previous check-in. (check-in: 5c14d447 user: drh tags: trunk)
14:40
Fix a database corruption bug caused by the ONEPASS optimization added in check-in [8b93cc5937000535]. Bug detected (prior to release) by sqllogictest. Test cases to follow. (check-in: 9d057f52 user: drh tags: trunk)
2015-09-26
17:44
Enable adding JSON1 by appending the json1.c source file to the amalgamation and compiling with -DSQLITE_ENABLE_JSON1 (check-in: 33404b20 user: drh tags: trunk)
11:15
Fix a memory leak that can occur following a syntax error in CREATE VIEW. (check-in: f4704035 user: drh tags: trunk)
03:31
Fix the title of the documentation on sqlite3_value_subtype(). This is a comment change only. (check-in: b7902354 user: drh tags: trunk)
03:23
Expand the header comment to clarify the purpose for the sqlite3MemoryBarrier() function. (check-in: b89495ae user: drh tags: trunk)
01:28
Remove an assert in the windows worker-thread logic that can fail in a race condition. (check-in: d7bfb960 user: drh tags: trunk)
2015-09-25
23:40
Fix threads.c so that setting sqlite3FaultSim(200) using the SQLITE_TESTCTRL_FAULT_INSTALL callback causes both unix and windows worker threads to be sequential and deterministic, so that they can be tested reliably. (check-in: 2d867c05 user: drh tags: trunk)
20:49
Fix PRAGMA integrity_check so that it works with a UNIQUE index over expressions. (check-in: 113181ce user: drh tags: trunk)
20:18
Fix a faulty assert() on the benign-malloc controller callback in test_malloc.c. (Leaf check-in: 64f2cb8d user: drh tags: malloc-testing)
16:29
Disable the SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS mechanism and replace it with SQLITE_TESTCTRL_BENIGN_MALLOC_CTRL, which gives better control. (check-in: 2c57b2f3 user: drh tags: malloc-testing)
13:42
Report an error if the number of named columns in a VIEW is different from the number of result columns in the SELECT statement that implements the VIEW. (check-in: 6e4ac0be user: drh tags: trunk)
01:09
Fix a problem computing affinities for indexes during skip-scan code generation when SQLITE_ENABLE_STAT4 is on. Bug introduced by check-in [1ee089a72d789002]. (check-in: 1350dd42 user: drh tags: trunk)
2015-09-24
18:47
Enhance the query planner so that it is able to use indexed expressions to help fulfill an ORDER BY clause. (check-in: 668fc1eb user: drh tags: trunk)
17:38
Fix over-length source code lines in where.c. No logic changes. (check-in: 1c8c5380 user: drh tags: trunk)
15:17
Merge all recent trunk enhancements and fixes into the begin-concurrent branch. (check-in: c63c1e15 user: drh tags: begin-concurrent)
15:06
Merge trunk changes into the cursor-hints branch. (check-in: fbe63762 user: drh tags: cursor-hints)
14:43
Merge recent trunk enhancements into the apple-osx branch. (check-in: 4dd06d8b user: drh tags: apple-osx)
14:26
Merge all the latest trunk enhancements into the sessions branch. (check-in: c91065f8 user: drh tags: sessions)
12:40
Strengthen the implementations of xShmMemoryBarrier on both the unix and windows VFSes, so that they likely work even if SQLITE_THREADSAFE=0 is used. (check-in: c6ab807b user: drh tags: trunk)
12:19
Make sure joins work correctly when both sides of the join are connected using indexed expressions. (check-in: c2fcb032 user: drh tags: trunk)
11:26
Correctly handle the case of a WHERE-clause term with indexed expressions on both sides of the == sign. (check-in: d9b716a6 user: drh tags: trunk)
11:06
Fix a JSON1 test case so that it works on builds that omit virtual tables. (check-in: a4444c0f user: drh tags: trunk)
01:40
Another (smaller) performance optimization for the JSON parser. (check-in: c43daa8c user: drh tags: trunk)
01:06
Performance optimizations on the JSON parser. (check-in: 7dd4b07a user: drh tags: trunk)
2015-09-23
19:17
Take care that the number of reserved bits per page is consistent between the source and destination databases when doing the back-copy on a VACUUM. (check-in: 5b61b72f user: drh tags: trunk)
16:35
Merge updates from trunk. (check-in: 0a75ebd2 user: mistachkin tags: mutexInitIsInitReCheck)
16:33
Correct superfluous whitespace difference. No functional changes. (check-in: 8d69983d user: mistachkin tags: mutexInitSimpleCmpSwap)
16:24
Simplify thread-safety of mutex initialization. (check-in: da0587c5 user: mistachkin tags: mutexInitSimpleCmpSwap)
15:54
Merge updates from trunk. (Closed-Leaf check-in: 6b85f8cd user: mistachkin tags: mutexInitCmpSwap)
11:59
Capture AFL-generated fuzz tests for json1.c into the test/fuzzdata4.db file. (check-in: 10a214fd user: drh tags: trunk)
01:10
Do not allow a comma at the end of a JSON array or object. (check-in: 7c7a3f3e user: drh tags: trunk)
2015-09-22
18:51
Add the --export-sql and --export-db options to the fuzzcheck utility program. (check-in: 760af445 user: drh tags: trunk)
17:46
Fix a typo in the --help screen of the fuzzcheck utility. (check-in: b6ae61fe user: drh tags: trunk)
01:15
Futher simplifications to json1.c. Also an obscure bug-fix in the initial output of json_tree() when using a path to an object contained within an array. (check-in: fcb1e327 user: drh tags: trunk)
00:21
Fix json_set() so that it can overwrite a value that was previously overwritten during the same call. (check-in: 0f160416 user: drh tags: trunk)
2015-09-21
23:53
For MSVC, have the 'sqlite3.c' target depend on 'sqlite3ext.h' as well as other targets may depend on this behavior (e.g. extensions). (check-in: 737ac3fa user: mistachkin tags: trunk)
23:49
Fix compilation under older versions of MSVC. (check-in: 17150ada user: mistachkin tags: trunk)
22:53
Simplifications to the json1.c logic. (check-in: 1646a2bd user: drh tags: trunk)
2015-09-20
22:57
Fix an overly-strict assert() in the btree logic. (check-in: 825ce320 user: drh tags: trunk)
2015-09-19
20:27
Do not allow table-valued function syntax to be used on a view. (check-in: 97cfe346 user: drh tags: trunk)
19:36
Add the --disable-lookaside option to the fuzzershell utility program. (check-in: 0b043744 user: drh tags: trunk)
18:54
Fix a memory leak in json1.c that could occur after misuse of json_object(). (check-in: 394b81b1 user: drh tags: trunk)
18:11
Add an assert() statement to delete.c. (check-in: 40fce67e user: dan tags: trunk)
18:08
Fix compiler warnings. (check-in: 5c31ee62 user: drh tags: trunk)
16:51
Add json1.c to the fuzzer test shells. (check-in: 809d67b6 user: drh tags: trunk)
16:45
Adjust Makefiles to use SQLITE_CORE when statically linking json1.c into test shells. (Closed-Leaf check-in: 91682ac3 user: drh tags: json-fuzz)
14:57
Adjust fuzzershell so that it adds the json1 extension separately for each no connection. (check-in: ca2d1e90 user: drh tags: json-fuzz)
14:32
Include json1.c in fuzzcheck and fuzzershell. (check-in: c4b68eff user: drh tags: json-fuzz)
12:04
Fix a documentation typo in sqlite3_bind_parameter_index(). No code changes. (check-in: 650605a8 user: drh tags: trunk)
11:57
Fix an off-by-one error (really off-by-2 in this case) in the buffer resize logic of json1. (check-in: d2a02737 user: drh tags: trunk)
03:07
Do not allow rowid in a UNIQUE or PRIMARY KEY constraint. (This restores the same behavior exhibited by all prior releases.) (check-in: b1278301 user: drh tags: trunk)
2015-09-18
18:09
Fix a crash that can occur with a skip-scan on an index with expressions when SQLITE_ENABLE_EXPLAIN_COMMENTS is defined. (check-in: 25f34cb9 user: drh tags: trunk)
15:38
Adjustments to the spellfix2.test module so that it works reliably on windows. (check-in: 09a313fb user: drh tags: trunk)
15:35
Adjust two test cases so that they conform to the current code. (check-in: 228e3d7c user: drh tags: trunk)
15:13
Fix sqlilimits.test module so that it knows that the SELECT in a CREATE VIEW is not checked until the view is actually used. (check-in: acf5d87f user: drh tags: trunk)
14:45
Ensure that "PRAGMA integrity_check" reports an error if the free-list count header field contains a value smaller than the actual number of pages on the database free-list. (check-in: 26f64986 user: dan tags: trunk)
14:42
Fix the orderby9.test case so that it works with 32-bit versions of TCL (check-in: 4b6af774 user: drh tags: trunk)
14:22
Remove a test made obsolete by the ONEPASS DELETE optimization. (check-in: c88b62c2 user: drh tags: trunk)
2015-09-17
17:21
Avoid passing (signed char) values directly to isspace(), isalnum() or isdigit() in json1.c. Cast the value to (unsigned char) first. (check-in: 6713e35b user: dan tags: trunk)
09:48
Fix a crash in FTS5 caused by specifying NULL as the rhs of a MATCH operator. (check-in: e8ed62f8 user: dan tags: trunk)
2015-09-16
17:46
Add a "flush" to force incremental output to releasetest-out.txt while running the test/releasetest.tcl. script. (check-in: 0f3de2d3 user: drh tags: trunk)
12:31
Fix typo in fts5.h. (check-in: 07721c6c user: dan tags: trunk)
2015-09-15
19:16
Merge enhancements from trunk. (check-in: fc4d1de8 user: drh tags: begin-concurrent)
17:31
Merge enhancements from trunk. (check-in: 66fe0683 user: drh tags: cursor-hints)
17:20
Merge trunk enhancements into the apple-osx branch. (check-in: f12b8a0f user: drh tags: apple-osx)
15:55
Merge the latest trunk enhancements with this branch. (check-in: b7469c44 user: dan tags: sessions)
14:39
Add test cases to cover fts5 integrity-check code. (check-in: 1d018c35 user: dan tags: trunk)
13:42
Reformat some code to make it easier to merge with sessions. No logic changes. (check-in: eade355f user: drh tags: trunk)
11:58
Fix a problem with fts5 "ORDER BY rowid DESC" queries and large terms. (check-in: b26d8f79 user: dan tags: trunk)
2015-09-14
22:54
Remove a comment that is no longer accurate. (check-in: cf114c18 user: mistachkin tags: mutexInitIsInitReCheck)
22:53
Merge updates from trunk. (check-in: 25c15771 user: mistachkin tags: mutexInitIsInitReCheck)
22:52
Re-check sqlite3GlobalConfig.isInit after the mutex subsystem has been initialized. (check-in: fea8c0b2 user: mistachkin tags: mutexInitIsInitReCheck)
19:51
Improve test coverage of fts5_index.c. (check-in: c1f76686 user: dan tags: trunk)
19:26
Testability improvements for the ONEPASS_MULTI enhancement. (check-in: d2df93f2 user: drh tags: trunk)
14:49
Fix a typo in an SQLITE_USER_AUTHENTICATION macro. (check-in: 379455af user: drh tags: trunk)
14:45
Use symbolic names ONEPASS_OFF, ONEPASS_SINGLE, and ONEPASS_MULTI for the various modes of the one-pass optimization. (check-in: 16e56bda user: drh tags: trunk)
14:08
Fix a compiler warning and providing missing VdbeCoverage() calls. (check-in: 2edd2e5e user: drh tags: trunk)
11:09
Use a single-pass approach for DELETE statements on non-virtual tables that do not require trigger or foreign key processing. (check-in: 8b93cc59 user: dan tags: trunk)
10:47
Merge the latest trunk enhancements. (check-in: 22ce9218 user: drh tags: sessions)
09:23
Avoid calling sqlite3VdbeCursorMoveto() from more than one point in vdbe.c. Doing so prevents it from being inlined as part of OP_Column. (Closed-Leaf check-in: 166d5af8 user: dan tags: onepass-delete)
2015-09-13
20:15
Add static VFS mutexes to the primary header file comments. (check-in: 9a867d9f user: mistachkin tags: trunk)
18:45
Experimental changes to avoid recusrively calling xMutexInit. (check-in: c9400ff1 user: mistachkin tags: mutexInitCmpSwap)
18:43
Merge updates from trunk. (check-in: b42c2e20 user: mistachkin tags: mutexInitCmpSwap)
2015-09-12
19:50
Fix compiler warnings in delete.c. (check-in: 0a4d285e user: dan tags: onepass-delete)
19:27
Fix API documentation typos. Emphasize that the sqlite3_config() routine is not threadsafe. (check-in: 786333e0 user: drh tags: trunk)
19:26
Experimental change to use a single-pass approach for DELETE statements on non-virtual tables that do not fire triggers or require foriegn-key processing. (check-in: eaeb2b80 user: dan tags: onepass-delete)
18:58
Merge updates from trunk. (check-in: d8051f61 user: mistachkin tags: mutexInitCmpSwap)
18:57
Import common changes from the mutex initialization branch. (check-in: 334720c0 user: mistachkin tags: trunk)
16:59
Merge updates from trunk. (check-in: 48597789 user: mistachkin tags: mutexInitCmpSwap)
04:22
Fix comments. (check-in: de3fa51e user: mistachkin tags: mutexInitCmpSwap)
04:19
Specifying an invalid mutex implementation (via SQLITE_CONFIG_MUTEX) should cause the default one to be used instead. (check-in: 1a97bc81 user: mistachkin tags: mutexInitCmpSwap)
03:40
Clarify the new mutex implementation reset logic in sqlite3_shutdown(). (check-in: f9a03483 user: mistachkin tags: mutexInitCmpSwap)
03:35
Add more asserts to the mutex subsystem. (check-in: 7562f1fb user: mistachkin tags: mutexInitCmpSwap)
01:17
Fix typo in the Win32 implementation of sqlite3CompareAndSwap. (check-in: 31a26a1d user: mistachkin tags: mutexInitCmpSwap)
2015-09-11
23:24
Make sure that the mutex implementation can be altered after calling sqlite3_shutdown(). (check-in: dc2cf897 user: mistachkin tags: mutexInitCmpSwap)
20:54
Update evidence marks due to wording changes in requirements text. No changes to code. (check-in: 86781093 user: drh tags: trunk)
18:05
Fix harmless compiler warnings. (check-in: bfc7b84b user: mistachkin tags: trunk)
15:32
More test cases in test/json102.test corresponding to new examples in the json1 documentation. (check-in: f599a42e user: drh tags: trunk)
14:15
Fix some compiler warnings in fts5 code. (check-in: 0dc43611 user: dan tags: trunk)
05:06
Enhance mutex initialization to prevent possible race conditions between sqlite3_initialize() and sqlite3_config(). Also, re-check sqlite3GlobalConfig.isInit after the mutex subsystem has been initialized. (check-in: f6a8f577 user: mistachkin tags: mutexInitCmpSwap)
01:22
Updates to the sqlite3_value_subtype() and sqlite3_result_subtype() documentation and to test cases for json1 dealing with those interfaces. (check-in: d6cadbe9 user: drh tags: trunk)
00:26
Add new interfaces sqlite3_value_subtype() and sqlite3_result_subtype(). Update the json1.c extension to take advantages of those interfaces to avoid the goofy '$$' path syntax and to allow nested calls to json_array() and json_object() that work as expected. (check-in: db4152ae user: drh tags: trunk)
00:06
Take out the goofy '$$' path syntax. Instead, use subtypes to communicate when a string is JSON. Add the json() function that validates and minifies the JSON and sets the appropriate subtype. (Closed-Leaf check-in: 8a80d645 user: drh tags: subtypes)
2015-09-10
20:40
Make the sqlite3_value_subtype() and sqlite3_result_subtype() interfaces available to loadable extensions. (check-in: c6fca0be user: drh tags: subtypes)
20:34
Experimental implementation of sqlite3_result_subtype() and sqlite3_value_subtype() interfaces. (check-in: 7b5be299 user: drh tags: subtypes)
19:22
Fix a potential NULL pointer deref in the testing logic of pcache1. NB: The -DSQLITE_TEST compile-time option is needed to hit the problem. (check-in: f5580f08 user: drh tags: trunk)
17:23
Modify the fts5 leaf page format to permit faster seek operations. This is a file-format change. Any existing databases can be upgraded by running the fts5 'rebuild' command. (check-in: 0c0c4ae9 user: dan tags: trunk)
17:20
Create separate "path" and "root" columns in the json_each() and json_tree() virtual tables. "Root" is the 2nd parameter and is fixed. "Path" varies as json_tree() walks the hierarchy. (check-in: 127cce3e user: drh tags: trunk)
16:39
Increment the fts5 version value to indicate that the on-disk format has changed. (Closed-Leaf check-in: 99de5e36 user: dan tags: fts5-incompatible)
16:19
Fix a segfault in fts5 that could occur if the database contents were corrupt. (check-in: 4931e37d user: dan tags: fts5-incompatible)
15:52
Merge latest changes from trunk. Including fts5_expr.c fixes. (check-in: 716e7e74 user: dan tags: fts5-incompatible)
15:49
Update description of on-disk format in fts5_index.c. (check-in: 85aac7b8 user: dan tags: fts5-incompatible)
15:24
Make the sqlite3ext.h header file responsive to -DSQLITE_OMIT_LOAD_EXTENSION. (check-in: 47a46a9f user: drh tags: trunk)
15:22
Disable tests for json_each() and json_tree() on builds where virtual tables are not supported (check-in: bb8ee3b1 user: drh tags: trunk)
15:20
Fix the --help option on test/releasetest.tcl. Also fix the final error count so that it includes a count of subtest crashes. (check-in: 9ecf684d user: drh tags: trunk)
10:40
Revert an accidentally committed makefile change. (check-in: 402704b1 user: dan tags: fts5-incompatible)
10:01
Fix an fts5 problem that could occur if a term and the first associated rowid are on different leaf pages. (check-in: ffe2796a user: dan tags: fts5-incompatible)
05:40
Change the array of 16-bit offsets at the end of each page to an array of varints. (check-in: fab245be user: dan tags: fts5-incompatible)
04:17
Attempt to declare sqlite3MemoryBarrier() correctly for all possible build configurations. (check-in: da8a288f user: drh tags: trunk)
03:29
Fix the json_tree() scan for the case when a path is supplied. Add new json1 test cases. (check-in: 6adc7de7 user: drh tags: trunk)
01:22
No-op the sqlite3_memory_alarm() interface in a different way, that does not break legacy memory behavior. This is a re-do of check-in [5d3f5df4da9f40d5]. (check-in: 8250e2a4 user: drh tags: trunk)
2015-09-09
23:54
Fix harmless compiler warning in FTS5. (check-in: 86146a73 user: mistachkin tags: trunk)
19:44
Fix an assert() enabled by SQLITE_ENABLE_EXPENSIVE_ASSERT in wal.c. (check-in: 8d2ed150 user: dan tags: trunk)
19:27
Fix a possible NULL pointer deref when using SQLITE_ENABLE_MEMORY_MANAGEMENT. (check-in: 89bfdbfe user: drh tags: trunk)
17:23
Fix harmless compiler warning. (check-in: 280fd3a4 user: mistachkin tags: trunk)
17:17
Fix harmless compiler warnings in FTS5. (check-in: 2cdb1877 user: mistachkin tags: trunk)
13:28
When running a CREATE TABLE AS, make the initial temporary sqlite_master entry for the new table a real record rather than a NULL, in case the query after the AS actually tries to read the sqlite_master table. Fix for ticket [acd12990885d9276]. (check-in: 4a18d8bd user: drh tags: trunk)
08:15
Fix a bug in preprocessor macros within fts5_main.c. (check-in: 0eb2b952 user: dan tags: fts5-incompatible)
2015-09-08
21:16
Remove an unused local variable from Lemon. (check-in: fe9ffe5e user: drh tags: trunk)
21:12
Enhance the DBSTAT virtual table with a new hidden table "schema" that if set will cause the table to report on the specified schema rather than on "main". Also: Fix a faulty assert in sqlite3_context_db_handle(). (check-in: 6beb512c user: drh tags: trunk)
20:26
Eponymous virtual tables exist in the "main" schema only. Enforce this rule. (check-in: 06f90bb2 user: drh tags: trunk)
19:55
Remove the 0x00 terminators from the end of fts5 doclists stored on disk. (check-in: 00d99006 user: dan tags: fts5-incompatible)
17:31
Fix the help message that sqlite3_analyzer.exe generates for invalid arguments. (check-in: 33a14e7b user: drh tags: trunk)
2015-09-07
23:40
Minor tweaks to Lemon. (check-in: 98667722 user: drh tags: trunk)
20:22
Merge parser enhancements and other improvements and bug fixes from trunk. (check-in: 9cf3e51b user: drh tags: begin-concurrent)
20:11
Enhance the Lemon parser generator to add SHIFTREDUCE states that reduce the sizes of some of the parser tables. (check-in: 99b992fa user: drh tags: trunk)
20:02
Fix an unreachable branch in the new parse automaton. (Closed-Leaf check-in: e9d604b4 user: drh tags: lemon-update)
19:52
Change the parser engine so that it (once again) waits for a lookahead token before reducing, even in a SHIFTREDUCE action. (check-in: 2c17a135 user: drh tags: lemon-update)
18:23
For the Lemon-generated parser, add a new action type SHIFTREDUCE and use it to further compress the parser tables and improve parser performance. (check-in: 531c3974 user: drh tags: lemon-update)
14:22
In the "parse.out" output file from Lemon, show addition the complete text of rules on reduce actions. (check-in: b6ffb7e4 user: drh tags: trunk)
08:14
Use macros to make the code in fts5_index.c easier to read. (check-in: 67ff5ae8 user: dan tags: fts5-incompatible)
02:23
Improved "Parser Statistics" output (the -s option) for the Lemon parser generator. (check-in: 809503e4 user: drh tags: trunk)
2015-09-06
10:31
Improved memory barrier that should work with MinGW on older versions of Windows. (check-in: 47dc24bd user: drh tags: trunk)
02:51
Add a memory barrier to the mutex initialization logic, try to work around an issue reported by WebKit. (check-in: 11a9a786 user: drh tags: trunk)
2015-09-05
22:36
Omit all use of Expr nodes for TK_AS, as those nodes no longer served a useful purpose and in fact interferred with the query planner. (check-in: 7ab0b258 user: drh tags: trunk)
19:52
Experiment with a different fts5 leaf page format that allows faster seeks. (check-in: a1f4c3b5 user: dan tags: fts5-incompatible)
19:21
Fix an unreachable conditional in the WHERE clause analysis logic. (check-in: 24924a58 user: drh tags: trunk)
19:07
Get STAT4 range scan estimates work again when the bounds are determined by date/time functions. (check-in: d2761357 user: drh tags: trunk)
2015-09-04
18:03
Fix over-length source code lines in Lemon. (check-in: 1efece95 user: drh tags: trunk)
17:32
Add support for CREATE INDEX statements that use deterministic expressions rather than only column names. (check-in: 2131a5ca user: drh tags: trunk)
17:22
Merge the latest trunk changes, and especially the fix for allowing strings as identifiers in CREATE INDEX statements. (check-in: a9b84885 user: drh tags: begin-concurrent)
16:39
Remove the EXCLUSIVE and CONCURRENT tokens from the tokenizer. Let the BEGIN statement be followed by an ID, but throw a syntax error if the ID is anything other than EXCLUSIVE or CONCURRENT. (check-in: c0bf92ec user: drh tags: begin-concurrent)
13:02
Merge trunk enhancements, and espeically the fix for allowing strings as column identifers in CREATE INDEX statements. (Closed-Leaf check-in: 5ff85529 user: drh tags: index-expr)
12:54
Continue to support the (broken) legacy syntax of allowing strings for column names in CREATE INDEX statements and in UNIQUE and PRIMARY KEY constraints. (check-in: 3d3df79b user: drh tags: trunk)
11:13
Enhance showfts5.tcl so that it can optionally display the number of terms in each segment. (check-in: d648ddd9 user: dan tags: trunk)
10:31
Modify the fts5 custom tokenizer interface to permit synonym support. The fts5_api.iVersion value is now set to 2. Existing fts5 custom tokenizers (if there are such things) will need to be updated to use the new api version. (check-in: 0b7e4ab8 user: dan tags: trunk)
10:24
Merge latest trunk changes. (Closed-Leaf check-in: 443a5eb8 user: dan tags: fts5-incompatible)
04:31
Simplification of the LRU list handling in pcache1. (check-in: 05a3a2cd user: drh tags: trunk)
2015-09-03
20:52
Merge performance enhancements from trunk. This branch now runs (slightly) faster than the 3.8.11.1 release, though still slightly slower than trunk. (check-in: c490bfb1 user: drh tags: begin-concurrent)
20:43
Change the pcache module to keep track of the total number of references to all pages rather than the number of pages references, for a performance improvement and size reduction. (check-in: f00a9e1e user: drh tags: trunk)
19:48
Rearrange code in fts5_expr.c so that synonym support does not slow down the common case. (check-in: 80188281 user: dan tags: fts5-incompatible)
18:57
Merge enhancements from trunk. (check-in: 4b49fe99 user: dan tags: fts5-incompatible)
18:20
A simple optimization and size reduction in sqlite3PagerAcquire(). (check-in: 618d8dd4 user: drh tags: trunk)
18:05
Add documentation for fts5 synonym support. (check-in: 58aa1f43 user: dan tags: fts5-incompatible)
17:54
Change the Pager.hasBeenUsed flag into Pager.hasHeldSharedLock in order to take it off the critical path in sqlite3PagerAcquire(). (check-in: b79096be user: drh tags: trunk)
15:37
Add tests to improve coverage of fts5_varint.c. (check-in: 89f24f31 user: dan tags: fts5-incompatible)
15:17
Changes from ENABLE_CONCURRENT (default off) to OMIT_CONCURRENT (default on). This is not a clear-cut decision and might be changed back. (check-in: f8ae9bfd user: drh tags: begin-concurrent)
14:48
Merge recent trunk enhancements. (check-in: 6a513c05 user: drh tags: sessions)
14:39
Merge enhancements from trunk. (check-in: 25ee3000 user: drh tags: cursor-hints)
14:31
Merge enhancements from trunk. (check-in: d01658ad user: drh tags: apple-osx)
14:22
Remove some more code from fts5_index.c by consolidating similar functions. (check-in: 59ae30b9 user: dan tags: fts5-incompatible)
14:18
Merge enhancements from trunk. (check-in: 1ab10cbf user: drh tags: index-expr)
14:04
Merge trunk optimizations. (check-in: 71e7299e user: drh tags: begin-concurrent)
13:46
Add the sqlite3VdbeLoadString() and sqlite3VdbeMultiLoad() routines to help with code generation, especially on PRAGMAs. Rename sqlite3VdbeAddGoto() to just sqlite3VdbeGoto(). (check-in: 847387ec user: drh tags: trunk)
11:17
Remove dead code from fts5_index.c. (check-in: 8a0a9b01 user: dan tags: fts5-incompatible)
11:00
Fix the fts5 integrity-check so that it works with columnsize=0 tables. (check-in: 11b887b1 user: dan tags: fts5-incompatible)
10:27
Fix a memory leak in fts5_expr.c. (check-in: 399932a1 user: dan tags: fts5-incompatible)
04:28
Factor out and simplify code in pragma.c for pragmas that return a single row with a single column that is an integer or text value. (check-in: d7f4bdf5 user: drh tags: trunk)
03:29
For PRAGMAs, factor out the code that sets the result set column names into a subroutine. (check-in: 0ea6e5c9 user: drh tags: trunk)
2015-09-02
21:00
Optimizations to the printf formatter. (check-in: a3b35dde user: drh tags: trunk)
19:48
Further tests to raise coverage of fts5 synonym code to 100%. Fix a dropped error code in the same. (check-in: bdedd838 user: dan tags: fts5-incompatible)
18:56
Fix an issue with fts5 synonyms and NEAR(...) queries. (check-in: f2e59070 user: dan tags: fts5-incompatible)
18:40
Add and use the sqlite3VdbeChangeOpcode() routine. Simplify the implementation of the other sqlite3VdbeChange*() routines. (check-in: 0a5b00e4 user: drh tags: trunk)
18:19
Add the sqlite3VdbeAddGoto(v,i) routine as a shorthand for sqlite3VdbeAddOp2(v,OP_Goto,0,i). (check-in: be78f413 user: drh tags: trunk)
17:55
Change sqlite3_sql() so that it always returns the SQL text of the prepared statement, if the text is available, even if the the prepared statement was generated using sqlite3_prepare() instead of sqlite3_prepare_v2(). Also include some minor comment fixes and code simplifications. (check-in: 2f5472cf user: drh tags: trunk)
17:34
Fix a problem with fts5 synonyms and phrase queries. Also fix an OOM handling bug in fts5. (check-in: a4c35fa2 user: dan tags: fts5-incompatible)
16:51
Small simplification to the EXPLAIN QUERY PLAN logic. (check-in: d1592d20 user: drh tags: trunk)
15:37
Use sqlite3XPrintf() instead of sqlite3StrAccumAppend() in a few places for better performance and a smaller footprint. (check-in: 82355e41 user: drh tags: trunk)
14:56
The sqlite3_memory_alarm() interface has been deprecated and undocumented for almost 8 years (since version 3.5.3). Change it into a no-op. (check-in: 5d3f5df4 user: drh tags: trunk)
14:17
Fix a problem handling OOM conditions within fts5 queries that feature synonyms. (check-in: 11fa9808 user: dan tags: fts5-incompatible)
12:52
This change is not correct for the boundary case of nCellKey==0. Was: Small performance gain and size reduction in sqlite3VdbeIdxKeyCompare(). (Closed-Leaf check-in: 6e0298cd user: drh tags: mistake)
08:22
Fix a problem with fts5 synonyms and the xQueryPhrase() auxiliary function API. (check-in: cf3e45e7 user: dan tags: fts5-incompatible)
2015-09-01
23:51
Very minor optimizations in the unix VFS. (check-in: 6db3ff45 user: drh tags: trunk)
22:29
Performance improvement in sqlite3VarintLen(). (check-in: adf9fefb user: drh tags: trunk)
20:09
Small size reduction and performance increase in sqlite3DbMallocSize(). (check-in: 8a80967f user: drh tags: trunk)
19:51
Reduce the number of calls to sqlite3BeginBenignMalloc(). (check-in: 0bee6583 user: drh tags: trunk)
18:52
Merge recent enhancements from trunk. (check-in: cb772366 user: drh tags: sessions)
18:44
Fix a problem that occurs when more than 4 synonyms for a term appear within a single row. (check-in: cd359550 user: dan tags: fts5-incompatible)
18:40
Merge the latest trunk enhancements. (check-in: 4af79477 user: drh tags: apple-osx)
18:31
Merge enhancements from trunk. (check-in: 29570a60 user: drh tags: cursor-hints)
18:08
Add tests for fts5 synonyms implemented by adding extra terms to queries. And fixes for the same. (check-in: dbcb7380 user: dan tags: fts5-incompatible)
18:01
Merge the latest trunk enhancements. (check-in: 3dea0474 user: drh tags: begin-concurrent)
17:48
Fixes so that it builds without warnings both with and without SQLITE_ENABLE_CONCURRENT. (check-in: 5ed2a445 user: drh tags: begin-concurrent)
13:17
Rename SQLITE_FUNC_VARYING to SQLITE_FUNC_SLOCHNG - a more descriptive name for what that bit means. (check-in: ff5137a6 user: drh tags: index-expr)
00:42
Remove unreachable branches. (check-in: fd4da231 user: drh tags: index-expr)
2015-08-31
23:09
Fix a bug in error reporting when a UNIQUE index on expressions fails its uniqueness test. (check-in: 5a2c0e90 user: drh tags: index-expr)
21:16
Not only date/time functions, but also functions like sqlite_version() and changes() need to be prohibited from use inside of indexes. (check-in: 48713130 user: drh tags: index-expr)
20:06
Begin changes to allow synonym support by adding multiple terms to a query (an alternative to adding multiple terms to the FTS index). (check-in: ad7feaed user: dan tags: fts5-incompatible)
19:38
Always assume that indexed expressions can generate a NULL. Get indexed expressions working for the case of two or more expressions in the same index. (check-in: cc60321a user: drh tags: index-expr)
18:13
Case should not be significant when comparing function names. (check-in: e2f1caf1 user: drh tags: index-expr)
17:34
Make the distinction between truly deterministic functions and date/time functions which only return the same answer for a single query. Only truly deterministic functions are allowed in indexes. Add new expression index test cases. (check-in: c77554b5 user: drh tags: index-expr)
15:58
Improved analysis and usage of indexed expressions in the query planner. (check-in: f8893696 user: drh tags: index-expr)
14:27
Merge the latest enhancements from trunk. (check-in: 7bde6d4d user: drh tags: index-expr)
2015-08-29
19:41
Enhance the json_extract() function so that if given multiple PATH arguments it will return a JSON array with all of the answers. Also update comments within the json1 extension to reflect stricter interpretation of JSON and PATH arguments. (check-in: 1da60c3d user: drh tags: trunk)
19:03
Link the json1 extension into the command-line shell by default. (check-in: 2e8e239c user: drh tags: trunk)
18:46
Add a test for an fts5 tokenizer that supports synonyms by adding multiple entries to the fts index. (check-in: 98d07d16 user: dan tags: fts5-incompatible)
18:30
New test cases for the json1 extension. (check-in: daff4832 user: drh tags: trunk)
17:22
Fix the build with -DSQLITE_OMIT_VIRTUALTABLE. (check-in: 752918de user: drh tags: trunk)
16:02
Do not consider an empty string to be valid JSON. Add some additional JSON test cases. (check-in: fd19ff02 user: drh tags: trunk)
15:44
Another change to the fts5 tokenizer API. (check-in: fc718684 user: dan tags: fts5-incompatible)
00:54
Change the json1.c module so that it throws an error if any of the JSON selector paths are malformed. (check-in: 3aa0855f user: drh tags: trunk)
2015-08-28
20:07
Back out the json_check() routine. Instead, throw an error if the input to a json function (other than json_valid()) is not valid JSON. (check-in: dc9ce7b1 user: drh tags: trunk)
19:56
Change the fts5 tokenizer API to allow more than one token to occupy a single position within a document. (check-in: 90b85b42 user: dan tags: fts5-incompatible)
16:41
Fix compiler warnings in rbu code. (check-in: 0fdc36fe user: dan tags: trunk)
16:18
When searching the wal file for a frame, do not search that part that was already checkpointed when the transaction was opened. (check-in: a84cf4f5 user: dan tags: trunk)
15:50
Merge latest trunk into this branch. (Closed-Leaf check-in: ab93024d user: dan tags: wal-read-change)
15:35
Fix a potential segfault in the VFS logic that checks for fail renames out from under SQLite. (check-in: 650111f6 user: drh tags: apple-osx)
13:27
Disable the read-only WAL-mode database tests on the apple-osx branch because read-only WAL-mode databases are specifically disallowed by Apple-specific changes. (check-in: bd911496 user: drh tags: apple-osx)
09:27
Merge latest trunk changes with this branch. (check-in: 57bc0194 user: dan tags: begin-concurrent)
03:48
Add the json_check() function, which returns its argument if the argument is well-formed JSON or which throws an error otherwise. (check-in: 64abb65d user: drh tags: trunk)
03:33
Enhance the json_insert(), json_replace(), and json_set() functions with the ability to add JSON instead of text if the argument is text and if the PATH begins with '$$' instead of just '$'. (check-in: 44f103d8 user: drh tags: trunk)
02:12
Merge trunk enhancements into the apple-osx branch. Most tests works, but there are yet a few issues to be resolved. (check-in: da864658 user: drh tags: apple-osx)
2015-08-27
23:42
Fix the OR-optimization so that it always ignores subplans that do not use an index. (check-in: cf452028 user: drh tags: index-expr)
23:18
Fix the OR-optimization so that it always ignores subplans that do not use an index. (check-in: 66f92a16 user: drh tags: trunk)
20:33
Fix EXPLAIN QUERY PLAN output for indexed-expressions. Fix another obscure fault in the WHERE term scanner. (check-in: 73d361ce user: drh tags: index-expr)
19:57
Add header comments for new methods in pager.c. (check-in: 437c7e21 user: dan tags: begin-concurrent)
19:56
Fix problems in the indexed-expression handling in the optimizer. (check-in: 03375017 user: drh tags: index-expr)
19:22
Add test cases for concurrent transactions and long-lived SELECT statements. (check-in: fd4798cb user: dan tags: begin-concurrent)
18:24
Activate the ability to use expressions in indexes in a query. There are some test failures, but mostly this seems to work. (check-in: 42f93f58 user: drh tags: index-expr)
17:42
Fix a problem whereby concurrent transactions would not consider pages read by the transaction before the first write statement. (check-in: fc17f731 user: dan tags: begin-concurrent)
16:07
Merge changes from trunk. (check-in: c80e9e8e user: drh tags: index-expr)
15:58
Adjustments to the WHERE term scanning, to better handle scanning terms of an index. (check-in: 5611130a user: drh tags: index-expr)
2015-08-26
21:08
Reduce the size of the WhereScan object by 24 bytes while also clarifying its operation. (check-in: cbc3c9a8 user: drh tags: trunk)
18:54
Fix an assert() in pager.c that could fail in a concurrent transaction. (check-in: 69394dda user: dan tags: begin-concurrent)
18:04
Merge enhancements from trunk. (check-in: ec6ddb3d user: drh tags: index-expr)
18:02
Fix a problem allowing some conflicting transactions to be committed. (check-in: a0566382 user: dan tags: begin-concurrent)
14:01
Evaluate expressions only once when the same expression is used in both the result set and in the ORDER BY clause. (check-in: c2f3bbad user: drh tags: trunk)
11:40
Refactor With.a.zErr into With.a.zCteErr. No logic changes. (check-in: 58ba7363 user: drh tags: trunk)
11:34
Update the TreeView output for compound SELECT statements so that all entries are shown vertically aligned rather than each successive entry being indented. (check-in: 65a89187 user: drh tags: trunk)
2015-08-25
19:42
Move sqlite3IndexColumnAffinity() inside of SQLITE_ENABLE_STAT3_OR_STAT4. (check-in: b3732a4e user: drh tags: trunk)
19:24
Merge trunk enhancements. (check-in: e8b02902 user: drh tags: index-expr)
19:20
Use the sqlite3IndexColumnAffinity() routine to quickly and correctly find the affinity of an index column. (check-in: 1ee089a7 user: drh tags: trunk)
19:10
Add miscellaneous test cases for concurrent transactions. (check-in: 779b1d0e user: dan tags: begin-concurrent)
17:16
If "PRAGMA integrity_check" is run while the database is being written by a CONCURRENT transaction, do not consider unreferenced pages to be an error. They may be part of the free-page list, which is not visible at the b-tree layer when running a CONCURRENT transaction. (check-in: f32b57b4 user: dan tags: begin-concurrent)
16:57
Add code to maintain indexes with expression arguments across DELETE, INSERT, and UPDATE statements. Legacy tests pass, but the new code paths are still largely untested. The query planner currently makes no effort to use expression indexes. (check-in: efaabdb7 user: drh tags: index-expr)
16:01
Test that if a corrupt wal-index header is encountered when attempting to commit a concurrent transaction, SQLITE_BUSY_SNAPSHOT is returned to the caller. (check-in: c746e0bd user: dan tags: begin-concurrent)
14:37
Fix a segfault that could occur following an OOM condition in the concurrent transaction code. (check-in: 231b5880 user: dan tags: begin-concurrent)
11:16
Merge latest trunk changes with this branch. (check-in: 3e7d6dd6 user: dan tags: begin-concurrent)
00:34
Fix a memory leak that might occur when compiling with SQLITE_OMIT_CHECK. (check-in: 8f1d9f1f user: drh tags: trunk)
00:27
Changes toward being able to process indexes on expressions. Not there yet - this check-in is just movement in that direction. Some tests are failing. (check-in: 0ad0f8d7 user: drh tags: index-expr)
2015-08-24
22:06
Remove duplicated line of code. (check-in: 47280f2a user: mistachkin tags: begin-concurrent)
20:54
Remove some redundant code: Call sqlite3ResolveExprListNames() rather than calling sqlite3ResolveExprNames() in a loop - in two places. (check-in: bdaf6646 user: drh tags: trunk)
20:21
Enhances the parser so that it accepts arbitrary expressions for the arguments of an index, though the code generator still rejects everything other than simple column names. The sqlite3RestrictColumnListSyntax() routine is removed since that feature is now handled by the parser. (check-in: bed42116 user: drh tags: trunk)
19:56
Change "BEGIN UNLOCKED" to "BEGIN CONCURRENT". (check-in: ba1ab858 user: dan tags: begin-concurrent)
19:08
Fix handling of attempts to modify the database schema, application_id or user_version within an UNLOCKED transaction. (check-in: 5b9f2721 user: dan tags: begin-concurrent)
17:42
Enhance the CREATE VIEW syntax so that the names of columns of the view can be specified after the view name. (check-in: d794b34d user: drh tags: trunk)
17:18
Enhancements to the batch build tool for MSVC. (check-in: a1ae20cd user: mistachkin tags: trunk)
16:00
Fix compilation without SQLITE_ENABLE_UNLOCKED. Also other code organization issues. (check-in: 04113557 user: dan tags: begin-concurrent)
15:39
Disallow the use of COLLATE clauses and the ASC and DESC keywords within foreign key constraints and in the argument list to common table expressions. (check-in: 83cbc4d8 user: drh tags: trunk)
12:42
Improvements to JSON string dequoting. (check-in: 196d66d3 user: drh tags: trunk)
10:05
Consolidate two blocks of similar code in btreeFixUnlocked(). (check-in: 701302b4 user: dan tags: begin-concurrent)
06:44
Merge trunk changes with this branch. (check-in: 876810c2 user: dan tags: begin-concurrent)
06:43
Fix another problem involving unlocked transactions and wal-file restarts. (check-in: 4460764e user: dan tags: begin-concurrent)
02:32
Fix corner-case problems in the type and atom columns of json_each() and json_tree(). (check-in: f0aba0e1 user: drh tags: trunk)
2015-08-23
20:48
Fix a comment typo on sqlite3ExprAlloc(). No code changes. (check-in: 518d6220 user: drh tags: trunk)
20:44
Fix minor glitches in the json1.c extension, mostly having to do with OOM behavior. (check-in: cc520414 user: drh tags: trunk)
02:42
Fixes to json_each() and json_tree(). Improved json_parse() debugging output. (check-in: fc1b24f3 user: drh tags: trunk)
2015-08-22
20:32
Fix a problem to do with detecting unlocked transaction conflicts if another client restarts the wal while the transaction is running. (check-in: e3968b25 user: dan tags: begin-concurrent)
19:39
Add the json_valid() function to the json1.c extension. Fix various minor problems in the json1.c extension. (check-in: 380a9734 user: drh tags: trunk)
17:28
Add further tests for deferred page allocation. And fixes for the same. (check-in: ed0a31be user: dan tags: begin-concurrent)
07:56
Merge further trunk changes. (check-in: c2327a3b user: dan tags: begin-concurrent)
07:55
Merge trunk changes into this branch. (check-in: 9021f736 user: dan tags: begin-concurrent)
03:05
Fix a couple instances of OOM handling in the json extension. (check-in: 213a6c5c user: drh tags: trunk)
01:32
Do not apply the WHERE-clause pushdown optimization to terms that originate in the ON or USING clause of a LEFT JOIN. Fix for ticket [c2a19d81652f40568c]. (check-in: 351bc22f user: drh tags: trunk)
2015-08-21
20:43
Add extension functions for processing JSON. (check-in: 178f9a35 user: drh tags: trunk)
20:37
Fixes for compiler warnings and errors in the makefiles. Rename the one test script to json101.test. (Closed-Leaf check-in: 9ff6ccde user: drh tags: json)
20:12
Change the name of the json loadable extension to "json1.c", in anticipation of having future major changes to the interface. (check-in: d0d4bec9 user: drh tags: json)
20:11
Fix many minor issues in the unlocked transaction code. (check-in: 53aaeea6 user: dan tags: begin-concurrent)
20:02
Add the fullkey column to both json_each() and json_tree(). (check-in: 15dd9943 user: drh tags: json)
19:56
Merge header file fixes from trunk. (check-in: 7c2713e9 user: drh tags: json)
19:53
Add a missing #define for sqlite3_vsnprintf to sqlite3ext.h. (check-in: da3c9df0 user: drh tags: trunk)
18:55
When committing an UNLOCKED transaction, try to move pages allocated at the end of the file to free slots within the file (like an incremental-vacuum operation does). (check-in: 06967916 user: dan tags: begin-concurrent)
17:57
Fix a problem with UNLOCKED transactions that free pages allocated within the same transaction. (check-in: 227bb8a1 user: dan tags: begin-concurrent)
17:39
Reserve the SQLITE_IOERR_VNODE error code name. (check-in: 53b593fc user: drh tags: trunk)
17:33
Add the json_tree() virtual table. (check-in: 08c36e45 user: drh tags: json)
17:16
Merge in trunk fixes for table-valued functions. (check-in: 67375f32 user: drh tags: json)
17:14
Fix a corner-case bug in table-valued functions. Update the generate_series() virtual table to increase the performance estimate penalty for being underspecified. (check-in: 552bc9cb user: drh tags: trunk)
16:22
Merge trunk changes with this branch. (check-in: deaf3b18 user: dan tags: begin-concurrent)
14:21
Add extra tests and a fix for rollbacks of UNLOCKED transactions. (check-in: 82cd837e user: dan tags: begin-concurrent)
12:37
Fix typo in comment. No changes to code. (check-in: 7b8d17dd user: drh tags: trunk)
2015-08-20
23:54
Merge recent trunk enhancements, include table-valued functions. (check-in: e9196d56 user: drh tags: sessions)
23:45
Merge recent enhancements from trunk, including table-valued expressions. (check-in: b9927c87 user: drh tags: cursor-hints)
23:39
Merge the latest changes from trunk, including the table-valued function implementation. (check-in: 10c44432 user: drh tags: json)
23:33
Compiler-warning fixes in the sqldiff.exe utility. (check-in: 64d13339 user: drh tags: trunk)
23:28
Fix a couple C99-isms that cause compile errors on MSVC. (check-in: bc577fe6 user: drh tags: trunk)
23:21
Fix corner-case memory management issues in table-valued functions. Change virtual table handling so that if xDestroy is missing the table is eponymous only even if xCreate is present. (check-in: 774e6a14 user: drh tags: trunk)
21:14
Skip calling the virtual table xDestroy method when it is null. (check-in: b73ad305 user: mistachkin tags: trunk)
21:09
Fix compiler warnings in the sqldiff tool seen with MSVC. (Closed-Leaf check-in: 072279d4 user: mistachkin tags: msvcWarn)
20:25
Fix a problem causing corruption when an UNLOCKED transaction is rolled back. (check-in: 7c361478 user: dan tags: begin-concurrent)
20:21
Fix stray variable declaration for C89. (check-in: 17eb7f18 user: mistachkin tags: trunk)
20:13
Correctly handle empty function argument lists on table-valued functions. (check-in: a7acc787 user: drh tags: trunk)
19:55
Add support for table-valued functions in the FROM clause implemented as virtual tables. (check-in: 9b718b06 user: drh tags: trunk)
18:28
Prevent the series.c extension from loading on older versions of SQLite that do not support xCreate==NULL. (Closed-Leaf check-in: 3efc7942 user: drh tags: table-valued-functions)
17:18
Make SQLITE_BUSY_SNAPSHOT and SQLITE_BUSY_RECOVERY retryable, just as a plain SQLITE_BUSY is. (check-in: fd13dd95 user: drh tags: trunk)
16:16
Fix a typo in series.c. (check-in: 23db7f50 user: dan tags: table-valued-functions)
2015-08-19
23:02
Fix the path lookup for objects so that it can handle quoted identifier names and non-alphanumerics in the identifier. (check-in: 87f58730 user: drh tags: json)
22:47
Add the json_each(JSON,PATH) table-valued-function. (check-in: 3335ac17 user: drh tags: json)
20:27
When committing an unlocked transaction, relocate newly allocated database pages within the file to avoid conflicting with committed transactions. There are lots of things still to fix in this code. (check-in: 3bbc31d5 user: dan tags: begin-concurrent)
19:26
Merge the table-valued-function rowid fix. (check-in: a06a6392 user: drh tags: json)
19:01
Fix eponymous virtual tables so that they do not automatically make the first column the rowid. Enhance the generate_series virtual table to support rowid. (check-in: a325a085 user: drh tags: table-valued-functions)
18:31
Merge support for table-valued functions. (check-in: 96a5d44d user: drh tags: json)
18:19
Improved comments on the generate_series virtual table. Test cases for ORDER BY rowid DESC with generate_series. (check-in: fef44c37 user: drh tags: table-valued-functions)
17:11
A list of arguments following a table name translates into equality constraints against hidden columns in that table. (check-in: 40e12cfe user: drh tags: table-valued-functions)
15:20
Minor refactor of the SrcList object so that it is able to hold the argument list to a table-valued-function in the FROM clause. (check-in: b9193761 user: drh tags: table-valued-functions)
13:54
Virtual table modules with a null xCreate method act as eponymous-only modules - they cannot be used in a CREATE VIRTUAL TABLE statement. Add the series.c extension that implements a postgres-like generate_series virtual table to demonstrate this capability. (check-in: c58426db user: drh tags: table-valued-functions)
12:52
Merge changes from trunk. (check-in: dddd792d user: drh tags: table-valued-functions)
12:45
Simplification to error handling in addModuleArgument() in the virtual table processing. (check-in: c573b0a1 user: drh tags: trunk)
08:34
When updating a zipvfs database with RBU, set journal_mode=off to prevent the upper-level pager from creating a large temporary file. (check-in: dec14a39 user: dan tags: trunk)
02:32
Initial implementation of eponymous virtual table instances. (check-in: c1f43a77 user: drh tags: table-valued-functions)
2015-08-18
19:09
Add test file spellfix2.test, which should have been checked in some time ago. (check-in: 85994020 user: dan tags: trunk)
16:32
Fix harmless compiler warning in FTS5. (check-in: 02448a9f user: mistachkin tags: trunk)
15:58
Provide hints for all terms in a range constraint if there are any equality terms anywhere in the constraint. Range constraint terms are only omitted for a pure range constraint with no equality prefix. (check-in: b5897bc0 user: drh tags: cursor-hints)
12:59
Comment clarification. No changes to code. (check-in: 71a96695 user: drh tags: json)
02:28
Initial implementation of json_set() and json_insert(). (check-in: 4aa49656 user: drh tags: json)
2015-08-17
21:22
Initial implementation of json_replace(). (check-in: 3c4bee65 user: drh tags: json)
20:14
Add an initial implementation for json_remove(). (check-in: 2a826720 user: drh tags: json)
17:19
Avoid generating hints using constraints that are also used to initialize the cursor, since presumably the cursor already knows about those constraints. (check-in: 142b048a user: drh tags: cursor-hints)
15:17
Initial implementation for json_array_length(), json_extract(), and json_type(). (check-in: 39983204 user: drh tags: json)
11:28
Abandon the JSONB format for now. (We may return to it in the future.) Add a function to render a JSON parse. (check-in: 9703c0aa user: drh tags: json)
2015-08-15
21:29
Fix off-by-one error when parsing primitive JSON types "true", "false", and "null". (check-in: 42c15c1e user: drh tags: json)
21:25
Add a prototype JSON parser. (check-in: 789ba487 user: drh tags: json)
18:16
Handle writes to auto-vacuum databases within UNLOCKED transactions in the same way as for non-UNLOCKED transactions. (check-in: de1ea450 user: dan tags: begin-concurrent)
16:32
Minor fix to the display of oversized KeyInfo structures in the P4 operand of Open opcodes in EXPLAIN output. (check-in: f65a9b4a user: drh tags: trunk)
00:51
Change the display of the P4 operand of CursorHint in EXPLAIN output to function notation. (check-in: bee73d42 user: drh tags: cursor-hints)
2015-08-14
23:57
Always provide the BTREE_BULKLOAD hint, even when SQLITE_ENABLE_CURSOR_HINTS is not defined, as that hint gives a 4% performance increase. (check-in: 83a84435 user: drh tags: cursor-hints)
20:08
Updated testing of cursor-hints. Remove the test_cursorhint.c file and associated logic in the core and do tests based purely on the newly enhanced EXPLAIN output. (check-in: bf383e66 user: drh tags: cursor-hints)
18:50
Fix the cursor hint mechanism so that it does the right thing for indexed lookups. (check-in: 581e3d49 user: drh tags: cursor-hints)
15:05
Refactor the sqlite3BtreeCursorHint() interface for improved maintainability. (check-in: fc3fb5cd user: drh tags: cursor-hints)
12:53
Duplicate the output of releasetest.tcl into releasetest-out.txt (check-in: 5e06a9c1 user: drh tags: trunk)
01:03
Fix the CursorHint so that it includes the scan boundary constraints. On the expression text for the CursorHint opcode, show rowid correctly. (check-in: f0d428d1 user: drh tags: cursor-hints)
2015-08-13
21:43
Convert the hint expression of the CursorHint opcode into a string for display by EXPLAIN. (Leaf check-in: 12640cb2 user: drh tags: cursor-hints-displayP4)
21:38
Fix a harmless compiler warning. (check-in: 608ab4ac user: drh tags: cursor-hints)
21:32
Convert the hint expression of the CursorHint opcode into a string for display by EXPLAIN. (check-in: 20688471 user: drh tags: cursor-hints)
20:34
Fix a bug in sqlite3ExprContainsSubquery(). (check-in: be254715 user: drh tags: cursor-hints)
20:23
When searching the wal file for a frame, do not search that part that was already checkpointed when the snapshot being read was at the head of the wal file. (check-in: 90760e72 user: dan tags: wal-read-change)
20:07
Merge in all the trunk changes from the previous year. This breaks the cursor-hint mechanism, but provides a baseline for trouble-shooting. (check-in: 82a7a61b user: drh tags: cursor-hints)
18:26
Add the sqlite3rbu_savestate() function to the rbu extension. To force rbu to save its state to disk without closing the sqlite3rbu* handle. (check-in: 851a875a user: dan tags: trunk)
13:54
Experimental code (untested) for a JSONB datatype. (check-in: e3596ac7 user: drh tags: json)
11:46
Avoid invoking system call unlink() directly from RBU code. Use the xDelete method of the default VFS instead. (check-in: ee966af8 user: dan tags: trunk)
2015-08-12
19:42
Avoid reading frames that have already been checkpointed from the wal file. (check-in: 5669ac4a user: dan tags: wal-read-change)
17:23
Add the json_object() function. (check-in: 414a95f3 user: drh tags: json)
16:49
Begin adding an extension that provides JSON SQL functions. (check-in: dde8afdd user: drh tags: json)
15:36
Minor optimization for fts5 API xInst(). (check-in: efb7c9c5 user: dan tags: trunk)
12:11
Add the xPhraseFirst() and xPhraseNext() fts5 APIs, for faster iteration through a single phrases position list. Also optimize xInst() and xInstCount() a bit. (check-in: f7682435 user: dan tags: trunk)
2015-08-11
18:18
Fix the retry mechanism on file locks. (check-in: 600df309 user: drh tags: apple-osx)
14:25
Merge fixes from the fts5NoWarn branch. (check-in: 61cb2fc6 user: dan tags: trunk)
13:41
Add some extra timestamps to the experimental log output. (Leaf check-in: b09e3ea7 user: dan tags: experimentalIoLog)
10:59
Add a tcl interface for the experimental logging functionality. (check-in: e844304d user: dan tags: experimentalIoLog)
01:45
Two more places where logging of freelist trunk pages is needed. (check-in: 56ff336e user: drh tags: experimentalIoLog)
2015-08-10
20:53
Record when an allocated page is taken from the freelist trunk. (check-in: bb5d7782 user: drh tags: experimentalIoLog)
20:22
Add the sqlite3_experimental_log_open() interface. This is for diagnostic use only and is not intended to ever go on trunk. (check-in: ac5d2e9d user: drh tags: experimentalIoLog)
2015-08-08
23:30
Fix compiler warnings and remove unreachable code. (check-in: fd5608fb user: drh tags: trunk)
23:23
Fix an assert() that was in the wrong spot. (Closed-Leaf check-in: 962b6cd6 user: drh tags: warnings)
22:47
Fix compiler warnings and remove unreachable code. (check-in: be190fe7 user: drh tags: warnings)
15:13
Update RBU to avoid repreparing a statement immediately after it is prepared. (check-in: 1d75a41b user: dan tags: trunk)
2015-08-07
20:57
Enhance the query planner so that it is able to use partial indexes that use AND-connected terms in the WHERE clause. (check-in: 06576590 user: drh tags: trunk)
20:06
Add a specially formatted comment to shell.c to make it easier for scripts to edit. No code changes. (check-in: 6d47b35a user: dan tags: trunk)
09:42
Within a write-transaction on a wal database in mmap mode, check the page-cache for an entry before the wal file. This can be faster if the wal file is very large. (Leaf check-in: 3a82c8e6 user: dan tags: mmap-wal-bigtrans)
2015-08-06
12:54
increase the version number to 3.8.12 (check-in: e596a6b6 user: drh tags: trunk)
03:19
Fix harmless compiler warnings in FTS5 code. (Closed-Leaf check-in: 0ddb2532 user: mistachkin tags: fts5NoWarn)
03:09
Fix duplicate test numbering in the FTS5 matchinfo tests. (check-in: 483ebe89 user: mistachkin tags: trunk)
2015-08-05
19:35
Add tests for the matchinfo-like test function. Fix problems found in test and fts5 code by doing so. (check-in: 9e3aafe4 user: dan tags: trunk)
15:29
Update the spellfix virtual table extension so that an explicit "top = ?" constraint works even if there is also a "distance < ?" or "distance <= ?" constraint. (check-in: 08888383 user: dan tags: trunk)
08:01
Fix some problems in test code detected by cppcheck. (check-in: c9ff4ca4 user: dan tags: trunk)
07:43
Remove all references to "docid" within fts5 source code and comments. Replace with "rowid". (check-in: dffd358f user: dan tags: trunk)
2015-08-04
20:29
Add new test file fts5_test_mi.c, containing an implementation of a function similar to FTS4 matchinfo() for FTS5. (check-in: 4f9520a9 user: dan tags: trunk)
19:06
Improve the usage comment on sqlite3_analyzer: show the available switches. (check-in: 783f78e3 user: drh tags: trunk)
15:29
Update the [showdb] program so that the database file is read directly (bypassing the SQLite VFS) only if the --raw option is specified. Otherwise, it is read using the default VFS. Also, the URI syntax may be used on the command line to specify the name of the database file to examine, so an alternative VFS may be requested using a URI parameter. (check-in: e3c6d4b6 user: dan tags: trunk)
15:23
Update the [showdb] program so that the database file is read directly (bypassing the SQLite VFS) only if the --raw option is specified. Otherwise, it is read using the default VFS. An alternative VFS may be specified by specifying the database file to open using the URI syntax. (Closed-Leaf check-in: 9699e9bd user: dan tags: showdb-uri-option)
14:18
In the sqlite3_analyzer.exe utility, show the depth of each btree and report the average fanout of indexes and WITHOUT ROWID tables. (check-in: cd997770 user: drh tags: trunk)
2015-08-03
17:03
Add the "--uri" option to utility program "showdb". This option causes showdb to use sqlite with the SQLITE_OPEN_URI option to open the database file, instead of opening it directly using the OS open() function. (check-in: 90e34d51 user: dan tags: showdb-uri-option)
13:44
Allow a VIEW to reference undefined tables and functions when initially created. The error report is deferred until the VIEW is used. This allows views to be created before subviews and tables that the view references. (check-in: 70b57daf user: drh tags: trunk)
2015-08-01
18:18
Add extra tests for RBU and FTS3/4. (check-in: 34190449 user: dan tags: trunk)
2015-07-31
19:52
Add support for "fossil deltas" to RBU and "sqldiff --rbu". (check-in: e26ef165 user: dan tags: trunk)
18:59
Fix the sqlite3_stmt_busy() interface so that it always returns FALSE after the statement has returned SQLITE_DONE, even for ROLLBACK statements. Clarify the documentation. (check-in: 047d3475 user: drh tags: trunk)
17:48
Remove a duplicate "typedef struct Fts5Global Fts5Global;" from fts5_main.c (duplicate is in fts5Int.h). (check-in: 54a771fe user: dan tags: trunk)
15:14
When building the VSIX package for UAP, omit the AppLocal suffix for the MSVC runtime library because it is no longer needed. (check-in: fee7ad73 user: mistachkin tags: trunk)
15:13
Fix a problem causing [sqldiff --rbu] to fail on tables for which all columns are part of the PRIMARY KEY. (check-in: 93449e70 user: dan tags: trunk)
14:43
Fix a bug in the fts5 porter tokenizer preventing it from passing xCreate() arguments through to its parent tokenizer. (check-in: c3c672af user: dan tags: trunk)
2015-07-30
20:26
Add the --rbu switch to the "sqldiff" utility. (check-in: 098bea26 user: dan tags: trunk)
11:38
Allow RBU tables to be named "data[0-9]*_<target>" instead of strictly "data_<target>". Also update RBU so that it always processes data tables in order sorted by name. (check-in: 287aa306 user: dan tags: trunk)
11:26
Return an error message (instead of segfaulting) if test function fts5_expr() is invoked with no arguments. (check-in: 8e818b89 user: dan tags: trunk)
2015-07-29
22:38
Support building VSIX packages for UAP using Visual Studio 2015 and the Windows 10 SDK. (check-in: 96559adb user: mistachkin tags: trunk)
22:37
Update Windows 10 SDK version for RTM. (Closed-Leaf check-in: 80ab338c user: mistachkin tags: msvc2015)
21:47
Add SQLITE_DISABLE_INTRINSIC define to disable use of intrinsic functions (e.g. for certain older compilers and/or platforms). (check-in: f0075d73 user: mistachkin tags: trunk)
20:24
Fix the releasetest.tcl script so that it ignore cast overflow errors that recent versions of clang generate but which are unavoidable given the test input. (check-in: a0020c57 user: drh tags: trunk)
20:00
Version 3.8.11.1 (check-in: cf538e27 user: drh tags: trunk, release, version-3.8.11.1)
15:22
Restore an undocumented side-effect of PRAGMA cache_size: it forces the database schema to be parsed. Also increase the version number to 3.8.11.1. (check-in: e4628de3 user: drh tags: trunk)
14:58
Update comments in fts5.h describing the xColumnCount() API function. (check-in: a623eb55 user: dan tags: trunk)
14:46
Increase the version number to 3.8.11.1 (Closed-Leaf check-in: 326d746d user: drh tags: branch-3.8.11)
14:10
The "PRAGMA cache_size" reads the database schema, as it has done in all prior versions of SQLite. This side-effect of cache_size is undocumented, but apparently it does get used and its absence from 3.8.11 was causing problems. (check-in: 4489722a user: drh tags: branch-3.8.11)
12:14
Only allow UNLOCKED transactions to commit if none of the pages read by the transaction have been modified since it was opened. (check-in: 0b971842 user: dan tags: begin-concurrent)
2015-07-28
19:35
Update batch build tool library paths for MSVC 2015. (check-in: d431d4e1 user: mistachkin tags: msvc2015)
18:53
Fix the xfer optimization for WITHOUT ROWID tables so that it correctly updates the change count returned by sqlite3_changes(). (check-in: eff43715 user: drh tags: trunk)
16:46
Add some test cases and fix some small problems with BEGIN UNLOCKED transactions. (check-in: 6da0e962 user: dan tags: begin-concurrent)
2015-07-27
19:57
Clarification to the documentation for sqlite3_result_zeroblob64(). No changes to code. (check-in: c98175e9 user: drh tags: trunk)
19:31
Add an experimental "BEGIN UNLOCKED" command. (check-in: 80794216 user: dan tags: begin-concurrent)
13:49
Version 3.8.11 (check-in: b8e92227 user: drh tags: trunk, release, version-3.8.11)
12:19
Merge the fts5-btree-index branch with this one. FTS5 changes only. (check-in: 9f1dcdc3 user: dan tags: trunk)
11:49
Bump the "version" field in the fts5 config table. (Closed-Leaf check-in: 92c91789 user: dan tags: fts5-btree-index)
11:43
Minor tweak to the SQL schema used by fts5. (check-in: 427bf09b user: dan tags: fts5-btree-index)
11:01
Remove a potentially undefined behaviour involving signed integers and bitshift operations from fts5_hash.c. (check-in: ad6286ab user: dan tags: fts5-btree-index)
10:46
Merge latest trunk changes with this branch. (check-in: 5ec933c2 user: dan tags: fts5-btree-index)
2015-07-25
19:26
Remove a duplicated "if" condition from fts3.c. (check-in: ee348b12 user: dan tags: trunk)
14:26
Fix the rowallock.test script so that it works with builds that do not support mmap mode. (check-in: 7efed578 user: dan tags: trunk)
14:12
Fix the wal3.test module so that it works with the memsubsys1 permutation. (check-in: af85b01d user: drh tags: trunk)
12:03
Fix a test script problem in memsubsys2.test. (check-in: 70885729 user: dan tags: trunk)
03:10
Disable the page cache bulk allocation for the shrink.test and wal.test modules. (check-in: 3418f1f1 user: drh tags: trunk)
2015-07-24
23:28
Fix the zeroblob.test script so that it works even on builds where the SQLITE_MAX_LENGTH has been raised to 2147483645. (check-in: db129149 user: drh tags: trunk)
22:21
Merge test improvements and minor fixes from trunk. (check-in: 0298a9a7 user: drh tags: sessions)
21:19
Enable the RBU extension to compile cleanly on Windows using MSVC. (check-in: cca79fdc user: mistachkin tags: trunk)
20:43
For Windows CE, a different header is required for the byteswap intrinsics. (check-in: 2d572b8c user: mistachkin tags: trunk)
20:34
Fix warnings in fts5 code. (check-in: bd4f156d user: dan tags: trunk)
19:56
Fix the pragma2.test module so that it works with SQLITE_ENABLE_MEMORY_MANAGEMENT. (check-in: de281a4f user: drh tags: trunk)
18:58
Allow the RBU module to read data from appropriately named SQL views created within the RBU database. (check-in: 45c6a760 user: dan tags: trunk)
18:22
Fix a test script bug introduced by [562687d9]. (check-in: a343745d user: dan tags: trunk)
17:36
Add the sqlite3_bind_zeroblob64() API. (check-in: 1997ee54 user: dan tags: trunk)
17:26
New makefile target "fastfuzztest" runs the same tests as "fuzztest" but with a 100M memory size limit. This more than doubles the speed. The original unlimited "fuzztest" is still run on a "fulltest". (check-in: cfeb1b1c user: drh tags: trunk)
17:14
Fix compiler warnings. Get the new sqlite3_result_zeroblob64() working on loadable extensions. (check-in: f8991e6f user: drh tags: trunk)
16:24
Add the sqlite3_result_zeroblob64() API. Use it in the SQL zeroblob() function. (check-in: c6445b9f user: dan tags: trunk)
15:49
More robust handling of zeroblob() with oversized arguments. Fix fuzzcheck so that it can be run with limited heap memory. (check-in: 4e3e516a user: drh tags: trunk)
14:17
Modify a few test scripts to avoid leaving the sqlite3Config structure in a non-default state. (check-in: 562687d9 user: dan tags: trunk)
00:02
Update RBU description comment in the header file. No changes to code. (check-in: 119883a2 user: mistachkin tags: trunk)
2015-07-23
21:59
Merge all changes in the latest 3.8.11 beta into the sessions branch. Changes include the rename of OTA to RBU, the WITHOUT-ROWID-OR-Skipscan fix, and improvements to pcache1. (check-in: 7f0ee770 user: drh tags: sessions)
20:44
Change the name of the OTA extension to RBU: Resumable Bulk Update. (check-in: 017c5019 user: drh tags: trunk)
17:16
When SQLITE_OMIT_LOOKASIDE is set, do not allocate any lookaside memory since it will never be used. (check-in: 0ffd499f user: drh tags: trunk)
16:39
The sqlite3ExprCodeGetColumn() is not guaranteed to put the result in the register requested. Fix the skip-scan code generator for WITHOUT ROWID tables so that it always checks the register and copies the result if it lands in the wrong register. Fix for ticket [8fd39115d8f46ece70e7d4b3]. (check-in: 793e206f user: drh tags: trunk)
2015-07-21
19:22
Fix harmless compiler warning in MSVC 2015. (check-in: 01c8b9cc user: mistachkin tags: trunk)
2015-07-19
19:53
Cleanup the 'config.h' file in the appropriate distclean targets. (check-in: e0a99780 user: mistachkin tags: trunk)
2015-07-17
12:42
More adjustments to the malloc5.test module so that it works correctly with the new pcache1 bulk allocation. (check-in: 2a7b3a44 user: drh tags: trunk)
01:16
Avoid a harmless compiler warning. (check-in: 2288842b user: drh tags: trunk)
2015-07-16
20:24
Merge trunk changes, including fixes for compiler warnings in fts5 code, with this branch. (check-in: 7190d79b user: dan tags: fts5-btree-index)
20:17
Fix compiler warnings in fts5 code. (check-in: e9bf275c user: dan tags: trunk)
18:37
Fix harmless compiler warnings. (check-in: 9a592cf9 user: drh tags: trunk)
18:18
Defer the bulk pcache1 memory allocation until the first page allocation request. Limit the size of the pcache1 bulk allocation to the cache_size setting. Deallocate the bulk allocation on a sqlite3_db_release_memory() request, if the bulk allocation is completely unused. (check-in: b79a4aff user: drh tags: trunk)
17:29
Fix compilation issues with SQLITE_OMIT_COMPOUND_SELECT defined. (check-in: 9c39d464 user: mistachkin tags: trunk)
2015-07-15
23:15
Enable memory-mapped I/O on FreeBSD and DragonFly. (check-in: 2cdd6479 user: drh tags: trunk)
21:00
Make the debugging line numbers in the amalgamation more accurate. (check-in: 3b34e95c user: mistachkin tags: trunk)
19:46
Use a WITHOUT ROWID table to index fts5 btree leaves. This is faster to query and only slightly larger than storing btree nodes within an intkey table. (check-in: 862418e3 user: dan tags: fts5-btree-index)
18:35
Fix some harmless compiler warnings. (check-in: 110cd84f user: drh tags: trunk)
18:04
Attempt to fix harmless warnings generated by GCC and Clang runtime analyzers. (check-in: b522c95d user: drh tags: trunk)
13:56
Fix the fuzz3.test script so that it works with the new bulk pagecache allocation feature. (check-in: 829a2dba user: drh tags: trunk)
2015-07-14
22:43
Amplify the comment on renderLogMsg() that explains the problems associated with calling sqlite3_log() from deep within the memory allocator. (check-in: a73d7128 user: drh tags: trunk)
21:56
Further refine FTS5 cleanup in Makefiles. (check-in: b53a9506 user: mistachkin tags: trunk)
21:56
Skip trying to include 'intrin.h' when compiling for WinCE with MSVC. (check-in: 6db90ca2 user: mistachkin tags: trunk)
17:18
Fix some harmless compiler warnings. (check-in: 3de030c9 user: mistachkin tags: trunk)
15:39
Merge trunk changes, including the addition of FTS5 and pcache1 performance enhancements. (check-in: db4cbefb user: drh tags: sessions)
14:48
Always invoke the profile callback even if the statement does not run to completion. (check-in: 202479aa user: drh tags: trunk)
00:36
Refine cleaning of FTS5 files by Makefile targets. (check-in: e548d77b user: mistachkin tags: trunk)
2015-07-13
23:55
Fix the origination date on the loadfts.c utility program. (check-in: 5c76c062 user: drh tags: trunk)
18:01
Fix the header comment on the loadfts.c utility program. (check-in: 955ad4ae user: drh tags: trunk)
2015-07-10
17:55
Fix inconsistencies in formatting of fts5 docs. (check-in: 5fb4c771 user: dan tags: trunk)
2015-07-09
20:46
Improve the performance of docid merges in fts5. (check-in: b2de77a0 user: dan tags: trunk)
19:02
Reduce the number of calls to malloc() made by fts5. (check-in: 898618cc user: dan tags: trunk)
2015-07-08
17:59
Fix two problems that could cause fts3 auxiliary functions to occasionally misbehave if used with match expressions that contain both OR and NEAR. (check-in: 372c1db2 user: dan tags: trunk)
16:22
Enhance the pcache1 page cache so that it tries to allocate a block of SQLITE_DEFAULT_PCACHE_INITSZ pages from malloc() on startup, and uses those preallocated pages when possible rather than going to malloc() for each individual page. About a 5% performance increase for some workloads. (check-in: 5348ffc3 user: drh tags: trunk)
14:13
Comment fix. No changes to code. (Closed-Leaf check-in: c1e2ed0e user: drh tags: pcache-bulk-local)
13:40
Do not do the bulk pcache1 allocations if SQLITE_CONFIG_PAGECACHE specifies a global page cache buffer. (check-in: 75d98dae user: drh tags: pcache-bulk-local)
12:25
Early detection of file corruption in a debugging routine, before the invalid data can cause problems. (check-in: b27a47fe user: drh tags: trunk)
01:22
Avoid left-shifting bits into the sign of a signed integer, as such behavior is technically undefined. (check-in: 9417b402 user: drh tags: pcache-bulk-local)
2015-07-07
21:14
Add a compile-time constant for configuring the default pagecache setup. (check-in: ad5fdfba user: drh tags: pcache-bulk-local)
19:35
Merge the Fts5MultiSegIter and Fts5IndexIter objects. (check-in: 6ace7354 user: dan tags: trunk)
19:07
Add a test case to verify that "PRAGMA data_version" works as expected when an OTA client writes to the database. (check-in: 6441f2dc user: dan tags: trunk)
15:14
No need to test sqlite3GlobalConfig.bCoreMutex when SQLITE_THREADSAFE==0. (check-in: 26db0fee user: drh tags: pcache-bulk-local)
14:06
Simplify the page recycling condition in pcache1. Fix test cases to work with the latest changes. (check-in: 5b60df55 user: drh tags: pcache-bulk-local)
08:29
Further optimizations for fts5 b-tree seeks. (check-in: f3789968 user: dan tags: trunk)
2015-07-06
20:57
A unified cache is now only used for SQLITE_ENABLE_MEMORY_MANAGEMENT, or if SQLITE_CONFIG_PAGECACHE defines a shared start-time page cache buffer and the application is single-threaded. (check-in: d5ff1d69 user: drh tags: pcache-bulk-local)
20:27
Speed up seek operations on fts5 b-tree structures. (check-in: 7b7da1eb user: dan tags: trunk)
18:54
Enhance separate pcache1 to allocate a block of pages from heap on startup, if possible, for a 5.2% performance improvement. (check-in: aa7341c8 user: drh tags: pcache-bulk-local)
2015-07-05
22:15
Do not allow recursive CTEs that use aggregate queries in the recursive part. (check-in: 6d2999af user: drh tags: trunk)
2015-07-04
18:44
Optimize seek operations on fts5 b-trees. (check-in: 8cf02090 user: dan tags: trunk)
18:15
Preserve the number of requested PAGECACHE pages even if the memory pointer or size is zero. Enhance the pcache1.c header comment to explain the memory layout of a page cache line. (check-in: dacb2a61 user: drh tags: trunk)
15:35
Fix a problem in the fts5 integrity-check. (check-in: 4e473559 user: dan tags: trunk)
11:14
Do not preserve the btreeInitPage() results in PRAGMA integrity_check if there were cell sizing errors because PRAGMA cell_size_check was turned off during the btreeInitPage() call. (check-in: 743bf1f1 user: drh tags: trunk)
00:04
Sync up Makefile clean targets for FTS5. (check-in: 43ead44e user: mistachkin tags: trunk)
2015-07-03
23:29
Correction to check-in [1025873fdf], tighten up the number of static test mutexes. (check-in: 4e515897 user: mistachkin tags: trunk)
23:12
Update clean target in MSVC makefile. (check-in: e6c03e72 user: mistachkin tags: trunk)
23:11
Enhance mutex testing to include APP and VFS static mutexes. (check-in: 1025873f user: mistachkin tags: trunk)
21:38
Add static mutexes for use by the built-in / third-party VFSs and use the built-in VFS mutex where appropriate. (check-in: b202e2a1 user: mistachkin tags: trunk)
20:47
Rework the Fts5MultiSegIter structure a bit to make it more efficient. (check-in: 0778825d user: dan tags: trunk)
19:13
Speed up eof checks on fts5 cursors. (check-in: 3df4af5d user: dan tags: trunk)
17:54
Enable use of the __builtin_bswap32() only with GCC 4.3 and higher. (check-in: 030f60a7 user: mistachkin tags: trunk)
17:14
Avoid freeing the array of instance matches each time the fts5 xNext() method is called. (check-in: b9b0c1e5 user: dan tags: trunk)
14:34
New command-line options for speedtest1: --multithread, --nomemstat, --serialized, and --singlethread (check-in: 2b756722 user: drh tags: trunk)
2015-07-02
20:12
Copy fts5.h into the build directory as part of building fts5.c. Also remove code to edit fts5parse.c from various Makefiles and add it to mkfts5c.tcl. (check-in: 4d8f03dc user: dan tags: trunk)
19:47
When doing coverage analysis of a btree page for pragma integrity_check, make the first entry (that covers the header, cell index, and gap) implied, for a performance boost and size reduction. (check-in: e53d497c user: drh tags: trunk)
18:52
Minor change to mkfts5c.tcl so that fts5.c can be used according to the instructions in loadext.html. (check-in: edbcccd3 user: dan tags: trunk)
18:47
Merge in the latest enhancements from trunks, especially the use of _byteswap_ulong() and similar intrinsics on MSVC. (check-in: 85ca4409 user: drh tags: sessions)
18:16
Add fts5_source_id() SQL function, similar to sqlite_source_id(). (check-in: ec257348 user: dan tags: trunk)
16:52
Fix harmless compiler warnings and one macro VVA_ONLY macro usage issue. (check-in: bcc8a755 user: mistachkin tags: trunk)
16:50
Simplify FTS5 handling in the MSVC makefile. (check-in: f022e043 user: mistachkin tags: trunk)
16:29
Fix a (harmless) shadowed local variable definition in the integrity_check logic. (check-in: 3a26a919 user: drh tags: trunk)
16:17
Smaller and faster PRAGMA integrity_check that also does a better job of detecting errors. Some output text describing discovered file corruption has changed for clarity. (check-in: 251a7590 user: drh tags: trunk)
15:52
Remove "#ifdef SQLITE_ENABLE_FTS5" from individual fts5 source files. Add a single "#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS5)" to fts5.c. (check-in: 7819002e user: dan tags: trunk)
01:38
Add the --shrink-memory option to the speedtest1 test program. (check-in: c9ddbd88 user: drh tags: trunk)
2015-07-01
19:59
Avoid create a stack from in sqlite3BackupUpdate() in the common case where the first argument is NULL. (check-in: 2a897b9e user: drh tags: trunk)
17:53
Simplification of PRAGMA integrity_check logic. Make sure that the depth of the right-most subtree is correct. Size reduction and performance increase, with no change in output. (check-in: 550705fc user: drh tags: trunk)
17:13
Rework the PRAGMA integrity_check logic. Simplify the checkTreePage() routine and clean up the error messages generated. (Closed-Leaf check-in: 1c522123 user: drh tags: integrity-check-refactor)
04:08
Fix some harmless compiler warnings. (check-in: 307195c8 user: drh tags: trunk)
01:31
Change integrity_check to analyze the cells of a page in reverse order, as this will tend to insert the cells into the analysis heap in increasing order by address, which is the most efficient way to load a min-heap. (check-in: 59ad912c user: drh tags: trunk)
2015-06-30
17:28
Make use of the _byteswap_ushort() and _byteswap_ulong() compiler intrinsics for MSVC, when available. (check-in: fe144dd7 user: mistachkin tags: trunk)
16:29
Merge all the latest enhancements from trunk. This merge include FTS5 and a number of notable performance enhancements. (check-in: 39936b33 user: drh tags: sessions)
15:10
Make use of built-in bswap32() and bswap16() functions in GCC/Clang for a significant performance improvement there. (check-in: 8bfcda3d user: drh tags: trunk)
14:01
Only use __builtin_bswap16() with GCC 4.8 and later. (Closed-Leaf check-in: ce8177e3 user: drh tags: bswap-functions)
13:28
Remove the use of htonl() in the previous check-in due to linkage issues. Add the get2byteAligned() macro and use it for access to the cell offsets on btree pages for about a 1% performance gain. (check-in: 79ff36b7 user: drh tags: bswap-functions)
12:47
Make use of htonl() and __builtin_bswap32() for faster implementations of sqlite3Get4byte() and sqlite3Put4byte(). (check-in: bc27ebd7 user: drh tags: bswap-functions)
11:07
Change an unreachable branch into an assert() in sqlite3PagerAcquire() and optimize sqlite3PcacheOpenSavepoint() by factoring out rarely used code into a subroutine. (check-in: b406b20e user: drh tags: trunk)
03:57
Optimization to the sqlite3PcacheFetch() logic. (check-in: d9a0481c user: drh tags: trunk)
03:34
Put all variable declarations for sqlite3PagerWrite() at the beginning of the block. Syntax only - no logic changes. (check-in: a0fa6b3b user: drh tags: trunk)
03:18
Implement sqlite3Strlen30() using strlen() from the C library. (check-in: 8001aa52 user: drh tags: trunk)
03:13
Change sqlite3ApiExit() so that its first argument is never NULL. (check-in: 791b706e user: drh tags: trunk)
02:47
Put BtCursor objects on a singly-linked list instead of a doubly-linked list. Add the BTCF_Multiple flag. Only invoke saveAllCursors() when using a cursor that has BTCF_Multiple set. (check-in: 429ccef2 user: drh tags: trunk)
01:25
Convert several 5-year-old and older NEVER() macros into assert(). (check-in: ed54c14e user: drh tags: trunk)
2015-06-29
23:01
From sqlite3BtreeInsert(), bypass the btreeMoveto() routine for table inserts and go directly to sqlite3BtreeMovetoUnpacked(). (check-in: 53fe685d user: drh tags: trunk)
20:53
Add a bypass path in sqlite3PagerWrite() for pages with the PGHDR_WRITEABLE bit set, for about a 1% performance increase. (check-in: ba425a6a user: drh tags: trunk)
19:08
Combine subjRequiresPage() and subjournalPage() into a single subjournalPageIfRequired() routine. (check-in: 3b65eb56 user: drh tags: trunk)
18:29
Add the PGHDR_WRITEABLE bit for PgHdr.flags which is used to distinguish between pages that are on the dirty list and pages that are safe to modify. (check-in: 7c4ef7b7 user: drh tags: trunk)
18:14
Fix over-length source code lines in pager.c. (check-in: 14de3d39 user: drh tags: trunk)
15:41
Fix minor problems in the ota demo application. (check-in: 6aaaec6e user: dan tags: trunk)
14:11
Simplifications and performance improvement in pager_write(). (check-in: ab7aeeea user: drh tags: trunk)
04:21
Add the new PGHDR_CLEAN bit to PgHdr.flags in pcache.c. This bit is always the opposite of PGHDR_DIRTY. Use the extra bit to avoid a comparison for a small performance boost. (check-in: 8619fc34 user: drh tags: trunk)
03:28
Very small size reduction and performance increase in sqlite3BitvecTest(). (check-in: 9b3a7281 user: drh tags: trunk)
00:52
Move an assert() and testcase() into their correct position within getAndInitPage(). (check-in: 18115164 user: drh tags: trunk)
00:21
Use tail recursion in pcache1Unpin() to get a small size reduction and speed improvement. (check-in: fde70472 user: drh tags: trunk)
2015-06-28
17:33
Comment typo fix and minor cleanup in the pager. No logic changes. (check-in: 94ef1701 user: drh tags: trunk)
02:58
Avoid unnecessary calls to sqlite3VdbeSerialTypeLen() for integer serial types, for a small size reduction and a speed increase. (check-in: 9cd30d33 user: drh tags: trunk)
2015-06-27
23:55
Make greater use of BtCursor.curIntKey. (check-in: 63998471 user: drh tags: trunk)
22:49
Add the BtCursor.curIntKey field and use it for a small size reduction and performance boost. (check-in: 4a17df13 user: drh tags: trunk)
20:55
Enhancements to the previous check-in to make it a little smaller and faster. (check-in: 291d9e0c user: drh tags: trunk)
19:45
Performance improvements in moveToChild() by shifting some work over to getAndInitPage(). Net improvement is about 800K cycles at cost of 30 bytes. (check-in: 1956a4ce user: drh tags: trunk)
15:51
Manually inline the call from getAndInitPage() to btreeGetPage() for a savings of 2.5 million cycles at a cost of less than 100 bytes. (check-in: 7f65b96b user: drh tags: trunk)
14:59
Add releasePageNotNull() as an alternative to releasePage() when the argument is guaranteed to be non-NULL, and use it for a small performance gain. (check-in: 9383a688 user: drh tags: trunk)
03:58
Add the Mempage.aDataOfst field and use it in sqlite3BtreeMovetoUnpacked() for about a 2 million cycle gain. (check-in: bee94dc3 user: drh tags: trunk)
2015-06-26
20:45
Treat compilation of FTS5 for the loadable extension specially with MSVC. (check-in: 7c610276 user: mistachkin tags: trunk)
20:25
Merge fts5 branch into trunk. (check-in: d27d9965 user: dan tags: trunk)
20:14
Merge latest trunk with this branch. (Closed-Leaf check-in: 8671b9e1 user: dan tags: fts5)
20:13
Remove unnecessary lines from fts3.h and main.mk. (check-in: c1b268ce user: dan tags: fts5)
20:08
Fix a segfault that could follow an OOM error in fts5. (check-in: 713239b8 user: dan tags: fts5)
19:43
Small size reduction and performance increase on the OP_IdxInsert opcode. (check-in: b6bedc2e user: drh tags: trunk)
19:33
Merge latest trunk changes with this branch. (check-in: 2a1af0f2 user: dan tags: fts5)
18:50
Fix some cases in the fts5 code where a corrupt database could cause a buffer overread. (check-in: 360c57bb user: dan tags: fts5)
18:47
Further optimization of SQL function dispatch. Improvements to opcode documentation. (check-in: eaddbf29 user: drh tags: trunk)
18:16
Cache the sqlite3_context structure in the P4 operand of VDBE programs for faster SQL function dispatch. (check-in: 2abc44eb user: drh tags: trunk)
17:10
Merge changes to get FTS5 working with MSVC. (check-in: 954231d2 user: mistachkin tags: fts5)
16:55
Merge upstream changes. Get the test fixture working with FTS5. Fix compiler warnings. (Closed-Leaf check-in: bfcd1608 user: mistachkin tags: fts5Msvc)
16:42
Remove fts5 initialization code from core file main.c. (check-in: c91a93b3 user: dan tags: fts5)
16:17
Add FTS5 DLL target for MSVC. (check-in: be85b824 user: mistachkin tags: fts5Msvc)
13:31
Cache the most recently sqlite3_context used by OP_Function and reuse it on subsequent calls, if appropriate. This gives a noticable performance boost. (Closed-Leaf check-in: 2f31bdd1 user: drh tags: function-ctx-cache)
04:34
Initial changes to get FTS5 working with MSVC. (check-in: ef2052f8 user: mistachkin tags: fts5Msvc)
03:12
Fix harmless compiler warning in assert statement. (check-in: 7097716c user: mistachkin tags: trunk)
02:41
Simplify the pcache by not keeping continuous track of page 1 but instead just loading page 1 on the rare occasions when it is actually needed. (check-in: 015302f1 user: drh tags: trunk)
2015-06-25
23:52
Optimization to sqlite3_value_bytes() for the common case that does not require a data transformation. (check-in: 8d79f3a1 user: drh tags: trunk)
20:36
Fix Makefile.in to account for recent changes. Update fts5 test scripts so that they do not run if SQLITE_ENABLE_FTS5 is not defined. (check-in: 31752207 user: dan tags: fts5)
20:16
Merge latest trunk changes into this branch. (check-in: fcd8f7ce user: dan tags: fts5)
20:10
Add a script to combine all fts5 code into a single file - fts5.c - that can be used to build an SQLite loadable extension. (check-in: 46e86b06 user: dan tags: fts5)
19:53
Simplifications and performance improvements in insertCell(). (check-in: 7d02e6c9 user: drh tags: trunk)
18:36
More simplifications and performance improvements to cell allocation logic associated with allocateSpace(). (check-in: 78da0f69 user: drh tags: trunk)
16:01
Reorder the terms of a conditional for a small performance gain. (check-in: d67b0ed1 user: drh tags: trunk)
15:44
Merge all the latest enhancements from trunk. (check-in: 924f4712 user: drh tags: sessions)
15:21
Remove a NEVER() that is in fact reachable. (check-in: f824e66b user: drh tags: trunk)
15:04
Minor optimization to allocateSpace(). (check-in: d007bc33 user: drh tags: trunk)
13:03
Enhance the Btree object to remember whether or not it is holding an Incrblob cursor. Use this knowledge to improve performance in the common case where it does not. (check-in: 476b1156 user: drh tags: trunk)
02:26
Remove a line of code that doesn't do any useful work. (check-in: 3ee888be user: drh tags: trunk)
02:25
Increase the default timeout on fuzzcheck to 120 seconds - sufficient for running under valgrind on a slow workstation. (check-in: fad0eacc user: drh tags: trunk)
2015-06-24
23:44
Add the --timeout option to fuzzcheck. (check-in: a8f4f7fa user: drh tags: trunk)
23:17
Fix fuzzcheck so that it works with SQLITE_OMIT_PROGRESS_CALLBACK. (check-in: 7a9c4eb3 user: drh tags: trunk)
18:22
Add "ON CONFLICT" handling to the spellfix module. (check-in: 07937a81 user: drh tags: trunk)
17:21
Add "ON CONFLICT" handling to the spellfix module. (Closed-Leaf check-in: 1d04def7 user: dan tags: spellfix-constraints)
14:45
In the fuzzcheck test program, use the progress handler to limit the number of VDBE cycles to avoid getting stuck if the SQL under test contains an infinite CTE loop. Add the --limit-vdbe command-line option. (check-in: fbf9c432 user: drh tags: trunk)
14:36
Fix the progress handler so that it does not fire too soon during an sqlite3_step() call other than the first. (check-in: b41ef5d6 user: drh tags: trunk)
13:32
Fix a harmless compiler warning. (check-in: 3b6fa95e user: drh tags: trunk)
13:25
Rig the fuzzcheck test program so that it times out after 10 seconds in case of an infinite loop in the test case. (check-in: 659cfc9d user: drh tags: trunk)
13:05
Update the database fuzz test cases to cover all recent findings. (check-in: 47ba7d96 user: drh tags: trunk)
12:44
Add the --rebuild object to fuzzcheck. (check-in: db87664a user: drh tags: trunk)
12:24
Prevent an infinite loop while searching a corrupt freelist. (check-in: 4e5424fe user: drh tags: trunk)
12:07
Strengthen the new balance_nonroot() code against various corrupt database problems. (check-in: 5ba98343 user: drh tags: trunk)
10:46
Adjustment to a malloc test so that it accepts a narrow range of values to account for variations in malloc subsystems. (check-in: e0195070 user: drh tags: trunk)
01:07
Remove an invalid NEVER() and add a test case to cover it. (check-in: 14b73d20 user: drh tags: trunk)
00:05
Performance optimization on balance_nonroot() and related routines. 2.6% faster overall with a size increase of less than 750 bytes. (check-in: 25131e70 user: drh tags: trunk)
2015-06-23
23:31
Mark some branches as unreachable after the recent change that recognizes mismatch result set sizes on compound SELECT statements sooner. (check-in: c8d1f305 user: drh tags: trunk)
21:35
Testability improvement. (Closed-Leaf check-in: eed6a331 user: drh tags: btree-opt2)
18:47
Improve test coverage of fts5. (check-in: df5ccea8 user: dan tags: fts5)
18:24
Multiple overflow cells are always adjacent and sequential. Exploit this invariant for a small size reduction and performance increase and add assert()s to prove the invariant. (check-in: f77f2f48 user: drh tags: btree-opt2)
17:09
Faster loading of cell pointers into the b.apCell array in balance_nonroot. (check-in: fda89b05 user: drh tags: btree-opt2)
16:00
Avoid unnecessary cachedCellSize() calls in the cell partition adjustment phase of balance_nonroot(). (check-in: 6319ee12 user: drh tags: btree-opt2)
15:36
Change pageInsertArray() and pageFreeArray() so that they use the CellArray object and compute cell sizes as needed, resulting in smaller and faster code. (check-in: f7f41818 user: drh tags: btree-opt2)
15:06
Merge latest trunk changes with this branch. Add tests for columnsize=0. (check-in: ef44c71a user: dan tags: fts5)
14:49
Improvements to the way balance_nonroot() constructs the b.apCell array of pointers to cells. (check-in: ee44bb25 user: drh tags: btree-opt2)
13:02
Merge the compound SELECT operator fix from trunk. (check-in: a7be554f user: drh tags: btree-opt2)
12:19
Test that the left and right sides of a compound SELECT operator have the same number of expressions in the expanded expression list before beginning to generate code. (check-in: 4df852ce user: dan tags: trunk)
02:37
Avoid computing cell sizes in balance_nonroot() until they are really needed. This gives an overall 1.7% performance gain for about 1000 extra bytes of code space. (check-in: 43844537 user: drh tags: btree-opt2)
2015-06-22
20:02
Change the way that balance_nonroot() partitions cells between the sibling pages such that a scan of the cell size array is not required. (check-in: 16872871 user: drh tags: btree-opt2)
2015-06-20
18:13
Split out all four cases of cellSizePtr() into different methods, each optimized for the specific page type. This gives a 0.36% performance increase at a cost of about 300 bytes of code. (Leaf check-in: 522502ec user: drh tags: btree-opt)
14:11
Update the fuzztest data using the latest test vectors discovered by AFL. (check-in: b97f9cf7 user: drh tags: trunk)
13:18
Make sure that the likelihood() function does not mess up generation of result-set code when it is used (inappropropriately) in a result-set expression. (check-in: 7cdbae62 user: drh tags: trunk)
2015-06-19
20:31
Performance improvements in btreeParseCell() by inlining the varint decoder. (check-in: 172a864d user: drh tags: trunk)
20:08
Fix corner cases involving corrupt varint values in record headers. (Closed-Leaf check-in: 3189116b user: drh tags: btree-opt)
18:24
Performance improvements in btreeParseCell() by inlining the varint decoder. (check-in: faab0ed9 user: drh tags: btree-opt)
17:19
Add the MemPage.xParseCell method and provide various implementations (variations on the former btreeParseCellPtr()) depending on the page type. (check-in: 41d03d88 user: drh tags: trunk)
15:07
Make cellSizePtr() a method on the MemPage object, with alternative implementations depending on the page type. This results is a small performance improvement and size reduction. (check-in: 02f7e9d7 user: drh tags: trunk)
2015-06-18
15:26
Further #ifdef changes in speedtest1.c in order to support SQLite back to version 3.3.9 and perhaps even earlier. (check-in: 9246eca5 user: drh tags: trunk)
14:32
Pervent the likelihood() function from moving ON clause terms of a LEFT JOIN into the WHERE clause. Fix for ticket [5f60b11fc8e23490e2] (check-in: ed96e14a user: drh tags: trunk)
14:09
Show the values of Expr.flag in the AST of ".selecttrace" (check-in: a84d1004 user: drh tags: trunk)
12:37
Add #ifdefs to some features speedtest1.c so that it compiles with older versions of SQLite, going back to version 3.5.1. (check-in: f50dd154 user: drh tags: trunk)
2015-06-17
23:28
Performance improvement in sqlite3VdbeMemShallowCopy() for the common case where the receiver does not require prior resource deallocation. (check-in: d718ea36 user: drh tags: trunk)
19:06
Use 'binary' mode for popen with MSVC. (Closed-Leaf check-in: 7b84641e user: mistachkin tags: popenMsvc)
18:57
Improve spacing and comment style for the shell. No changes to code. (check-in: 5b547da0 user: mistachkin tags: trunk)
18:24
Improved comments on the fuzzcheck.c test program. No changes to code. (check-in: a7e27d19 user: drh tags: trunk)
18:18
Merge all recent enhancements and fixes from trunk. (check-in: 199bfb67 user: drh tags: sessions)
17:08
Fix a uninitialized variable use in the command-line shell when the ".open" command is invoked without any arguments. (check-in: fc4f4d1e user: drh tags: trunk)
13:20
Performance optimization and comment fixes for the LIKE and GLOB operators. (check-in: c89d7726 user: drh tags: trunk)
02:11
Make getCellInfo() a real function instead of a macro, for a size reduction and a 0.2% performance gain. (check-in: 55c393ea user: drh tags: trunk)
01:31
Optimizations to two VDBE accessory routines for a 0.2% performance increase. (check-in: 66d033b9 user: drh tags: trunk)
2015-06-16
16:39
Ensure that the CREATE TABLE AS statement correctly undoes partial changes to the sqlite_master table if the SELECT on the right-hand side aborts with an error. Fix for ticket [873cae2b6e25b] (check-in: 400e025e user: drh tags: trunk)
2015-06-15
16:40
Adjust ICU tests to account for recent changes in the official Unicode definition of whitespace. (check-in: 08165253 user: drh tags: trunk)
16:09
Fix a harmless comment typo. No code changes. (check-in: ae687652 user: drh tags: trunk)
14:43
Fix harmless compiler warnings. (check-in: b0badb99 user: drh tags: trunk)
12:58
Improved detection of database corruption in freeSpace(). (check-in: 29bcb568 user: drh tags: trunk)
10:49
Comment typo fix. No code changes. (check-in: 17f185ad user: drh tags: trunk)
2015-06-13
19:05
Added test cases based on Bruce Momjian's talk on SQL NULLs. (Leaf check-in: 68c168b5 user: drh tags: is-distinct-from)
11:48
Add the IS DISTINCT FROM and IS NOT DISTINCT FROM operators. (check-in: 0be44782 user: drh tags: is-distinct-from)
11:19
Omit mutex calls in pcache1 when the mutex is NULL, for a significant performance improvement. (check-in: caf8f574 user: drh tags: trunk)
11:10
Avoid unnecessary mutex usage in pcache1, for a significant speedup. (Closed-Leaf check-in: dcf4fb8d user: drh tags: faster-pcache1-fetch)
2015-06-12
13:49
Add a fast-path implementation of pcache1Fetch() for the common case of separate caches that do not use a mutex. (check-in: 760700ed user: drh tags: faster-pcache1-fetch)
13:04
Minor performance optimization in pcache1.c. (check-in: 2e8ad2ea user: drh tags: trunk)
12:54
Add the OP_ColumnsUsed opcode (when compiled with SQLITE_ENABLE_COLUMN_USED_MASK) as a hint to the b-tree layer as to which columns of a btree cursor will be used. (check-in: 711a176c user: drh tags: trunk)
2015-06-11
18:01
Merge recent trunk enhancements and fixes. (check-in: c39cb0e2 user: drh tags: sessions)
17:58
Merge trunk fixes. (Leaf check-in: 1df8cbbe user: drh tags: view-optimization)
17:26
Add the sqlite3changegroup_xxx() APIs to the sessions module. For combining multiple changesets or patchsets. (check-in: 0c1a901c user: dan tags: sessions)
14:19
Remove stray outputs from the test suite. (check-in: afc6db9b user: drh tags: trunk)
13:58
When generating code for partial indexes, be sure not to modify the index condition expression in the schema. (check-in: e63d01c6 user: drh tags: trunk)
2015-06-10
23:02
More test output refinements. (Closed-Leaf check-in: e64a5681 user: mistachkin tags: testerOutput)
22:51
Remove possibly stray output from various tests. (check-in: f38e0be5 user: mistachkin tags: testerOutput)
22:03
Fix minor typo in the quicktest MSVC makefile target. (check-in: 75b65f9d user: mistachkin tags: trunk)
20:00
Merge enhancements from trunk. (check-in: 0e23a079 user: drh tags: view-optimization)
18:53
"test" targets on all makefiles use --verbose=file --output=test-out.txt. Add the new "quicktest" target to all makefiles - designed to run in under three minutes. The --quick option on releasetest.tcl now uses quicktest. (check-in: 6ddef2ad user: drh tags: trunk)
17:20
Resolve FROM-clause subqueries after query planning instead of before. Greatly reduce the estimated cost of automatic indexes for VIEWs and ephemeral tables since performance problems there cannot be mitigated via a CREATE INDEX. (check-in: a1eaf171 user: drh tags: view-optimization)
14:27
Avoid passing constraints that are unusable due to LEFT or CROSS joins to virtual table xBestIndex() methods. (check-in: 7b446771 user: dan tags: trunk)
10:45
Fix the fts5 xRename() method. (check-in: 0f7fd513 user: dan tags: fts5)
2015-06-09
20:58
Add the "columnsize=" option to fts5, similar to fts4's "matchinfo=fts3". (check-in: aa12f9d9 user: dan tags: fts5)
15:58
Add the --output=$file and --verbose=(0|1|file) options to tester.tcl. (check-in: f7b2c703 user: dan tags: trunk)
10:58
Remove some repeated lines of source code. Probably introduced by careless cut'n'pasting. (Closed-Leaf check-in: a34cd71c user: dan tags: vtab-left-join)
2015-06-08
22:59
Code refactoring to try to shift FROM-clause subquery manifesting until after the query planner runs. Except this does not currently work because the query planner needs an estimated of the number of rows in the manifested table. Work in progress. (check-in: cabf2187 user: drh tags: view-optimization)
19:15
Add the valgrindfuzz target to unix makefile. (check-in: e62aed01 user: drh tags: trunk)
18:48
If a query contains "FROM t1 LEFT JOIN t2, t3, t4", ensure that tables t3 and t4 are not scanned before t2. The trunk already does this. (check-in: 0d9edfab user: dan tags: vtab-left-join)
18:05
Avoid passing constraints that are unusable due to LEFT or CROSS joins to virtual table xBestIndex() methods. (check-in: 80ee56dd user: dan tags: vtab-left-join)
17:42
Fix typo in comment. No changes to code. (check-in: e49c2917 user: mistachkin tags: trunk)
17:40
Split out some source code into new files: wherecode.c, whereexpr.c, and treeview.c. Other minor refactoring changes. (check-in: 50f33681 user: drh tags: trunk)
15:08
Factor out the TreeView parse tree printing module into a separate file. (check-in: c32ce54c user: drh tags: view-optimization)
14:23
Split more subfunctions of where.c out into a new whereexpr.c source file, for improved maintainability. (check-in: 46ef95c1 user: drh tags: view-optimization)
2015-06-06
20:12
Split out the bulk of the actual VDBE code generation logic from where.c into a new file, leaving behind the analysis logic. This makes the original where.c smaller and hopefully easier to edit. (check-in: faa0e420 user: drh tags: view-optimization)
19:23
Fix a comment in fts5.h. (check-in: e964b587 user: dan tags: fts5)
18:30
Code simplifications in select.c and where.c. (check-in: 4f20ac90 user: drh tags: view-optimization)
16:28
Fix handling of fts5 rowid constraints in the absence of a MATCH clause. Add tests to cover recently added branches. (check-in: 3a9cb648 user: dan tags: fts5)
00:18
Minor cleanup of the sqlite3Select() procedure. (check-in: f4c90d06 user: drh tags: view-optimization)
2015-06-05
22:33
Split FROM-clause subquery flattening and code generation into separate loops. (check-in: be8e3fc7 user: drh tags: view-optimization)
20:27
Provide one final Select tree dump prior to WHERE clause analysis when ".selecttrace 0x400" tracing bit is set with SELECTTRACE_ENABLED. Analysis and debug changes only - normal builds are unaffected. (check-in: 283bf0b6 user: drh tags: trunk)
19:05
Make use of range constraints on the rowid field of an fts5 table in full-text queries. (check-in: 32cbc0ed user: dan tags: fts5)
15:59
Add a new opcode to the VDBE that gives the b-tree a hint about the set of columns in a table or index that are actually used by the query. (Closed-Leaf check-in: f167bba4 user: drh tags: column-usage-hint)
2015-06-04
12:08
Change the name of SrcList.a[].zIndex to the more descriptive SrcList.a[0].zIndexedBy. (check-in: 6a9cf063 user: drh tags: trunk)
2015-06-03
11:23
Fix an fts5 problem in extracting columns from position lists containing large varints. (check-in: 4ea015ab user: dan tags: fts5)
2015-06-02
19:38
Change the fts5 multi-column syntax to use parenthesis instead of square brackets. (check-in: ab85a6fc user: dan tags: fts5)
19:36
Always check for cell overflow before returning a slot from the pageFindSlot routine in btree.c. (check-in: 9f035c45 user: drh tags: trunk)
18:09
For FROM-clause subqueries that cannot be flattened, try to push relevant WHERE clause terms of the outer query down into the subquery in order to help the subquery run faster and/or use less memory. Call this the "WHERE-clause push-down optimization". Do not confuse this with the completely different MySQL push-down optimization. (check-in: 6df18e94 user: drh tags: trunk)
18:07
Merge latest trunk changes with this branch. (check-in: c9ffda4a user: dan tags: fts5)
17:57
Reimplement [ec69e09a] so that each call to the xNext() method does not involve two iterations of the match expression tree (only one). (check-in: 80fe305b user: dan tags: fts5)
17:25
Add test cases for type affinity rules. (check-in: 9678646d user: drh tags: trunk)
16:19
Rename SQLITE_AFF_NONE to SQLITE_AFF_BLOB to avoid confusion with "no affinity". (check-in: 29ad9e91 user: drh tags: trunk)
16:09
Add the built-in affinity() SQL function. This turns out to be not as useful as originally envisioned, so abandon it on a branch. (Leaf check-in: 80889306 user: drh tags: affinity-func)
15:32
Rename SQLITE_AFF_NONE to SQLITE_AFF_BLOB. (Closed-Leaf check-in: bce3f041 user: drh tags: blob-affinity-rename)
14:02
Fix a faulty assert() in btree.c. Update the database fuzz test file with new test cases. (check-in: 4e621af1 user: drh tags: trunk)
09:20
Add the "finish_test" command to the end of new test script sessionE.test. (check-in: fb391407 user: dan tags: sessions)
09:19
Modify the sessions module to ignore all operations on tables with no primary keys as documented. (check-in: bdaf9575 user: dan tags: sessions)
2015-06-01
20:28
For FROM-clause subqueries that cannot be flattened, try to push WHERE clause terms of the outer query down into the subquery in order to help the subquery run faster and/or use less memory. (Closed-Leaf check-in: 297fae75 user: drh tags: subquery-opt)
19:17
Improve performance of the fts5 AND operator. (check-in: b43e9a5b user: dan tags: fts5)
18:13
Corrections to comments in expr.c. No code changes. (check-in: f925389e user: drh tags: trunk)
17:32
Break out the query flattener into a separate source-code file. (Closed-Leaf check-in: e3fa8b93 user: drh tags: flattener-in-new-file)
11:10
Typo fixes and additional background information in README.md. (check-in: 9b8e5823 user: drh tags: trunk)
09:15
Change fts5 expression processing to avoid linear scans of long doclists caused by phrases that match specific columns only. (check-in: ec69e09a user: dan tags: fts5)
2015-05-30
22:57
Updates to configure.ac to help it find where the TCL libraries hidden on Ubuntu 14.04. (check-in: c864ff91 user: drh tags: trunk)
22:05
Fix minor typo in comment. No changes to code. (check-in: 73fc058b user: mistachkin tags: trunk)
11:49
Remove the "#include sqlite3Int.h" from fts5Int.h. (check-in: e008c3c8 user: dan tags: fts5)
2015-05-29
19:04
Import recent enhancements from trunk. (check-in: 54bec164 user: drh tags: sessions)
19:00
Add extra tests and fixes for multi-column matches. (check-in: ae6794ff user: dan tags: fts5)
18:42
Ensure that allocateBtreePage() always clears the MemPage pointer when it fails due to an I/O or memory allocation error. (check-in: 09a38bf6 user: drh tags: trunk)
17:51
Move two unreachable conditionals inside of NEVER() or assert(). (check-in: db4e9728 user: drh tags: trunk)
17:13
Remove a corruption test in balance_nonroot that is superceded by a prior better check. (check-in: 00693682 user: drh tags: trunk)
15:55
Add syntax to fts5 used to specify that a phrase or NEAR group should match a subset of columns. For example "[col1 col2 ...] : <phrase>". (check-in: 0fc0ea20 user: dan tags: fts5)
15:15
Omit the rowallock.test script (Read-Only WAL lock) from the inmemory_journal permutation. (check-in: d21db330 user: drh tags: trunk)
14:47
Add support for automatic indexes on FROM-clause subqueries that are implemented via co-routine. (check-in: 020b8b10 user: drh tags: trunk)
14:36
Add some extra source-code comments and a test case. (Closed-Leaf check-in: 6d410442 user: drh tags: coroutine-autoindex)
13:55
An attempt to allow automatic index creation on subqueries accessed via co-routine. (check-in: 521345ad user: drh tags: coroutine-autoindex)
01:35
Using "SELECT ALL" instead of just "SELECT" on a query that uses a single unflattenable subquery or view in its FROM clause will force the subquery to be manifested into a temporary table rather than run incrementally using a co-routine. This is a stop-gap means of controlling the decision to manifest while we try to work out a better to make that decision automatically. (check-in: a29e117d user: drh tags: trunk)
2015-05-28
19:57
Optimizations for fts5 queries that match against a specific column. (check-in: b29ac50a user: dan tags: fts5)
15:14
Added comments and testcase() macros to error cases in the btree search. (check-in: 7da7dc71 user: drh tags: trunk)
14:37
Remove some dead code from fts5. Add auxiliary function api tests to the same. (check-in: 0f9df202 user: dan tags: fts5)
11:23
Earlier detection of incompatible sibling pages in balance_nonroot. (check-in: 60a09f17 user: drh tags: trunk)
03:45
Add new test cases to the fuzzdata3.db set of database fuzz tests. (check-in: 467b13a4 user: drh tags: trunk)
03:28
Add the btreeGetUnusedPage() routine to btree.c, and use it to detect content pages on the freelist and to cause that condition to trigger an SQLITE_CORRUPT. (check-in: fe15d1f7 user: drh tags: trunk)
00:54
Do not attempt to take any write lock on a read-only database on Windows. (check-in: a47ff0cd user: drh tags: trunk)
2015-05-27
19:35
The fuzzoomtest makefile target is no longer supported, so update releasetest.tcl accordingly. (check-in: 06959d4a user: drh tags: trunk)
18:19
Fix a minor and harmless memory leak in fuzzcheck. Adjust the makefiles to run fuzzcheck with --quiet on valgrind tests. (check-in: 8bfe8344 user: drh tags: trunk)
18:13
All bytes of a page are initialized, even bytes that follow a 2-byte cell on a malformed page. (check-in: 7373a004 user: drh tags: trunk)
15:42
A different approach to preventing buffer overreads when comparing a vector of values with a corrupt index record that spans at least one overflow page. (check-in: 95eaa49f user: drh tags: trunk)
15:10
Disallow the use of "rowid" in CTEs - it has never worked correctly and it makes no sense, so we might as well make it an explicit error. Also: add the PRAGMA cell_size_check=ON command. (check-in: 19e2cebc user: drh tags: trunk)
14:21
A different approach to preventing buffer overreads when comparing a vector of values with a corrupt index record that spans at least one overflow page. (Closed-Leaf check-in: 7e9e1b61 user: dan tags: avoid-buffer-overread)
13:06
CTEs have never had working rowids. So disallow the use of the "rowid" column within CTEs. (Closed-Leaf check-in: 0055df04 user: drh tags: no-rowid-in-cte)
03:46
Add the "PRAGMA cell_size_check=ON" command. (Closed-Leaf check-in: 2ead43f0 user: drh tags: cell-size-check-pragma)
2015-05-26
20:31
Avoid a buffer overread when comparing against a corrupt record that spans at least one overflow page. (check-in: 62a5b363 user: dan tags: trunk)
20:07
Avoid branching on an uninitalized variable when comparing SQL values with the undefined serial types 10 and 11 (which only appear in corrupt databases). (check-in: b4a45d3b user: dan tags: trunk)
19:08
The "make fuzztest" target now uses fuzzcheck instead of fuzzershell. Test data is added for database fuzz testing. (check-in: 5e3e410b user: drh tags: trunk)
19:01
Merge accidental fork. (Closed-Leaf check-in: e85628e3 user: dan tags: test-using-fuzzcheck)
18:58
Fix a one-byte buffer overread that may follow a syntax error while preparing an SQL statement. (check-in: 07500393 user: dan tags: test-using-fuzzcheck)
18:58
Fix fuzzcheck so that it responds correctly to the TEST_FAILURE environment variable. (check-in: 76770c9e user: drh tags: test-using-fuzzcheck)
18:22
Simplifications and minor optimizations to fts5 prefix queries that cannot use a prefix index. (check-in: aef89d9f user: dan tags: fts5)
18:15
The "make fuzztest" target now uses fuzzcheck instead of fuzzershell. (check-in: 4a5f6f1f user: drh tags: test-using-fuzzcheck)
17:57
Enhance fuzzcheck with the ability to store descriptions in each source database and to run multiple source databases in a single invocation. (check-in: 193364c8 user: drh tags: trunk)
17:33
Add a cast to one side of the test added by [97806a78] in order to avoid a signed/unsigned comparison warning. (check-in: 5b46d2a7 user: dan tags: trunk)
17:29
Avoid using a zero-sized array within a struct in fts3 code. (check-in: b05cae36 user: dan tags: trunk)
16:12
Fix another bug in the in-memory VFS for fuzzcheck. (check-in: 16878a31 user: drh tags: trunk)
14:57
Update test cases in corruptI.test so that they work with both SQLITE_ENABLE_OVERSIZE_CELL_CHECK and SQLITE_DEFAULT_AUTOVACUUM builds. (check-in: 22a14663 user: dan tags: trunk)
12:18
Return SQLITE_CORRUPT to the user if an attempt is made to add database page 1 to the free page list. (check-in: 68876003 user: dan tags: trunk)
11:53
Fix a problem with ignoring UNIQUE constraints on WITHOUT ROWID tables rendered redundant by the PRIMARY KEY. (check-in: 3b936913 user: dan tags: trunk)
03:31
Silence harmless compiler warnings when building the command line utilities with MSVC. (check-in: d26060c4 user: mistachkin tags: trunk)
03:24
Add fuzzcheck to makefile clean targets. Also, for consistency, replace a few tabs with spaces. (check-in: eda2a437 user: mistachkin tags: trunk)
00:28
Add the --result-trace option to fuzzcheck, and other interface enhancements. (check-in: c415bb7b user: drh tags: trunk)
2015-05-25
23:14
Fix an important bug in the xRead method of the in-memory VFS for fuzzcheck. (check-in: 58cd40e8 user: drh tags: trunk)
22:38
Add the fuzzcheck test program. (check-in: 341cb6ab user: drh tags: trunk)
22:29
Add fuzzcheck to all makefiles and fix compiler warnings. (Closed-Leaf check-in: 7b3d2190 user: drh tags: fuzzcheck)
22:18
Merge in trunk fixes. (check-in: c71c2e1a user: drh tags: fuzzcheck)
22:17
Improved tracing capabilities in fuzzcheck. (check-in: 864bfdbf user: drh tags: fuzzcheck)
21:59
Add the --native-vfs option on fuzzcheck. (check-in: 12e95e3f user: drh tags: fuzzcheck)
20:04
Fix a case of a corrupt database causing SQLite to read from up to 4 bytes before the start of a memory allocation. (check-in: 7d2c4f7b user: dan tags: trunk)
19:37
Merge the btree fixes out of trunk. (check-in: f3cd8cec user: drh tags: fuzzcheck)
19:35
Add the --dbid and --sqlid parameters to fuzzcheck. Other fuzzcheck fixes. (check-in: 75ec9299 user: drh tags: fuzzcheck)
19:24
Have the b-tree layer return SQLITE_CORRUPT to any attempt to open a cursor with a root page number less than 1. (check-in: aa18c8e9 user: dan tags: trunk)
18:48
First code for a new utility program to rerun checks on a large number of fuzzer-generated test cases. (check-in: c5b4e363 user: drh tags: fuzzcheck)
18:47
Fix a couple of btree asserts that would fail when encountering 32-bit rollover in cell payload size fields (cell payloads this large always indicate corruption). (check-in: 8fa0937a user: dan tags: trunk)
17:07
Fix a case where database corruption may cause SQLite to write past the end of a buffer. (check-in: 97806a78 user: dan tags: trunk)
15:03
Fix an assert() in btree routine freeSpace() that may be false if the database is corrupt. (check-in: 00a473c5 user: dan tags: trunk)
11:46
Avoid redundant loads from the %_data table in the fts5 code. (check-in: 02069782 user: dan tags: fts5)
10:57
Fix an fts4 matchinf() problem triggered by deferred tokens that are part of phrases that are part of AND expressions. (check-in: f1e942a1 user: dan tags: trunk)
10:29
Fix an obsolete comment - no changes to code. (check-in: 4e4228c4 user: drh tags: trunk)
09:33
Remove an incorrect and pointless assert(). (check-in: 8c3929bd user: drh tags: trunk)
2015-05-24
21:46
The assert() changes removed in the previous check-in are needed after all. (check-in: 336fccc8 user: drh tags: trunk)
21:09
Better detection of corruption in allocateSpace() in btree.c. (check-in: bf7bb53e user: drh tags: trunk)
10:18
Detect database corruption in the modifyPagePointer() routine and abort. (check-in: 4f0bba42 user: drh tags: trunk)
2015-05-23
19:53
Instead of early detection of corruption in balance_nonroot, simply ignore the error, as it is harmless and exceedingly uncommon. (check-in: 7bbf9b3c user: drh tags: trunk)
19:29
Earlier detection of a specific kind of corruption in the balance_nonroot() routine. (check-in: ee6dc991 user: drh tags: trunk)
15:43
Avoid making redundant copies of position-lists within the fts5 code. (check-in: 5165de54 user: dan tags: fts5)
02:44
Minor documentation improvements. No changes to code. (check-in: e446d9ce user: drh tags: trunk)
2015-05-22
23:51
Merge bug fixes from trunk. (check-in: 519054bb user: drh tags: sessions)
23:50
Improved error messages in fuzzershell when unable to open the database. (check-in: c404fcac user: drh tags: trunk)
23:45
Fix a bug in fuzzershell caused by an uninitialized local variable. (check-in: 745deab8 user: drh tags: trunk)
23:39
Fix another bad assert() in btree - one that can be false on a corrupt database file. (check-in: 89f0bbfd user: drh tags: trunk)
23:26
Merge enhancements from trunk, including the new sqlite3_value_dup() API and the addition of the apSqlParam field in the sqlite3_rtree_query_info object of R-Tree. (check-in: cdc0ca6f user: drh tags: sessions)
23:17
Fix incorrect validation of the size of the BLOB returned by a geometry function on the RHS of a MATCH operator in RTree. The old code worked for 64-bit systems (by chance) but fails on 32-bit. (check-in: 10cc44f5 user: drh tags: trunk)
21:12
Add the sqlite3_value_dup() and sqlite3_value_free() interfaces. Use these interfaces to enhance R-Tree to add the sqlite3_rtree_query_info.apSqlParam field. (check-in: c1814242 user: drh tags: trunk)
21:04
Make sure sqlite3_value_dup() works correctly even for sqlite3_value objects that are marked SQLITE_STATIC. (Closed-Leaf check-in: f332ffc3 user: drh tags: value-dup)
19:55
Fix minor issues with the sqlite3_value_dup() interface. (check-in: 95edcf50 user: drh tags: value-dup)
18:40
Update with fixes and enhancements from trunk. (check-in: 9605d008 user: drh tags: value-dup)
17:29
The SRT_Table type for the SelectDest object is now just an SRT_EphemTab for which the ephemeral table has already been allocated. (check-in: b9727e6b user: drh tags: trunk)
16:08
Have r-tree prefer to use the constraint "col MATCH ?" over "rowid = ?". (check-in: b9fb9519 user: dan tags: trunk)
13:09
Fix two faulty assert statements discovered by fuzzing. (check-in: 799817bf user: drh tags: trunk)
12:37
Fix an assert in btree.c that can be false when using a corrupted database file. (check-in: a6eb2a39 user: drh tags: trunk)
11:38
Add the --database option to the fuzzershell test program. (check-in: c6d5512f user: drh tags: trunk)
07:44
Increase test coverage of fts5_vocab.c. (check-in: 065ab83a user: dan tags: fts5)
06:08
Improve test coverage of fts5_unicode2.c. (check-in: fea8a4db user: dan tags: fts5)
2015-05-21
20:26
Have r-tree prefer to use the constraint "col MATCH ?" over "rowid = ?". drh added later: All changes on this branch have been cherrypicked to trunk and will be merged into sessions from trunk. So this branch can close. (Closed-Leaf check-in: b9e45596 user: dan tags: sessions-value-dup)
17:24
Prevent a virtual table from being destroyed while it is in use. Also: replace Vdbe.inVtabMethod with sqlite3.nVDestroy. Simplify the EXPLAIN output for P4.pVtab to only show the sqlite3_vtab pointer. Cherrypick of [cbeb9a1aed8c]. (check-in: b3bb660a user: dan tags: branch-3.8.6)
17:21
Avoid ever writing before the start of an allocated buffer in the DIRECT_OVERFLOW_READ code. Fix for [e3a290961a6]. Cherrypick of [c3c15d20c691]. (check-in: 31b13eb5 user: dan tags: branch-3.8.6)
2015-05-20
22:01
Add the sqlite3_value_dup() and sqlite3_value_free() interfaces and use those to add the sqlite3_rtree_query_info.apSqlParam field to the query callback in R-Tree. (check-in: 2007391c user: drh tags: sessions-value-dup)
21:28
Add the sqlite3_value_dup() and sqlite3_value_free() interfaces. Use these interfaces to enhance R-Tree to add the sqlite3_rtree_query_info.apSqlParam field. (check-in: a7ee40c4 user: drh tags: value-dup)
20:50
Fix a problem in test file e_reindex.test. Cherrypick of [5b3de9390f2f]. (check-in: 80633682 user: dan tags: branch-3.8.6)
20:34
Fix a problem causing the fts3 integrity-check to fail if run inside a transaction. Cherrypick of [3b925189a75e]. (check-in: 7d7d633c user: dan tags: branch-3.8.6)
20:30
Ensure that tables names are dequoted exactly once by the trigger and FK logic. Cherrypick of [59e92bd9521f] and [9d887b92f808]. (check-in: bd357739 user: dan tags: branch-3.8.6)
20:27
Fix an obscure problem with "INSERT INTO tbl(cols) SELECT" statements where the SELECT is a compound with an ORDER BY and "cols" is a strict subset of tbl's columns. Cherrypick of [718d5d0eab04]. (check-in: 3cd2b772 user: dan tags: branch-3.8.6)
20:24
Fix a potential NULL pointer deference on a corrupt database schema. Cherrypick of [dc61b292d8ea]. (check-in: 7f3943fb user: dan tags: branch-3.8.6)
20:21
Fix a bug caused by cherrypicking from a branch that assumes sqlite3_stricmp() can handle NULL arguments. (check-in: 2c649cdf user: dan tags: branch-3.8.6)
19:57
When parsing the schema, ignore any SQL that does not begin with "CREATE". Cherrypick of [d3c00d61581c]. (check-in: 0da229b8 user: dan tags: branch-3.8.6)
19:53
Detect and report oversized records constructed from multiple zeroblobs. Cherrypick of [9e139afd9211]. (check-in: 4a08f6b8 user: dan tags: branch-3.8.6)
19:50
Do not allow virtual table constructors to be called recursively. Cherrypick of [0a72726da215] (check-in: 023a29ba user: dan tags: branch-3.8.6)
19:48
Avoid signed integer overflow when converting oversized in-line integer widths and precisions in printf(). Cherrypick of [c494171f77dc], [5ce4e7d7651e], [95625ef3adc3] and [8e4ac2ce2441]. (check-in: b330c7ff user: dan tags: branch-3.8.6)
19:44
Ensure that comparison operators do not mess up the MEM_Dyn flag on registers when reverting affinity changes. Cherrypick of [02e3c88fbf6a]. (check-in: 4125477e user: dan tags: branch-3.8.6)
19:34
Fix a problem causing collation sequence names to be dequoted multiple times under some circumstances. Cherrypick of [eddc05e7bb31]. (check-in: fc1a4f29 user: dan tags: branch-3.8.6)
19:32
Silently ignore any attempt to add a prefix index for prefixes zero bytes in size to an fts3/4 table. Or any prefix index size so large that it overflows a 32-bit signed integer. Cherrypick of [ad4b19d2ac0889a2]. (check-in: ff7be4db user: dan tags: branch-3.8.6)
18:17
Version 3.8.10.2 (check-in: 2ef4f3a5 user: drh tags: release, version-3.8.10.2, branch-3.8.10)
17:36
Fix the initialization logic in CREATE TABLE AS so that the correct affinities are applied to all values being inserted into the new table, even if the RHS is a compound SELECT. Fix for ticket [f2ad7de056ab1dc9200]. (check-in: 6a0cf3ce user: drh tags: trunk)
17:25
Add a test case to verify that CREATE TABLE AS does not store INT values in TEXT columns. Ticket [f2ad7de056ab1dc92]. (Closed-Leaf check-in: 0e45e8f1 user: drh tags: create-table-as-type-fix)
17:18
Simplification of the initialization code for CREATE TABLE AS. (check-in: 937f659e user: drh tags: create-table-as-type-fix)
15:51
A proposed fix for the problem of CREATE TABLE AS generating a table that has INTEGER values in a TEXT column. Ticket [f2ad7de056ab1dc92]. (check-in: d5e2c1fc user: drh tags: create-table-as-type-fix)
09:27
Improve test coverage of fts5_tokenize.c. (check-in: 0e91a6a5 user: dan tags: fts5)
00:15
Fix handling of queries with VALUES on the left and UNION ALL SELECT on the right and a LIMIT clause. (check-in: c403502c user: drh tags: trunk)
2015-05-19
23:56
Enhance the selecttrace display by showing Select.selFlags. (check-in: 45d3893c user: drh tags: trunk)
23:04
Merge the Makefile.msc fix and the compiler warning fix from trunk. Also fix another compiler warning in sqlite3session_diff(). (check-in: 7530e1bf user: drh tags: sessions)
22:56
Fix the MSVC makefile so that it works with OTA. Fix a harmless compiler warning in FTS3. (check-in: c7b16645 user: drh tags: trunk)
22:42
Merge recent trunk changes, include the R-Tree enhancement that allows 8-byte BLOB arguments to geometry functions, and the fix for the TEXT affinity problem that could cause corrupt indexes. (check-in: 0a0de8b7 user: drh tags: sessions)
22:20
Allow R-Tree geometry functions to take 8-byte BLOB arguments which are passed directly through to the underlying callback, and which can be used to pass pointers into the callback. (check-in: b271ed56 user: drh tags: trunk)
19:52
Ensure that when the VM applies TEXT affinity to a value it discards any existing REAL or INTEGER value. Fix for [34cd55d6]. Increase the version number to 3.8.10.2. (check-in: 40f67265 user: drh tags: branch-3.8.10)
19:44
Ensure that when the VM applies TEXT affinity to a value it discards any existing REAL or INTEGER value. Fix for [34cd55d6]. (check-in: f5d0ce80 user: dan tags: trunk)
19:37
Add tests for fts5 tokenizers. (check-in: 4f90ba20 user: dan tags: fts5)
17:48
Remove the sqlite3ota_open_v2() API. Add a new parameter to sqlite3ota_open() instead. (check-in: c74e0bc4 user: dan tags: trunk)
16:50
Merge the ota-update branch with trunk. (check-in: 08e2864e user: dan tags: trunk)
16:26
Add a comment for SQLITE_FCNTL_OTA to sqlite.h.in. (Closed-Leaf check-in: efa20f8e user: dan tags: ota-update)
16:22
Allow OTA update state data to be stored in a database separate from the OTA update database. (check-in: 5af8db56 user: dan tags: ota-update)
14:14
Merge latest trunk changes with this branch. (check-in: 6055a672 user: dan tags: ota-update)
11:38
Update Makefile.in so that the amalgamation files built by "make sqlite3.c" include fts5. (check-in: 2870a805 user: dan tags: fts5)
11:32
Fix a memory leak that could follow an OOM condition in fts5. (check-in: de9f8ef6 user: dan tags: fts5)
2015-05-18
20:34
Improve test coverage of fts5_storage.c. (check-in: 4dfe2e58 user: dan tags: fts5)
18:24
Fix a bug in test script fts5fault4.test. (check-in: a5080593 user: dan tags: fts5)
18:03
Add a test for an untested branch in fts5_expr.c. (check-in: ce08206b user: dan tags: fts5)
17:50
Improve test coverage of fts5_config.c. (check-in: 47dbfadb user: dan tags: fts5)
12:28
Transitive constraints should only work if operands have compatible affinities and collating sequences. (check-in: 5df40564 user: drh tags: trunk)
12:18
Use an ALWAY() on conditionals in the transitive constraint logic that are always true as far as we know. (Closed-Leaf check-in: 204e567f user: drh tags: transitive-constraints)
11:34
Refinements to the determination of when an A==B term is an equivalence. Add test cases. (check-in: 6bfaf525 user: drh tags: transitive-constraints)
04:24
Make a hard copy of the results of a subquery lest the result of the subquery be referenced after a change to the table that generated the subquery result. (check-in: 9c0d8090 user: drh tags: trunk)
2015-05-16
20:51
Further restrictions on the use of the transitive property in WHERE clauses. (check-in: 8c886c43 user: drh tags: transitive-constraints)
20:04
Further test coverage improvements for fts5. (check-in: 927d9a64 user: dan tags: fts5)
19:17
Fix the transitive constraint processing to only allow transitivity if the operands of the == or IS operator have compatible affinities. (check-in: a46a247f user: drh tags: transitive-constraints)
18:31
Fix a typo in a comment. No changes to code. (check-in: ee4b7425 user: drh tags: trunk)
03:41
Improve the clean target in the MSVC makefile. (check-in: 2c1039d4 user: mistachkin tags: trunk)
2015-05-15
22:20
Update the README.md file at the top of the repository so that the homepage of Git mirrors of SQLite direct users to the official repository. (check-in: 08f11980 user: drh tags: trunk)
20:14
Minor coding style change, adjust new local variable casing for consistency. (check-in: 1a4628c6 user: mistachkin tags: trunk)
19:59
Do not assume that "col IS ?" matches at most a single row of a UNIQUE column unless the column is also NOT NULL. (check-in: e038ce89 user: dan tags: trunk)
18:13
Improve test coverage of fts5_index.c. (check-in: 7aea8c6d user: dan tags: fts5)
12:18
Add test cases. And some fixes. (check-in: adee7885 user: dan tags: fts5)
04:13
Simplifications to error message processing. Fix a possible problem in error message formatting when vacuuming a database with a corrupt schema. (check-in: 56ef98a0 user: drh tags: trunk)
2015-05-14
15:39
Increase the version number to 3.8.11. Upgrade autoconf from 2.62 to 2.69. (check-in: be438d04 user: drh tags: trunk)
15:17
Merge in the IS-operator enhancements and other recent changes from trunk. (check-in: 4f922944 user: drh tags: sessions)
14:32
The IS operator can now use indexes the same as the == operator. (check-in: 3428043c user: drh tags: trunk)
14:03
A few more test cases for the IS operator. (Closed-Leaf check-in: f397c862 user: drh tags: index-is-operator)
13:41
More test cases. Remove some invalid testcase() macros. Rearrange some code for improved testability. (check-in: b3676377 user: drh tags: index-is-operator)
13:18
Add testcase() macros. Get transitive WHERE clause constraints on IS operators working again. (check-in: d195d4a6 user: drh tags: index-is-operator)
09:53
Merge changes from the index-is-operator branch into this one. Drop the partial support added for IS on this branch by [52e73eec]. (check-in: 16ab9caf user: dan tags: ota-update)
08:58
Merge latest trunk changes with this branch. (check-in: 299ed55c user: dan tags: ota-update)
01:05
A new implementation of indexing with the IS operator that works correctly when the IS operator is in the WHERE clause and the operands are from opposite sides of a LEFT JOIN. (check-in: 4541688b user: drh tags: index-is-operator)
2015-05-13
19:33
Simplified implementation of indexing with the IS operator. (check-in: 95b1f9bf user: drh tags: index-is-operator)
18:12
Merge latest trunk changes with this branch. (check-in: b5f0e8c5 user: dan tags: fts5)
17:54
Add testcase() macros and comments and a few test-cases. (check-in: 24263d08 user: drh tags: index-is-operator)
17:15
Change fts5 doclist-index structures to be trees instead of flat lists. This only makes a difference for databases that contain millions of instances of the same token. (check-in: aa34bf66 user: dan tags: fts5)
15:24
An early attempt to get indexes to work with the IS operator. This code passes tests, but much more testing is needed to verify that it works on all corner cases. (check-in: 6f7f1673 user: drh tags: index-is-operator)
04:52
Merge updates from trunk. (Leaf check-in: 10ee36d0 user: mistachkin tags: get-trace)
04:50
Enhancements to the MSVC makefile. (check-in: 59e3e9e7 user: mistachkin tags: trunk)
2015-05-12
23:33
Use the database mutex where applicable. (check-in: 28cfdabc user: mistachkin tags: get-trace)
23:31
Fix a couple of typos in comments. (check-in: e908365f user: mistachkin tags: get-trace)
23:28
Improve API armor integration. Fix harmless compiler warnings. (check-in: fbf29b45 user: mistachkin tags: get-trace)
23:20
Modify the new functions to make them return a standard return code. (check-in: 02f694d5 user: mistachkin tags: get-trace)
21:27
Experimental API extension for recovering the current trace and profile callbacks on a database connection. (check-in: 9de33768 user: drh tags: get-trace)
19:53
Fix typo in Win32 VFS code enabled when the SQLITE_WIN32_USE_UUID compile-time option is used. (check-in: b33f1bac user: mistachkin tags: trunk)
19:10
Attempt to get DBSTAT to compile without warnings across all build configurations. (check-in: c3cbe3b0 user: drh tags: trunk)
14:22
Fix a compiler warning when building with tclsqlite3.c and without SQLITE_ENABLE_DBSTAT_VTAB. (check-in: aad3ff25 user: drh tags: trunk)
13:32
Improvements to documentation of the sqlite3_column_xxxxx() interfaces. No code changes. (check-in: f1aa951a user: drh tags: trunk)
12:24
Try to get recent sqlite3_analyzer and sqldiff tests working for all tested combinations of compile-time options, especially SQLITE_OMIT_VIRTUALTABLE and SQLITE_OMIT_LOAD_EXTENSION. (check-in: 07c7d392 user: drh tags: trunk)
00:46
Fix sqldiff.exe so that it always runs in single-thread mode. (check-in: c223910e user: drh tags: trunk)
2015-05-11
19:01
Add new fts3 matchinfo option 'b'. Also optimize existing option 'y'. (check-in: 2e7679a1 user: dan tags: trunk)
18:48
Add missing "finish_test" commands to the end of the two new test scripts for sqlite3_analyzer and sqldiff. (check-in: 1d5e72b1 user: drh tags: trunk)
18:46
Merge latest trunk changes into this branch. (Closed-Leaf check-in: 82e5a6e0 user: dan tags: fts3-matchinfo-y)
17:46
Test cases for sqlite3_analyzer and sqldiff. Fix a problem with sqlite3_analyzer related to the renaming of the initialization routine. (check-in: 85a4a46c user: drh tags: trunk)
16:27
Fix minor Makefile typos. Improve consistency of MSVC makefile. Add new targets to clean. (check-in: f84fbe98 user: mistachkin tags: trunk)
12:15
Build the sqlite3_analyzer.exe and sqldiff.exe programs on "make test" and "make smoketest" and other similar test targets. (check-in: 1b83f2e7 user: drh tags: trunk)
11:59
Revamp the way the DBSTAT virtual table is registered. (check-in: 4e652015 user: drh tags: trunk)
06:22
Change autoconf/Makefile.am to avoid building target sqlite3.o as part of both the shared library and shell tool. Doing so causes problems for parallel builds. (check-in: 85bfa9a6 user: dan tags: trunk)
2015-05-10
02:01
Fix the sqlite3_memory_used() and sqlite3_memory_highwater() interfaces so that they really do provide a 64-bit answer. (check-in: 8a0d5d5e user: drh tags: trunk)
2015-05-09
18:28
Allow the fts5vocab table to optionally provide data on a per-column basis. (check-in: 39222761 user: dan tags: fts5)
12:14
Version 3.8.10.1 (check-in: 05b4b1f2 user: drh tags: trunk, release, version-3.8.10.1)
10:27
Bump the version number to 3.8.10.1 (check-in: 9c6bf0c1 user: drh tags: trunk)
2015-05-08
20:21
Add the fts5vocab module, for direct access to the fts5 index. (check-in: 6bf93e3b user: dan tags: fts5)
09:21
Improve the error message returned by FTS5 if it encounters an unknown file format. (check-in: f369caec user: dan tags: fts5)
01:04
Fix harmless compiler warning with MSVC. (check-in: 902d0cb8 user: mistachkin tags: trunk)
00:58
Remove a couple stray test breakpoint calls. (check-in: 2860cebe user: mistachkin tags: trunk)
2015-05-07
20:26
Add an entry to sqlite3_compileoption_used() for SQLITE_ENABLE_DBSTAT_VTAB. (check-in: 480b4cb0 user: drh tags: trunk)
19:29
Change to storing all keys in a single merge-tree structure instead of one main structure and a separate one for each prefix index. This is a file-format change. Also introduce a mechanism for managing file-format changes. (check-in: a684b5e2 user: dan tags: fts5)
18:29
Testing improvements and corner-case bug fixes for the dbstat virtual table. (check-in: d51ce539 user: drh tags: trunk)
14:41
Enhance the dbstat virtual table with the ability to analyze ATTACHed databases. (check-in: 25ec0940 user: drh tags: trunk)
12:29
Merge in the 3.8.10 release changes. (check-in: 0404ef88 user: drh tags: sessions)
11:53
Version 3.8.10 (check-in: cf975957 user: drh tags: trunk, release, version-3.8.10)
00:09
Remove a faulty assert() statement. (check-in: 5f2539da user: drh tags: trunk)
2015-05-06
18:15
Merge latest trunk changes with this branch. (check-in: 8a13e1fd user: dan tags: fts3-matchinfo-y)
17:51
Remove some dead code from fts3_snippet.c. (check-in: 46b2d3ce user: dan tags: fts3-matchinfo-y)
17:41
More optimization for the 'y' and 'b' matchinfo directives. (check-in: 8c5b9fed user: dan tags: fts3-matchinfo-y)
14:18
Have the autoconf package build the shell tool with SQLite linked in statically. (check-in: 31834c3a user: dan tags: trunk)
08:43
Further optimizations for the 'y' and 'b' matchinfo operators. (check-in: fbd038bb user: dan tags: fts3-matchinfo-y)
2015-05-05
20:39
Add the fts3 matchinfo 'b' flag. (check-in: b9b77972 user: dan tags: fts3-matchinfo-y)
19:37
Optimizations for the matchinfo() function, particularly the 'y' flag. (check-in: dddd7e18 user: dan tags: fts3-matchinfo-y)
18:52
Remove four lines of superfluous code identified by clang scan-build. (check-in: 04afa3fe user: drh tags: trunk)
17:12
Merge all trunk enhancements and fixes into the sessions branch. (check-in: de7083cf user: drh tags: sessions)
16:57
Fix a minor coding inefficiency found during pre-release inspection. (check-in: cc50883d user: drh tags: trunk)
11:08
Add #ifdef statements to test_blob.c so that it will build with SQLITE_OMIT_INCRBLOB. (check-in: b8f090e6 user: drh tags: trunk)
10:46
Spell SQLITE_OMIT_VIRTUALTABLE correctly in a #if in dbstat.c. (check-in: d2cb1bec user: drh tags: trunk)
10:03
Fix a faulty assert() in the btree part of the "PRAGMA page_size = ?" code. (check-in: 90b19748 user: dan tags: trunk)
01:09
Fix a problem in Makefile.in that only comes up on Windows with MinGW. (check-in: 5f3cd68b user: drh tags: trunk)
00:48
Fix #ifdef problem in tclsqlite.c. (check-in: fe723bb5 user: drh tags: trunk)
2015-05-04
20:25
Automatically enable the dbstat virtual table on all new database connections with the SQLITE_ENABLE_DBSTAT_VTAB compile-time option is used. (check-in: 1c9c6eaa user: drh tags: trunk)
19:13
In the command-line shell, and the ".binary" command and additional C-style backslash escapes. (check-in: 850c1186 user: drh tags: trunk)
19:06
Add the "dbstat" virtual table as a standard component in the SQLite amalgamation, though turned off unless compiled with SQLITE_ENABLE_DBSTAT_VTAB. (check-in: e7529705 user: drh tags: trunk)
18:31
Rename the test_stat.c source file to dbstat.c and rework the makefiles to make dbstat.c a first-class source module. (Closed-Leaf check-in: a24480a4 user: drh tags: dbstat-in-amalgamation)
17:06
Include the "dbstat" virtual table in the amalgamation. (check-in: fc6504aa user: drh tags: dbstat-in-amalgamation)
16:09
Fix a faulty assert() in the SELECT code generator and add a test case to prevent regression. (check-in: 1421c8ff user: drh tags: trunk)
15:04
Fix a bug in --changeset output for sqldiff.exe for floating-point values. Also fix harmless compiler warnings in sqldiff.exe. (check-in: 9f428530 user: drh tags: trunk)
13:25
Add the --lib option to the sqldiff.exe command-line utility. (check-in: a117e8f6 user: drh tags: trunk)
12:29
Add the 'y' flag to the fts3/4 matchinfo() function. (check-in: aef1e8f4 user: dan tags: trunk)
2015-05-02
20:35
Reorganize some of the fts5 expression parsing code. Improve test coverage of the same. (check-in: c4456dc5 user: dan tags: fts5)
19:54
Improvements to fuzzershell: Avoid excess memory allocations when loading many files. Show the total runtime on final output. Show individual filenames as they are processed even if they are single test-case files. (check-in: 34a722a2 user: drh tags: trunk)
18:25
Add the SQLITE_LIMIT_PRINTF_WIDTH setting for sqlite3_limit() and associated logic for preventing DOS attacks using printf() with oversized widths or precisions. (Leaf check-in: f8b15979 user: drh tags: limit-printf-width)
17:40
Add the ".limit" command to the command-line shell. (check-in: 803cb60e user: drh tags: trunk)
12:40
Reorganize some multi-threaded code in vdbesort.c so that full MC/DC test coverage does not depend on the outcome of a race condition. (check-in: 78c7ec95 user: dan tags: trunk)
11:45
Cleanup of the sqlite3StrAccumInit() function. No functionality changes. (check-in: 7952c322 user: drh tags: trunk)
09:44
Add the experimental matchinfo 'y' flag to fts3/4. (Closed-Leaf check-in: 92941609 user: dan tags: fts3-matchinfo-y)
2015-05-01
20:38
Further improvements to test coverage of fts5 code. (check-in: d4331943 user: dan tags: fts5)
20:34
Enhance the fuzzershell --uniquecases option to output results in order of increasing runtime and to include the runtime in the comment separator of the output. (check-in: 04630b98 user: drh tags: trunk)
19:21
Enhance fuzzershell to accept multiple input files. Add the test/fuzzdata2.txt fuzz test content. (check-in: ab5523aa user: drh tags: trunk)
18:00
Fix an assert in RTREE that would fire if the rtree table is misdeclared. (check-in: 9a45409c user: drh tags: trunk)
16:57
Fix an assert() failure caused by setting "PRAGMA journal_mode=off" on an database in exclusive-mode that has already opened the journal file. (check-in: 40db3e40 user: dan tags: trunk)
15:25
Remove obselete comment text from the description of the Table object. No changes to code. (check-in: 6566b72a user: drh tags: trunk)
14:07
Use the sqlite3Fts3ErrMsg() function to set error message text in FTS3, and to ensure that error messages are not overwritten and thus leaked. (check-in: 605347e0 user: drh tags: trunk)
12:14
Improve test coverage of fts5.c. (check-in: add4f468 user: dan tags: fts5)
2015-04-30
20:35
Enhance the CLI to initialize the dbstat virtual table if compiled using SQLITE_ENABLE_STAT_VTAB. (check-in: 822dfc00 user: drh tags: trunk)
20:33
Fix a harmless comment typo. (check-in: 012a0c4e user: drh tags: trunk)
20:26
Avoid dropping an error code in test function sqlite3_dbstat_register(). (check-in: 9a9f633f user: dan tags: trunk)
13:06
Modify the mkfuzzdata1.tcl script so that it retains the culled test vectors in the tmp2 subdirectory. (check-in: 431a958f user: drh tags: trunk)
12:31
Fix signed/unsigned comparison compiler warnings. Add the SQLITE_OMIT_RANDOMNESS compile-time option to cause the PRNG to be seeded identically on every run, for testing purposes. (check-in: 93ce2bca user: drh tags: trunk)
2015-04-29
20:54
Improve fts5 tests. (check-in: c1f07a3a user: dan tags: fts5)
16:50
Use sqlite3_malloc64() in place of sqlite3_malloc() internally. (check-in: 48f553b0 user: drh tags: trunk)
00:35
Improved support for OSTRACE on Windows. (check-in: ca43812b user: drh tags: trunk)
2015-04-28
23:34
Revise when the sqlite3ErrName() function is defined. (Closed-Leaf check-in: 9e593fb3 user: mistachkin tags: winTest)
20:24
Fix an fts5 bug in handling writes while there are active cursors. (check-in: 07f70955 user: dan tags: fts5)
18:35
Improve coverage of fts5 tests. (check-in: 8e8136f2 user: dan tags: fts5)
14:49
Update the test/fuzzdata1.txt file with the latest cases discovered by AFL. (check-in: f2063f53 user: drh tags: trunk)
14:07
Fix an assert() failure that could occur if the internal sqlite3_rename_parent() SQL scalar function was invoked directly. (check-in: 36e51526 user: dan tags: trunk)
14:00
Fix sqlite3VdbeMakeWritable() to always clear the MEM_Ephem flag. Change the OP_Move opcode to always deephemeralize moved content. (check-in: fbb06727 user: drh tags: trunk)
13:11
Oops - the deephemerialization needs to occur before the move, not after. Was: Rather than try to keep track of the parent of an ephermeral register when the register moves, just deephemeralize all registers touched by the OP_Move opcode. (Closed-Leaf check-in: 091cfe8e user: drh tags: mistake)
12:44
Shift the Mem.pScopyFrom pointer in the correct direction in OP_Move. Fix for a defective check-in [a2135ad13049] and ticket [d6352363751]. Debugging code only - does not affect normal operation. (check-in: add4e043 user: drh tags: trunk)
12:27
Add code to the shell to optionally initialize the dbstat virtual table. (Closed-Leaf check-in: 7ed86dd3 user: drh tags: stat-vtab-in-shell)
01:28
Fix comment typos. No code changes. (check-in: 60174cf5 user: drh tags: trunk)
00:53
Add a TCL script that can be run to generate the fuzzdata1.txt file. (check-in: fdc79fd1 user: drh tags: trunk)
2015-04-27
19:53
Add fault-injection tests for the code in test_stat.c. (check-in: ea5e0b74 user: dan tags: trunk)
16:21
Change the fts5 content= option so that it matches fts5 columns with the underlying table columns by name, not by their position within the CREATE TABLE statement. (check-in: e38e2bb6 user: dan tags: fts5)
15:08
Update the fuzzer test data after having run it through afl-cmin to remove redundant test cases. (check-in: 8134d41b user: drh tags: trunk)
11:31
Further tests for fts5. (check-in: ffeb3ef3 user: dan tags: fts5)
2015-04-25
20:29
Improve coverage of fts5_index.c slightly. (check-in: e5aaa013 user: dan tags: fts5)
18:56
Add tests for fts5. (check-in: e748651c user: dan tags: fts5)
18:39
Fix compiler warnings in sqldiff. (check-in: 5f48d6f6 user: drh tags: trunk)
17:45
Update the AFL fuzzer data with newly discovered paths. (check-in: d9821980 user: drh tags: trunk)
16:39
Fuzzershell: change the error summary output to work with releasetest.tcl. Reduce the maximum number of OOM interations. (check-in: f5e6c4b2 user: drh tags: trunk)
13:39
Add the fuzzoomtest target to the makefiles. Invoke fuzzoomtest from releasetest.tcl. (check-in: f60657c2 user: drh tags: trunk)
12:20
Fix an obscure memory leak that could follow an OOM in where.c. (check-in: 08ec9f2f user: dan tags: trunk)
11:35
In fuzzershell: (1) comment fixes. (2) Set and clear g.zTestName[] correctly. (3) Use the value in g.zTestName[] in error messages. (check-in: b7394755 user: drh tags: trunk)
11:19
In the fuzzershell, always invoke the trace and log callbacks even if output is suppressed. Keep track of the current test name in a global variable for simplified debugging. (check-in: 3045f454 user: drh tags: trunk)
00:32
Do not send the extra ";" and "\000" tokens to the parser if a prior error has occurred. (check-in: 9aa70ddf user: drh tags: trunk)
00:20
Add fflush() calls to fuzzershell to keep stderr and stdout synchronized. (check-in: 2b98a252 user: drh tags: trunk)
2015-04-24
23:45
Add the --oom option to fuzzershell. (check-in: 14a9e4a3 user: drh tags: trunk)
20:18
Merge latest trunk changes with this branch. (check-in: 1c78d892 user: dan tags: fts5)
19:41
Add the "unindexed" column option to fts5. (check-in: 86309961 user: dan tags: fts5)
18:31
Fix fuzzershell so that it works with SQLITE_OMIT_TRACE. (check-in: dc88fe7e user: drh tags: trunk)
17:50
Add the --with-tcl=DIR option to the test/releasetest.tcl script. (check-in: 4dda916a user: drh tags: trunk)
16:53
Run fuzzershell as part of the valgrindtest makefile target. (check-in: 0bb96a03 user: drh tags: trunk)
16:16
Add the fuzztest target to the MSVC makefile. (check-in: 98edc615 user: drh tags: trunk)
16:09
Add AFL-generated test cases in the test/fuzzdata1.txt file. Automatically run fuzzershell against those cases on a "make test". (check-in: 627ea83c user: drh tags: trunk)
15:56
Add extra tests for corrupt database handling in fts5. (check-in: 41449f7a user: dan tags: fts5)
14:47
Add the --unique-cases option to fuzzershell. (check-in: 7cb71849 user: drh tags: trunk)
13:00
Fuzzershell enhancements: (1) Add the --verbose and --quiet flags (2) Show percentage complete and final test count for multi-test inputs (3) Omit trace and result logs unless the --verbose flag is used. (check-in: ed202ffa user: drh tags: trunk)
06:02
Fix an fts5 build problem in main.mk. (check-in: 60045ced user: dan tags: fts5)
2015-04-23
19:38
Fix a problem in the "ota" utility program causing it to crash if SQLite failed to open the target database. (check-in: a1a2b4a2 user: dan tags: ota-update)
19:32
Merge latest trunk changes into this branch. (check-in: 1506e99e user: dan tags: ota-update)
19:18
Fix a performance problem in calls to sqlite3ota_close() made after the OTA update has been completely applied and checkpointed. (check-in: fa62093b user: dan tags: ota-update)
18:14
Have OTA maintain a small LRU cache of UPDATE statements. This reduces the amount of time it spends compiling UPDATE if a single data_xxx table contains many different ota_control strings. (check-in: baee3556 user: dan tags: ota-update)
17:22
Modify the sqlite3session_diff() API so that tables with no PRIMARY KEYs are ignored. This matches the other sessions APIs. Also change sqlite3session_diff() so that it returns SQLITE_SCHEMA, instead of SQLITE_ERROR, if the tables being compared do not have compatible schemas. (check-in: aada0ad0 user: dan tags: sessions)
15:03
Fix the error message returned by sqlite3session_diff() for tables with no PRIMARY KEY. (check-in: 4d34a3d4 user: dan tags: sessions)
14:40
Fix a performance problem in sqlite3session_diff(). (check-in: ea400eca user: dan tags: sessions)
13:49
Merge the latest trunk enhancements and fixes into the sessions branch. (check-in: 4e5f17d1 user: drh tags: sessions)
13:37
Fix a faulty assert() in the "AS" alias resolution logic of the parser. (check-in: b5e43602 user: drh tags: trunk)
13:00
Improvement to "ID" formatting on the ".selecttrace 0x1ff" debugging function. (check-in: 01c50cee user: drh tags: trunk)
11:52
Fix a problem causing the fts3 integrity-check to fail if run inside a transaction. (check-in: 3b925189 user: dan tags: trunk)
2015-04-22
20:58
Add extra OOM tests for fts5. (check-in: 2dd59b57 user: dan tags: fts5)
20:14
Fix problems with doclist-indexes involving very large rowids. (check-in: 1e599409 user: dan tags: fts5)
14:41
Prototype for an sqlite3_db_log() interface. (Leaf check-in: 658e20f5 user: drh tags: sqlite3_db_log)
13:16
Improved filtering of input for fuzzershell for modes other than generic. (check-in: 025e8370 user: drh tags: trunk)
11:34
Add comments related to database locking to sqlite3ota.h. (check-in: 77242965 user: dan tags: ota-update)
11:16
Change the printf, strftime, and glob modes of fuzzershell so that they reject all inputs that do not start with a string literal followed by a comma. This helps the fuzzer focus in on the kinds of behavior those modes are intended to test. (check-in: 1cceefa7 user: drh tags: trunk)
09:40
Update this branch with latest trunk changes. (check-in: 9797482d user: dan tags: fts5)
01:33
When compiling for UAP, link against the new minimal MSVC runtime. (check-in: 2cb94511 user: mistachkin tags: trunk)
2015-04-21
20:13
Fix a problem in fts5fault1.test. (check-in: a21d60cb user: dan tags: fts5)
19:07
Fix an fts5 problem with large deletes. (check-in: e50e8031 user: dan tags: fts5)
17:17
Alternative fix for the double-initialization of type and collating sequence problem that leaves the estimated table size intact. (check-in: 623ddbdb user: drh tags: trunk)
17:07
Make sure the datatype and collating sequence of transients tables are not initialized more than once. Otherwise a memory leak results. (check-in: 9e6beda2 user: drh tags: trunk)
16:38
Ensure that tables names are dequoted exactly once by the trigger logic. (check-in: 9d887b92 user: dan tags: trunk)
16:09
Fix a memory leak in the SELECT code generator tracing logic (code that is omitted in non-debugging builds). (check-in: b623ebd8 user: drh tags: trunk)
15:49
Fix an obscure problem with "INSERT INTO tbl(cols) SELECT" statements where the SELECT is a compound with an ORDER BY and "cols" is a strict subset of tbl's columns. (check-in: 718d5d0e user: dan tags: trunk)
15:35
Add a comment to sqlite3ota.h. No code changes. (check-in: 352fa09e user: dan tags: ota-update)
15:16
Change an assert() in the aggregate query code generator into a testcase(). (check-in: d1e6bc91 user: drh tags: trunk)
12:06
Fix an fts4 problem to do with the handling of phrases that contain zero tokens. (check-in: caba5be0 user: dan tags: trunk)
03:13
Fix some identifier name de-quoting issues in the foreign key and trigger logic. (check-in: 59e92bd9 user: drh tags: trunk)
02:17
Test case for the previous check-in. (check-in: a526f58b user: drh tags: trunk)
02:12
Make sure the whereSplit() routine in the query planner is not confused by the likely() operator. (check-in: 588db14f user: drh tags: trunk)
00:23
Enable compilation and VSIX package creation with the Visual Studio 2015 CTP. (check-in: 03b725a7 user: mistachkin tags: trunk)
2015-04-20
23:53
Merge updates from trunk. (Closed-Leaf check-in: 583a79a0 user: mistachkin tags: vsix2015)
22:36
Add the --mode option to fuzzershell. (check-in: b940b0fa user: drh tags: trunk)
18:58
Many new configuration options for fuzzershell. (check-in: 41c95439 user: drh tags: trunk)
18:48
Fix some fts5 problems with very large position lists. (check-in: 2ea8f9cb user: dan tags: fts5)
15:13
Fix a memory leak caused by duplicate entries in the sqlite_stat1 table. (check-in: 2f58c8c9 user: dan tags: trunk)
13:59
Fix an obscure memory leak in sqlite3Stat4ProbeFree() (check-in: c72abbe2 user: drh tags: trunk)
12:50
Enhance fuzzershell to support multiple blocks of SQL, each run in its own private in-memory database. (check-in: ab0a96ca user: drh tags: trunk)
01:32
Merge all recent trunk enhancements and fixes into the sessions branch. (check-in: b8ef1cde user: drh tags: sessions)
01:25
Merge all recent trunk enhancements and fixes into the apple-osx branch. (check-in: 74b7bf17 user: drh tags: apple-osx)
01:13
Add an ALWAYS() around a new branch that was made unreachable by an even newer change. (check-in: 592c0104 user: drh tags: trunk)
2015-04-19
23:48
Fix another harmless compiler warning. (check-in: 5ae853aa user: mistachkin tags: vsix2015)
23:40
Merge updates from trunk. (check-in: 59d1a3bb user: mistachkin tags: vsix2015)
23:39
Modify the 'mkvsix' tool itself to support the Visual Studio 2015 CTP. (check-in: e0b7a191 user: mistachkin tags: vsix2015)
23:11
Fix an off-by-one assert() in the virtual table argument tokenizer. (check-in: c83052e4 user: drh tags: trunk)
22:41
Fix a broken assert() and comparison for INSERT INTO ... SELECT when the SELECT uses an unknown collating sequence. (check-in: e73ac0cb user: drh tags: trunk)
22:31
Silently ignore parser stack overflow when parsing a malformed schema in PRAGMA writable_schema mode. (check-in: 2cb37b95 user: drh tags: trunk)
21:59
Fix another assert() that is not true if the database schema is corrupt. (check-in: bc97cec6 user: drh tags: trunk)
21:43
Fix harmless compiler warnings seen with MSVC 2015. (check-in: d05becd8 user: mistachkin tags: vsix2015)
20:39
Fix a faulty assert in the schema parsing logic. (check-in: b1ed9495 user: drh tags: trunk)
19:53
Document the NMAKE_ARGS environment variable as well. (check-in: 977fd39c user: mistachkin tags: vsix2015)
19:21
Fix a potential NULL pointer deference on a corrupt database schema. (check-in: dc61b292 user: drh tags: trunk)
18:58
Improve documentation and comments in the MSVC batch build tool. (check-in: ca64ef07 user: mistachkin tags: vsix2015)
18:32
Bring comments on the INSERT code generator up-to-date. Fix the INSERT code generator so that it correctly handles inserts from a SELECT into a virtual table with non-terminal hidden columns. (check-in: 4ac81fac user: drh tags: trunk)
06:18
Work in progress on making VSIX packages for the Visual Studio 2015 CTP. (check-in: 8469d651 user: mistachkin tags: vsix2015)
2015-04-18
19:20
The sqlite3_trace() callback does not try to expand parameters in statements that have no parameter. (check-in: 917e3c36 user: drh tags: trunk)
17:43
Fix an incorrect assert() statement in the CREATE INDEX code generator. (check-in: 2eed41fd user: drh tags: trunk)
16:25
Ensure that if a "ROLLBACK TO" statement is used to rollback (but not close) theoutermost transaction, the xRollbackTo() method of any virtual tables involved in the transaction is invoked. (check-in: e98d481d user: dan tags: trunk)
04:45
Disregard leading zeros when converting strings to 32-bit integers. (check-in: 691cc201 user: drh tags: trunk)
00:22
Fix an incorrect assert() in the sqlite3_trace() logic. (check-in: eabde339 user: drh tags: trunk)
2015-04-17
20:51
Fix a problem affecting some fts3 UPDATE and DELETE statements on order=DESC tables. (check-in: 284c1623 user: dan tags: trunk)
19:41
In the expression-tree comparison routine, do not compiler Expr.iColumn and Expr.iTable for TK_STRING expressions. (check-in: b67bb16c user: drh tags: trunk)
18:52
Always resolve symbols in all ORDER BY clauses of a compound-SELECT, even illegal ORDER BY clauses. (check-in: 6c39ef73 user: drh tags: trunk)
18:22
Remove unnecessary parser error count increments. Let the sqlite3ErrorMsg() take care of doing that. (check-in: 3f3b0f68 user: drh tags: trunk)
17:00
Ensure that filenames passed to the VFS xOpen() function are terminated by 2 '\0' bytes. (check-in: 66eff473 user: dan tags: ota-update)
16:29
Fix a memory leak in sqlite3ota.c that can follow an OOM error. (check-in: c3dc15e7 user: dan tags: ota-update)
16:12
Remove an ALWAYS() that turns out to be false when there is a semantic error on a compound SELECT. (check-in: ad67a67c user: drh tags: trunk)
15:58
Ensure that semantic SQL errors are always reported back up to the syntax parser. Also: Improve the defense against invalid PRAGMA synchronous settings. (check-in: 7aeade9a user: drh tags: trunk)
15:16
Fix a faulty assert() in sqlite3SelectNew(). (check-in: 620d19c3 user: drh tags: trunk)
14:30
Add the tool/fuzzershell.c utility program. (check-in: db8d9af4 user: drh tags: trunk)
12:16
Fix the header comment on the sqldiff utility program. No code changes. (check-in: b355ca3a user: drh tags: trunk)
11:31
Hold the database mutex for the duration of sqlite3session_diff(). (check-in: 6f330501 user: dan tags: sessions)
08:36
Have OTA always specify SQLITE_CONFIG_URI when opening databases. Fix a test issue causing otacrash.test to fail. (check-in: 0d0e5ec0 user: dan tags: ota-update)
2015-04-16
23:04
Restrict the scope of a local-use function in the parser. (check-in: cd6598f4 user: drh tags: trunk)
21:57
Use a heap rather than a bitmap for cell coverage and overlap testing on btree pages in PRAGMA integrity_check. (check-in: e94b2ef2 user: drh tags: trunk)
20:27
Fix a couple of unreachable branches. (check-in: 8f391dff user: drh tags: trunk)
20:10
Fix a boundry-value condition in the phrase poslist extractor of FTS3/4. (check-in: 55d10baf user: drh tags: trunk)
18:49
Be sure to release any xShmLock locks held when closing an OTA handle. (check-in: d0fba72a user: dan tags: ota-update)
18:11
Make sure all cursors are closed when returning from a VDBE subprogram that implements a foreign-key construct. (check-in: d04d354d user: drh tags: trunk)
17:31
Fix the VDBE so that it always uses the original opcode for profiling and debugging even after the pOp pointer has been updated due to a jump. (check-in: 647495cf user: drh tags: trunk)
16:27
Restore SQLITE_FORCE_OS_TRACE to the MSVC makefile, which was removed during a merge. (check-in: c37f4d49 user: mistachkin tags: winTest)
16:22
Fix a faulty assert() in the compound-SELECT code generator. (check-in: 10715b05 user: drh tags: trunk)
16:04
Silently ignore requests to change the PRAGMA synchronous setting to an illegal integer value, rather than raising an assertion. (check-in: e0a88176 user: drh tags: trunk)
15:47
Make sure errors in coding triggers are propagated back up to the parser. (check-in: 928f973c user: drh tags: trunk)
15:05
Add the --backslash option to the command-line shell for testing purposes. (check-in: dd96211e user: drh tags: trunk)
14:33
Fix a faulty assert() in the compound select code generator. (check-in: 9d336be1 user: drh tags: trunk)
14:33
Fix a mismatched printf() argument and format specifier. Add ota files to Makefile.in. (check-in: 5db810a8 user: dan tags: ota-update)
14:13
Improvements to the way VALUES clauses are parsed. (check-in: ec5a493a user: drh tags: trunk)
13:52
Fix a stray backslash character in a printf format string in sessionDiffFindModified() (check-in: abb192a1 user: drh tags: sessions)
12:12
Fix the corruptC.test module due to a change in error message text. (check-in: 7c0deed2 user: drh tags: trunk)
12:09
Checked in the wrong fix. (Closed-Leaf check-in: 4b0f4484 user: drh tags: mistake)
11:56
Use a heap instead of a bitmap for cell overlap and coverage testing of btree pages in PRAGMA integrity_check. (Closed-Leaf check-in: 5619c959 user: drh tags: integrity-check-heap)
10:55
Avoid attempting to rename the *-oal file while it is still open. (check-in: 658c3b0c user: dan tags: ota-update)
08:54
Fix a problem in test file e_reindex.test. (check-in: 5b3de939 user: dan tags: trunk)
07:19
Ensure the sqlite3Select() routine always returns non-zero if an error has occurred. (check-in: b51028ed user: dan tags: trunk)
04:20
Merge updates from trunk. (Closed-Leaf check-in: 22827542 user: mistachkin tags: expShell)
03:56
Move OSTRACE defines so they are visible to all source files that need them. (check-in: 72485c97 user: mistachkin tags: winTest)
03:37
Make sure the sqlite3DebugPrintf() function is defined for OSTRACE as well. (check-in: ae5af704 user: mistachkin tags: winTest)
03:24
Merge updates from trunk. Make OSTRACE changes work on Linux. (check-in: cd154266 user: mistachkin tags: winTest)
00:26
When parsing the schema, ignore any SQL that does not begin with "CREATE". (check-in: d3c00d61 user: drh tags: trunk)
2015-04-15
19:25
Fix a potential one-byte buffer overread in the command-line shell. (check-in: e018f4bf user: drh tags: trunk)
19:13
Add the BtCursor.pPage field which is the current page to which the cursor points, for a very small performance gain. (Leaf check-in: a200e1ea user: drh tags: btree-current-page-cache)
18:49
Logically store updates as (insert+delete) within the FTS tree. This allows keys to be annihilated more quickly under some circumstances. (check-in: 50fae1f0 user: dan tags: fts5)
17:26
Prevent the fetchPayload() routine from reporting a cell size that extends off the end of the page on a pathologically corrupted database file. (check-in: f71053cf user: drh tags: trunk)
16:01
Fix a problem preventing doclist indexes from being loaded. (check-in: b29109a0 user: dan tags: fts5)
15:29
Enhance the showdb utility program so that it can read the last partial page of a truncated database file. (check-in: 61d72e17 user: drh tags: trunk)
14:52
Add the --msvc command-line option to the releasetest.tcl script. This is only a partial merge from the winTest branch as the OS_TRACE changes are omitted. (check-in: b8768f12 user: drh tags: trunk)
14:26
Merge all recent trunk enhancements and fixes into the ota-update branch. (check-in: 9bd3e445 user: drh tags: ota-update)
14:14
Merge all recent trunk fixes and enhancements into the sessions branch. (check-in: e65e65f9 user: drh tags: sessions)
13:51
Merge recent trunk fixes and enhancements into the apple-osx branch. (check-in: bfc7142a user: drh tags: apple-osx)
09:16
Remove an incorrect assert() statement from sqlite3Fts3Dequote(). (check-in: bd06eeb8 user: dan tags: trunk)
08:37
Remove a branch that became unreachable due to one of the earlier check-ins today. (check-in: fa0956ed user: drh tags: trunk)
08:20
Fix a problem causing an assert() to fail if a snippet containing 0 tokens was requested from fts3. (check-in: eafd0a1e user: dan tags: trunk)
07:57
Fix the error message generator for illegal token errors so that it does not leak memory if it immediately follows another erroneous SQL statement. (check-in: 3576973f user: drh tags: trunk)
07:34
Remove an incorrect ALWAYS() from the automatic index generator. (check-in: eeb4bd06 user: drh tags: trunk)
07:19
Remove an incorrect ALWAYS() from the table_info pragma. (check-in: 0e087c01 user: drh tags: trunk)
07:10
Change the multiSelectOrderBy() routine to return non-zero if there has been any prior error. (check-in: 14784c31 user: drh tags: trunk)
06:45
Fix a faulty assert() statement in the name resolver associated with the optimization that converts compound selects with ORDER BY COLLATE into subqueries. (check-in: c72324ef user: drh tags: trunk)
05:57
Correctly handle COLLATE operators applied to COLLATE operators in an ORDER BY clause. (check-in: 9e1f837b user: drh tags: trunk)
05:38
Fix a faulty assert() in the sqlite3StrAccumAppend() routine. (check-in: 998cfdb8 user: drh tags: trunk)
05:31
Correctly deal with an unknown collating sequence on an indexed DISTINCT query. (check-in: a0b6e2fe user: drh tags: trunk)
05:20
When adding the implied "LIMIT 1" to the end of a scalar subquery, make sure that subquery is not a VALUES-only query as such queries cannot deal with LIMIT clauses. (check-in: 7c27310b user: drh tags: trunk)
04:51
When doing the (dubious) conversion of double-quoted identifier into string literal for MySQL compatibility, be sure to also clear the iTable value from the Expr entry to avoid an assert. (check-in: d7211b68 user: drh tags: trunk)
04:20
Add a test case for what was formerly thought to be an unreachable condition: when the LHS of an OR operator contains an error and the RHS contains an IN operator. (check-in: 38727425 user: drh tags: trunk)
04:10
An oversize hex literal can cause a parsing error while generating code for constants that are factored out of the main body of the VDBE program. So allow for that case. (check-in: a084690b user: drh tags: trunk)
2015-04-14
20:15
Begin changing fts5 to use a delete flag so that delete markers may be annihilated more quickly. (check-in: 9341c070 user: dan tags: fts5)
19:01
Add the --summary option to the sqldiff command-line tool. (check-in: 88b22761 user: drh tags: trunk)
15:14
Update API documentation to identify many functions as methods on objects. No changes to code. (check-in: b549cbce user: drh tags: trunk)
2015-04-13
23:11
Merge all recent trunk enhances into the apple-osx branch. (check-in: e709d3b4 user: drh tags: apple-osx)
23:05
Add #ifdef magic for HAVE_GETHOSTUUID so that the build will hopefully now work on more verions of MacOS with SQLITE_ENABLE_LOCKING_STYLE turned on. (check-in: 211411d0 user: drh tags: trunk)
22:26
On a DETACH statement, keep all schemas intact except fo the one that is being detached, and thus avoid unnecessary schema reparsing. (check-in: 661db19b user: drh tags: trunk)
21:39
Omit the "pc" or "program counter" variable from the VDBE loop for 0.6% performance increase. (check-in: d2f10c41 user: drh tags: trunk)
19:14
Remove the out2-prerelease VDBE opcode property and its associated code, for a 0.5% performance improvement. (check-in: e29c7f2c user: drh tags: trunk)
17:43
Add a comment to wal.c to explain why a race condition is safe. (check-in: bc33af86 user: dan tags: trunk)
14:44
Remove a faulty assert() from the btree balancing logic. (check-in: d06669d9 user: drh tags: trunk)
14:08
Test that if the definition of a collation sequence is changed and VACUUM run, the new database contains records sorted in the (new) correct order. (check-in: ce6eaac1 user: dan tags: trunk)
14:03
Remove an unreachable branch from the VACUUM logic. (check-in: 65ace4b0 user: drh tags: trunk)
12:45
Remove an unreachable branch from the vdbeSorterCompareInt() routine. (check-in: f666ef06 user: drh tags: trunk)
2015-04-12
21:28
Update the version number to 3.8.10 because of the new sort optimizations from check-in [79326d6eec]. (check-in: bd2cfa1d user: drh tags: trunk)
17:35
Fix a problem with a stale Select.pWith pointer when a CTE is used together with a compound query and an ORDER BY clause. (check-in: 9a453f52 user: drh tags: trunk)
01:33
Merge all recent trunk enhancements into the sessions branch. (check-in: 5f14f34f user: drh tags: sessions)
01:22
Avoid problems when a query has a GROUP BY and an ORDER BY but no FROM clause. (check-in: e527d96a user: drh tags: trunk)
2015-04-11
20:44
Optimizations for VACUUM, CREATE INDEX and some cases of ORDER BY. (check-in: 79326d6e user: dan tags: trunk)
20:20
Fix a problem with sorting large amounts of partially ordered data. (check-in: acca97ef user: dan tags: trunk)
18:45
Merge latest trunk changes with this branch. (Closed-Leaf check-in: cf7590f6 user: dan tags: sorter-opt)
18:25
Have fts5 integrity check verify that prefix indexes contain the same values as returned by prefix queries on the main terms index. (check-in: bdb8e82a user: dan tags: fts5)
17:09
Merge the sessions-diff branch with this one. (check-in: 805baa57 user: dan tags: sessions)
16:23
Improve fts5 integrity-check so that it checks that DESC queries return the same as ASC. Change the poslist format slightly to make room for a delete-flag. (check-in: 49c1e745 user: dan tags: fts5)
13:49
Add the --changeset option to the sqldiff utility program, for generating a sessions changeset file instead of an SQL diff. (check-in: f9a3a839 user: drh tags: trunk)
13:48
The --changeset option now appears to be working. (Closed-Leaf check-in: 1a2e2803 user: drh tags: sqldiff-changeset)
12:07
First complete attempt to generate a working changeset. Still contains bugs. (check-in: 5611fa9b user: drh tags: sqldiff-changeset)
11:53
Update tests in whereD.test to account for the change in the previous commit. (check-in: da49700c user: dan tags: trunk)
11:44
Do not assume an index contains unique entries unless it is declared UNIQUE and NOT NULL is specified for all columns. Fix for [7b4fee9f6c]. (check-in: e3b1f625 user: dan tags: trunk)
02:08
Detect and report oversized records constructed from multiple zeroblobs. (check-in: 9e139afd user: drh tags: trunk)
2015-04-10
21:16
Minor build enhancements for MSVC. (check-in: 40c417a7 user: mistachkin tags: trunk)
19:41
Work toward adding the --changeset option to the sqldiff utility program. Changes are incomplete. This is an incremental check-in. (check-in: 463e38d7 user: drh tags: sqldiff-changeset)
16:05
In sqlite3_declare_vtab(), avoid accessing the database structure until after the "api-armour" safety-check has completed and the db mutex has been obtained. (check-in: 860e4f8a user: dan tags: trunk)
12:04
Fix foreign key CASCADE for cases where the parent key is an INTEGER PRIMARY KEY and the parent table contains other columns named "rowid", "_rowid_", and "oid". (check-in: ed3cbaab user: drh tags: trunk)
08:28
Update this branch with the latest changes from sorter-opt. (Leaf check-in: 08c0b19b user: dan tags: insert-select-opt)
08:20
Update this branch with latest trunk changes. (check-in: 60be9c1c user: dan tags: sorter-opt)
07:55
Do not allow virtual table constructors to be called recursively. (check-in: 0a72726d user: dan tags: trunk)
2015-04-09
19:39
Fix incorrect column names in UPDATE statements generated by the sqldiff utility. (check-in: ee53b460 user: drh tags: trunk)
19:19
Updates to comments describing the changeset and patchset formats. (check-in: 5342f721 user: dan tags: sessions)
18:14
Add the --primarykey option to the sqldiff tool, which causes it to use the schema-defined PRIMARY KEY. (check-in: 5063f907 user: drh tags: trunk)
16:30
Remove two pointless assert() statements. This should silence harmless compiler warnings reported at https://bugzilla.mozilla.org/show_bug.cgi?id=1152845 (check-in: 83b342a4 user: drh tags: trunk)
13:40
Fix comment typos in the sqldiff.c utility program. (check-in: 32ab2bb9 user: drh tags: trunk)
13:34
Add the "sqldiff" utility program. (check-in: 88da5bf5 user: drh tags: trunk)
11:24
Remove a variable initializion to silence a harmless compiler warning. (check-in: 79861adb user: drh tags: trunk)
2015-04-08
16:43
Fix problems in the sessions module causing it to produce spurious SQLITE_NOMEM errors when handling SQL text or blob values zero bytes in size. (check-in: b9459d59 user: dan tags: sessions)
16:01
Add experimental API sqlite3session_diff(). (Closed-Leaf check-in: c4340b2e user: dan tags: sessions-diff)
14:01
Merge all changes for version 3.8.9 into the ota-update branch. (check-in: ec9d907a user: drh tags: ota-update)
12:47
Merge in all version 3.8.9 changes from trunk. (check-in: 30121870 user: drh tags: apple-osx)
12:16
Version 3.8.9 (check-in: 8a8ffc86 user: drh tags: trunk, release, version-3.8.9)
2015-04-07
23:10
Merge printf() width and precision overflow fixes from trunk. (check-in: aeca95ac user: drh tags: sessions)
21:18
Merge updates from trunk. (check-in: c458db41 user: mistachkin tags: expShell)
21:17
Correct typo in new test numbering. (check-in: d176c9fa user: mistachkin tags: expShell)
21:16
Enhance the shell export to support emitting column names in 'insert' mode when headers are enabled. (check-in: 6e504cd0 user: mistachkin tags: expShell)
15:39
Avoid signed integer overflow when converting oversized in-line integer widths and precisions in printf(). (check-in: 8e4ac2ce user: drh tags: trunk)
14:38
Another change to avoid a problem caused by integer overflow in the printf() code. (check-in: 95625ef3 user: dan tags: trunk)
13:28
Further changes to guard against integer overflow in the width and precision of printf() arguments. (check-in: 5ce4e7d7 user: drh tags: trunk)
12:41
Guard against excessive width and precision in floating-point conversions in the printf routines. (check-in: c494171f user: drh tags: trunk)
2015-04-06
22:05
Detect and suppress an endless loops in clearDatabasePage() that might result from a corrupt database file. This is an edited cherry-pick from [30011ad2f55c] and [395bb3e677a]. (Leaf check-in: e5f5ef00 user: drh tags: apple-osx-385)
12:08
Merge obscure problem fixes from trunk. (check-in: 271c110b user: drh tags: sessions)
11:04
Fix a problem with fts3 prefix terms within phrase queries on "order=DESC" tables with a mix of negative and positive rowids. (check-in: 3ad829e5 user: dan tags: trunk)
09:05
Fix a problem with fts3 prefix terms within phrase queries on "order=DESC" tables with a mix of negative and positive rowids. (Closed-Leaf check-in: 0cdf5028 user: dan tags: fts3-prefix-query-fix)
2015-04-04
16:49
Fix a problem with resolving ORDER BY clauses that feature COLLATE clauses attached to compound SELECT statements. (check-in: edc1de2a user: dan tags: trunk)
16:43
Fix a problem with resolving ORDER BY clauses that feature COLLATE clauses attached to compound SELECT statements. (Closed-Leaf check-in: 427b50fb user: dan tags: compound-order-by-fix)
00:02
Enhance the 'releasetest.tcl' tool to support MSVC. (check-in: f664bfdc user: mistachkin tags: winTest)
2015-04-03
20:33
Disable the SQLITE_FCNTL_WAL_BLOCK feature for now. It needs more work and is not yet ready for release. (check-in: 4ae9a3ac user: drh tags: trunk)
18:33
Add source code to the "showlocks" utility program in the tool/ subdirectory. (check-in: 6868cc66 user: drh tags: trunk)
2015-04-02
17:46
Fix build with OSTRACE enabled on Windows when building using separate source files. (check-in: 5f6e3580 user: mistachkin tags: winTest)
15:24
Disable e_walauto.test on OpenBSD, as it requires a coherent cache. (check-in: 90701227 user: dan tags: trunk)
09:06
Fix a problem in vdbesort.c to do with caching unpacked records. (check-in: 80a00539 user: dan tags: sorter-opt)
2015-04-01
18:22
Merge latest trunk changes with this branch. (check-in: 4621b2ee user: dan tags: sorter-opt)
18:20
When vacuuming an index that uses no collations other than BINARY, assume that the order of index entries will not be changed by the VACUUM. (check-in: e403460b user: dan tags: sorter-opt)
16:39
Merge recent enhancements from trunk. (check-in: aea439bd user: drh tags: sessions)
16:18
Reduce the CPU used by CREATE INDEX statements by taking better advantage of the fact that keys are inserted in sorted order. (check-in: 592cdc5d user: dan tags: sorter-opt)
16:13
Merge all recent trunk fixes and enhancements into the apple-osx branch. (check-in: 71b6f507 user: drh tags: apple-osx)
13:21
Improved detection and suppression of endless loops in clearDatabasePage(). (check-in: 30011ad2 user: drh tags: trunk)
01:26
The build is still broken. Multiple definitions of sqlite3OSTrace when compiled using separate source files. (check-in: 5c965a71 user: drh tags: winTest)
2015-03-31
19:40
On windows, flush the mapping view when syncing content to disk. (check-in: a828e73d user: drh tags: trunk)
19:17
Set the winShm.id member when it is going to be traced. (check-in: fa7916b6 user: mistachkin tags: winTest)
19:06
Build fixes for OSTRACE enhancements. (check-in: f79c236f user: mistachkin tags: winTest)
18:18
Path portability enhancements for mptester.exe. (check-in: c8694657 user: drh tags: winTest)
18:05
Add the "mptest" target to main.mk. Change TRUNCATE and PERSIST to DELETE for mptest.c on Windows because of problems trying to delete the journal. (check-in: ea697e6d user: drh tags: trunk)
17:58
Path handling portability enhancements for mptester. (check-in: da49634b user: mistachkin tags: winTest)
17:45
Testing enhancements on Windows. (check-in: 9cc70eee user: mistachkin tags: winTest)
17:32
Change the sqlite3_log() message generated on a retry after delay in os_win to be an SQLITE_NOTICE instead of SQLITE_IOERR. (check-in: 5d533eee user: drh tags: trunk)
17:01
Fix configure.ac and Makefile.in so that they generate pkgIndex.tcl correctly. (check-in: 3deff252 user: drh tags: trunk)
16:42
Minor tweaks to the MSVC Makefile. (check-in: 7244ea59 user: mistachkin tags: trunk)
16:33
Handle very large URI pathnames for in-memory shared-cache databases. (check-in: 586a94e8 user: drh tags: trunk)
15:15
Fix harmless compiler warnings in lemon.c (check-in: bbe7dcda user: drh tags: trunk)
14:31
Fix the corruptJ.test case so that it works with and without SQLITE_SECURE_DELETE. (check-in: 0c0ecfd6 user: drh tags: trunk)
14:18
Additional logging information output by mptester. (check-in: 0cbbf6e4 user: drh tags: trunk)
13:46
Add the "mptest" target to Makefile.msc (check-in: 1e814e0b user: drh tags: trunk)
11:42
Ensure that comparison operators do not mess up the MEM_Dyn flag on registers when reverting affinity changes. (check-in: 02e3c88f user: drh tags: trunk)
00:10
Merge all recent trunk enhancements and fixes into the sessions branch. (check-in: df94e61f user: drh tags: sessions)
2015-03-30
23:52
Merge the latest trunk enhancements, and especially the fix for the infinite loop on a DROP TABLE in a corrupt database, into the apple-osx branch. (check-in: 4d42bf5e user: drh tags: apple-osx)
23:43
Prevent a possible infinite loop when trying to DROP a table from a corrupt database. (check-in: 395bb3e6 user: drh tags: trunk)
15:45
Merge sorter optimizations with this branch. (check-in: 9bf1cfb4 user: dan tags: insert-select-opt)
12:06
Improve performance of multi-field sorts where the first field has a low cardinality. (check-in: 601e7b6b user: dan tags: sorter-opt)
09:58
Remove some unnecessary code from vdbesort.c. (check-in: b58191e9 user: dan tags: sorter-opt)
2015-03-28
19:56
Further optimizations for sorting records that begin with integer or text values. (check-in: 24fe9f25 user: dan tags: sorter-opt)
2015-03-27
18:22
Merge updates from trunk. (Closed-Leaf check-in: 45acf6a8 user: mistachkin tags: winViewFlush)
18:20
Enhancements to OSTRACE usage in the Win32 VFS. (check-in: ab580029 user: mistachkin tags: trunk)
02:27
Fix the ".testctrl imposter" command in the command-line shell to be consistent in error reporting and results with the other .testctrl commands. (check-in: 0ec08ba8 user: drh tags: trunk)
00:21
Using MSVC, get the sqlite3IoTrace variable working with the USE_STDCALL and/or DYNAMIC_SHELL options. (check-in: fe976c91 user: mistachkin tags: trunk)
00:19
In the MSVC Makefile, make the DYNAMIC_SHELL option work without USE_STDCALL. (check-in: 25b46a9c user: mistachkin tags: trunk)
2015-03-26
23:36
When syncing a memory mapped file on Windows, flush the mapped view as well. (check-in: df204049 user: mistachkin tags: winViewFlush)
18:24
Revise Win32 locking test to account for recent log message changes. (check-in: 1bc76339 user: mistachkin tags: trunk)
17:04
Avoid leaving the malloc subsystem in a partially initialized state if the low-level initialization callback fails. (check-in: 3e872011 user: drh tags: trunk)
15:27
Provide source code line numbers for errors in the Windows VFS generated by the winLogIoerr() routine. (check-in: b5da0d93 user: drh tags: trunk)
14:29
Fix a harmless compiler warning in FTS3. (check-in: 1688f60c user: drh tags: trunk)
12:38
Merge sorter optimization into this branch. (check-in: aeb8e9a9 user: dan tags: insert-select-opt)
11:55
Optimize cases where all the sorter is sorting a set of records that all begin with integer values, or that all begin with text values to be compared using BINARY. (check-in: ce5ad17c user: dan tags: sorter-opt)
2015-03-25
18:29
Change an unreachable branch into an assert(). (check-in: fb076b28 user: drh tags: trunk)
17:35
Fix the saveCursorPosition() routine in btree.c so that it works correctly for a eState=CURSOR_SKIPNEXT cursor. (check-in: 37866b4d user: drh tags: trunk)
15:23
Extend [52e73eec] so that the IS optimization may be used on primary keys with more than 3 columns. (check-in: 4e8796af user: dan tags: ota-update)
13:06
Reactivate an older assert() (adding an "|| CORRUPT_DB" term) and add a new assert() in btree.c. (check-in: 1e96520a user: drh tags: trunk)
12:05
Add two new assert()s to the sqlite3BtreeDataSize() method. (check-in: 42d1793d user: drh tags: trunk)
00:09
Backport the 'stdcall' related enhancements from trunk. (Leaf check-in: cbb93d1a user: mistachkin tags: stdcall-3.8.8)
2015-03-24
22:00
Add SQLITE_STDCALL and SQLITE_CDECL macros on public function definitions. (check-in: cae3239a user: mistachkin tags: trunk)
21:54
Further simplifications to the amalgamation builder. (Closed-Leaf check-in: e826cd7d user: drh tags: stdcall)
21:52
Update the 'mksqlite3c-noext' tool as well. (check-in: a5322566 user: mistachkin tags: stdcall)
21:34
Fix a couple comment typos in a tool script. No changes to code. (check-in: 83421af6 user: mistachkin tags: trunk)
21:27
Add SQLITE_STDCALL and SQLITE_CDECL macros on public function definitions. (check-in: 242f09d4 user: mistachkin tags: stdcall)
19:43
Update this branch with latest trunk changes. (check-in: 3ccd64ef user: dan tags: insert-select-opt)
19:02
Merge all recent trunk enhancements into the sessions branch. (check-in: 54aaa6f2 user: drh tags: sessions)
18:49
Merge the latest trunk enhancements into the apple-osx branch. (check-in: a2bd81e5 user: drh tags: apple-osx)
18:21
Merge the latest trunk changes into this branch. (check-in: 9d9b6c88 user: dan tags: ota-update)
18:19
Suppress a compiler warning that was appearing with SQLITE_THREADSAFE=0. (check-in: 436314b5 user: drh tags: trunk)
18:03
When the OTA module updates or deletes a row, save only those fields that are part of an index or primary key to the ota update database. (check-in: 6326fd32 user: dan tags: ota-update)
16:43
Prevent a virtual table from being destroyed while it is in use. Also: replace Vdbe.inVtabMethod with sqlite3.nVDestroy. Simplify the EXPLAIN output for P4.pVtab to only show the sqlite3_vtab pointer. (check-in: cbeb9a1a user: drh tags: trunk)
14:57
Add tests to check that attempting to DROP a virtual table while it is use does not cause problems. (Closed-Leaf check-in: 5ee625b1 user: dan tags: nVDestroy)
14:57
Simplify the EXPLAIN output of virtual table P4 parameters to only show the pointer to the sqlite3_vtab object and omit the sqlite3_module object. (Closed-Leaf check-in: 85610bbb user: drh tags: nVDestroy)
14:05
More defenses against virtual table being deleted out from under a running statement. (check-in: 116c9982 user: drh tags: nVDestroy)
13:32
Prevent a virtual table from being destroyed while it is in use. (check-in: fba674c0 user: drh tags: nVDestroy)
12:51
Replace the Vdbe.inVtabMethod field with the sqlite3.nVDestroy counter. (check-in: 9faefb96 user: drh tags: nVDestroy)
2015-03-23
21:32
Disable loadable extensions in the command-line shell on VxWorks user-space. (check-in: 0ee2d38d user: drh tags: trunk)
19:55
Track total memory usage using a 64-bit integer on 64-bit systems. Add the sqlite3_status64() interface. Make the sqlite3_status() and sqlite3_status64() interfaces atomic using mutexes and verify correct mutex operation using assert() statements. (check-in: 6fc4e79a user: drh tags: trunk)
19:16
Fix a non-C89 variable declaration that causes problems for MSVC. (Closed-Leaf check-in: 3de085ea user: drh tags: status64)
19:03
Fix datetype size asserts in btree.c. (check-in: ff4812d0 user: drh tags: trunk)
18:52
Add the SQLITE_PTRSIZE macro. Use it to help sqlite3_status() run faster on 32-bit systems. (check-in: c742bd60 user: drh tags: status64)
17:25
Add the sqlite3_status64() interface. Make the new interface and the legacy sqlite3_status() both atomic and threadsafe. Check threadsafety using assert()s. (check-in: 1ce8e8fa user: drh tags: status64)
17:10
Fix a broken assert() in the ota module. (check-in: 858de8a5 user: dan tags: ota-update)
14:39
Set the OPFLAG_SEEKRESULT correctly in "INSERT INTO ... SELECT" statements. (check-in: 6f7d9995 user: dan tags: insert-select-opt)
2015-03-22
10:23
Fix a potential NULL pointer dereference following a syntax error. (check-in: 8d27e3e1 user: drh tags: trunk)
2015-03-21
23:38
Fix harmless compiler warnings with MSVC when assert() and SQLITE_MEMDEBUG are both enabled. (check-in: 9513dbd4 user: mistachkin tags: trunk)
22:23
Add more comments to the MSVC batch build tool. (check-in: 03522da3 user: mistachkin tags: trunk)
22:13
Increase the debugging level for the debug configuration in the MSVC batch build tool. (check-in: 041484ff user: mistachkin tags: trunk)
20:59
Do not invoke a C preprocessor macro with an empty argument, as (reportedly) some versions of GCC are unable to deal with that. (check-in: de9da317 user: drh tags: trunk)
20:50
Add a missing "int" on a constant declaration. (check-in: 235157de user: drh tags: trunk)
19:35
Avoid a segfault if NULL is passed as the first argument to SQL scalar function fts3_tokenizer(). (check-in: 6d098969 user: dan tags: trunk)
17:00
Merge all recent trunk enhancements and especially the blocking WAL-lock fix into the apple-osx branch. (check-in: 9f1f8b33 user: drh tags: apple-osx)
16:40
Change walblock.test to block an external process for 10 seconds, not 5. 5 seconds is not long enough to tell the difference between a blocking lock and a series of retries. (check-in: 717335fc user: dan tags: trunk)
16:36
Fix the blocking WAL lock so that it works and so that it compiles on a Mac. (check-in: 67d69d21 user: drh tags: trunk)
15:45
Merge trunk changes with this branch. (check-in: 14274391 user: dan tags: fts5)
15:37
When scanning the full-text index as part of the fts5 integrity-check, also run a point query for every term and verify that these results are consistent with those found by the linear scan. (check-in: ce972f6a user: dan tags: fts5)
15:26
Do not use sorters for INSERT statements that insert multiple rows using the VALUES clause. (check-in: 93e28ea1 user: dan tags: insert-select-opt)
15:04
Merge latest trunk changes with this branch. (check-in: 9affe7f3 user: dan tags: insert-select-opt)
12:25
Remove an unreachable branch from the OP_VCreate opcode (merge accidental fork in trunk). (check-in: 2fbfec62 user: dan tags: trunk)
12:22
Avoid an integer overflow in fts3 causing gcc 4.7.1 with -O2 to behave counter-intuitively (perhaps because the behaviour is undefined). Add an "ifcapable trace" to a test in shell4.test. (check-in: e3e23464 user: dan tags: trunk)
12:22
Remove an unreachable branch from the OP_VCreate opcode. (check-in: 5fca41a3 user: drh tags: trunk)
10:53
Add a missing "ifcapable fts3" to a test case in vtab2.test. (check-in: d845b0f6 user: dan tags: trunk)
07:16
Merge recent trunk changes with this branch. (check-in: 35eef4dd user: dan tags: insert-select-opt)
07:03
Disable the sorter optimization used by INSERT INTO SELECT statements if the statement explicitly specifies REPLACE, IGNORE or FAIL conflict handling. (check-in: d4215942 user: dan tags: insert-select-opt)
03:18
Correctly detect the error of having a "*" wildcard on a SELECT without a FROM clause on the left-hand side of a recursive CTE. (check-in: b11d1793 user: drh tags: trunk)
02:58
If a column is both UNIQUE and a PRIMARY KEY, make sure the PRIMARY KEY designation takes precedence. (check-in: d871a792 user: drh tags: trunk)
02:34
Merge updates from trunk. (check-in: 441a00e7 user: mistachkin tags: expShell)
02:25
Remove superfluous define from the MSVC makefile. (check-in: 880d2513 user: mistachkin tags: trunk)
02:22
Improvements to the MSVC build. Fix harmless compiler warnings. Enable use of 'stdcall'. (check-in: 737630b8 user: mistachkin tags: trunk)
2015-03-20
20:30
Where possible insert the set of new keys for each index in sorted order within "INSERT INTO ... SELECT" statements. (check-in: 0a7f2051 user: dan tags: insert-select-opt)
16:54
Provide the BTREE_SEEK_EQ hint to the b-tree layer. (check-in: 3c367004 user: drh tags: trunk)
16:34
Fix to get SQLITE_SMALL_STACK working correctly again after the previous change. (Closed-Leaf check-in: 78df0ce1 user: drh tags: seek-eq)
14:57
Provide the BTREE_SEEK_EQ hint to the b-tree layer. (check-in: e750830f user: drh tags: seek-eq)
08:43
Fix a problem causing collation sequence names to be dequoted multiple times under some circumstances. (check-in: eddc05e7 user: dan tags: trunk)
2015-03-19
20:09
If a virtual table is created with a malformed UTF8 name in a UTF16 database, make sure that does not cause problems. (check-in: b74cb0a9 user: drh tags: trunk)
19:59
Fix a crash that can occur following an OOM condition within a CREATE VIRTUAL TABLE statement on a utf-16 database. (Closed-Leaf check-in: 9453e7da user: dan tags: malformed-vtab-name)
18:56
Fix a problem with creating virtual table with names specified using malformed utf-8 within utf-16 databases. (check-in: 9969cff2 user: dan tags: malformed-vtab-name)
16:25
Fix an FTS3/4 problem with handling empty tokenizer declarations (e.g. "CREATE VIRTUAL TABLE t(tokenize=);"). (check-in: 26d2def8 user: dan tags: trunk)
15:52
Silently ignore any attempt to add a prefix index for prefixes zero bytes in size to an fts3/4 table. Or any prefix index size so large that it overflows a 32-bit signed integer. (check-in: ad4b19d2 user: dan tags: trunk)
15:04
Add an assert() to check that the database mutex is held in sqlite3BtreeLeave(). (check-in: 31f54d7b user: dan tags: trunk)
14:48
Fix typo in shell error message. (check-in: 775a02d5 user: mistachkin tags: trunk)
14:46
Merge updates from trunk. (check-in: 3e363f40 user: mistachkin tags: expShell)
13:30
Fix a bug in error handling in the ".trace" command of the command-line shell. (check-in: 6a48b5d7 user: drh tags: trunk)
2015-03-18
20:03
Allow whereShortCut() to use the PRIMARY KEY index of a WITHOUT ROWID table to optimize a vector of "IS" operators in a WHERE clause. (check-in: 52e73eec user: dan tags: ota-update)
19:04
Clarify that OTA is unable to update or delete rows with NULL values in primary key fields. (check-in: 2e7c1e0a user: dan tags: ota-update)
16:00
Add another sqlite3FaultSim() to the multi-threaded sorter logic to improve testability. (check-in: 49ea2cde user: drh tags: trunk)
2015-03-17
20:39
Clarify the documentation on sqlite3_errcode(). No changes to code. (check-in: 2c0e0d87 user: drh tags: trunk)
18:54
Merge all recent trunk enhancements into the sessions branch. (check-in: 1d1c57c3 user: drh tags: sessions)
18:35
Merge all recent trunk changes, and in particular the blocking WAL lock change, into the apple-osx branch. (check-in: 8abbeadb user: drh tags: apple-osx)
17:08
Also merge the WAL blocking lock tests that were somehow missed on the previous check-in. (check-in: 7214dab7 user: drh tags: trunk)
16:59
Transient locks in WAL mode can now block in order to resolve priority inversions. (check-in: ec2f46de user: drh tags: trunk)
16:01
Add a test for the change on this branch. (Closed-Leaf check-in: e22dde18 user: dan tags: wal-blocking-lock)
2015-03-16
20:40
Make SQLite slightly more likely to use an auto-index within a sub-query. (check-in: ab832336 user: dan tags: trunk)
18:08
Fix typo of test prefix in the new WHERE test file. (check-in: 34779c52 user: mistachkin tags: trunk)
17:48
When the WHERE clause contains two OR-connected terms with identical operands but different operators, try to combine them into a single term. Example: (X=A OR X>A) becomes (X>=A). (check-in: 8bdda827 user: drh tags: trunk)
17:07
Modify the fts3query.test script so that it works even when testfixture is built using a version of TCL that is unable to sort the integer -9223372036854775808 (check-in: f61fd24b user: drh tags: trunk)
16:44
When deleting the master journal to commit a multi-database transaction, do not sync the directory if PRAGMA synchronous=OFF for all participating database files. (check-in: 018d7671 user: drh tags: trunk)
16:28
When estimating the number of rows visited by a range scan for which the keys consist of more than one field, consider prefixes of stat4 samples as well as the full samples. This generates more accurate estimates. (check-in: 3e0590de user: dan tags: trunk)
13:48
Use #ifdef to omit code that is only used for STAT3 and STAT4. (check-in: f2c9c5b5 user: drh tags: trunk)
13:12
Improved comments. No code changes. (Closed-Leaf check-in: 23f71a26 user: drh tags: combine-disjuncts)
12:13
When a WHERE clause contains disjuncts with the same operands, try to combine them into a single operator. Example: (x=A OR x>A) becomes (x>=A). (check-in: 7a309768 user: drh tags: combine-disjuncts)
09:21
Another test case for the planner change on this branch. (Closed-Leaf check-in: f2207a06 user: dan tags: stat4-change)
2015-03-14
18:59
When estimating the number of rows visited by a range scan for which the keys consist of more than one field, consider prefixes of stat4 samples as well as the full samples. (check-in: e1caf93c user: dan tags: stat4-change)
2015-03-13
15:44
Add tests to ensure "PRAGMA incremental_vacuum" and "PRAGMA auto_vacuum = incremental" handle corrupt databases correctly. (check-in: 1c2166cb user: dan tags: trunk)
08:31
Extra tests for commit [0f250957]. (check-in: 5aa522dc user: dan tags: trunk)
00:11
Remove debugging logic accidently included in the previous check-in. (check-in: 2887fb38 user: drh tags: trunk)
2015-03-12
23:48
Fix the "now" option for date-time functions for cases when STAT4 is disabled. (check-in: 3ac1f6a3 user: drh tags: trunk)
21:22
When STAT4 is enabled, allow probes of the STAT4 table using the value of constant functions computed at compile-time. (check-in: 0f250957 user: drh tags: trunk)
21:02
Always disallow functions as the DEFAULT of a column. Add assert()s and (Closed-Leaf check-in: a991bb1a user: drh tags: stat4-function)
19:12
Disable multiplexing of master-journal files in the test_multiplex.c module. (check-in: b8684df3 user: dan tags: trunk)
18:38
If an error occurs in the compile-time evaluation of an application-defined function, then propagate back out the exact error code, not just the generic SQLITE_ERROR. (check-in: 93f42586 user: drh tags: stat4-function)
06:46
The valueFromFunction() routine is better able to handle OOM errors. Omit unreachable branches. (check-in: 8fb6bd9b user: drh tags: stat4-function)
05:08
Improve the text on one of the opcode documentation comments in vdbe.c. (check-in: 08958f57 user: drh tags: trunk)
2015-03-11
20:59
Allow the default value for columns added using ALTER TABLE ADD COLUMN to be a function in existing schemas loaded from disk. But prevent this version of SQLite from being used to create such a column. (check-in: ff868e22 user: dan tags: stat4-function)
20:06
Allow the query planner to evaluate deterministic scalar SQL functions used in WHERE constraints if all arguments are SQL literals in order to compare the results with sqlite_stat4 sample data. (check-in: b7f1fc26 user: dan tags: stat4-function)
14:51
Add an optimization to the fts5 unicode tokenizer code. (check-in: f5db4892 user: dan tags: fts5)
14:34
Expand the multi-process test cases to repeat each case 20 times and to repeat tests using different journal modes. (check-in: a2715b04 user: drh tags: trunk)
2015-03-10
20:22
Arrange for some of the transient locks in WAL mode to block, as a single to the OS to fix priority inversions. (check-in: c6e6d5f4 user: drh tags: wal-blocking-lock)
19:24
Avoid redundant string comparisons while merging fts5 segment b-trees. (check-in: 5c46820d user: dan tags: fts5)
15:34
Fix an incrblob2 test case so that it works on 32-bit systems. (check-in: 8d0b11c9 user: drh tags: trunk)
13:50
Revise test cases in malloc5.test to accommodate varying allocation sizes returned by some system malloc() implementations. (check-in: fbae6baf user: drh tags: trunk)
2015-03-09
13:24
Merge recent trunk enhancements into the ota-update branch. (check-in: 5489cb68 user: drh tags: ota-update)
13:18
Merge recent trunk enhancements into the apple-osx branch. (check-in: 5e04eec8 user: drh tags: apple-osx)
13:07
Merge recent trunk enhancements into the sessions branch. (check-in: 68c8937e user: drh tags: sessions)
13:01
Fix the LIKE optimization so that it works even if there are additional range contraints on the column that is subject to the LIKE or GLOB. (check-in: 984c3fd5 user: drh tags: trunk)
12:11
Always use LIKE optimization range constraints in pairs. (Closed-Leaf check-in: 0e02dc94 user: drh tags: like-opt-fix)
10:40
Increase the version number to 3.8.9 (check-in: e5da5e7d user: drh tags: trunk)
2015-03-07
20:32
Fix another problem with the LIKE optimization. (check-in: 465bfc72 user: drh tags: like-opt-fix)
15:46
Fix some compiler warnings caused by signed/unsigned pointer conversions. (check-in: cccee7b5 user: dan tags: fts5)
13:56
Fix the LIKE optimization so that it finds BLOB entries in addition to text entries. Ticket [05f43be8fdda9f]. (check-in: 74cb0b03 user: drh tags: trunk)
12:58
New test cases for LIKE and GLOB with BLOB left-hand side values. (Closed-Leaf check-in: 50fa3c5f user: drh tags: like-opt-fix)
11:50
Fix the bm25() function so that it multiplies scores by -1 before returning them. This means better matches have a lower numerical score, so "ORDER BY rank" (not "ORDER BY rank DESC") does what you want. (check-in: 3ee7b5a9 user: dan tags: fts5)
03:02
Remove some code that is commented out. (check-in: 55ff4291 user: drh tags: like-opt-fix)
02:51
Fix problems with reverse order sorting and indexes in the LIKE optimization. (check-in: 564b8fe7 user: drh tags: like-opt-fix)
00:57
Refactor some jump opcodes in the VDBE. Add JumpZeroIncr and DecrJumpZero. Fix the LIKE optimization to work with DESC sort order. (check-in: 26cb5145 user: drh tags: like-opt-fix)
2015-03-06
20:49
Test cases added. Comments fixed. Proposed solution for ticket [05f43be8fdda9fbd9]. (check-in: 6b993bd5 user: drh tags: like-opt-fix)
19:47
Fix the LIKE optimization even when comparing mixed-case BLOBs. (check-in: a58aafdb user: drh tags: like-opt-fix)
16:45
The LIKE optimization must be applied twice, once for strings and a second time for BLOBs. Ticket [05f43be8fdda9f]. This check-in is a proof-of-concept of how that might be done. (check-in: 5757e803 user: drh tags: like-opt-fix)
04:37
Clearification of some documentation text. Added requirements marks. (check-in: 8c1e85aa user: drh tags: trunk)
03:31
Clarification of documentation on sqlite3_backup. (check-in: 31d5e9b4 user: drh tags: trunk)
2015-03-05
16:21
Fix some problems with OTA and empty target databases, or target databases with the wrong set of tables. Also add SQLITE_FCNTL_VFSNAME support to the OTA VFS. (check-in: 46119e8d user: dan tags: ota-update)
15:34
New test cases and requirements marks for PRAGMA index_info, index_xinfo, and index_list. (check-in: e5b13634 user: drh tags: trunk)
14:29
Revert "PRAGMA index_info" to output only three columns, for complete compatibility with prior versions. The new "PRAGMA index_xinfo" can be used to get the extra information in 4th, 5th, and 6th columns. (check-in: fc543c2c user: drh tags: trunk)
14:07
Add comments to sqlite3ota.h to make it clear that passing NULL in place of a parent VFS name to sqlite3ota_create_vfs() causes the new VFS to use the system default as its parent. (check-in: 158c1a48 user: dan tags: ota-update)
13:43
Fix a typo in sqlite3ota.h. (check-in: 04087dec user: dan tags: ota-update)
01:29
New requirements marks on compound SELECT statements. (check-in: e7991bc5 user: drh tags: trunk)
2015-03-04
23:14
New requirements marks on INSERT and INDEXED BY and on some sqlite3_config() options. (check-in: c298ea0b user: drh tags: trunk)
20:18
Fix harmless compiler warning. (check-in: 580dae46 user: mistachkin tags: trunk)
15:35
Refinement to the wording of the documentation on depreciated functions. (check-in: 04a59d6f user: drh tags: trunk)
15:25
Remove a surplus </dl> mark in the documentation. No changes to code. (check-in: 5450e465 user: drh tags: trunk)
08:29
Fix a couple of build problems. (check-in: a5d5468c user: dan tags: fts5)
2015-03-03
20:42
Clean up #ifdef logic dealing with VxWorks in os_unix.c. On VxWorks, automatically use posix advisory locking if it is available or fall back to named semaphore locking if not. (check-in: ac8c7ca3 user: drh tags: trunk)
19:56
Fix compiler warnings when compiling under VxWorks 7. (check-in: 55c21521 user: drh tags: trunk)
16:58
Enhance SQLITE_ALLOW_URI_AUTHORITITY to elide //localhost/ and to deal with dodgy URIs that contain too many "/" characters. (check-in: 39b566a2 user: drh tags: trunk)
14:00
Fix over-length source code lines in the main.c source file. (check-in: debba6f1 user: drh tags: trunk)
2015-03-02
22:06
Changes so that the amalgamation and the command-line shell build without modifications on VxWorks 7. Still gives a few compiler warnings, and still mostly untested on that platform. (check-in: 7d92f1f1 user: drh tags: trunk)
17:25
Ensure that automatic indexes are *not* considered when doing the the subqueries of the OR-optimization. (check-in: 17890292 user: drh tags: trunk)
2015-02-28
14:03
In the command-line shell, the inability to read ~/.sqliterc is no longer a fatal error. A warning is issued, but processing continues. (check-in: 6bf62463 user: drh tags: trunk)
01:04
More test cases and requirements marks for pragmas. (check-in: fc51037c user: drh tags: trunk)
2015-02-27
21:53
Remove all references to SQLITE_DEFAULT_TEMP_CACHE_SIZE. Add requirements marks related to cache_size changing. (check-in: 766ad650 user: drh tags: trunk)
20:28
New requirements marks and a few new test cases to go with them. No changes to code. (check-in: 8c2b29d9 user: drh tags: trunk)
19:40
Merge updates from trunk. (check-in: acf76843 user: mistachkin tags: expShell)
09:41
Further minor optimizations to flushing fts5 data to disk. (check-in: a07dcca9 user: dan tags: fts5)
07:23
Fix suffix and prefix compression of terms in top-level fts5 segments. And a crash that could follow an OOM condition. (check-in: bb104b36 user: dan tags: fts5)
00:33
Add a couple of requirements marks. (check-in: d70b0fd4 user: drh tags: trunk)
2015-02-26
21:04
Fix potential memory leaks in the misc 'compress' extension. (check-in: 3bc34fd4 user: mistachkin tags: trunk)
20:49
Optimize copying data from fts5 in-memory hash tables to top level segments. (check-in: 8e3ca632 user: dan tags: fts5)
16:40
Update a requirements mark to reflect a change of wording in the documentation. No changes to code. (check-in: 3038d016 user: drh tags: trunk)
16:32
Fix a real bug (in test code) that was introduced while trying to eliminate harmless compiler warnings from OpenBSD (see check-in [10321910990195878c]). (check-in: a62ba58c user: drh tags: trunk)
14:54
Fix an fts5 bug in large incremental merges. (check-in: 208e3cb6 user: dan tags: fts5)
14:27
In the command-line shell, change the units on the ".width" directive from bytes to characters. (Leaf check-in: b1a9e291 user: drh tags: cli-char-width)
02:33
Simplifications to the description of the nByte parameter to sqlite3_prepare() and friends. (check-in: 4bee8295 user: drh tags: trunk)
2015-02-25
19:24
Instead of the 4-byte fields, use regular varints for the poslist-size field in fts5_hash.c. (check-in: 7eb022d7 user: dan tags: fts5)
14:25
Make sure the sqlite3_mutex.id field is initialized in the Win32 mutex implementation, even when SQLITE_DEBUG is turned off. (check-in: 6d132e7a user: drh tags: trunk)
14:09
Merge the latest trunk fixes and enhancements into the apple-osx branch. (check-in: ba8294e2 user: drh tags: apple-osx)
14:02
Merge the latest trunk fixes into the sessions branch. (check-in: 131a2d31 user: drh tags: sessions)
13:48
Add support for the linenoise command-line editing library in shell.c. (check-in: 03bbb947 user: drh tags: trunk)
13:29
Version 3.8.8.3 (Leaf check-in: 9d6c1880 user: drh tags: release, version-3.8.8.3, branch-3.8.8)
12:52
Add support for linenoise to shell.c. (check-in: ec27ab0e user: dan tags: branch-3.8.8)
10:54
Add support for linenoise to shell.c. (Closed-Leaf check-in: f7f2598c user: dan tags: linenoise)
01:06
When cleaning with MSVC, prevent superfluous output regarding 'missing' files and directories. (check-in: 034c16bd user: mistachkin tags: trunk)
00:24
Remove an always-false conditional from constructAutomaticIndex(). Put an assert() in its place to prove that the conditional is always false. (check-in: 3af300bf user: drh tags: trunk)
2015-02-24
20:12
Make sure partial indexes are not qualified incorrectly by a constraint that is inside the ON clause of a LEFT JOIN. Fix for ticket [2326c258d02ead33]. Cherry-pick from [491cfe9b3f87f]. (check-in: 9d94ac6a user: drh tags: branch-3.8.8)
20:10
Prevent partial indexes on the table on the left hand side of a LEFT JOIN from being incorrectly qualified by a constraint in the ON clause of the join. This relaxes the rule introduced by the previous commit (as the partial indexes on the table on the rhs of the LEFT JOIN may now be qualified by terms within the ON clause). (check-in: 1d6fb43a user: dan tags: trunk)
20:04
Make sure partial indexes are not qualified incorrectly by a constraint that is inside the ON clause of a LEFT JOIN. Fix for ticket [2326c258d02ead33]. (check-in: 491cfe9b user: drh tags: trunk)
18:39
More test cases to help ensure that partial indexes do not get used if their qualifing constraint is inside the ON clause of a LEFT JOIN. (Closed-Leaf check-in: c6399958 user: drh tags: tkt-2326c258)
16:48
This additional fix prevents a partial index from being qualified for use if the constraint that qualifies the partial index is part of the ON clause of a LEFT JOIN. (check-in: 1a1516e4 user: drh tags: tkt-2326c258)
16:22
Increase the version number to 3.8.8.3 (check-in: a92afe7d user: drh tags: branch-3.8.8)
16:05
Make sure partial automatic indexes are not based on terms in the ON clause of a LEFT JOIN. Fix for ticket [2326c258d02ead3]. UPDATE: This fix does not work where the partial index is a named index. (check-in: c0f4e308 user: drh tags: tkt-2326c258)
2015-02-23
20:09
Fix building with ENABLE_OTA and OMIT_LOAD_EXTENSION. (check-in: d6d21ff5 user: dan tags: ota-update)
16:17
Merge latest trunk changes with this branch. (check-in: e5ca79d2 user: dan tags: ota-update)
15:41
Change SQLITE_FCNTL_ZIPVFS_PAGER to SQLITE_FCNTL_ZIPVFS. (check-in: f7865b94 user: dan tags: ota-update)
15:02
Update the sqlite3ota_db() API to account for the fact that each OTA handle now uses two SQLite database handles. (check-in: ef08ecce user: dan tags: ota-update)
12:22
Improve tests for resuming ota updates following power failures. Fix a problem revealed by the same. (check-in: 1cb675e5 user: dan tags: ota-update)
2015-02-21
20:08
Fix some problems with resuming ota updates if saving the state is interrupted by a power failure or system crash. (check-in: 6d5ed70d user: dan tags: ota-update)
15:42
Update document on sqlite3_mprintf() and related functions. Discuss the %w format and point out that obscure ANSI-C formats are not supported. No changes to code. (check-in: f8917ba4 user: drh tags: trunk)
15:13
Merge all recent trunk changes into the sessions branch. (check-in: f36bb5fa user: drh tags: sessions)
01:03
Merge trunk changes into the apple-osx branch. (check-in: 3896e233 user: drh tags: apple-osx)
00:56
Fix a compiler warning associated with USE_PREAD64. (check-in: c299e55a user: drh tags: trunk)
00:49
Fix over-length source code lines in os_unix.c. (check-in: 7560a9fa user: drh tags: trunk)
00:19
Keep track of the optimal number of reserved bytes (by looking at reserve byte requests in calls to sqlite3BtreeSetPageSize()) and then change the reserve byte count to the optimal when doing a VACUUM or when using the backup API. (check-in: 28c2b726 user: drh tags: trunk)
2015-02-20
14:36
Add some missing comments and fix other minor code issues in sqlite3ota.c. (check-in: 718fd8b6 user: dan tags: ota-update)
2015-02-19
19:59
Ensure the mutex used to protect the linked list of all main database files opened by a single ota vfs is allocated. (check-in: 9c8682d6 user: dan tags: ota-update)
18:06
Update various documentation comments in sqlite3ota.c and sqlite3ota.h. (check-in: 60e0a46b user: dan tags: ota-update)
17:16
Fix errors in the EBCDIC upper-case to lower-case translation table. (check-in: 905009f6 user: drh tags: trunk)
16:12
Remove a redundant call to statfs() in the xOpen() method of the unix VFS. Also fix an unused local variable warning. (check-in: 8215727d user: drh tags: trunk)
15:56
Incremental merge to prevent a huge pileup of merge conflicts resulting from editing the same code in two different branches. (check-in: 82c4c4e2 user: drh tags: apple-osx)
14:41
Merge latest trunk changes with this branch. (check-in: 6f5888a5 user: dan tags: ota-update)
13:36
Add tests for a couple of previously untested branches in the ota code. (check-in: a3c1bc5d user: dan tags: ota-update)
02:43
Move the os_unix.c file closer to trunk. (check-in: 57d70240 user: drh tags: apple-osx)
02:43
Move the os_unix.c file closer to apple-osx. (check-in: 81f242e3 user: drh tags: trunk)
00:29
First small steps toward brining trunk and apple-osx closer together. (check-in: 28284ccc user: drh tags: trunk)
2015-02-18
20:17
Add new file ota12.test, containing tests for applying ota updates to live databases with other active reader/writer clients. (check-in: 0864d127 user: dan tags: ota-update)
20:16
Add ota tests to increase code coverage. Fix some minor issues in error handling within the ota code. (check-in: 2b10c5d2 user: dan tags: ota-update)
17:40
Fix a problem with OTA updates in the presence of database readers. (check-in: 144bb29f user: dan tags: ota-update)
2015-02-17
20:49
Improve test coverage of ota code a bit. (check-in: a438fa6c user: dan tags: ota-update)
2015-02-16
21:13
Add extra tests and fixes for ota. (check-in: e0b71519 user: dan tags: ota-update)
11:48
Add further tests and fixes for ota. (check-in: 62dc1fff user: dan tags: ota-update)
06:27
Move tcl test code from sqlite3ota.c to new file ext/ota/test_ota.c. (check-in: f20779a6 user: dan tags: ota-update)
2015-02-14
18:58
Change the way the "incremental checkpoint" function of OTA works in order to reduce the effect on the SQLite core code. (check-in: b64a11a7 user: dan tags: ota-update)
2015-02-13
16:42
Enhancements to SQLITE_ENABLE_API_ARMOR merged from trunk. (check-in: 5147b94a user: drh tags: apple-osx)
16:36
Improvements to SQLITE_ENABLE_API_ARMOR. (check-in: 823ad40c user: drh tags: trunk)
12:13
Merge all recent trunk fixes and enhancements into the apple-osx branch. (check-in: b2449d67 user: drh tags: apple-osx)
12:05
Make sure the prepared statement auto-resets on extended error codes of SQLITE_BUSY and SQLITE_LOCKED even when compiled using SQLITE_OMIT_AUTORESET. (check-in: 3c6ca414 user: drh tags: trunk)
2015-02-12
22:45
For the shell '.import' command, make sure the last column value present is considered before NULL filling any missing ones. (check-in: 9c5bcad1 user: mistachkin tags: trunk)
17:15
Improve the performance of fts3/4 queries that use the OR operator and at least one auxiliary fts function. Cherrypick of [245e8730451f]. (check-in: b2082462 user: dan tags: branch-3.8.8)
2015-02-11
17:05
Merge the ota-update-no-pager_ota_mode branch into this one. (check-in: 71887cd9 user: dan tags: ota-update)
16:54
Merge latest trunk changes with this branch. (Closed-Leaf check-in: 0b63e8dc user: dan tags: ota-update-no-pager_ota_mode)
16:25
Ensure that an error is reported if an attempt is made to update a wal mode database via ota. (check-in: 6fc5d4d2 user: dan tags: ota-update-no-pager_ota_mode)
2015-02-10
20:00
Further tweaks to work with zipvfs. (check-in: 0f152416 user: dan tags: ota-update-no-pager_ota_mode)
17:08
Add documentation and test cases for sqlite3ota_create_vfs(). Also code to detect errors in zipvfs/ota setup. (check-in: e7296681 user: dan tags: ota-update-no-pager_ota_mode)
2015-02-09
20:07
Add the sqlite3ota_create_vfs() and sqlite3ota_destroy_vfs() functions. (check-in: 96443ecb user: dan tags: ota-update-no-pager_ota_mode)
18:28
Propagate COLLATE operators upward through function calls and CASE operations. And do not flatten an aggregate subquery into a query that uses other subqueries. Fixes for tickets [ca0d20b6cdddec5] and [2f7170d73bf9], respectively. (check-in: 24e78b8d user: drh tags: trunk)
17:46
Fix WITHOUT ROWID table handing in sqlite3_analyzer. (check-in: 937e0fe7 user: dan tags: trunk)
16:34
Add test cases for the query flattener fix for ticket [2f7170d73bf9abf8]. (Closed-Leaf check-in: dd8f7f75 user: drh tags: tkt-2f7170d7)
16:09
Propagate the COLLATE operator upward through function calls. Initial fix for ticket [ca0d20b6cdddec5e8]. (check-in: c053448a user: drh tags: tkt-2f7170d7)
15:21
Disable the query flattener for aggregate subqueries if the parent query uses other subqueries in its result set or WHERE clause or ORDER BY clause. Preliminary fix for ticket [2f7170d73bf9abf8]. However it still contains a defect similar to the COLLATE problem of [ca0d20b6cddd]. (check-in: 0b7d65e3 user: drh tags: tkt-2f7170d7)
14:07
Rename the internal "EP_Constant" bitmask to a less misleading "EP_ConstFunc". (check-in: 4ef7cece user: drh tags: trunk)
13:42
In selecttrace 0x100 mode, show the parse tree after name resolution instead of before flattening, so that it is always seen even if flattening does not occur. Also: add the hex pointer value to the top of each SELECT tree. (check-in: aa093fef user: drh tags: trunk)
11:54
In selecttrace mode 0x100, show a complete parse-tree both before and after query flattening. This is a change to debugging code only. (check-in: b3c6b8a3 user: drh tags: trunk)
10:20
Fix over-length source code lines in resolver.c. No logic changes. (check-in: c12edb85 user: drh tags: trunk)
2015-02-07
20:20
Add comments to explain the role of the ota vfs. (check-in: 7bb63363 user: dan tags: ota-update-no-pager_ota_mode)
19:17
Remove "PRAGMA pager_ota_mode". (check-in: 8ac58e46 user: dan tags: ota-update-no-pager_ota_mode)
15:30
Merge increment blob I/O fixes from trunk. (check-in: 292cf68b user: drh tags: apple-osx)
15:16
Fix potential 32-bit integer overflow problems on the offset and length parameters to sqlite3_blob_read() and sqlite3_blob_write(). For sqlite3_blob_open(), make sure the *ppBlob return parameter is zeroed if the interface fails with SQLITE_MISUSE. (check-in: 5df02f50 user: drh tags: trunk)
2015-02-06
16:03
Merge all recent trunk enhancements into the apple-osx branch. (check-in: 44711921 user: drh tags: apple-osx)
15:40
Merge all the latest enhancements from trunk. (check-in: ae7eef11 user: drh tags: sessions)
15:03
Merge the command-line shell enhancements from trunk. (check-in: c3931db5 user: drh tags: ota-update)
14:51
Change the name of ".info" to ".dbinfo" and add an optional second argument which is the ATTACH-ed DB about which information is provided. Provide ".indexes" as an alternative name to the legacy ".indices" command. (check-in: 0f65a7e2 user: drh tags: trunk)
14:19
Add the ".info" command to the shell. (check-in: 0a3100a7 user: drh tags: trunk)
01:07
Add the index_xinfo pragma which gives information about the fields that reference the table PRIMARY KEY in addition to the index key fields. Add extra columns "desc", "coll", and "key" to the index_info and index_xinfo pragmas. Add the "origin" and "partial" columns to the index_list pragma. (check-in: 2743846c user: drh tags: trunk)
00:31
Revise the way that the index structure for a WITHOUT ROWID table is discovered. (check-in: 7f10a0ea user: drh tags: ota-update)
2015-02-05
17:46
Change a comment in sqlite3ota.h to make it clear that it is not possible to insert a NULL value into an INTEGER PRIMARY KEY column using ota. (check-in: a5e86bea user: dan tags: ota-update)
17:36
Prevent ota updates from violating NOT NULL constraints. Add a comment to the "limitations" section of sqlite3ota.h saying that CHECK constraints are not enforced. (check-in: 74e073dd user: dan tags: ota-update)
01:49
Figure out the primary-key type of a table using queries of sqlite_master and the table_info and index_list pragmas, obviating the need for SQLITE_TESTCTRL_TBLTYPE. (check-in: 50ecdfc4 user: drh tags: ota-update)
2015-02-04
23:51
Merge all changes from index_xinfo, including the move of the pragma table into the separate pragma.h file. (check-in: 21e95d28 user: drh tags: ota-update)
23:13
Merge all recent trunk changes, including the movement of the pragma table into the separate pragma.h header file. (Closed-Leaf check-in: 3af19f84 user: drh tags: index_xinfo)
20:56
Fix a missing mutex in SQLITE_TESTCTRL_IMPOSTER. (check-in: 71691c4b user: drh tags: trunk)
19:20
Fix the error messages returned by ota if an update violates a unique constraint. (check-in: c4845a3b user: dan tags: ota-update)
16:32
Avoid a linear scan of the entire table when ota updates or deletes a row from a table with an external primary key index. (check-in: 1db198cc user: dan tags: ota-update)
11:08
Fix a memory leak that could follow an OOM error in ota. (check-in: 0d5415f2 user: dan tags: ota-update)
2015-02-03
19:20
Fix a typo in the --help output for speedtest1. Fix a dependency error in the Makefile.in for speedtest1. (check-in: f30a057a user: drh tags: trunk)
18:43
Fix some problems surrounding WITHOUT ROWID tables with DESC primary key indexes . (check-in: a21fefb7 user: dan tags: ota-update)
15:56
Remove "PRAGMA ota_mode". (check-in: 1c111447 user: dan tags: ota-update)
2015-02-02
22:19
Add an experimental pragma "PRAGMA preload;" that preloads the pcache with the entire database file. (Leaf check-in: 6dca23e6 user: drh tags: preload-pragma)
21:34
Break out the (script-generated) pragma parsing tables into a separate file, pragma.h, to make editing easier. (check-in: 32c0325b user: drh tags: trunk)
11:58
Ensure generated header file fts5parse.h is included in sqlite3.c. (check-in: bc7be2fc user: dan tags: fts5)
11:32
Fix some problems with building fts5 and fts3 together using the amalgamation. (check-in: fb10bbb9 user: dan tags: fts5)
09:40
Merge latest trunk changes with this branch. (check-in: 76212f2c user: dan tags: fts5)
2015-01-31
20:42
Have ota use imposter tables to write to indexes instead of the sqlite3_index_writer() interface. The error handling in this version is broken in a few small ways. (check-in: cdaeab46 user: dan tags: ota-update)
15:23
Minor optimizations to fts5 writes. (check-in: 1fffe51f user: dan tags: fts5)
02:34
Merge in support for the index_xinfo pragma. (check-in: f9b6dc77 user: drh tags: ota-update)
02:00
Add the "index_xinfo" pragma. Add new columns to the "index_info" and "index_list" pragmas. (check-in: 30f51d7b user: drh tags: index_xinfo)
2015-01-30
21:00
Merge the SQLITE_TESTCTRL_IMPOSTER changes from trunk. (check-in: 3ed6eb2f user: drh tags: ota-update)
20:59
Change SQLITE_TESTCTRL_INITMODE to SQLITE_TESTCTRL_IMPOSTER. Revise the order of parameters. Give it the ability to reset the schema parse table so that imposter tables can be erased. (check-in: 42d56017 user: drh tags: trunk)
16:36
Merge all recent trunk changes, and especially the SQLITE_TESTCTRL_INITMODE enhancement. (check-in: 36436dde user: drh tags: ota-update)
15:52
Added SQLITE_TESTCTRL_INITMODE for improved testability. (check-in: 98e02913 user: drh tags: trunk)
15:40
Add a few simple test cases for SQLITE_TESTCTRL_INITMODE - cases which also test PRAGMA integrity_check. (Closed-Leaf check-in: 3a6e2afe user: drh tags: initmode-testctrl)
14:30
Version 3.8.8.2 (check-in: 7757fc72 user: drh tags: release, version-3.8.8.2, branch-3.8.8)
2015-01-29
20:59
Fix some problems with transactions that both read and write an fts5 table. (check-in: 0e225b15 user: dan tags: fts5)
20:01
Bump the version number to 3.8.8.2 (check-in: 65bfbbb4 user: drh tags: branch-3.8.8)
19:59
Ensure that "PRAGMA wal_checkpoint = TRUNCATE|FULL|RESTART" block on other connections and truncate the wal file as required even if the entire wal file has already been checkpointed. Cherry-pick from trunk. (check-in: 18610617 user: drh tags: branch-3.8.8)
19:27
Fix some duplicated test names. (check-in: 1797158d user: mistachkin tags: trunk)
19:12
Ensure that "PRAGMA wal_checkpoint = TRUNCATE|FULL|RESTART" block on other connections and truncate the wal file as required even if the entire wal file has already been checkpointed. (check-in: 53429689 user: dan tags: trunk)
18:38
Split up the SRC variable in Makefile.msc to avoid over-long cmd.exe commands when TOP is set to a long pathname. (check-in: 7d70ac65 user: drh tags: trunk)
17:54
Add the INITMODE test-control. (check-in: 5940af8e user: drh tags: initmode-testctrl)
15:53
Improvements to the DELETE code generator for the one-pass case. Avoid some OP_Goto instructions. Read content from the index cursor if the index cursor is valid and was used to locate the row that is to be deleted. (Closed-Leaf check-in: 58cc257a user: drh tags: one-writable-btree)
14:48
Avoid overlength command lines in Makefile.msc when using TOP= with a large directory name. (check-in: 0cdd59bf user: drh tags: one-writable-btree)
11:52
Optimize range constraints on the rowid column of fts3/4 tables even if there is no MATCH clause in the query. (check-in: 85dc1262 user: dan tags: trunk)
02:26
Experimental sqlite_db_config() setting to disable writing to all btrees except for one btree with a particular root page. (check-in: 23054110 user: drh tags: one-writable-btree)
2015-01-28
20:37
Add missing VdbeCoverage() macros to the sqlite3_index_writer() implementation. (check-in: 6f8cda26 user: drh tags: ota-update)
15:30
When a "full", "restart" or "truncate" checkpoint is attempted, return SQLITE_BUSY if a reader prevents the checkpointer from copying any frames at all into the database file. (check-in: f2700040 user: dan tags: ota-update)
12:27
Correctly detect errors returned by walCheckpointStart() due to OOM. (check-in: 8e878c20 user: drh tags: ota-update)
12:00
Merge in all changes from trunk. (check-in: 17c69be8 user: drh tags: ota-update)
2015-01-27
21:24
Fix harmless compiler warnings. (check-in: e7d2ec04 user: mistachkin tags: trunk)
20:41
Fix a problem with fts5 doclist-indexes that occured if the first rowid of the first non-term page of a doclist is zero. (check-in: f704bc05 user: dan tags: fts5)
19:01
Fix a bug in the fts3 snippet() function causing it to omit leading separator characters from snippets that begin with the first token in a column. (check-in: adc9283d user: dan tags: trunk)
18:43
Improve the performance of fts3/4 queries that use the OR operator and at least one auxiliary fts function. (check-in: 245e8730 user: dan tags: trunk)
13:17
Fix a (almost always harmless) read past the end of a memory allocation that comes about because the Expr.pTab field is checked on an EXPR_REDUCEDSIZE Expr object before checking the Expr.op field to know that the Expr.pTab field is meaningless. (check-in: e098de69 user: drh tags: trunk)
2015-01-25
20:19
The va_list argument cannot take on a NULL value and cannot be compared with NULL on some platforms (ex: ARM). So do not attempt to do so. (check-in: 1964e656 user: drh tags: trunk)
2015-01-24
19:57
Have fts5 store rowids in ascending order. Query speed is virtually the same regardless of rowid order, and ascending order makes some insert optimizations easier. (check-in: 5206ca60 user: dan tags: fts5)
12:12
In the command-line shell, make sure stderr is unbuffered so that it automatically flushes. This has always been the case already for unix and on Windows when the output is a console, but apparently was not the case on Windows when the output was a pipe. (check-in: 2a9ea9b4 user: drh tags: trunk)
2015-01-23
17:43
Fix compression of keys stored on internal segment b-tree nodes by fts5. (check-in: 51444f67 user: dan tags: fts5)
06:50
Remove some redundant code from fts5. (check-in: 939b7a5d user: dan tags: fts5)
2015-01-22
19:13
Add further tests and fixes for fts5. (check-in: 5b295897 user: dan tags: fts5)
12:00
Make sure errors in the FROM clause of a SELECT cause analysis to abort and unwind the stack before those errors have a chance to mischief in the "*" column-name wildcard expander. Fix for ticket [32b63d542433ca67]. (check-in: 9e6eae66 user: drh tags: trunk)
11:29
Change the undocumented ".selecttrace" command in the shell to accept an integer bitmask rather than a boolean. (check-in: bd63bf88 user: drh tags: trunk)
2015-01-21
20:30
Further tests and fixes for fts5. (check-in: c020a291 user: dan tags: fts5)
18:23
Fix an fts5 issue with loading doclist-indexes for a term that is the last thing on its leaf page. (check-in: e0d61442 user: dan tags: fts5)
17:20
Merge trunk changes with this branch. (check-in: f8699a1a user: dan tags: fts5)
17:00
Fix an assert() that may fail following an OOM error. (check-in: 5f592359 user: dan tags: trunk)
16:10
Add further tests for fts5 backend. (check-in: 09dabb3b user: dan tags: fts5)
06:36
Merge latest trunk changes with this branch. (check-in: b3348b1e user: dan tags: fts5)
00:51
Fix harmless compiler warning seen with MSVC. (check-in: 78c2e62b user: mistachkin tags: trunk)
00:48
Enhancements to entropy generation for the Win32 VFS. (check-in: 26190b3c user: mistachkin tags: trunk)
2015-01-20
20:34
Add extra fault injection tests to fts5. (check-in: f45a0dc0 user: dan tags: fts5)
16:51
Version 3.8.8.1 (check-in: f73337e3 user: drh tags: release, version-3.8.8.1, branch-3.8.8)
03:04
Fix another instance of an incorrect value for KeyInfo.nXField on a sorting index. Ticket [f97c4637102a3ae72b79]. (check-in: 0077f645 user: drh tags: trunk)
02:51
Change the version number to 3.8.8.1 (check-in: c75555a3 user: drh tags: branch-3.8.8)
02:50
Fix another instance of an incorrect value for KeyInfo.nXField on a sorting index. More changes for ticket [f97c4637102a3ae72b79]. (check-in: dc711db4 user: drh tags: branch-3.8.8)
2015-01-19
21:38
Ensure that the KeyInfo.nXField value for ephemeral tables used to implement ORDER BY or GROUP BY clauses is set correctly, so that the sqlite3VdbeFindCompare() routine can choose the correct comparison function. Add assert() statements to the high-speed comparison functions to detect cases where they are inappropriately chosen. Fix for ticket [f97c4637102a3ae72b7911]. (check-in: 59e592f6 user: drh tags: branch-3.8.8)
21:36
Ensure that the KeyInfo.nXField value for ephemeral tables used to implement ORDER BY or GROUP BY clauses is set correctly, so that the sqlite3VdbeFindCompare() routine can choose the correct comparison function. Add assert() statements to the high-speed comparison functions to detect cases where they are inappropriately chosen. Fix for ticket [f97c4637102a3ae72b7911]. (check-in: f7201bb0 user: drh tags: trunk)
21:27
Improve precision of the new test case by removing a superfluous carriage-return from the shell command input. (check-in: 913c41b2 user: mistachkin tags: expShell)
21:11
Add comments and improve the new test case. (check-in: 4ec2aead user: mistachkin tags: expShell)
21:10
There are asserts in place now that will prevent a recurrence of ticket [f97c4637102a3ae7]. Nevertheless, it is good to add some test cases as well. (Closed-Leaf check-in: e02959b9 user: drh tags: tkt-f97c4637)
20:59
Make sure that the KeyInfo.nXField value of ephermeral tables used for ORDER BY and GROUP BY is set correctly, so that the correct comparison function can be choosen by sqlite3VdbeFindCompare(). (check-in: c16bae5e user: drh tags: tkt-f97c4637)
20:57
Fix the assert() of the previous check-in so that it works even when compiled without SQLITE_DEBUG. (check-in: 38868f84 user: drh tags: tkt-f97c4637)
20:22
Remove a shell function that is now superfluous. (check-in: d8564f70 user: mistachkin tags: expShell)
20:19
Merge updates from trunk. (check-in: d9f4035b user: mistachkin tags: expShell)
20:05
Fix compilation on Cygwin when SQLITE_MAX_WORKER_THREADS is greater than zero. (check-in: 2037442c user: mistachkin tags: trunk)
19:48
An alternative way of implementing the assert() that verifies the relative values of KeyInfo.nField+KeyInfo.nXField and the number of columns in a record. This version of the assert() only fires when the high-speed comparison routines are used - which is to say it only fires when the constraint actually matters. (check-in: bf744b49 user: drh tags: tkt-f97c4637)
19:21
An alternative way of fixing the key comparison bug of ticket [f97c4637102a3ae72b]. (Closed-Leaf check-in: e41376cf user: drh tags: alt1-tkt-f97c4637)
18:18
Strengthen the KeyInfo number-of-columns assert() added by the previous check-in. (Closed-Leaf check-in: d0971b79 user: drh tags: tkt-f97c4637)
17:28
Add an assert() to verify that the nField+nXField values of a KeyInfo object are never less then the number of columns in a row for a non-corrupt database. This assert() currently fails, which is the root of the problem with ticket [f97c4637102a3ae72b]. (check-in: 083f523d user: drh tags: tkt-f97c4637)
15:05
Enhance the command-line shell with the ability to set the SQLITE_TESTCTRL_NEVER_CORRUPT flag using: ".testctrl never_corrupt 1". (check-in: 824328f9 user: drh tags: trunk)
11:15
Handle the case where a tokenizer determines that there are zero tokens in an fts5 query term. (check-in: 75f3d17f user: dan tags: fts5)
07:42
Merge updates from trunk. (check-in: c7167f88 user: mistachkin tags: expShell)
00:35
Eliminate all use of sprintf(), strcpy() and strcat() from test logic because OpenBSD hates those functions. (check-in: 10321910 user: drh tags: trunk)
2015-01-18
20:30
Set binary mode for output on Windows when writing a quoted string that might contain newline characters. (check-in: 7096e6c0 user: drh tags: trunk)
09:02
Modify the new shell test case to work on non-Windows platforms as well. (check-in: f362c5d9 user: mistachkin tags: expShell)
05:35
Some experimental command line shell input/output enhancements. (check-in: 25e99f3f user: mistachkin tags: expShell)
01:50
Set the command-line shell stdin to binary mode on windows. (check-in: 80541e8b user: drh tags: trunk)
2015-01-17
20:01
Ensure an up to date copy of the fts5 configuration has been loaded into memory before attempting to modify the same configuration. (check-in: f30afd20 user: dan tags: fts5)
17:48
Improve the performance of the fts5 porter tokenizer implementation. (check-in: 96ea6004 user: dan tags: fts5)
15:26
Fix a harmless compiler warning the VFS for Windows. (check-in: ceac571f user: drh tags: trunk)
2015-01-16
19:35
Fix harmless compiler warning. (Closed-Leaf check-in: cab46fb7 user: mistachkin tags: msvcWarn)
12:44
Merge all 3.8.8 changes into the sessions branch. (check-in: bebd131a user: drh tags: sessions)
12:24
Merge the 3.8.8 release changes from trunk. (check-in: 518621f8 user: drh tags: apple-osx)
12:08
Version 3.8.8 (check-in: 7d68a42f user: drh tags: trunk, release, version-3.8.8)
2015-01-15
17:38
Fix the spelling of "malloc_usable_size" in configure and configure.ac. (check-in: 8f45217c user: drh tags: trunk)
15:47
Makefile enhancements: (1) Rename autoconf/tea/configure.in to autoconf/tea/configure.ac so that it works with the latest versions of autoconf. (2) Add the "amalgamation-tarball" targets to Makefile.in and main.mk (renamed from "dist" in the latter case). (3) Update the README.first file in autoconf/ (4) The TOP macro in Makefile.in is now an absolute rather than a relative path. (check-in: 3bafeec9 user: drh tags: trunk)
2015-01-14
17:16
Merge trunk 3.8.8 beta changes into the sessions branch (check-in: 0ba12454 user: drh tags: sessions)
2015-01-13
21:26
Simplify some code in rtree, to avoid confusing the optimizer in GCC on some macs: gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00). Prior to these changes, compiling with -O3 would cause incorrect code to be generated. The change to the nodeGetCell() routine is key. The other changes are merely cosmetic details discovered while bug hunting. (check-in: 882181ff user: drh tags: trunk)
17:25
Fix prefix indexes so that they work in characters, not bytes. (check-in: af8d43a4 user: dan tags: fts5)
01:12
Fix the e_walauto.test test module so that it works on both little-endian and big-ending machines. (check-in: 5682db7b user: drh tags: trunk)
2015-01-12
21:43
Fix harmless compiler warnings when using -W4 with MSVC. (check-in: e693e11d user: mistachkin tags: trunk)
20:25
Fix harmless compiler warning in an assert() statement. (Closed-Leaf check-in: bdbeed01 user: mistachkin tags: msvcW4)
20:20
Add two more classes of harmless MSVC compiler warnings. (check-in: de30d5b0 user: mistachkin tags: msvcW4)
19:59
Silence some harmless uninitialized local variable warnings. (check-in: 44375a34 user: mistachkin tags: msvcW4)
19:49
Harmless compiler warning fixes for 'testfixture' and the miscellaneous extensions when built with the MSVC makefile. (check-in: 923fd660 user: mistachkin tags: msvcW4)
18:52
Merge updates from trunk. (check-in: ca5f2c54 user: mistachkin tags: msvcW4)
18:52
Get things compiling cleanly with MSVC and W4. (check-in: c8725fa5 user: mistachkin tags: msvcW4)
18:38
Fix some harmless compiler warnings. (check-in: 2b8eecbf user: mistachkin tags: msvcW4)
18:27
Fix comments and add another disabled warning for MSVC. (check-in: 43b6b4cc user: mistachkin tags: msvcW4)
18:02
Work in progress on fixing harmless compiler warnings when using -W4 and MSVC. (check-in: 856dd245 user: mistachkin tags: msvcW4)
17:58
Optimize the unicode61 tokenizer so that it handles ascii text faster. Make it the default tokenizer. Change the name of the simple tokenizer to "ascii". (check-in: f22dbcca user: dan tags: fts5)
17:56
Add an assert() in order to calm a scan-build warning. (check-in: 11e81ac2 user: drh tags: trunk)
2015-01-10
20:34
Fix some documentation issues in fts5. (check-in: 512e1bdb user: dan tags: fts5)
18:22
Add detection of the isnan() library function to the configure script. Make the code responsive to the HAVE_ISNAN configuration option. (check-in: 46f3aba2 user: drh tags: trunk)
18:02
Make use of the fdatasync() interface if the HAVE_FDATASYNC macro is true. (check-in: 694228e4 user: drh tags: trunk)
16:49
Improvements to compile-time-option hygiene. Use "#if OPTION" instead of "#ifdef OPTION" in cases where that makes sense, so that -DOPTION=0 will work. Add the "Have-Not" configuration in releasetest.tcl which disables all of the "HAVE_component" compile-time options. (check-in: 9e92a5ed user: drh tags: trunk)
15:21
Add the ability to put comments in the Config and Platform setup sections of the releasetest.tcl script. (check-in: d6f8c899 user: drh tags: trunk)
14:27
Autoconf configure script updates: (1) remove the long-obsolete --enable-cross-thread-connections option. (2) remove the --with-hints= options. (3) Extension loading is enabled by default. (4) Check for strchrnull() (5) Update the --help text. (check-in: 5004063c user: drh tags: trunk)
2015-01-09
21:54
Change the testfixture binary so that it explicitly enabled core files on a crash (on unix). Add a test case to verify that this works. (check-in: 90f422ed user: drh tags: trunk)
20:00
Add SQLITE_ENABLE_STMT_SCANSTATUS to the Update-Delete-Limit configuration in the releasetest.tcl script. (check-in: c70d5eda user: drh tags: trunk)
19:45
Remove an unused preprocessor macro from pcache.c. (check-in: 88a7a967 user: drh tags: trunk)
19:36
Improvements to the sqlite3_stmt_scanstatus() documentation. No changes to code. (check-in: 9309c9bc user: drh tags: trunk)
01:27
Fix three crash problems discovered by afl-fuzz. Ticket [a59ae93ee990a55]. (check-in: fe578863 user: drh tags: trunk)
00:38
Add the "ascii" mode to the command-line shell. (check-in: e1518a94 user: drh tags: trunk)
2015-01-08
22:08
Omit modules from the "valgrind" permutation that fork off separate processes. Also omit selectG.test because it is timing sensitive and valgrind is too slow to get the right answer. (check-in: 662932a6 user: drh tags: trunk)
20:06
Merge recent enhancements from trunk, including test scripts enhancements and the removal of limits on the number of terms in a VALUES clause. (check-in: 5a2dec55 user: drh tags: sessions)
19:55
Merge the testing enhancements and the unlimited VALUES enhancement from trunk. (check-in: cc780842 user: drh tags: apple-osx)
16:47
Try to fix up the "valgrindtest" target in Makefile.in so that it avoids misuse testing that can trigger false errors. (check-in: 50b5a8af user: drh tags: trunk)
02:28
Fix the extension tags on the "smoketest" makefile target for Windows. (check-in: 826fd311 user: drh tags: trunk)
02:15
In releasetest.tcl: (1) Add the Failure-Detection platform. (2) Re-add the --disable-shared argument on Default that was mistakenly removed by the previous commit. (3) Remove the -ftrapv tests, as we read that -ftrapv does not work in GCC. (check-in: 1f2fb777 user: drh tags: trunk)
01:05
In releasetest.tcl: add options --veryquick and pass-through compiler optimization settings (ex: -O0). Collect the SQLite version number from the main.test output and show it during the summary report at the end. (check-in: e7e7bc1d user: drh tags: trunk)
2015-01-07
19:38
In releasetest.tcl, always use --disable-shared together with --disable-amalgamation because mingw generates a binary that crashes and cannot be debugged using gdb if you don't. (check-in: 19982439 user: drh tags: trunk)
19:33
Add the fts5 'optimize' command. (check-in: e749be56 user: dan tags: fts5)
18:44
In releasetest.tcl, copy certain command-line arguments (-g, -D..., etc) down into each test run. (check-in: 889864b5 user: drh tags: trunk)
18:19
Modify the valgrind target to be consistent with regard to target suffixes. (check-in: dc4aa732 user: mistachkin tags: trunk)
18:11
Fix threads-enabled builds on Windows when the amalgamation is not in use. (check-in: 9b92a4d2 user: mistachkin tags: trunk)
17:11
Add the 'rebuild' and 'delete-all' commands. (check-in: 0cb2fed5 user: dan tags: fts5)
14:41
In releasetest.tcl, change the --dryrun option to work as it does in multitest.tcl of TH3. Add the new --trace option that work like the --dryrun option used to work. Add the ability to specify additional configure-script options in the Config array, and create configurations that use --disable-shared and --disable-amalgamation for testing. (check-in: be17ef03 user: drh tags: trunk)
14:09
Add a valgrind test to the Linux-x86_64 platform in releasetest.tcl. (check-in: 4b6df035 user: drh tags: trunk)
2015-01-06
21:31
Fix a problem in the unix implementation of FCNTL_SIZE_HINT on systems that do not support posix_fallocate(). (check-in: af20eae1 user: dan tags: trunk)
19:08
Remove the iPos parameter from the tokenizer callback. Fix the "tokenchars" and "separators" options on the simple tokenizer. (check-in: 65f0262f user: dan tags: fts5)
16:53
Improved and more rigorous test of large VALUES clauses. (check-in: 6917d9f4 user: drh tags: trunk)
14:38
Further fixes and test cases related to external content tables. (check-in: ce6a899b user: dan tags: fts5)
2015-01-05
20:41
Tests and fixes for fts5 external content tables. (check-in: 047aaf83 user: dan tags: fts5)
20:13
Enhance "INSERT INTO ... VALUES" so that the number of rows in the VALUES clause is not limited by SQLITE_LIMIT_COMPOUND_SELECT, and so that the stack depth is constant regardless of the number of rows in VALUES. (check-in: e1c4a359 user: drh tags: trunk)
20:04
Avoid O(N*N) behavior with very long lists of VALUES. (Closed-Leaf check-in: ee30fb35 user: drh tags: many-VALUEs)
19:16
Handle compound-select statements originating from VALUES clauses as a special case that does not use recursion. (check-in: 9ce9e43a user: drh tags: many-VALUEs)
16:27
Towards getting INSERT statements to except many VALUE terms (more than the limit imposed by SQLITE_LIMIT_COMPOUND_SELECT). This check-in segfaults on a stack overflow. And it is slow. (check-in: c9d65f73 user: drh tags: many-VALUEs)
15:48
Remove some needless recursion from compound SELECT processing. (check-in: fe677d13 user: drh tags: trunk)
2015-01-03
20:44
Add support for external content tables to fts5. (check-in: 17ef5b59 user: dan tags: fts5)
18:59
In releasetest.tcl, omit the CC=clang text from the label on Sanitize tests, so that the label fits on an 80-character line. (check-in: 23d4c07e user: drh tags: trunk)
2015-01-02
21:54
Fix a harmless compiler warning. (check-in: e0de5807 user: drh tags: trunk)
20:06
Merge updates from trunk. (Closed-Leaf check-in: ea99f4b2 user: mistachkin tags: asciiMode)
19:17
Merge the latest changes from trunk into the apple-osx branch. (check-in: df3cdf9f user: drh tags: apple-osx)
15:55
Add the SQLITE_CONFIG_PMASZ start-time option. (check-in: acb0d1e8 user: drh tags: trunk)
14:55
Allow the rank column to be remapped on a per-query basis by including a term similar to "rank match 'bm25(10,2)'" in a where clause. (check-in: 1cd15a17 user: dan tags: fts5)
2015-01-01
23:02
Add logic to releasetest.tcl that detects -fsanitize=undefined errors. Fix a few false-positivies that come up when running the sanitize=undefined test. (check-in: 2835e79a user: drh tags: trunk)
19:53
Add the ability to specify an alternative compiler (clang instead of gcc) on the default Makefile. Use this in releasetest.tcl to implement an -fsanitize=undefined test. (check-in: c55c05fe user: drh tags: trunk)
19:11
Enhance the "lemon" executable so that it ignores -f, -W, -O, and -I command-line options. This permits most of the same options that are passed to the compiler to also be harmlessly passed to lemon, and thus simplifies makefiles. (check-in: da408d12 user: drh tags: trunk)
18:54
Fix an error in the computation of the number of hours of runtime for individual test runs in the releasetest.tcl script. (check-in: e2b0ebe2 user: drh tags: trunk)
18:03
Merge latest trunk changes with this branch. (check-in: 4b365167 user: dan tags: fts5)
16:47
Fix a harmless compiler warning in rtree. (check-in: 30891c6b user: drh tags: trunk)
16:46
Add a version of the unicode61 tokenizer to fts5. (check-in: d09f7800 user: dan tags: fts5)
14:13
Fix two test cases in memsubsys1 so that they work with the mmap permutation. (check-in: 66269d0d user: drh tags: trunk)
14:06
Fix the fkey-7.1 test so that it sorts its answer and hence always gives the same answer. (check-in: 5830c557 user: drh tags: trunk)
2014-12-31
20:35
Fix to releasetest.tcl: When doing the secondary _debug runs, convert "fulltest" to just "test". (check-in: ec264bde user: drh tags: trunk)
20:25
Adjust the memsubsys1-5.5 test case to avoid occasional false positives. (check-in: 43241318 user: drh tags: trunk)
20:19
Fix a floating-point round-off error problem in the percentile.test module. (check-in: 456948ea user: drh tags: trunk)
19:58
Disable the bigsort.test module on machine with less than 8GB of available RAM or machine, to avoid thrashing. (check-in: 9d4fe116 user: drh tags: trunk)
18:55
Change threadtest3.c so that SQLITE_SCHEMA returns result in warnings not hard errors. Add the Darwin-x86_64 platform to releasetest.tcl. (check-in: b09a139c user: drh tags: trunk)
18:28
Update the command-line parsing for threadtest3 so that tests are run in the order they are specified on the command-line. (check-in: f489bc31 user: drh tags: trunk)
18:25
Add a missing sqlite3_close() call to threadtest3.c. (check-in: a65a44f3 user: dan tags: trunk)
18:10
Only run walthread5 once when running all tests in threadtest3. (check-in: ca2e4a5b user: drh tags: trunk)
18:08
Do run pragma3.test as part of the mmap permutation. As it works as of [cf48eb608a]. (check-in: 11057e26 user: dan tags: trunk)
15:14
Change the width of output lines in releasetest.tcl from 70 to 79 characters. (check-in: a468d967 user: drh tags: trunk)
14:27
Merge the fix to PRAGMA data_version and testing improvements from trunk. (check-in: 86e39123 user: drh tags: sessions)
14:18
Make sure PRAGMA data_version is updated even if the cache is empty when another connection changes the database. (check-in: cf48eb60 user: drh tags: trunk)
09:52
Do not run pragma3.test as part of the mmap permutation. (check-in: 94101011 user: dan tags: trunk)
2014-12-30
20:40
Add the "mptester" tests to releasetest.tcl. (check-in: 93094a68 user: drh tags: trunk)
19:58
Ensure that when a file is extended using FCNTL_SIZE_HINT the last page is allocated on disk, even if the file will only use part of it. (check-in: c7f84717 user: dan tags: trunk)
19:26
Update the threadtest3 test program so that its output summary is compatible with releasetest.tcl. In threadtest3, do not record errors that contain the string "no such table" as being fatal errors, since they happen sometimes in a race condition in stress1. (check-in: 98cb56e2 user: drh tags: trunk)
18:07
Fix problems with the "inmemory_journal" permutation. (check-in: 79693f04 user: dan tags: trunk)
14:40
If the sorter uses mmap'd temp files, ensure all pages of the temp file have been allocated before it is accessed. Otherwise, a disk-full condition might result in a SIGBUS exception. (check-in: 77664841 user: dan tags: trunk)
13:04
Make SQLITE_CONFIG_PCACHE_HDRSZ accurate (not an over-estimate) on 32-bit systems. (check-in: 340b3477 user: drh tags: trunk)
12:03
Change notify2.test to check that sqlite3_blocking_step() uses CPU more efficiently than sqlite3_step(), not that it results in greater overall throughput for any specific number of threads. (check-in: d904d293 user: dan tags: trunk)
00:57
Round all object sizes that go into computing SQLITE_CONFIG_PCACHE_HDRSZ up to a multiple of 8 bytes. (check-in: b28ce75f user: drh tags: trunk)
2014-12-29
19:54
Fix the --dryrun option in releasetest.tcl. (check-in: 0f9e5496 user: drh tags: trunk)
15:59
Move all fts5 test files to new directory "ext/fts5/test". (check-in: 7f148edb user: dan tags: fts5)
12:02
Fix some recently added tests so that they work with SQLITE_DEFAULT_AUTOVACUUM=1. (check-in: ef0626ab user: dan tags: trunk)
11:50
Reinstate an assert() by adding an "|| CORRUPT_DB" term. (check-in: 95ce2034 user: drh tags: trunk)
11:24
Fixes to built-in tokenizers. (check-in: b33fe0dd user: dan tags: fts5)
02:55
Fix the "checksymbols" target in Makefile.in so that it actually works. Enhance the releasetest.tcl script to count the total number of tests run over all configurations. (check-in: 4eda1c74 user: drh tags: trunk)
2014-12-28
22:10
Fix WITHOUT ROWID tables so that they correctly deal with PRIMARY KEYs that contain redundant columns. (check-in: 0dfef675 user: drh tags: trunk)
2014-12-25
12:19
Update the SQLITE_CONFIG_PAGECACHE documentation so that the maximum page size is correctly stated to be 65536. (check-in: 3286424b user: drh tags: trunk)
2014-12-24
23:35
Fix the error counter in releasetest.tcl. And report the total time in HH:MM:SS instead of just seconds. (check-in: 6396f804 user: drh tags: trunk)
18:11
Fix a failing assert() in balance_nonroot(). (check-in: e2e32314 user: dan tags: trunk)
17:17
When building the amalgamation with SQLITE_ENABLE_IOTRACE defined, do not mark symbol sqlite3IoTrace as static. (check-in: 5b7ca013 user: dan tags: trunk)
2014-12-23
21:17
Merge the new and improved releasetest.tcl script into trunk. Add a "make releasetest" target to the autoconf makefile. (check-in: 1deb00ec user: drh tags: trunk)
21:10
Remove 'threadtest' as a target on Windows, due to lack of pthreads. Also, change 'fulltest' to 'fulltestonly'. (Closed-Leaf check-in: a010c404 user: mistachkin tags: releasetest-refactor)
21:03
Fix typo in library object file name. (check-in: f49566a7 user: mistachkin tags: releasetest-refactor)
20:42
Permit sqlite3_shutdown() to be called with OMIT_WSD enabled and without having called sqlite3_initialize() first. (check-in: 3f7dbdb5 user: mistachkin tags: trunk)
20:41
In the releasetest.tcl script, show the test target for each configuration that is run. And show the time in HH:MM:SS. (check-in: 2295e9e0 user: drh tags: releasetest-refactor)
20:31
Add the threadtest target to Makefile.in. Add --enable-load-extension to the configure issued by releasetest.tcl. (check-in: cb128067 user: drh tags: releasetest-refactor)
20:22
Draft of changes necessary to make releasetest work on Windows via MinGW. (check-in: af166c5c user: mistachkin tags: releasetest-refactor)
20:05
Fix a potential segfault following OOM error in the test harness. The SQLite core itself is not at fault. (check-in: 1bb26695 user: drh tags: trunk)
19:52
Add the "checksymbols" target to Makefile.in (check-in: 5bd73dba user: drh tags: releasetest-refactor)
19:40
Rework the test/releasetest.tcl script so that it uses the autoconf makefile instead of the test/releasetest.mk makefile. Also add options like --dryrun and --buildonly. Omit the --makefile option and replace it with --srcdir with the default computed relative to the releasetest.tcl script itself. (check-in: 7c85e831 user: drh tags: releasetest-refactor)
19:18
Fix the fts5 bm25() function so that it matches the documentation. (check-in: 1ac7a8d0 user: dan tags: fts5)
2014-12-22
22:02
Fix a typo in an evidence mark on a test script. No changes to code. (check-in: a08b0c75 user: drh tags: trunk)
21:01
Fixes and simplifications for the snippet() and highlight() functions. (check-in: ca5d4404 user: dan tags: fts5)
18:48
Merge the PRAGMA data_version redefinition and other fixes from trunk. (check-in: 315243e4 user: drh tags: sessions)
18:41
Redefine the way PRAGMA data_version works: It continues to change when any other connection commits, including shared-cache connections, but does not change if the local connection commits. (check-in: 7a97826f user: drh tags: trunk)
2014-12-21
11:56
Fixes to the README.md file. No changes to code. (check-in: ef4b734d user: drh tags: trunk)
2014-12-20
22:21
Support manually disabling overlapped file I/O for Windows sub-platforms other than Windows CE. (check-in: b9330b88 user: mistachkin tags: trunk)
21:14
Minor fixes and enhancements to the SQLITE_ENABLE_API_ARMOR functionality. (check-in: cb3e4219 user: mistachkin tags: trunk)
14:58
Merge the PRAGMA data_version command and the enhancements to FK query planning from trunk into the sessions branch. (check-in: d4f82af0 user: drh tags: sessions)
14:50
Add the "PRAGMA data_version" command for checking to see if a database has been modified. (check-in: de50f25c user: drh tags: trunk)
14:34
Update the PRAGMA data_version command so that it reponse to changes made by a shared-cache database connection, and also to changes made by the same database connection. Add test cases to verify the new behavior. (Closed-Leaf check-in: 44ee5383 user: drh tags: data_version_pragma)
2014-12-19
22:20
Merge updates from trunk. (check-in: 555fb71f user: mistachkin tags: asciiMode)
20:53
Remove the fts5_test() aux function. Test aux functions using the tcl interface instead. (check-in: 67e3ffd9 user: dan tags: fts5)
20:27
Adding test cases for the "PRAGMA data_version" command. (check-in: c5fb7d6a user: drh tags: data_version_pragma)
19:28
Experimental "PRAGMA data_version" command for detecting when another process has changed the database file. (check-in: 43db1f44 user: drh tags: data_version_pragma)
18:49
Simplify the implementation of the "header-value" pragmas (schema_version, user_version, freelist_count, and application_id) by making them more table-driven. (check-in: da27a09d user: drh tags: trunk)
2014-12-18
20:01
Fix a problem with prefix queries and the AND operator. (check-in: 38b3c65e user: dan tags: fts5)
18:25
Fix various problems in fts5 revealed by fault-injection tests. (check-in: e358c3de user: dan tags: fts5)
2014-12-17
15:03
Experimental opimizations to speed up FK constraint CASCADE and SET NULL action processing. (check-in: 8c5dd6cc user: dan tags: trunk)
14:38
Fix some comments in fkey.c. Add tests to fkey8.test. (Closed-Leaf check-in: 210cb2a6 user: dan tags: experimental-fk-actions)
2014-12-16
20:13
Experimental opimizations to speed up FK constraint CASCADE and SET NULL action processing. Requires further testing. (check-in: 35a20a5f user: dan tags: experimental-fk-actions)
12:46
Fix the e_walauto.test script so that it works on windows. (check-in: 7d092ebb user: drh tags: trunk)
01:05
Merge threading fixes from trunk into the sessions branch. (check-in: 9817a286 user: drh tags: sessions)
00:29
Merge latest fixes and enhancements from trunk into apple-osx. (check-in: 2c1d8dda user: drh tags: apple-osx)
00:20
Enhanced "stress2" testing in the threadtest3.c test program. (check-in: ae43539e user: drh tags: trunk)
00:08
Make sure the sqlite3BtreeCount() routine does not leave index cursors in an inconsistent state, as doing so might result in an assertion fault inside of sqlite3BtreeKey() called from saveAllCursors() if content is deleted out from under the statement that issued the sqlite3BtreeCount() call. (check-in: 5b1b6970 user: drh tags: trunk)
2014-12-15
20:49
Changes to threadtest3 so that "stress2" is more similar to the SDS stress test. (Closed-Leaf check-in: 5648af96 user: dan tags: threadtest3)
16:27
Add new test file e_walauto.test. (check-in: 62ef4514 user: dan tags: trunk)
08:46
Fix errors in threadtest3 tests caused by earlier tests neglecting to close database handles. (check-in: 1d44f1b1 user: dan tags: trunk)
2014-12-13
17:41
Further enhancements to threadtest3 stress tests. (check-in: ba772cff user: dan tags: trunk)
2014-12-12
23:17
Add extra tests to threadtest4.c. Fix a benign data race accessing the text encoding using ENC(db). (check-in: d7bb7ea4 user: drh tags: trunk)
16:39
Add extra tests to threadtest3. (check-in: f6bf86f9 user: dan tags: trunk)
01:27
Add new tests to the threadtest4.c program. Fix a long-standing data race in WAL mode for shared-cache. (check-in: d8d3e6d0 user: drh tags: trunk)
00:52
Remove the KeyInfo cache (for now - perhaps we will add it back in later - or maybe not since it provides negligible benefit but adds a lot of complexity and thread-safety risk). Add a mutex to ATTACH to deal with a data race. (check-in: 03c443ea user: drh tags: trunk)
00:40
Make sure the Btree mutex is held when setting the locking mode and the secure delete flag when attaching a shared-cache database. (Closed-Leaf check-in: 6bef7ede user: drh tags: threadtest4)
00:26
Merge the cell overflow page number cache thread race fix from trunk. (check-in: cefad47e user: drh tags: threadtest4)
00:20
Fix a bug in the threadtest4.c program. Remove the keyinfo cache as it provides minimal performance improvements, and then only at SQL preparation time, not at runtime, and it has problems with data races in shared-cache mode. We might later add the keyinfo cache back but only enable it when shared-cache mode is off. (check-in: b7489f94 user: drh tags: threadtest4)
2014-12-11
19:29
Add the threadtest4.c test program. Not yet working. (check-in: ec3a7446 user: drh tags: threadtest4)
16:38
Fix a race condition to do with very large index keys in shared-cache mode. (check-in: fc157dd7 user: dan tags: trunk)
15:27
Fix a typo in the documentation for sqlite3_threadsafe(). (check-in: 258e747b user: drh tags: trunk)
04:49
Update a comment. (check-in: e0e102a0 user: mistachkin tags: asciiMode)
03:29
Rename a structure member to improve code clarity. (check-in: d48eda16 user: mistachkin tags: asciiMode)
03:25
Remove an unused structure member. (check-in: d8404340 user: mistachkin tags: asciiMode)
03:20
Further simplify shell mode changes. (check-in: cf9c6e7e user: mistachkin tags: asciiMode)
03:12
Simplify and cleanup the implementation of the new ASCII mode for the shell. (check-in: 66a28f7a user: mistachkin tags: asciiMode)
02:28
Merge updates from trunk. (check-in: 5b5d3e4d user: mistachkin tags: asciiMode)
2014-12-10
20:57
Fix a typo causing a test error in e_walhook.test. (check-in: d9f916ba user: dan tags: trunk)
20:29
Add new test file e_walhook.test. (check-in: 2eb6d3e4 user: dan tags: trunk)
17:34
Revise mutex handling by the sqlite3_win32_reset_heap() function. (check-in: eacb3b7b user: mistachkin tags: trunk)
04:58
Fix typos in the documentation for sqlite3_table_column_metadata(). No changes to code. (check-in: 3528f8dd user: drh tags: trunk)
2014-12-09
22:24
Fix the sqlite3_table_column_metadata() routine so that it gives the correct answer for the "rowid" column in a WITHOUT ROWID table. Enhance it so that it can be used to check for the existence of a table by setting the column name parameter to NULL. The routine is now included in the build by default, even without the SQLITE_ENABLE_COLUMN_METADATA compile-time option. (check-in: cf9be419 user: drh tags: trunk)
20:13
Add extra tests to e_walckpt.test. (check-in: 84f95810 user: dan tags: trunk)
19:16
Lower the default SQLITE_SORTER_PMASZ value back to 10, where it has been for the past couple of releases. Applications that need a larger value can set one. (check-in: 1ba8911c user: drh tags: trunk)
19:07
Make the sqlite3_table_column_metadata() interface available by default and without requiring the SQLITE_ENABLE_COLUMN_METADATA compile-time option. Other sqlite3_column_* interfaces that have a run-time penalty even if they are unused still require the SQLITE_ENABLE_COLUMN_METADATA option at compile-time. (check-in: 4f7549ff user: drh tags: trunk)
15:12
Add the SQLITE_REVERSE_UNORDERED_SELECTS compile-time option that causes the "PRAGMA reverse_unordered_selects" setting to be on by default. (check-in: 75a803e6 user: drh tags: trunk)
15:01
Increase the default PMA size from 10 to 250 pages and provide the SQLITE_SORTER_PMASZ compile-time option to change this default. Add needed mutex call when clearing the KeyInfo cache in shared-cache mode. (check-in: 6e2da589 user: drh tags: apple-osx)
14:54
Merge the KeyInfo cache mutex fix from trunk. (check-in: f0940c73 user: drh tags: sessions)
14:42
Increase the default minimum PMA size for multi-threaded sorting from 10x the page size to 250x the page size. Provide the SQLITE_SORTER_PMASZ compile-time option to change this default. (check-in: b05340fe user: drh tags: trunk)
04:26
Fix harmless compiler warning. (check-in: e97b7a8b user: mistachkin tags: trunk)
01:34
Version 3.8.7.4 (Leaf check-in: f66f7a17 user: drh tags: release, version-3.8.7.4, branch-3.8.7)
2014-12-08
20:29
Add extra tests to e_walckpt.test. (check-in: d6832aa2 user: dan tags: trunk)
20:23
Add missing mutex calls around a call to sqlite3SchemaGet() within sqlite3_open(). (check-in: 266b3441 user: dan tags: branch-3.8.7)
20:20
Add missing mutex calls around a call to sqlite3SchemaGet() within sqlite3_open(). (check-in: 45415899 user: dan tags: trunk)
18:08
Add a missing mutex around calls to clear the KeyInfo cache when closing a database connection. (check-in: 7047ce32 user: drh tags: trunk)
18:02
Increase the version number to 3.8.7.4. (check-in: 33c90027 user: drh tags: branch-3.8.7)
17:45
Add a missing mutex around calls to clear the KeyInfo cache when closing a database connection. (check-in: 3ddc7e4c user: drh tags: branch-3.8.7)
07:50
Update this branch with latest trunk changes. (check-in: 69a312ad user: dan tags: ota-update)
07:28
Update comments in sqlite3ota.h to remove the "must have PRIMARY KEY" restriction. (check-in: 088a41eb user: dan tags: ota-update)
07:22
Extra tests for the ota_rowid column. (check-in: 46069393 user: dan tags: ota-update)
2014-12-06
19:30
Allow the ota extension to write to tables with no PRIMARY KEY declaration. (check-in: ba59a7e2 user: dan tags: ota-update)
14:56
Avoid accessing a single uninitialized byte when moving a rare 3-byte cell from an internal page to a leaf. This was not actually causing a problem, just a valgrind warning. (check-in: 6aeece19 user: dan tags: trunk)
02:05
Fix a (harmless) uninitialized variable reference in b-tree balancing for auto-vacuumed tables with overflow pages. (check-in: dd1dd445 user: drh tags: trunk)
2014-12-05
22:29
Version 3.8.7.3 (check-in: 647e77e8 user: drh tags: release, version-3.8.7.3, branch-3.8.7)
21:18
Avoid a potential NULL pointer deference in the sqlite3_stmt_scanstatus() logic. (check-in: 42d44adc user: drh tags: trunk)
21:04
Fix a buffer overread that might occur in analyze.c if SQLITE_ENABLE_STAT4 was defined. (check-in: c1ae1268 user: dan tags: trunk)
20:46
Add new test file e_walckpt.test. Still some tests to come. (check-in: e4db3db3 user: dan tags: trunk)
20:43
Fix a buffer overread that might occur in analyze.c if SQLITE_ENABLE_STAT4 was defined. (check-in: 194c90db user: dan tags: branch-3.8.7)
20:16
Merge the shared-cache KeyInfo fix from trunk. (check-in: 8a9b43f9 user: drh tags: apple-osx)
20:05
Merge the fix for the shared-cache KeyInfo cache bug from trunk. (check-in: 5a73da6a user: drh tags: sessions)
19:50
Make sure the WhereTerm objects are fully zeroed when they are allocated. (check-in: fdb66733 user: drh tags: trunk)
15:31
The KeyInfo cache must be cleared before closing the btree, not after. Revised fix for ticket [e4a18565a36884b00edf]. (check-in: 7ed3346e user: drh tags: trunk)
15:25
The KeyInfo cache must be cleared before closing the btree, not after. Revised fix for ticket [e4a18565a36884b00edf]. (check-in: 48529508 user: drh tags: branch-3.8.7)
14:54
Increase the version number to 3.8.7.3. (check-in: 9f7560bc user: drh tags: branch-3.8.7)
14:51
When closing a (shared-cache) database connection, be sure to clear out all KeyInfo objects cached on Index objects. Fix for ticket [e4a18565a36884b00edf]. (check-in: b7905b8c user: drh tags: branch-3.8.7)
14:44
When closing a (shared-cache) database connection, be sure to clear out all KeyInfo objects cached on Index objects. Fix for ticket [e4a18565a36884b00edf]. (check-in: adca7688 user: drh tags: trunk)
14:36
Add code to check the validity of CollSeq objects during runtime. This code was not able to detect anomalies such as came up as a result of ticket [e4a18565a36884b00edf66541f38c693827968ab] so it is put into a branch for historical reference, with the intent of leaving it out of trunk. (Closed-Leaf check-in: 68b23c3d user: drh tags: collseq-checking)
14:34
Improved comment on the sharedB.test test script. (Closed-Leaf check-in: 71f589e3 user: drh tags: fix-stale-keyinfo-cache)
14:07
Test case demonstrating the problem described by ticket [e4a18565a36884b00edf]. (check-in: ffea3e90 user: drh tags: fix-stale-keyinfo-cache)
05:38
When closing a (shared-cache) database connection, be sure to clear out all KeyInfo objects cached on Index objects. Proposed fix for ticket [e4a18565a36884b00edf]. (check-in: 651ed97d user: drh tags: fix-stale-keyinfo-cache)
00:49
Import compiler warning and autoconf makefile fixes from trunk. (check-in: 5437e053 user: drh tags: apple-osx)
00:41
Import from trunk the fix the "test" target on the autoconf and MSVC makefiles and some minor compiler warning fixes. (check-in: c9f20eb2 user: drh tags: sessions)
00:32
Fix compiler warnings. (check-in: e9955c0e user: drh tags: trunk)
00:17
Fix the autoconf and MSVC makefiles, which have been broken for nearly a month. :-( (check-in: 520c2b83 user: drh tags: trunk)
2014-12-04
23:42
Import from trunk support for SQLITE_CHECKPOINT_TRUNCATE and fixes for a couple of obscure bugs. (check-in: 463ad971 user: drh tags: apple-osx)
23:35
Incorporate the SQLITE_CHECKPOINT_TRUNCATE enhancement and a couple of obscure bug fixes from trunk. (check-in: 34ffa3b3 user: drh tags: sessions)
21:54
Make sure that a DISTINCT query with an ORDER BY works correctly even if it uses a descending index. Fix for ticket [c5ea805691bfc4204b1cb9e]. (check-in: 0d3aef97 user: drh tags: trunk)
20:24
Performance enhancement for single-table queries with many OR-connected WHERE clause terms and multiple indexes with the same left-most columns. (check-in: 1461d543 user: drh tags: trunk)
16:29
If a table is the right operand of a LEFT JOIN, then any column of that table can be NULL even if that column has a NOT NULL constraint. Fix for ticket [6f2222d550f5b0ee7ed]. (check-in: 5a80957b user: drh tags: branch-3.8.7)
16:27
If a table is the right operand of a LEFT JOIN, then any column of that table can be NULL even if that column has a NOT NULL constraint. Fix for ticket [6f2222d550f5b0ee7ed]. (check-in: 6f6fcbe4 user: drh tags: trunk)
15:02
Clarification of the meaning of the second parameter to the busy-handler callback. No changes to code. (check-in: 1e2bc484 user: drh tags: trunk)
14:01
Fix comment typos reported on the mailing list. No changes to code. (check-in: 93a71c9f user: drh tags: trunk)
04:50
Add an implementation mark and fix a comment describing the OP_Checkpoint opcode. (check-in: 7475b90c user: drh tags: trunk)
2014-12-03
19:25
Add evidence marks and assert()s used as evidence for checkpoint requirements. (check-in: b2da8afc user: drh tags: trunk)
19:08
Fix over-length comment lines in sqlite.h.in. No changes to code. (check-in: cbd357fd user: drh tags: trunk)
18:32
Simplify the sqlite3_wal_checkpoint() documentation. Add some source code evidence marks. (check-in: 026c44ff user: drh tags: trunk)
17:27
Begin testing fts5 OOM and IO error handling. (check-in: 2037dba6 user: dan tags: fts5)
16:30
Futher tweaks to the sqlite3_wal_checkpoint_v2() documentation. (check-in: 7d284d04 user: drh tags: trunk)
15:50
Updates to the documentation for sqlite3_wal_checkpoint_v2() and related interfaces, including adding many requirements marks. (check-in: 1e212d98 user: drh tags: trunk)
2014-12-02
20:51
Add support for SQLITE_CHECKPOINT_TRUNCATE. (check-in: edda2b9e user: drh tags: trunk)
20:18
Add a configuration option to remap the "rank" column to an auxiliary fts5 function. (check-in: b5f59712 user: dan tags: fts5)
19:35
When attempting to restart a wal file, make any required calls to sqlite3_randomness() before waiting on or checking for wal file readers. This restores the behaviour exhibited by the trunk. (Closed-Leaf check-in: 6ee08769 user: dan tags: checkpoint-truncate)
19:04
Add the SQLITE_CHECKPOINT_TRUNCATE option. (check-in: 8e20a434 user: dan tags: checkpoint-truncate)
16:38
Merge all recent enhancements and bug fixes from trunk into the apple-osx branch. (check-in: 43c4ba26 user: drh tags: apple-osx)
16:31
Merge all recent fixes and enhancements from trunk into sessions. (check-in: 2617d937 user: drh tags: sessions)
16:16
Convert two unreachable branches into assert() statements. (check-in: 61b31e77 user: drh tags: trunk)
13:46
Work around overzealous NULL pointer checking in memcpy() and memset() for some systems. (check-in: 0d04f380 user: drh tags: trunk)
2014-12-01
20:05
Add code to parse a rank() function specification. And a tcl interface to add auxiliary functions to fts5. (check-in: 9c1697a2 user: dan tags: fts5)
2014-11-28
20:01
Add a cookie mechanism to ensure that the %_config table is re-read as required. (check-in: bb4a37b5 user: dan tags: fts5)
13:35
Remove the ill-designed "-end" option from the command-line shell. Instead, allow multiple SQL or dot-commands as command-line arguments. Any -cmd commands are processed first, followed by other command-line arguments, for backwards compatibility. (check-in: 24fa2e98 user: drh tags: trunk)
11:54
Add the -end option to the command-line shell, which forces it to exit after reading prior command-line options (presumably including one or more -cmd options) and without reading standard input. (check-in: b59397b1 user: drh tags: trunk)
2014-11-27
20:03
Add a %_config table to fts5. (check-in: 83491c56 user: dan tags: fts5)
18:09
Update ota so that the hidden columns of virtual tables may be written. (check-in: ccee9996 user: dan tags: ota-update)
11:36
Fix a buffer overread during compilation of CREATE VIRTUAL TABLE statements that featured an explicit database name but no virtual table arguments. For example, "CREATE VIRTUAL TABLE main.ft USING fts4". (check-in: f095cde5 user: dan tags: trunk)
04:23
More test cases for the balancer. (check-in: 358ea818 user: drh tags: trunk)
03:46
Fix a problem in the new b-tree balancer that was causing corruption of the fragmentation count. (check-in: f242394e user: drh tags: trunk)
2014-11-25
18:59
Fix an integer overflow bug in vdbesort.c. (check-in: 62382719 user: dan tags: trunk)
2014-11-24
16:24
Add the auxiliary highlight() function to fts5. (check-in: 05909237 user: dan tags: fts5)
2014-11-22
21:37
Always reinitialized the Index.bUnordered and Index.noSkipscan flags before rereading the sqlite_stat1 table, even if SQLITE_ENABLE_STAT4 is defined. (check-in: 1e1221fc user: drh tags: trunk)
19:52
Fix an error in the comments from the previous check-in. (check-in: 9660ce54 user: drh tags: trunk)
18:50
Deploy heuristics (well-commented) to better estimate how much unindexed terms in the WHERE clause filter the number of output rows from a single table. (check-in: 22165994 user: drh tags: trunk)
16:14
Unintentional edits mistakenly checked in. Was: Remove an obsolete and incorrect comment from the whereLoopOutputAdjust() routine in the query planner. No changes to working code. (Closed-Leaf check-in: e1f893c6 user: drh tags: mistake)
12:22
Remove a redundant test case (probably a copy/paste error). Add an assert() to where.c to ensure that automatic indexes do not have there output row counts adjusted downward by supplementary constraints. (check-in: eea47933 user: drh tags: trunk)
09:09
Add SQLITE_ENABLE_OTA pre-processor directives so that this branch may be compiled with or without OTA. (check-in: 600cefdd user: dan tags: ota-update)
2014-11-21
14:37
Merge latest trunk changes with this branch. (check-in: 7ef44c5b user: dan tags: ota-update)
11:22
Changes to comments in sqlite3ota.h. (check-in: 14139542 user: dan tags: ota-update)
10:46
Add support for updating virtual tables via ota. (check-in: 4dfcfe54 user: dan tags: ota-update)
2014-11-20
23:21
Fix a typo in a requirements mark on the abs() SQL function. (check-in: b1e6c02f user: drh tags: trunk)
23:11
Fix a benign test error on PRAGMA collation_list introduced by a recent checkin. (check-in: 332cc959 user: drh tags: trunk)
23:03
Updates to requirements tags on the mutex documentation. (check-in: fcf8b7e4 user: drh tags: trunk)
19:22
Add requirements marks on the built-in collating functions. (check-in: 4b608b62 user: drh tags: trunk)
19:19
Add the "ota_delta()" feature for delta-compressed updates. (check-in: c64dcd17 user: dan tags: ota-update)
17:37
Update the ota extension so that it can be used to update tables with external PRIMARY KEY indexes. (check-in: 55066a11 user: dan tags: ota-update)
15:30
Ensure that when the number of cells on a page drops to zero that the freelist and fragment counter are both cleared. Also add evidence marks corresponding to file-format documentation. (check-in: ef9fbc08 user: drh tags: trunk)
15:11
Updates to support zipvfs in pass-through mode. (check-in: 556c3de5 user: dan tags: ota-update)
02:58
Fix the encoding of some integers to use the minimum amount of space: -128, -32768, -8388608, -217483648, and -140737488355328. (check-in: 2d7c8da5 user: drh tags: trunk)
02:18
Add some requirements marks to the record formatting logic. Comment changes only - the code is unaltered. (check-in: 9a9627e1 user: drh tags: trunk)
2014-11-19
16:36
Add new requirements marks associated with the file format documentation. No changes to code. (check-in: 6d00bcca user: drh tags: trunk)
14:31
Completely remove an assert() that had previously been commented out. (check-in: 89b3c1c4 user: drh tags: trunk)
14:05
Add an ALWAYS on an always-true branch in wal.c. Fix the ANALYZE command so that it resets the "unordered" and "noskipscan" flags on indices when reloading the sqlite_stat1 table. (check-in: 9ed97a85 user: drh tags: trunk)
2014-11-18
21:54
Adding the "noskipscan" token to an sqlite_stat1.stat field prevents an index for being used with the skip-scan algorithm. (check-in: 4461bf04 user: drh tags: trunk)
21:45
Allow an automatic index to be used if the only uses of declared indexes for the same loop use the skip-scan algorithm. (check-in: c52f7971 user: drh tags: trunk)
21:27
Merge recent trunk enhancements. (check-in: ccb601f6 user: drh tags: apple-osx)
21:20
Merge recent trunk enhancements, including the read-after-ROLLBACK change and the addition of sqlite3_stmt_scanstatus() support, as well as various minor bug fixes. (check-in: f09055f3 user: drh tags: sessions)
20:57
Version 3.8.7.2. (check-in: 2ab564bf user: drh tags: release, version-3.8.7.2, branch-3.8.7)
20:49
Merge in all the other ROLLBACK fixes from the branch-3.8.7 branch. I don't know why I was doing them one-by-one. (check-in: 296b0c73 user: drh tags: trunk)
20:22
Fix a bug in the sqlite3TripAllCursors() routine that prevents it from reporting errors. It is unknown at this time whether or not this omission can result in any incorrect result in an actual query. (check-in: 2896f264 user: drh tags: trunk)
20:16
Update a couple of test cases to account for the fact that ROLLBACK does not always abort all running SELECT statements. (check-in: abccda76 user: drh tags: trunk)
12:28
Increment the version number to 3.8.7.2 (check-in: 945a9e68 user: drh tags: branch-3.8.7)
02:44
Add an ALWAYS() to an always-true conditional in the WAL rollback logic. (check-in: c5eae8a6 user: drh tags: branch-3.8.7)
2014-11-17
20:33
Remove code from sqlite3BtreeKeySize() made unreachable by the previous check-in. (check-in: 57c4aa98 user: drh tags: branch-3.8.7)
19:44
Avoid calling sqlite3BtreeKeysize() on a b-tree cursor in SKIPNEXT or SKIPPREV state. Cherrypick of [54e7d3fcb1]. (check-in: 2f2ecb99 user: dan tags: branch-3.8.7)
19:42
Avoid calling sqlite3BtreeKeysize() on a b-tree cursor in SKIPNEXT or SKIPPREV state. (check-in: 54e7d3fc user: dan tags: trunk)
19:25
Improved comments on the BtCursor.skipNext field. No changes to code. (check-in: e956e7db user: drh tags: branch-3.8.7)
18:35
Add tests for WITHOUT ROWID tables with composite primary keys. (check-in: 712d413d user: dan tags: ota-update)
17:57
Changes so that sqlite3_ckpt_open() works with zipvfs databases. (check-in: acbed338 user: dan tags: ota-update)
17:13
When a SELECT statement is terminated by a ROLLBACK TO operation, make the error message be "abort due to ROLLBACK" rather than "callback requested query abort". (check-in: 34fc4a08 user: drh tags: branch-3.8.7)
15:32
Fix a bug in the sqlite3TripAllCursors() routine that prevents it from reporting errors. It is unknown at this time whether or not this omission can result in any incorrect result in an actual query. (check-in: 42588207 user: drh tags: branch-3.8.7)
15:22
Update a couple of test cases to account for the fact that ROLLBACK does not always abort all running SELECT statements. (check-in: eba171e9 user: dan tags: branch-3.8.7)
15:07
Fix a problem with the parameters to an OP_Affinity in one of the VM programs generated by sqlite3_index_writer() that was causing an OOB read. (check-in: 447b33b3 user: dan tags: ota-update)
2014-11-15
20:07
Fix the customization interfaces so that they match the documentation. (check-in: fba0b5fc user: dan tags: fts5)
19:08
Adding the "noskipscan" token to an sqlite_stat1.stat field prevents an index for being used with the skip-scan algorithm. (Closed-Leaf check-in: 00fe0950 user: drh tags: noskipscan-token)
2014-11-14
19:34
Consider using an automatic-index for a scan even if there exists a possible skip-scan that uses one or more "=" operators. (Closed-Leaf check-in: 93642a65 user: dan tags: experimental-autoindex-fix)
15:42
Do not automatically remove the DISTINCT keyword from "a IN (SELECT DISTINCT ...)" expressions. Fix for [db87229497]. (check-in: 98457a57 user: drh tags: branch-3.8.7)
15:28
Do not automatically remove the DISTINCT keyword from "a IN (SELECT DISTINCT ...)" expressions. Fix for [db87229497]. (check-in: 55e453aa user: dan tags: trunk)
2014-11-13
14:30
Modify the documentation for sqlite3_backup_init() to indicate that it will fail if there is already a read or read-write transaction open on the destination database. (check-in: ef03a203 user: dan tags: trunk)
14:18
Have calls to sqlite3_backup_init() fail if there is already a read or read-write transaction open on the destination database. (check-in: 169b5505 user: dan tags: trunk)
13:42
When a transaction or savepoint rollback occurs, save the positions of all open read-cursors so that they can be restored following the rollback operation. Cherry-pick of check-in [dd03a2802f3f27] (check-in: 402780a9 user: drh tags: branch-3.8.7)
2014-11-12
17:45
Add further tests for rollback operations in the presence of ongoing selects. (check-in: eaf3aae0 user: dan tags: trunk)
14:56
When a transaction or savepoint rollback occurs, save the positions of all open read-cursors so that they can be restored following the rollback operation. (check-in: dd03a280 user: dan tags: trunk)
14:12
Fix the %c format character in sqlite3VXPrintf() so that it correctly handles precisions larger than 70. (check-in: 839a6df9 user: drh tags: branch-3.8.7)
14:07
Make sure that NULL results from OP_Column are fully and completely NULL and do not have the MEM_Ephem bit set. Fix for ticket [094d39a4c95ee4]. (check-in: e1017745 user: drh tags: branch-3.8.7)
2014-11-11
22:55
Enhance ROLLBACK so that pending queries are allowed to continue as long as the schema does not change. This is a cherry-pick of check-in [b5df5ac052]. (check-in: d4b2d5d0 user: drh tags: branch-3.8.7)
19:07
Remove some calls to the 'breakpoint' test command. (check-in: 1412fcc4 user: mistachkin tags: trunk)
16:11
Add tests for sqlite3_blob_bytes(). (check-in: a066a383 user: dan tags: trunk)
14:59
Permit read operations to continue after a ROLLBACK as long as the schema does not change. (check-in: b5df5ac0 user: drh tags: trunk)
12:20
Add new test file e_blobclose.test, containing tests for sqlite3_blob_close(). (check-in: 5a1eac24 user: dan tags: trunk)
01:33
Experimental changes that permit read operations to continue after a ROLLBACK, as long as the schema is unchanged. (Closed-Leaf check-in: fa6e6a9a user: drh tags: read-after-rollback)
2014-11-10
19:16
New test cases for deleting content out from under a SELECT statement. (check-in: 8289c3e9 user: drh tags: trunk)
17:53
Add test file e_blobwrite.test, containing tests for the sqlite3_blob_write() interface. (check-in: 1df77e5f user: dan tags: trunk)
16:49
Add the eval() SQL function extension in ext/misc/eval.c. (check-in: 27cf665b user: drh tags: trunk)
14:42
Shorten over-length source code lines in shell.c. (check-in: 7f3819f6 user: drh tags: trunk)
2014-11-07
14:41
Add new test file e_blobopen.test, containing tests for sqlite3_blob_open(). (check-in: ecbccd0e user: dan tags: trunk)
14:37
Fix another harmless comment typo. (check-in: b45bc80b user: drh tags: trunk)
13:52
In the ".scanstats on" output from the shell, round the estRows value to the nearest integer, rather than rounding toward zero. (check-in: 57005085 user: drh tags: trunk)
13:24
Fix harmless typos in comments. (check-in: 94c564da user: drh tags: trunk)
11:39
Fix typo in sqlite3.h reported on the mailing list. (check-in: 40270321 user: drh tags: trunk)
01:43
Update documentation on sqlite3_config() and add corresponding evidence marks. (check-in: 360c8ca1 user: drh tags: trunk)
2014-11-06
14:43
Added SQLITE_SCANSTAT_SELECTID. Change the value returned by SQLITE_SCANSTAT_EST from sqlite3_int64 to double. Enhanced the formatting and display of scan statistics using the ".scanstats on" command in the shell. (check-in: 20c7614a user: drh tags: trunk)
12:46
Further improvements to the ".scanstats on" display in the shell. Be sure to show the results of all subqueries even if there are gaps in the SELECTID values. Add ".scanstats" to the ".help" output. (Closed-Leaf check-in: ee922682 user: drh tags: scanstatus)
12:17
On the ".scanstats on" output in the shell, initialize the estimated count for the first loop of each subquery to the actual loop count. (check-in: d1c51c84 user: drh tags: scanstatus)
12:08
Changes the formatting of ".scanstats on" in the shell so that the stats for subqueries are grouped together and occur after the main query. (check-in: eacbbd88 user: drh tags: scanstatus)
04:42
Add the SQLITE_SCANSTAT_SELECTID metric. Use it to improve the ".stmtscan on" output in the shell. (check-in: 64ad5761 user: drh tags: scanstatus)
03:55
Change the SQLITE_SCANSTAT_EST parameter so that it returns a double for the estimated number of output rows per loop, rather than a 64-bit integer. Revise the output format for the ".scanstats on" in the shell to make use of this new capability. (check-in: f9684000 user: drh tags: scanstatus)
2014-11-05
21:34
Fixes to the Windows VFS to allow memory mapped files to work without WAL support. (check-in: 272fddc1 user: drh tags: trunk)
21:21
Fix harmless compiler warnings in the new balance_nonroot() routine. (check-in: 83a1e5db user: drh tags: trunk)
19:26
Change the query planner to do a better job of estimating the number rows selected by a BETWEEN operator using STAT4 when both upper and lower bounds are contained within the same sample. (check-in: 2d36be5d user: drh tags: trunk)
15:57
Make sure that NULL results from OP_Column are fully and completely NULL and do not have the MEM_Ephem bit set. Fix for ticket [094d39a4c95ee4]. (check-in: 42705fd7 user: drh tags: trunk)
14:19
Add a test case to check that the previous commit is effective. (check-in: 948d6e5d user: dan tags: trunk)
13:13
Enhance whereLoopCheaperProperSubset(X,Y) so that it does not report true if X uses skip-scan less than Y, since in that case X might deserve to be cheaper even if it is a proper subset. (check-in: c106b755 user: drh tags: trunk)
09:07
Add the ".scanstats on" command to the shell tool. Executing this command causes the shell tool to print values from sqlite3_stmt_scanstatus() after each query is run. (check-in: 7974c0ed user: dan tags: trunk)
2014-11-04
21:38
Improved output formatting for the showstat4 tool. (check-in: 7df82c46 user: drh tags: trunk)
19:52
Skip tests that require WAL mode when it is not enabled. (Closed-Leaf check-in: 6fc4ead2 user: mistachkin tags: winMmapNoWal)
19:37
For the Win32 VFS, allow memory mapped files to work when compiled without WAL support. (check-in: 1fc7e2f3 user: mistachkin tags: winMmapNoWal)
17:23
Add various requirements evidence marks for sqlite3_config() options. (check-in: d423349d user: drh tags: trunk)
14:22
Change the definition of SQLITE_CONFIG_SCRATCH so that at most one scratch buffer is used per thread. Use the generic heap memory allocator for the WalIterator object when running a checkpoint. (check-in: 391c9b85 user: drh tags: trunk)
13:41
Improved documentation and addition of source-code evidence marks for the sqlite3_config() interface. (check-in: 681031a4 user: drh tags: trunk)
12:11
Add the SQLITE_CONFIG_PCACHE_HDRSZ option for sqlite3_config(). (check-in: 6eb03e62 user: drh tags: trunk)
2014-11-03
18:03
Updates to the sqlite3_stmt_scanstatus() documentation. No changes to code. (check-in: d97c324e user: drh tags: trunk)
16:56
Add the experimental sqlite3_stmt_scanstatus() API. For comparing the number of rows actually visited by a loop with the estimate used by the query planner. (check-in: ab3b0fc5 user: dan tags: trunk)
16:39
Fix a typo preventing this from building with SQLITE_ENABLE_STMT_SCANSTATUS defined. (Closed-Leaf check-in: 4c5714ab user: dan tags: scanstatus)
16:35
Refactor the interface to make it more easily extensible. (check-in: 7955342d user: drh tags: scanstatus)
15:33
Add further tests. Fixes so that compilation without ENABLE_STMT_SCANSTATUS works. (check-in: a2303c71 user: dan tags: scanstatus)
14:46
Use exponential buffer size growth in StrAccum, as long as the size does not grow to large, to avoid excess memory allocation resize operations. Also, document the fact that setting scratch memory causes SQLite to try to avoid large memory allocations. (check-in: a518bc33 user: drh tags: trunk)
13:24
When enlarging the size of a StrAccum object, use sqlite3DbMallocSize() to record the entire size of the allocation, not just the requested size. (check-in: 3dda3c93 user: drh tags: trunk)
11:25
Remove unused variable from struct WhereInfo. Add some explanatory comments to new code. (check-in: f5313e0c user: dan tags: scanstatus)
2014-11-01
21:00
Minor performance enhancements to SQLITE_ENABLE_STMT_SCANSTATUS code. (check-in: f13d6ba8 user: dan tags: scanstatus)
20:38
If SQLITE_ENABLE_STMT_SCANSTATUS is defined, record the number of times each VDBE opcode is executed. Derive the values returned by sqlite3_stmt_scanstatus() from these records on demand. (check-in: 9ea37422 user: dan tags: scanstatus)
18:32
Add requirements marks and make minor tweaks to documentation. (check-in: 49188b2b user: drh tags: trunk)
18:08
Minor fixes and documentation improvements for sqlite3_stmt_scanstatus(). (check-in: 8d8cc960 user: dan tags: scanstatus)
2014-10-31
20:11
Add the experimental sqlite3_stmt_scanstatus() API. (check-in: 6a9bab34 user: dan tags: scanstatus)
15:20
Merge all recent trunk enhancements into the apple-osx branch. (check-in: fef8430f user: drh tags: apple-osx)
14:53
Merge recent trunk enhancements, and in particular the improvements to the b-tree balancing logic, into the sessions branch. (check-in: 28b044a5 user: drh tags: sessions)
14:46
Change the command-line shell man-page to use the ".tr" troff directive instead of ".cc" for escaping the initial "." characters in the ".help" output. (check-in: 67f0d469 user: drh tags: trunk)
14:26
Simplify the logic in the cell redistribution loop of balance_nonroot(). Enhance and clarify comments and add assert() statements for additional verification of correctness. (check-in: a07078b6 user: drh tags: trunk)
12:22
Simplify the math slightly, and reduce by one the number of loop iterations, for the loop in balance_nonroot() that moves cells between pages. (check-in: 2e838db8 user: drh tags: trunk)
10:31
Add the "varint.c" utility program in the tool directory. (check-in: ea5d56be user: drh tags: trunk)
02:51
Remove an unnecessary branch from balance_nonroot(). (check-in: 9fc7c88e user: drh tags: trunk)
00:05
In the balance_nonroot() routine, protect the values in aPgno[] array from change during the page sort, so that aPgno[] can be used to avoid unnecessary pointer-map updates for auto_vacuum databases. (check-in: 69c3924f user: drh tags: trunk)
2014-10-30
23:14
Improvements to the wording of some comments. Reinstate an assert() that is only true for non-corrupt database files by adding an "|| CORRUPT_DB" term. (check-in: 67adb448 user: drh tags: trunk)
20:48
Tweaks to comments in btree.c. Minor code changes to enhance testability. (check-in: c7d9aa3a user: drh tags: trunk)
2014-10-29
18:20
Fix the %c format character in sqlite3VXPrintf() so that it correctly handles precisions larger than 70. (check-in: 08a27440 user: drh tags: trunk)
13:59
Version 3.8.7.1 (check-in: 3b7b72c4 user: drh tags: release, version-3.8.7.1, branch-3.8.7)
01:27
Increase the version number to 3.8.7.1 (check-in: 83afe23e user: drh tags: branch-3.8.7)
01:26
Fix problems with running UPDATE and DELETE against a VIEW and referencing the rowid in the WHERE clause. This is a cherrypick of [95f8ebdbf87326f2] and [8523670d50004f3]. (check-in: cc33e846 user: drh tags: branch-3.8.7)
01:18
Disable the use of strchrnul() unless specifically enabled by compile-time options. Cherrypick of check-in [e580470db77d6da9] (check-in: 837368ad user: drh tags: branch-3.8.7)
01:13
In the OP_Column opcode, when extracting a field that is past the end of a short record (because the row was originally inserted prior to ALTER TABLE ADD COLUMN) then make sure the output register is fully NULL and does not contain leftover flags (such as MEM_Ephem) from its previous use. Fix for ticket [43107840f1c02]. This is a cherrypick of check-in [24780f8ddc1683fc]. (check-in: 304ea6ba user: drh tags: branch-3.8.7)
01:07
Call fsync() right after ftruncate() when in journal_mode=TRUNCATE and when synchronous=FULL in order to ensure that transactions are durable across a power loss that happens moments after the commit. Proposed fix for https://bugzilla.mozilla.org/show_bug.cgi?id=1072773. This is a cherrypick of [3e922208b68563489]. (check-in: a8f9bd1e user: drh tags: branch-3.8.7)
00:58
In the OP_Column opcode, when extracting a field that is past the end of a short record (because the row was originally inserted prior to ALTER TABLE ADD COLUMN) then make sure the output register is fully NULL and does not contain leftover flags (such as MEM_Ephem) from its previous use. Fix for ticket [43107840f1c02]. (check-in: 24780f8d user: drh tags: trunk)
2014-10-28
20:49
Add new test file e_totalchanges.test, containing tests of the sqlite3_total_changes() interface. (check-in: f84af4ad user: dan tags: trunk)
20:35
Update the documentation on the sqlite3_randomness() interface to conform to enhancements associated with the SQLITE_ENABLE_API_ARMOR change. (check-in: 96e9917c user: drh tags: trunk)
18:24
Modify the documentation for sqlite3_changes() to make it more testable. Add tests and minor fixes for the same. (check-in: 41cdd0c4 user: dan tags: trunk)
16:50
Fix a crash that could occur if the WHERE clause of an UPDATE statement on a view that does not feature a column named "rowid" contains a term such as "rowid=?". (check-in: 8523670d user: dan tags: trunk)
16:19
Fix a faulty assert() in the DELETE code generator. (check-in: 95f8ebdb user: drh tags: trunk)
15:58
Trivial simplification to the automatic index logic. (check-in: 23073a05 user: drh tags: trunk)
12:35
Bump the version number to 3.8.8 (check-in: 1a7e711e user: drh tags: trunk)
00:56
Correct the documentation on the maximum size of a scratch allocation. (check-in: 30f86eb3 user: drh tags: trunk)
2014-10-27
22:06
Add special handling for static mutexes in sqlite3_mutex_alloc() when automatic calls to sqlite3_initialize() are enabled. (check-in: 7857d27c user: mistachkin tags: trunk)
20:14
Remove a small amount of unnecessary #ifdeffery from random.c. (check-in: 2b9340c8 user: drh tags: trunk)
19:58
Fix compilation issue with MSVC due to a misplaced variable declaration. (check-in: 9588b345 user: mistachkin tags: trunk)
19:42
Fix harmless compiler warning in an assert statement. (check-in: d33a1ff3 user: mistachkin tags: trunk)
19:39
Fix a typo in the macro name of an #ifdef (check-in: 9646a136 user: drh tags: trunk)
18:42
Merge latest enhancements, including the SQLITE_ENABLE_API_ARMOR patch, from trunk. (check-in: 10aaf3b1 user: drh tags: apple-osx)
18:34
Add the SQLITE_ENABLE_API_ARMOR compile-time option for extra API parameter validation. Enhance sqlite3_stricmp(), sqlite3_strnicmp(), and sqlite3_uri_parameter() for improved NULL parameter handling. (check-in: ffb9d814 user: drh tags: trunk)
18:21
Fix an unused variable in btree.c:allocateSpace(). (check-in: 63724616 user: drh tags: trunk)
14:26
Optimizations aimed at reducing the number of memcpy() operations required by balance_nonroot(). (check-in: face33be user: dan tags: trunk)
11:25
Add test file e_wal.test. (check-in: fc6920b5 user: dan tags: trunk)
08:02
If a free-slot is found within a page, but using that free-slot would fragment the page further and there are already at least 60 fragmented bytes, degragment the page. This matches the behaviour of the trunk. (Closed-Leaf check-in: 1f80f8c1 user: dan tags: defrag-opt)
07:01
Merge trunk with this branch. (check-in: a13df301 user: dan tags: defrag-opt)
2014-10-25
20:36
Further modifications to new code to better handle corrupt databases. (check-in: 1a8cf0a0 user: dan tags: defrag-opt)
13:42
Increase the resolution of the second parameter to the likelihood() SQL function (the probability value) so that it can handle probabilities as small as 0.00000001. Formerly, it ran out of precision at 0.001. (check-in: 0f08924f user: drh tags: trunk)
12:28
Do not use virtual (and hence redundant) WHERE-clause terms to restrict the content of a automatic partial index. Show when an automatic partial index is used in the EXPLAIN QUERY PLAN output. (check-in: b9ad601e user: drh tags: trunk)
2014-10-24
20:57
Ensure that the "Any prior cache entry associated with newKey is guaranteed not to be pinned" guarantee made to xRekey implementations is not violated. (check-in: ecc3544e user: dan tags: defrag-opt)
19:28
Enhance the automatic index logic so that it creates a partial index when doing so gives the same answer for less work. UPDATE: This change introduced a bug described by ticket [2326c258d02ead33]. (check-in: d95d0313 user: drh tags: trunk)
18:43
Fix some issues in the new code on this branch related to the handling of corrupt databases. (check-in: 19736dd9 user: dan tags: defrag-opt)
16:40
Fix some minor formatting and code organization issues. (check-in: eab8706d user: dan tags: defrag-opt)
15:26
Honor a high likelihood() on range constraints. (check-in: 401235ed user: drh tags: trunk)
14:32
Get the likelihood() functions working on operators like BETWEEN that create virtual terms in the WHERE-clause analysis. (check-in: 03d0498d user: drh tags: trunk)
12:37
Fix two problems. Tests now passing. (Closed-Leaf check-in: 1c220b80 user: drh tags: api-armor)
00:35
Add the SQLITE_ENABLE_API_ARMOR compile-time option. This is a work in progress and is not yet completely functional. (check-in: c297a84b user: drh tags: api-armor)
2014-10-23
17:26
Add debugging code to count the number of iterations of each loop made as part of statement execution. (Leaf check-in: c6a5b67a user: dan tags: debug-loopcounters)
01:01
Implement sqlite3_create_collation() by invoking sqlite3_create_collation_v2() with a NULL destructor argument. This saves a little space. (check-in: 9762ad06 user: drh tags: trunk)
2014-10-22
20:07
Disable the use of strchrnul() unless specifically enabled by compile-time options. (check-in: e580470d user: drh tags: trunk)
19:57
Change the 0x800 bit of SQLITE_TESTCTRL_OPTIMIZATIONS so that it disables the loading of STAT3 and STAT4 content, not just the using of that content. Change the internal name of that bit to SQLITE_Stat34. (check-in: ca3b00c4 user: drh tags: trunk)
18:42
Merge latest trunk with this branch. (check-in: 854a54c6 user: dan tags: defrag-opt)
16:25
The _beginthreadex() / _endthreadex() functions should only be used when compiling with MSVC. (Closed-Leaf check-in: 1a5a5da3 user: mistachkin tags: msvcThreads)
15:33
Add tests to check error handling in OTA. (check-in: ec7321ae user: dan tags: ota-update)
15:27
Take steps to avoid misestimating range query costs based on STAT4 data due to the roundoff error of converting from integers to LogEst and back to integers. (check-in: 3c933bf9 user: drh tags: trunk)
14:22
Version 3.8.6.1 (check-in: 1581c30c user: drh tags: release, version-3.8.6.1, branch-3.8.6)
11:30
Sync the database file in sqlite3_ckpt_close(), even if the checkpoint has not finished. (check-in: e2729d62 user: dan tags: ota-update)
03:00
Update the version number to 3.8.6.1 (check-in: cad7f8d6 user: drh tags: branch-3.8.6)
02:43
Call fsync() right after ftruncate() when in journal_mode=TRUNCATE and when synchronous=FULL in order to ensure that transactions are durable across a power loss that happens moments after the commit. Proposed fix for https://bugzilla.mozilla.org/show_bug.cgi?id=1072773. This is a cherry-pick of [3e922208b68563] (check-in: 67484807 user: drh tags: branch-3.8.6)
2014-10-21
21:56
Call fsync() right after ftruncate() when in journal_mode=TRUNCATE and when synchronous=FULL in order to ensure that transactions are durable across a power loss that happens moments after the commit. Proposed fix for https://bugzilla.mozilla.org/show_bug.cgi?id=1072773. (check-in: 3e922208 user: drh tags: trunk)
19:35
Test that sqlite3ota_open() works with URI paths. Fix some other issues. (check-in: 6fd09854 user: dan tags: ota-update)
18:16
Further tuning of the cost estimates for skip-scan loops, especially for cases when skip-scan loops are in competition with regular loops. (check-in: a27861c2 user: drh tags: trunk)
18:09
Add tests for another application writing the database while an ota update is ongoing. (check-in: 2402baa0 user: dan tags: ota-update)
16:01
Add WHERETRACE debugging output to the whereLoopAdjustCost() routine. (check-in: ec1e942f user: drh tags: trunk)
01:05
If a skip-scan is a proper subset of some other scan, then adjust the cost of the skip-scan upward so that it is more costly than the other scan. Such a cost imbalance can arise under STAT4 because of difficulties in getting an accurate estimate for skip-scans. (check-in: f4b22a26 user: drh tags: trunk)
2014-10-20
16:34
Merge version-3.8.7 changes with this branch. (check-in: d380a648 user: dan tags: ota-update)
16:24
Have the ota extension perform an incremental checkpoint after generating the wal file. (check-in: 0bf1301a user: dan tags: ota-update)
2014-10-17
21:35
Fix a (probably harmless) bug in the CSV output mode of the command-line shell. (check-in: 19fe4a0a user: drh tags: trunk)
12:11
Merge the 3.8.7 changes into the apple-osx branch. (check-in: aa7bbed1 user: drh tags: apple-osx)
11:53
Merge all version 3.8.7 updates from trunk. (check-in: f4de9e07 user: drh tags: sessions)
11:24
Version 3.8.7 (check-in: e4ab094f user: drh tags: trunk, release, version-3.8.7)
2014-10-16
21:39
Work around MSVC not being able to deduce that a local variable was initialized in a called function. (check-in: 06c576c1 user: mistachkin tags: trunk)
18:34
Changes to work around Win32 and MSVCRT APIs that are not present on Windows CE 200x. (check-in: 1418c006 user: mistachkin tags: trunk)
11:45
Update the vdbe-compress.tcl script to account for expressions of the form (123>var), where "var" should be replaced with a reference to a union member. (check-in: 640345d8 user: dan tags: trunk)
2014-10-15
20:02
Fix a problem causing sqlite3changeset_concat() to fail to detect attempts to concatenate patchsets which changesets. (check-in: 236704a9 user: dan tags: sessions)
19:37
Merge latest trunk changes with this branch. (check-in: 1b2824f1 user: dan tags: sessions)
15:28
Update releasetest.tcl so that x86-64 runs a superset of the x86 tests. (check-in: 3c1e70f4 user: dan tags: trunk)
14:45
Fix a problem causing lock5.test to fail in mmap-mode. (check-in: b3e7b446 user: dan tags: trunk)
11:55
Add a four-byte prefix to the BtShared.pTmpSpace buffer to avoid reading before the beginning of an allocation. (check-in: 9386bfca user: drh tags: trunk)
11:31
Rearrange an expression in vdbemem.c to avoid a (harmless) reference to a possibly unitialized variable. (check-in: 4a7b3fa0 user: dan tags: trunk)
2014-10-14
20:25
Make sure new sqlite3_vtab objects created by the xCreate() virtual table method are initialized by the system, in accordance with the documentation. (check-in: eab82330 user: drh tags: trunk)
17:27
Fix some code duplication issues on this branch. Add minor optimizations to the new code. (check-in: 58d7793b user: dan tags: defrag-opt)
14:17
Merge from trunk recent micro-optimizations and the fix for the DESC index GROUP BY ORDER BY bug. (check-in: 880df756 user: drh tags: apple-osx)
13:41
Merge recent trunk micro-optimizations and the DESC index GROUP BY ORDER BY bug fix into the sessions branch. (check-in: 83d4114f user: drh tags: sessions)
2014-10-13
23:39
Optimize a database corruption test inside of the OP_Column opcode. (check-in: 005e5b38 user: drh tags: trunk)
20:12
Use the padding word in the Mem object as temporary storage for serial_type value in OP_Record, and thus avoid a redundant computation of the serial_type for each column. (check-in: 4b3b65ee user: drh tags: trunk)
18:09
Merge trunk changes into this branch. (check-in: d5b7c5a8 user: dan tags: defrag-opt)
18:03
Further work on balance_nonroot(). (check-in: 6594f9b4 user: dan tags: defrag-opt)
17:42
Three small optimizations to vdbeaux.c. (check-in: 04892f8b user: drh tags: trunk)
16:02
Reduce the CPU load imposed by sqlit3VdbeCursorMoveto() by factoring out some of its functions and by avoiding unnecessary calls. (check-in: c2799aec user: drh tags: trunk)
13:00
Remove the OPFLAG_CLEARCACHE flag from OP_Column. In its place, change the P3 parameter of OP_SorterData to be the index of the pseudo-table cursor whose record header cache is to be cleared. This gives a small size reduction and performance increase. (check-in: 20062f49 user: drh tags: trunk)
12:30
Use OP_SorterColumns in aggregate queries. Remove OPFLAG_CLEARCACHE. (Closed-Leaf check-in: 134e65c0 user: drh tags: OP_SorterColumns)
01:23
Add the OP_SorterColumns opcode - an experiment in using a special case opcode to decode the Sorter output rather than the generic OP_Column. This might be faster. And with further work, it could eventually eliminate the need for OP_OpenPseudo. (check-in: b9c695e8 user: drh tags: OP_SorterColumns)
2014-10-12
22:37
Remove the VdbeCursor.lastRowid cache of the current rowid, since maintaining the correct cache value uses more CPU cycles than just recomputing the rowid on the occasions when it is actually needed. Replace it with the VdbeCursor.aOffset field which used to be computed from VdbeCursor.aType when needed. Saves 100 bytes of code space and runs 0.2% faster. (check-in: 91384a7d user: drh tags: trunk)
2014-10-11
23:31
Performance optimization and very slight size reduction for OP_Column. (check-in: 869c30e4 user: drh tags: trunk)
20:00
Attempt to further reduce memcpy() in balance_nonroot(). (check-in: fec849dc user: dan tags: defrag-opt)
17:22
Simplification to the insertCell() routine in btree.c, resulting in a performance boost and a very small size decrease. It turns out that the extra work involved in sometimes avoiding an memcpy() of the first four bytes of a record takes more time than just unconditionally copying those four bytes. (check-in: 66de1558 user: drh tags: trunk)
10:52
Require the SQLITE_ENABLE_RTREE compile-time option in speedtest1.c in order to enable the R-Tree tests. (check-in: 5d29a033 user: drh tags: trunk)
02:12
Make sure that a GROUP BY that also implements an ORDER BY scans the table in the correct order. Fix for ticket [ba7cbfaedc7e6]. (check-in: 7a32fdfd user: drh tags: trunk)
01:22
Remove an unnecessary conditional from the EXPLAIN QUERY PLAN logic. (check-in: c5dc83eb user: drh tags: trunk)
2014-10-10
20:52
Account for the ASC/DESC properties of ORDER BY expressions when using the same index for GROUP BY and ORDER BY. Candidate fix for [ba7cbfaedc]. (Closed-Leaf check-in: 2a957396 user: dan tags: experimental)
19:15
Restrict the scope of the explainIndexRange() function in where.c. (check-in: c3012452 user: drh tags: trunk)
19:10
Fix a failing test case in index5.test. Also tweak the way cache memory is divided between read-only and dirty pages when using SQLITE_CONFIG_PAGECACHE to reduce IO in some cases. (check-in: 8541dfb3 user: dan tags: trunk)
18:09
Changes to enable compiling using VC6. (check-in: 9ee5686a user: drh tags: trunk)
17:47
When using the -config option to releasetest.tcl, default the testing type to "fulltest" if it is not specified on the command line. (check-in: cf291cbe user: drh tags: trunk)
17:44
Provide the new "-config CONFIG" option to the test/releasetest.tcl script, which allows one to run a single test configuration selected by name. (check-in: d479e32b user: drh tags: trunk)
17:20
Add the estimated number of output rows to the EXPLAIN QUERY PLAN output if compiled with SQLITE_EXPLAIN_ESTIMATED_ROWS. This feature is off by default for the time being. (check-in: daa8314f user: drh tags: trunk)
15:47
Simplify the code used to generate the text for EXPLAIN QUERY PLAN. (check-in: beea1efc user: drh tags: trunk)
15:01
Fix a potential problem in the whereRangeScanEst() routine when STAT4 is active. The problem was introduced by recent enhancements. (check-in: 68e1b4de user: drh tags: trunk)
13:08
Cause the command-line shell to return non-zero if the final SQL statement is incomplete. (check-in: 177fff3b user: drh tags: trunk)
12:56
Merge all recent trunk changes. (check-in: abfef254 user: drh tags: sessions)
2014-10-09
19:35
Change the balance_nonroot() routine to reduce the amount of memcpy work that takes place. This is a work in progress. (check-in: 29304499 user: dan tags: defrag-opt)
15:08
Allow FTS tokenizers to choose whether or not to consider the "*" character part of tokens or not. This restores the pre-[e21bf7a2ad] behaviour. Also fix a problem causing FTS to interpret tokens beginning with "*" characters as EOF. (check-in: 49dfee7c user: dan tags: trunk)
14:10
Add a test case for the memory leak fixed by the previous check-in. (check-in: bae36d54 user: drh tags: trunk)
14:00
Fix a memory leak associated with the FTS4 matchinfo() function. (check-in: fb8da824 user: drh tags: trunk)
11:40
Record the errno on fstat() failures. (check-in: 2a6a0820 user: drh tags: apple-osx)
11:27
Merge the latest trunk enhancements into the apple-osx branch. (check-in: 6fc72077 user: drh tags: apple-osx)
2014-10-08
19:33
Remove an always-true branch in whereRangeScanEst(). Replace it with an assert(). (check-in: 42e48fd3 user: drh tags: trunk)
15:53
Fix up test cases to account for the new SQLITE_LIMIT_WORKER_THREADS limit. (check-in: 6483d426 user: drh tags: trunk)
14:28
Set the connection-specific lastRowid value before calling any SQL function. (check-in: dff0f642 user: drh tags: trunk)
13:34
Ensure that the Pager.pTmpSpace allocation is correct even if an OOM error occurs while reducing the page size. (check-in: e4b43967 user: drh tags: trunk)
11:11
Remove some temporary code in mallocA.test that was accidentally checked in. (check-in: dedd15f7 user: dan tags: trunk)
02:53
Fix the STAT4 range scan estimates for DESC indexes. (check-in: e3fe8400 user: drh tags: trunk)
00:08
More intuitive labels on ".wheretrace" output. (check-in: adcb3fed user: drh tags: trunk)
2014-10-07
23:02
Make sure the sqlite3VdbeMemClearAndResize() routine is never called with a zero size parameter, since a size of zero could lead to either a memory leak or an assertion fault. (check-in: f672a380 user: drh tags: trunk)
20:09
Fix the corruptI.test script so that it works with SQLITE_ENABLE_OVERSIZE_CELL_CHECK and with SQLITE_DEFAULT_AUTOVACUUM=1. (check-in: e405b9e4 user: drh tags: trunk)
16:59
Restrict the scope of the valueToText() routine. (check-in: 13c962b3 user: drh tags: trunk)
15:46
Enhance (and fix) the MEMTYPE tags associated with heap memory allocations when SQLITE_MEMDEBUG is used. (check-in: ca5b789e user: drh tags: trunk)
2014-10-06
18:33
Remove unreachable branches in decodeIntArray() when compiling without STAT3 or STAT4. (check-in: 80e1baa5 user: drh tags: trunk)
14:37
Improve the accuracy of the estimates used when searching an index for values not present in any stat4 samples. (check-in: 3aff9a9c user: dan tags: trunk)
12:41
Fix a harmless compiler warning inside an assert() in FTS4. (check-in: 418f3c9a user: drh tags: trunk)
2014-10-04
19:31
Tweaks to documentation on sqlite3_open() and sqlite3_bind(). No code changes. (check-in: b8f7f19d user: drh tags: trunk)
11:59
Updates to documentation and requirements marks. No code changes. (check-in: 0f8102d7 user: drh tags: trunk)
10:22
Add a test to show that the change on this branch is effective. (Closed-Leaf check-in: fc619be0 user: dan tags: stat4-avgeq)
00:07
Avoid leaking Index.aiRowEst memory if an OOM causes a rollback which deletes the index before the aiRowEst deletion code in sqlite3AnalysisLoad() routine has a chance to run. Since the aiRowEst now might be deleted from freeIndex() which does not always have a db pointer, make sure the aiRowEst memory is not held in lookaside. (check-in: efd87ba1 user: drh tags: stat4-avgeq)
2014-10-03
19:29
Fix a division-by-zero error that might occur if the sqlite_stat1 table is corrupt. (check-in: f9c053b2 user: dan tags: stat4-avgeq)
19:16
Improve the accuracy of the estimates used when searching an index for values not present in any stat4 samples under some circumstances. (check-in: e6f7f97d user: dan tags: stat4-avgeq)
16:00
Add requirements marks on the sqlite3_db_status() interface implementation. Fix a typo in the documentation. Fix the new sqlite3_result_text64() routine so that it works correctly with an encoding parameter of SQLITE_UTF16. (check-in: d2fc3227 user: drh tags: trunk)
14:54
Update to requirements marks related to changes in the memory allocation interface and enhancement of the documentation regarding DEFAULT clauses in CREATE TABLE. (check-in: 440705b9 user: drh tags: trunk)
2014-10-02
21:52
Avoid a NULL pointer deference when processing the IS operator if the right-hand side is an illegal "#ID" style variable. Fix for ticket [8c32a33a53092c85a15b] (check-in: ffe75736 user: drh tags: trunk)
2014-10-01
13:17
Show the TK_DOT operator in the TreeView debugging output. No changes to production code. (check-in: 07c89940 user: drh tags: trunk)
12:01
Avoid ever writing before the start of an allocated buffer in the DIRECT_OVERFLOW_READ code. Fix for [e3a290961a6]. (check-in: c3c15d20 user: dan tags: trunk)
01:52
Merge the latest enhancements from trunk. (check-in: 2695772c user: drh tags: sessions)
01:46
Merge the latest enhancements from trunk. (check-in: 2078454a user: drh tags: apple-osx)
2014-09-30
21:24
Draw the TreeView debugging graphs using unicode box-drawing characters. (Closed-Leaf check-in: 0efc6859 user: drh tags: box-character-graph)
19:04
Improvements to the new syntax-tree output routines: Omit the "END SELECT" mark and instead terminate the graph at the last item. Increase the maximum tree depth to 100. (check-in: 5ce05757 user: drh tags: trunk)
17:31
Enable the query planner to deal with WHERE clauses that have OR terms nested within AND terms that are nested within OR terms. Also remove an unused function declaration. (check-in: b6b28918 user: drh tags: trunk)
17:03
Further enhancements to the "wheretrace" debugging output. (check-in: 670993eb user: drh tags: trunk)
14:14
Enhanced debug output for OR-logic in the query loop optimizer. (check-in: 2e375eae user: drh tags: trunk)
13:46
Show tree diagrams of data structures in the debugging output when the 0x100 bit is set on sqlite3WhereTrace or sqlite3SelectTrace. (check-in: 92e0b4bd user: drh tags: trunk)
12:33
Remove the SQLITE_ENABLE_TREE_EXPLAIN compile-time option. Add alternative debugging display routines: sqlite3TreeViewExpr(), sqlite3TreeViewExprList(), and sqlite3TreeViewSelect(). (check-in: 4ff51325 user: drh tags: trunk)
2014-09-29
18:47
Add the OPFLAG_MULTICOLUMN flag to the OP_Column opcode. Rearrange OP_Column instructions to take advantage of the new flag for a small performance increase (Leaf check-in: 5e5d6e86 user: drh tags: faster-OP_Column)
15:42
Fix the header comment in sqlite3VdbeDeletePriorOpcode(). No changes to code. (check-in: 7fb16268 user: drh tags: trunk)
15:00
Ensure that the OP_Prev opcode verifies that content has not been deleted out from under the cursor. Fix for ticket [209d31e3161b9e9ff]. (check-in: 414f0d6a user: drh tags: trunk)
2014-09-27
20:45
Change the names of the stream interface APIs to be of the form "_strm" instead of "_str". In other words, added an "m" to the end, to try to make it clear that we are talking about a "stream" and not a "string. (check-in: 1f44bfdc user: drh tags: sessions)
19:51
Merge recent trunk changes (performance enhancements) into the sessions branch. (check-in: 497367cb user: drh tags: sessions)
18:18
Fix a segfault in the sessions module that could follow an OOM. (check-in: 09985fa6 user: dan tags: sessions)
16:33
Fix a segfault in the streaming API functions triggered by a very long table name. (check-in: d2642543 user: dan tags: sessions)
12:26
Improve sessions module documentation and comments. Fix some other code issues. (check-in: bfc8bd80 user: dan tags: sessions)
05:00
Reduce the amount of memcpy() required by defragmentPage(). (check-in: 3edab995 user: drh tags: defrag-opt)
2014-09-26
18:30
Add an assert() to verify the last-row-id for the database just prior to calling a SQL function. (check-in: d026f0c9 user: mistachkin tags: trunk)
10:52
Fix a problem with concatenating patchsets containing DELETE and INSERT operations on the same row. (check-in: 4d8537ea user: dan tags: sessions)
02:41
Fix the "PRAGMA integrity_check" command so that it avoids formatting error message context messages until it actually needs to generate an error message. This avoids much formatting, and hence greatly improves the performance of "PRAGMA integrity_check" in the common case when there are no errors. It also makes the code a little smaller. (check-in: 83913515 user: drh tags: trunk)
01:10
If an SQL function makes a recursive call to do an INSERT into the same database, make sure that the last_insert_rowid() for that INSERT is recorded. (check-in: e93aecc0 user: drh tags: trunk)
2014-09-25
20:43
Add streaming version of sqlite3changeset_concat(). (check-in: 88eb6656 user: dan tags: sessions)
17:42
Minor code reformatting and comment change, to improve clarity. No logic changes. (check-in: baeb72a3 user: drh tags: trunk)
14:54
Add streaming version of sqlite3changeset_invert() to sessions module. (check-in: 8ded6a46 user: dan tags: sessions)
13:17
Simplifications to the SQL function and aggregate calling procedures. (check-in: 3467049a user: drh tags: trunk)
12:31
Simplification to the random rowid picking logic that begins running when the maximum possible rowid has already been used. (check-in: 1330c72e user: drh tags: trunk)
11:08
Still more performance enhancements to the LIKE and GLOB operators. (check-in: 6c8924ca user: drh tags: trunk)
03:51
More performance optimization for the LIKE and GLOB operators. (check-in: 5ab1023d user: drh tags: trunk)
02:44
Change that might allow SQLite to build and work using the EBCDIC character set. (check-in: ef30e035 user: drh tags: trunk)
00:56
Size reduction and performance improvement in the LIKE and GLOB operators. (check-in: b2c89ef4 user: drh tags: trunk)
2014-09-24
19:47
Have each open database allocate its pTmpSpace when the first write cursor is opened, rather than on each insert or delete, for a small space savings and performance boost. (check-in: 99323552 user: drh tags: trunk)
18:31
Small performance and size optimization for btreeUnlockIfUnused(). (check-in: 13c746f8 user: drh tags: trunk)
17:13
Add streaming version of sqlite3changeset_apply(). Tests and fixes for the same and sqlite3changeset_start_str(). (check-in: b917fc14 user: dan tags: sessions)
13:20
Do not allow parameters in a DEFAULT clause of a CREATE TABLE statement. Ticket [78c0c8c3c9f7c1]. (check-in: 1ad2bc1e user: drh tags: trunk)
04:38
Experiment using linear interpolation, instead of a strict binary search, when looking for integer-keyed rows on a single b-tree page. The experiment was not successful. The number of key comparisons is reduced by about 15%, but the added complexity of the search logic causes an overall reduction in performance. The patch is saved for historical reference only. (Closed-Leaf check-in: c705cf85 user: drh tags: linear-interpolation)
02:05
Have the clearCell() routine return the cell size to the caller, rather than have the caller make a separate call to cellSizePtr(). (check-in: f21d2175 user: drh tags: trunk)
01:23
Shorten all lines of source code in btree.c to at most 80 characters. No logical changes. (check-in: 5dd41cdb user: drh tags: trunk)
00:59
Add the MemPage.noPayload boolean and use it to help cellSizePtr() and btreeParseCellPtr() run faster. (check-in: 8e337531 user: drh tags: trunk)
2014-09-23
23:12
Remove an unused C-preprocessor macro. No functional changes to the code. (check-in: f480582c user: drh tags: trunk)
22:36
Avoid calling btreeParseCellPtr() from within fillInCell() since most of what btreeParseCellPtr() computes is ignored by fillInCell(). Instead, have fillInCell() compute the values it needs inline. Performance improvement. (check-in: 4147f667 user: drh tags: trunk)
21:25
Simplify the CellInfo structure for a size reduction and performance improvement. (check-in: bf59df66 user: drh tags: trunk)
20:39
Begin adding 'streaming' APIs to sessions module. This is a work in progress. (check-in: 3c7d3d95 user: dan tags: sessions)
18:30
Add the "multiplex_truncate" PRAGMA to the multiplexor extension, for querying and setting the truncate flag on a database connection. (check-in: d2962a5f user: drh tags: trunk)
01:40
Adjust skip-scan cost estimates slightly so that a full table scan is preferred over a skip-scan to a column with only two distinct values. (check-in: ae9a42b2 user: drh tags: trunk)
2014-09-22
20:38
Fix to payload size overflow detection in the cellSizePtr() change of the previous check-in. (check-in: 76097440 user: drh tags: trunk)
19:51
Size reduction and substantial performance increase for cellSizePtr(). (check-in: bc8bbf32 user: drh tags: trunk)
14:30
Tune the query planner to be more aggressive about using automatic indexes on views and subqueries for which there is not opportunity to declare a persistent schema index. (check-in: 41de1643 user: drh tags: trunk)
03:22
Disable shared memory operations using the unix-nolock VFS. (check-in: 10a6e510 user: drh tags: trunk)
2014-09-21
23:08
Merge in all recent changes from trunk. (check-in: 3967ebe8 user: drh tags: apple-osx)
22:49
Merge all recent trunk changes into the sessions branch. (check-in: 6406b77f user: drh tags: sessions)
22:31
Correctly handle an ORDER BY clause on an outer query when applying the compound-subquery flattening optimization. Ticket [d11a6e908f]. Also add the SQLITE_ENABLE_SELECTTRACE option for additional debugging and analysis information about select statement processing. (check-in: d5880abd user: drh tags: trunk)
20:31
Add test cases for ticket [d11a6e908f]. (Closed-Leaf check-in: 9683e001 user: drh tags: select-trace)
17:51
Add the "showauth" extension in ext/misc. (check-in: 28d52c1c user: drh tags: select-trace)
00:27
Improved ".selecttrace" output. (check-in: c0b61f70 user: drh tags: select-trace)
2014-09-20
20:38
Candidate fix for [d11a6e908f]. (check-in: 89398880 user: dan tags: select-trace)
20:24
Fix the SELECTTRACE_ENABLE macro so that it doesn't cause problems for testfixture. Add new SELECTTRACE() calls. (check-in: f1ba68f1 user: drh tags: select-trace)
18:18
Enable SELECT query planning tracing when compiled with SQLITE_ENABLE_SELECTTRACE and either SQLITE_DEBUG or SQLITE_TEST. (check-in: cbe0cf9d user: drh tags: select-trace)
00:35
Fix the usage of the _GNU_SOURCE and _BSD_SOURCE macros in the main internal header file, sqliteInt.h. Set HAVE_STRCHRNUL to 1 by default on Linux only. (check-in: 59e2c9df user: drh tags: trunk)
00:29
Only enable HAVE_STRCHRNUL by default on linux, as that is the only place it appears to work by default. (Closed-Leaf check-in: 0fac2c04 user: drh tags: sqliteIntMacros)
00:02
Revise macro usage in 'sqliteInt.h'. (check-in: 35db3e2f user: mistachkin tags: sqliteIntMacros)
2014-09-19
22:44
Simplify two conditionals and add testcase() macros to the affinity transform logic in the comparison operators. (check-in: 544664ca user: drh tags: trunk)
22:30
Recognize the invariant that a Mem object cannot be MEM_Dyn and have a non-zero szMalloc at the same time. Enforce this with assert()s and exploit it in the sqlite3VdbeMemClearAndResize() routine for a performance increase. (check-in: 3b21cf2b user: drh tags: trunk)
22:01
Tighten the conditions under which applyNumericAffinity() be called and add assert() statements to prove that it is never called otherwise. (check-in: e996ca32 user: drh tags: trunk)
20:13
Fix the affinity on inserts into the ANALYZE tables. Change the affinity characters to be upper case, to make the P5 parameter of comparison operators easier to read. (check-in: 3f3ca76a user: drh tags: trunk)
19:43
Do not attempt to extend the temp file if VFS version 3 is not supported and hence memory mapped I/O is unavailable. (check-in: 3ab20ba1 user: drh tags: trunk)
19:00
Make the "nolock" VFS on unix a version-3 VFS so that the sorter can use memory-mapped I/O. (check-in: 3db78d61 user: drh tags: trunk)
18:08
Add further tests to ota5.test. Add "ota.test", for running all ota tests. (check-in: 95ffdaa5 user: dan tags: ota-update)
16:56
Remove a local variable from the OP_Column implementation, resulting in a modest size reduction and a performance increase. (check-in: 6199760d user: drh tags: trunk)
16:13
Small size reduction and performance increase for releaseMemArray(). (check-in: 24cd32d6 user: drh tags: trunk)
16:02
Updates to comments. No code changes. (check-in: 9b42c3da user: drh tags: trunk)
15:28
The OP_Column opcode runs faster and is smaller by manually in-lining the code that persists string values in the output register. (check-in: 36b613cc user: drh tags: trunk)
15:06
Add extra tests for the ota extension. (check-in: 1e468fe1 user: dan tags: ota-update)
04:42
Add the sqlite3VdbeMemClearAndResize() function. Fix a sorting-index prefilter problem. (check-in: 987a7a21 user: drh tags: trunk)
02:01
Make sure that the sorting-index pre-filter recognizes that a rowid reference might be sortable. This fixes a performance regression. (Closed-Leaf check-in: 72727b68 user: drh tags: Cplusplus-comment)
00:43
Add the sqlite3VdbeMemClearAndResize() interface to be used in place of sqlite3VdbeMemGrow(). A C++ style comment was left in this check-in by mistake, and so it has been moved into a branch to avoid problems in any future bisects on windows. (check-in: 5b9b8987 user: drh tags: Cplusplus-comment)
2014-09-18
21:25
Add the Mem.szMalloc element to the Mem object and use it to keep track of the size of the Mem.zMalloc allocation. (check-in: 9c09ac35 user: drh tags: trunk)
18:55
Correct typos in comments. No changes to code. (check-in: 55879932 user: mistachkin tags: trunk)
17:57
Update the ota extension to support SQLITE_ENABLE_8_3_NAMES builds. (check-in: 718da6de user: dan tags: ota-update)
17:52
Merge the Mem.r value into the MemValue union as Mem.u.r. Hence, a Mem can now store an integer or a real but not both at the same time. Strings are still stored in a separate element Mem.z, for now. (check-in: 4c8c89d7 user: drh tags: trunk)
16:38
Use quotes instead of angle-brackets to include sqlite3.h from sqlite3ota.h. (check-in: fce9c6cc user: dan tags: ota-update)
16:28
Performance improvement for affinity transformations on comparison operators. (check-in: d7afdcba user: drh tags: trunk)
15:57
Remove some c++isms from sqlite3ota.c. (check-in: 0da1862b user: dan tags: ota-update)
15:22
Add new file ext/ota/README.txt, containing notes regarding the implementation of the ota extension. (check-in: 3c6e1cbb user: dan tags: ota-update)
14:48
Add an API to query an ota handle for the total number of key/value operations performed so far. (check-in: e3943fa7 user: dan tags: ota-update)
14:36
Since numeric affinity is the most common case, check it first. Interchange the NONE and TEXT affinity codes for easier checking of no affinity. (check-in: 4ef4c9a7 user: drh tags: trunk)
11:31
Merge latest trunk changes with this branch. (check-in: 67ea2979 user: dan tags: ota-update)
11:15
Fix an ota bug causing attempts to write to tables with more than 8 columns to fail. (check-in: 7da98ca2 user: dan tags: ota-update)
09:59
Modify an assert() within sqlite3PagerWalFramesize(), a function only ever used by zipvfs, to account for recent zipvfs changes. (check-in: 3bd7c1b2 user: dan tags: trunk)
02:20
Fix harmless warnings on 32-bit MSVC builds. (check-in: 5192f964 user: drh tags: trunk)
01:50
Make sure of the strchrnul() library function on platforms where it is available. (check-in: ef1aa10b user: drh tags: trunk)
01:29
Merge micro-optimizations into trunk after fixing the build on MSVC. Performance now shows 7.58% faster than the 3.8.6 release on x64 with gcc 4.8.1 and -Os. (check-in: 1de558bc user: drh tags: trunk)
01:21
Fix compiler warnings and change the nullMem structure initializer into a format that MSVC can understand. (Closed-Leaf check-in: 163bfae8 user: drh tags: micro-optimizations)
2014-09-17
23:37
Performance improvement and slight size reduction to the comparison operators in the VDBE. (check-in: 14052a7d user: drh tags: micro-optimizations)
19:05
Fix an unintialized variable problem in sqlite3ota.c. (check-in: 01268607 user: dan tags: ota-update)
16:41
In the Mem object, stop requiring that Mem.xDel be NULL when the MEM_Dyn bit is clear. Also reduce the amount of initialization of Mem objects. All for a small size reduction and performance increase. (check-in: fdddb477 user: drh tags: micro-optimizations)
15:20
Add tests and fixes for "PRAGMA ota_mode". (check-in: 39df35c4 user: dan tags: ota-update)
14:52
Improved interface to the Mem object handling. Small size reduction and performance increase. (check-in: 4e437844 user: drh tags: micro-optimizations)
2014-09-16
21:54
Continuing cleanup of memory register memory allocation handling. (check-in: 2598aedc user: drh tags: micro-optimizations)
20:05
Make sure registers are cleared properly prior to being used to store the result of an OP_Column operator. (check-in: 78fb8838 user: drh tags: micro-optimizations)
20:02
Clarify the effects of the pager_ota_mode pragma. Add tests and fixes for the same. (check-in: decaccc3 user: dan tags: ota-update)
18:22
Simplification of the OP_Column logic for the case of rows with overflow. (check-in: f7367803 user: drh tags: micro-optimizations)
14:55
Remove an unused parameter from sqlite3VdbeIdxRowid(). This is cosmetic only as the C-compiler optimizers were already omitting this parameter on amalgamation builds. (check-in: a10a6bba user: drh tags: micro-optimizations)
14:37
Reduce the number of arguments to RecordCompare functions from 4 to 3, resulting in a small performance increase. (check-in: 8239c35a user: drh tags: micro-optimizations)
14:16
Reorder the elements of the Mem object for a small size reduction and performance improvement. Moved into a branch because MSVC is unable to handle named structure initializer on nullMem. (check-in: 0be3019e user: drh tags: micro-optimizations)
13:30
Changes to sqlite3VdbeRecordUnpack() to make it slightly smaller and faster. (check-in: 8fb90da7 user: drh tags: trunk)
03:24
Performance improvement to the sqlite3MemCompare() routine by factoring out sqlite3BlobCompare(). (check-in: 20ed2321 user: drh tags: trunk)
2014-09-15
19:34
Remove the experimental sqlite3_transaction_save() and restore() APIs. (check-in: 48d201cd user: dan tags: ota-update)
16:57
Merge latest trunk fixes into this branch. (check-in: 5efafef5 user: dan tags: ota-update)
16:53
Fix tool/showwal.c so that it handles WAL files that contain 64KiB pages. (check-in: 4060efb6 user: dan tags: trunk)
16:50
Avoid attempting to call the xFetch() method of an sqlite3_io_methods object with a version number less than 3. (check-in: dedaa6fb user: dan tags: trunk)
15:34
Merge latest trunk changes with this branch. (check-in: 55b8011d user: dan tags: ota-update)
15:22
Have sqlite3ota.c use grave accents instead of double-quotes to enclose identifiers in generated SQL. To avoid having the SQL engine substitute a literal string if a column reference cannot be resolved. (check-in: 79f24184 user: dan tags: ota-update)
14:59
Remove the EXPENSIVE_ASSERTS in pcache.c having to do with the pSynced field of the Pcache object, as they are incorrect, as revealed by recent pcache enhancements. (check-in: 69a64560 user: drh tags: trunk)
14:54
Ensure the correct collation sequences are used when sorting data in sqlite3ota.c. (check-in: 473a72d7 user: dan tags: ota-update)
14:46
Do not flatten aggregate subqueries that contain min() or max() functions so that if the min()/max() are discarded by the outer query, they still function and cause non-aggregate expression to be evaluated on the minimal or maximal row. (check-in: 0bdf1a08 user: drh tags: trunk)
12:18
Have the sqlite3_index_writer() VMs check that the final values of records inserted into indexes on rowid tables are integers. (check-in: cca376bf user: dan tags: ota-update)
11:14
Adjust comments to show that subquery flattening restriction (10) was removed from the code back in 2005. This is a comment change only. (check-in: 4ff0eb96 user: drh tags: trunk)
10:44
Add OP_Affinity opcodes to the VMs generated by sqlite3_index_writer(). (check-in: b9b38cb8 user: dan tags: ota-update)
2014-09-12
20:30
Small performance improvement to the dirty list handling in the pager. (check-in: b332a84d user: drh tags: trunk)
17:41
Simplify the way the column cache is managed around OP_Move instructions. (check-in: 32055623 user: drh tags: trunk)
04:28
Fix a problem with parser memory allocation on 32-bit systems. (check-in: 2f69a1fa user: drh tags: trunk)
2014-09-11
23:34
Fix an issue with sqlite3_bind_text64() with the SQLITE_UTF16 encoding parameter. Remove some unreachable code from the text64() and blob64() implementation. (check-in: 34292b08 user: drh tags: trunk)
18:44
Add new APIs that take 64-bit length parameters: sqlite3_malloc64(), sqlite3_realloc64(), sqlite3_bind_blob64(), sqlite3_bind_text64(), sqlite3_result_blob64(), and sqlite3_result_text64(). Add the sqlite3_msize() interface. Internal memory allocation routines now use 64-bit unsigned length parameters for safety. Fix the sqlite3_get_table() to use sqlite3_realloc64() to avoid a integer overflow problem. (check-in: 7e4978c0 user: drh tags: trunk)
17:27
Add the SQLITE_USER_AUTHENTICATION extension to the trunk. This extension is disabled by default. Special compilation procedures are need to enable it. (check-in: 65884d4f user: drh tags: trunk)
17:14
Clean up some #includes in the extension API implementation. (Closed-Leaf check-in: b149ef5c user: drh tags: user-auth)
16:36
Suppress the potential schema error that occurs when a non-user-auth SQLite library tries to parse the sqlite_user table definition in a user-auth database. (check-in: cda33c1e user: drh tags: user-auth)
16:19
Enhance the sqlite3_user_add() interface to initialize the user authentication logic. Add test cases for the extra argument on the end of the authorizer callback. (check-in: 842c6da8 user: drh tags: user-auth)
15:25
All interfaces working and tested. (check-in: 96ea5c0b user: drh tags: user-auth)
14:56
Get the sqlite3_user_delete() interface working. (check-in: 974a9c65 user: drh tags: user-auth)
14:40
Fix the sqlite3_user_change() interface so that it does allow a non-admin user to change their own password. (check-in: 52d440c7 user: drh tags: user-auth)
14:01
Move user authentication blocking from sqlite3_prepare() over to the table lock generator, thus allowing SQL statements (like "PRAGMA locking_mode") that do not touch database content to run prior to authentication. (check-in: 70121e7c user: drh tags: user-auth)
13:44
Add support for the extra parameter on the sqlite3_set_authorizer() callback and support for failing an ATTACH with an authentication-required database using bad credentials. The extension is now feature complete, but much testing and bug-fixing remains. (check-in: 596e728b user: drh tags: user-auth)
00:27
Reorder parameters on the sqlite3_user_*() interfaces for consistency. Add the first TCL test cases. (check-in: 2f6d8f32 user: drh tags: user-auth)
2014-09-10
22:46
Complete the implementation of the various APIs. Fix several problems. This is another incremental check-in that does not completely work. (check-in: 4eaaa7fa user: drh tags: user-auth)
19:01
Add the ".user" shell command and implement the sqlite3_user_add() routine. Incremental check-in. The code compiles but does not work. (check-in: a0455f9d user: drh tags: user-auth)
17:34
Further ideas on user authentication. Not yet working code. (check-in: c8171ecd user: drh tags: user-auth)
2014-09-09
20:30
Change the name of the _texte64() interfaces to just _test64(), without the "e". (Closed-Leaf check-in: 6ab76c5f user: drh tags: 64-bit-lengths)
18:41
Add new interfaces to the loadable extension mechanism. (check-in: 18d80cbc user: drh tags: 64-bit-lengths)
17:27
Add new APIs that take 64-bit length parameters: sqlite3_malloc64(), sqlite3_realloc64(), sqlite3_bind_blob64(), sqlite3_bind_texte64(), sqlite3_result_blob64(), and sqlite3_result_texte64(). Internal memory allocation routines also now use 64-bit unsigned length parameters for safety. Also add the sqlite3_msize() interface. Fix the sqlite3_get_table() to use sqlite3_realloc64() to avoid a integer overflow problem. (check-in: 94954850 user: drh tags: 64-bit-lengths)
14:47
Non-working preliminary implementation attempts on user authentication. (check-in: 8440f093 user: drh tags: user-auth)
2014-09-08
17:50
Add support for update statements to sqlite3ota.c. (check-in: e109b27e user: dan tags: ota-update)
15:04
Merge support for large files on Android from trunk. (check-in: c2885c6b user: drh tags: sessions)
2014-09-06
20:19
Add support for delete operations to the ota extension. (check-in: f988234b user: dan tags: ota-update)
17:06
Fixes to os_unix.c to support database (and other) files larger than 2GiB on Android. (check-in: ad7063aa user: dan tags: trunk)
16:52
Merge latest trunk changes with this branch. (Closed-Leaf check-in: 9dca7ce5 user: dan tags: android-large-filles)
16:49
Fixes to os_unix.c to support database (and other) files larger than 2GiB. (check-in: e7fae33c user: dan tags: android-large-filles)
16:39
Fix typos in comments. No code changes. (check-in: e62aab5e user: peter.d.reid tags: trunk)
03:38
Do not record a page-size change if the attempt to change the page size failed due to an OOM error. (check-in: 4d4fb197 user: drh tags: trunk)
03:16
Add the sqlite3_memdebug_title_count global variable, used during debugging to count the number of invocations of test_memdebug_settitle. By examining this variable in the debugger after a segfault, one can then set a breakpoint on test_memdebug_settitle that will fire just before the problem. (check-in: 27e3ca3e user: drh tags: trunk)
02:00
Fix a couple of typos in comments. No changes to code. (check-in: a758465e user: mistachkin tags: trunk)
01:35
Query planner heuristic update: When doing a full table scan on a table that has an equality constraint on an unindexed column, do not allow the estimated number of output rows to be greater than half the total number of rows in the table. (check-in: 73954f93 user: drh tags: trunk)
2014-09-05
19:52
Switch back to using a single database connection in sqlite3ota.c. (check-in: 3c2f4a07 user: dan tags: ota-update)
19:31
Reorganize the code in sqlite3ota.c in preparation for adding support for update and delete operations. (check-in: 98387f05 user: dan tags: ota-update)
05:58
Fix harmless compiler warning. (check-in: 73311906 user: mistachkin tags: trunk)
2014-09-04
19:05
Avoid ever running a checkpoint in ota mode. (check-in: 9ae44447 user: dan tags: ota-update)
18:05
Fix showwal.c so that it works with 64KiB pages. (check-in: fc4f7c11 user: dan tags: ota-update)
11:03
Avoid calling sqlite3OsFetch() on a file-handle for which the xFetch method is NULL. (check-in: 071f7f2d user: dan tags: ota-update)
2014-09-03
19:30
Split part of "PRAGMA ota_mode" off into "PRAGMA pager_ota_mode". This allows some specialized custom VFS implementations to intercept and implement the expected pager-related effects of this pragma. (check-in: 209f672e user: dan tags: ota-update)
08:25
Add a command line program that uses the extension. This serves as example code and is also useful for performance testing. (check-in: ffa1524e user: dan tags: ota-update)
2014-09-02
19:59
Add an experimental extension for applying bulk updates to databases. (check-in: 2954ab50 user: dan tags: ota-update)
15:57
Merge the latest trunk changes into the apple-osx branch. (check-in: 696dc935 user: drh tags: apple-osx)
15:49
Merge the latest trunk changes, including the multi-threaded sorter, into the sessions branch. (check-in: d4cce2c7 user: drh tags: sessions)
2014-09-01
23:06
Update comments in the ANALYZE command that describe how the Stat4Accum objecct is passed around within the VDBE. No changes to functional code. (check-in: 9779c7a9 user: drh tags: trunk)
22:34
Avoid a confusing (though correct) argument to the sqlite3_result_blob() function in the implementation of ANALYZE. (check-in: 4cae93f8 user: drh tags: trunk)
19:29
For sqlite3_win32_is_nt(), assume WinRT is NT-based and revise #ifdef ordering to prefer the ANSI version of GetVersionEx, when available. (check-in: be0a0372 user: mistachkin tags: trunk)
18:21
Tweak the documentation for SQLITE_LIMIT_WORKER_THREADS. No changes to executable code. (check-in: 672e7387 user: drh tags: trunk)
17:36
Add support for using separate worker threads to speed large sorts. The SQLITE_MAX_WORKER_THREADS and SQLITE_DEFAULT_WORKER_THREADS compile-time options and the SQLITE_LIMIT_WORKER_THREADS argument to sqlite3_limit() and the "PRAGMA threads=N" pragma are added. (check-in: b1c0f0bc user: drh tags: trunk)
13:37
Attempt to make the xDelete method of the unix VFS more robust on VxWorks. (check-in: b0f6b91f user: drh tags: trunk)
13:29
Micro-optimizations in sqlite3BtreeNext() and sqlite3BtreePrevious(). (check-in: 839c7996 user: drh tags: trunk)
01:16
Fix harmless compiler warnings for MSVC. (check-in: 3ef32461 user: mistachkin tags: trunk)
01:15
Merge updates from trunk. (check-in: 51f33cf1 user: mistachkin tags: asciiMode)
2014-08-30
15:49
In the command-line shell, added options --lookaside, --pagecache, and --scratch used to configure auxiliary memories. (check-in: f61db04b user: drh tags: trunk)
2014-08-29
19:06
Disable worker threads when SQLITE_THREADSAFE=0. Set the default compile-time maximum number of worker threads to 8 and honor the SQLITE_DEFAULT_WORKER_THREADS compile-time constant (which defaults to 0). (Closed-Leaf check-in: 33fa0410 user: drh tags: threads)
18:06
Fix the speedtest1.c test program to set the worker thread count using the threads pragma. (check-in: 2ab4b5ad user: drh tags: threads)
16:20
Add SQLITE_LIMIT_WORKER_THREADS for controlling the maximum number of worker threads. (check-in: 1b598c68 user: drh tags: threads)
14:40
Merge recent performance enhancements from trunk onto the threads branch. (check-in: 35c44a3c user: drh tags: threads)
14:20
Not a fault after all, rather a testing mistake. Move this change back to trunk. Was: Avoid an unnecessary OP_Move operation for expression subqueries. (check-in: 2a74129a user: drh tags: trunk)
12:29
Contains a fault. Was: Avoid an unnecessary OP_Move operation for expression subqueries. (Closed-Leaf check-in: 462f42af user: drh tags: mistake)
11:24
Add the sqlite3VdbeChangeDest() routine that can be used to eliminate OP_Move opcodes. (Closed-Leaf check-in: 8c57bcc3 user: drh tags: experimental)
2014-08-28
19:38
Improved WHERETRACE messages for the estimated output row reductions from range scans. (check-in: fdd478bb user: drh tags: trunk)
17:30
Fix a problem causing an inaccurate stat4-based estimate for the number of rows visited by a range scan. (check-in: a9daf3ac user: drh tags: trunk)
17:20
Add a testcase() macro to help verfity the row estimation logic. (Closed-Leaf check-in: 6ba60952 user: drh tags: stat4-experimental)
16:01
Fix a problem causing an inaccurate stat4-based estimate for the number of rows visited by a range scan. (check-in: 052d89b5 user: dan tags: stat4-experimental)
13:42
Fix a formatting error ("%d" needed in place of "%g") on a WHERETRACE macro inside of the query planner. This fix applies to debugging logic only. (check-in: c931ca2b user: drh tags: trunk)
2014-08-27
23:18
Refactor the sqlite3PcacheFetch() routine into three separate routines, which are significantly faster overall and about 100 bytes smaller in size as well. (check-in: bdb6e497 user: drh tags: trunk)
17:53
Add a VDBE synopsis comment for clarification. (check-in: 029a6dc7 user: mistachkin tags: trunk)
17:48
Add a missing ticket number to a comment in index7.test. (check-in: d8b1c433 user: dan tags: trunk)
17:37
When determining whether or not a partial index is usable, do not assume that the cursor number assigned to each table in the query is the same as its index in the FROM clause. Fix for ticket [98d973b8f5]. (check-in: fcebca16 user: dan tags: trunk)
14:14
In the sqlite3_context object, keep a pointer to the result value rather than storing the result value in the sqlite3_context object and using memcpy() to move the value back into its register after the function returns. This runs faster and saves over 500 bytes of code space. (check-in: 6c1ee3e3 user: drh tags: trunk)
03:28
Factor out the exception paths from sqlite3ValueToText() into a separate function so that the main routine is much faster for the common case of no required type or encoding conversions. (check-in: 1624916c user: drh tags: trunk)
00:50
Performance enhancement in sqlite3VdbeMemNulTerminate(). (check-in: f94cacc3 user: drh tags: trunk)
2014-08-26
15:06
Change the page cache so that a new sqlite3_pcache object is allocated as soon as the page cache is opened, not delayed until the first fetch request. This give a noticable performance boost. The interface between pager and the page cache has changed slightly, which might break ZIPVFS. (check-in: f1f94a97 user: drh tags: trunk)
02:15
Merge recent performance enhancements and the CAST operator enhancements into the sessions branch. (check-in: 08ae974a user: drh tags: sessions)
02:02
Merge recent performance enhancements and the CAST operator enhancements into the apple-osx branch. (check-in: 5c273111 user: drh tags: apple-osx)
2014-08-25
23:44
Remove the SQLITE_CONFIG_WORKER_THREADS configuration parameter. The number of worker threads in the sorter is now determined only by the PRAGMA threads=N setting. (check-in: e3305d4b user: drh tags: threads)
22:43
Merge the CAST operator enhancements from trunk. (check-in: 6c8f86e4 user: drh tags: threads)
22:37
Add an assert() and five testcase() macros to the OP_Cast opcode implementation to help verify that it is fully tested. (check-in: af364cce user: drh tags: trunk)
21:11
Minor changes to the CAST logic to make it more testable. (check-in: 1ad70ec5 user: drh tags: trunk)
20:21
Test cases added for using unary "+" and CAST operators on the RHS of range constraints and verifying that STAT3/4 can use those constraints. (check-in: 42505e5a user: drh tags: trunk)
20:11
Allow CAST expressions and unary "+" operators to be used in the DEFAULT argument of an ALTER TABLE ADD COLUMN and to be understand on the RHS of range constraints interpreted by STAT3/4. This involves a rewrite of the implementation of the CAST operator. (check-in: 91d8a8d0 user: drh tags: trunk)
19:58
Add documentation for tokenizer api to fts5.h. Also add a script to extract extension API docs and format them as html. (check-in: e240d467 user: dan tags: fts5)
18:29
In cases where stat4 data is available but cannot be used because the rhs of a range constraint is too complex a expression, fall back to using the default estimates for number of rows scanned. (check-in: e06dc6f0 user: dan tags: trunk)
15:13
Query or change the maximum number of worker threads allowed on each database connection separately using the "PRAGMA threads" command. (check-in: 29c5e8a7 user: drh tags: threads)
13:27
Merge the recent performance enhancements implemented on trunk into the threads branch. (check-in: dfdc900f user: drh tags: threads)
11:33
Remove the pager_lookup() function since it is redundant with sqlite3PagerLookup(). (check-in: 54164ce4 user: drh tags: trunk)
11:20
Change the name of the VdbeMemRelease() macro to VdbeMemReleaseExtern() to more accurately reflect what it does. Performance enhancement to the sqlite3VdbeMemRelease() function. (check-in: 3ca5846d user: drh tags: trunk)
2014-08-24
02:53
The sqlite3VdbeChangeEncoding() routine goes about 3x faster if the sqlite3VdbeMemTranslate() subroutine is not inlined. (check-in: 0c7e1b87 user: drh tags: trunk)
01:32
Patch the sqlite3PagerWrite() method in the Pager to run a bit faster. (check-in: c63311e2 user: drh tags: trunk)
2014-08-23
23:15
Faster implementation of pcache1Fetch() (check-in: 0371cc3b user: drh tags: trunk)
20:25
Faster implementation of the sqlite3ApiExit() routine. (check-in: bd41d394 user: drh tags: trunk)
19:42
Another memory allocator performance optimization. (check-in: 6da6f46d user: drh tags: trunk)
19:08
Fix a variable-declaration after code problem in btree.c. Harmless in GCC and CLANG but unacceptable for MSVC. (check-in: 45abd5c0 user: drh tags: trunk)
19:04
Changes to sqlite3ScratchMalloc() that make the entire memory allocation interface a little faster and about 100 bytes smaller. (check-in: f83daa16 user: drh tags: trunk)
18:17
Make the implementation of the sqlite3_aggregate_context() interface faster for second an subsequent invocations. This helps all aggregate functions to perform better. (check-in: 802148f3 user: drh tags: trunk)
17:41
Improved performance in the type handling of arithmetic operators in the VDBE. (check-in: 0c0a6039 user: drh tags: trunk)
17:21
Performance optimization in the applyAffinity() logic inside the VDBE. (check-in: 25f2246b user: drh tags: trunk)
2014-08-22
23:33
Another performance tweak: Split the sqlite3BtreeCursorHasMoved() routine into two with the second routine named sqlite3BtreeCursorRestore(). The first now only reports whether or not the cursor has moved and the second tries to restore the cursor. This allows the sqlite3VdbeCursorMoveto() routine to be refactored to avoid stack pointer movements, for a noticable performance gain. (check-in: ce123b5c user: drh tags: trunk)
22:26
Factor the saveAllCursors() routine of btree.c into two separate routines, for a noticable performance improvement. (check-in: 3eb08439 user: drh tags: trunk)
21:58
Performance enhancements in the b-tree mutex logic. (check-in: 89145306 user: drh tags: trunk)
20:35
Combine the pcacheAddToDirtyList() and pcacheRemoveFromDirtyList() routines into a single pcacheManageDirtyList() routine. The resulting binary code is slightly faster and a few bytes smaller. (check-in: 6bcf1af6 user: drh tags: trunk)
19:12
Revise #ifdef ordering to prefer the ANSI version of GetVersionEx, when available. (Closed-Leaf check-in: 9fe0f075 user: mistachkin tags: winrt)
18:48
Performance enhancement in sqlite3PutVarint(). (check-in: a929be55 user: drh tags: trunk)
18:00
Split the sqlite3Error() routine into sqlite3Error() and sqlite3ErrorWithMsg(), for a slight size reduction and performance increase. (check-in: cf561d1f user: drh tags: trunk)
15:40
Performance improvement in the printf() logic by avoiding unnecessary stack pointer movement. (check-in: f7f2160d user: drh tags: trunk)
15:19
Improve the performance and reduce the size of the sqlite3VdbeSerialGet() routine by avoiding the use of stack. (check-in: ebc10e46 user: drh tags: trunk)
14:56
Handle the 4-byte integer case in the stackless routine. (Closed-Leaf check-in: 3f55484e user: drh tags: experimental)
14:34
Get the sqlite3VdbeSerialGet() routine to run faster by avoiding the use of local variables. (check-in: 8267d821 user: drh tags: experimental)
13:22
Change a while-loop into a do-loop in sqlite3VdbeSerialPut() for a small size reduction and performance improvement. (check-in: 750bb0a0 user: drh tags: trunk)
11:11
Enhance the spellfix extension with the ability to specify a rowid when inserting new rows. (check-in: 369c480c user: drh tags: trunk)
2014-08-21
20:26
Simplify the interface to the symbol table, saving 600 bytes of code space. (check-in: 14b0f561 user: drh tags: trunk)
19:11
For sqlite3_win32_is_nt(), assume WinRT is NT-based. (check-in: 2f59e71f user: mistachkin tags: winrt)
16:09
Merge all recent trunk changes, especially the fix for ticket [369d57fb8e5ccdff06f1], but also the skip-scan improvement and performance improvements in the b-tree code. (check-in: 0b9e2c32 user: drh tags: sessions)
14:10
Fix a faulty assert() statement. Add comments to clarify the behavior of the sqlite3OpenTableAndIndices() routine in insert.c. Add test cases to verify that the assert() statement is not firing inappropriately. Ticket [369d57fb8e5ccdff06f1]. (check-in: 7029b340 user: drh tags: trunk)
2014-08-20
23:42
Increase the version number to 3.8.7 (check-in: 91594aae user: drh tags: trunk)
23:38
Enhancements to skip-scan such that it is operable when a middle column of an index is skipped while the left-most column is constrained in the WHERE clause. (check-in: bc985caa user: drh tags: trunk)
18:43
A small performance improvement in freeSpace() by special-casing the relatively common case of an empty freelist. (check-in: 49f44d35 user: drh tags: trunk)
17:56
Reimplement the freeSpace() routine in btree.c so that it runs faster. (check-in: fe4fd014 user: drh tags: trunk)
14:37
Refactor local variable names in the freeSpace() routine of btree.c for improved understandability. (check-in: 7e63089a user: drh tags: trunk)
13:35
Size reduction and performance improvements in btree.c and the allocateSpace() routine. Also fix an assert() in freeSpace(). (check-in: 121308fa user: drh tags: trunk)
13:25
Add SQLITE_API macros in front of interface routines in the test_intarray.c extension. (check-in: eea06617 user: drh tags: trunk)
13:17
Change an assert() added by the previous commit into a testcase(). Fix a separate assert() in btree.c:freeSpace(). (Closed-Leaf check-in: fe51d3aa user: drh tags: btree-speedup)
11:56
Further size reduction and performance improvement in btree.c:allocateSpace(). (check-in: 1cb1cd64 user: drh tags: btree-speedup)
10:42
Fix a typo in the showdb usage message. (check-in: 6c66beae user: dan tags: trunk)
00:54
Minor performance improvement and size reduction for the btree-page space allocator. (check-in: 73637d12 user: drh tags: trunk)
2014-08-19
23:04
Modify the memsubsys1-3.1.4 test so that it does not fail arbitrarily due to variations in the behavior of system malloc(). (check-in: d280157d user: drh tags: trunk)
20:41
A better fix for the sqlite3_trace() problem. Ticket [11d5aa455e0d98f3c1e6a] (check-in: 44d5bd4c user: drh tags: trunk)
20:27
Make sure the sqlite3_trace() callback is invoked, even if the prepared statement was marked "expired" before it ever entered sqlite3_step(). Ticket [11d5aa455e0d98f3c1e6a08]. (check-in: 0d4d3df4 user: drh tags: trunk)
19:28
Improvements to output formatting with the ".trace" command in the command-line shell. (check-in: d09d63c0 user: drh tags: trunk)
09:15
Minor changes to do with the Tcl tea extension package autoconf system. (check-in: f10a6111 user: dan tags: trunk)
00:33
Disable the hook-7.5.2 tests when using sessions, since that are not correct in that case. (check-in: 6d5b9332 user: drh tags: sessions)
00:26
Improved response to error conditions in the ".session" shell command and in the "changeset" command-line program. (check-in: b69f7dd1 user: drh tags: sessions)
2014-08-18
20:23
Fix the autoconf and MSVC makefiles so that they construct the changeset command-line utility upon request. Delete that utility program when "make clean" is run. (check-in: 4dc15fe0 user: drh tags: sessions)
20:14
Fix a harmless compiler warning in the sessionAppendDelete() function. (check-in: 1324d08d user: drh tags: sessions)
20:08
Add the "changeset" command-line tool for analyzing and manipulating changesets in files on disk. Add the ".session" command to the command-line tool. (check-in: 31addb62 user: drh tags: sessions)
20:01
A reasonably complete implementation of the "changeset" command-line tool and the ".sessions" command in the command-line shell. (Closed-Leaf check-in: 7b12f1f9 user: drh tags: sessions_from_cli)
19:30
Add an "automerge=0" mode that disables auto-merging and falls back to fts4-style crisis merges. (check-in: 2397404e user: dan tags: fts5)
17:56
Add the "changeset" command-line utility for getting an ASCII dump of change sets. (check-in: 55bb3544 user: drh tags: sessions_from_cli)
16:03
Add miscellaneous test cases to improve coverage of sessions module. (check-in: 0fac6cff user: dan tags: sessions)
15:08
Begin adding commands to the command-line interface for interacting with the sessions extension. This is the first check-in of a work-in-progress. (check-in: c2fcf0b9 user: drh tags: sessions_from_cli)
13:48
Merge the latest trunk changes, and in particular the refactoring of the object names in the command-line shell. (check-in: 419d286a user: drh tags: sessions)
13:45
Refactor the names of state objects in the command-line shell implementation.. (check-in: 11a70e1a user: drh tags: trunk)
08:42
Add tests for sessions module. (check-in: 82fdb197 user: dan tags: sessions)
2014-08-16
19:01
Fix some missing and out-of-date comments in the sessions module. (check-in: 05c1d914 user: dan tags: sessions)
16:47
Fixes for the sqlite3changeset_concat() API regarding patchsets. (check-in: dccb3485 user: dan tags: sessions)
2014-08-15
20:15
Begin adding the sqlite3session_patchset() API to the sessions extension. This is an interim commit. (check-in: 60a4565a user: dan tags: sessions)
16:13
Fix compiler warnings on WinCE. (check-in: 28a379fc user: drh tags: trunk)
16:10
Merge the 3.8.6 changes into the apple-osx branch. (check-in: b91fcb3b user: drh tags: apple-osx)
15:46
Merge the 3.8.6 release into the threads branch. (check-in: 05807c41 user: drh tags: threads)
15:10
Update the sessions branch for version 3.8.6. (check-in: 2acbeac1 user: drh tags: sessions)
11:46
Version 3.8.6 (check-in: 9491ba7d user: drh tags: trunk, release, version-3.8.6)
2014-08-14
19:53
Fix an assert that can fail if the database file is corrupted. (check-in: 3f45b819 user: dan tags: trunk)
18:31
Fix compiler warnings on WinCE. (Closed-Leaf check-in: cc910b8e user: mistachkin tags: winCeWarn)
14:02
Merge the pre-3.8.6 changes into the threads branch. (check-in: a608fd1d user: drh tags: threads)
13:39
Merge the pre-3.8.6 changes from trunk into the apple-osx branch. (check-in: 08058df3 user: drh tags: apple-osx)
13:06
Fix typos in comments used to help generate documentation. No changes to code. (check-in: 13a2d90a user: drh tags: trunk)
02:59
Add icon to the Windows shell executable. This is a resource change only, no changes to code. (check-in: f5cce9db user: mistachkin tags: trunk)
2014-08-13
14:43
Merge the trunk changes for 3.8.6 beta3 into the sessions branch. (check-in: d49455d9 user: drh tags: sessions)
11:39
Minor change to unixDelete for VxWorks with a DOS filesystem. (check-in: f01d42cc user: drh tags: trunk)
2014-08-12
20:13
Fix where9.test so that it works with the "no_optimization" permutation. (check-in: d46adf9d user: dan tags: trunk)
16:13
Fix compilation issue in the Win32 VFS when manually defining SQLITE_WIN32_NO_ANSI. (check-in: 67159912 user: mistachkin tags: trunk)
16:07
Cache the value of the "totals" record in memory during transactions. (check-in: 05dfdad4 user: dan tags: fts5)
14:29
Improve the comments associated with SQLITE_TEST_REALLOC_STRESS and add an extra assert() to prove an assumption. (check-in: 35c45461 user: drh tags: trunk)
14:06
Run a test with TEST_REALLOC_STRESS and OMIT_LOOKASIDE defined as part of releasetest.tcl on Linux/x86-64. (check-in: a1baf3a7 user: dan tags: trunk)
13:38
If SQLITE_TEST_REALLOC_STRESS is defined, extend the op-code array used by virtual-machine programs by one element at a time, instead of doubling its size with each realloc(). (check-in: 4c291827 user: dan tags: trunk)
13:32
Remove support for Win9x. (Leaf check-in: 169fc47e user: drh tags: drop-win9x-support)
12:19
Fix typos in the VxWorks code of os_unix.c. (check-in: 19682e8f user: drh tags: trunk)
09:36
Add a test to ensure that the problem fixed by [a179e41e40] does not recur. (check-in: 31356f2c user: dan tags: trunk)
08:36
Automatically resize the hash table used by fts5. (check-in: f1cb48f4 user: dan tags: fts5)
01:23
Fix an assert() statement in the SELECT code generator that was incorrect following an OOM error. (check-in: a179e41e user: drh tags: trunk)
2014-08-11
20:26
Simplify the way position lists are copied when merging data. (check-in: 9f8d678a user: dan tags: fts5)
19:44
Replace the hash table borrowed from fts3. (check-in: 617e2fac user: dan tags: fts5)
17:51
Modify GetVersionEx Win32 VFS fix for use with the test suite. (check-in: fd222176 user: mistachkin tags: trunk)
17:41
Further clarification and typo fixes for the previous comment change. (check-in: 87ef9e2f user: drh tags: trunk)
17:40
Clarify the comment explaining the meaning of the SQLITE_WIN32_GETVERSIONEX macro in the Windows VFS. (check-in: 69714287 user: drh tags: trunk)
17:38
Fix for #ifdef issue with GetVersionEx in the Win32 VFS. (check-in: 1a0d466d user: mistachkin tags: trunk)
17:37
Add a few more requirements tests. (check-in: b5652439 user: drh tags: trunk)
15:54
Updates to evidence marks and requirements. No changes to code. (check-in: 62d38308 user: drh tags: trunk)
14:21
Fix harmless compiler warnings. (check-in: 52b03f04 user: drh tags: trunk)
13:53
Changes that will perhaps enable SQLite to work better on VxWorks. (check-in: de27c742 user: drh tags: trunk)
2014-08-09
18:22
Fix an uninitialized variable causing a problem during fts5 table initialization. (check-in: a14fa876 user: dan tags: fts5)
18:02
Use multiple memory allocations for a single Fts5Structure object. This is probably less efficient but much easier to get right. (check-in: 2821825f user: dan tags: fts5)
2014-08-08
18:26
Update requirements marks. No changes to code. (check-in: 7556bd9a user: drh tags: trunk)
17:49
Improvements to the way the query planner handles sorting costs, so that very large sorting costs do not overwhelm the loop costs. (check-in: bdaa6947 user: drh tags: trunk)
17:25
Fix a buffer overrun in the previous commit. (Closed-Leaf check-in: 43c59c85 user: dan tags: query-planner-fix)
16:52
Because SQLite internally calculates query plan costs using a logarithmic scale, very large estimated sorting costs can cause all other estimated costs to be rounded down to zero. In these cases break ties between plans with the same total cost by comparing the costs with sorting excluded. This is an alternative fix for the problem addressed by [2af630c572]. (check-in: 299b9570 user: dan tags: query-planner-fix)
15:38
The SQLITE_IOERR_BLOCKED extended error code is not longer used, so remove assert() statements and documentation for that error code. Also make other documentation improvements. (check-in: 36b7c5ce user: drh tags: trunk)
12:51
Reworking the documentation on integer result codes. This is a comment and documentation change only. There are no changes to code. (check-in: 54f1df7b user: drh tags: trunk)
2014-08-07
20:42
When the estimated sorting cost overwhelms the estimated lookup cost, ensure that lookup costs are still taken into account when selecting a lookup algorithm. (check-in: 2af630c5 user: drh tags: trunk)
20:37
Clarify the computation of compatible isOrdered by in the plan solver of the query planner. (Closed-Leaf check-in: b5e8fd57 user: drh tags: query-planner-fix)
20:25
Remove the extraneous debugging printf() from the previous check-in. (check-in: 8f04d2c0 user: drh tags: query-planner-fix)
18:47
Add "segment promotion" to fts5. This prevents the FTS index from growing indefinitely as data is added and deleted. (check-in: ba359d78 user: dan tags: fts5)
16:50
Oops! This check-in was on trunk. But it contains a debugging printf(). Original comment: When the estimated cost to do a sort overwhelms the estimated cost to do individual table lookups, make sure that the table lookup costs are still taken into consideration when selecting the lookup algorithm. (check-in: ec5d84ba user: drh tags: query-planner-fix)
2014-08-06
20:04
Avoid writing delete markers to the oldest segment in an FTS index. (check-in: 1baeb1ce user: dan tags: fts5)
18:50
A couple more harmless compiler warnings eliminated. (check-in: bcf6d775 user: drh tags: trunk)
17:49
Fix two more harmless compiler warnings. Make sure the fts3_unicode2.c file is in sync with mkunicode.tcl. (check-in: a2a60307 user: drh tags: trunk)
16:30
Add support for savepoints to fts5. (check-in: 3b19eba0 user: dan tags: fts5)
14:36
Fix harmless compiler warnings. In the command-line shell, report if the ".system" command returns a non-zero result. (check-in: 1202e977 user: drh tags: trunk)
12:00
Merge the second InterlockedCompareExchange() fix from trunk. (check-in: 69018967 user: drh tags: sessions)
11:58
Fix an obsolete comment in the func.c source file. No changes to code. (check-in: 5c6bb57d user: drh tags: trunk)
11:57
On the windows VFS, do not try to make InterlockedCompareExchange an overloadable function, since sometimes it is a macro. (check-in: ab1a751e user: drh tags: trunk)
11:49
Fix an obsolete comment in the func.c source file. No changes to code. (check-in: 7a145c94 user: drh tags: sessions)
03:16
Merge in the fix for the InterlockedCompareExchange() build issue. (check-in: 091aa5f1 user: drh tags: sessions)
03:06
In the Win32 VFS, work around InterlockedCompareExchange() being a macro on some platforms (e.g. x64). (check-in: 7be244ce user: mistachkin tags: trunk)
02:03
Merge all recent changes from trunk. (check-in: a353a851 user: drh tags: threads)
01:51
Merge 3.8.6 beta changes in from trunk. (check-in: b2e01080 user: drh tags: apple-osx)
01:25
Merge the latest 3.8.6 beta changes from trunk. (check-in: 68a6d5e2 user: drh tags: sessions)
01:08
Fix typos in the opcode documentation. Comment changes only. No changes to code. (check-in: 717245d4 user: drh tags: trunk)
00:29
A simpler fix for ticket [3a88d85f36704eebe1] - one that uses less code. The error message is not quite as good, but as this error has apparently not previously occurred in over 8 years of heavy use, that is not seen as a serious problem. (check-in: 0ad1ed8e user: drh tags: trunk)
2014-08-05
21:31
Ensure that aggregate functions are not used when evaluating a default value for a table column. Candidate fix for ticket [3a88d85f36704eebe134f7]. (check-in: 29ba8128 user: drh tags: trunk)
19:35
Use doclist indexes for AND queries as well as phrases. (check-in: 5d38e6ed user: dan tags: fts5)
19:16
Add the ability to evaluate IN operators as a sequence of comparisons as an alternative to the long-standing algorithm of building a lookup table. Use the new implementation in circumstances where it is likely to be faster, such as when the RHS of the IN changes between successive evaluations. (check-in: 95286821 user: drh tags: trunk)
19:00
Use doclist-indexes with "ORDER BY rowid ASC" fts5 queries as well. (check-in: d028ba65 user: dan tags: fts5)
11:04
Rename the internal Schema.flags field to Schema.schemaFlags. (check-in: 5ae80b3c user: drh tags: trunk)
00:53
Improved VdbeCoverage() macros. A few minor simplifications to generated VDBE code. (Closed-Leaf check-in: 01f60027 user: drh tags: IN-operator-improvements)
2014-08-04
21:26
Part of the change in the previous check-in was incorrect and can result in an incorrect UPDATE for WITHOUT ROWID tables. This check-in fixes the problem. (check-in: ee5f6eae user: drh tags: IN-operator-improvements)
20:07
Fix fts5_index.c to use doclist-indexes when possible. Only some cases work so far. (check-in: 90b82d3e user: dan tags: fts5)
18:50
Further enhancements to IN-operator processing. (check-in: 7fdf26da user: drh tags: IN-operator-improvements)
16:39
Refinements to the enhanced IN-operator logic. (check-in: 92ba2821 user: drh tags: IN-operator-improvements)
15:12
Changed my mind: This opcode name changes mere creates unnecessary diff marks between older and newer versions without significantly improving readability. Was: Rename the IsNull opcode to IfNull and rename the NotNull opcode to IfNotNull. (Closed-Leaf check-in: 2f724cba user: drh tags: deadend)
2014-08-02
21:03
Enhancements to the code generator for the IN operator that result in much faster queries in some cases, for example when the RHS of the IN operator changes for each row of a large table scan. (check-in: 436e8842 user: drh tags: IN-operator-improvements)
20:49
Start changing things to use doclist indexes as required. code is not activated yet. (check-in: b8864da9 user: dan tags: fts5)
20:44
Remove (newly) incorrect preprocessor check to fix build on WinRT. (check-in: ba782654 user: mistachkin tags: trunk)
2014-08-01
21:12
A better comment on the generated code for the NULL-in-RHS-of-IN detection logic. (check-in: 9bc1c730 user: drh tags: trunk)
21:00
Improved detection and handling of NULL values on the RHS of a IN operator. (check-in: 468e7300 user: drh tags: trunk)
20:13
Add a special case to the integrity-check code to check that the final integer in a doclist index is as expected. (check-in: c9893415 user: dan tags: fts5)
19:27
Have the fts5 integrity-check verify that doclist indexes match the contents of the leaf pages that they index. (check-in: 37a7d303 user: dan tags: fts5)
18:00
Remove an unnecessary OP_Null in the IN-operator logic. Attempt to clarify comments explaining the IN-operator code, though it is not clear that the comments are correct even yet - more work to be done. (check-in: c11e55fa user: drh tags: trunk)
15:51
Clean up the IN operator code generation logic to make it easier to reason about. In the process, improve code generation to omit some unused OP_Null operations. (check-in: 7c6fbcfe user: drh tags: trunk)
15:34
The idea of coding IN operator with a short list on the RHS as an OR expression turns out to be helpful. If the list is of length 1 or 2, the OR expression is very slightly faster, but the ephemeral table approach is clearly better for all list lengths greater than 2. Better to keep the code simple. (Closed-Leaf check-in: e13175d3 user: drh tags: IN-operator-improvements)
14:46
Begin making changes to the IN operator in an attempt to make it run faster and to make the code easier to understand. (check-in: ee0fd6aa user: drh tags: IN-operator-improvements)
11:16
Add "doclist index" records to the database. These are to make navigating within very large doclists faster. They are not yet used by queries. (check-in: 89377421 user: dan tags: fts5)
01:40
Enhance the PRAGMA integrity_check command to detect UNIQUE and NOT NULL constraint violations. (check-in: 9abcf269 user: drh tags: trunk)
2014-07-31
22:59
Refactoring: Change "pIndex->onError!=OE_None" to use a macro: "IsUniqueIndex(pIndex)". Easier to understand that way. (check-in: e75b26ee user: drh tags: trunk)
20:16
Omit a pointless OP_Null when processing a value-list RHS of an IN operator where the LHS is a rowid. (check-in: 1361450a user: drh tags: trunk)
18:54
Optimizations to the OS sub-type checking in the Win32 VFS. (check-in: 1e5489fa user: mistachkin tags: trunk)
18:14
Add a missing call to "test_sqlite3_log" to multiplex.test. (check-in: 0708f9df user: dan tags: trunk)
17:53
Add a comment explaining why fts5 cannot cache "sorter statements". (check-in: e6af3b7a user: dan tags: fts5)
17:47
Try to reuse sorter statements in fts5. Does not work due to circular references on VTable object. (Leaf check-in: bc14e64b user: dan tags: save_sorter_stmt)
17:35
Fix a leaked database handle in pager2.test. (check-in: 47457b04 user: dan tags: trunk)
15:44
Deactivate the DISTINCT in a SELECT on the right-hand side of an IN operator, since it should not make any difference in the output but dues consume extra memory and CPU time. (check-in: f4cb5365 user: drh tags: trunk)
11:57
Add further tests for the extension APIs with "ORDER BY rank" queries. (check-in: 37a417d2 user: dan tags: fts5)
2014-07-30
23:11
Re-integrate the recent changes from the 'winMutex' branch back into the Win32 mutex subsystem. (check-in: 5360ecb0 user: mistachkin tags: trunk)
21:10
Add three new static mutexes for use by the application. This is a partial import of changes from the threads branch. (check-in: 3aad0196 user: drh tags: trunk)
20:26
Fix things so that the fts5 extension API works with "ORDER BY rank" queries. (check-in: f1b4e1a9 user: dan tags: fts5)
19:41
Add hidden column "rank". Currently this always returns the same value as the bm25() function. (check-in: 4cc048c3 user: dan tags: fts5)
18:47
Add a new sqlite3FaultSim() call to vdbePmaReaderSeek() to facilitate tests of error handling in the sorter. (check-in: 655d8cfc user: drh tags: threads)
17:21
Mark some invariants in the vdbesort.c logic when SQLITE_MAX_WORKER_THREADS==0. (check-in: 721cd965 user: drh tags: threads)
15:43
Add the "eForce" parameter to the sqlite3_multiplex_shutdown() entry point in test_multiplex.c. Shutdown is forced if true. Shutdown is not done if there are pending database connections and eForce is false, but an error log entry is made instead. (check-in: c7303d01 user: drh tags: trunk)
14:57
Merge in the CREATE UNIQUE INDEX fix of ticket [9a6daf340df99ba93c53bcf]. (check-in: fa791232 user: drh tags: apple-osx)
14:44
Merge recent trunk changes, and especially the fix for the CREATE UNIQUE INDEX problem of ticket [9a6daf340df99ba9]. (check-in: 5b50a838 user: drh tags: threads)
14:29
Merge the fix for the CREATE UNIQUE INDEX problem into the sessions branch. (check-in: 43401ee6 user: drh tags: sessions)
13:56
Ensure that the correct number of columns in a UNIQUE index are checked for uniqueness, regardless of whether or not the original table has a ROWID or if the columns are NOT NULL, etc. Ticket [9a6daf340df99ba93c]. (check-in: 6b785e92 user: drh tags: trunk)
11:49
Merge all recent trunk changes, and especially the R-Tree IN operator fix of ticket [d2889096e7bdeac]. (check-in: 654c6c65 user: drh tags: apple-osx)
2014-07-29
21:44
Disable an assert that is sometimes generated spuriously. (check-in: bd9ee0ea user: mistachkin tags: threads)
19:54
Enhancements and updates to the Win32 mutex subsystem. (check-in: ca9868cd user: mistachkin tags: trunk)
19:00
Update return value checking to conform to the beginthreadex() specs. (check-in: 3144a16f user: mistachkin tags: threads)
18:53
Add a couple more assert statements. (check-in: 4e816db2 user: mistachkin tags: threads)
18:46
Fix unreachable branches in the threads.c module. (check-in: 3175e366 user: drh tags: threads)
18:03
Merge updates from trunk. (Closed-Leaf check-in: 08c9a4ea user: mistachkin tags: winMutex)
17:22
Fix a harmless compiler warning. (check-in: 216d21d0 user: drh tags: threads)
16:37
Make the Win32 thread handles are available after the threads exit. (check-in: 565c5af7 user: mistachkin tags: threads)
15:18
Fix the threads build on Windows when SQLITE_MAX_WORKER_THREADS is greater than 0. (check-in: f37db3a0 user: drh tags: threads)
14:16
Merge the R-Tree fix and the new SQLITE_TESTCTRL_ISINIT test control from trunk. (check-in: b2f7eb3c user: drh tags: threads)
14:09
Add the SQLITE_TESTCTRL_ISINIT file control. (check-in: 8b651d4d user: drh tags: trunk)
12:40
Merge recent trunk changes, and especially the fix for the R-Tree problem described in ticket [d2889096e7bdeac6]. (check-in: 8f1beead user: drh tags: sessions)
11:54
Have calls to the xFilter() method of rtree virtual tables ensure that cursor is initialized before proceeding. Fix for [d2889096e7bdeac]. (check-in: 8cc41b0b user: dan tags: trunk)
05:49
Enhancements and updates to the Win32 mutex subsystem. (check-in: 18984c32 user: mistachkin tags: winMutex)
00:42
Add some asserts to the Win32 mutex subsystem. (check-in: e8f2dc5f user: mistachkin tags: threads)
00:23
Fix the build on windows. (check-in: 2773a5f9 user: drh tags: threads)
2014-07-28
20:16
Remove an unnecessary parameter from vdbeMergeEngineStep(). Rename a couple other routines to be more descriptive of what they do. (check-in: f2407a40 user: drh tags: threads)
20:14
Add the "loadfts" program, for performance testing the loading of data into fts3/fts4/fts5 tables. (check-in: 770b9540 user: dan tags: fts5)
19:58
Rename vdbeIncrMergerInit() to vdbeMergeEngineInit() - a much more accurate name. (check-in: 5b084a2d user: drh tags: threads)
18:57
In vdbesort.c, rename vdbeSorterDoCompare() to vdbeMergeEngineCompare() and move it closer to the one place where it is called. Other minor comment changes. (check-in: 09d50d9f user: drh tags: threads)
17:18
In vdbesort.c, rename all pointers to sqlite3_file objects "pFd" and use the name "pFile" only for pointers to SortFile objects. Other comment enhancements. (check-in: 518290a7 user: drh tags: threads)
15:01
Merge recent trunk changes into the threads branch. (check-in: 163c247b user: drh tags: threads)
14:54
Improvements to comments in the multi-threaded sorter. Also include a function name change for clarity. And add a test to help show that the MergeEngine object is only used by a single thread. (check-in: 9af50a87 user: drh tags: threads)
2014-07-26
20:12
Remove an unreachable branch from the sqlite3_value_numeric_type() interface. (check-in: 5350229b user: drh tags: trunk)
18:38
Add tests and fixes for bm25() function. (check-in: 71d32f53 user: dan tags: fts5)
16:47
Avoid unnecessary no-op calls to applyNumericAffinity() for a small performance improvement. (check-in: 413d7287 user: drh tags: trunk)
2014-07-25
21:35
Try to fix harmless compiler warnings reported by Fortify. (check-in: e0fa6fdc user: drh tags: trunk)
20:30
Add extension apis xRowCount, xQueryPhrase, xSetAuxdata and xGetAuxdata. And a ranking function that uses all of the above. (check-in: c4d50428 user: dan tags: fts5)
18:37
Improved comments on VDBE opcodes, for better documentation. No code or logic changes. (check-in: 2d32e487 user: drh tags: trunk)
18:01
Add constraints (enforced only when SQLITE_DEBUG is enabled) on the use of OP_Next and OP_Prev. (check-in: 2230c74f user: drh tags: trunk)
2014-07-24
23:23
Improve the performance of the ANALYZE command by taking advantage of UNIQUE constraints on indices. (check-in: 114dcf33 user: drh tags: trunk)
22:51
Correct help text and make consistent use of snprintf. (check-in: 9c424a5c user: mistachkin tags: asciiMode)
22:41
Fix a bug in the whereRangeSkipScanEst() procedure (added by check-in [d09ca6d5efad3e4cfa]) where it fails to consider the possibility of a ROWID column when computing the affinity of a table column. (check-in: 6aea2258 user: drh tags: trunk)
22:33
Update a shell test case. (check-in: b84008cb user: mistachkin tags: asciiMode)
22:20
Fix typo in comment and update help text. (check-in: 289092bb user: mistachkin tags: asciiMode)
22:13
Merge updates from trunk. (check-in: 8dc0cdf6 user: mistachkin tags: asciiMode)
20:25
Avoid trying to allocation zero bytes when analyzing a unique non-null index. (Closed-Leaf check-in: 85e2bade user: drh tags: faster-analyze)
19:54
Avoid change tests when analyzing single-column unique indexes after getting past the initial NULL entries. (check-in: 4690e99c user: drh tags: faster-analyze)
16:54
Merge all recent trunk changes into the threads branch. (check-in: 77068589 user: drh tags: threads)
16:43
Merge recent trunk changes into the apple-osx branch. (check-in: 3810dc62 user: drh tags: apple-osx)
16:23
Merge recent trunk changes into the sessions branch. (check-in: a9db017e user: drh tags: sessions)
12:39
Add the readfile(FILENAME) and writefile(FILENAME,CONTENT) SQL functions to the command-line shell. (check-in: fb1048cb user: drh tags: trunk)
12:19
Add support for hexadecimal integer literals in the parser. (check-in: f8f79f28 user: drh tags: trunk)
12:09
In the command-line shell, in CSV output mode, terminate rows with CRNL but do not expand NL characters in data into CRNL. Provide the extra -newline command-line option and the extra argument to .separator to designate an alternative newline character sequence for CSV output. (check-in: 16c8ce10 user: drh tags: trunk)
2014-07-23
23:57
Add experimental "costmult" logic. Only enabled when compiled with -DSQLITE_ENABLE_COSTMULT. (check-in: 729ece40 user: drh tags: trunk)
19:37
Ugh. Consecutive UNIQUE index entries are only distinct if the index is on NOT NULL columns. So the previous version was not quite right. This check-in fixes the problem. (check-in: 30033f96 user: drh tags: faster-analyze)
19:31
Add a snippet() function to fts5. (check-in: bdc58fd2 user: dan tags: fts5)
19:04
Enhancements to the hex literal tests. (Closed-Leaf check-in: a3cc027f user: mistachkin tags: hex-literal)
18:36
Improve the performance of the ANALYZE command by taking advantage of the fact that every row of a UNIQUE index is distinct. (check-in: 3e1e79e1 user: drh tags: faster-analyze)
15:51
Updated documentation on sqlite3_temp_directory. No changes to code. (check-in: e6225a7b user: drh tags: trunk)
14:52
Remove a surplus function prototype. #ifdef code that is not used when hex integers are omitted at compile time. (check-in: a5b383e0 user: drh tags: hex-literal)
13:40
Change the hex literal processing so that only the SQL parser understands hex literals. Casting and coercing string literals into numeric values does not understand hexadecimal integers. This preserves backwards compatibility. Also: Throw an error on any hex literal that is too big to fit into 64 bits. (check-in: 6c6f0de5 user: drh tags: hex-literal)
02:07
Casting hex literals directly from string to float always results in a positive number. (check-in: 4b86ccdf user: drh tags: hex-literal)
01:59
Reformatting a few test cases for clarity. (check-in: 7e1bbacb user: drh tags: hex-literal)
01:56
Test cases for hex literals. (check-in: 19054339 user: drh tags: hex-literal)
01:26
Add support for parsing C-style hexadecimal literals. (check-in: 34a1f38b user: drh tags: hex-literal)
2014-07-22
22:46
When running ANALYZE, it is not necessary to check the right-most key column for changes since that column will always change if none of the previous columns have. (check-in: 48f40861 user: drh tags: trunk)
20:02
Add the OP_ReopenIdx opcode that works like OP_OpenRead except that it becomes a no-op if the cursor is already open on the same index. Update the OR-optimization logic to make use of OP_ReopenIdx in order to avoid unnecessary cursor open requests sent to the B-Tree layer. (check-in: 77f412ca user: drh tags: trunk)
19:14
The optimization of check-in [b67a6e33f2] does not work (it generates incorrect VDBE code) if an OR term is AND-ed with a constant expression. So back that optimization out and add a test case to make sure it does not get added back in. (check-in: eed754fe user: drh tags: trunk)
16:00
Fix the index name for the shadow tables in the spellfix1 extension so that multiple instances of the spellfix1 virtual table can each have their own index. (check-in: 438c348a user: drh tags: trunk)
15:33
Correction: The maximum SQLITE_MAX_ATTACHED value to avoid overflowing a signed 8-bit integer is 125, not 127. (check-in: 48e37802 user: drh tags: trunk)
14:58
Enhance the sqlite_stat1.stat parsing to allow additional text parameters at the end. Unrecognized parameters are silently ignored. (check-in: ca2a5a2c user: drh tags: trunk)
14:42
Expire prepared statements after running ANALYZE. (check-in: b083a961 user: drh tags: trunk)
12:05
Enhance the comment on whereLoopAddBtree(). No changes to code. (check-in: b22dd165 user: drh tags: trunk)
00:40
For the OR-optimization, avoid generating OP_OpenRead opcodes that reopen exactly the same index. (check-in: b67a6e33 user: drh tags: trunk)
2014-07-21
20:07
Limit the maximum SQLITE_MAX_ATTACHED to 127, since a signed character is sometimes used to store the database index. (check-in: f1c76c7c user: drh tags: trunk)
15:45
Fix DELETE and UPDATE operations on fts5 tables. (check-in: d44d3a85 user: dan tags: fts5)
15:44
Allow the SQLITE_MAX_ATTACHED compile-time option to be larger than 62. The default limit on the number of attached databases remains 10. (check-in: 1a817ae2 user: drh tags: trunk)
14:22
Add the xTokenize extension API. (check-in: 8c6b0aff user: dan tags: fts5)
11:44
Fix the xColumnSize() extension API. (check-in: 19504c41 user: dan tags: fts5)
2014-07-19
20:27
Add simple tests for the xColumnText() extension api. (check-in: 1e9053ab user: dan tags: fts5)
20:15
Add new ASCII mode to the shell capable of importing and exporting using the official unit and record separators (i.e. 0x1F and 0x1E, respectively). (check-in: 7fe601ea user: mistachkin tags: asciiMode)
17:57
Update the sqlite3_stmt_busy() function so that it correctly returns true for "ROLLBACK" statements that have been stepped but not yet reset. (check-in: 61cee3c0 user: dan tags: trunk)
17:49
Fix harmless compiler warnings in the showdb and showwal tools and in the unicode tokenizer of FTS3. (check-in: 574cc8eb user: drh tags: trunk)
15:44
Fix some harmess compiler warnings in the FTS3 Unicode module. (Closed-Leaf check-in: c01caea5 user: mistachkin tags: toolWarnings)
15:40
Fix warnings related to having a 64-bit size_t. (check-in: 29ac9336 user: mistachkin tags: toolWarnings)
15:35
Fixes for the xColumnSize() fts5 extension API. (check-in: 43fcb844 user: dan tags: fts5)
15:30
Fix warnings caused by the previous commit. (check-in: 89634a41 user: mistachkin tags: toolWarnings)
2014-07-18
21:16
Fix harmless compiler warnings for MSVC in the showdb/showwal command line tools. (check-in: 6dc7b2f1 user: mistachkin tags: toolWarnings)
21:02
Update clean targets with the recently added command-line tools. (check-in: 2beefa68 user: mistachkin tags: trunk)
19:59
Fix issues with position lists and NEAR constraints. (check-in: 16352d36 user: dan tags: fts5)
19:06
Improved documentation for checkpoints and the busy handler. No changes to code. (check-in: ca92c024 user: drh tags: trunk)
17:39
SQLite has long accepted some unadvertised and non-standard join syntax. Add a test to ensure that future versions continue to accept this non-standard syntax, to avoid breaking legacy applications that use the undefined syntax. (check-in: 824dde7f user: drh tags: trunk)
14:43
Improvements to the ".fullschema" command in the command-line shell. (check-in: fa80c64c user: drh tags: trunk)
2014-07-17
15:14
Fix a problem with position list processing for OR queries. (check-in: 5808f30f user: dan tags: fts5)
2014-07-16
20:07
Fixes for tcl list generation in fts5_test(). (check-in: c1f9a4b7 user: dan tags: fts5)
19:15
Begin adding interface for auxiliary functions. (check-in: 1e2a7ba0 user: dan tags: fts5)
2014-07-15
11:59
Add simple tests for new sqlite3BtreeCursorHint() functionality. (check-in: 1efa6ed5 user: dan tags: cursor-hints)
2014-07-14
19:04
In the expression passed to sqlite3BtreeCursorHint() for the inner loops of joins, replace any TK_COLUMN references to columns in the outer loops with TK_REGISTER expressions (Expr.iTable indicates the specific register containing the value). There are no automated tests for this yet. (check-in: f9dddd00 user: dan tags: cursor-hints)
2014-07-10
20:21
Support "ORDER BY rowid ASC". (check-in: b96b5e16 user: dan tags: fts5)
2014-07-08
16:27
Add support for prefix queries to fts5. (check-in: 75ebd3cd user: dan tags: fts5)
2014-07-07
18:03
Fix harmless compiler warnings in the fts3view utility program that can occur with MSVC. (check-in: 1cec1e03 user: mistachkin tags: trunk)
17:57
Add the fts3view utility program to the MSVC makefile. (check-in: b04751bd user: mistachkin tags: trunk)
16:07
Fix a division-by-zero error in the fts3view utility program. Add the fts3view utility program to the "main.mk" makefile. (check-in: 64f02699 user: drh tags: trunk)
2014-07-05
15:15
Add support for AND, OR and NOT to fts5. (check-in: 8682b87e user: dan tags: fts5)
07:54
Add support for the "colname : <nearset>" syntax to fts5. (check-in: 00466710 user: dan tags: fts5)
2014-07-03
20:39
Add support for NEAR expressions to fts5. (check-in: 250ae8d4 user: dan tags: fts5)
12:18
Change fts3/4 so that the "unicode61" is included in builds by default. It may now be excluded by defining SQLITE_DISABLE_FTS3_UNICODE. (check-in: 0cc0230a user: dan tags: trunk)
2014-07-02
20:18
Add support for phrase queries to fts5. (check-in: 2e5652e6 user: dan tags: fts5)
2014-07-01
20:45
Change the position list format so that its size in bytes is stored at the start of the list itself. (check-in: 62f2ff20 user: dan tags: fts5)
15:22
Add another test to verify that SQLite is using stat4 data for composite primary keys on WITHOUT ROWID tables. (check-in: 0df1fe72 user: dan tags: trunk)
11:54
Ensure that all fields are loaded from the stat4 table for records that correspond to indexes on WITHOUT ROWID tables with composite primary keys. (check-in: 21981e35 user: dan tags: trunk)
2014-06-30
20:25
Merge the latest trunk changes into the threads branch. (check-in: ae23a65e user: drh tags: threads)
20:02
Merge the latest trunk enhancements into the sessions branch. (check-in: a5d94eab user: drh tags: sessions)
19:57
Merge the latest trunk changes into the apple-osx branch. (check-in: f426876f user: drh tags: apple-osx)
19:28
Bump the version number to 3.8.6. (check-in: f925e9ba user: drh tags: trunk)
19:07
Attempt to use STAT4 information to estimate the selectivity of WHERE clause terms when using the skip-scan optimization. (check-in: d09ca6d5 user: drh tags: trunk)
18:57
Fix for ticket [b2fa5424e6fcb15]: Better define the format of the sqlite_stat4 file for WITHOUT ROWID tables and make sure the ANALYZE command generates a file in the appropriate format. Use the sqlite_stat4 data to enable the use of WHERE terms that cover all indexed columns plus some prefix of columns in the primary key. (check-in: bc2de809 user: drh tags: trunk)
18:02
Fix a problem in where.c with using the stat4 sample data of an index on a WITHOUT ROWID table. (Closed-Leaf check-in: 053a210e user: dan tags: stat4-without-rowid)
17:07
Fix the STAT4 information for WITHOUT ROWID tables. (check-in: 5d8628fd user: drh tags: stat4-without-rowid)
15:23
Fix where.c so that the primary key values appended to every index entry on a WITHOUT ROWID table may be used when useful. (check-in: 6624a61d user: dan tags: stat4-without-rowid)
13:56
Omit non-primary-key columns from the STAT4 samples for WITHOUT ROWID tables. Indexes, both rowid and without-rowid, still hold an exact copy of the index entry. (check-in: de826c31 user: drh tags: stat4-without-rowid)
13:32
Generate complete samples for sqlite_stat4 on WITHOUT ROWID tables. Ticket [b2fa5424e6fcb15b5] (check-in: 8cb43edd user: drh tags: stat4-without-rowid)
11:14
Add makefile targets for various diagnostic tools, such as showstat4. Fix harmless compiler warnings in diagnostic tools. (check-in: 6f86d89b user: drh tags: trunk)
2014-06-28
19:06
Add an OOM fault injection test for the new code on this branch. (Closed-Leaf check-in: c96de490 user: dan tags: stat4-skipscan)
17:35
Add further tests to skipscan5.test. (check-in: 4b8230e8 user: dan tags: stat4-skipscan)
16:06
Add header comments on new routines. Rework the sqlite3Stat4Column() routine so that is (in theory) able to deal with corrupt samples. (check-in: ef5cdf94 user: drh tags: stat4-skipscan)
15:26
Fix a problem with using stat4 samples of type text when estimating the rows visited by a range-query/skip-scan loop. (check-in: dfb09db6 user: dan tags: stat4-skipscan)
14:28
Change the VDBE to export the sqlite3MemCompare() routine and thus free where.c from the dependency on vdbeInt.h. (check-in: d186d1ac user: drh tags: stat4-skipscan)
14:25
Merge fixes from trunk with this branch. (check-in: 6af219d1 user: dan tags: stat4-skipscan)
2014-06-27
20:14
Fix a couple of problems in estimating the number of rows visited by a range query that uses a skip-scan. (check-in: 219736f5 user: dan tags: stat4-skipscan)
2014-06-26
22:17
Add some more IN operator tests. (check-in: fb32e374 user: mistachkin tags: trunk)
21:32
Fix compilation issue when STAT4 is not enabled. (check-in: 74a5454a user: mistachkin tags: stat4-skipscan)
21:28
Revise the affinity returned for expressions flagged as 'generic'. Fix for [9a8b09f8e6]. (check-in: 92f7ad43 user: mistachkin tags: trunk)
20:21
Attempt to use sqlite_stat4 data to estimate the number of rows visited by a range query that uses a skip-scan. This code is largely untested. (check-in: 01dc8102 user: dan tags: stat4-skipscan)
12:31
Fix minor problems in term matching. (check-in: 94eeb077 user: dan tags: fts5)
2014-06-25
20:28
Begin adding query support to fts5. (check-in: 47a9f3cc user: dan tags: fts5)
2014-06-24
20:19
Fix showstat4.c so that it decodes typecodes 8 and 9 correctly. (check-in: 9ca737c0 user: drh tags: trunk)
16:59
Add simple full-table-scan and rowid lookup support to fts5. (check-in: 3515da85 user: dan tags: fts5)
00:59
Add the showstat4.exe utility program for decoding and displaying the content of the sqlite_stat4 table in a database. (check-in: b4d9f605 user: drh tags: trunk)
2014-06-23
23:28
Add the .fullschema command to the sqlite3.exe utility. This command shows the schema and the content of the sqlite_stat tables, all in one go. Useful when reporting problems with the query planner. (check-in: ebec4892 user: drh tags: trunk)
11:33
Add some code for an experimental fts5 module. Does not work yet. (check-in: 1e0648dc user: dan tags: fts5)
10:18
Fix a problem with SQLITE_OMIT_WSD builds. (check-in: 07dda49c user: dan tags: trunk)
10:04
Fix a problem with SQLITE_OMIT_WAL builds. (check-in: 612b6d1b user: dan tags: trunk)
2014-06-20
13:55
Improved display of record data in the "NNNbd" output of the showdb.exe utility program. (check-in: f735c249 user: drh tags: trunk)
01:32
In the showdb.exe utility, for the "NNNbd" command, also show data fields in addition to header fields on each record decoded. Improvements to formatting. (check-in: b451fe0c user: drh tags: trunk)
2014-06-19
23:38
Add the ability to decode the headers of individual cells, byte-by-byte, in the "showdb.exe" utility. (check-in: 306b461d user: drh tags: trunk)
2014-06-18
18:10
Add the "LogEst" and "LogEst.exe" target to the makefiles. (check-in: 7b91b058 user: drh tags: trunk)
15:24
Fix a comment on the sqlite3Utf8Read() routine. No changes to code. (check-in: 5e514f6a user: drh tags: trunk)
15:18
Merge in all recent changes from trunk, and especially the automatic index enhancements. (check-in: 0e1b7349 user: drh tags: threads)
15:11
Prevent an automatic index from taking the place of a declared index. (check-in: 0a52bddd user: drh tags: trunk)
2014-06-17
20:16
Prevent an automatic index from taking the place of a declared index. (Closed-Leaf check-in: 4ece839d user: drh tags: autoindex-improvements)
17:00
Fix a missing space in a "wheretrace" comment. No changes to production code. (check-in: b500f2a0 user: drh tags: trunk)
16:11
Add the likely() function for symmetry with unlikely(). The likely(X) function means the same thing as likelihood(X,0.9375). (check-in: 38965484 user: drh tags: trunk)
15:53
Improvements to query planning, especially in regards to estimating the cost and benefit of automatic indexes. (check-in: 1272fb89 user: drh tags: trunk)
15:13
Small tweaks to the query planner to get it to try harder to use an index for sorting and to avoid using automatic indexes on constant terms. (Leaf check-in: 2d9de154 user: drh tags: branch-3.8.3)
13:23
Add the autoindex2.test testing module. (check-in: ffe3fea4 user: drh tags: autoindex-improvements)
12:33
A different approach to the autoindex problem that deletes query-planner code rather than adding it. (check-in: f270fb6e user: drh tags: autoindex-improvements)
09:52
Simplification to the logic that prevents automatic indexes from being formed on constant expressions. (check-in: 36d67e1d user: drh tags: autoindex-improvements)
09:00
Allow an automatic index on a WHERE constraint where the RHS is does not reference another table as long as the RHS is not a constant. (check-in: 58acc2a8 user: drh tags: autoindex-improvements)
02:46
Do not attempt to create an automatic index on a constant constraint, as doing so is pointless. (check-in: d6883e96 user: drh tags: autoindex-improvements)
2014-06-16
22:45
Fix CSV import issue, reported via the mailing list, in the shell when the file to be imported ends with an empty line. (check-in: fc918f7d user: mistachkin tags: trunk)
21:30
In the "wheretrace" logic (disabled for normal builds) expand the print width of the flags field to be wide enough for all 17 bits. (check-in: 3181d206 user: drh tags: trunk)
18:35
Add the SQLITE_UNLINK_AFTER_CLOSE compile-time option. If enabled, the unlink of temporary files on unix is deferred until after the file is closed. (check-in: e43a2f92 user: drh tags: trunk)
18:17
Add an application ID for MBTiles tilesets. (check-in: 837f6404 user: drh tags: trunk)
16:41
Back out the unix VFS changes that seeks to avoid fstat() calls after an unlink(). That change did not clear the problem on FuseFS. (check-in: 0617e20a user: drh tags: trunk)
15:01
Add the ".eqp" dot-command to the ".help" output in the command-line shell. This was accidently omitted when the ".eqp" command was originally implemented for SQLite 3.8.4 (check-in [e6ecf7337658624]). (check-in: b0b4c776 user: drh tags: trunk)
12:51
Fix the extension01.test script so that it works on windows. Fix a harmless compiler warning in the fileio extension. (check-in: baf95a19 user: drh tags: trunk)
12:44
Add test cases for the fileio extension. (check-in: 86343331 user: drh tags: trunk)
2014-06-13
13:43
Add the fileio.c loadable extension, that implements readfile() and writefile() SQL functions. (check-in: 0ca104d8 user: drh tags: trunk)
13:08
Add an extension that implements compress() and uncompress() SQL functions. (check-in: d5c17d1a user: drh tags: trunk)
2014-06-12
17:10
Increase the WAL-mode SQLITE_PROTOCOL timeout to 10 seconds. (check-in: 2aeacf81 user: drh tags: trunk)
15:46
Simplify the estLog() routine. (check-in: 6c68d758 user: drh tags: trunk)
2014-06-10
20:18
Proposed change to the fix for ticket [1c69be2dafc28b] such that legacy applications that were exploiting the older buggy behavior in SQLite continue to work. (Leaf check-in: 401a0ca3 user: drh tags: group-by-name-resolution)
2014-06-09
20:39
Avoid an unnecessary initialization of the szFile field of unixFile in the unix VFS. (check-in: 6484fb5a user: drh tags: trunk)
20:24
Enhance the unix VFS so that it keeps track of the size of unlinked files internally and thus avoids the need to call fstat() on those files, since fstat() does not work reliably on unlinked files on some implementations of FuseFS. (check-in: 10707d35 user: drh tags: trunk)
20:06
Enhance the unix VFS so that it keeps track of the size of unlinked files internally and thus avoids the need to call fstat() on those files, since fstat() does not work reliably on unlinked files on some implementations of FuseFS. (Closed-Leaf check-in: c41df393 user: drh tags: omit-fstat-after-unlink)
13:11
Modify the %nonassoc directive in lemon so that it generates a run-time error rather than a parsing conflict. This changes is due to a bug report on the mailing list. SQLite does not use the %nonassoc directive in its grammar so this change does not affect SQLite. (check-in: 1925f3a0 user: drh tags: trunk)
2014-06-06
20:49
Add a test case to ensure that estLog() works for negative numbers. (check-in: 813469d9 user: drh tags: trunk)
20:20
Make sure the estLog() routine in the query planner handles negative values correctly (always returning 1). Prior to this change, estLog(-1) would return a large number which could throw off the cost computations in the query planner in obscure circumstances. (check-in: 75437bee user: drh tags: trunk)
17:09
Fix an obsolete comment on the whereRangeScanEst() routine. No changes to code. (check-in: b16bf851 user: drh tags: trunk)
2014-06-05
13:22
Bring the threads branch up-to-date with the 3.8.5 release. (check-in: e4b01676 user: drh tags: threads)
12:53
Merge in the 3.8.5 release changes and the FTS integrity-check fix. (check-in: 2dbdfa51 user: drh tags: apple-osx)
11:15
Fix a problem that was causing the FTS4 integrity-check command to fail if the table had one or more "notindexed" columns. (check-in: 7123bb26 user: dan tags: trunk)
2014-06-04
14:06
Version 3.8.5 (check-in: b1ed4f2a user: drh tags: trunk, release, version-3.8.5)
2014-06-03
20:09
Merge the 3.8.5 release candidate changes into the sessions branch. (check-in: 09e75d82 user: drh tags: sessions)
14:42
Avoid closing a pseudo-table associated with sorting in a co-routine since that pseudo-table might be used again in an outer loop. (check-in: 6d818052 user: drh tags: trunk)
11:32
Add a test to double-check that [1cbe7a0883] did not affect anything. (check-in: c6b512a7 user: dan tags: trunk)
2014-06-02
21:00
Remove the WHERE_LIKELIHOOD bit, as it does not seem to effect any result. (check-in: 1cbe7a08 user: drh tags: trunk)
18:24
Fix a typo in a requirements mark comment in a test script. No changes to code. (check-in: 75ff459b user: drh tags: trunk)
11:26
Fix the query planner so that it once again knows that queries without a FROM clause will never return more than one row and hence do not require sorting. (check-in: 9f18b303 user: drh tags: trunk)
09:39
Add the "valgrind-nolookaside" permutation to permutations.test. (check-in: 8e8472d9 user: dan tags: trunk)
2014-05-31
15:43
Fix a harmless "scan-build" compiler warning in the command-line shell. (check-in: 39fafe0a user: drh tags: trunk)
15:39
Fix a compile of harmless static analyzer warnings. (check-in: 7e287f20 user: drh tags: trunk)
2014-05-30
21:01
Revise locking retry semantics in Win32 VFS to abort early if the file handle is reported as invalid. (check-in: a4df4a5b user: mistachkin tags: trunk)
16:54
Add extra checking of the database extended error code. (Closed-Leaf check-in: f2906c44 user: mistachkin tags: winLockHandle)
16:42
Add tests for the invalid file handle detection logic in the winLock() function. (check-in: ed5a9eb4 user: mistachkin tags: winLockHandle)
2014-05-29
20:39
Fix a harmless compiler warning in the command-line shell code. (check-in: a80527f6 user: drh tags: trunk)
20:36
Merge trunk changes into the apple-osx branch. (check-in: b9fad449 user: drh tags: apple-osx)
20:29
Merge trunk changes into the sessions branch. (check-in: 9f18e78f user: drh tags: sessions)
20:24
Merge changes from the trunk into the threads branch. (check-in: 416cb091 user: drh tags: threads)
20:17
Fix to the EXPLAIN indentation logic in the command-line shell. (check-in: 8f916ed1 user: drh tags: trunk)
12:36
Improvements to error messages for errors in the dot-commands of the command-line shell. Add the ".once" command. The output of ".help" now goes to the designated output channel. (check-in: 48dce821 user: drh tags: trunk)
03:17
Only quote the arguments to the ".shell" and ".system" commands if they contain spaces. (check-in: e58f4bd3 user: drh tags: trunk)
2014-05-28
20:22
Add the ".shell" and the ".system" commands (aliases for the same thing) to the command-line shell. (check-in: d018a34a user: drh tags: trunk)
10:00
Add an extra test to verify that the FTS notindexed option is working. (check-in: c461c0fe user: dan tags: trunk)
03:27
Revise locking retry semantics in Win32 VFS to abort early if the file handle is reported as invalid. (check-in: d43e2e59 user: mistachkin tags: winLockHandle)
03:23
Revise how OSTRACE reports logically boolean results in the Win32 VFS. (check-in: c405f971 user: mistachkin tags: trunk)
2014-05-27
20:19
Remove an incorrect assert() in the sorter. (check-in: b8b66103 user: drh tags: trunk)
19:18
Fix harmless compiler warnings. (check-in: 20b75460 user: drh tags: trunk)
18:18
Change the name of the Index.autoIndex field to Index.idxType and provide symbolic names for the various values of that field rather than using magic numbers. (check-in: d16e575d user: drh tags: trunk)
17:57
Avoid unnecessary cursor opens and seeks when running the OR-optimization on a WITHOUT ROWID table. (check-in: 9c785c58 user: drh tags: trunk)
16:41
Improved comments on the OR-optimization logic in the query planner. (check-in: 77fef5a3 user: drh tags: trunk)
15:21
Remove unused code (previously #ifdef-ed out) from btree.c. (check-in: 8bc97371 user: drh tags: trunk)
11:54
Fix a harmless compiler warning in the FTS4 logic. (check-in: 64a869ad user: drh tags: trunk)
11:42
Add a test to whereI.test that uses a multi-column PK. (check-in: aa183e60 user: dan tags: trunk)
10:57
Fix for (unsupported) SQLITE_USE_FCNTL_TRACE code. (check-in: 994b2b7a user: drh tags: trunk)
2014-05-26
22:05
Add the OR-optimization to WITHOUT ROWID tables. (check-in: 06a23b8b user: drh tags: trunk)
22:01
Minor enhancements to comments and clarification of the code. (Closed-Leaf check-in: cbec30d0 user: drh tags: without-rowid-or-opt)
20:25
Add a missing VdbeCoverage() macro on an OP_Found opcode added in the previous check-in. (check-in: b4980a07 user: drh tags: without-rowid-or-opt)
20:15
Merge recent trunk changes into the threads branch. (check-in: 82152027 user: drh tags: threads)
20:08
Merge recent trunk changes into the apple-osx branch. (check-in: 54b5fa77 user: drh tags: apple-osx)
20:06
Enable the OR optimization for WITHOUT ROWID tables. Use a temp table instead of the RowSet object to track the rows that have already been included in the result set. (check-in: 2c7e277b user: dan tags: without-rowid-or-opt)
20:00
Merge recent trunk changes into the sessions branch. (check-in: a769c7e0 user: drh tags: sessions)
18:27
Fix a problem in the shell when importing CSV files. If the leftmost field of the first row in the CSV file was both zero bytes in size and unquoted, no data was imported. (check-in: 856d44a2 user: dan tags: trunk)
16:40
Fix a problem in FTS4 where columns with names that are prefixes of any notindexed column were also being (incorrectly) marked as not indexed. For example in "CREATE ... t1(abc, bc, abcd, notindexed=abcd)", both abc and abcd were being treated as notindexed. (check-in: d90c4964 user: dan tags: trunk)
2014-05-24
17:15
Remove references in comments to VDBE opcodes that no longer exist. This is a documentation change only; no changes to code. (check-in: ebfb51fe user: drh tags: trunk)
2014-05-23
17:17
Changes to the output of EXPLAIN QUERY PLAN to make it clearer when a query uses the PRIMARY KEY index of a WITHOUT ROWID table. (check-in: 9268df30 user: dan tags: trunk)
12:03
In the command-line shell, if three or more interrupt signals (control-c) are received in a row without a response from sqlite3_interrupt() then call exit(1) immediately. This allows control-C to interrupt the shell even if it is stuck in a computation or loop that does not involve the VDBE. (check-in: b5cde571 user: drh tags: trunk)
11:48
Make sure sufficient VDBE registers are allocated for an INSERT...SELECT when there is an idlist on the insert table that includes an explicit rowid. Ticket [e9654505cfda93610585fde5a9bbf2e730c8a8d5] (check-in: 9a2dd187 user: drh tags: trunk)
2014-05-22
09:58
Add a test for the EQP output of a skip-scan query that uses the PK index of a WITHOUT ROWID table. (check-in: 10238fad user: dan tags: trunk)
2014-05-21
08:48
Do not burn memory remembering CHECK constraints in a read-only database. (check-in: 34ddf02d user: drh tags: trunk)
08:21
Fix the sqlite3_db_readonly() API so that it reports true if the database is readonly because the file format write version (byte 18 of the header) is too large. (check-in: 8d8af114 user: drh tags: trunk)
2014-05-20
19:11
Improvements to the testability of the threads.c module. (check-in: 386e0888 user: drh tags: threads)
11:03
In vdbesort.c, change the names of PmaReader variables "pIter" to "pReadr". Other related comment changes. The generated object code should be the same. (check-in: 99efb235 user: drh tags: threads)
00:27
Merge all recent trunk changes into the apple-osx branch. (check-in: 23722be4 user: drh tags: apple-osx)
00:20
Merge recent trunk changes into the sessions branch. (check-in: 2d33afe0 user: drh tags: sessions)
2014-05-19
23:17
Merge recent changes from trunk. (check-in: 6eefdad9 user: drh tags: threads)
19:26
Fix harmless compiler warnings in MSVC. (Leaf check-in: aa7e2041 user: drh tags: safer-malloc)
15:16
Changes to help ensure that a multiplication does not overflow when computing the number of bytes needed for a memory allocation, and cause a malfunction. No problems existing problems were discovered. However, these changes should help to ensure that no problems arise in the future. (check-in: 17349a49 user: drh tags: safer-malloc)
2014-05-17
16:56
Internally, use a 64-bit integers for segment level numbers. (check-in: 8180e320 user: dan tags: trunk)
15:10
Fix a broken test case in fts4growth2.test. (check-in: 9fde5b96 user: dan tags: trunk)
2014-05-16
23:38
Fix harmless compiler warnings. (Closed-Leaf check-in: 7e60347e user: mistachkin tags: ftsWarnings)
23:15
Work around compilation issue with MSVC. (check-in: 9623a29c user: mistachkin tags: trunk)
20:24
Rearrange some conditionals and add #if statements to make the code more testable. (check-in: 17afd770 user: drh tags: threads)
17:31
Add a pair of sqlite3FaultSim(100) calls to vdbesort.c to facilitate testing of obscure and hard to reach error conditions. (check-in: cceac14f user: drh tags: threads)
16:16
Fixes to prevent an FTS index from growing indefinitely as the corresponding table is updated. Change the FTS 'automerge' option to allow the user to specify the number of segments that should be merged simultaneously by auto-merges. (check-in: a75f1800 user: dan tags: trunk)
15:48
Add extra test to backcompat.test to ensure that old and new versions of FTS may work together on the same incremental merge operation. (Closed-Leaf check-in: 3997d47b user: dan tags: fts4-experimental)
14:27
Merge all recent changes from trunk, and especially the new sqlite3FaultSim() interface. (check-in: 43fcbd91 user: drh tags: threads)
14:17
Repurpose the SQLITE_TESTCTRL_FAULT_INSTALL test-control to register a callback to be invoked by sqlite3FaultSim(). That test-control has been unused since 2008-06-20 and was never used in any official release. (check-in: 0d43a7ad user: drh tags: trunk)
12:18
Use #ifdef logic to avoid an always-true branch when SQLITE_MAX_WORKER_THREADS=0 (check-in: 88cfe6d7 user: drh tags: threads)
10:30
Fix a bug causing an incorrect segment size value to be stored if both an old and new FTS version performed work on the same incremental merge operation. (check-in: a9a2aeab user: dan tags: fts4-experimental)
2014-05-15
19:05
Merge latest trunk changes with this branch. (check-in: 5809986f user: dan tags: fts4-experimental)
18:36
Fix a problem with the handling of delete markers by automerge on large databases. (check-in: 2b09bd17 user: dan tags: fts4-experimental)
16:56
Use #ifdef to omit code that is not used when SQLITE_MAX_WORKER_THREADS is zero. (check-in: 2e8d287d user: drh tags: threads)
2014-05-14
19:49
Do not search for promotable segments following an FTS 'optimize' operation or creation of a new segment on the oldest existing level. (check-in: 34f6b4b8 user: dan tags: fts4-experimental)
18:45
Fix a problem to do with loading the value of the FTS automerge setting from the database. (check-in: 7268119f user: dan tags: fts4-experimental)
15:58
Fix various problems to do with segment promotion. Add test file fts4growth2.test, containing tests to check that the FTS index does not grow indefinitely as the table is updated. Allow the user to configure the number of segments merged simultaneously by the automerge option. (check-in: 21491a9b user: dan tags: fts4-experimental)
2014-05-13
20:11
Fix a problem preventing delete markers from ever being removed from the FTS index. (check-in: 7f47ae5c user: dan tags: fts4-experimental)
2014-05-12
22:36
Improve a comment in the MSVC makefile. No changes to code. (check-in: 0901dcce user: mistachkin tags: trunk)
21:12
Add VSIX packaging support for Windows Phone 8.1 using Visual Studio 2013 Update 2. (check-in: 013738f3 user: mistachkin tags: trunk)
20:04
Experimental code to prevent FTS indexes from growing indefinitely as the table is updated. (check-in: b3b505a4 user: dan tags: fts4-experimental)
15:37
In mutex_w32.c, make inclusion of the Windows header file dependent on SQLITE_OS_WIN, not SQLITE_MUTEX_W32. (check-in: 93ffbcc0 user: mistachkin tags: trunk)
15:30
In the sorter, only use large memory allocations if scratch memory has not been configured. Add #ifdefs to disable unused code when SQLITE_MAX_WORKER_THREADS is zero. Other sorter changes in support of testability. (check-in: d7e2b0d9 user: drh tags: threads)
2014-05-10
17:33
Merge updates from trunk. Emit the AppliesTo and DependsOn SDK manifest attributes when building the VSIX for Windows Phone 8.1. (Closed-Leaf check-in: f6237a5f user: mistachkin tags: vsixWinPhone81)
17:28
When using Visual Studio 2013, add the appropriate MaxPlatformVersion attribute to the VSIX SDK manifest. (check-in: 0a4f5967 user: mistachkin tags: trunk)
2014-05-09
23:31
Further MSVC makefile changes to support Windows Phone 8.1. (check-in: a9c81815 user: mistachkin tags: vsixWinPhone81)
20:54
Merge updates from trunk. (check-in: f4fea7bb user: mistachkin tags: vsixWinPhone81)
20:51
When cross-compiling with the MSVC makefile, make sure the correct library path is used. Also, keep track of the required compilation options separately. (check-in: c3dce2e7 user: mistachkin tags: trunk)
17:17
Merge recent trunk changes into the orderby-planning branch. (Leaf check-in: 8d8609d6 user: drh tags: orderby-planning)
15:00
Merge the latest trunk changes into the threads branch. (check-in: 9ac8f1e7 user: dan tags: threads)
14:56
Fix a misplaced #endif and a C99-ism in the unix VFS. (check-in: c8d384d1 user: drh tags: apple-osx)
13:27
Fix compiler warnings. When forcing the delete of a WAL file, do not fail if the WAL files does not exist. All "veryquick.tcl" tests are now passing on Linux under the standard compile-time options. (check-in: eafd8aa1 user: drh tags: apple-osx)
12:18
Fix an incorrect check for API misuse. (check-in: 856400dc user: drh tags: apple-osx)
11:45
Bring the PRAGMA logic into closer alignment with trunk, and in the process fix a couple of crashes. (check-in: d66fe706 user: drh tags: apple-osx)
11:15
Add new static mutex SQLITE_MUTEX_STATIC_APP3. (check-in: ee0ab09c user: dan tags: threads)
00:36
Fix several harmless compiler warnings. (Closed-Leaf check-in: 360c0fd1 user: mistachkin tags: winPreCache)
2014-05-08
23:01
Initial attempt to merge in all trunk changes over the previous 1.5 years. This check-in compiles but there are compiler warnings and "make test" segfaults after only running a few test modules. (check-in: 9411d7dc user: drh tags: apple-osx)
22:15
Fix typos in logging code. (check-in: dc7f84df user: mistachkin tags: winPreCache)
22:08
Fix a memory leak of the temporary read buffer. (check-in: 37e60d21 user: mistachkin tags: winPreCache)
22:05
Update comments and only include the thread routine when required. (check-in: a60c545f user: mistachkin tags: winPreCache)
22:01
Experimental changes to pre-cache a database file prior to it being fully opened. (check-in: 38cbcedb user: mistachkin tags: winPreCache)
22:01
Fix static variable declaration issue on Windows. (check-in: a41d2969 user: mistachkin tags: threads)
2014-05-07
21:16
Include sqlite3rtree.h in the tsrc/ pile of source files during target_source in the main.mk makefile. (check-in: 116bed5a user: drh tags: trunk)
20:33
Remove a superfluous variable initialization. (check-in: 68766f83 user: drh tags: trunk)
20:24
A better fix for the group_concat() problem. (check-in: 1c086dee user: drh tags: trunk)
19:59
Fix the way parenthesis in MATCH expressions are handled by FTS if the tokenizer considers them to be token characters. (check-in: e21bf7a2 user: dan tags: trunk)
18:23
Make sure the group_concat() function returns an empty string, not a NULL, if it has at least one input row. Fix for ticket [55746f9e65f8587]. (check-in: d01cedaa user: drh tags: trunk)
18:21
Ensure that the sqlite3StrAccumAppend() routine is never called with a NULL second argument. Doing so is harmless when N==0, but it causes an assert() to fail that was placed to quiet static analyzers. (Closed-Leaf check-in: f03fbf37 user: drh tags: tkt-55746f9e)
17:19
Make sure the group_concat() function returns an empty string, not a NULL, if it has at least one input row. Fix for ticket [55746f9e65f8587]. (check-in: 0deac873 user: drh tags: tkt-55746f9e)
15:46
Add the SQLITE_IOCAP_IMMUTABLE bit as a possible return value from the xDeviceCharacteristics method in the VFS. Add the "nolock" and "immutable" query parameters to URI filenames. (check-in: 1a0d7d3d user: drh tags: trunk)
15:32
Fix nolock and immutable so that they work even if READONLY is requested. (Closed-Leaf check-in: e193aced user: drh tags: win32-none)
15:09
Add test cases and documentation for the nolock and immutable query parameters. (check-in: 19d56cba user: drh tags: win32-none)
2014-05-06
21:37
Merge updates from trunk. (check-in: 69698ae9 user: mistachkin tags: vsixWinPhone81)
21:37
Update the template VSIX package file as well. (check-in: 99d96765 user: mistachkin tags: trunk)
21:30
Merge updates from trunk. (check-in: 7579c44a user: mistachkin tags: vsixWinPhone81)
21:26
Enhance the VSIX package creation tool to better support Visual Studio 2013. (check-in: c1fb04f6 user: mistachkin tags: trunk)
16:21
Add a little extra variety to the tests in sort4.test. (check-in: 7de6aee6 user: dan tags: threads)
15:38
Re-implement the core of the multi-threaded sorter tests in sort4.test using C. Run each test in sort4.test ten times, or repeat all tests for 300 seconds as part of the "multithread" permutation test. (check-in: 208b2b04 user: dan tags: threads)
15:28
Experimental changes that reduce the size of Expr objects from 72 to 64 bytes each on x64 and from 48 to 44 bytes each on x32. (Leaf check-in: 8ad0a123 user: drh tags: smaller-expr)
00:09
Refactor VSIX package creation tool to better support Visual Studio 2013. (check-in: 8be166af user: mistachkin tags: vsixWinPhone81)
2014-05-05
22:50
Merge updates from trunk. (check-in: 668ed76a user: mistachkin tags: vsixWinPhone81)
22:49
Add the "omit_check_constraints" pragma that causes the check constraint expressions to be omitted from the parse tree. (Leaf check-in: f1a4bf01 user: drh tags: reduce-schema-size)
22:43
When building for Windows 8.0 using Visual Studio 2013, make sure the cross-compilation native library path is set correctly. (check-in: c1ab9092 user: mistachkin tags: trunk)
21:08
More modularization work on the MSVC batch build tool. (check-in: 9a06773a user: mistachkin tags: trunk)
20:35
Merge updates from trunk. (check-in: eaa8fc81 user: mistachkin tags: vsixWinPhone81)
20:34
Incorporate the latest trunk changes so that hopefully now this branch will build on beagleboard. (check-in: 2647b17d user: drh tags: reduce-schema-size)
20:32
Create new header file "os_setup.h" used to detect the operating system at compile-time, and "os_win.h" that contains windows-specific header in formation. (check-in: bd92e0f8 user: drh tags: trunk)
20:24
Work on cleaning up the MSVC batch build tool integration with Visual Studio 2013. (check-in: b5a72dfd user: mistachkin tags: trunk)
20:21
Attempt to fix the build on beagleboard. (Closed-Leaf check-in: 3ac75725 user: drh tags: winHdr)
20:03
Add test file sort4.test, containing brute force tests for the multi-theaded sorter. (check-in: 9cc364c4 user: dan tags: threads)
19:57
Try to reduce the amount of memory used to hold the schema when PRAGMA ignore_check_constraints is active. (check-in: 35a9f3f1 user: drh tags: reduce-schema-size)
18:24
Centralize and reform use of the Win32 related include files. (check-in: 857f2baf user: mistachkin tags: winHdr)
17:49
Merge updates from trunk. (check-in: 6f07f20e user: mistachkin tags: vsixWinPhone81)
17:45
Merge updates from trunk. (check-in: a3cfd813 user: mistachkin tags: winHdr)
17:43
Fix several header file comments. No changes to code. (check-in: dd6eb5d1 user: mistachkin tags: winHdr)
15:58
Fix a race condition in the sorter code. (check-in: 2d2edfe5 user: dan tags: threads)
09:08
Add tests so that the "coverage-sorter" test permutation covers all branches in vdbesort.c. Fix a few minor problems in the same file. (check-in: bde28b70 user: dan tags: threads)
2014-05-03
20:43
Add an extra fault-injection test to sortfault.test. Remove an unreachable branch from vdbesort.c. (check-in: a33a366b user: dan tags: threads)
19:33
Fix a race condition in the sorter. (check-in: 32ccf3ae user: dan tags: threads)
14:28
Fix a problem in the sorter causing it to return spurious SQLITE_NOMEM errors when configured to use memsys3 or memsys5. (check-in: 3a66c4e1 user: dan tags: threads)
13:53
Get SQLITE_MUTEX_STATIC_APP1 and _APP2 working for the debugMutex implementation. (check-in: f49ba1c9 user: drh tags: threads)
12:00
Add two new static mutexes, SQLITE_MUTEX_STATIC_APP1 and _APP2, for use by the application program. First intended use is in test programs for the memory allocation logic where one does not want to allocating a _FAST or _RECURSIVE mutex since that would involve using the memory allocation system under test. (check-in: 13686035 user: drh tags: threads)
11:22
Add the SQLITE_DEFAULT_WORKER_THREADS compile-time option. Fix a NULL-pointer dereference that can occur following OOM. (check-in: e0dea89b user: drh tags: threads)
2014-05-02
22:39
Enhance the Win32 VFS I/O retry logic. (check-in: 47605043 user: mistachkin tags: trunk)
21:42
Merge updates from trunk. (Closed-Leaf check-in: 598a3875 user: mistachkin tags: winIoRetry)
21:38
Merge updates from trunk. (check-in: c4d1d8a0 user: mistachkin tags: winHdr)
19:12
Fix typo in Windows makefile. Make sure the WaitForSingleObjectEx system call is always available. (check-in: d7ed529f user: mistachkin tags: threads)
18:46
Do not run the vdbeRecordCompareDebug() assert if pKeyInfo->db is NULL since in that case there would be no way to check for a memory allocation failure. (check-in: 63ed2d6a user: drh tags: threads)
18:05
Merge orderby-planning with this branch. (check-in: d9549de3 user: dan tags: threads)
17:33
Simplify assert() statements used to verify correct operation of record comparison routines. (check-in: 3300d62d user: drh tags: orderby-planning)
17:12
Fix some broken asserts in btree.c and vdbeaux.c that may fail following an OOM error. (check-in: e15f4706 user: dan tags: threads)
16:22
Failure to extend a temp file for use with mmap() in vdbesort.c is benign. (check-in: d4d39638 user: drh tags: orderby-planning)
16:03
Remove a faulty assert() from vdbesort.c. (check-in: d95d68aa user: dan tags: threads)
15:25
Fix a faulty assert() statement. (check-in: 9196ce40 user: drh tags: orderby-planning)
14:54
Fix a broken test case in fuzz.test. (check-in: faa46935 user: dan tags: trunk)
13:09
Merge latest trunk enhancements and fixes into the orderby-planning branch. (check-in: 84862d3a user: drh tags: orderby-planning)
00:09
Add a comment explaining why WhereLoop cost adjustments are omitted for skip-scan loops. (check-in: 3bc43594 user: drh tags: trunk)
2014-05-01
20:26
Fix an obscure problem to do with temp register allocation that could occur if more than one simple SELECT within a compound SELECT uses a partial sort. (check-in: 427409ae user: dan tags: trunk)
20:24
Add #ifdefs for test coverage. Add a testcase(). (check-in: be2702ce user: drh tags: trunk)
10:19
Update a test case in wal2.test that explicitly corrupts a checksum in the wal file to account for the fact that the first byte of said checksum may initially be 0xFF. (check-in: 2b935bde user: dan tags: trunk)
01:49
Take out the special handling of nolock=true in os_win.c and add it to pager.c, so that it works for all VFSes. Add the pPager->noLock boolean for clarity. (check-in: 725c1c14 user: drh tags: win32-none)
01:20
Avoid unnecessary xUnlock operations on temp file. (check-in: 1829c38c user: drh tags: win32-none)
01:13
Add the immutable=TRUE query parameter and SQLITE_IOCAP_IMMUTABLE, either of which prevents locking of the database and omits tests for existance of journal files. (check-in: 71f152c8 user: drh tags: win32-none)
2014-04-30
20:32
Merge in all recent changes and enhancements from trunk. (check-in: 84243f84 user: drh tags: win32-none)
18:11
Fix a problem in calculating the costs of "OR" scans. (check-in: 9bbca48b user: dan tags: trunk)
15:22
Modify the way the costs of various query plans are estimated. If the user supplies a likelihood() value (or equivalent) on an indexed WHERE constraint, use it to estimate the number of index rows visited. (check-in: 90e36676 user: dan tags: trunk)
15:00
Add text to the header comment of whereLoopAddBtree() describing how the costs of various b-tree loops are estimated. (Closed-Leaf check-in: 05e6e16c user: dan tags: experimental-costs)
14:53
Update a couple of test cases to account for the fact that this branch prefers an index scan and partial sort over a full-table scan and full external sort. (check-in: 9b975bf3 user: dan tags: experimental-costs)
14:47
Fix a couple of out-of-date comments in where.c. (check-in: eefeda32 user: dan tags: experimental-costs)
14:22
Improved rendering of LogEst values corresponding to real values near 0.0 in the tool/logest.c utility program. (check-in: 32910c8c user: drh tags: experimental-costs)
13:19
Fix long-standing typos in comments. (check-in: b9f91317 user: drh tags: experimental-costs)
2014-04-29
19:01
Test that the default values used when sqlite_stat1 data is not available are calculated correctly. Fixes for the same. (check-in: e2d42f90 user: dan tags: experimental-costs)
16:46
Merge trunk changes into this branch. (check-in: d74299f0 user: dan tags: experimental-costs)
16:10
Ignore likelihood() values on indexed IPK lookups. (check-in: 5bb7757a user: dan tags: experimental-costs)
12:01
Fix a test case so that it updates sqlite_stat1 consistently. (check-in: 2dc5a0b5 user: dan tags: experimental-costs)
2014-04-28
20:11
Do not reduce the number of rows scanned at all for "IS NOT NULL" constraints. Fix a bug in calculating the number of rows visited by scans of partial indicies. (check-in: a8ae93f0 user: dan tags: experimental-costs)
19:34
The trunk assumes that an open range constraint on an indexed term (col>?) term matches 1/4 of the indexed rows, and that a closed constraint (col BETWEEN ? AND ?) matches 1/64. Change this branch to do the same. (check-in: 4047ac75 user: dan tags: experimental-costs)
18:02
Merge all recent trunk enhancements and fixes into the sessions branch. (check-in: e158812c user: drh tags: sessions)
17:56
Add the sqlite3_rtree_query_callback() API to the RTree virtual table. (Cherrypick from the sessions branch.) (check-in: af2cbe64 user: drh tags: trunk)
17:51
Add the sqlite3_rtree_query_callback() API to the RTree virtual table. (check-in: 3dca2809 user: drh tags: sessions)
15:11
Update unordered.test to take into account for the fact that SQLite now prefers a full-table scan over a non-covering index scan that visits a large percentage of the table rows. (check-in: 20f468df user: dan tags: experimental-costs)
12:08
Add an extra column to a table in analyze9.test to give the planner a little more reason to select an index. (check-in: 1b95544f user: dan tags: experimental-costs)
10:00
Update test script analyze3.test to account for the fact that SQLite now prefers a full-table scan over a non-covering index scan that visits a large percentage of the table rows. (check-in: 35f46a55 user: dan tags: experimental-costs)
09:35
Modify internal function whereLoopAdjustCost() so that it does not prefer a skip-scan over a regular index scan even if the regular scan uses a subset of the WHERE terms used by the skip-scan. (check-in: 88a5758d user: dan tags: experimental-costs)
08:49
Fix an error in estimating of the number of rows visited by a range scan. (check-in: d491de62 user: dan tags: experimental-costs)
2014-04-26
20:21
Fix an sqlite3_stmt_status() problem caused by recent changs on this branch. (check-in: dee20409 user: dan tags: experimental-costs)
19:23
Update requirements marks to fix typos in the requirements text. No changes to code. (check-in: f5a26365 user: drh tags: trunk)
17:52
Allow the xfer optimization to proceed if the DEFAULT on the very first column of the two tables is different. This is a refinement of the fix for ticket [f67b41381a]. (check-in: 349f4834 user: drh tags: trunk)
14:07
Avoid transfering records between tables unless the default values for all columns are the same. Fix for [f67b41381a]. (check-in: f8c4c495 user: dan tags: trunk)
2014-04-25
20:22
If the user provides likelihood() data for a WHERE clause term used as part of an index key, have the planner use it when calculating the expected number of rows visited by the loop. (check-in: c51efaa5 user: dan tags: experimental-costs)
17:37
Add test cases to ensure correct operation of joins with a virtual table that include DISTINCT and ORDER BY clauses. Verification for ticket [388d01d4bb8f9]. (check-in: 5ada136f user: drh tags: trunk)
16:29
Enhance the sqlite3_rtree_query_info object to report on the number of elements in the priority queue at each level. (Closed-Leaf check-in: f7dad408 user: drh tags: rtree-enhancements)
15:01
Store values loaded from the stat1 table as logarithmic values in memory. (check-in: 1bd74c49 user: dan tags: experimental-costs)
14:42
Make sure ORDER BY clauses on joins that involve virtual tables and that have a DISTINCT clause work correctly. This is a candidate fix for ticket [388d01d4bb8f9]. Test cases for that ticket will be checked in separately. (check-in: 17113812 user: drh tags: trunk)
12:35
When VDBE_PROFILE is enabled, ignore negative opcode times, which sometimes occur, perhaps due to context swaps. (check-in: 4e88042f user: drh tags: trunk)
2014-04-24
20:04
Changes to the way the planner calculates the costs of various table and index scans. Some test cases still failing. (check-in: c5a6ec0a user: dan tags: experimental-costs)
16:25
Improved header comment on the vdbesort.c module. No changes to code. (check-in: bf09ce24 user: drh tags: orderby-planning)
15:06
Reopen the orderby-planning branch and merge in the latest trunk enhancements and fixes. (check-in: 6077ddcd user: drh tags: orderby-planning)
12:28
Improvements to comments. Store some extra information in SqliteThread that is useful for debugging. (check-in: 9fb5e212 user: drh tags: threads)
2014-04-23
12:57
Merge all recent trunk changes into the threads branch. (check-in: e2c9f71a user: drh tags: threads)
12:00
Enhancements to the date and time functions so that they optionally support a 5-digit year. Not sure we want to include this in trunk. Saved in a branch for future reference. (Closed-Leaf check-in: 2029a396 user: drh tags: five-digit-year)
2014-04-22
19:42
Change from using the win32-none VFS to just a query parameter. (check-in: ffceacf6 user: drh tags: win32-none)
19:34
Add some OSTRACE calls for consistency. (check-in: be292d55 user: mistachkin tags: win32-none)
19:30
Add the win32-none VFS which omits rollback-journal locking. (check-in: 03e3c5a8 user: drh tags: win32-none)
2014-04-21
18:13
Fix the generation of sqlite3_rtree_query_info.iRowid and add test cases to verify that it is fixed. (check-in: eba95ead user: drh tags: rtree-enhancements)
18:00
Preliminary changes to support building VSIX packages for Windows 8.0 and Windows Phone 8.0 using Visual Studio 2013. (check-in: 3bf97c81 user: mistachkin tags: vsixWinPhone81)
15:53
Be sure to initialize the sqlite3_rtree_query_info.iRowid field for the leaves of the R-Tree when doing a query callback search. (check-in: 43946938 user: drh tags: rtree-enhancements)
15:21
Fix an off-by-one error in setting the "iLevel" field of the sqlite3_rtree_query_info structure passed into the RTree query callback. (check-in: d708f159 user: drh tags: rtree-enhancements)
13:36
Comment tweaks on the test case for the [b75a9ca6b0] bug fix. (check-in: 65d2544a user: drh tags: trunk)
13:21
Avoid discarding an ORDER BY clause in the case where an identical GROUP BY clauses uses an index to group, but not sort, the rows. Fix for [b75a9ca6b0]. (check-in: de9a490f user: dan tags: trunk)
2014-04-18
22:20
Clean up the proper-subset cost adjustment logic to make it more compact and easier to read and so that full branch test coverage is more easily obtained. (check-in: 9a5d38c7 user: drh tags: trunk)
13:57
Add to speedtest1.c the --threads option for setting the SQLITE_CONFIG_WORKER_THREADS configuration. (check-in: 5fce40c4 user: drh tags: threads)
13:40
Fix harmless compiler warnings. (check-in: f8f72ecb user: drh tags: threads)
12:38
Merge recent trunk changes into the threads branch. (check-in: 8729aa3e user: drh tags: threads)
01:37
Further improvements to the RTREE_DECODE_COORD() method, to take advantage of known processor byte orders when available. This makes the code 3% faster, according to valgrind. Also add test cases to make sure the on-disk representation is correct. (check-in: 6f3e94f4 user: drh tags: rtree-enhancements)
01:14
Merge the latest changes from sessions. (check-in: d9eef5b0 user: drh tags: rtree-enhancements)
01:10
Merge recent trunk changes into sessions. (check-in: 95e77efe user: drh tags: sessions)
00:49
Add the SQLITE_RUNTIME_BYTEORDER compile-time option to force SQLite to check the processor byte-order at run-time. Add additional compile-time byte order checks for ARM, PPC, and SPARC. (check-in: 2c536387 user: drh tags: trunk)
00:08
Preliminary changes to support building VSIX packages for Windows Phone 8.1. (check-in: a1b2f28b user: mistachkin tags: vsixWinPhone81)
00:06
Add the SQLITE_TESTCTRL_BYTEORDER test control to interrogate SQLite's notion of the processor byte order and whether the byte order is known at compile-time or determined at run-time. (check-in: 9c696196 user: drh tags: trunk)
2014-04-17
23:23
Performance optimization on byte-swapping in R-Tree. (check-in: 444084fd user: drh tags: rtree-enhancements)
15:34
More test cases with very long priority queues. (check-in: 71692aa9 user: drh tags: rtree-enhancements)
14:52
Test cases and bug fixes for the sqlite3_rtree_query_callback() mechanism. (check-in: 1ccaaed6 user: drh tags: rtree-enhancements)
13:15
Refactor the constraint checking logic in RTree. The new-style constraint callbacks created by sqlite3_rtree_query_callback() are now hooked up from end to end, though still untested. (check-in: 32a13870 user: drh tags: rtree-enhancements)
08:57
Fix build problems in vdbesort.c. Add further comments and changes to make things easier to understand. (check-in: 12b190db user: dan tags: threads)
2014-04-16
21:02
Performance optimization on nodeGetCell() in R-Tree. (check-in: 5d20ff9e user: drh tags: rtree-enhancements)
19:04
Clarify the purpose of the nField argument passed to sqlite3VdbeSorterInit(). (check-in: c0c8cff1 user: dan tags: threads)
17:41
Change the name of vdbeIncrInit2 to vdbePmaReaderIncrInit. Add a header comment to the same function. (check-in: 6622d876 user: dan tags: threads)
17:23
Convert the RTree module query mechanism over to using a priority queue for walking the RTree. (check-in: f26936f7 user: drh tags: rtree-enhancements)
17:15
TCL tests now all pass. (Closed-Leaf check-in: f864bacc user: drh tags: rtree-queue)
16:43
Rework the way trees of MergeEngine objects are built in vdbesort.c to make it easier to follow. Fix memory leaks that could follow an OOM or IO error. Add various comments to explain functions in vdbesort.c. (check-in: 69026ec7 user: dan tags: threads)
14:45
Fix a bug in rowid=? query handling. More problems remain. (check-in: 5b0e6ba4 user: drh tags: rtree-queue)
13:00
Bug fixes to the priority-queue implementation for R-Trees. Improved tracing capability. Some queries work now, but still many problems. (check-in: a439ddd6 user: drh tags: rtree-queue)
2014-04-15
21:06
Initial attempt at getting R-Tree queries to work using a priority queue. This check-in compiles, but R-Trees do not work well. And there are debugging printf()s left in the code. This is an incremental check-in. (check-in: 53688a25 user: drh tags: rtree-queue)
20:52
Fix some problems to do with OOM conditions in vdbesort.c. Some problems remain. (check-in: 2f94f9ce user: dan tags: threads)
19:52
Fix further code and documentation issues in vdbesort.c. (check-in: d03f5b86 user: dan tags: threads)
2014-04-14
19:48
Make sure the undocumented sqlite_rename_parent() function does not crash even if it is invoked with NULL arguments. Ticket [264b970c4379fd4b94] (check-in: c6fa8d0d user: drh tags: trunk)
19:23
Allow the sorter to begin returning data to the VDBE as soon as it is available, instead of waiting until all keys have been sorted. (check-in: cb0ab20c user: dan tags: threads)
18:41
Improve performance in single-threaded mode by having the final merge pass keys directly to the VDBE, instead of going via a final PMA. (Closed-Leaf check-in: 02610cd9 user: dan tags: threads-experimental)
14:43
Fix comments on the rtreenode() and rtreedepth() test function in the R-Tree module. (check-in: ade5b986 user: drh tags: rtree-enhancements)
12:18
Remove over 300 lines of unused code, code that implemented the older Guttman insertion algorithms that are no longer used. (check-in: 3ba5f295 user: drh tags: rtree-enhancements)
08:45
Minor fixes so that builds with SQLITE_MAX_WORKER_THREADS=0 work. (check-in: e400bbbf user: dan tags: threads-experimental)
07:30
Improve use of multiple threads in sqlite3VdbeSorterRewind(). (check-in: e1bdc4b8 user: dan tags: threads-experimental)
2014-04-13
19:28
Remove the unused second argument from sqlite3ExprCachePop(). Add an ALWAYS() on an always-true conditional in sqlite3VdbeResolveLabel(). (check-in: ab23abf3 user: drh tags: trunk)
19:15
Make sure column cache elements are cleared correctly when jumping over code for key generation in a partial index. Fix for ticket [2ea3e9fe6379fc3f6]. (check-in: 3122b836 user: drh tags: trunk)
16:10
Continuing work on the new custom query mechanism for r-tree. (check-in: ca7357e6 user: drh tags: rtree-enhancements)
2014-04-12
19:34
Fix many issues with new code. (check-in: 62c406a0 user: dan tags: threads-experimental)
17:44
Continuing clean-up of the R-Tree module in preparation for cutting in the new generalized query mechanism. (check-in: 66c858f2 user: drh tags: rtree-enhancements)
2014-04-11
23:14
Add the new interfaces to rtree, though they do not yet work. Add the "show_speedtest1_rtree.tcl" script for showing the test data used for the R-Tree tests of speedtest1. Change speedtest1 to generate better R-Tree test data. (check-in: 0b702759 user: drh tags: rtree-enhancements)
19:43
Avoid having the sorter merge too many PMAs at a time when incrementally merging data following a SorterRewind(). (check-in: 98bf0307 user: dan tags: threads-experimental)
17:41
Add the --verify option to speedtest1. Add verification test cases to the "rtree" testset and a case that uses a custom geometry callback. (check-in: 9d485c42 user: drh tags: rtree-enhancements)
16:14
Update comments in the R-Tree module in preparation for some big changes. Add an "rtree" performance test to speedtest1. (check-in: 20a73ec0 user: drh tags: rtree-enhancements)
2014-04-10
02:24
Modify the OR-clause handling so that it can safely deal with OR-clause with 17 or more terms. Fix for ticket [10fb063b1179be53ea0b53bb]. (check-in: a67b5312 user: drh tags: trunk)
2014-04-09
20:04
Experimental multi-threaded sorting changes to allow the sorter to begin returning items to the VDBE before all data is sorted. (check-in: f9d5e09a user: dan tags: threads-experimental)
2014-04-07
18:44
Experimental multi-threaded sorting changes to begin merging PMAs before SorterRewind() is called. (Closed-Leaf check-in: cbfc0f6d user: dan tags: abandoned)
2014-04-04
22:44
Fix harmless compiler warnings. (check-in: e54dded2 user: drh tags: threads)
21:40
Fix typo in a Windows threading support routine. (check-in: 5e3dfa27 user: mistachkin tags: threads)
18:49
Performance improvements when reading large blobs, especially if SQLITE_DIRECT_OVERFLOW_READ is defined. (check-in: 2312eb6a user: drh tags: trunk)
18:37
Merge the latest trunk changes into the threads branch. (check-in: 39ac79cf user: drh tags: threads)
18:20
Merge changes to the query planner that strive to ensure that any index usage that is a proper subset of some other index usage always has a slightly higher cost. (check-in: 683dd379 user: drh tags: trunk)
14:12
Ensure the "PRAGMA journal_mode=WAL" works coming from any other journal_mode with ATTACH-ed databases. (check-in: e54330b4 user: drh tags: trunk)
07:52
Add test file sort3.test, which should have been part of commit [9d3351b8d7]. (check-in: dceed2c8 user: dan tags: threads)
02:13
Change vdbeSorterExtendFile() so that it makes a best effort to create the PMA file of the desired size, but does not return an error if unable. (check-in: 217814bc user: drh tags: threads)
2014-04-03
16:53
Version 3.8.4.3 (Leaf check-in: a611fa96 user: drh tags: release, version-3.8.4.3, branch-3.8.4)
16:42
Merge all recent changes from trunk. (check-in: a0910079 user: drh tags: threads)
16:35
Merge all recent changes from trunk, including the fix for the OP_SCopy-vs-OP_Copy problem. (check-in: 9515c834 user: drh tags: sessions)
16:29
Use OP_Copy instead of OP_SCopy when moving results out of a subquery, to prevent the subquery results from changing out from under the outer query. Fix for ticket [98825a79ce1456]. Problem introduced by check-in [1e64dd782a126f48d78]. (check-in: d5513dfa user: drh tags: trunk)
16:25
Fix an integer overflow problem in the sorter. (check-in: 9d3351b8 user: dan tags: threads)
16:18
Increase the version number to 3.8.4.3 (check-in: f05a49b6 user: drh tags: branch-3.8.4)
16:16
Use OP_Copy instead of OP_SCopy when moving results out of a subquery, to prevent the subquery results from changing out from under the outer query. Fix for ticket [98825a79ce1456]. Problem introduced by check-in [1e64dd782a126f48d78]. (check-in: ec6a0624 user: drh tags: branch-3.8.4)
14:31
Fix a typo in the "Synopsis:" comment for the OP_VFilter opcode. (check-in: 48ecdd4a user: drh tags: trunk)
14:29
Fix minor errors causing compilation to fail with SQLITE_MAX_WORKER_THREADS set to a value greater than zero. (check-in: 0561272a user: dan tags: threads)
02:54
Refactor local object and method names in vdbesort.c so that their names more closely reflect their actual use. (check-in: d284e30e user: drh tags: threads)
00:32
In the command-line shell, run set writable_schema before running the ".clone" command. (check-in: 9d2ae634 user: drh tags: trunk)
2014-04-02
18:58
Add a big introductory comment to vdbesort.c explaining its operation at a high level. Also adjust some symbolic names and fix other comment issues in that file. (check-in: eef60f1b user: drh tags: threads)
15:15
Fix some problems with OOM handling in vdbesort.c. (check-in: 47e702bd user: dan tags: threads)
14:38
Change the name of the SorterThread object to "SortSubtask" to avoid confusion with the SQLiteThread object. (check-in: 4ee2d910 user: drh tags: threads)
2014-04-01
18:41
When sorting data for a CREATE INDEX statement in single-threaded mode, assume that keys are delivered to the sorter in primary key order. Also fix various comments that had fallen out of date. (check-in: 821d1ac4 user: dan tags: threads)
15:38
Even if compile time option SQLITE_MAX_WORKER_THREADS is set to one or greater, set the default number of worker threads to zero. Distribute data more evenly between threads in sqlite3VdbeSorterWrite() to improve performance when sorting large amounts of data. Add new test file sort2.test. (check-in: 643c86a0 user: dan tags: threads)
10:19
Fix a problem with OOM handling in the sorter code. (check-in: 59cd5229 user: dan tags: threads)
01:24
Remove an unnecessary conditional, replacing it with an assert(). Improvements to comments. (Closed-Leaf check-in: 834bf1c3 user: drh tags: overflow-pgno-cache)
2014-03-31
23:57
Fix a compiler warning when SQLITE_DIRECT_OVERFLOW_READ is defined. Minor performance enhancement and size reduction. (check-in: 96385dc4 user: drh tags: overflow-pgno-cache)
22:03
Merge in the latest changes and fixes from trunk. (check-in: f6211540 user: drh tags: overflow-pgno-cache)
20:05
Remove an unnecessary conditional. (Closed-Leaf check-in: 7473c4df user: drh tags: query-plan-experiments)
19:57
Add the SQLITE_MAX_WORKER_THREADS compile time option. And the SQLITE_CONFIG_WORKER_THREADS sqlite3_config() switch. (check-in: 2774710d user: dan tags: threads)
19:49
Also make sure an index that is a proper subset of some other index has a higher cost than that other index. Add test cases. (check-in: b7830d23 user: drh tags: query-plan-experiments)
18:24
Make sure that an index that covers a proper superset of the WHERE clause terms of some other index has a lower cost than the other index. (check-in: ea8b0910 user: drh tags: query-plan-experiments)
13:42
Avoid a (harmless) buffer overread that is possible on an OOM when MEMSYS5 is engaged. (check-in: b3296267 user: drh tags: trunk)
2014-03-29
21:16
Experiments in picking better query plans, especially when the usage of one index is a subset of another. (check-in: 8f869ca7 user: drh tags: query-plan-experiments)
19:48
Changes to make the multi-threaded sorter sort stably. (Closed-Leaf check-in: 83a105c8 user: dan tags: threads-closed)
10:01
Fix a broken assert() in vdbesort.c. (check-in: 18d1b402 user: dan tags: threads)
09:34
Fix a problem in vdbesort.c causing spurious SQLITE_NOMEM errors when using memsys3 or memsys5. (check-in: a683c05f user: dan tags: threads)
06:27
Add the optimization to avoid some unnecessary calls to sqlite3VdbeRecordUnpack() added to the trunk by [707ea170b3]. (check-in: fc4d04e6 user: dan tags: threads)
2014-03-28
19:47
Fix a compiler warning and an after-OOM memory leak. (check-in: 58f7ca29 user: drh tags: orderby-planning)
19:18
Merge latest changes from orderby-planning branch. (check-in: 4c7fb542 user: dan tags: threads)
18:35
Merge the latest changes from trunk. (check-in: 3047a25f user: drh tags: orderby-planning)
14:41
Disable the wal64k.test script for non-unix systems since it depends on unix-only features. (check-in: 27deb6e4 user: drh tags: trunk)
12:56
Fix a harmless compiler warning. (check-in: a4e47150 user: drh tags: trunk)
03:12
Enhance the sqlite3VdbeRecordCompare() routines so that if they encounter database corruption, they will set the UnpackedRecord.isCorrupt field and return 0. The sqlite3BtreeMovetoUnpacked() routine detects this and returns SQLITE_CORRUPT, causing the corruption to be reported back to the top-level. (check-in: 7fa85eaa user: drh tags: trunk)
2014-03-27
19:25
Instead of allocating a single large buffer at the beginning of each sort operation, start with a small buffer and extend it using realloc() as required. (check-in: 81987c8c user: dan tags: orderby-planning)
18:36
Minor cleanup of the code in the query planner that computes the costs estimates for the various plans. There are no changes to the costs at this time. But the code is slightly more readable now and that might facilitate future enhancements. (check-in: 9b4d7226 user: drh tags: trunk)
17:23
Use xFetch() to access temporary files in vdbesort.c. Use a single large allocation instead of many small allocations when accumulating records in vdbesort.c. This is an interim commit - it allocates a buffer the size of the page-cache every time data is sorted. (check-in: f4ac1bf2 user: dan tags: orderby-planning)
14:05
Enhance the logest.c utility with new operators: "dup", "inv", "log", and "nlogn". Provide help on an invalid input. (check-in: b4bd2a06 user: drh tags: trunk)
00:09
Merge the latest trunk changes and the fix for the crash on a corrupt database. (check-in: 0b35346c user: drh tags: orderby-planning)
2014-03-26
19:45
Merge from trunk the fix for the crash on a corrupt database. (check-in: 8cb2b02b user: drh tags: threads)
19:43
Merge in fixes (including the corrupt-database crash fix) and performance enhancements from trunk. (check-in: fc8ca1a8 user: drh tags: sessions)
18:51
Version 3.8.4.2 (check-in: 02ea1663 user: drh tags: release, version-3.8.4.2, branch-3.8.4)
16:25
Increase the version number to 3.8.4.2. (check-in: 59978a2e user: drh tags: branch-3.8.4)
16:22
Fix a potential buffer overread that could have occurred when searching a corrupt database file. (check-in: db293547 user: drh tags: branch-3.8.4)
15:14
Add an extra test case for the potential buffer overread patched by [28ddecff04]. (check-in: f585f5d7 user: dan tags: trunk)
15:05
Add a test case to verify that the previous change avoids excess buffer overread in sqlite3VdbeRecordCompare(). (check-in: 2b28e8d5 user: drh tags: trunk)
14:51
Earlier detection of corruption in sqlite3VdbeRecordCompare() in order to avoid a potential buffer overread. (check-in: 28ddecff user: drh tags: trunk)
12:02
Add an assert() and a comment to clarify the operation of the vdbeRecordCompareInt() routine. (check-in: 851abdb8 user: drh tags: trunk)
2014-03-25
20:28
Adjust the repeat counts on several tests in speedtest1 so that the relative time spent on the test is roughly the same regardless of --size. (check-in: 7922809e user: drh tags: trunk)
18:29
Merge enhancements and fixes from trunk. (check-in: e005f2d6 user: drh tags: orderby-planning)
17:45
Add another performance test case to speedtest1. This case is another ORDER BY test but this time without LIMIT. (check-in: 9ab7ffd5 user: drh tags: trunk)
17:07
Fix a problem in the code added by [707ea170b3] causing vdbesort.c to sort unstably. (check-in: d3e640af user: dan tags: orderby-planning)
15:04
Remove the sequence values from sorter records used by ORDER BY as well. (check-in: c3ae3697 user: dan tags: orderby-planning)
14:54
Add an ORDER BY test case to speedtest1.c (check-in: 58812264 user: drh tags: trunk)
14:12
Enable four sorting threads by default in the command-line shell. (check-in: 1cab8357 user: drh tags: threads)
13:17
Merge all fixes and enhancements from trunk. (check-in: b415dfb6 user: drh tags: threads)
11:00
Detect when a VdbeCursor is still pointing at a valid row but that row has moved, and invalidated the return from prior sqlite3BtreeDataFetch() or sqlite3BtreeKeyFetch() calls. (check-in: e6798871 user: drh tags: trunk)
2014-03-24
20:19
Omit the sequence value from sorter records used by GROUP BY queries that cannot use an index. (check-in: 3f90abdd user: dan tags: orderby-planning)
18:08
Avoid unnecessary moving of content between registers during an ORDER BY. (check-in: 4f472acc user: drh tags: orderby-planning)
16:30
Remove unused variables Parse.nColCache and Parse.iColCache. (check-in: 4d7551ce user: dan tags: trunk)
15:00
Fix arithmetic operators so that they do not change the affinity of their input operands. Ticket [a8a0d2996a]. (check-in: 221f8f94 user: drh tags: trunk)
12:33
Cancel column-cache entries that are involved in a comparison operator since the comparison might have forced an affinity change. Originally proposed as a fix for ticket [a8a0d2996a], but later determined to be incorrect. (Closed-Leaf check-in: 0b95b7a8 user: drh tags: tkt-a8a0d2996a)
11:23
Avoid attempting to mmap memory from an offset that is not a multiple of the system page size on systems with page sizes larger than 32KB. (check-in: db7d62c8 user: dan tags: trunk)
09:34
Remove an unnecessary temporary register allocation. (check-in: 5d506743 user: dan tags: orderby-planning)
02:20
Remove a pointless OP_Once operation in ORDER BY clauses with LIMIT. (check-in: e6c59d23 user: drh tags: orderby-planning)
01:43
Further enhancements to generated VDBE code for ORDER BY. (check-in: e7188fad user: drh tags: orderby-planning)
2014-03-23
18:47
merge fixes from trunk (check-in: faf7f9ca user: drh tags: orderby-planning)
17:45
Use only a single OP_MakeRecord instead of two when constructing entries to go onto a sorter. (check-in: d696cded user: drh tags: orderby-planning)
16:29
Avoid a possible use of an uninitialized variable following an I/O or OOM error. (check-in: 641408a1 user: drh tags: trunk)
2014-03-22
02:19
Clear the sort-order flags on the KeyInfo object associated with the OP_Compare/OP_Jump of the block-sort logic, in order to make the OP_Jump fully testable. (check-in: 9b2838f2 user: drh tags: trunk)
01:52
Increase the version number to 3.8.5. (check-in: 9760879d user: drh tags: trunk)
00:27
Fix the ORDER BY optimization logic so that it will do a block-sort on a partial DESC ORDER BY. This enhancement uncovered a memory leak in pushUntoSorter() which is also fixed. (check-in: c36f7461 user: drh tags: trunk)
2014-03-21
20:58
Add the ability to use indices for the first few terms of an ORDER BY clause, then sort in batches to handle the later terms. (check-in: fa06a6fe user: drh tags: trunk)
19:56
Change the names of SRT_DistTable and SRT_Table used by CTE to more meaningful SRT_DistFifo and SRT_Fifo, respectively. Simplify the IgnorableOrderby() macro in the process. (check-in: 45d8cc67 user: drh tags: trunk)
19:27
Avoid leaking memory in an obscure case where the flattener adds an ORDER BY clause to the recursive part of a recursive query. (check-in: 1f413aca user: dan tags: trunk)
18:45
Merge the OFFSET-on-query-without-FROM fix from trunk. (check-in: 71e9ae72 user: drh tags: orderby-planning)
18:16
Fix the OFFSET clause so that it works correctly on queries that lack a FROM clause. Ticket [07d6a0453d4ed8]. (check-in: 179ef816 user: drh tags: trunk)
15:24
New test case for block-sorting. (check-in: e70cfa28 user: drh tags: orderby-planning)
2014-03-20
20:56
Merge trunk fixes for "x IN (?)" handling. (check-in: eca35871 user: drh tags: orderby-planning)
19:04
Remove a testcase() that is now always true due to the "x IN (?)" optimization. Add an ALWAYS() around a conditional in the parser that cannot be false. (check-in: d5a1530b user: drh tags: trunk)
18:56
Only use the direct-overflow-read optimization if all data from the overflow page in question is being read. (check-in: d8e1f75d user: dan tags: overflow-pgno-cache)
18:45
Fix the EXPLAIN indenter in the command-line shell to correctly handle NextIfOpen and PrevIfOpen opcodes. (check-in: 01944c53 user: drh tags: trunk)
17:03
The "x IN (?)" optimization in check-ins [2ff3b25f40] and [e68b427afb] is incorrect, as demonstrated by the in4-5.1 test case in this check-in. The "COLLATE binary" that was being added to the RHS of IN was overriding the implicit collating sequence of the LHS. This change defines the EP_Generic expression node property that blocks all affinity or collating sequence information in the expression subtree and adds that property to the expression taken from RHS of the IN operator. (check-in: 2ea4a9f7 user: drh tags: trunk)
15:14
Fix harmless compiler warnings. (check-in: b1435f26 user: drh tags: trunk)
14:56
Previous check-in is not quite correct. "x IN (?)" is not exactly the same as "x==?" do to collation and affinity issues. The correct converstion should be to "x==(+? COLLATE binary)". The current check-in fixes this problem and provides test cases. Ticket [e39d032577df69] (check-in: 2ff3b25f user: drh tags: trunk)
13:26
Convert expressions of the form "X IN (?)" with exactly one value on the RHS of the IN into equality tests: "X=?". Add test cases to verify that statements work correctly on this corner case. Fix for ticket [e39d032577df6942]. (check-in: e68b427a user: drh tags: trunk)
12:36
One possible fix for the [e39d032577d] problem it to replace the failing assert() with a testcase() as shown here. (Closed-Leaf check-in: eae6dfbe user: drh tags: tkt-e39d0325)
12:17
Fix an unnecessarily obtuse use of a bitmask flag. (check-in: ca314081 user: drh tags: trunk)
09:42
Add a test to ensure os_unix.c works with 64KiB OS pages. (Closed-Leaf check-in: e3d2be3b user: dan tags: shm-mapping-fix)
08:59
Add an experimental fix to avoid attempting to mmap memory from an offset that is not a multiple of the system page size on systems with page sizes larger than 32KB. (check-in: 6f3a5c24 user: dan tags: shm-mapping-fix)
2014-03-19
23:42
Merge the vdbesort.c optimization from trunk. (check-in: e4bfffb9 user: drh tags: orderby-planning)
23:24
Fix query planner weights associated with choosing block-sorting. Fix block sorting of tables with collating functions. Fix various test cases. All "veryquick" tests are now passing, though more tests need to be added. (check-in: 01afbf97 user: drh tags: orderby-planning)
20:01
Avoid some unnecessary calls to sqlite3VdbeRecordUnpack() that were being made when merging data from two or more temp files together in vdbesort.c (check-in: 707ea170 user: dan tags: trunk)
17:41
Make it possible for block-sort to use the OP_SorterOpen sorter in addition to a generic OP_OpenEphemeral. (check-in: 7ce2daaf user: drh tags: orderby-planning)
16:56
Fix a problem in the block-sort logic that can arise if the VDBE opcode array is resized while the block-sort logic is being coded. "make test" now runs to completion, though there are still 17 failures. (check-in: 62f3a220 user: drh tags: orderby-planning)
15:17
Avoid reusing temporary registers in co-routines when doing block-sorting. (check-in: 463d921b user: drh tags: orderby-planning)
14:30
Make sure the where.c query planner never reports that the number of ORDER BY terms that are satisfied by indices is negative. (check-in: b186d8d1 user: drh tags: orderby-planning)
14:10
First attempt at getting block-sort to work. This is an incremental check-in. There are many problems still to be worked out. (check-in: 59742dd4 user: drh tags: orderby-planning)
2014-03-18
20:33
Make the partial-ORDER-BY information in the query planner available to the SELECT code generator. Still doesn't make a difference in the generated code. (check-in: e258df23 user: drh tags: orderby-planning)
18:59
Adjust the query planner to keep track of the number of ORDER BY terms satisfied. Still doesn't do anything with this information. Some tests fail after this check-in, but all failures are believed to be benign. The failures will be addressed at a later stage. (check-in: 59d49b7f user: drh tags: orderby-planning)
15:30
Experiments with the optimization of ORDER BY and GROUP BY clauses. (check-in: b1509025 user: drh tags: orderby-planning)
2014-03-17
15:43
Add an experimental multi-threaded capability to vdbesorter.c. (check-in: ff0b5c85 user: dan tags: threads)
15:06
Clean up some obsolete "register" declarations in printf.c. (check-in: ecd9d3f9 user: drh tags: trunk)
14:24
Performance enhancements and size reduction for sqlite3VXPrintf() (check-in: eb071eb5 user: drh tags: trunk)
2014-03-14
11:46
Fix a harmless compiler warning that crops up with SQLITE_MAX_MMAP_SIZE=0. (check-in: 1277932b user: drh tags: trunk)
2014-03-13
15:41
Merge latest trunk changes into this branch. (check-in: d17231b6 user: dan tags: threads)
2014-03-12
19:38
Fix an obscure bug causing sqlite3_close() to fail if there are virtual tables on the disconnect list when it is called. (check-in: 6504aa47 user: dan tags: trunk)
19:20
Changes to FTS to ensure that it does not access the database from within the xConnect method. (check-in: c67a52c3 user: dan tags: trunk)
12:44
Prevent the rtree module from reading sqlite_stat1 data from the wrong database. (check-in: 7ce03c1b user: dan tags: trunk)
10:03
Bump the version number to 3.8.4.1., to conform with trunk. (check-in: 42c9d8fc user: drh tags: sessions)
2014-03-11
23:44
Remove a stray C99-style comment. (check-in: f500e87d user: drh tags: overflow-pgno-cache)
23:40
Combine the various boolean fields of the BtCursor object into a single bit-vector. This allows setting or clearing more than one boolean at a time and makes the overflow-pgno-cache branch faster than trunk on speedtest1. (check-in: 968fec44 user: drh tags: overflow-pgno-cache)
20:33
Enable the b-tree cursor object's overflow page-number cache, which is normally enabled only for incr-blob cursors, for all cursors. (check-in: da591985 user: dan tags: overflow-pgno-cache)
15:27
Version 3.8.4.1 (check-in: 018d317b user: drh tags: trunk, release, version-3.8.4.1)
15:25
Update version number to 3.8.4.1 (check-in: 33f5694f user: drh tags: trunk)
14:44
Forgot to change the VERSION file. (Closed-Leaf check-in: 04caffce user: drh tags: mistake)
09:19
Add a test to see what happens if an rtree constructor encounters an SQLITE_BUSY error. No changes to code. (check-in: 5527e236 user: dan tags: trunk)
01:48
Version 3.8.4 for sessions (plus two minor fixes). (check-in: 917c4108 user: drh tags: sessions)
2014-03-10
20:12
Adjustments to the cost computation for the skip-scan query plan, to take into account the fact that a seek has to occur on each skip. (check-in: 0769eebd user: drh tags: trunk)
18:03
Attempt to work around MSVC's treatment of __LINE__ as a non-constant value in "Edit and Continue" mode by avoiding the use of __LINE__ when SQLITE_VDBE_COVERAGE is not defined. (check-in: 0a5318bc user: drh tags: trunk)
12:20
Version 3.8.4 (check-in: 530a1ee7 user: drh tags: trunk, release, version-3.8.4)
2014-03-08
19:07
Fix a bug causing "SELECT char()" to return SQLITE_NOMEM. (check-in: ba39df9d user: dan tags: trunk)
2014-03-07
14:57
Improved comment on the pager.c PERSIST rollback journal delete logic inside of hasHotJournal(). No changes to code. (check-in: e5b17a9d user: drh tags: trunk)
14:36
Merge the fix for the journal_mode=PERSIST error recovery delay bug. (check-in: bb6a75f4 user: drh tags: sessions)
03:31
Revise change from the previous check-in to clarify the situation when handling open journal files, regardless of journal mode. (check-in: 1c318ef3 user: mistachkin tags: trunk)
02:29
Avoid calling sqlite3OsDelete() on a file that is open, since this causes Windows to run *very* slowly. Comes up on error recovery in journal_mode=PERSIST. (check-in: fdc651e2 user: mistachkin tags: trunk)
2014-03-06
18:16
Do not run corruptH.test in mmap mode. (check-in: c0d54b4e user: dan tags: trunk)
15:01
Fix a harmless compiler warning in the sessions test harness. (check-in: d389e20a user: drh tags: sessions)
14:53
Enhance the test harness for the sessions interface so that it does not use SQLite operations that can encounter an OOM error in places where it is unable to report an OOM error back up to the test script. (check-in: bc0e6610 user: drh tags: sessions)
13:48
Merge the latest 3.8.4 tweaks from trunk. (check-in: 1ed463d9 user: drh tags: sessions)
13:38
Improved EXPLAIN indentation of a loop in the ANALYZE logic for STAT4. Mark the not-found jump of a seek operation in that loop as never taken. (check-in: 0a4200f9 user: drh tags: trunk)
12:36
Remove a branch that is never taken from where.c. (check-in: 4a499722 user: dan tags: trunk)
02:15
Cosmetic change to the shell in-memory database warning to skip coloring the trailing period. (check-in: c87d8e07 user: mistachkin tags: trunk)
01:56
Fix some incorrect comments and typos in comments. Add testcase() macros to some of the new record comparison code. (check-in: b83cfe89 user: drh tags: trunk)
00:30
Better loadable extension handling in the Win32 VFS when compiled for Cygwin. (check-in: 29b0a4f1 user: mistachkin tags: trunk)
00:28
Better support for MinGW 4.x. (check-in: 170e0585 user: mistachkin tags: trunk)
2014-03-05
23:12
Merge compiler-warning fixes from trunk. (check-in: a1f2b042 user: drh tags: sessions)
19:36
Always include the ctype.h header in the spellfix.c extension. (check-in: bfd75f47 user: drh tags: trunk)
19:13
Avoid running a couple of test cases that use realloc() extensively if SQLITE_MEMDEBUG is defined. (check-in: e406d4bb user: dan tags: trunk)
19:04
Fix a harmless compiler warning on MSVC. (check-in: 0723effc user: drh tags: trunk)
17:29
Add SQLITE_OMIT_CTE to the list of compile options that might be returned by "PRAGMA compile_options". (check-in: f33f2b3f user: dan tags: trunk)
16:15
Add tests to join.test to verify that it is not possible to use more than 64 tables in a join. (check-in: ef1a9986 user: dan tags: trunk)
15:52
Count the number of elements in a SrcList object using an "int" rather than a "u8", to avoid overflows and to work around an issue in the C compiler on AIX. (check-in: eee2a13f user: drh tags: trunk)
15:04
Add a test case for the problem fixed by [1d134ba2ed]. (check-in: d4fbc05d user: dan tags: trunk)
14:49
Merge in various obscure bug fixes and the removal of Mem.memType from trunk. (check-in: 0828975d user: drh tags: sessions)
14:40
When converting a result type from TEXT to BLOB using the sqlite3_value_blob() interface, continue to report SQLITE_TEXT as the true type from sqlite3_value_text() as long as that text is still valid. The maintains legacy behavior from before the noMemType change. (check-in: 1d134ba2 user: drh tags: trunk)
12:47
Separate the column NULL value constant into a separate routine for greater commonality with the sessions branch. (check-in: 12cbebb9 user: drh tags: trunk)
11:48
Remove the redundant memType field from struct Mem. (check-in: 9e852857 user: dan tags: trunk)
11:22
Do not run corruptI.test with the mmap permutation. (check-in: 378b290d user: dan tags: trunk)
01:29
Experimental simplification of memory flags/type handling. (Closed-Leaf check-in: bac2820e user: mistachkin tags: noMemType)
2014-03-04
21:19
Avoid indexing off the front end of an array when creating a view with two or more blank column names in the SELECT statement that defines the view. (check-in: 554501f1 user: drh tags: trunk)
21:00
Fix a problem with "DEFAULT (-(-9223372036854775808))" clauses in ALTER TABLE ... ADD COLUMN commands. (check-in: e072cb3e user: dan tags: trunk)
18:06
Fix a potential memory use-after-free problem following an OOM error. (check-in: 767ccb1f user: drh tags: trunk)
16:21
Fix an assert() so that it takes OOM errors into account. (check-in: 53f6ec79 user: drh tags: trunk)
16:05
Ensure that BtreeMovetoUnpacked() does not try to invoke xRecordCompare when it is set to NULL. (check-in: 2879234b user: dan tags: trunk)
14:34
Merge the performance enhancements of trunk (and some obscure bug fixes) into the sessions branch. (check-in: 7f51ad97 user: drh tags: sessions)
13:18
Improve clarity of presentation in the sqlite3VdbeMemFromBtree() routine. (check-in: 9830c343 user: drh tags: trunk)
12:07
Fix comment in test. (check-in: 1e57f67b user: mistachkin tags: trunk)
11:54
Fix minor typos in the new test file. (check-in: 3cbb9b1b user: mistachkin tags: trunk)
11:35
Add tests to verify the fix for bug [4ef7e3cfca]. (check-in: 62410bb8 user: dan tags: trunk)
11:29
Fix name resolution problem in sub-selects within triggers, ticket [4ef7e3cfca]. (check-in: 5bcd0b1c user: mistachkin tags: trunk)
11:16
Fix harmless compiler warning. (check-in: 8d18a803 user: mistachkin tags: trunk)
04:12
Refactor the sqlite3VdbeRecordCompare() routine used to compare btree records. Create fast-track special case routines to handle the common cases more quickly. This gives a significant performance boost. (check-in: 3325ad5b user: drh tags: trunk)
04:04
Fix more instances of assuming 'char' is signed. And, make sure to never shift a signed integer. (Closed-Leaf check-in: f10130ed user: drh tags: broken-on-arm)
00:15
Do not assume that 'char' is signed. Make it explicit. (check-in: 979da752 user: drh tags: broken-on-arm)
2014-03-03
21:59
Refactor the sqlite3VdbeRecordCompare() routine used to compare btree records. Create a couple of fast-track routines to handle the common cases of a string with BINARY collation or integer values as the left-most column. This gives a significant performance boost in common use. Oops: This build does not work on the Beaglebone where "char" defaults to unsigned. (check-in: aec5473a user: drh tags: broken-on-arm)
21:46
Fix a couple of harmless compiler warnings. (Closed-Leaf check-in: fcf480cc user: drh tags: experimental)
20:48
Avoid a buffer overread in vdbeCompareRecordInt() that might occur if the database is corrupt. (check-in: 7c0b4381 user: dan tags: experimental)
19:29
Fix a typo in a comment. No changes to code. (check-in: 1f4991ab user: drh tags: experimental)
18:25
Fix compiler warnings. (check-in: ba899372 user: drh tags: experimental)
17:48
Merge latest trunk changes. (check-in: 1d603564 user: dan tags: experimental)
17:36
Change an OP_SCopy into an OP_Copy in a case where the destination might be used after the source has changed. (check-in: c0fa0c0e user: drh tags: trunk)
16:48
Change the "explain_i" tcl test command so that xterm color codes are only added if the output is actually a terminal. (check-in: 559835e5 user: dan tags: trunk)
15:13
Fix a harmless compiler warning. (check-in: d7f6837e user: drh tags: experimental)
14:45
Merge latest trunk changes. (check-in: e00ed717 user: dan tags: experimental)
14:20
Fix a segfault that can occur following an OOM error. (check-in: 7fdd378d user: dan tags: trunk)
00:12
Change the MEM_Dyn flag so that it means that Mem.xDel exists and must be used to free the string or blob. Add tighter invariant checks on Mem. (check-in: e3f6c61e user: drh tags: trunk)
2014-03-01
19:45
Merge trunk changes. (check-in: 9c1747b5 user: dan tags: experimental)
19:44
Remove the vdbeRecordCompareLargeHeader function. Fix some other details. (check-in: 3861e853 user: dan tags: experimental)
18:13
Change the MEM_Dyn flag so that it means that Mem.xDel exists and must be used to free the string or blob. Add tighter invariant checks on Mem. (Closed-Leaf check-in: 44e1c337 user: drh tags: enhanced-mem-check)
16:24
Factor the Mem invariant checker into a separate procedure (rather than a macro) so that it can be more easily extended. (check-in: 354699d5 user: drh tags: enhanced-mem-check)
14:45
Add extra assert() statements trying to catch a Mem object in an inconsistent state. (check-in: 4aeb3ae4 user: drh tags: enhanced-mem-check)
2014-02-28
20:47
In the command-line shell add the (undocumented and unsupported) ".eqp" command and -eqp command-line option, to cause EXPLAIN QUERY PLAN to be run on each SQL statement as it is evaluated. Intended use is for analysis of the query planner. (check-in: e6ecf733 user: drh tags: trunk)
19:37
Provide an #ifdef in shell.c to work around issues when cross-compiling from Ubuntu to windows. (check-in: 0a3579d9 user: drh tags: trunk)
18:39
Update some test cases that deal with corrupt databases. (check-in: 3a09f560 user: dan tags: experimental)
09:48
Minor tweak to vdbeRecordCompareInt(). (check-in: 284bde0e user: dan tags: experimental)
2014-02-27
20:52
Merge in latest trunk changes. (check-in: 8f30b095 user: dan tags: experimental)
20:44
Further changes to sqlite3VdbeRecordCompare(). (check-in: 57089374 user: dan tags: experimental)
15:11
A better way of handling the USE_SYSTEM_SQLITE #define in shell.c. (check-in: 51ce713c user: drh tags: trunk)
15:04
Add #defines to the command-line shell source code (shell.c) so that it can be imported directly into other projects (ex: Fossil) and used without editing. (check-in: a6690400 user: drh tags: trunk)
05:47
Merge updates from trunk. (check-in: ed0bfcfa user: mistachkin tags: winIoRetry)
2014-02-26
21:35
More efficient removal of duplicates in recursive queries using the UNION compound operator. (check-in: 06c2db87 user: drh tags: trunk)
19:05
Only run the OP_OpenRead opcodes for a correlated subquery once, on the initial iteration. Keep the cursor open for subsequent runs. This was suppose to be a performance enhancement, but it is difficult to come up with a query where is makes a significant difference. Hence, the change is getting parked in a branch. (Leaf check-in: 3ad687b7 user: drh tags: open-only-once)
13:53
In the command-line shell for CSV import, if the lines are \r\n terminated and the last field is blank, make sure an empty string and not a "\r" string is imported. (check-in: 9c2e7612 user: drh tags: trunk)
02:26
Improved handling of constants and especially constant functions in the ORDER BY clause of a query. Do not optimize out "ORDER BY random()". Fix for ticket [65bdeb9739605cc2296]. (check-in: dca1945a user: drh tags: trunk)
2014-02-25
21:55
Do not allow temporary registers to be in use across an OP_Yield within a co-routine. Fix for ticket [8c63ff0eca81a9132d8]. (check-in: 97a8c973 user: drh tags: trunk)
21:01
Attempt to speed up sqlite3VdbeRecordCompare() by various means. This code is in an interim state. (check-in: 85206e0b user: dan tags: experimental)
19:38
Make sure temporary registers used within a co-routine are not also used outside of that co-routine, in order to prevent concurrent use of the same register for two different things. Ticket [8c63ff0eca81a9132d8] (Closed-Leaf check-in: cc5eda54 user: drh tags: tkt-8c63ff0eca)
18:12
Also adjust the order of files in the amalgamation to ensure that _FILE_OFFSET_BITS is defined before any #include, for QNX. (check-in: 23001a85 user: drh tags: trunk)
14:52
QNX requires that _FILE_OFFSET_BITS be set prior to any system #include. (check-in: 953cdd6a user: drh tags: trunk)
2014-02-24
21:42
Fix several small style/consistency issues with the previous check-in. (check-in: 2477b3a2 user: mistachkin tags: trunk)
21:23
Merge updates from trunk. (Closed-Leaf check-in: 854d410a user: mistachkin tags: cygDlOpen)
21:20
Enhance testing support for the Win32 VFS dynamic extension loading facilities. (check-in: 53081e72 user: mistachkin tags: trunk)
19:49
Close some stray connections in walro.test. (check-in: d6746cab user: dan tags: trunk)
19:07
In memsys5, initialize new allocations to non-zero bytes. Change the content of freed allocations to prevent use after free. These changes in SQLITE_DEBUG only. (check-in: ba5f0a55 user: drh tags: trunk)
14:24
Remove an unused variable from the VDBE_PROFILE compile-time option. Keep the opcode count in an u32 instead of an int. (check-in: 4df0ac90 user: drh tags: trunk)
2014-02-21
10:48
Merge updates from trunk. (check-in: 09cf240a user: mistachkin tags: winHdr)
05:44
Better loadable extension handling in the Win32 VFS when compiled for Cygwin. (check-in: 6676475c user: mistachkin tags: cygDlOpen)
2014-02-20
19:42
Fix the text of a comment used to generate VDBE opcode documentation so that it omits symbols that can be mistaken for a hyperlink by the parser. (check-in: b46d4e89 user: drh tags: trunk)
19:32
Fix a harmless shadowed-variable warning. (check-in: 82402909 user: drh tags: trunk)
19:23
Make sure that the difference between two string pointers is passed into sqlite3_mprintf() as type "int". (check-in: d5d973fe user: drh tags: trunk)
2014-02-19
19:14
Add the VdbeCoverageNeverTaken() macro, and comments that better describe how the VDBE branch coverage measurement works. Add some tags to provide 100% VDBE branch coverage. (check-in: c1e94169 user: drh tags: trunk)
14:20
Add the SQLITE_NOTNULL P5 code for comparison operations - really a composite of SQLITE_NULLEQ and SQLITE_JUMPIFNULL. This flag indicates that NULL operands are not possible and raises and assert() if NULL operands are seen. Also omit an unnecessary scan of the sqlite_sequence table when writing into an AUTOINCREMENT table. (check-in: d2c047f3 user: drh tags: trunk)
01:31
Make sure a multi-row VALUES clause works correctly in a compound SELECT. (check-in: 85b355cf user: drh tags: trunk)
00:53
Tweaks in support of VDBE branch test coverage. (check-in: b9782564 user: drh tags: trunk)
2014-02-18
11:31
Fix VDBE branch accounting on comparison operators. (check-in: b287520c user: drh tags: trunk)
05:18
Enhance the Win32 VFS I/O retry logic. (check-in: adba783c user: mistachkin tags: winIoRetry)
03:07
Add VdbeCoverage() and VdbeCoverageIf() macros for improved VDBE coverage testing. (check-in: b92d31a9 user: drh tags: trunk)
01:07
Improvements to "NOT IN (SELECT ...)" processing. Only test for NULL values on the RHS on the first iteration, then remember the result. There has been logic to do this for year, but it didn't work right and ended up repeating the NULL test on every iteration. This inefficiency was found using the VDBE coverage testing tools. (check-in: 915f6f1c user: drh tags: trunk)
2014-02-17
23:52
Merge in performance enhancements for INSERT operations, especially INSERTs on tables that have no affinity columns or that have many indices or INSERTs with content coming from a SELECT. Add the SQLITE_TESTCTRL_VDBE_COVERAGE test control and the SQLITE_VDBE_COVERAGE compile-time option used for measure coverage of branches in VDBE programs. (check-in: a7268769 user: drh tags: trunk)
22:40
Add logic to do test coverage measurements on the VDBE code. (Closed-Leaf check-in: ce184c7b user: drh tags: insert-optimization)
15:40
Add a test case for OP_SoftNull. (check-in: f29d194e user: drh tags: insert-optimization)
15:36
Merge the VDBE_PROFILE fixes from trunk. (check-in: 2914e419 user: drh tags: insert-optimization)
14:59
Avoid unnecessary calls to applyAffinity() during INSERT and UPDATE operations, especially for table that have indices and tables for which all columns have affinity "NONE". (check-in: 35b4d6e9 user: drh tags: insert-optimization)
01:13
Fix the VDBE_PROFILE logic. Add a script to process the output file. (check-in: 7adb3da2 user: drh tags: trunk)
2014-02-16
19:20
Use the modern MinGW major version macro, not the deprecated one. (Closed-Leaf check-in: 057c16ee user: mistachkin tags: mingw4x)
01:55
Enhance the code generator for INSERT INTO ... SELECT so that the SELECT generates output directly in the registers that INSERT INTO will be using, in many cases, and OP_SCopy operations can thus be avoided. (check-in: aa2d8b0e user: drh tags: insert-optimization)
2014-02-14
23:49
Seek past NULLs in a top-constrained search. Avoid checking for NULLs in the body of the search. (check-in: e07a32f3 user: drh tags: trunk)
23:35
Better support for MinGW 4.x. (check-in: e1472307 user: mistachkin tags: mingw4x)
20:59
Reduce the number of cases where it is necessary to check for NULL after the loop terminating condition. (check-in: 3c1ae447 user: drh tags: trunk)
15:13
Add OP_IdxGT and OP_IdxLE as distinct opcodes. Formerly these operations where done using OP_IdxGE and OP_IdxLT with the P5 flag set. But VDBE code is easier to read with distinct opcode names. Also change OP_SeekGe to OP_SeekGE, and so forth, so that the capitalization is consistent. The whole point of this change is to improve the readability of VDBE listings. (check-in: b6bea903 user: drh tags: trunk)
00:25
Revise how the Tcl system encoding is handled by the test suite. (check-in: 9e573198 user: mistachkin tags: trunk)
2014-02-13
21:57
Improvements to the makefile and README for MSVC. (check-in: b22b6140 user: mistachkin tags: trunk)
19:27
Ensure that if the "psow=0" URI option or FCNTL_POWERSAFE_OVERWRITE file-control is used to clear the power-safe overwrite flag, extra padding frames are added to the WAL file. (check-in: 48c821fd user: dan tags: trunk)
19:10
Change README to README.md and expand it. Remove unrelated and obsolete files. (check-in: 18d4e258 user: drh tags: trunk)
18:46
Avoid passing a flags argument with the internal WAL_SYNC_TRANSACTIONS bit set when calling sqlite3OsSync(). (check-in: e3b79e92 user: dan tags: trunk)
13:42
Update the tclconfig files to the latest from http://core.tcl.tk/tclconfig. (check-in: b81ba7a4 user: drh tags: trunk)
2014-02-12
23:52
Minor simplifications to the "zeroPage()" routine in btree.c. (check-in: cc8f10bc user: drh tags: trunk)
21:31
Remove the "rowid cache" that sought to remember the largest rowid for a table and thereby speed up OP_NewRowid. That cache was ineffective. Removing it results in a performance increase of 0.4%, less memory usage, and a slightly smaller library size. (check-in: 56bc5ce8 user: drh tags: trunk)
15:05
Various fixes and test case updates so that veryquick.test passes again. (Leaf check-in: f352ef57 user: dan tags: deferred-open)
14:43
Make sure "rowid" columns are correctly resolved in joins between normal tables and WITHOUT ROWID tables. Fix for ticket [c34d0557f740c45070]. (check-in: 5d01426d user: drh tags: trunk)
14:43
Merge latest trunk changes. (check-in: 4d7057c4 user: dan tags: deferred-open)
2014-02-11
19:35
Test case updates to account for the fact that database files are not created until they are first written. (check-in: 8ef97420 user: dan tags: deferred-open)
16:31
Sync with trunk. Bring in the command-line shell updates and the new 3.8.4 version number. (check-in: 2cd35ff6 user: drh tags: sessions)
16:24
Increase the version number to 3.8.4 (check-in: 0a8bcbbd user: drh tags: trunk)
16:22
Updates to the command-line shell. Simplify the banner message. Add the ".save" command as an alias for ".backup". When starting with no arguments, include a banner message warning that the database is transient and in-memory and mention the ".open" command. (check-in: f5ad1e1b user: drh tags: trunk)
14:52
Version 3.8.3.1 (check-in: ea3317a4 user: drh tags: release, version-3.8.3.1, branch-3.8.3)
14:37
Fixes to the "editline" support in the command-line shell. (check-in: 7989ce5f user: drh tags: trunk)
05:26
Merge latest trunk changes. (check-in: 1f2e1b0c user: dan tags: deferred-open)
04:30
Sync the latest trunk changes, and in particular the STAT4 IS NOT NULL fix. (check-in: b0067926 user: drh tags: sessions)
03:55
Increase the version number to 3.8.3.1. (check-in: 3111df71 user: drh tags: branch-3.8.3)
03:50
Make sure that virtual WHERE-clause terms do not get transformed into real terms when processing set of OR-connected terms. Fix for ticket [4c86b126f22ad]. (check-in: de635e09 user: drh tags: branch-3.8.3)
01:50
Make sure that virtual WHERE-clause terms do not get transformed into real terms when processing set of OR-connected terms. Fix for ticket [4c86b126f22ad]. (check-in: c950d6c4 user: drh tags: trunk)
2014-02-10
21:09
Fix a bug causing the POWERSAFE_OVERWRITE device-characteristic flag to be set incorrectly if file opening is deferred. (check-in: 95d0c58d user: dan tags: deferred-open)
21:07
Fix a pointless conditional. Add a test case. (check-in: 9367632d user: drh tags: trunk)
19:59
Add the ".save" command as an alias for ".backup". Improvements to the way font changes are implemented on the in-memory database warning. (Closed-Leaf check-in: fe284afe user: drh tags: memdb-warning)
19:37
Experimental change to os_unix.c to delay creating a database file until it is first written. (check-in: 538f7b25 user: dan tags: deferred-open)
19:36
On unix, make the "transient in-memory database" text bold, but not red. Leave the text read on windows. (check-in: c9eba2f7 user: drh tags: memdb-warning)
19:27
In the command-line shell, on the banner, warn about the use of a transient in-memory database in bold red text. (check-in: 0fbc0fce user: drh tags: memdb-warning)
18:56
Fix the compound-select-to-subquery converter so that it works with the new compound-select object linkage introduced as part of the fix for ticket [31a19d11b97088296]. (check-in: 572d4be4 user: drh tags: trunk)
16:13
Modify the command-line shell to print a warning when using an in-memory database. (check-in: 90e9deae user: drh tags: memdb-warning)
15:56
Improvements to a "Synopsis:" comment in the VDBE engine. (check-in: 0dfa7ee9 user: drh tags: trunk)
12:59
Faster implementation for sqlite3MulInt64(). (check-in: 010c48f6 user: drh tags: trunk)
03:21
Faster and smaller implementation of sqlite3_value_type(). (check-in: 5708bc24 user: drh tags: trunk)
2014-02-09
23:59
Add a compound-query test to the speedtest1 test program. (check-in: 53299575 user: drh tags: trunk)
18:02
Use the WITH clause to help resolve names for SELECT statements on the left of a compound query. Proposed fix for ticket [31a19d11b97088296a]. (check-in: 67bfd59d user: drh tags: trunk)
00:52
Add the Mandelbrot Set testcase to the "cte" testset of speedtest1. (check-in: 56febbeb user: drh tags: trunk)
00:18
Add a new "testset" to the speedtest1 program: The sudoku solver. (check-in: 4677ef2f user: drh tags: trunk)
2014-02-08
23:20
Do away with the "multi-register pseudo-table" abstration. Instead, just use an OP_SCopy to load results directory from the result registers of the co-routine. (check-in: 1e64dd78 user: drh tags: trunk)
19:12
Change the OP_Found opcode so that it expands zero-blobs prior to comparing them. Fix for ticket [fccbde530a6583b] (check-in: e2303d1b user: drh tags: trunk)
13:24
Fix a harmless compiler warning in VS2013. (check-in: 83116ee3 user: drh tags: trunk)
13:22
Fix a harmless compiler warning in VS2013. (check-in: 35f2793d user: drh tags: branch-3.8.3)
13:12
Tweaks to the generated VDBE code to make it a little easier to follow. (check-in: 129217ee user: drh tags: trunk)
04:24
Enable constant expression factoring even if no tables are read and no transaction is started. (check-in: a45b8771 user: drh tags: trunk)
01:40
Change the OP_Trace opcode to OP_Init and give it the ability to jump to the initialization code at the bottom of the program, thus avoiding the need for an extra OP_Goto. (check-in: 192dea97 user: drh tags: trunk)
2014-02-07
22:21
Add opcodes OP_InitCoroutine and OP_EndCoroutine. Use these to remove the need for separate boolean registers to record when a co-routine has finished. (check-in: 5a88b6a7 user: drh tags: trunk)
19:33
Fix redundant definitions of _LARGE_FILE and _LARGEFILE_SOURCE. (check-in: 4043d879 user: drh tags: trunk)
19:26
In the TCL bindings, make sure Tcl_AppendResult() is always terminated by "(char*)0" and not just "0". (check-in: ea4d23d1 user: drh tags: trunk)
19:18
Change the OP_InitCoroutine instruction to jump over the co-routine implementation. (Closed-Leaf check-in: a522f364 user: drh tags: coroutine-refactor)
18:27
Get rid of the OP_Undef and OP_IsUndef opcodes in favor of higher-level OP_InitCoroutine and OP_EndCoroutine. (check-in: 1ec0e9dd user: drh tags: coroutine-refactor)
13:20
Add the OP_Undef and OP_IsUndef opcodes. With these, use the first register in the result register range as the flag to indicate EOF on an INSERT from a SELECT, rather than allocating a separate boolean register for that task. (check-in: 6fb74485 user: drh tags: coroutine-refactor)
03:28
More comment updates. No changes to code. (check-in: be24fbc2 user: mistachkin tags: trunk)
02:29
Update comments in vdbe.c. No changes to code. (check-in: 1122b410 user: drh tags: trunk)
2014-02-06
23:56
Delete the OP_VerifySchema opcode. Enhance OP_Transaction to do the schema version checks that OP_VerifySchema used to do. (check-in: 2f3376eb user: drh tags: trunk)
14:59
Change more OP_OpenEphemeral operations to OP_OpenHash. (Leaf check-in: 881164cf user: drh tags: subquery-codegen-refactor)
13:18
Change the spellfix1 virtual table to deterministically names its shadow tables. (check-in: 5219cdfc user: drh tags: trunk)
03:31
Use OpenHash instead of OpenEphemeral for the RHS of IN operators if the result is not needed for sorting. (check-in: 715fac77 user: drh tags: subquery-codegen-refactor)
02:46
Add additional error messages and a progress spinner to the ".clone" command. (check-in: dd0db3f0 user: drh tags: trunk)
01:15
Rename the '.repair' shell command to '.clone'. (check-in: 4f9d9562 user: mistachkin tags: trunk)
00:49
Add the ".repair" command to the command-line shell. (check-in: d1dfadea user: drh tags: trunk)
2014-02-05
19:10
Separate out the code generators for the RHS of an IN operator and for SELECT/EXISTS expressions. (check-in: 61c34ba7 user: drh tags: subquery-codegen-refactor)
18:15
Use a new opcode, OP_OpenHash, to indicate that ephemeral tables can be unordered, rather than using the BTREE_UNORDERED bit in the P5 field. (check-in: 2997e181 user: drh tags: subquery-codegen-refactor)
17:08
Make the root page of an ephemeral index be page 1 instead of page 2. (check-in: a332908b user: drh tags: subquery-codegen-refactor)
11:05
In the Win32 VFS, the winSysInfo variable should be static. (check-in: 4a4dd371 user: mistachkin tags: trunk)
2014-02-04
23:45
Do not mark the ephemeral tables used to hold the RHS of IN clauses as unordered because the NGQP will use those ephemeral tables to help order the output. This is not an issue for standard SQLite since ephemeral tables there are always ordered, regardless of the hint. It only affects systems that substitute an alternative storage engine. (check-in: f2504089 user: drh tags: trunk)
20:46
Remove the SF_Materialize flag from the SELECT object as it does not accomplish anything useful. (check-in: 65d5dcdd user: drh tags: trunk)
15:55
Rearrange fields in the Parse object for a tighter packing, resulting in an 8% size reduction on x64. (check-in: 3e1a3f68 user: drh tags: trunk)
2014-02-03
17:04
Performance optimizations in sqlite3PcacheFetch(). (check-in: b60cc11e user: drh tags: trunk)
14:04
Provide hints to the btree layer Next and Previous primitives to let them know if they can be no-ops if the underlying index is unique. (check-in: 6c643e45 user: drh tags: trunk)
13:58
Sync with version 3.8.3. (check-in: a704b65b user: drh tags: sessions)
13:52
Version 3.8.3 (check-in: e816dd92 user: drh tags: trunk, release, version-3.8.3)
13:49
Minor change to TEA extension docs in an attempt to make links work correctly. (check-in: af3c775e user: drh tags: trunk)
2014-01-31
11:50
Update the "sqlite3.1" unix manpage document. (check-in: 21ce9e3a user: drh tags: trunk)
06:35
Minor change to TEA extension docs in an attempt to make links work correctly. (Closed-Leaf check-in: 492585c8 user: mistachkin tags: teaDoc)
2014-01-30
17:47
Update evidence marks on SELECT tests. Comment changes only. No changes to code or tests. (check-in: 1973d80e user: drh tags: trunk)
15:03
Fix requirements marks only. No changes to code or tests. (check-in: 4a34378b user: drh tags: trunk)
14:10
Update a requirement mark and add some additional test cases to cover the requirement associated with ORDER BY and LIMIT on compound SELECT statements. (check-in: 8560091e user: drh tags: trunk)
12:45
Enhance the MSVC makefile for better debugging symbol support. (check-in: c9bef0f2 user: mistachkin tags: trunk)
12:16
Do not run test script mmapfault.test as part of the "inmemory_journal" permutation test. (check-in: b222b61a user: dan tags: trunk)
11:12
Enhance the MSVC makefile for better debugging symbol support. (Closed-Leaf check-in: c723ec27 user: mistachkin tags: msvcDebug)
2014-01-29
14:21
Merge latest fixes from the trunk. (check-in: 6b6dcd4c user: dan tags: sessions)
01:46
Make sure that sqlite3SelectDup() initializes the nSelectRow of the duplicate Select object. (check-in: 5bb29b82 user: drh tags: trunk)
2014-01-28
20:36
Fix harmless compiler warnings in the showdb utility program. (check-in: 27c27daa user: drh tags: trunk)
18:53
Fix a potential over-size and hence undefined shift operation. (check-in: 6379b072 user: drh tags: trunk)
18:06
Bring in the latest updates from trunk. (check-in: 7b5f3773 user: drh tags: sessions)
17:49
Minor bugfix in main.c so that the library builds with SQLITE_OMIT_WSD defined. (check-in: 5e3b9ecc user: dan tags: trunk)
00:49
Provide hints to the btree layer Next and Previous primitives to let them know if they can be no-ops if the underlying index is unique. (Leaf check-in: a2c347fa user: drh tags: branch-3.8.2)
2014-01-27
16:35
Fix a couple of problems with new test scripts causing the permutations test to fail. (check-in: 48d736c0 user: dan tags: trunk)
15:02
Update some requirements marks to conform with improvements in the documentation. (check-in: be1acb61 user: drh tags: trunk)
14:19
Fix a problem in pagerfault.test causing an assert() to fail. (check-in: ba8d2d50 user: dan tags: trunk)
13:58
Fix (harmless) duplicate variable declaration. (check-in: 94ed9bc4 user: drh tags: trunk)
08:48
Fix some problems in test scripts. No code changes. (check-in: 08acfc65 user: dan tags: trunk)
2014-01-25
12:16
Fix a problem causing SQLITE_OMIT_COMPOUND_SELECT builds to fail. (check-in: b30db0ac user: dan tags: trunk)
2014-01-24
22:58
Fixes for various clang warnings. (check-in: 87bf6063 user: drh tags: trunk)
20:37
Select collation sequences for ORDER BY expressions attached to recursive CTEs in the same way as they are selected for other compound SELECT statements. (check-in: 9554519c user: dan tags: trunk)
17:03
Fix harmless compiler warnings in the Tcl interface. (check-in: 35bc81f5 user: mistachkin tags: trunk)
16:57
Add test cases for LIMIT and ORDER BY on recursive CTEs. (check-in: 67d6c42d user: dan tags: trunk)
16:36
Use an unsigned integer to accumulate the string hash. Avoids compiler warnings. (check-in: b1824344 user: drh tags: trunk)
15:42
Add a few more CTE test cases to closure.test. (check-in: 1b6405d9 user: drh tags: trunk)
14:37
Add test cases that compare the performance of the transitive_closure virtual table again common table expressions for walking a tree. (check-in: 9a23f020 user: drh tags: trunk)
14:05
Bring in all the latest trunk changes, including the Common Table Expressions implementation. (check-in: 9b43e559 user: drh tags: sessions)
11:16
Add test cases showing the use of ORDER BY on a recursive query to control depth-first versus breath-first search of a tree. (check-in: 83b0b291 user: drh tags: trunk)
2014-01-23
14:44
Modifications to test files to omit any tests that intentionally access out-of-bounds locations in clang -fsanitize=address builds. (check-in: f4a701d5 user: dan tags: trunk)
2014-01-22
19:23
Avoid an extra seek when inserting records into the epheremal index used to ensure that rows returned by UNION recursive queries are unique. (check-in: 72c4b3f0 user: dan tags: trunk)
18:31
Fix harmless compiler warnings. (check-in: dea2ca6a user: drh tags: trunk)
18:16
Change the WITH RECURSIVE implementation to use a queue instead of a pair of tables. Add support for ORDER BY, LIMIT, and OFFSET on recursive queries. (check-in: b6cea420 user: drh tags: trunk)
18:07
Add support for LIMIT and OFFSET in a recursive query. (Closed-Leaf check-in: 1945484e user: drh tags: cte-via-queue)
17:43
Update the spellfix virtual table to optimize queries of the form "SELECT ... FROM tbl WHERE rowid=?". (check-in: a0ba55ff user: dan tags: trunk)
17:28
Get ORDER BY working for recursive queries. (check-in: 37b343b0 user: drh tags: cte-via-queue)
13:35
Add new SelectDest codes, SRT_Queue and SRT_DistQueue in anticipation of adding ORDER BY support on recursive queries. Factor out the recursive query code generator into a separate procedure. (check-in: 3eb5f9f8 user: drh tags: cte-via-queue)
10:22
Fix a typo in a comment. No changes to code or tests. (check-in: cceacc0e user: dan tags: cte-via-queue)
00:23
Remove an unnecessary parameter from selectInnerLoop(). Clean up comments. (check-in: 5e6c4a55 user: drh tags: cte-via-queue)
2014-01-21
22:25
Change the recursive common table expression algorithm to use a queue instead of a pair of tables. Runs about 25% faster on the sudoku solver query. The OP_SwapCursors opcode is no longer required. The current implementation uses just a fifo, but the plan is to change it into a queue that will support ORDER BY and LIMIT in a recursive query. (check-in: b2671e11 user: drh tags: cte-via-queue)
15:04
Remove the undocumented requirement for applications that use an SQLITE_ENABLE_SQLLOG build to define a sqlite3_init_sqllog() function. (check-in: 5e43bf01 user: dan tags: trunk)
01:13
Fix a couple comment typos and one overly long line. No functional changes. (Closed-Leaf check-in: c57deced user: mistachkin tags: level-pseudocolumn)
00:19
Add support for the LEVEL pseudo-column in the recursive part of a common table expression. LEVEL has the value of 1 on the first iteration and successively larger integer values of subsequent iterations. It cannot have a table qualifier. Actual columns named "level" can still be accessed by including the table name qualifier. (check-in: cc1cb321 user: drh tags: level-pseudocolumn)
2014-01-20
19:55
In where.c, do not allocate space in sqlite3_index_info structures for the internal WHERE clause "terms" generated to record column equivalencies. Fix for ticket [1a1a194d1e5f8]. (check-in: 7d9e2218 user: dan tags: trunk)
18:25
Handle a few obscure problems that could manifest if a database corrupted in a certain way was written by a connection in the middle of a SELECT statement on the same db. (check-in: eba8a564 user: dan tags: trunk)
14:58
Remove an unused #define and add an assert(), both associated with WITH logic. (check-in: a06235e0 user: drh tags: trunk)
14:17
Do not run the tests in with2.test with SQLITE_OMIT_CTE builds. (check-in: 8a973912 user: dan tags: trunk)
2014-01-18
18:33
Add a sudoku solver to the recursive query tests in with1.test. (check-in: 679eff87 user: drh tags: trunk)
15:59
Add extra test cases. No changes to code. (check-in: d38d485e user: dan tags: trunk)
15:22
Add asserts() for a couple of unreachable conditions. Add the Mandelbrot Set query as a test case. (check-in: 2ad4583c user: drh tags: trunk)
08:27
Avoid spurious "no such table" errors in statements of the form "INSERT INTO tbl WITH xxx AS (...) SELECT * FROM xxx". (check-in: cccff8a0 user: dan tags: trunk)
2014-01-17
20:36
Add extra tests to with2.test. (check-in: eecc325a user: dan tags: trunk)
18:34
Minor simplification of error message text for a couple of errors associated with WITH clause processing. (check-in: 2031004d user: drh tags: trunk)
17:40
Resolve table names within CTEs in the context in which the CTE is declared, not the context in which it is used. (check-in: a7323838 user: dan tags: trunk)
16:19
Add tests that verify that keywords WITH, WITHOUT, and RECURSIVE can still be used as table and column names. (check-in: 9ca18a01 user: drh tags: trunk)
15:27
Fix a compiler warning in selectPopWith(). (check-in: c8eb1163 user: drh tags: trunk)
15:15
Add support for common table expressions (WITH clauses). (check-in: 0171e3bb user: dan tags: trunk)
14:59
Fix some problems to do with WITH clauses and name resolution. (Closed-Leaf check-in: 6a549187 user: dan tags: common-table-expr)
11:48
Remove some code from resolve.c that was only required for recursive cte references in sub-queries. Also a stray "finish_test" command in pagerfault.test. (check-in: f68c6c4d user: dan tags: common-table-expr)
2014-01-16
22:40
Add the ability for the authorizer callback to disallow recursive queries. (check-in: 9efc120a user: drh tags: common-table-expr)
21:59
Tweaks to error message text. (check-in: 090a77d9 user: drh tags: common-table-expr)
21:02
Improve the error messages used to report illegal recursive cte references. (check-in: 54eee9fe user: dan tags: common-table-expr)
18:34
Allow only a single recursive reference in a recursive CTE. Also require that this reference is not part of a sub-query. (check-in: a296b733 user: dan tags: common-table-expr)
15:31
Always use available indices to optimize LIKE operators even if the pattern of the LIKE operator has a COLLATE modifier. This fixes an ineffiency that was introduced into 3.7.15 by check-in [8542e6180d4] on 2012-12-08. (check-in: 16bd5478 user: drh tags: trunk)
10:58
Disable the flattening optimization if the parent query is the recursive part of a recursive CTE and the sub-query is a compound query. (check-in: 6bfa387e user: dan tags: common-table-expr)
04:37
Merge trunk changes. Fix a possible NULL-pointer deference in WITH clause name resolution. (check-in: 7f953b56 user: drh tags: common-table-expr)
2014-01-15
20:10
Remove an ALWAYS() that is no longer always true. (check-in: c95823cd user: drh tags: common-table-expr)
19:42
Fixes so that SQLITE_OMIT_CTE builds work. (check-in: 3908e2ea user: dan tags: common-table-expr)
18:35
Further comments on WITH-clause processing routines in select.c. (check-in: c948384d user: drh tags: common-table-expr)
18:23
Add a header comment to the searchWith() routine. (check-in: d9ae0f5d user: drh tags: common-table-expr)
18:21
Disable automatic indices on recursive CTE references. (check-in: 28aa6db8 user: dan tags: common-table-expr)
18:12
When resolving names, consider a reference to a recursive CTE column as equivalent to a reference to the outermost name-context. This ensures that correlated sub-queries are correctly identified as such. (check-in: 61be2da0 user: dan tags: common-table-expr)
15:27
Return an error if a CTE specifies a different number of columns than its SELECT statement returns. (check-in: 9a514b50 user: dan tags: common-table-expr)
14:40
Don't try to verify the schema of transient table (such as generated inside a WITH clause) when generating code for "IN table" operators. (check-in: 860aa936 user: drh tags: common-table-expr)
14:17
Disable the flattening optimization if the sub-query is a recursive CTE. (check-in: 9472f6d8 user: dan tags: common-table-expr)
02:40
Use the user-supplied table name in WITH RECURSIVE tables as the internal name of the table and the name of the table in VDBE comments. (check-in: a2933023 user: drh tags: common-table-expr)
00:24
Merge recent fixes from trunk. Cherrypick of [c43b59dac1], [a221aa82bb], [e1eba1fb09], and [1e131094b5]. (check-in: c697d2f8 user: mistachkin tags: branch-3.8.2)
2014-01-14
20:14
Add code to handle recursive CTEs. (check-in: a5c2a54a user: dan tags: common-table-expr)
10:17
Fix harmless compiler warning in LEMON. (check-in: f61a7058 user: mistachkin tags: trunk)
10:17
For the Win32 VFS, defining winShmMutexHeld should be controlled by NDEBUG, not SQLITE_DEBUG. (check-in: 1e131094 user: mistachkin tags: trunk)
2014-01-13
20:38
In the command-line shell, defend against a NULL-pointer dereference in the case where sqlite3_column_name() returns NULL (as might happen following an OOM error). (check-in: ac15455a user: drh tags: trunk)
20:32
For statements of just an unadorned VALUES clause, assign column names as "columnN" for increasing whole numbers N. (check-in: 260587d2 user: drh tags: trunk)
16:36
Fix some memory leaks and crashes that could follow an OOM condition during WITH clause parsing. (check-in: 8839850c user: dan tags: common-table-expr)
15:12
Add code to handle non-recursive CTEs in the same way as SQL views. (check-in: a26f399b user: dan tags: common-table-expr)
2014-01-11
19:19
Update the parser so that sub-queries and CTEs may have WITH clauses. (check-in: 704d3931 user: dan tags: common-table-expr)
13:22
Parse common table expressions. But do not do anything with them (yet). (check-in: da98b720 user: drh tags: common-table-expr)
12:52
In LEMON, limit the size of the grammar file to 100MB. This ensures that the program will never experience integer overflow. To be doubly sure, use calloc() instead of malloc() when allocating arrays. (check-in: 29ba458d user: drh tags: trunk)
03:54
Optimizations to the SQL language grammar that result in a small size reduction and speed increase. (check-in: cb5d1f83 user: drh tags: trunk)
03:27
Add the "%token_class" directive to the LEMON parser generator. This opens up the possibility of simplifying the parser. Also remove all calls to sprintf(), strcpy(), and strcat() from LEMON to avoid compiler warnings on OpenBSD. (Aside: It is this change to avoid harmless compiler warnings that was the cause of the reason spat of bugs.) (check-in: 8eb48c04 user: drh tags: trunk)
03:13
Add the "%token_class" directive to the LEMON parser generator. This opens up the possibility of simplifying the parser. Also remove all calls to sprintf(), strcpy(), and strcat() from LEMON to avoid compiler warnings on OpenBSD. (Closed-Leaf check-in: 4e4483b2 user: drh tags: buggy-lemon)
03:06
In LEMON, fix a bug in the text formatter introduced by the previous commit. Also add the new "%token_class" directive for defining symbolic names that stand any one of a collection of tokens. (Closed-Leaf check-in: da7890ca user: drh tags: lemon-updates)
2014-01-10
23:21
Do not use sprintf(), strcpy() or strcat() in the implementation of the lemon parser generator tool, to avoid compiler warnings in OpenBSD. (check-in: e43c522d user: drh tags: lemon-updates)
20:51
Remove unused structure definition from parse.y. (check-in: 7f1e7ae3 user: drh tags: trunk)
20:46
Allow a VALUES clause to be used any place that a SELECT statement can be used. (check-in: c9ea7d19 user: drh tags: trunk)
20:38
Fix CREATE TABLE ... AS so that it works with column names that are empty strings. (check-in: 632045f2 user: drh tags: trunk)
16:40
Fix another harmless compiler warning in unixUnfetch(). (check-in: 0484549b user: dan tags: trunk)
2014-01-09
13:39
Fix harmless compiler warning in unixUnfetch(). (check-in: 618f248f user: drh tags: trunk)
2014-01-06
18:32
Start a new experimental branch for support of Oracle-style CONNECT BY syntax. (Closed-Leaf check-in: 4365ddd6 user: drh tags: connect-by)
2014-01-04
20:00
Fix an typo that breaks the build when SQLITE_ENABLE_TREE_EXPLAIN is defined. (check-in: f461e2b3 user: drh tags: trunk)
19:58
Add the usual "fts3" prefix to new static method setEstimatedRows() in fts3.c. This fixes a problem when compiling the amalgamation, as the r-tree module also contains a static method named setEstimatedRows. (check-in: d6fcfc88 user: dan tags: trunk)
19:27
Avoid redundant register loads during index key generation when doing a DELETE or INTEGRITY_CHECK on a table with multiple indices. (check-in: 8f6e6149 user: drh tags: trunk)
16:49
Omit OP_Close operations that occur immediately prior to OP_Halt and which cannot be jumped over. (check-in: 874b7e99 user: drh tags: trunk)
15:17
Improvements to the column-cache for nested AND/OR operators. (check-in: 4e725f53 user: drh tags: trunk)
14:46
Have FTS assign extremely high costs to plans that feature unusable MATCH constraints. This discourages the planner from choosing such plans, which lead to "unable to use function MATCH in the requested context" errors. (check-in: fa8be488 user: dan tags: trunk)
14:42
Instead of having the planner ignore plans with unusable MATCH constraints, have FTS assign extremely high costs to such plans in order to discourage the planner from using them. (Closed-Leaf check-in: 24f84b38 user: dan tags: avoid-unusable-match)
14:16
Have the planner detect cases where a MATCH constraint is applied to a virtual table, and ignore any plans that do not allow the virtual table implementation to implement the MATCH filtering. (check-in: 19f3208b user: dan tags: avoid-unusable-match)
2014-01-03
16:03
Avoid some unnecessary OP_SCopy operations when inserting into a table with multiple indices. (check-in: 429018b1 user: drh tags: trunk)
2014-01-02
21:05
Try to factor constant subcomponents of the WHERE clause out of the loop. (check-in: 9d05777f user: drh tags: trunk)
19:35
Avoid unnecessary affinity transformations when building indices using data from a table. (check-in: 10d85135 user: drh tags: trunk)
17:57
Be more aggressive in optimizing constant conditional expressions. (check-in: b7e39851 user: drh tags: trunk)
2014-01-01
15:18
Try to detect process ID changes due to fork() calls in os_unix.c and reset the PRNG when a process ID change is detected. (check-in: e1eba1fb user: drh tags: trunk)
14:00
Enhance sqlite3_randomness(N,P) such that it resets the internal PRNG if N is less than 1. Subsequent calls to sqlite3_randomness() will reinitialize the internal PRNG by calling the xRandomness() method of the default VFS. (check-in: a221aa82 user: drh tags: trunk)
2013-12-24
12:09
Merge the latest trunk changes into the sessions branch. (check-in: cfd110bf user: drh tags: sessions)
12:04
Add -I. to the main.mk makefile for building sqlite3.o and speedtest1. (check-in: cc72c5ae user: drh tags: trunk)
2013-12-23
19:09
Move elements of the Vdbe object that are only used during statement preparation out into the Parse object. (check-in: c289a253 user: drh tags: trunk)
15:35
Make sure the WhereLoop.aLTerm[] array is large enough when processing the skip-scan optimization. Fix for ticket [520070ec7fbaac]. (check-in: ac5852d6 user: drh tags: branch-3.8.2)
11:33
Remove a stray tab character. (check-in: 25b8a1c9 user: drh tags: trunk)
2013-12-22
22:45
Remove a condition that is always in the logic that handles reading default values for columns. (check-in: 895af097 user: drh tags: trunk)
20:44
Make sure the WhereLoop.aLTerm[] array is large enough when processing the skip-scan optimization. Fix for ticket [520070ec7fbaac]. (check-in: 46d04059 user: drh tags: trunk)
2013-12-21
17:14
Fix speedtest1.c so that in --explain mode it only outputs non-explain text for DDL statements. (check-in: 2d2b3c49 user: drh tags: trunk)
17:07
Avoid compiler warnings by only enabling sqlite3ErrName() when SQLITE_TEST is defined. (check-in: 862228e5 user: drh tags: trunk)
16:06
Fix harmless compiler warnings in FTS4. This involved corrupting Martin Porter's beautifully written and elegant stemmer code, making it a little less beautiful and a little less elegant. Today is a sad day. But the warnings from GCC grow increasingly verbose and irksome with each new release and so something had to be done. (check-in: df056798 user: drh tags: trunk)
15:46
Fix the ".echo on" dot-command of the shell so that it echos comments in addition to SQL statements and dot-commands. Add the --explain option to speedtest1 so that the output can be piped into the command-line shell to show nicely-formated VDBE code for the entire test. (check-in: 96397263 user: drh tags: trunk)
00:04
Add a case to speedtest1.c that demonstrates the need to factor OP_Column operators out of inner loops. (check-in: 69a17336 user: drh tags: trunk)
2013-12-20
18:57
Fix compiler harmless warnings in tclsqlite.c that appeared with GCC 4.8.x. (check-in: d93ae683 user: drh tags: trunk)
18:44
Code simplification in sqlite3GenerateIndexKey() by making use of a subroutine found over in expr.c. (check-in: 0026d335 user: drh tags: trunk)
15:59
Combine adjacent single-register OP_Copy instructions into a single multi-register OP_Copy, where possible. Fix the Synopsis comment for multi-register OP_Copy instructions to show the correct register ranges. (check-in: 2ae22dc0 user: drh tags: trunk)
14:48
Allow any arbitrary expression as the filename in an ATTACH statement, including functions and subqueries. (check-in: df70a1f3 user: drh tags: trunk)
13:11
Simplify the accumulator reset for aggregate query processing so that it uses a single multi-register OP_Null rather than a separate OP_Null for each register. (check-in: 2c7fd9b0 user: drh tags: trunk)
2013-12-19
17:04
Do not inject OOM faults into SQLITE_FCNTL_COMMIT_PHASE_TWO file-control invocations. It causes problems for test scripts. (check-in: 8eb28d23 user: dan tags: trunk)
16:26
Make sure errors encountered while initializing extensions such as FTS4 get reported out from sqlite3_open(). This fixes a bug introduced by check-in [9d347f547e7ba9]. Also remove lots of forgotten "breakpoint" commands left in test scripts over the years. (check-in: ca3fdfd4 user: drh tags: trunk)
14:34
Remove an unneeded column-cache flush in aggregate SELECT and an unreachable branch in the INSERT logic. (check-in: ffa092e1 user: drh tags: trunk)
02:56
Omit an unnecessary OP_Null opcode from UPDATE. (check-in: 72d11133 user: drh tags: trunk)
02:23
Omit one or more pointless instructions that occur in between OP_NoConflict and OP_Halt. (check-in: 61e2f357 user: drh tags: trunk)
2013-12-18
18:44
Remove an unnecessary column-cache flush operation. Add code to trace the column cache when compiled with SQLITE_DEBUG and using PRAGMA vdbe_addoptrace=ON. (check-in: 58704ed1 user: drh tags: trunk)
16:27
Remove an unnecessary column-cache flush. Add another test case to the speedtest1.c program to accentuate the benefit of not flushing the cache at that point. (Closed-Leaf check-in: 97fdfc6b user: drh tags: column-cache-debug)
15:11
Show changes to the column cache when PRAGMA vdbe_addoptrace=ON is set. (check-in: 4c6a659c user: drh tags: column-cache-debug)
2013-12-17
16:32
Add evidence marks and additional test cases for the printf() SQL function. (check-in: 93121d30 user: drh tags: trunk)
16:10
Add the printf() SQL function. (check-in: a1bb62f9 user: drh tags: trunk)
15:58
Fix the formatting of %c in the printf() SQL function. (Closed-Leaf check-in: 3375571a user: drh tags: printf-sql-function)
15:03
Add the printf() SQL function. (check-in: 6db7052e user: drh tags: printf-sql-function)
2013-12-14
18:24
Merge in all recent preformance enhancements from trunk. (check-in: 32477642 user: drh tags: sessions)
13:44
Allow the SQLITE_DETERMINISTIC flag to be ORed into the preferred text encoding of application-defined functions, to mark the function as deterministic. (check-in: 5716fc23 user: drh tags: trunk)
2013-12-13
20:45
Performance optimizations in the pager_write() routine of pager.c. (check-in: bc5febef user: drh tags: trunk)
19:48
Reduce the number of calls to the subjRequiresPage() routine inside of pager. (check-in: e50ff39a user: drh tags: trunk)
19:35
Create and use a new pager interface sqlite3PagerUnrefNotNull() that works just like sqlite3PagerUnref() but guarantees that its argument is not a NULL pointer. (check-in: e00f37e2 user: drh tags: trunk)
18:50
Enhance the pcache1PinPage() routine so that it called much less often and runs much faster in the cases when it is actually called. (check-in: a845779c user: drh tags: trunk)
16:42
Avoid unnecessary calls to sqlite3_free() from within sqlite3VXPrintf(). (check-in: e2a8b280 user: drh tags: trunk)
16:23
Simplication and optimization of error message handling. (check-in: 9d347f54 user: drh tags: trunk)
2013-12-11
15:47
Add the SQLITE_FCNTL_SYNC and SQLITE_FCNTL_COMMIT_PHASETWO file-controls and have the pager call them at appropriate times. This is needed in order to enable ZIPVFS to do multi-file atomic commits. (check-in: 552f94d5 user: drh tags: trunk)
14:17
Merge in the latest trunk changes. (Closed-Leaf check-in: 9ff4dfe1 user: drh tags: zipvfs-multifile-commit)
14:00
Fix a bug in the shell ".import" command: Do not end the field when an escaped double-quote occurs at the end of a CRNL line. (check-in: 5e239ecd user: drh tags: trunk)
12:02
Remove an unreachable conditional inserted by the previous check-in. (check-in: 3e1d55f0 user: drh tags: trunk)
11:03
Have the crash-test infrastructure code in test6.c read and write the 512-byte block containing the pending-byte lock as normal. Earlier versions did not access this part of the file in order to avoid triggering an assert in os_unix.c. But the assert() has since been removed. And not reading/writing this part of the file causes problems for multiplexor tests. (check-in: fdc3f3fa user: dan tags: zipvfs-multifile-commit)
11:00
Fix harmless compiler warnings. (check-in: a7e5fcd6 user: drh tags: trunk)
02:21
Fix harmless compiler warning. (check-in: 2525296d user: mistachkin tags: trunk)
00:59
Do not run the tool/vdbe-compress.tcl script that generates the vdbeExecUnion object that reduces the size of the sqlite3VdbeExec() stack frame unless the SQLITE_SMALL_STACK compile-time option is specified as on of the OPTS in the makefile. The vdbeExecUnion object gets in the way of C-compiler optimizer and results in slightly slower code. (check-in: 4d078147 user: drh tags: trunk)
2013-12-10
21:38
Avoid unnecessary calls to sqlite3VdbeSerialType() from within sqlite3VdbeSerialPut(). (check-in: 079c04a5 user: drh tags: trunk)
20:53
In the OP_MakeRecord opcode, factor out affinity changes into separate loop, for a slight performance advantage. (check-in: 1c6ee9b8 user: drh tags: trunk)
19:49
Simplify and improve the performance of the sqlite3VdbeMemGrow() routine. (check-in: 48ecf187 user: drh tags: trunk)
17:34
Use SQLITE_FCNTL_SYNC instead of SQLITE_FCNTL_SYNC_OMITTED. Add documentation in for FCNTL_SYNC and FCNTL_COMMIT_PHASETWO. (check-in: 46231af9 user: dan tags: zipvfs-multifile-commit)
16:35
Merge changes from the trunk. (check-in: 3ee736a3 user: dan tags: zipvfs-multifile-commit)
16:27
Fix handling of errors returned by the SQLITE_FCNTL_OMIT_SYNCED file-control. (check-in: d9a5f44f user: dan tags: zipvfs-multifile-commit)
2013-12-09
23:17
Simplifications to the OP_MakeRecord opcode and the sqlite3VdbeSerialPut() helper function. (check-in: 7277a769 user: drh tags: trunk)
21:48
Correct the VFS name as reported by the file control when explicitly using the 'win32-longpath' VFS. (check-in: c43b59da user: mistachkin tags: trunk)
21:06
Reduce the number of times that OP_Column calls sqlite3VdbeMemMakeWriteable(). (check-in: 6b518635 user: drh tags: trunk)
20:43
Simplify the sqlite3BtreeKeyFetch() and sqlite3BtreeDataFetch() interfaces to the storage engine. (check-in: bf975985 user: drh tags: trunk)
20:42
Modify the way some internal file-controls are invoked. In order to support multi-file transactions in the zipvfs extension. (check-in: 32fb1784 user: dan tags: zipvfs-multifile-commit)
19:25
Minor performance optimizations in pager.c. (check-in: ba9eef5f user: drh tags: trunk)
19:03
Performance optimizations for sqlite3VXPrintf(). (check-in: 9227ad48 user: drh tags: trunk)
12:24
Fix an incorrect test number in the output of the speedtest1.c program. No changes to the test algorithms. (check-in: fbfc075a user: drh tags: trunk)
03:07
Avoid unnecessary (no-op) calls to sqlite3DbFree() from sqlite3VdbeMemRelease(). (check-in: 2d6dd7c2 user: drh tags: trunk)
02:32
Use memmove() rather than a home-made copy loop in insertCell() too. (check-in: a3d796b1 user: drh tags: trunk)
01:58
Use memmove() rather than a home-made copy loop in dropCell() of btree.c, for a size reduction and performance improvement. (check-in: 78e17068 user: drh tags: trunk)
01:04
Avoid unnecessary no-op calls from getAndInitPage() to btreeInitPage() in the btree.c logic. (check-in: 81f5ae13 user: drh tags: trunk)
00:47
Use putVarint32() instead of putVarint() for a quantity that can never exceed 2GiB - 1. (check-in: 6996fb34 user: drh tags: trunk)
2013-12-08
23:33
Another simplification to the OP_MakeRecord opcode, making it slightly faster and very slightly smaller. (check-in: f2f5a3ce user: drh tags: trunk)
22:59
Avoid unnecessary calls to sqlite3VarintLen() from the OP_MakeRecord opcode. (check-in: 7a234fc3 user: drh tags: trunk)
19:54
Interchange two conditions in an "if" statment in sqlite3PagerAcquire() for very slight (0.06%) overall performance increase. (check-in: fbcc1a3e user: drh tags: trunk)
2013-12-07
23:35
Do not allow cursor hints to use expressions containing subqueries. This change fixes the problem seen in the previous check-in. (check-in: bfefc575 user: drh tags: cursor-hints)
20:39
If the SQLITE_ENABLE_CURSOR_HINTS macro is defined, then invoke the sqlite3BtreeCursorHint() interface to provide hints to the storage engine about rows that need not be returned. Hints can be disabled using SQLITE_TESTCTRL_OPTIMIZATIONS with SQLITE_CursorHints (0x2000). Cursor hints are not used by the built-in storage engine of SQLite but might be useful to applications that provide their own storage engine. The current code is work-in-progrss and contains bugs. (check-in: 3a9bec52 user: drh tags: cursor-hints)
17:01
Increase the version number to 3.8.3. (check-in: 23d00f22 user: drh tags: trunk)
16:56
At the start of each journaled write transaction, check to see if the database file has been moved, and if it has refuse to start the transaction, returning an SQLITE_READONLY_DBMOVED error code. Writing to a moved or renamed database is still allowed when journal_mode is OFF or MEMORY. (check-in: 369a23e0 user: drh tags: trunk)
16:45
Back out the new device capability. The determination of whether or not a file has moved is now done strictly using a file-control. (Closed-Leaf check-in: 9c59f5af user: drh tags: detect-moved-db)
12:29
Actually look at i-node numbers to determine whether or not the database file has moved. (check-in: 2b1884dc user: drh tags: detect-moved-db)
2013-12-06
23:25
Performance optimization to the moveToRoot() subroutine in btree.c. (check-in: b5842a70 user: drh tags: trunk)
22:45
Use memcmp() instead of the BINARY collating function where possible, for a performance boost. (check-in: c5a3a1af user: drh tags: trunk)
22:44
Remove some commented-out code from sqlite3BtreeMovetoUnpacked() to try to make it more readable. (check-in: 2d62d113 user: drh tags: trunk)
19:58
Add the SQLITE_READONLY_DBMOVED error code to the sqlite3ErrName() function. (check-in: 7789f801 user: mistachkin tags: detect-moved-db)
17:23
Only error out on a database file move when attempting to start a write transaction. Assume read transactions are still safe. And make the error SQLITE_READONLY_DBMOVED instead of SQLITE_IOERR_NODB. (check-in: 28348f2a user: drh tags: detect-moved-db)
15:49
Update to the 3.8.2 release. (check-in: e579661a user: drh tags: sessions)
15:37
Add code to detect if the database file is moved or deleted out from under SQLite and return an SQLITE_IOERR_NODB. (check-in: 8759a8e4 user: drh tags: detect-moved-db)
14:53
Version 3.8.2 (check-in: 27392118 user: dan tags: trunk, release, version-3.8.2)
2013-12-05
17:12
Fix harmless compiler warnings and improve the MSVC makefile. (check-in: c6325670 user: drh tags: trunk)
16:41
Fix two potential (and apparently harmless) shift overflows discovered by the -fcatch-undefined-behavior option of clang. (check-in: e19eead8 user: drh tags: trunk)
2013-12-03
23:33
Make use of the CC nmake macro even when cross-compiling (with MSVC). (Closed-Leaf check-in: aae7b30e user: mistachkin tags: memTests)
22:33
Fix harmless compiler warnings. (check-in: a12d214e user: mistachkin tags: memTests)
22:32
Add memory subsystem related defines to the compile-time options list. (check-in: 52a44146 user: mistachkin tags: memTests)
20:51
Merge in trunk changes. (check-in: a2914d6b user: drh tags: sessions)
19:49
Remove a branch in STAT4 logic that is no longer reachable after the previous change. (check-in: eca7d3f1 user: drh tags: trunk)
19:16
Fix a possible (and probably harmless) uninitialized variable in STAT3/4. (check-in: 33ad4f91 user: drh tags: trunk)
18:26
Fix an alignment problem in the stat3/stat4 code affecting 32-bit platforms. (check-in: 14f9bc79 user: dan tags: trunk)
17:09
Fix a typo in fts3varint.test preventing the valgrind permutation test from running. (check-in: b654a4ec user: dan tags: trunk)
10:35
Modify test file conflict2.test so that it works with the "inmemory_journal" permutation. (check-in: e4164fd8 user: dan tags: trunk)
10:14
Remove an unnecessary branch from the UPDATE logic - one that was also unreachable except following an OOM on x64. (check-in: 72f97277 user: drh tags: trunk)
09:49
Add a "database_may_be_corrupt" directive to test file fuzz3.test. Reformat an assert() statement in vdbeaux.c to make its intent clearer. (check-in: 9d8a0e13 user: dan tags: trunk)
02:52
Change some unreachable test conditions to NEVER(). (check-in: 7d99858b user: drh tags: trunk)
00:11
Fix a harmless compiler warning on MacOS. (check-in: 74328de1 user: drh tags: trunk)
2013-12-02
21:58
Merge all recent 3.8.2 beta changes from trunk. (check-in: 67c34ccf user: drh tags: sessions)
21:25
Another #if SQLITE_VERSION_NUMBER macro in speedtest1.c for compatibility with older versions of SQLite. (check-in: bc8eacc7 user: drh tags: trunk)
01:24
Still more #if SQLITE_VERSION_NUMBER macros in test/speedtest1.c to enable compilation against older versions of SQLite. (check-in: 4b20cf42 user: drh tags: trunk)
2013-12-01
18:10
Add some #if SQLITE_VERSION_NUMBER macros to test/speedtest1.c in order to make it compatible with older versions of SQLite so that it can be used for historical speed comparisons. (check-in: a9e1627a user: drh tags: trunk)
01:18
Fix typos in the header comment on the sqlite3Atoi64() routine. (check-in: c85e0c54 user: drh tags: trunk)
2013-11-30
12:49
Detect a corrupt UnpackedRecord and return SQLITE_CORRUPT prior to calling sqlite3BtreeMovetoUnpacked(). (check-in: 55ec474d user: drh tags: trunk)
2013-11-29
15:39
Change the name of the CORRUPTIBLE macro to CORRUPT_DB. (check-in: f865be10 user: drh tags: trunk)
15:06
Add a new sqlite3_test_control() that indicates that database files are always well-formed. Use this during testing to enable assert() statements that prove conditions that are always true for well-formed databases. (check-in: 15e4f63d user: drh tags: trunk)
2013-11-28
19:28
Update a few test cases to account for the new error message formats. (check-in: 65a5bce3 user: dan tags: trunk)
14:14
Remove an assert() condition that may not be true if the database file is corrupt. Update a test case in corruptC.test. (check-in: 0bcf7551 user: dan tags: trunk)
06:17
Fix a test case in temptrigger.test so that it works in auto-vacuum mode. (check-in: c3b7a0e6 user: dan tags: trunk)
2013-11-27
21:53
Merge all recent trunk changes. (check-in: 3a2a1bd4 user: drh tags: sessions)
21:07
Remove unnecessary local variables from sqlite3VdbeExec() in order to reduce stack-space requirements of that routine. (check-in: 81891288 user: drh tags: trunk)
19:17
Update documentation of sqlite3_column() for clarity. Update evidence marks on test cases. (check-in: ec2d47a1 user: drh tags: trunk)
18:00
Fix spelling typo in speedtest1.exe. (check-in: ae90300e user: mistachkin tags: trunk)
14:50
Fix some harmless compiler warnings in speedtest1.exe. (check-in: c75f561f user: drh tags: trunk)
13:48
Additional test cases for skip-scan. (check-in: ce70803f user: drh tags: trunk)
13:24
Make sure the colWidth array is correctly initialized in the ".explain" command of the shell. (check-in: ceebcdca user: drh tags: trunk)
04:22
Lower the threshold for using skip-scan from 50 to 18, based on experiments that show that 18 is the approximate break-even point for a variety of schemas. (check-in: 83c0bb99 user: drh tags: trunk)
04:00
Avoid using the GetVersionEx functions if they are considered deprecated. (check-in: afdca299 user: mistachkin tags: trunk)
03:01
Avoid using the GetVersionEx functions if they are considered deprecated. (Closed-Leaf check-in: 0ea9e472 user: mistachkin tags: vs2013)
01:23
Add additional test cases for skip-scan. (check-in: 1ae4915d user: drh tags: trunk)
00:45
Add additional test cases and requirements evidence marks for WITHOUT ROWID. (check-in: b408d788 user: drh tags: trunk)
2013-11-26
23:27
Make sure the update hook is not invoked for WITHOUT ROWID tables, as the documentation specifies. This bug was found while adding requirements marks, so a few extraneous requirements marks are included in this check-in. (check-in: 0978bac6 user: drh tags: trunk)
22:46
Add requirements test cases for determining when an expression is true and when it is false. (check-in: 838654e5 user: drh tags: trunk)
21:18
Changing the CAST behavior of REAL values actually changed a documented requirement. So we also have to change the requirement evidence text to match. (check-in: d84aa44e user: drh tags: trunk)
18:22
Reduce the amount of code used to implement OP_SeekGe and similar. (check-in: 8b12a15a user: dan tags: trunk)
18:00
Merge in performance enhancements from trunk. (check-in: fc9ae839 user: drh tags: sessions)
16:51
Fix a possible NULL pointer deference in the wordcount test program. (check-in: 6f91dca0 user: drh tags: trunk)
16:48
Change tclsqlite3.c so that it never invokes ctype macros with signed character arguments. (check-in: c07caabf user: drh tags: trunk)
16:20
Do not try to run the atof1.test test script on ARM hardware which lacks the "long double" type. (check-in: fafca560 user: drh tags: trunk)
15:45
Change the REAL-to-INTEGER casting behavior so that if the REAL value is greater than 9223372036854775807.0 then it is cast to the latest possible integer, 9223372036854775807. This is sensible and the way most platforms work in hardware. The former behavior was that oversize REALs would be cast to the smallest possible integer, -9223372036854775808, which is the way Intel hardware works. (check-in: 6f53fc71 user: drh tags: trunk)
01:13
Fix comment. (check-in: 8364af39 user: mistachkin tags: winHdr)
01:00
Further work on Windows header file reform. (check-in: 540f5525 user: mistachkin tags: winHdr)
00:33
Merge updates from trunk. (check-in: c5ab4378 user: mistachkin tags: winHdr)
00:28
Better support for UTF-8 paths on Cygwin. (check-in: 9954327c user: mistachkin tags: trunk)
2013-11-25
23:42
Add SQLITE_CONFIG_WIN32_HEAPSIZE option to configure the maximum isolated heap size on Windows. (check-in: 914e6c9d user: mistachkin tags: trunk)
22:24
Change a while-loop into a do-loop in sqlite3VdbeRecordCompare() and add an assert() to verify that the do-loop really is appropriate. This gives about a 10% performance boost in that routine, or a 0.9% boost overall. (check-in: 011a6be4 user: drh tags: trunk)
21:49
Clarify docs for the SQLITE_CONFIG_WIN32_HEAPSIZE option. (Closed-Leaf check-in: 51e87607 user: mistachkin tags: winHeapSize)
21:41
Remove a NEVER() from a branch that is now reachable during OOM faults. (check-in: 18bdcb05 user: drh tags: trunk)
20:50
Optimizations to the sqlite3BtreeMovetoUnpacked() routine in storage engine making it about 17.8% faster, which in turn makes SQLite over 1.2% faster overall. (check-in: 032e8993 user: drh tags: trunk)
20:14
Return an SQLITE_CORRUPT error if the content size field of a table record extends off the end of a page. (Closed-Leaf check-in: b48c4e40 user: drh tags: btree-optimization)
17:38
Uses shifts rather than division for arithmetic on the cell indices, since those indices are always non-negative. (check-in: 5bf2a3fe user: drh tags: btree-optimization)
16:52
Optimize the skipping of the payload size field when doing a binary search for a rowid. (check-in: 55e5bfa2 user: drh tags: btree-optimization)
16:23
Arrange for sqlite3BtreeMovetoUnpacked() to always leave the cursor cell parse cache invalidated. This fixes issues with previous check-ins on this branch and also runs faster. (check-in: a7467560 user: drh tags: btree-optimization)
15:01
More optimizations to sqlite3BtreeMovetoUnpacked(). But there are failures in TH3. Committing this intermediate state to facilitate bisecting. (check-in: f80497be user: drh tags: btree-optimization)
14:10
More improvements to sqlite3BtreeMovetoUnpacked() performance. (check-in: 88680698 user: drh tags: btree-optimization)
09:37
Correct line-endings in the new header file. (check-in: 94219b9f user: mistachkin tags: winHdr)
09:36
Initial work on isolating usage of the Windows header file. (check-in: 0d42c6b8 user: mistachkin tags: winHdr)
02:38
Performance improvements in sqlite3BtreeMovetoUnpacked(). (check-in: d0fb7ace user: drh tags: btree-optimization)
2013-11-24
23:18
Better support for UTF-8 paths on Cygwin. (Closed-Leaf check-in: 484162b6 user: mistachkin tags: cygUtf8)
01:14
Add the --scratch parameter to speedtest1. Improved error messages when misconfiguring memory parameters in speedtest1. (check-in: 8f3c767a user: drh tags: trunk)
00:46
The MEMSYS5 algorithm does not have to return the block with the lowest address. Any block of the appropriate size will do. Use the first block found on the freelist for the appropriate size for a performance improvement. (check-in: 12e612e8 user: drh tags: trunk)
2013-11-23
22:45
A much simpler fix is to simply change MEMSYS5 so that it takes any free block of the appropriate size (the first on the list of free blocks) rather than searching for the one with the smallest address. This is also faster than using the min-heap algorithm. Need to research to verify that the allocator still satisfies the Robson proof, however. (Closed-Leaf check-in: 8191b512 user: drh tags: memsys5-performance)
21:30
Use a heap-based primary queue rather than a linked list to store the available free blocks of each size in MEMSYS5, since this provides faster access to the first available block. (Closed-Leaf check-in: 7d2cdfad user: drh tags: memsys5-performance)
21:29
Add newlines at the end of some error messages in speedtest1. (check-in: 6b98f0af user: drh tags: trunk)
11:45
Report errors from sqlite3_exec() and sqlite3_config() in speedtest1. Fix a bug in the main testing logic that was found by these error reports. (check-in: 659f1a98 user: drh tags: trunk)
04:32
Fix the order of parameters to SQLITE_CONFIG_PAGECACHE in the speedtest1.exe program. (check-in: dbe85ef6 user: drh tags: trunk)
04:22
Adjust MSVC makefile to avoid using forward slashes in file names. (check-in: facf6dea user: mistachkin tags: trunk)
04:16
Add the "speedtest1.exe" test program. (check-in: fb6f0c6d user: drh tags: trunk)
00:27
Add experimental sqlite3_config option to control the native Win32 heap size. (check-in: f09f11e9 user: mistachkin tags: winHeapSize)
2013-11-22
21:32
Fix harmless compiler warning. (check-in: f336c18f user: mistachkin tags: trunk)
00:49
Minor correction to the batch build tool for MSVC. (check-in: 22144c9d user: mistachkin tags: trunk)
2013-11-21
23:37
Fix a harmless clang warning in the command-line shell. (check-in: 3d47a556 user: drh tags: trunk)
22:02
Slight change to the --timer output on wordcount for better display on windows: Avoid showing the full pathname of the executable. (check-in: b9e047b9 user: drh tags: trunk)
21:59
Changes some offset and amount parameters from "int" to "u32" to avoid harmless signed/unsigned comparison warnings. (check-in: 4e8c5d07 user: drh tags: trunk)
21:40
Modify wordcount so that timer information appears on standard error instead of standard output. Rename the run-wordcount.bash script to run-wordcount.sh and simplify it so that it stands a better chance of running on non-GNU systems. (check-in: 586c11ed user: drh tags: trunk)
21:23
Do not reuse factored constants that might have had their encodings changed. (check-in: 487f2036 user: drh tags: trunk)
20:48
Fix the code generator to honor turning off constant expression factoring. (check-in: 88262266 user: drh tags: trunk)
19:27
Add the --timer option to the wordcount test program. (check-in: a89fdf87 user: drh tags: trunk)
19:05
Remove a test from sqlite3VdbeMemFromBtree() which was unnecessary, and after the recent OP_Column refactoring, unreachable. (check-in: 23667f3b user: drh tags: trunk)
17:24
Make sure the OP_Next and OP_NextIfOpen opcodes are numbered close together for efficiency in switch() statements. OP_Prev and OP_PrevIfOpen too. (check-in: d4ccf0f5 user: drh tags: trunk)
16:08
When one or more arguments to a function are constants, try to factor out just those arguments into initialization code. (check-in: 50d350ab user: drh tags: trunk)
14:44
Remove the obsolete TK_CONST_FUNC token type. (check-in: 9b4217f0 user: drh tags: trunk)
14:33
Add the ability to factor constant functions out of inner loops. But do not factor out non-constant functions, like random(). (check-in: 1b0f779e user: drh tags: trunk)
04:18
Another improvement to OP_Function and an improvement to OP_Move. (check-in: 70b056fb user: drh tags: trunk)
03:43
A simple change to the OP_Function opcode improves overall performance by about 0.5%. (check-in: b890eefd user: drh tags: trunk)
03:12
Performance optimization to the OP_Next and OP_Prev opcodes. (check-in: ecaac28a user: drh tags: trunk)
01:33
Refactor the OP_Column opcode to make it clearer and easier to maintain. Overall, performance tests show about a 1% speed increase with this change. (check-in: 972881c6 user: drh tags: trunk)
01:04
Reduce the size of VdbeCursor again, this time without a performance hit. (Closed-Leaf check-in: 93393993 user: drh tags: OP_Column-refactor)
00:10
Unpack some fields, adding some space back to the VdbeCursor object, in order to help the code to run a little faster. (check-in: f8d5efcd user: drh tags: OP_Column-refactor)
2013-11-20
21:51
Reduce the size of the VdbeCursor object from 144 to 120 bytes. (check-in: 5f9d5068 user: drh tags: OP_Column-refactor)
20:58
Improved comments on the OP_Column changes. Optimize out loading of overflow pages for content with zero length. Add test cases for the latter. (check-in: 0e05679d user: drh tags: OP_Column-refactor)
19:28
Further performance tweaks to OP_Column. (check-in: 0e3f5df6 user: drh tags: OP_Column-refactor)
17:25
Refactoring the OP_Column opcode for improved performance and maintainability. (check-in: 7c914e39 user: drh tags: OP_Column-refactor)
02:53
Simplifications to the VdbeCursor object. (check-in: 5562cd34 user: drh tags: trunk)
00:59
Performance improvement for the OP_MustBeInt opcode in the VDBE. (check-in: 96a65388 user: drh tags: trunk)
2013-11-19
18:17
Fix a harmless MSVC compiler warning. (check-in: 6cc023bb user: drh tags: trunk)
13:55
Minor performance improvement to sqlite3SerialTypeGet(). (check-in: 17e8524f user: drh tags: trunk)
12:33
Change Noop-comments in where.c into Module-comments, so that they are omitting without SQLITE_ENABLE_MODULE_COMMENTS. (check-in: 3e577f40 user: drh tags: trunk)
02:34
Avoid seeking on the main data table during the first loop of an UPDATE if an index is sufficient to check the WHERE clause. (check-in: 57158d9d user: drh tags: trunk)
00:31
Fix an requirement mark in a test script so that it matches the typo-corrected requirement. No changes to code. (check-in: 072412d5 user: drh tags: trunk)
2013-11-18
19:32
Add comments identifing where the skip-scan option is decided in the query planner, to aid in tuning that decision. No changes to code. (check-in: e9df04ce user: drh tags: trunk)
18:48
Fix documentation typos. No changes to code. (check-in: 7caeb09c user: drh tags: trunk)
11:20
Fix harmless compiler warnings from clang scan-build. (check-in: 8d002740 user: drh tags: trunk)
08:41
Fix a problem with the shell tool EXPLAIN indentation code and VDBE sub-programs. (check-in: 9c8d6856 user: dan tags: trunk)
03:11
Enable the ONEPASS optimization for DELETE, for both rowid and WITHOUT ROWID tables. (check-in: 44a07afd user: drh tags: trunk)
2013-11-17
02:42
Make sure one-pass DELETE for WITHOUT ROWID tables correctly positions the PRIMARY KEY cursor. Make the same fix for UPDATE. (Closed-Leaf check-in: 6bd5750b user: drh tags: optimize-delete)
2013-11-16
23:16
Fix a couple of minor problems with the new delete logic. (check-in: a11243f8 user: drh tags: optimize-delete)
23:03
Fix an OOM-recovery problem in the DELETE code generator. (check-in: dc7be158 user: drh tags: optimize-delete)
22:48
Combine the rowid and WITHOUT ROWID paths for DELETE into a single path. (check-in: c4734b88 user: drh tags: optimize-delete)
20:45
The one-pass optimization is now working for DELETE on WITHOUT ROWID tables. (check-in: e4d220a3 user: drh tags: optimize-delete)
20:13
Enhance the DELETE logic so that it can make use of WHERE_ONEPASS_DESIRED for rowid tables. (check-in: 8f479a72 user: drh tags: optimize-delete)
15:35
Fully constraint the ORDER BY on the top-10 line of the --summary output from the wordcount test program. Add the run-wordcount.bash script for running wordcount in various configurations. (check-in: 7edf39eb user: drh tags: trunk)
14:03
Avoid unnecessary OP_IfNull checks when doing a range query where there is a constraint on the lower bound of the range. (check-in: de08a7e7 user: drh tags: trunk)
13:55
Simplification and performance improvement to the logic that factors constant expressions ouf of inner loops. (check-in: ee9353fd user: drh tags: trunk)
12:56
Fix testcase misc7-16 so that it works with the new UNIQUE constraint error message format. (check-in: c7f2ed9f user: drh tags: trunk)
2013-11-15
20:06
Add ALWAYS and NEVER macros to currently unreachable but important branches in sqlite3ExprCompare(). (Closed-Leaf check-in: cee835fe user: drh tags: expr-codegen-enhancement)
19:00
Merge the operator comment fixes from trunk. (check-in: 9f14f55c user: drh tags: expr-codegen-enhancement)
18:58
Fix comments on the OP_Divide and OP_Remainder operators, especially the "Synopsis:" comment, so that they agree with the actual implementation. (check-in: cc17f1f0 user: drh tags: trunk)
18:15
Changes to make the new constant expression factoring logic more general and more testable. (check-in: d10fb49a user: drh tags: expr-codegen-enhancement)
16:48
Add test cases for INSERT INTO ... DEFAULT VALUES on tables with numeric constants in CHECK constraints. (check-in: 79ec485b user: drh tags: expr-codegen-enhancement)
15:52
Improvements to the Expr comparison routine to make it more general. Improvements to unary-minus code generation so that it can make use of a global constant register with a zero value. (check-in: 835be656 user: drh tags: expr-codegen-enhancement)
13:12
Add the --query option to the wordcount test program. (check-in: 5960d11e user: drh tags: trunk)
12:41
Simplify the range scan code generate while also avoiding an unnecessary OP_Affinity opcode. (check-in: 372686bf user: drh tags: expr-codegen-enhancement)
03:30
Merge EXPLAIN fixes from trunk. (check-in: cd579727 user: drh tags: expr-codegen-enhancement)
03:21
Fix a typo in the "synopsis" for the OP_Lt opcode that causes an incorrect comment to be added to EXPLAIN output. (check-in: d99a30a2 user: drh tags: trunk)
03:16
Another adjustment to the EXPLAIN indentation logic, in order to deal with the sorter loop on a CREATE INDEX statement. (check-in: cbe85cc2 user: drh tags: trunk)
01:10
Rework the logic that factors constant expressions out of inner loops, making it both simpler and faster. (check-in: 8dc5c76c user: drh tags: expr-codegen-enhancement)
2013-11-14
23:59
Adjust the command-line shell EXPLAIN indentation logic to handle the second loop of an UPDATE that reads out a RowSet. (check-in: ea141a9b user: drh tags: trunk)
19:34
Remove an unused local variable. (check-in: 10d59226 user: drh tags: trunk)
19:18
Merge the skip-scan optimization into the sessions branch. (check-in: 7596d1bf user: drh tags: sessions)
15:35
An experimental virtual tables for showing the content of internal schema objects. (Leaf check-in: d1fbc6ca user: drh tags: schema2-vtab)
00:09
Simplification to the progress callback check. One branch removed. (check-in: 24ef1654 user: drh tags: trunk)
2013-11-13
23:48
Make sure the progress callback is invoked prior to an SQLITE_ROW return if it is overdue to be called. (check-in: 21f59b04 user: drh tags: trunk)
20:46
Merge the skip-scan enhancement into trunk. (check-in: b0bb975c user: drh tags: trunk)
19:01
Import the "PRAGMA vdbe_eqp" enhancement and the enhanced EXPLAIN formatting the shell from trunk. Fix a bug in skip-scan and add a test case to prevent a regression. (Closed-Leaf check-in: f668616a user: drh tags: skip-scan)
18:35
In the shell tool, if an "EXPLAIN" command is executed in ".explain on" mode, attempt to automatically indent the bodies of loops in the output VDBE program. (check-in: e7d34ec6 user: dan tags: trunk)
17:58
Add the "PRAGMA vdbe_eqp" command, only available with SQLITE_DEBUG. Simplify some of the other debugging logic. (check-in: 8ce33f4c user: drh tags: trunk)
17:24
Add VDBE comments to the beginning and end of skip-scan loops. (check-in: 0c85d93b user: drh tags: skip-scan)
16:58
Improve the way that skip-scan loops are constructued. Add test cases. Improved the scoring of skip-scan loops. (check-in: 5e75ab93 user: drh tags: skip-scan)
15:32
Add test cases for skip-scan. Enhance "do_test" so that if the expected result is of the form "/*..*/" or "~/*..*/" it treats the expected result as a glob pattern rather than as a regular expression. Fix a bug in ANALYZE result loading associated with WITHOUT ROWID tables. (check-in: d3e6e9b2 user: drh tags: skip-scan)
12:27
Add the ability to use an index even if the left-most columns of the index are unconstrainted, provided that the left-most columns have few distinct values. (check-in: 27dd5993 user: drh tags: skip-scan)
08:55
Avoid an unnecessary OP_IfNull while doing an indexed search. (check-in: 51960009 user: drh tags: trunk)
2013-11-12
21:37
Adjust the SQLITE_MALLOCSIZE defines, primarily to make sure _msize gets used with MSVC when appropriate. (check-in: 4e7e805e user: mistachkin tags: trunk)
21:10
Fix harmless compiler warning. (check-in: ddacd101 user: mistachkin tags: trunk)
20:18
Minor enhancements to the auxiliary information added to EXPLAIN output with SQLITE_EXPLAIN_ENABLE_COMMENTS. (check-in: 0d1328e3 user: drh tags: trunk)
18:37
Break out the structure and macro definitions of where.c into a separate header file whereInt.h for easier editing and debugging. (check-in: c4446712 user: drh tags: trunk)
17:46
When possible, have FTS use 32-bit operations to read varints from the database. (check-in: aa7ba302 user: dan tags: trunk)
15:39
Import recent bug fixes from trunk. (check-in: 20eeee4c user: drh tags: sessions)
15:33
A better (simpler) fix to the count(*) problem addressed in the previous check-in. (check-in: 0f924c6e user: drh tags: trunk)
14:55
Make sure the count(*) optimization works correctly on WITHOUT ROWID tables. (check-in: 91174779 user: drh tags: trunk)
12:30
Update test command [explain_i] to handle the opcodes used by virtual tables (VNext, VFilter etc.). (check-in: 1b215ee3 user: dan tags: trunk)
12:17
Fix for [4065ac8595]: Do not order CROSS or LEFT joins, even if the right-hand-side is a virtual table. (check-in: e2684ece user: dan tags: trunk)
01:11
Fix an error message in the spellfix extension so that it conforms to the style of error messages in the core. (check-in: b896ae3d user: drh tags: trunk)
2013-11-11
23:26
Add a comment to the sqlite3_index_info structure indicating that the new field is only available in SQLite 3.8.2 or later. (check-in: 239648f8 user: drh tags: trunk)
23:02
Fix two test cases (due to changes in the formatting of constraint errors) so that all tests now pass. (check-in: 129e2b69 user: drh tags: sessions)
22:55
Merge in the WITHOUT ROWID changes. A few tests are failing now. They will be fixed in a follow-on check-in. (check-in: 5addd123 user: drh tags: sessions)
19:56
Fix typos in compile and run-time tests of the sqlite library version number in rtree.c. (check-in: f58d5701 user: dan tags: trunk)
19:01
Add a way for virtual tables to return the expected number of rows for a scan (not just the overall cost) to SQLite. Have the rtree module make use of this. (check-in: 5a3cfd74 user: dan tags: trunk)
16:55
Remove unreachable code, replacing it in most cases with assert() or NEVER() macros. (check-in: 924d63b2 user: drh tags: trunk)
03:37
Fix issue with several memory allocation tests due to KeyInfo allocations now being shared. (check-in: 569fedd6 user: mistachkin tags: trunk)
03:24
Convert several ALWAYS() macros in vdbe.c into assert() statements. (check-in: acc40ff6 user: drh tags: trunk)
02:46
Fix several harmless compiler warnings. (check-in: e6ff492f user: mistachkin tags: trunk)
01:42
Modify a HeapValidate assert in the Win32 native allocator. (check-in: aaed7d1d user: mistachkin tags: trunk)
00:43
Fix a problem in OP_IdxDelete as used by REPLACE conflict resolution that comes up due to recent enhancements that reduce the work required for UNIQUE NOT NULL indices. (check-in: 61d7d475 user: drh tags: trunk)
2013-11-10
00:03
Fix typo in comment and remove superfluous blank line. No changes to code. (check-in: 023233f1 user: mistachkin tags: trunk)
2013-11-09
23:55
Fix compilation errors with some compilers that do not reference recent Windows SDK header files. (check-in: a5805976 user: mistachkin tags: trunk)
23:44
Fix memory type mismatch when compiled with MEMDEBUG. (check-in: 2c32bd6d user: mistachkin tags: trunk)
22:08
Add the sqlite3_win32_compact_heap() function for cleaning up memory allocations on Win32 system. Also cleanup the winGetTempname() function. Changes to the Win32 VFS only. (check-in: d06d9fdb user: drh tags: trunk)
21:19
Updates to documentation on sqlite3_last_insert_rowid(). No changes to code. (check-in: a4c5804e user: drh tags: trunk)
21:11
Use the UNICODE_STRING_MAX_CHARS constant from WinNT.h. (Closed-Leaf check-in: 3fefe4dd user: mistachkin tags: win32heap)
21:10
Furhter cleanup of the winGetTempname function. (check-in: 674de36b user: mistachkin tags: win32heap)
19:47
Updates to requirements marks. No changes to code. (check-in: 8a036628 user: drh tags: trunk)
18:15
Throw an error if AUTOINCREMENT appears in a WITHOUT ROWID table. Updates to API documentation to discuss WITHOUT ROWID. (check-in: b1abb2b0 user: drh tags: trunk)
2013-11-08
20:10
Add more assert() statements and fix compilation issues when the Win32 native heap is not enabled. (check-in: fbf8c382 user: mistachkin tags: win32heap)
19:51
Disable use of HeapCompact on Windows CE as it is not available on all versions. (check-in: e9694b87 user: mistachkin tags: win32heap)
18:52
Adjust the winMemInit return code handling used when resetting the Win32 native heap. (check-in: 37853665 user: mistachkin tags: win32heap)
18:37
Minor corrections to logging for sqlite3_win32_compact_heap(). (check-in: 71347d02 user: mistachkin tags: win32heap)
18:13
Enhancements to the Win32 native heap integration. (check-in: c54dc967 user: mistachkin tags: win32heap)
17:13
Fix harmless compiler warnings. (check-in: 0077c077 user: drh tags: trunk)
17:03
Merge the Cygwin directory separator fix. Also fix a C++-ism in the multiplexor code so that it will compile on MSVC. (check-in: 830629d3 user: drh tags: trunk)
16:54
Performance improvement: Avoid unnecessary seeks on REPLACE INTO for a WITHOUT ROWID table. (check-in: fd11afa5 user: drh tags: trunk)
15:19
Performance improvements: Avoid unnecessary seeks when doing a single-row UPDATE on a WITHOUT ROWID table. (check-in: 6f187a0f user: drh tags: trunk)
12:14
Merge change to drop the mutex on the multiplexor before entering the xRead VFS call, in order to enhance parallelizability. (check-in: 3c566e41 user: drh tags: trunk)
01:09
Optimize out a NotExists/NotFound opcode that occurs in UPDATE processing after constraint checks if there is no possiblity that the constraint checking code might have moved the cursor. (check-in: 74e3ee2e user: drh tags: trunk)
00:16
On the --summary output of wordcount, add the a PRAGMA integrity_check and a 64-bit checksum of the entire table. (check-in: 1d1d13b8 user: drh tags: trunk)
2013-11-07
23:23
Add many new options to the wordcount test program: --delete, --pagesize, --cachesize, --commit, --nosync, and --journal. (check-in: e938112d user: drh tags: trunk)
22:11
Fix temporary directory separator handling for Cygwin. (Closed-Leaf check-in: 9d870d5f user: mistachkin tags: cygDirSep)
21:32
Fix a compiler warning introduced by the previous check-in. (check-in: 404bd98f user: drh tags: trunk)
21:25
Enable the WHERE_ONEPASS_DESIRED optimization for UPDATE operations on WITHOUT ROWID tables. (check-in: 21530798 user: drh tags: trunk)
19:43
Add the --stats and --summary options to the wordcount.c test program. (check-in: 8aa21e67 user: drh tags: trunk)
18:40
Increase the version number to 3.8.2. (check-in: 9ad5b74c user: drh tags: trunk)
18:37
Add the "wordcount.c" test program. (check-in: f02ee546 user: drh tags: trunk)
16:08
Add support for WITHOUT ROWID tables. This change also includes (1) standardization of the error message returned from run-time constraint errors, (2) improved EXPLAIN comments, (3) the SQLITE_ENABLE_EXPLAIN_COMMENTS option, (4) the SQLITE_ENABLE_MODULE_COMMENTS option, and (5) a bug fix (see [573cc27427]) in the handling of REPLACE on the rowid when secondary indices use FAIL or IGNORE. (check-in: c80e229d user: drh tags: trunk)
14:09
Make sure cached KeyInfo objects are only valid for a single database connection. Clear all cached KeyInfo objects on any collating sequence change. (Closed-Leaf check-in: 55eea178 user: drh tags: omit-rowid)
2013-11-06
19:59
Reference count the KeyInfo object. Cache a copy of an appropriate KeyInfo for each index in the Index object, and reuse that one copy as much as possible. (check-in: defd5205 user: drh tags: omit-rowid)
16:28
Have the OP_NoConflict opcode set the VdbeCursor.seekResult variable. This speeds up subsequent OP_Insert and OP_IdxInsert opcodes. (check-in: 47455500 user: dan tags: omit-rowid)
14:52
Use ansi escape codes to use different colored text for opcode names in the output of [explain_i]: Red for opcodes that insert or delete b-tree elements, blue for opcodes that move cursors and green for the ResultRow opcode. (check-in: 4be2b64b user: dan tags: omit-rowid)
14:36
Allocate extra stack space for UnpackedRecord objects, reducing the need to malloc for them as often, and thereby get a performance improvement. (check-in: a725a75f user: drh tags: omit-rowid)
14:05
Minor optimization to the OP_Halt opcode. (check-in: d70c7881 user: drh tags: omit-rowid)
12:56
Improved ORDER BY optimization for WITHOUT ROWID tables. (check-in: 8f1709ff user: drh tags: omit-rowid)
12:05
Disable the OR optimization for WITHOUT ROWID tables, since it relies on the use of rowids. (check-in: 6055dad2 user: drh tags: omit-rowid)
11:46
Remove an incorrect test case from conflict2.test. (check-in: 427612ef user: drh tags: omit-rowid)
02:36
Remove an unused variable. (check-in: e9c1e419 user: drh tags: omit-rowid)
2013-11-05
22:39
Make sure the query planner knows that the PRIMARY KEY index of a WITHOUT ROWID table is always a covering index. (check-in: 03e7019e user: drh tags: omit-rowid)
19:41
Fix conflict handling for the case when the rowid uses REPLACE but other unique constraints use FAIL or IGNORE. (check-in: 573cc274 user: drh tags: omit-rowid)
17:30
Fix a bug in secondary index initialization when the secondary index is a superset of the PRIMARY KEY for a WITHOUT ROWID table. (check-in: 52a3d885 user: drh tags: omit-rowid)
16:56
Remove an "explain" command from test script without_rowid1.test that was accidentally committed. (check-in: 4b41d989 user: dan tags: omit-rowid)
16:39
Unless the destination table is completely empty, disable the xfer optimization for WITHOUT ROWID tables. (check-in: 3877c9f5 user: dan tags: omit-rowid)
15:02
Updates to the backcompat.test test script so that it works with really old (3.6.*) versions. (check-in: ace7e7b6 user: dan tags: omit-rowid)
14:19
Add tests for updates of without-rowid tables that use non-BINARY collation sequences for the primary key columns. And a minor bugfix to the same. (check-in: 99b1fa4b user: dan tags: omit-rowid)
13:33
Standardize the error messages generated by constraint failures to a format of "$TYPE constraint failed: $DETAIL". This involves many changes to the expected output of test cases. (check-in: 54b22192 user: drh tags: omit-rowid)
01:59
Add the conflict2.test script. Fix issues discovered by this script. (check-in: 294ed337 user: drh tags: omit-rowid)
2013-11-04
22:04
Add the index7.test script for testing partial indices with WITHOUT ROWID tables. Fix bugs in ANALYZE located by that script. (check-in: 79befe3a user: drh tags: omit-rowid)
21:44
Bug fixes in the INSERT constraint checker. Refactor the Rowid handling logic for ANALYZE with STAT3/4. (check-in: 1ea43c0f user: drh tags: omit-rowid)
18:34
Add another test case file for WITHOUT ROWID and fix the bugs that the new test file uncovered. (check-in: bc2a06eb user: drh tags: omit-rowid)
17:00
Fix a problem with processing INTEGER PRIMARY KEY on a WITHOUT ROWID table. (check-in: 89098e6d user: drh tags: omit-rowid)
15:23
Correctly handle changing counting when inserting and deleting on WITHOUT ROWID tables. Add more FOREIGN KEY test cases. (check-in: d072bcd0 user: drh tags: omit-rowid)
13:56
Correctly handle self-referential foreign keys on WITHOUT ROWID tables. (check-in: af128862 user: drh tags: omit-rowid)
08:56
Fix a bug preventing FTS from correctly processing bracket tokens that are immediately preceded by characters that are neither whitespace or token characters. (check-in: 49be646c user: dan tags: trunk)
2013-11-03
02:27
Improved comments on foreign key logic. (check-in: 1315d910 user: drh tags: omit-rowid)
2013-11-02
22:29
Improved Synopsis on register comparison operators. Fix a bug on the constraint check generator. (check-in: a7a18b65 user: drh tags: omit-rowid)
22:09
Many new test cases added, that mostly work. Currently 18 errors in without_rowid3.test. Also there is a hack marked by a /*FIXME*/ comment on at fkey.c:547 that needs fixing. (check-in: 39e32187 user: drh tags: omit-rowid)
19:34
Change the "idx" name of the primary key index for WITHOUT ROWID tables in sqlite_statN statistics tables to be the name of the table rather than the fabricated index name (ex: sqlite_autoindex_xyz_1). This makes it consistent with sqlite_master table. (check-in: 4ee4d310 user: drh tags: omit-rowid)
18:46
Update the ANALYZE logic so that it works with WITHOUT ROWID tables. (check-in: 9075770e user: drh tags: omit-rowid)
14:37
Store the root page of the PRIMARY KEY index for a WITHOUT ROWID table in the sqlite_master entry for the main table and omit the sqlite_master entry for the PRIMARY KEY. (check-in: b7544bb2 user: drh tags: omit-rowid)
11:43
Import the sqlite3_analyzer fixes from trunk. (check-in: ac711459 user: drh tags: omit-rowid)
11:34
A pair of sqlite3_analyzer bug fixes: (1) quote strings in the SQL at the end of the output. (2) Fix test_stat.c so that it no longer misses some overflow pages on internal index pages. (check-in: 42a11e74 user: drh tags: trunk)
2013-11-01
22:02
Size KeyInfo objects so that IdxInserts always compare the correct number of fields. (check-in: 302a8139 user: drh tags: omit-rowid)
20:30
Fix sqlite3_analyzer so that it works with WITHOUT ROWID tables. Fix index generation for secondary indices that include fields from the PRIMARY KEY. (check-in: f9769d70 user: drh tags: omit-rowid)
18:14
Additional UPDATE test cases for WITHOUT ROWID. (check-in: 65384ae0 user: drh tags: omit-rowid)
17:59
Fix an invalid cast operation in the WITHOUT ROWID parsing logic. (check-in: 845153be user: drh tags: omit-rowid)
17:21
Merge all changes from trunk, and disable a pair of corruption tests that are no longer valid since sqlite_master.rootpage can now be NULL for tables. (check-in: dd5d57b9 user: drh tags: omit-rowid)
17:08
Change the interface to sqlite3GenerateConstraintChecks() for improved lucidity and to fix issues in dealing with UPDATEs for WITHOUT ROWID tables. Make sure iDataCur and iIdxCur are initialized when processing DELETEs of a VIEW. UPDATE processing distinguishes between changes to ROWID and PRIMARY KEY. (check-in: c525ac56 user: drh tags: omit-rowid)
14:03
Improved VDBE comments on the constraint checker. Fix a missing write lock in the UPDATE logic. (check-in: 3bed599e user: drh tags: omit-rowid)
12:42
Some UPDATE statements now working in WITHOUT ROWID tables. (check-in: 5c0eaea6 user: drh tags: omit-rowid)
01:45
A couple of bug fixes. (check-in: cdf00248 user: drh tags: omit-rowid)
2013-10-31
20:34
Fix the Synopsis on OP_Concat. Added test_addop_breakpoint() during SQLITE_DEBUG. Enhanced sqlite3VdbeChangeToNoop() to omit the instruction if it is the most recent added. Continue to fix problems with UPDATE and WITHOUT ROWID. (check-in: 9b6d9e10 user: drh tags: omit-rowid)
18:49
Fix a problem in os_unix.c causing compilation failure if SQLITE_DEBUG and SQLITE_MAX_MMAP_SIZE=0 are both defined. (check-in: 090db8c8 user: dan tags: trunk)
17:38
Fix issues with quering from an auxiliary index that must refer back to the PRIMARY KEY index of a WITHOUT ROWID table. (check-in: cff1f55c user: drh tags: omit-rowid)
15:37
Improved comments and variable names in infrastructure routines of UPDATE, DELETE, and INSERT. (check-in: ad90e762 user: drh tags: omit-rowid)
12:13
Moving UPDATE towards the iDataCur/iIdxCur representation. Still not working for WITHOUT ROWID, though. (check-in: deacbd21 user: drh tags: omit-rowid)
11:15
Refactor the INSERT, DELETE, and UPDATE code generators to distinguish between the "data cursor" and the "first index cursor", which are no longer consecutive in the case of a WITHOUT ROWID table. (check-in: 1adfca60 user: drh tags: omit-rowid)
06:39
Update comments in the MSVC batch build tool. (check-in: 0414bb73 user: mistachkin tags: trunk)
06:13
Enable some more tests on Windows. (check-in: 72389c29 user: mistachkin tags: trunk)
06:11
Fix harmless compiler warnings. (check-in: 1a0a8865 user: mistachkin tags: trunk)
2013-10-30
20:22
Continue working to get UPDATE operational for WITHOUT ROWID tables. Fix PRAGMA integrity_check so that it works on WITHOUT ROWID tables. (check-in: 0d4fea74 user: drh tags: omit-rowid)
15:52
Make sure KeyInfo objects on multi-column indices of WITHOUT ROWID tables have the correct nField and nXField values. Also, add the SQLITE_ENABLE_MODULE_COMMENT compile-time option and the VdbeModuleComment() macro and use it to label entry and exit points of some key routines. (check-in: 6d9af606 user: drh tags: omit-rowid)
13:46
In the P4 column of the EXPLAIN listing, abbreviate "keyinfo" as just "k" and "BINARY" as just "B". (check-in: 72d45eb7 user: drh tags: omit-rowid)
12:43
Enhance the timer in the shell to show wall-clock time in addition to user and kernel CPU time. (check-in: 908e2c21 user: drh tags: trunk)
12:30
Have the shell ".timer on" command cause the shell to report wall-clock time for each query (as well as user and system CPU time). (Leaf check-in: 5530cdc4 user: dan tags: shell-wall-clock)
03:25
Add the "Esri Spatially-Enabled Database" file format to the magic.txt file. (check-in: 8530a18f user: drh tags: trunk)
02:37
Merge EXPLAIN enhancements from trunk. (check-in: 2fcac056 user: drh tags: omit-rowid)
02:28
Add the SQLITE_ENABLE_EXPLAIN_COMMENTS compile-time option to enable extra commentary in the EXPLAIN output. Formerly, this was only available with SQLITE_DEBUG. (check-in: e1a89b56 user: drh tags: trunk)
00:25
Enhanced display of register ranges in the auxiliary comments added to EXPLAIN. (check-in: d6b0c392 user: drh tags: trunk)
2013-10-29
20:47
Import the automatic comment generating changes from trunk. (check-in: 8bb51da1 user: drh tags: omit-rowid)
20:40
Automatically generated comments on many VDBE opcodes when in SQLITE_DEBUG mode. Comments derive from the "Synopsis:" field added to each opcode definition in vdbe.c. (check-in: 5f310c6a user: drh tags: trunk)
16:14
Improved comments on the constraint checking logic. (check-in: 141a38a7 user: drh tags: omit-rowid)
2013-10-28
22:47
Merge all trunk changes since 3.8.1 into the sessions branch. (check-in: aa72ea8a user: drh tags: sessions)
22:39
Merge recent fixes from trunk. (check-in: 9f8191d1 user: drh tags: omit-rowid)
22:33
Formatting improvements to the WHERE-clause constraint display in the wheretrace debugging logic. (check-in: 3a9e3ed9 user: drh tags: trunk)
20:38
Add regression tests for ticket [c620261b5b5]. (check-in: 05a35b09 user: drh tags: trunk)
20:15
Do not use transitive WHERE-clause constraints on LEFT JOINs. Fix for ticket [c620261b5b5dc]. (check-in: 9aac4e58 user: drh tags: trunk)
19:59
More wheretrace debugging support: Show a listing of all WHERE clause terms (on wheretrace bit 0x100) and include important flags such as TERM_VIRTUAL, WO_EQUIV, and EP_FromJoin. (check-in: 92ccd705 user: drh tags: trunk)
19:03
Bug fix and enhancements to the improved wheretrace logic that shows the constraint expressions. (check-in: 10f125f5 user: drh tags: trunk)
14:34
Improved "wheretrace" capabilities: Show the constraint expression if the wheretrace flag has the 0x100 bit set and if compiled with SQLITE_ENABLE_TREE_EXPLAIN. (check-in: 710a18ac user: drh tags: trunk)
2013-10-26
15:40
Work on the UPDATE and INSERT logic. This is an incremental check-in so that can switch over to trunk to work on an unrelated issue there. (check-in: 086ec2a1 user: drh tags: omit-rowid)
13:36
Replace the OP_IsUnique opcode with OP_NoConflict. This code simplification might be useful to move onto trunk even if this branch is never merged. (check-in: e6650e16 user: drh tags: omit-rowid)
00:58
Minor refactoring of variable names and fixes to comments in insert.c. (check-in: ae61a343 user: drh tags: omit-rowid)
2013-10-25
19:17
Progress toward getting UPDATE to work in WITHOUT ROWID tables. (check-in: e557b7d8 user: drh tags: omit-rowid)
14:46
Basic DELETE operations now working on WITHOUT ROWID tables. (check-in: 9eafafa3 user: drh tags: omit-rowid)
2013-10-24
19:48
Update the interface to the sqlite3GenerateRowDelete() utility so that it is able to handle WITHOUT ROWID tables. The implementation still needs to be completed. (check-in: 85daf517 user: drh tags: omit-rowid)
15:20
Add the ".open" command to the command-line shell. (check-in: 21eccb91 user: drh tags: trunk)
14:16
Delete PRIMARY KEY index entries last. Only construct the unique prefix of an index key when deleting entries from an index. (check-in: 0e56ba69 user: drh tags: omit-rowid)
11:55
Remove an obsolete comment from the VDBE. No code changes. (check-in: 53bb070c user: drh tags: omit-rowid)
00:18
Correctly handle queries that use secondary indices of WITHOUT ROWID tables. (check-in: d8bc8595 user: drh tags: omit-rowid)
2013-10-23
23:37
Change the sqlite3OpenTable() utility to open the PRIMARY KEY index when reading a WITHOUT ROWID table. (check-in: 247f3899 user: drh tags: omit-rowid)
22:23
Construct secondary indices on WITHOUT ROWID tables. (check-in: 2c028ddc user: drh tags: omit-rowid)
17:39
Report an error when trying to resolve column name "rowid" in a WITHOUT ROWID table. (check-in: 36bcc9cb user: drh tags: omit-rowid)
16:03
Get VACUUM and the xfer optimization working with WITHOUT ROWID. (check-in: 579815ff user: drh tags: omit-rowid)
13:30
Some inserts and queries working for multi-column primary keys and WITHOUT ROWID. (check-in: b21d831b user: drh tags: omit-rowid)
01:57
Some simple inserts and queries working on WITHOUT ROWID tables. (check-in: 3f8016de user: drh tags: omit-rowid)
00:32
Build internal data structures appropriately for WITHOUT ROWID tables. (check-in: 35a36060 user: drh tags: omit-rowid)
2013-10-22
18:01
The Index object now has nKeyCol and nColumn. nColumn is the total number of columns and nKeyCol is the number of key columns. Currently these always differ by one. Refactor aiColumn[] to be of type i16 instead of int. (check-in: a106ce86 user: drh tags: omit-rowid)
14:28
Add a procedure to handle the messy details of allocating an Index object from the heap. (check-in: 45efc94f user: drh tags: omit-rowid)
10:23
Extra backwards-compatibility tests verify that UNIQUE and PRIMARY KEY indices are created in the correct order. Other backwards-compatibility tests already cover this, but it does not hurt to double up. (check-in: 5ca0ea2e user: drh tags: omit-rowid)
01:18
Previous refactor is not going to be helpful because implied indices must be created in the same order that they appear in the CREATE TABLE statement for backwards compatibility. This is a much smaller change to clean up a few loose ends. (check-in: 824b549f user: drh tags: omit-rowid)
2013-10-21
23:55
Minor refactoring of the PRIMARY KEY parsing logic to facilitate enhancements. (Closed-Leaf check-in: 4e69dd5f user: drh tags: omit-rowid)
23:17
Improve support for the SQLITE_OMIT_FLAG_PRAGMAS compile-time option. (check-in: f1d8c3b0 user: mistachkin tags: trunk)
13:15
Drop the mutex on the multiplexor before entering the xRead VFS call. (Closed-Leaf check-in: a00d2ed4 user: drh tags: multiplex-parallel-read)
02:14
Simplification of the syntax: Merely append "WITHOUT rowid" to the end of the table definition. (check-in: 131cc6e1 user: drh tags: omit-rowid)
2013-10-19
23:31
Experimental changes toward "index only" tables. Add the ability to specify options on CREATE TABLE statements using the WITH clause modeled after PostgreSQL and SQL Server. Only the "omit_rowid" option is currently recognized and that option is currently a no-op. (check-in: 0248ec5e user: drh tags: omit-rowid)
16:51
Improved header comment with better instructions on the vfslog.c extension. (check-in: 4bd592c8 user: drh tags: trunk)
15:07
Fix a bug causing an "malformed database schema error" error if a temp table with the same name as an existing table that has at least one temp trigger attached to it is created. (check-in: 56dca4a6 user: dan tags: trunk)
2013-10-18
20:03
Add the SQLITE_FCNTL_TRACE file control and generate it for OP_Trace when compiled with SQLITE_USE_FCNTL_TRACE. Update vfslog.c to make use of the new file control. Also update vfslog.c to log UNLOCK events before the fact, rather than afterwards. (check-in: e801f35a user: drh tags: trunk)
17:42
Further enhance the vfslog extension to record the number of freelist pages and the first freelist page in CHNGCTR-READ and CHNGCTR-WRITE records. (check-in: 08157524 user: drh tags: trunk)
14:37
In the vfslog extension for FILECONTROL records, show the pragma name for SQLITE_FCNTL_PRAGMAs and the requested size for SQLITE_FCNTL_SIZE_HINT. (check-in: f0629695 user: drh tags: trunk)
2013-10-17
12:57
Version 3.8.1 (check-in: c78be6d7 user: drh tags: trunk, release, version-3.8.1)
2013-10-16
23:58
Fix a typo in a requirements mark comment. No changes to code. (check-in: e5a439cf user: drh tags: trunk)
14:32
Merge the latest trunk changes. (check-in: 58065468 user: drh tags: sessions)
11:39
Clear a valgrind error by zeroing the first 4 bytes of the temp-space allocation used by the b-tree module. (check-in: 8651aba1 user: dan tags: trunk)
11:31
Fix memory and resource leaks for WinCE and Cygwin, and a compiler warning on windows with SQLITE_THREADSAFE=0. (check-in: 9905cea9 user: drh tags: trunk)
09:49
Fix memory/resource leaks for WinCE and Cygwin. (Closed-Leaf check-in: 2470d1bb user: mistachkin tags: wince-fixes)
2013-10-15
19:06
Add the "languageid" hidden column to fts4aux. (check-in: 891df358 user: dan tags: trunk)
15:35
Changes to test code to make sure no server threads are left running after server1.test finishes. (check-in: 1086e00b user: dan tags: trunk)
14:29
Fix an 8-byte alignment problem on the "crash test" harness (test code, not in the core) that causes problems on Sparc. (check-in: bcbc6503 user: drh tags: trunk)
14:10
Merge the latest trunk changes into the sessions branch. This merge should fix the build for WinRT. (check-in: e111e4ed user: drh tags: sessions)
11:58
Fix harmless macro redefinition warnings in the totype extension. (check-in: c9c1f8d6 user: drh tags: trunk)
10:43
Fix harmless macro redefinition warnings in the totype extension. (Closed-Leaf check-in: a38adeb7 user: mistachkin tags: noWarnings)
2013-10-14
22:35
Fix harmless compiler warning in the totype extension. Include all standard whitespace characters in totypeIsspace. Minor adjustments to style and comments. (check-in: 73238f65 user: mistachkin tags: trunk)
21:14
Move the tointeger() and toreal() functions out of core and make them into a run-time loadable extension. (check-in: 9f66dd7e user: drh tags: trunk)
20:30
Fix a crash in FTS incremental phrase processing that can occur if the second or subsequent token is much more common in the dataset than the first. (check-in: 0bf438fc user: dan tags: trunk)
19:35
Add implementations for the toInteger() and toReal() SQL functions. (check-in: a0f7cbc0 user: drh tags: trunk)
15:41
Fix for building with SQLITE_OMIT_FOREIGN_KEY. (check-in: b8b5f6c8 user: dan tags: trunk)
14:30
Update the foreign_key_check pragma so that when a parent table is undefined it is treated as an empty table. (check-in: 208b259a user: drh tags: trunk)
14:21
Corrects to comments on the STAT4 implementation. (check-in: e06f74d3 user: drh tags: trunk)
13:21
Make subroutines sampleCopy() and valueFromExpr() have file scope. (check-in: 1660efbe user: drh tags: trunk)
10:46
Add a new application_id for GeoPackage version 1.0. (check-in: 98ddfe45 user: drh tags: trunk)
2013-10-12
23:39
Merge updates from trunk. (Closed-Leaf check-in: a88b5be0 user: mistachkin tags: toTypeFuncs)
20:22
Restore the index_list pragma back to its former operation. Create a new PRAGMA stats used to access the table and index widths and heights. (check-in: f0cf8c85 user: drh tags: trunk)
19:06
In "PRAGMA foreign_key_check", treat missing parent tables as empty (instead of as errors). (Closed-Leaf check-in: 8c13a7fd user: dan tags: fkc-missing-parent-tables)
15:12
Fix handling of "DROP TABLE" commands when "PRAGMA defer_foreign_keys=1" is set. (check-in: 27001356 user: dan tags: trunk)
13:16
Add tests that demonstrate that PRAGMA defer_foreign_keys will reset to off at the conclusion of the next transaction. (check-in: 67e28a11 user: drh tags: trunk)
09:32
Changes to the new initial row of PRAGMA index_list results. (Closed-Leaf check-in: 0c4dd9ff user: mistachkin tags: indexList)
02:33
Fix harmless compiler warning. (check-in: 4b130f88 user: mistachkin tags: trunk)
02:31
Permit the creation of VSIX packages for Win32. (check-in: 035d03e9 user: mistachkin tags: trunk)
00:56
Fix Unicode character encoding issues on Windows in the fts4unicode test file. (check-in: c9310c9a user: mistachkin tags: trunk)
2013-10-11
23:37
Identify requirements text in the SQLITE_CONFIG_ documentation. Fix a typo (a duplicated word) in part of that documentation. Add some requirements marks for DETACH to the test scripts. No code changes. (check-in: 1be0a3ad user: drh tags: trunk)
23:02
The split amalgamation option should be disabled by default. (check-in: 7c24d22f user: mistachkin tags: trunk)
23:01
Enhance debugging support for the split amalgamation files when compiling with MSVC. (check-in: 8ff17c55 user: mistachkin tags: trunk)
23:01
Fix a harmless compiler warning in lemon.c. (check-in: 62959c0c user: drh tags: trunk)
22:19
Add -no-undefined option when linking the shared libraries. (check-in: 977d2b12 user: mistachkin tags: trunk)
22:17
Fix test numbering. (check-in: cef39f69 user: mistachkin tags: trunk)
20:14
Add requirements marks. No code changes. (check-in: 5e0d43ab user: drh tags: trunk)
16:35
Additional test cases and requirements marks for the unlikely(), likelihood() and instr() functions. (check-in: 5f01cd36 user: drh tags: trunk)
15:05
Fix various harmless compiler warnings. Change the "warnings.sh" script to work with STAT4 instead of STAT3. (check-in: 7df06684 user: drh tags: trunk)
13:27
Make sure the sqlite3.h file occurs at the very top of the sqlite3.c amalgamation. (check-in: 03593817 user: drh tags: trunk)
05:51
Fix compilation issue for WinRT. (check-in: 7a2006ca user: mistachkin tags: trunk)
2013-10-10
20:13
Synchronize with the trunk. (check-in: 136445ba user: drh tags: sessions)
17:33
Add a rule to the main.mk makefile for building showdb. (check-in: fc5552da user: drh tags: trunk)
15:04
Enhancements to the vfslog.c module to show all change-counter changes and to show the hostname and pid of the process that creates each log file. (check-in: af7abebe user: drh tags: trunk)
13:41
Another fix to the hash signature algorithm in vfslog.c. (check-in: 34212aa8 user: drh tags: trunk)
13:38
Fix the hash signature algorithm in vfslog.c. Add a utility program to show the hash signatures for every page of a database file. (check-in: eaf4de13 user: drh tags: trunk)
13:04
Add ext/misc/vfslog.c, a VFS shim for unix that keeps a log of method calls made by SQLite. (check-in: 24a827b8 user: dan tags: trunk)
12:38
Estimate row sizes for tables and indices and use those estimates during query planning. Enhance the index_info pragma to show the estimated row sizes and to show the estimated row size for the main table as well. Allow an alternative row size estimate to be specified in the sqlite_stat1 table. (check-in: d27b88b8 user: drh tags: trunk)
2013-10-09
19:07
Make sure the correct printf format is used for type tRowcnt regardless of whether 32-bit or 64-bit row counts are specified at compile-time. (Closed-Leaf check-in: e97d7d30 user: drh tags: row-size-est)
2013-10-08
23:16
Move a conditional inside of an #ifdef in order to make all branches reachable regardless of compile-time options used. (check-in: f7cc30d4 user: drh tags: row-size-est)
22:25
Fix test cases for the new information in PRAGMA index_list. (check-in: dd03be10 user: drh tags: row-size-est)
20:42
Rollback some of the previous changes in the branch such that the estimated row sizes are now only used as a tie-breaker for index scans. (check-in: 65553ff3 user: drh tags: row-size-est)
20:01
Use #ifdefs to omit unused code in the columnType() routine depending on compile-time options. (check-in: 3fd5e332 user: drh tags: row-size-est)
18:40
Further refinement of the idea of multiplying run-time cost estimates by the estimated row size. (check-in: 18bd6ba9 user: drh tags: row-size-est)
2013-10-07
21:49
Fix compilation issue with MSVC. (check-in: 36d64dc3 user: mistachkin tags: trunk)
17:32
Multiply all cursor step cost estimates by the estimated size of the row in bytes, in order to get the query planner ot make use of estimated row sizes. This check-in uses magic numbers in a few places (for example, estimates of the size of output rows) and needs lots of refinement. Consider this a proof-of-concept only. (check-in: cb34cfe5 user: drh tags: row-size-est)
16:53
Try to remember statistics from ANALYZE using LogEst instead of u64. (Leaf check-in: 8e78557a user: drh tags: log-stats)
10:48
Merge bug fixes from trunk. (check-in: 1d7b2dc0 user: drh tags: row-size-est)
00:36
Restore the hexrekey pragma which was accidently deleted during the pragma refactoring. Make sure the hexkey and hexrekey pragmas do not overflow buffers with a over-length key. (check-in: 0aca31e1 user: drh tags: trunk)
2013-10-06
22:52
Remove an incorrect debugging assert() that was accidently added during the STAT4 enhancement. (check-in: 2bb7f74b user: drh tags: trunk)
22:12
Accept the sz=N parameter on table-only lines of sqlite_stat1. (check-in: e9e932aa user: drh tags: row-size-est)
2013-10-05
20:18
Fix an issue in the test8.c test module that arises because of the change to PRAGMA index_list(). Remove an unused local variable. (check-in: 029430c5 user: drh tags: row-size-est)
19:18
Completely remove the iScanRatio field. The PRAGMA index_list(TABLE) command shows the estimated row size in the forth column. It also generates a row for the table with an index name of NULL. The query planner still does not take row size estimates into account - that is the next step. (check-in: 8b4aa0c7 user: drh tags: row-size-est)
18:32
Improvements to the LogEst command-line tool used to convert between ordinary numbers and the LogEst representation. (check-in: 5252aeb6 user: drh tags: row-size-est)
18:16
Begin an experimental refactoring to estimate the average number of bytes in table and index rows and to use that information in query planner. Begin by renaming WhereCost to LogEst and making that type and its conversion routines available outside of where.c. (check-in: 66c4a251 user: drh tags: row-size-est)
02:56
In the index_list pragma, make sure the "r" column is the same on output as it was on input in the sqlite_stat1 table. (Closed-Leaf check-in: de78250a user: drh tags: index-scan-rate)
2013-10-04
20:39
Merge trunk changes. (check-in: c6ac80ed user: drh tags: index-scan-rate)
18:29
Further refinements of the index scanning speed logic. (check-in: e5d9371d user: drh tags: index-scan-rate)
18:17
If an "INSERT INTO ... SELECT" can use the xfer optimization, pass the OPFLAG_BULKCSR hint to btree cursors used to update indices. This results in a tighter key packing. (check-in: 087af29e user: dan tags: trunk)
15:58
Fix test cases so that they work when the query planner uses index size estimates to determine whether or not to try an covering index scan. (check-in: 2f394de8 user: drh tags: index-scan-rate)
15:30
Improved estimates of the relative speed of index scans based on declared datatypes of columns in the table. Add "r" column to PRAGMA index_info, showing the estimated relative scan rate. (check-in: 07462bb6 user: drh tags: index-scan-rate)
02:36
Progress toward using the iScanRatio information on indices. Many tests are still failing. (check-in: 6c352edb user: drh tags: index-scan-rate)
00:00
Make sure the count(*) optimization works correctly even when partial indices are present. Ticket [a5c8ed66cae]. (check-in: 9f2f4c0a user: drh tags: trunk)
2013-10-03
20:41
Have FTS take advantage of "docid<?" constraints when they are present. Extend the FTS "incremental doclist" optimization so that it is used for tokens within multi-token phrases. (check-in: baf8ce59 user: dan tags: trunk)
20:28
Merge latest trunk changes. (Closed-Leaf check-in: 24aa20da user: dan tags: fts4-docid-range-constraints)
19:27
Allow FTS4 multi-token phrases to use a combination of in-memory and incrementally loaded doclists. This allows phrases to (partially) benefit from incremental doclists without disabling the deferred token optimization. (check-in: f6819c5f user: dan tags: fts4-docid-range-constraints)
19:21
Experimental branch allowing different postulated scan rates for each index. (check-in: d59d97b0 user: drh tags: index-scan-rate)
15:39
The sqlite3FixInit() routine cannot fail. So change the return type from "int" to "void". (check-in: 500c5932 user: drh tags: trunk)
14:08
Rework the PRAGMA implementation to only call sqlite3ReadSchema() from a single place, based on a flag in the pragma table, rather than separately from each case which needs the schema. (check-in: 8338232a user: drh tags: trunk)
12:29
Return an error if an attempt is made to create a trigger with an SQL variable embedded within it. If such a variable reference is found within a trigger definition loaded from the sqlite_master table, silently replace it with a NULL. (check-in: f35f6ae3 user: dan tags: trunk)
11:27
Remove unnecessary memset() calls from test code. (check-in: eec3187b user: drh tags: trunk)
2013-10-02
20:46
In the lemon parser generator, change all hashes to unsigned to avoid potential problems with signed integer overflow. (check-in: 8d399a03 user: drh tags: trunk)
08:04
Add a test to check that the new multi-token phrase optimization is actually helping. (check-in: bc3a2ed5 user: dan tags: fts4-docid-range-constraints)
2013-10-01
20:29
Bring some file format comments in btreeInt.h up to date. (check-in: 012d54d0 user: drh tags: trunk)
20:10
Merge trunk changes with this branch. (check-in: 65d9c6fa user: dan tags: fts4-docid-range-constraints)
20:02
Allow multi-token phrases to load doclists from the database incrementally. This allows queries that feature such phrases to benefit from the "docid<?" optimization. (check-in: ea543f08 user: dan tags: fts4-docid-range-constraints)
19:36
Fix comments in the fast_vacuum.c demonstration program. (check-in: e0db7b38 user: drh tags: trunk)
19:02
Add the "fast_vacuum.c" demonstration program to the tool/ subdirectgory. (check-in: 2b60320d user: drh tags: trunk)
15:30
Change the ".dump" command in the command-line shell so that it COMMITs if there are database corruption errors but invokes ROLLBACK on any other kind of error. (check-in: 47323463 user: drh tags: trunk)
2013-09-30
19:33
Fix a minor typo in a comment in where.c. (check-in: 9c9fa151 user: drh tags: trunk)
19:05
Add some timing tests to the amatch test script. (check-in: ad71c72b user: drh tags: trunk)
18:16
Merge trunk changes with this branch. (check-in: e294a9c7 user: dan tags: fts4-docid-range-constraints)
18:14
Fix a performance problem in the FTS4 auxiliary functions triggered by an OR clause in the full-text query. (check-in: fa0f2f0e user: dan tags: trunk)
17:37
Fix memory leaks in the amatch extension. Add a few simple test cases. (check-in: 60413473 user: drh tags: trunk)
11:42
Have fts4 full-text queries consider "docid<?" and similar constraints. (check-in: 6622424a user: dan tags: fts4-docid-range-constraints)
11:01
Update and modernize an obsolete comment associated with VACUUM. No changes to code. (check-in: 94c914e3 user: drh tags: trunk)
2013-09-29
04:56
Fix typo in comment. No changes to code. (check-in: 0b7bd468 user: mistachkin tags: trunk)
2013-09-28
16:43
Add new test file fts3defer3.test. (check-in: a6cd14ef user: dan tags: trunk)
13:28
In the nextchar.c extension, allow the second argument to the next_char() function to be a subquery. (check-in: 59b9fa22 user: drh tags: trunk)
12:40
Updates to the sqlite3_analyzer utility: Change the names of some labels, especially change "Fragmentation" to "Non-sequential pages". Revise the computation of non-sequential pages so that it ignores itercalated non-leaf pages (overflow and index pages). (check-in: 3e5c7771 user: drh tags: trunk)
2013-09-26
15:21
Obtain the required shared-cache write-lock when executing "DELETE FROM tbl" statements. Fix for [1e1321ee98]. (check-in: 1f8f4fdf user: dan tags: trunk)
11:04
Fix a faulty assert() in sqlite3BtreeBeginTrans() that may fail in shared-cache mode. (check-in: 1e1321ee user: dan tags: trunk)
2013-09-24
19:07
Merge updates from trunk. (check-in: 435ce3b3 user: mistachkin tags: toTypeFuncs)
2013-09-18
11:16
Test that the unicode61 tokenchars= and separators= options work with the fts3tokenize virtual table. (check-in: ed240514 user: dan tags: trunk)
2013-09-17
23:36
Clear the current time value on prepared statements when the prepared statement is reset. (check-in: cebd6fc5 user: drh tags: trunk)
2013-09-16
20:46
Readability improvements to the Win32 RC file. (check-in: e6459062 user: mistachkin tags: trunk)
19:27
Minor consistency fixes to the Win32 RC file. (check-in: 619c5211 user: mistachkin tags: trunk)
12:57
The date and time functions use the exact same notion of "now" for every invocation within the same call to sqlite3_step(). (check-in: daf6ba41 user: drh tags: trunk)
2013-09-13
23:27
Fix Windows SDK compiler warning. (check-in: d5fc3f1d user: mistachkin tags: trunk)
23:26
Fix test issues for Windows portability. (check-in: 650b3282 user: mistachkin tags: trunk)
22:38
VSIX tooling changes to support Visual Studio 2013. (check-in: d56fac40 user: mistachkin tags: trunk)
21:03
Fix the "const" qualifiers on the pragma name table. (check-in: b74e6be8 user: drh tags: trunk)
21:01
Add the soft_heap_limit pragma. (check-in: c326356f user: drh tags: trunk)
19:08
VSIX tooling changes to support Visual Studio 2013. (Leaf check-in: e8ac4a12 user: mistachkin tags: branch-3.8.0)
19:00
Tweak the new PRAGMA name parser to achieve full branch test coverage. (check-in: c82e05c4 user: drh tags: trunk)
18:15
Remove one unreachable branch and add asserts() to dupedExprStructSize(). New asserts verify that removed branch is unused and that constants that are ORed together in the output do not overlap. (check-in: 86ad358b user: drh tags: trunk)
17:47
Adjust the query planner to take into account WHERE clause terms that do not drive indices. Add the unlikely() and likelihood() functions used to give hints to the query planner about the selectivity of WHERE clause terms. (check-in: bc446449 user: drh tags: trunk)
16:56
Enhance the pragma lookup table generator script to output a comment that gives the number of pragmas. (check-in: ca052050 user: drh tags: trunk)
16:36
Change the PRAGMA parser to use a binary search for the pragma name. Also: Minor performance enhancement to sqlite3DbFree() and to the token dequoter. (check-in: 870c030b user: drh tags: trunk)
12:10
Add tests for the fts4 unicode61 tokenchars and separators options. (check-in: 9ce6f40d user: dan tags: trunk)
2013-09-12
23:42
Refactor the ExprSetIrreducible() macro into ExprSetVVAProperty(*,EP_NoReduce). This is a naming change only. The logic is the same. (Closed-Leaf check-in: 695aee46 user: drh tags: unlikely-func)
23:12
Fix typo in a macro name: "GlogUpperToLower" should be "GlobUpperToLower" (check-in: 73634ca4 user: drh tags: trunk)
17:29
Merge in the Expr.flags expansion to 32-bits. Use an extra bit to help optimize the sqlite3ExprSkipCollate() routine. (check-in: 4c84d1b4 user: drh tags: unlikely-func)
16:50
Increase the number of bits available in Expr.flags. Other tweaks aimed at making expression processing more robust. (Closed-Leaf check-in: 579a5125 user: drh tags: expr-tuning)
02:09
For error log messages generated by the Win32 native allocator, make sure the correct format specifier is used for the value returned by GetLastError(). (check-in: 75a8a8c1 user: mistachkin tags: trunk)
01:47
Fix a couple more harmless compiler warnings. (check-in: 59708674 user: mistachkin tags: trunk)
01:33
Remove two obsolete fields from the sqlite3 object. (check-in: 117fa5fb user: drh tags: trunk)
00:54
Fix harmless compiler warning. (check-in: 2b510614 user: mistachkin tags: trunk)
00:40
Merge updates from trunk. (Closed-Leaf check-in: fca799f0 user: mistachkin tags: vsix2013)
2013-09-11
17:39
Improvements to likelihood processing so that commuting an unindexed term in the WHERE clause does not change the query plan. (check-in: 6e6bded0 user: drh tags: unlikely-func)
14:57
Add test cases to cover TPC-H Q8. (check-in: eb5cef83 user: drh tags: trunk)
14:34
Additional unlikely() test cases. Logic tweaks to support test coverage. (check-in: 5d00cce7 user: drh tags: unlikely-func)
11:38
Change the name of the two-argument unlikely() function to likelihood(). Add test cases. (check-in: 29a359b8 user: drh tags: unlikely-func)
03:53
Tweaks to the index selection logic. (check-in: 52d52688 user: drh tags: unlikely-func)
2013-09-10
01:53
Merge trunk fixes into the unlikely-func branch. (check-in: a51d7515 user: drh tags: unlikely-func)
01:41
Deterministically initialize the PRNG used as a tie-breaker in the ANALYZE command, so that the analysis is always the same given the same database. This simplifies testing. (check-in: 48ed8b56 user: drh tags: trunk)
2013-09-09
19:37
Make sure that the transitive constraint optimization does not cause WHERE clause terms to be disabled prematurely. We are unable to find a test case that fails because of this, but it seems prudent to make this preventative change nevertheless. (check-in: d6e361d7 user: drh tags: trunk)
2013-09-07
00:29
Continuing refinements of the logic to take WHERE clause terms not used for indexing into account when computing the number of output rows from each table. (check-in: b65dc534 user: drh tags: unlikely-func)
2013-09-06
22:27
Merge updates from trunk. (check-in: 8922be1a user: mistachkin tags: toTypeFuncs)
21:41
Add the ability to generate assembly listing files using the MSVC makefile. (check-in: 6caa2cd1 user: mistachkin tags: toTypeFuncs)
20:30
When converting from a BLOB value in the tointeger() and toreal() SQL functions, make sure that endianness of the machine does not matter. (check-in: 94c4cdc5 user: mistachkin tags: toTypeFuncs)
17:45
Enhance the plan solver to take into account the number of output rows when computing the set of paths to retain for the next cycle. (check-in: 1a46a724 user: drh tags: unlikely-func)
15:23
Initial implementation of the unlikely() SQL function used as a hint to the query planner. (check-in: 036fc37a user: drh tags: unlikely-func)
13:10
Combine the FuncDef.iPrefEnc and FuncDef.flags fields into a single new FuncDef.funcFlags field. (check-in: 97b10e66 user: drh tags: trunk)
00:40
Make sure the destination WhereLoop is left in a sane state when an OOM fault occurs inside of whereLoopXfer(). (check-in: a99a53b8 user: drh tags: trunk)
2013-09-05
18:40
When preparing an UPDATE statement, avoid generating VDBE code for those foreign key related actions and constraint checks that may be seen to be unnecessary by considering the subset of table columns potentially modified by the UPDATE. (check-in: e940b5de user: dan tags: trunk)
2013-09-04
18:14
Rearrange the order of conditions in an "if" statement to facilitate testing. (check-in: 8462fb43 user: drh tags: trunk)
16:38
Add tests to improve coverage when SQLITE_ENABLE_STAT3 is defined. (check-in: f929e9b4 user: dan tags: trunk)
16:08
Fix a bug in the command-line shell for ".mode insert" on UTF16 databases with BLOB values. (check-in: d8fdc782 user: drh tags: trunk)
15:15
The sqlite3Stat4ProbeSetValue() routine should always return results using the database encoding. (check-in: eb216632 user: drh tags: trunk)
04:04
Fix out-of-order variable declaration. Fix harmless compiler warning. (check-in: 8df95bb0 user: mistachkin tags: trunk)
02:07
Conditionally exclude code from analyze.c that is not used by STAT3. (check-in: a48948a1 user: drh tags: trunk)
00:58
Additional test cases for the tointeger() and toreal() SQL functions when converting from a BLOB. (check-in: e1814452 user: mistachkin tags: toTypeFuncs)
2013-09-03
19:26
Harden the STAT4 logic in where.c against OOM faults. (check-in: 91d2cfbc user: drh tags: trunk)
17:11
Version 3.8.0.2 (check-in: 7dd4968f user: drh tags: release, version-3.8.0.2, branch-3.8.0)
14:49
Merge in all the latest trunk changes, including the win32-longpath VFS and the fix for the segfault in the omit-left-join optimization. (check-in: cdd3838b user: drh tags: sessions)
14:43
Fix another problem in stat4 sample selection. (check-in: d59f5809 user: dan tags: trunk)
14:33
Make sure the omit-noop-left-join optimization is not applied if columns of the LEFT JOIN are used in the ORDER BY clause. Ticket [be84e357c035]. Increase version number to 3.8.0.2. (check-in: cce54186 user: drh tags: branch-3.8.0)
14:03
Make sure the omit-noop-left-join optimization is not applied if columns of the LEFT JOIN are used in the ORDER BY clause. Ticket [be84e357c035] (check-in: 0303d6bc user: drh tags: trunk)
2013-09-02
23:40
Add the experimental SQLITE_DEFAULT_INDEX_SHAPE=1 compile-time option that makes a much more pessimistic guess at the effectiveness of unanalyzed indices. (Leaf check-in: d8daaba7 user: drh tags: index-shape-1)
20:22
Simplify branch coverage testing by interchanging the order of two tests in the whereLoopInsert() function. (check-in: f7079b53 user: drh tags: trunk)
18:58
Further stat4 related tests. (check-in: 0a702c4b user: dan tags: trunk)
11:52
Add tests to check if ANALYZE is choosing common non-periodic samples for the stat4 table. (check-in: 17584299 user: dan tags: trunk)
07:16
Fix a problem with using stat4 data to estimate the number of rows scanned by a range constraint on the second or subsequent column of any index where an affinity transformation must be applied to the constraint argument. (check-in: c21f58d8 user: dan tags: trunk)
2013-09-01
23:36
Merge updates from trunk. (check-in: 2982725e user: mistachkin tags: toTypeFuncs)
2013-08-31
21:41
Handle BLOBs specially, treating them as binary, in the tointeger() and toreal() SQL functions. (check-in: c4c53acb user: mistachkin tags: toTypeFuncs)
18:36
Cleanup of the windows VFS, including added support for Cygwin, fixes for compiler warnings under unusual configurations, and improved diagnostic error messages. (check-in: c94933f1 user: drh tags: trunk)
18:06
Revise the amalgamation tool to allow 'duplicate' include files to be retained manually while still preserving the existing line numbers. (Closed-Leaf check-in: aa482846 user: mistachkin tags: cygwinTempPath)
17:21
Fix a problem causing SQLite not to use stat4 or stat3 data to analyze constraints of the form "column = expr COLLATE collation" (those with an explicit COLLATE on the non-column side of the comparison operator). (check-in: 1e86d81d user: dan tags: trunk)
17:01
Enhancements to the Win32 API definition macros. (check-in: b1811baa user: mistachkin tags: cygwinTempPath)
14:56
Reenable a test accidentally disabled when the stat4 branch was merged. (check-in: d9fadc8f user: dan tags: trunk)
05:46
Avoid commenting out #include statements when building the amalgamation source code file. (check-in: 2fca6d78 user: mistachkin tags: cygwinTempPath)
05:13
Fix harmless MSVC compiler warning with MEMDEBUG defined. (check-in: b48cfd2d user: mistachkin tags: cygwinTempPath)
02:48
Improve the consistency of the diagnostic messages on Windows. (check-in: c6f174a0 user: mistachkin tags: cygwinTempPath)
2013-08-30
21:52
Add support for Cygwin when handling temporary file names. Improve error codes and diagnostic messages for temporary file name handling on Windows. Rename winConvertUtf8Filename to winConvertFromUtf8Filename. Improve placement and comments for forward function declarations. (check-in: a411df72 user: mistachkin tags: cygwinTempPath)
20:19
Fix compiler warnings in analyze.c. (check-in: 5bbd2ccb user: dan tags: trunk)
19:59
Fix comment typo in analyze.c. No changes to code. (check-in: dbc31750 user: mistachkin tags: trunk)
17:50
Fix comment typos in the where.c module. No code changes. (check-in: 1e0b77cf user: drh tags: trunk)
17:35
If the cost of two whereLoop objects is the same in every way except that one has fewer expected output rows than the other, then choose the one with fewer output rows. (check-in: 79e458ef user: drh tags: trunk)
14:24
Add the SQLITE_MINIMUM_FILE_DESCRIPTOR compile-time option, for control over exactly which low-numbered file descriptors SQLite will use. (check-in: ba519053 user: drh tags: trunk)
13:29
Add a test for fts4 unicode61 option remove_diacritics=0. (check-in: 6bf7ae6f user: dan tags: trunk)
06:20
Improvements to the robust_open() logic in the unix VFS so that if an attempt is made to open a repository on file descriptors 0, 1, or 2, and blocking that file descriptor by opening it on /dev/null fails, then the open will fail. (check-in: d9c018f8 user: drh tags: trunk)
2013-08-29
23:36
Make the unix VFS defensive against the error of having a database file open on file descriptors 1 or 2, as an error message might easily be written onto those file descriptors and thus overwrite and corrupt the database. (check-in: 30d38cc4 user: drh tags: trunk)
23:34
Change the unix VFS so that it refuses to open a database file using a file descriptor less than 3. (Closed-Leaf check-in: 66dddda0 user: drh tags: overwrite-avoidance)
21:26
Never leave an open file descriptor pointing into the middle of the database file if the file descriptor number is 2 or less. (check-in: 3426673e user: drh tags: overwrite-avoidance)
17:35
Version 3.8.0.1 (check-in: 352362bc user: drh tags: release, version-3.8.0.1, branch-3.8.0)
15:08
Merge from trunk: (1) Recent bug fixes (2) STAT4 support (3) win32-longpath support. (check-in: e7ebc8f7 user: drh tags: sessions)
14:56
Restore fix [f15591f802], which was accidentally clobbered by the stat4 merge. (check-in: d4b6ad33 user: dan tags: trunk)
13:47
Update sqlite3.pc.in to use @PACKAGE_VERSION@ instead of @RELEASE@. Cherrypick of [2460dfd8825d25]. (check-in: c5857808 user: drh tags: branch-3.8.0)
13:27
Increase the version number to 3.8.0.1. (check-in: 125b04de user: drh tags: branch-3.8.0)
13:23
Fix an off-by-one error that causes a quoted empty string at the end of a CRNL-terminated line of CSV input to be misread by the shell. Cherrypick of [b5617e4fdadc4c]. (check-in: 43aa7d23 user: drh tags: branch-3.8.0)
13:21
In the query optimizer, when converting BETWEEN and LIKE/GLOB expressions into simpler forms for processing, be sure to transfer the LEFT JOIN markings. Fix for ticket [bc878246eafe0f52c]. Cherrypick of [caab361ebe]. (check-in: cb667449 user: drh tags: branch-3.8.0)
13:15
Cherrypick of [c1152bdcbb] and fix for [9f2eb3abac]: Have the whereShortCut() planner ignore indexes with more than four columns. (check-in: c3f75941 user: drh tags: branch-3.8.0)
10:46
Candidate fix for [9f2eb3abac]: Have the whereShortCut() planner ignore indexes with more than four columns. (check-in: c1152bdc user: dan tags: trunk)
02:27
Disable several toreal() tests that require high floating point precision when it is unavailable. (check-in: b724219b user: mistachkin tags: toTypeFuncs)
01:17
Prevent the implementation of the toreal() SQL function from being 'optimized' by MSVC. (check-in: 047bd1c2 user: mistachkin tags: toTypeFuncs)
01:11
Merge updates from trunk. (check-in: 375dfe28 user: mistachkin tags: toTypeFuncs)
01:09
Small enhancements to unit testing infrastructure. (check-in: 9229aeb3 user: mistachkin tags: trunk)
01:03
Enable finer control of optimizations when compiling with the MSVC makefile. Also, several modularity enhancements to the MSVC makefile. (check-in: 6c709338 user: mistachkin tags: trunk)
01:01
Fix boundary case for the toreal() SQL function. (check-in: abe82c63 user: mistachkin tags: toTypeFuncs)
2013-08-28
19:01
Re-enable test file wild001.test. (check-in: 4f182ddc user: dan tags: trunk)
18:56
Merge updates from trunk. (check-in: ffc6e682 user: mistachkin tags: toTypeFuncs)
18:18
Add the win32-longpath VFS allowing windows filenames up to 32K characters in length. Remove unused code when -DSQLITE_MAX_MMAP_SIZE=0. Fix some compiler warnings on windows. (check-in: 12d0a885 user: drh tags: trunk)
18:06
Update list of supported Tcl shells to include 8.6. Remove stray OS2 references. (Closed-Leaf check-in: ecd52ccf user: mistachkin tags: mmapDisabled)
17:59
Fix a couple comments. (check-in: 945cb89e user: mistachkin tags: mmapDisabled)
16:27
In the query optimizer, when converting BETWEEN and LIKE/GLOB expressions into simpler forms for processing, be sure to transfer the LEFT JOIN markings. Fix for ticket [bc878246eafe0f52c]. (check-in: caab361e user: drh tags: trunk)
13:46
Increase the version number to 3.8.1 due to the addition of STAT4 support. (check-in: 41c089e2 user: drh tags: trunk)
13:33
Fix an off-by-one error that causes a quoted empty string at the end of a CRNL-terminated line of CSV input to be misread by the shell. (check-in: b5617e4f user: drh tags: trunk)
11:57
Add a test case for empty quoted field in CSV import in the shell. (check-in: 3df56e84 user: drh tags: trunk)
11:43
Label a certain branch as NEVER() only for non-STAT3/4 builds. (check-in: b5ccf6e9 user: drh tags: trunk)
07:42
In the win32longpath test, move the journal mode change down where it was intended to be. (check-in: 5cead293 user: mistachkin tags: mmapDisabled)
05:49
Support database file names longer than 260 characters using the new 'win32-longpath' VFS variant. (check-in: 37e85e44 user: mistachkin tags: mmapDisabled)
02:37
Make names of private functions in the Win32 VFS consistent. Fix comment typo in Win32 mutex implementation. (check-in: c3b82c5b user: mistachkin tags: mmapDisabled)
02:26
Remove hard-coding of the directory separator in the Win32 VFS. Fixes to OSTRACE macros. (check-in: fc98092f user: mistachkin tags: mmapDisabled)
01:54
Fix several harmless compiler warnings. Fix a couple compiler issues with the shell. (check-in: 8917e9f9 user: mistachkin tags: mmapDisabled)
2013-08-27
23:15
Adjust ANALYZE for improved test coverage. Use the SQLITE_ENABLE_STAT3_OR_STAT4 macro (created in sqliteInt.h) to conditionally include code, instead of a boolean specifying both macros separately. (check-in: 67a9a392 user: drh tags: trunk)
20:16
Reduce the amount of code run and memory used for ANALYZE in the common case where neither STAT3 and STAT4 are enabled. (check-in: 9d1424c9 user: drh tags: trunk)
15:41
Update sqlite3.pc.in to use @PACKAGE_VERSION@ instead of @RELEASE@. (check-in: 2460dfd8 user: dan tags: trunk)
14:14
In the ANALYZE command implementation make statInit() a 2-value function since the 3rd parameter was always the same constant. (check-in: 959bb5ac user: drh tags: trunk)
2013-08-26
23:18
Preparation for further Windows path name handling changes. (check-in: ec99224b user: mistachkin tags: mmapDisabled)
23:18
Merge the STAT4 capability into trunk. (check-in: a32af0ab user: drh tags: trunk)
20:45
Change MAX_PATH related defines to use character lengths where WCHARs are used. (check-in: 0a497083 user: mistachkin tags: mmapDisabled)
19:36
Merge updates from trunk. (check-in: 9d686009 user: mistachkin tags: mmapDisabled)
14:30
Fix for builds with both SQLITE_OMIT_WAL and SQLITE_MAX_MMAP_SIZE=0 defined. (check-in: edd5dbdc user: dan tags: trunk)
04:50
Version 3.8.0 (check-in: f64cd21e user: drh tags: trunk, release, version-3.8.0)
2013-08-24
23:55
Several modifications to the use of the MAX_PATH macro on Windows to improve consistency. (check-in: bda4c47d user: mistachkin tags: mmapDisabled)
01:12
Fix a couple compilation issues on Unix. (check-in: 25b029d8 user: mistachkin tags: mmapDisabled)
00:59
Unify the result of PRAGMA mmap_size when mmap support is disabled. (check-in: 032c3159 user: mistachkin tags: mmapDisabled)
2013-08-23
17:54
Merge recent trunk changes. (check-in: 6cc54de8 user: dan tags: sessions)
17:43
Add the sqlite3session_table_filter API to the sessions extension. (check-in: b7e4dd88 user: dan tags: sessions)
17:33
Adjust #ifdefs to get SQLITE_OMIT_AUTOMATIC_INDEX and SQLITE_OMIT_PAGER_PRAGMAS to build. (check-in: ed310201 user: drh tags: trunk)
16:47
Fix a requirements comment in a test case. No changes to the testcase itself nor to any code. (check-in: 3ad1f998 user: drh tags: trunk)
12:04
Modify script mkautoconfamal.sh to use the download.html naming convention for the tar.gz it creates. (check-in: 375b4e3d user: dan tags: trunk)
2013-08-22
15:07
Merge in minor bug fixes and performance tweaks from trunk leading up to the version 3.8.0 release. (check-in: 831492dc user: drh tags: sessions)
02:56
Defer the creation of automatic indices until the index is actually used. (check-in: 0775501a user: drh tags: trunk)
2013-08-21
23:42
Simplify the btreeGetPage() routine so that it uses a single flag parameter in place of two boolean parameters. (check-in: 617e23ec user: drh tags: trunk)
22:54
Minor performance tweaks to the pager. (check-in: 9ae1f9ce user: drh tags: trunk)
22:09
Refactor the sqlite3_randomness() implementation for improved performance. (check-in: 4144dffb user: drh tags: trunk)
21:12
Simplification to the StrAccum object and the sqlite3StrAccumAppend() method that also results in slightly better performance. (check-in: 700dbbea user: drh tags: trunk)
20:04
Minor fixes for test cases. No code changes. (check-in: ef2a6a37 user: dan tags: trunk)
19:59
Fix typo in test. (check-in: f9859fe9 user: mistachkin tags: trunk)
19:13
Update sqlite3MemCompare() to try common cases first, for a modest speed improvement. (check-in: b25bac79 user: drh tags: trunk)
17:35
If a virtual table xSync() returns an error message, copy it into a buffer allocated by sqlite3DbMalloc() before transfering it to Vdbe.zErrMsg. (check-in: 854ba304 user: dan tags: trunk)
15:52
Performance enhancement in btreeParseCellPtr(). (check-in: a17190a2 user: drh tags: trunk)
15:45
Fix an FTS4 problem introduced by [361084e1eb]. (check-in: 5f35c8cb user: dan tags: trunk)
12:04
Candidate fix for [d666d600a6]. (check-in: 781592f3 user: dan tags: trunk)
07:25
Fix a minor problem in progress.test. No code changes. (check-in: a95ae93b user: dan tags: trunk)
2013-08-20
20:25
Fix a couple of test scripts to work with DEFAULT_AUTOVACUUM and OMIT_VIRTUALTABLE. (check-in: 356c6c59 user: dan tags: trunk)
17:14
Fix an invalid assert() in where.c. Also a crash that can occur in the EXPLAIN QUERY PLAN code under obscure circumstances. (check-in: ef192abb user: dan tags: trunk)
17:00
Ignore IS NOT NULL and NOT NULL constraints on NOT NULL columns. (check-in: e476408e user: drh tags: trunk)
16:08
Test script changes to support testing sqlite3_interrupt(). (check-in: 0cede9f8 user: dan tags: trunk)
13:02
Merge performance enhancements and compiler warning fixes from trunk. (check-in: 3e403328 user: drh tags: sessions)
09:26
Add test cases for tointeger() and toreal() functions. Fixes for several tests. (check-in: 5e1e9fd5 user: mistachkin tags: toTypeFuncs)
03:13
Performance optimizations in the VDBE and especially to the OP_Next and related opcodes and in the sqlite3BtreeNext() and sqlite3BtreePrevious() routines. This is a cherrypick of [6f99b54aedeb], [d2efea1682a7], and [d78c5d89de4b]. (check-in: 7f72fc4f user: drh tags: trunk)
02:07
Fix compiler warnings and boundary cases for the tointeger() and toreal() functions. (check-in: 4438b986 user: drh tags: toTypeFuncs)
00:42
Performance optimizations in the VDBE and especially to the OP_Next and related opcodes. (check-in: d78c5d89 user: drh tags: toTypeFuncs)
2013-08-19
23:18
Performance improvement to SQL function calls in the VDBE. (check-in: d2efea16 user: drh tags: toTypeFuncs)
22:22
Additional performance improvements in sqlite3BtreeNext() and sqlite3BtreePrevious(). (check-in: 6f99b54a user: drh tags: toTypeFuncs)
21:15
Add tointeger() and toreal() SQL functions. (check-in: af497072 user: mistachkin tags: toTypeFuncs)
20:04
Performance improvement in sqlite3BtreeNext() and sqlite3BtreePrevious() for the common case of a valid cursor. (check-in: dc65ad8c user: drh tags: trunk)
19:29
Initialize a variable in fts3_write.c on the grounds that the argument required to show that it does not require initialization with is complicated. Add an assert() to where.c to silence a clang scan-build warning. (check-in: d6c4d48a user: dan tags: trunk)
18:37
Fix test script pragma2.test so that it works with ENABLE_MEMORY_MANAGEMENT. (check-in: 6acf7281 user: dan tags: trunk)
18:17
Add some extra assert() statements to silence a few clang warnings. (check-in: 1c63e951 user: dan tags: trunk)
14:23
Remove unused variables from the command-line shell sources. (check-in: 753a402e user: drh tags: trunk)
14:19
Fix a potential reference off the end of an array in the query planner. (check-in: f15591f8 user: drh tags: trunk)
12:49
Merge in all the latest updates and enhancements from trunk. (check-in: 67587a33 user: drh tags: sessions)
11:15
Fixes for harmless compiler warnings. (check-in: a0d9ca4f user: drh tags: trunk)
2013-08-17
18:57
Adjustments to #ifdefs in analyze.c to all a clean compile with no extra code with both ENABLE_STAT3 and ENABLE_STAT4 and with neither. (Closed-Leaf check-in: f86b75b6 user: drh tags: sqlite_stat4)
16:37
Add the cache_spill pragma. Change the fullfsync and checkpoint_fullfsync pragmas to apply to all attached databases. (check-in: 65a85a15 user: drh tags: trunk)
15:42
The fullfsync, checkpoint_fullfsync, and cache_spill pragmas apply to all files of a database connection, including those opened by future ATTACH statements. (Closed-Leaf check-in: d07c4331 user: drh tags: cache_spill)
00:25
Test cases for the cache_spill pragma. (check-in: b85c9ec5 user: drh tags: cache_spill)
2013-08-16
20:42
Add the cache_spill pragma. (check-in: cdb181c0 user: drh tags: cache_spill)
17:46
Add a test for the problem fixed by [91733bc485]. (check-in: 5c591104 user: dan tags: sqlite_stat4)
17:18
In sqlite3Stat4ProbeSetValue() change a local variable name iVar to iBindVar to avoid confusion with iVal, and fix a place where the name was actually confused. (check-in: 91733bc4 user: drh tags: sqlite_stat4)
14:51
Merge the fork that resulted from a check-in race. (check-in: b7fe4f36 user: drh tags: sqlite_stat4)
14:49
Fix valueFromExpr() so that it returns SQLITE_NOMEM following an OOM when changing text encodings. Also fix some asserts to accommodate OOM errors. (check-in: dc1ccd09 user: drh tags: sqlite_stat4)
14:48
Fixes for test code that was not working with utf16 databases. Run the analyze*.test scripts as part of the 'utf16' permutation test. (check-in: fe99494d user: dan tags: sqlite_stat4)
14:23
Add extra tests. No code changes. (check-in: 949127d5 user: dan tags: sqlite_stat4)
14:09
Avoid buffer overreads and false OOM error reports that could be caused by corrupted sample records in the sqlite_stat4 table. (check-in: 9f85b6a5 user: dan tags: sqlite_stat4)
13:34
Fix a potential segfault following an OOM while running ANALYZE. (check-in: 01187978 user: drh tags: sqlite_stat4)
12:26
Merge recent trunk changes into the STAT4 branch. (check-in: c69b512a user: drh tags: sqlite_stat4)
2013-08-15
22:40
Make sure that GROUP BY terms select input column names in preference to output column names, in compliance with the SQL standard. Ticket [1c69be2dafc28]. (check-in: f2d175f9 user: drh tags: trunk)
20:24
Bare identifiers in ORDER BY clauses bind more tightly to output column name, but identifiers in expressions bind more tightly to input column names. This is a compromise between SQL92 and SQL99 behavior and is what PostgreSQL and MS-SQL do. Ticket [f617ea3125e9c]. (check-in: c78b357c user: drh tags: trunk)
20:05
Make it easy to attach a debugger the test fixture process prior to any tests being run. (check-in: 53cd9ebf user: mistachkin tags: trunk)
19:56
Fix a crash that can occur if the sqlite_stat3 or sqlite_stat4 table is corrupt. (check-in: d51df8a8 user: dan tags: sqlite_stat4)
18:43
Fix a crash that can occur following an OOM fault. (check-in: 9f80b268 user: dan tags: sqlite_stat4)
16:18
Change some assert() statements in vdbe.c to ensure that a memory cell used to store a VdbeCursor object is not also used for some other purpose. (check-in: 71070c9f user: dan tags: sqlite_stat4)
16:15
Make sure the ANALYZE command allocates enough VDBE registers. (check-in: 46fec9b1 user: drh tags: sqlite_stat4)
14:39
Add tests for sqlite_stat4 sample selection. And a fix for the same. (check-in: 1fb4d9d6 user: dan tags: sqlite_stat4)
14:27
Clarification and typo fixes in comments related to name resolution. No changes to code. (check-in: f30abdf9 user: drh tags: trunk)
08:06
Make it easy to attach a debugger the test fixture process prior to any tests being run. (Closed-Leaf check-in: c23acba1 user: mistachkin tags: dbgTestFixture)
2013-08-14
19:54
Change the way ANALYZE works to use a single cursor when scanning indices. (check-in: bdce612b user: dan tags: sqlite_stat4)
00:20
Fix a few more minor comment typos. No changes to code. (check-in: 9e999081 user: mistachkin tags: trunk)
2013-08-13
22:33
Fix an outdated comment and a comment typo. No changes to code. (check-in: ac336959 user: mistachkin tags: trunk)
2013-08-12
20:14
If ENABLE_STAT3 is defined but ENABLE_STAT4 is not, have ANALYZE create and populate the sqlite_stat3 table instead of sqlite_stat4. (check-in: cca8bf43 user: dan tags: sqlite_stat4)
17:31
If there is data in both the sqlite_stat4 and sqlite_stat3 tables for a single index, ignore the sqlite_stat3 records. (check-in: 2a417367 user: dan tags: sqlite_stat4)
17:00
Handle a NULL input to decodeIntArray() that can result from a prior OOM. (check-in: fa1588ad user: drh tags: sqlite_stat4)
16:34
Re-enable reading from the sqlite_stat3 table (as well as sqlite_stat4). (check-in: 6d45078e user: dan tags: sqlite_stat4)
11:21
Fix a bug in calculating the average number of entries for keys not present in the sqlite_stat4 table. (check-in: ec3ffb17 user: dan tags: sqlite_stat4)
09:29
Fix minor problems caused by adding the rowid to the records in stat4. (check-in: 088d1ff9 user: dan tags: sqlite_stat4)
2013-08-10
19:08
Add the rowid field to the end of sample records stored in the sqlite_stat4 table. (check-in: 3a5e8ab7 user: dan tags: sqlite_stat4)
2013-08-09
19:04
Fix a couple of typos in a comment in analyze.c. No code changes. (check-in: 5bcccb93 user: dan tags: sqlite_stat4)
14:07
Update the header comment on analyze.c to describe the sqlite_stat4 table format. (check-in: 4d97809d user: drh tags: sqlite_stat4)
2013-08-08
19:38
Fix problems in estimating the number of rows visited by a range query using sqlite_stat4 data when the column subject to the range query is not the leftmost of the index. (check-in: 9228aaf5 user: dan tags: sqlite_stat4)
16:17
Use a binary search instead of a linear scan when comparing a sample key against data from the sqlite_stat4 table. (check-in: e50dc305 user: dan tags: sqlite_stat4)
14:38
If the SQLITE_EXTRA_INIT function is defined, make sure it is called only once by the effective sqlite3_initialize() call. (check-in: e2b597ca user: drh tags: trunk)
12:21
Fix a segfault in "ALTER TABLE t1 ADD COLUMN b DEFAULT (-+1)". Also an assert() failure that could occur if SQLITE_ENABLE_STAT4 were not defined. (check-in: 9fec3e38 user: dan tags: sqlite_stat4)
11:48
Fix a bug in using stat4 data to estimate the number of rows selected by a range constraint. (check-in: f783938e user: dan tags: sqlite_stat4)
2013-08-07
23:15
If the SQLITE_ALLOW_URI_AUTHORITY compile-time option is set, then allow non-localhost authorities on URI filenames and pass them through as a UNC to the underlying VFS. (check-in: 3adb6c1b user: drh tags: trunk)
19:46
Replace variable Index.avgEq (average number of rows in keys for which there is no sample in sqlite_stat4) with vector Index.aAvgEq. (check-in: 7b70b419 user: dan tags: sqlite_stat4)
18:42
Merge latest trunk changes with this branch. (check-in: 08f74c45 user: dan tags: sqlite_stat4)
18:07
Merge in the latest changes from trunk. (Closed-Leaf check-in: c78b0d30 user: drh tags: uri-enhancement)
16:38
Fix typos in a comment in analyze.c. No code changes. (check-in: 812ed0c5 user: dan tags: sqlite_stat4)
16:15
Change the way samples for the sqlite_stat4 table are collected. (check-in: 13ed5ac1 user: dan tags: sqlite_stat4)
16:04
Fix the ".dump" command on the command-line shell so that it works for "sqlite_stat4" in addition to "sqlite_stat1". (check-in: 1e80c4b1 user: drh tags: sqlite_stat4)
15:57
Remove the unused sqlite3Utf8to16() utility function. (check-in: 9159b43e user: drh tags: sqlite_stat4)
15:52
When estimating the number of rows scanned using data from the sqlite_stat4 table, avoid allocating UnpackedRecord and KeyInfo structures until they are definitely required. (check-in: 353950a5 user: dan tags: sqlite_stat4)
14:18
Add a guard #ifndef to test_intarray.h to prevent harm if it is #included more than once. Add a comment on the closing #endif of the guards on sqlite3.h and test_multiplex.h. (check-in: 0ad83ceb user: drh tags: trunk)
01:18
Fix typos and add clarification to comments in where.c. No code changes. (check-in: f8d8790e user: drh tags: trunk)
2013-08-06
20:15
Fixes for builds without SQLITE_ENABLE_STAT4. (check-in: 84999e27 user: dan tags: sqlite_stat4)
20:01
When possible, use the multi-column samples in sqlite_stat4 to estimate the number of index rows scanned by a query plan. (check-in: 2973f5ca user: dan tags: sqlite_stat4)
19:18
Fix a test case related to partial indices so that it works even if STAT3 is disabled. (check-in: 153c6450 user: drh tags: trunk)
18:35
Adjust #ifdefs in test_autoext.c so that it compiles with SQLITE_OMIT_LOAD_EXTENSION. Fix compiler warnings in two other test modules. No changes to the core. (check-in: 89930ea3 user: drh tags: trunk)
18:21
Update the configure script to use the latest version number (3.8.0). (check-in: 52e8ec5e user: drh tags: trunk)
17:24
Add a testcase() macro to verify OOM coverage. (check-in: d43dcbc4 user: drh tags: trunk)
16:56
Remove unreachable branches in expr.c, replacing them with assert() and testcase() statements. (check-in: 9103c27c user: drh tags: trunk)
14:52
Merge in the latest changes from trunk. (check-in: 69d5bed0 user: drh tags: sessions)
14:36
For the ".import" command of the command-line shell, start a transaction if there is not one active already. (check-in: 5dcc2d91 user: drh tags: trunk)
14:01
Clean up the input reader in the command-line shell for improved legibility and performance. (check-in: 2b1743d6 user: drh tags: trunk)
07:45
More than double the speed of the resolveP2Values() routine in vdbeaux.c by moving from an extended if-else on every opcode to a switch. Opcodes are reordered in mkopcodesh.awk to put the switched opcodes close together, for additional performance and to reduce code footprint. (check-in: 924f7e4d user: drh tags: trunk)
2013-08-05
22:05
Performance optimization: Avoid calling convertCompoundSelecctToSubquery() on queries that do not use the UNION, EXCEPT, or INTERSECT operators. (check-in: c589b2fe user: drh tags: trunk)
21:54
For the vtshim module, always zero out the xChildDestroy function pointer after calling it. (check-in: 240f7252 user: mistachkin tags: trunk)
19:11
Factor all KeyInfo object allocations into a single function: sqlite3KeyInfoAlloc(). Always allocate enough space so that sqlite3VdbeRecordCompare() can avoid checking boundaries and hence run faster. (check-in: 7301bedd user: drh tags: trunk)
19:04
Modify the vdbe code generated by ANALYZE to use fewer memory cells and cursor slots. (check-in: 4a51cf28 user: dan tags: sqlite_stat4)
18:00
Use N separate cursors when scanning an index with N columns to collect sqlite_stat4 data. This fixes a problem with collecting incorrect nEq values from multi-column indexes. (check-in: 3a71afe6 user: dan tags: sqlite_stat4)
15:32
Improve performance of sqlite3VdbeRecordCompare() by using an approximation that might give false negatives and only running the more expensive exact subexpression if the approximation fails. (check-in: 28979dcd user: drh tags: trunk)
12:31
Add a missing '#include "tcl.h"' to test_rtree.c. (check-in: 4b8b426f user: drh tags: trunk)
05:34
Fix a couple of problems in code related to sqlite_stat4. (check-in: badd24d9 user: dan tags: sqlite_stat4)
2013-08-03
20:24
Begin adding experimental sqlite_stat4 table. This commit is buggy. (check-in: 2beea303 user: dan tags: sqlite_stat4)
2013-08-02
23:40
Updates to requirements marks. No code changes. (check-in: 21302076 user: drh tags: trunk)
20:44
Merge in the latest trunk changes, including partial indexes, the MAX_PATH fix in os_win.c, and the sqlite3_cancel_auto_extension() API. (check-in: 7e1acb39 user: drh tags: sessions)
20:11
Add NEVER() and ALWAYS() macros on some unreachable yet prudent branches. (check-in: c5c0a8ab user: drh tags: trunk)
16:41
Add support for partial indices. (check-in: 478113f1 user: drh tags: trunk)
14:18
Silently ignore database name qualifiers in CHECK constraints and in partial index WHERE clauses. (Closed-Leaf check-in: 2e8c845e user: drh tags: partial-indices)
13:31
Fix typos in documentation for SQLITE_DBSTATUS_DEFERRED_FKS . No changes to code. (check-in: f3efbfcd user: drh tags: trunk)
2013-08-01
22:27
Fix the CREATE INDEX statement so that trying to create a TEMP index on a non-TEMP table throws an error rather than segfaulting. (check-in: e3c8935f user: drh tags: trunk)
22:26
Fix an incorrect expected result in a test case in corruptG.test. (check-in: 6913831a user: drh tags: trunk)
20:26
Fix a potential buffer overread in sqlite3VdbeRecordCompare() when a serial_type specifies a field that starts in bounds but is much too large for the allocated buffer. Mostly harmless. The overread is unlikely to go more than one or two bytes past the end of the buffer. (check-in: e436b2f4 user: drh tags: trunk)
19:17
Make sure signed integer overflow does not cause a segfault while attempting to read a corrupt database where the header size varint on a record is larger than the maximum 32-bit signed integer. (check-in: c3baca99 user: drh tags: trunk)
17:43
Add test case for the problem fixed by [127a5b776d]. (check-in: 65816718 user: dan tags: trunk)
17:21
An improved method for avoiding the use of the STAT3 samples to compute the estimated number of outputs when the left-most index is equality constrained. This check-in undoes the previous fix and applies a new one. (check-in: 127a5b77 user: drh tags: trunk)
16:52
Avoid using left-most column STAT3 samples if the left-most column has an equality constrain and there are inequality constraints on the second column. (check-in: 31b4e63b user: drh tags: trunk)
16:02
Fix bug in the logic that determines the end of a CREATE INDEX statement. Added a VACUUM test case that exposed the bug. (check-in: 2e3df0bc user: drh tags: partial-indices)
15:09
More test cases and corresponding bug fixes. (check-in: 0c8cfdfa user: drh tags: partial-indices)
13:04
Fill out an initial implementation of the sqlite3ExprImpliesExpr() function. (check-in: 8e07aa2a user: drh tags: partial-indices)
12:21
Refactor internal function name sqlite3VdbeGetValue() to sqlite3VdbeGetBoundValue(). (check-in: 81834c30 user: drh tags: partial-indices)
04:39
Fix the ANALYZE command to work with partial indices. (check-in: 60353124 user: drh tags: partial-indices)
03:36
Test cases and bug fixes for the partial index logic. (check-in: 6b73ae7c user: drh tags: partial-indices)
01:14
Add the logic to keep partial indices up to date through DML statements and when new partial indices are created. This new logic is untested except to verify that it does not interfere with full indices. (check-in: fb9044d1 user: drh tags: partial-indices)
2013-07-31
23:28
Limit the number of memset() calls used when determining a temporary file name on Windows. Also, fix a harmless compiler warning. (check-in: 136fc293 user: mistachkin tags: trunk)
23:22
Add logic to the query planner to only use partial indices if the WHERE clause constrains the search to rows covered by the partial index. This is just infrastructure. The key routine, sqlite3ExprImpliesExpr(), is currently a no-op so that partial indices will never be used. (check-in: 8ca3eac1 user: drh tags: partial-indices)
22:39
Slight modifications to path name translation handling for Cygwin. (check-in: 33ba1f4c user: mistachkin tags: trunk)
22:27
Use a new error code to represent a failure to get the configured temporary directory on Windows. (check-in: c93d891b user: mistachkin tags: trunk)
19:55
The MAX_PATH constant in windows is measured in characters, so multiple by 3 to get the number of bytes assuming worst-case UTF8 pathnames. (check-in: bb06e157 user: drh tags: trunk)
19:05
Resolve names in CREATE INDEX WHERE clauses and detect errors. Disallow expressions that contain variables, subqueries, or functions. The expression is still not used for anything, however. still unused. (check-in: f2aa7842 user: drh tags: partial-indices)
18:12
Here begins an experimental branch for exploring the idea of a partial index. This check-in is able to parse a WHERE clause on a CREATE INDEX statement, but does not actually do anythingn with that WHERE clause yet. (check-in: 6794b2dc user: drh tags: partial-indices)
2013-07-30
15:10
Reduce the size of the stack required by the codeOneLoopStart() function in where.c. (check-in: eb6d4278 user: drh tags: trunk)
2013-07-29
19:03
For the MSVC makefile, recompile vdbe.lo and parse.lo first. (check-in: 9e819f0f user: mistachkin tags: trunk)
15:54
Comment and preprocessor macro cleanup. (check-in: c0809b5e user: drh tags: trunk)
13:51
In main.mk, always recompile vdbe.o and parse.o first, since changes to either parse.y or vdbe.c will cause all files to be recompiled and if there are syntax errors in vdbe.c or parse.y we want to hit them early in the compile process. (check-in: a94a66d1 user: drh tags: trunk)
2013-07-25
17:07
In the command-line shell, work around the fact that popen() and pclose() are not defined in stdio.h. in C89 and later. (check-in: 8bcbb33f user: drh tags: trunk)
16:41
Fix a typo in main.c: SQLITE_DEAULT_AUTOMATIC_INDEX -> SQLITE_DEFAULT_AUTOMATIC_INDEX (check-in: cc78e21c user: dan tags: trunk)
16:27
Enhance the progress handler so that it keeps track of the number of VDBE cycles across sqlite3_step() calls and issues callbacks when the cumulative instruction count reaches threshold. (check-in: 4698a82e user: drh tags: trunk)
2013-07-24
14:54
Another attempt at generalizing the URI parsing so that it works with a wider variety of file URIs and yet remains backwards compatible. (check-in: de05eb75 user: drh tags: uri-enhancement)
2013-07-23
22:28
Get the new URI logic working for Windows. (Closed-Leaf check-in: 0165789f user: drh tags: uri-enhancement)
20:54
Update the URI filename parser to allow (and ignore) authority names in unix and to pass the authority through to the OS on windows, as this appears to be what web-browsers are doing. (check-in: 74c12dee user: drh tags: uri-enhancement)
2013-07-20
00:39
Merge updates from trunk. (check-in: dd4b77c8 user: mistachkin tags: toTypeFuncs)
00:34
Add 'queryplantest' target to the MSVC makefile. (check-in: ad0551e0 user: mistachkin tags: trunk)
2013-07-19
23:58
Fixes to test numbering. (check-in: f755b4b2 user: mistachkin tags: trunk)
2013-07-18
20:28
Remove unused "codec" code from the command-line shell. (check-in: 37abfe0c user: drh tags: trunk)
18:45
Improved documentation for sqlite3_set_auxdata(). Ticket [406d3b2ef91c]. (check-in: 62465ecb user: drh tags: trunk)
18:29
Ensure that all auxiliary data registered by calls to sqlite3_set_auxdata() is destroyed when the VM is halted. (check-in: 153deac8 user: dan tags: trunk)
18:28
Fix a typo in the previous commit. (Closed-Leaf check-in: cd9096e6 user: dan tags: typo)
17:12
Ensure that all auxiliary data registered by calls to sqlite3_set_auxdata() is destroyed when the VM is halted. Partial fix for [406d3b2ef9]. DRH adds: Stray text accidentally inserted into vdbe.c just prior to the commit breaks the build. (check-in: 71effa59 user: dan tags: typo)
14:50
Fix a 8-byte alignment problem in the query planner that might cause problems on sparc when compiled with -m32. (check-in: 5dcffa67 user: drh tags: trunk)
14:16
Documentation changes to warn that sqlite3_set_auxdata() might call the destructor even before it returns. Also fix the regexp extension to deal with that case. Ticket [406d3b2ef91c]. (check-in: 7acc8cd3 user: drh tags: trunk)
2013-07-17
21:08
Fix copy/paste errors in comments in the transitive_closure virtual table. No changes to code. (check-in: b1b0de29 user: drh tags: trunk)
18:12
Enhance the sqlite3_analyzer tool to give reports on the sizes of individual indices. (check-in: 3b4096cc user: drh tags: trunk)
11:54
Clear the error string pointer in sqlite3_vtab object after the error string is transferred to SQLite. Ticket [78588b938a11]. (check-in: 64bf8148 user: drh tags: trunk)
2013-07-16
23:26
Make sure the sqlite3_prepare16 and sqlite3_prepare16_v2 interfaces do not read past a zero-terminator if the nBytes parameter is too large. (check-in: 20dba3a7 user: drh tags: trunk)
21:31
Enhance the query planner so that it looks at multiple solutions to OR expressions in the WHERE clause. (check-in: 5e19d054 user: drh tags: trunk)
2013-07-15
17:02
Add the sqlite3_cancel_auto_extension(X) interface which will undo a prior call to sqlite3_auto_extension(X). (check-in: cdce87eb user: drh tags: trunk)
2013-07-12
21:09
Make sure the shell does not try to put a zero terminator on the end of an unallocated zero-length string when running ".import" on an empty file. (check-in: 92adaee5 user: drh tags: trunk)
2013-07-11
19:04
Change the description of how sqlite3_progress_handler() works so that the N parameter is "approximate". This aligns with the current implementation. This is a documentation change only. No changes to code. (check-in: 7d829bde user: drh tags: trunk)
15:31
Merge recent trunk changes (such as the query_only PRAGMA, the defer_foreign_keys PRAGMA, and the SQLITE_DBSTATUS_DEFERRED_FKS parameter to sqlite3_db_status()) into the sessions branch. (check-in: 8dfc0b78 user: drh tags: sessions)
15:22
Add the experimental "query_only" pragma. (check-in: 6557c407 user: drh tags: trunk)
15:03
Add the "defer_foreign_keys" pragma and the SQLITE_DBSTATUS_DEFERRED_FKS value for sqlite3_db_status(). This is a cherry-pick of a sequence of five checkins in the sessions branch between [1d44e5d3c2] and [d39e65fe70]. (check-in: 527121ac user: drh tags: trunk)
13:49
Remove the undocumented sqlite3_foreign_key_check() API and replace it with sqlite3_db_status(db, SQLITE_DBSTATUS_DEFERRED_FKS, ...). Add test cases for the new functionality. (check-in: d39e65fe user: drh tags: sessions)
12:19
Rename the SQLITE_DeferForeignKeys macro to shorter SQLITE_DeferFKs. Move the "defer_foreign_keys" pragma into the flagPragma() routine. (check-in: 3a2ab74c user: drh tags: sessions)
2013-07-10
18:14
Fix harmless compiler warnings in the progress callback logic. (check-in: 908141d5 user: drh tags: trunk)
13:33
Experimental "PRAGMA query_only=BOOLEAN" statement that is able to turn write capabilities on and off. (Closed-Leaf check-in: ece960c4 user: drh tags: query_only)
03:05
Run progress callback checks less frequently in the main VDBE evaluation loop. This makes up for the extra CPU cycles used to increment the cycle counter for SQLITE_STMTSTATUS_VM_STEP. (check-in: 3e8b0201 user: drh tags: trunk)
2013-07-09
15:56
Adjust the costs in the xBestIndex function of the spellfix1 virtual table to force the use of the MATCH term if it is available. (check-in: f003bea9 user: drh tags: trunk)
13:05
Pull in all the latest changes from trunk. (check-in: af3ca4c6 user: drh tags: sessions)
12:36
Modify several extensions to use the new exported function naming. Fix some shared library compilation issues. (check-in: 1e39f850 user: drh tags: trunk)
2013-07-04
23:53
Modify several extensions to use the new exported function naming. Fix some shared library compilation issues. (Closed-Leaf check-in: f2ab8747 user: mistachkin tags: extRefactor)