/ Timeline
Login

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

4401 check-ins using file ext/icu/README.txt version 7ab7ced8

2023-12-03
00:51
Minor code changes for consistency and to simplify testing. (Leaf check-in: df272bd8 user: drh tags: jsonb)
2023-12-02
21:39
Implement strict JSONB checking in the json_valid() function. (check-in: 0f26d388 user: drh tags: jsonb)
20:37
Fix harmless compiler warnings reported by MSVC. (check-in: 419652c0 user: drh tags: jsonb)
20:35
Fix various compiler warnings and other problems with the new code on this branch. (Leaf check-in: 3a623cfa user: dan tags: fts5-token-data)
20:25
Code and comment cleanup. Everything should work the same. (check-in: c640754d user: drh tags: jsonb)
18:17
Fix harmless compiler warnings. Refactor some identifier names for clearer presentation. (check-in: 7e394150 user: drh tags: jsonb)
18:14
When tokendata=1 queries require multiple segment-cursors, allow those cursors to share a single array of in-memory tombstone pages. (check-in: e0175d07 user: dan tags: fts5-token-data)
18:04
Take extra care to ensure that JSONB values that are in cache are actually owned by the JSON subsystem, and that ownership of such values is not handed back to the bytecode engine. (check-in: 13045340 user: drh tags: jsonb)
17:32
Ensure that tokendata=1 queries avoid loading large doclists for queries like "common AND uncommon", just as tokendata=0 queries do. (check-in: 7bda09ab user: dan tags: fts5-token-data)
16:11
Protect a memcpy() against OOM conditions. (check-in: 26144d1c user: drh tags: jsonb)
15:59
Do not allow a JsonParse object to be considered "editable" after an OOM. (check-in: c6bacf57 user: drh tags: jsonb)
15:06
Fix potential unsigned integer underflow in jsonAppendString(). (check-in: d2fba2cb user: drh tags: jsonb)
14:55
Minor fix to the header comment on jsonXlateTextToBlob(). (check-in: c3677ba4 user: drh tags: jsonb)
14:16
Performance optimization in jsonAppendString(). (check-in: fdf00e96 user: drh tags: jsonb)
13:36
Simplification and optimization of the JSON parser. (check-in: f5ec9485 user: drh tags: jsonb)
12:23
Remove a NEVER that can be true if a virtual table column is declared to have a DEFAULT. See forum post 3d4de8917627d058. (Leaf check-in: 8abc2cca user: drh tags: trunk)
01:38
Unroll a loop in the parser for a performance increase. (check-in: a6dc29e4 user: drh tags: jsonb)
01:06
Fix harmless compiler warnings and enhance performance the parser. (check-in: 285633da user: drh tags: jsonb)
2023-12-01
22:01
Performance optimization in the JSON parser. (check-in: 68d191f4 user: drh tags: jsonb)
20:37
Remove old code for tokendata=1 queries. (check-in: b0a489e8 user: dan tags: fts5-token-data)
20:10
Merge latest trunk with this branch. (check-in: 82589674 user: dan tags: fts5-token-data)
20:09
Different approach to querying a tokendata=1 table. Saves cpu and memory. (check-in: c523f408 user: dan tags: fts5-token-data)
18:49
JSON cache is now more effective. (check-in: 443a3f3a user: drh tags: jsonb)
18:46
Fix up the JSON cache to work better. (Closed-Leaf check-in: 1fdbc395 user: drh tags: jsonb-cache)
13:28
Cache is working better, but does not preserve the hasJson5 flag. (check-in: a12add7a user: drh tags: jsonb-cache)
12:57
First attempt to get the JSON text-to-binary cache working. All test cases pass, but the cache seems not to help much. (check-in: 25ed295f user: drh tags: jsonb)
2023-11-30
23:36
Remove all trace of JsonNode from the JSON implementation. The JSONB format is used as the internal binary encoding for searching and editing. (check-in: 11ebb5f7 user: drh tags: jsonb)
20:57
Convert json_valid() over to using only JSONB as its internal format. (check-in: 7b5756fa user: drh tags: jsonb)
20:34
Add a basic batch-mode SQL runner for the SAH Pool VFS, for use in comparing it against WebSQL. Bring the WebSQL batch runner up to date, noting that it cannot run without addition of an "origin trial" activation key from Google because that's now the only way to enable WebSQL in Chrome (that part is not checked in because that key is private). Minor code-adjacent cleanups. (check-in: 883990e7 user: stephan tags: trunk)
19:29
Convert json_type() to use JSONB internally. (check-in: 83074835 user: drh tags: jsonb)
19:11
Convert json_insert(), json_replace(), and json_set() over to using only JSONB internally. (check-in: 4e2083e8 user: drh tags: jsonb)
19:06
Enhance json_set() and json_insert() so that they create missing substructure. (Closed-Leaf check-in: cc7a641a user: drh tags: jsonb-insert)
16:17
Simplification of the new JSON insert/set test cases. (check-in: 04c0d564 user: drh tags: jsonb-insert)
16:16
New JSON test cases showing insert or set with missing substructure. (check-in: 6802b645 user: drh tags: trunk)
12:04
New test cases for insert/set/replace with paths that indicate substructure that does not yet exist. (check-in: 146c717c user: drh tags: jsonb-insert)
10:00
Update some OPFS-related help text in WASM tests. Minor cleanups in speedtest1-worker.js. (check-in: 263f6d3a user: stephan tags: trunk)
00:52
Convert json_insert(), json_replace(), json_set() to use JSONB internally. Mostly working, but some corner cases are still not quite right. (check-in: 99c8f6bd user: drh tags: jsonb-insert)
2023-11-29
20:06
Convert the json_error_position() routine to use only JSONB internally. (check-in: e7a8ba35 user: drh tags: jsonb)
17:36
The json_patch() function now operates exclusively on JSONB. This patch also includes improvements to JSONB debug printing routines. (check-in: fee19d00 user: drh tags: jsonb)
16:22
Fix signed integer overflow in fts5. (check-in: 60e46c7e user: dan tags: fts5-token-data)
13:47
In the recovery extension, if a payload size is unreasonably large, it is probably corrupt, so truncate it. (check-in: 988c3179 user: drh tags: trunk)
12:18
Merge all the latest trunk enhancements into the jsonb branch. (check-in: 1a59fcab user: drh tags: jsonb)
02:53
Increase the patch level to 3.44.3. (Leaf check-in: bb4d35e2 user: drh tags: branch-3.44)
02:50
Reference count the Table passed into the OP_VCheck opcode. (check-in: 79e6496b user: drh tags: branch-3.44)
02:45
The assertion change at check-in [7946c79567b0ccd3] is insufficient to fix the problem of a Table object being deleted out from under the OP_VCheck opcode. We need to reference count the Table, which is accomplished here. (check-in: cad269d5 user: drh tags: trunk)
01:38
Convert the json_array_length() function to use JSONB instead of JsonNodes. (check-in: 5ab79073 user: drh tags: jsonb)
2023-11-28
23:26
Fix all known problems with JSONB json_extract(). (check-in: d5f48c57 user: drh tags: jsonb)
23:18
Do not set the J subtype when the output is JSONB. (Closed-Leaf check-in: 4f106b64 user: drh tags: jsonb-extract)
20:33
Preserve flexibility in the format of the RHS of -> and ->> operators found in legacy. (check-in: 6231ec43 user: drh tags: jsonb-extract)
20:25
Attempt to get json_extract() working with pure JSONB only, and without the use of JsonNode. Mostly working, but there are some differences from legacy in corner cases. (check-in: 8c324af1 user: drh tags: jsonb-extract)
19:43
Merge latest trunk updates into this branch. (check-in: 554fc13f user: dan tags: fts5-token-data)
18:16
The json_remove() function now uses only JSONB, never JsonNodes, internally. (check-in: b69786e7 user: drh tags: jsonb)
17:47
Update this branch with latest changes from trunk. (Leaf check-in: bead0d8f user: dan tags: begin-concurrent)
17:32
Update this branch with latest changes from trunk. (Leaf check-in: 7f1b61a3 user: dan tags: wal2)
17:12
In SQLITE_ENABLE_SETLK_TIMEOUT builds, use blocking locks in place of sleep() calls when opening a read-transaction. (check-in: 4c055b7a user: dan tags: trunk)
15:29
Handle an SQLITE_BUSY_TIMEOUT error if one occurs while attempting a shared lock on a read-lock slot. (Closed-Leaf check-in: 5fbf3906 user: dan tags: blocking-dms-lock)
13:38
Activate the ability of json_patch() to work on JSONB. (check-in: 11aba347 user: drh tags: jsonb)
13:35
All legacy tests are passing. (Closed-Leaf check-in: 2c436806 user: drh tags: jsonb-patch)
12:28
The json_patch() code for JSONB compiles and works sometimes, but there are still issues. Incremental check-in. (check-in: e0099464 user: drh tags: jsonb-patch)
00:27
More aggressive use of jsonBlobEdit(). Improvements to the MergePatch implementation sketch. (check-in: fbca9570 user: drh tags: jsonb)
2023-11-27
23:46
Add untested (#ifdefed-out) code for the MergePatch algorithm against JSONB. Add (and test) the jsonBlobEdit() routine that is needed by the new MergePatch. (check-in: 4d353387 user: drh tags: jsonb)
20:37
Have SQLITE_ENABLE_SETLK_TIMEOUT builds block when locking a read-lock slot. (check-in: f797baf4 user: dan tags: blocking-dms-lock)
19:22
In SQLITE_ENABLE_SETLK_TIMEOUT builds, use blocking locks in place of sleep() when opening a read-transaction. (check-in: a51ef399 user: dan tags: blocking-dms-lock)
17:13
Enhance the (SQLITE_DEBUG-only) json_parse() routine so that it shows a decoding of JSONB when given a BLOB argument. (check-in: af267868 user: drh tags: jsonb)
15:57
Give the json_valid() function an optional second argument that determines what is meant by "valid". (check-in: a4e19ad4 user: drh tags: jsonb)
15:08
Pickup stray oput?() calls that should have gone to stdout. Simplify console line reading, sacrificing speed (which does not matter then) for code size. (Leaf check-in: 8e20645c user: larrybr tags: console-io-lib)
12:36
Convert the json_tree() and json_each() virtual tables over to use JSONB has their internal representation. (check-in: ec18caa3 user: drh tags: jsonb)
12:30
All tests passing. (Closed-Leaf check-in: b5a5660c user: drh tags: jsonb-tree)
2023-11-26
00:56
Fix corner-case error conditions. (check-in: ec23d34a user: drh tags: jsonb-tree)
00:48
Same results as the legacy JsonNode implementation on a small set of test cases. (check-in: c3da4b07 user: drh tags: jsonb-tree)
2023-11-25
23:00
Remove unused elements from the json_tree() cursor. (check-in: 914a5011 user: drh tags: jsonb-tree)
20:59
Remove the vestigal JsonNode logic from json_tree() and json_each(). (check-in: 66c2ab9e user: drh tags: jsonb-tree)
19:28
Almost working. Path is still not exactly right when Root is defined on json_tree(). (check-in: 92258246 user: drh tags: jsonb-tree)
18:11
Generate the fullkey and path columns of json_tree(). (check-in: ffaa468a user: drh tags: jsonb-tree)
13:40
Handle the path argument to json_tree() and json_each(). (check-in: fded8884 user: drh tags: jsonb-tree)
2023-11-24
21:57
Continuing work on json_tree() against a JSONB. (check-in: 3df891cb user: drh tags: jsonb-tree)
20:14
Add the --buildonly and --dryrun options to testrunner.tcl. (check-in: a0c87ae9 user: dan tags: trunk)
18:44
Incremental progress toward getting json_each() and json_tree() to work directly off of a JSONB blob. (check-in: f8cab41b user: drh tags: jsonb-tree)
18:33
Allow a pattern to filter test scripts to be appended to testrunner.tcl "mdevtest", "sdevtest" and "release" commands. e.g. "tclsh test/testrunner.tcl sdevtest fts5%". (check-in: f8ea0b58 user: dan tags: trunk)
16:17
Get all CLI print calls which went to stdout in 3.44.0 to do so again. (check-in: d65d9579 user: larrybr tags: console-io-lib)
15:58
Get all CLI print calls which went to stdout in 3.44.0 to continue going to stdout. (check-in: e9951ede user: larrybr tags: trunk)
14:25
Fix jsonParseReset() to properly clear the JsonParse.aBlob element. (check-in: ab2644aa user: drh tags: jsonb)
14:03
Omit precompiled binaries from the source tree. (check-in: 7dbc2f49 user: drh tags: jsonb)
14:02
Omit precompiled binaries from the source tree. (check-in: 3a8a75bf user: drh tags: console-io-lib)
14:01
Omit the precompiled binary from the source tree. (check-in: 4ff103d2 user: drh tags: trunk)
13:41
Merge the latest trunk enhancements and fixes into the jsonb branch. (check-in: a838ebcb user: drh tags: jsonb)
13:30
CLI .output/.once to not redirect ".timer on" results. (check-in: 626c4353 user: larrybr tags: console-io-lib)
13:26
CLI .output/.once to not redirect ".timer on" results. (check-in: ce766ed5 user: larrybr tags: trunk)
12:48
Merge 3.44.2 changes into the reuse-schema-3.44 sub-branch. (Leaf check-in: 2b9d5ff7 user: drh tags: reuse-schema-3.44)
12:42
Merge 3.44.2 changes into the bedrock-3.44 sub-branch. (Leaf check-in: 1d9dfad0 user: drh tags: bedrock-3.44)
12:38
Merge 3.44.2 changes into the wal2-3.44 sub-branch. (Leaf check-in: 0118e8c9 user: drh tags: wal2-3.44)
12:33
Merge 3.44.2 changes into the begin-concurrent-3.44 sub-branch. (Leaf check-in: 6d97426f user: drh tags: begin-concurrent-3.44)
11:41
Version 3.44.2 (check-in: ebead0e7 user: drh tags: release, branch-3.44, version-3.44.2)
2023-11-23
12:12
Another assertion fault fix, similar to [a9443dbfbe25e588]. (check-in: f796da62 user: drh tags: branch-3.44)
11:59
Fix a incomplete assert() statement in sqlite3SubqueryColumnTypes(). (Closed-Leaf check-in: 844e05ed user: drh tags: mistake)
11:45
Fix harmless compiler warnings in debugging code. (check-in: db40272c user: drh tags: branch-3.44)
11:29
Fix an fts5 problem that could occur when mixing regular and secure delete operations on a single table. (check-in: 25fb5a54 user: drh tags: branch-3.44)
11:21
Increase the version number to 3.44.2. (check-in: 73d3cb79 user: drh tags: branch-3.44)
11:18
Fix an fts5 problem that could occur when mixing regular and secure delete operations on a single table. (check-in: 8eb3f400 user: dan tags: trunk)
07:10
Fix output redirect bug reported in the forum. (check-in: 60bdd5c3 user: larrybr tags: console-io-lib)
07:08
Fix output redirect bug reported in the forum. (check-in: ce542fee user: larrybr tags: trunk)
07:06
Fix output redirect bug reported in the forum. (check-in: 2ab256bc user: larrybr tags: branch-3.44)
2023-11-22
22:59
Minor doc fix in src/betreeInt.h, prompted by an email report. No code changes. (check-in: 30d49aae user: stephan tags: trunk)
21:24
For CLI build with unused function warnings on, #ifdef out a console I/O function, fPutbUtf8(). (check-in: da36f90d user: larrybr tags: trunk)
21:15
Add documentation for new fts5 auxiliary function APIs. (check-in: 9be8969e user: dan tags: fts5-token-data)
20:02
Defer building xInstToken() hash-table until it is to be used. (check-in: 9b005085 user: dan tags: fts5-token-data)
19:02
Fix tokendata=1 and xInstToken() APIs for detail=none and detail=column tables. (check-in: 37b271c1 user: dan tags: fts5-token-data)
17:13
Correct the URL for loading sqlite3-worker1-bundler-friendly.mjs from sqlite3-worker1-promiser-bundler-friendly.js, so that the promiser can be used in bundler-using environments. Problem reported via email. (check-in: b1128838 user: stephan tags: branch-3.44)
17:11
Correct the URL for loading sqlite3-worker1-bundler-friendly.mjs from sqlite3-worker1-promiser-bundler-friendly.js, so that the promiser can be used in bundler-using environments. Problem reported via email. (check-in: 753a7521 user: stephan tags: trunk)
16:32
Merge the 3.44.1 patches into a new sub-branch of reuse-schema. (check-in: 24fc47af user: drh tags: reuse-schema-3.44)
16:15
Merge the version 3.44.1 patch into a new sub-branch of bedrock. (check-in: 84f42157 user: drh tags: bedrock-3.44)
15:34
Merge the 3.44.1 patches into a sub-branch of wal2. (check-in: 2672572c user: drh tags: wal2-3.44)
15:29
Merge the 3.44.1 patches into a new sub-branch of begin-concurrent. (check-in: 7a1a114b user: drh tags: begin-concurrent-3.44)
14:18
Version 3.44.1 (check-in: d295f48e user: drh tags: release, branch-3.44, version-3.44.1)
2023-11-21
22:36
Inserts invalid JSONB should return "malformed JSON", not a json path error. (check-in: 306ee66f user: drh tags: jsonb)
20:13
Direct editing of JSONB using json_insert() and json_set(). (check-in: fffb7a95 user: drh tags: jsonb)
19:05
Correct blob-to-text rendering in some corner cases. (check-in: 7822e0e5 user: drh tags: jsonb)
18:46
Pickup minor stylistic changes related to console I/O and, for Windows builds, get fact of UTF-16 translation into the sign-on banner. (a straight cherry-pick) (check-in: d7a59e79 user: larrybr tags: branch-3.44)
18:37
Pickup minor changes related to console I/O. (check-in: 24774e77 user: larrybr tags: console-io-lib)
18:26
Merge console I/O changes for Windows CLI. (check-in: 935a8a8e user: larrybr tags: trunk)
18:23
Fix the translation of JSON5 numeric values from BLOB into text. (check-in: 40c4fb44 user: drh tags: jsonb)
17:54
Merge all recent trunk fixes and enhancements into the jsonb branch. (check-in: 6d78d50e user: drh tags: jsonb)
17:51
Make edits directly to the JSONB BLOB when the input to json_replace() is a JSONB. (check-in: d69c6ace user: drh tags: jsonb)
15:55
Sync w/trunk as pre-merge-to-trunk sanity check. (check-in: 448d6a11 user: larrybr tags: console-io-lib)
12:02
Fix the trace3-4.4 test to be more rebust against timing quirks. (check-in: 8936daa0 user: drh tags: trunk)
2023-11-20
15:58
Back out an incorrect change to the sqlite3ExprCompareSkip() function from long ago. (check-in: 89658abb user: drh tags: branch-3.44)
15:54
Back out an incorrect change to the sqlite3ExprCompareSkip() function that was added way back on 2019-08-22 for [44578865fa7baf97|check-in 44578865fa7ba] and which was only today discovered to be incorrect by forum post 45ec3d9788. (check-in: f5b3eb0f user: drh tags: trunk)
13:59
Arrange to not compile unused console I/O function. (check-in: 184a0cd2 user: larrybr tags: branch-3.44)
13:12
Convert an assert in OP_VCheck into a branch that aborts the opcode, as this can happen on some very obscure conditions, as discovered by dbsqlfuzz. (check-in: 0d5f6871 user: drh tags: branch-3.44)
13:06
Convert an assert in OP_VCheck into a branch that aborts the opcode, as this can happen on some very obscure conditions, as discovered by dbsqlfuzz. Test case in TH3. (check-in: 7946c795 user: drh tags: trunk)
12:00
Cherry pick additional assert() fixes from trunk into the branch-3.44 branch. (check-in: 6d8a8b70 user: drh tags: branch-3.44)
11:50
Fix an assert() in fts5 that could be true following an OOM or IO error in contentless-delete mode. (check-in: 80a0bd7a user: drh tags: branch-3.44)
11:40
Fix an assert() in fts5 that could be true following an OOM or IO error in contentless-delete mode. (check-in: 3fe89238 user: dan tags: trunk)
00:21
Cherrypick shell1.test fix. (check-in: 91c888ed user: larrybr tags: trunk)
00:20
Cherrypick shell1.test fix. (check-in: 39e30c5f user: larrybr tags: console-io-lib)
2023-11-19
17:33
Fix test 5.0 in shell1.test for Windows. (A double-quote wrapped single-quote needs no further treatment to be recognized as a single single-quote.) (check-in: aaa73400 user: larrybr tags: branch-3.44)
2023-11-18
22:10
Merge changes to do Windows console I/O with UTF-16. (check-in: f782054e user: larrybr tags: branch-3.44)
20:24
Correct conditional compilation issue seen with MSVC in the Win32 mutex subsystem. (check-in: 6c069c5d user: drh tags: branch-3.44)
18:36
Correct conditional compilation issue seen with MSVC in the Win32 mutex subsystem. (check-in: 6f8f4bfe user: mistachkin tags: trunk)
17:20
When ENABLE_SETLK is defined, avoid ever blocking on the lock mutex in os_unix.c when requesting an exclusive lock. (check-in: eb36d475 user: dan tags: trunk)
12:06
Adjust an assert() in fts5WritePoslistData() so that it only applies if there have been no prior errors. dbsqlfuzz 25dca9b2568f67dc78a0e32ff280133fe71994bd. (check-in: 257cdbab user: drh tags: trunk)
11:23
Another assertion fault fix, similar to [a9443dbfbe25e588]. dbsqlfuzz 2d9af4e94aca188e0092900eec711401c5d51687. (check-in: 3afaeac5 user: drh tags: trunk)
2023-11-17
19:01
When SQLITE_ENABLE_SETLK_TIMEOUT is defined, use a separate mutex in os_unix.c for each shm locking slot. (check-in: 64691df9 user: dan tags: trunk)
17:55
Add the new "run-fuzzcheck" target on the autoconf unix makefile. Requires that FUZZDB be set to the name of the fuzz-data database file. (check-in: 8fa3915d user: drh tags: trunk)
17:25
Add an assert() to prove the sqlite3_prepare() always either returns SQLITE_OK or else leaves *ppStmt set to NULL. See forum post 70bb8576c6c084c2. (check-in: feadd402 user: drh tags: trunk)
17:10
When SQLITE_ENABLE_SETLK_TIMEOUT is defined, use a separate mutex in os_unix.c for each shm locking slot. (Closed-Leaf check-in: 4098df96 user: dan tags: unix-setlk-timeout-mutexes)
17:03
Merge the latest trunk enhancements and fixes into the jsonb branch. (check-in: 162f0509 user: drh tags: jsonb)
12:22
Fix harmless compiler warnings in debugging code. (check-in: ce6a7562 user: drh tags: trunk)
11:58
Fix an incorrect assert() associated with ALTER TABLE where an unknown aggregate function contains an ORDER BY clause. dbsqlfuzz e0900262dadd5c78c2226ad6a435c7f0255be2cd. (check-in: a9443dbf user: drh tags: trunk)
2023-11-16
21:11
When querying a tokendata=1 fts5 table, do not use a prefix cursor for the case where the term has only one variant. (check-in: d711c96b user: dan tags: fts5-token-data)
20:50
Cherrypick changes to simplify and make more rational how console I/O package features are selected. (Leaf check-in: b20c9f17 user: larrybr tags: consio-3.44)
18:31
Simplify and make more rational how console I/O package features are selected. (Motivated by Fiddle and other command-line utilities to soon use the package.) No substantive code-execution changes. (check-in: 1cde0587 user: larrybr tags: console-io-lib)
2023-11-15
20:32
Both json_remove() jsonb_remove() work on pure JSONB as long as the input is JSONB. (check-in: 68d55173 user: drh tags: jsonb)
19:21
Some simple test cases for JSONB direct remove. (check-in: 8cb4d2cb user: drh tags: jsonb)
19:19
Changes 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: 79e24ec3 user: dan tags: trunk)
18:55
jsonb_remove() now works without having to use a JsonNode parse, assuming that the input is JSONB. (check-in: 5207679e user: drh tags: jsonb)
18:47
The jsonb_remove() routine now appears to be working. (Closed-Leaf check-in: e76d4813 user: drh tags: jsonb-remove)
16:54
Get Fiddle build to succeed. (It runs, too, but not from changes here.) (check-in: 957ebaa2 user: larrybr tags: consio-3.44)
16:10
Work toward getting jsonb_remove() to work directly on JSONB blobs. (check-in: a79ff8e5 user: drh tags: jsonb-remove)
15:20
Changes to console I/O for Fiddle build, to always defer to C library (as before.) A WIP, pending testing with Fiddle build. (check-in: 45b8061e user: larrybr tags: consio-3.44)
14:09
Improvements to the description of sqlite3_errmsg() and sqlite3_errstr(). (check-in: fe5cc416 user: drh tags: trunk)
13:23
Merge all the latest enhancements and fixes from trunk into the jsonb branch. (check-in: ba91408f user: drh tags: jsonb)
11:45
Add implementation of xInstToken() API. (check-in: a34b26fe user: dan tags: fts5-token-data)
11:31
Fix an exception misuse in test-opfs-vfs.js. (check-in: 9264955e user: stephan tags: trunk)
08:59
JNI: add more wrapper1 Sqlite.Blob tests. (check-in: d63f6e1f user: stephan tags: trunk)
08:29
JNI: clear out the sqlite3_context native pointer after calling UDF callbacks which do not have an argv (as was already done for those which have an argv). Add related tests and code commentary. (check-in: 138f4054 user: stephan tags: trunk)
06:28
JNI doc updates. (check-in: 1b1f36a2 user: stephan tags: trunk)
06:10
JNI: add the @Experimental annotation and mark all java.nio.ByteBuffer-related methods with it. (check-in: 0f4b2231 user: stephan tags: trunk)
05:08
JNI test code cleanups. (check-in: 09142ac1 user: stephan tags: trunk)
04:55
JNI: add CONFIG_LOG and CONFIG_SQLLOG support to wrapper1. Code-adjacent cleanups. (check-in: 83c49b9e user: stephan tags: trunk)
03:02
JNI: apply an internal level of API indirection to avoid having to work with massively-mangled names for the various sqlite3_config() overloads. (check-in: 24f20663 user: stephan tags: trunk)
2023-11-14
16:53
Add NEVER() to a branch made unreachable by [6f9eed826f5b3d1c]. (check-in: 26dcaa34 user: drh tags: trunk)
14:59
JNI: reimplement Tester2.execSql() using the high-level API. (check-in: 3a69679e user: stephan tags: trunk)
14:50
Fix another obscure problem with nested aggregates. dbsqlfuzz 04408efc51. This might be a better fix than the one at [4a587c3492faa994]. (check-in: 6f9eed82 user: dan tags: trunk)
14:38
JNI: add Sqlite.Stmt.step(boolean) overload which returns the result code of sqlite3_step() unless passed true, in which case it throws for any result other than ROW or DONE. The intent is to simplify handling of LOCKED and BUSY errors. (check-in: f4f1cc20 user: stephan tags: trunk)
13:51
Extra PRAGMA vdbe_addoptrace output showing when OP_Column gets translated into OP_Copy due to using a coroutine instead of a cursor. (check-in: eba180e7 user: drh tags: trunk)
05:33
JNI: use ByteBuffer.limit() instead of ByteBuffer.capacity() when figuring out where the logical end of a ByteBuffer is, for reasons explained at length in new code comments. This is unfortunately slower but is the correct way to do it. (check-in: 51539419 user: stephan tags: trunk)
04:59
JNI: add sqlite3_blob_read_nio_buffer() and iron out the blob/ByteBuffer interface somewhat. (check-in: 7df317b4 user: stephan tags: trunk)
03:31
Cherry-pick some assert()s to cover misuse of *Put*() from 500+ shell.c callers. (check-in: c1a53c28 user: larrybr tags: consio-3.44)
03:24
Add a few asserts into *Put*() functions to catch calls that might cause an address fault. (check-in: 2341f9b6 user: larrybr tags: console-io-lib)
02:43
JNI: change sqlite3_prepare_multi()'s exception-handling semantics to be more C-like and, to support that, add the package-private sqlite3_jni_db_error() method to set the db error state from package-level Java code. (check-in: 46656b35 user: stephan tags: trunk)
01:33
JNI: add sqlite3_blob_write() overload which accepts a java.nio.ByteBuffer. Cleanups in adjacent code. (check-in: ca32af85 user: stephan tags: trunk)
2023-11-13
23:11
JNI: add sqlite3_column_nio_buffer() and sqlite3_value_nio_buffer() using an only-slightly roundabout approach to creating properly-sized ByteBuffer objects. (check-in: efbc82b2 user: stephan tags: trunk)
18:35
JNI: add sqlite3_result_nio_buffer() and tests. Discover that we cannot create sensible sqlite3_column_nio_buffer() or sqlite3_value_nio_buffer() counterparts because of ByteBuffer interface limitations. (check-in: 44b4df01 user: stephan tags: trunk)
17:45
Manual merge of branch-3.44 with 3 sources affected/created by console-io-lib changes. (check-in: 18ebcf11 user: larrybr tags: consio-3.44)
17:26
Mistaken creation by a Fossil expert-to-be-maybe. (Leaf check-in: 2e3e98a4 user: larrybr tags: mistake)
15:59
Cure many warnings from gcc, clang and CL.exe. (check-in: 29ea2a3a user: larrybr tags: console-io-lib)
14:58
JNI: add sqlite3_bind_nio_buffer() and initial tests for binding ByteBuffer objects as blobs on JVMs which have JNI support for nio buffers. (check-in: b10ce1ef user: stephan tags: trunk)
14:29
Add new fts5 API xQueryToken(). (check-in: 82856639 user: dan tags: fts5-token-data)
13:01
Fix var-intro after executable code departure from old C. (check-in: 08996f4f user: larrybr tags: console-io-lib)
12:53
Slight cleanup of length-limited strpbrk() replacement, and eliminate strpbrk() call. (check-in: 97e2c962 user: larrybr tags: console-io-lib)
12:05
Remove an incorrect ALWAYS() and NEVER(). (check-in: 94f62093 user: drh tags: branch-3.44)
05:24
Enhance console_io to permit emits limited in various ways, such as valid UTF-8, upto control chars, or with counted limits, all getting away from 0-termination as the sole limit. In CLI, use this capability to avoid certain emit-chars-singly procedures that were breaking up UTF-8 characters. This fixes broken json mode output (on Windows) and (maybe) C-literal-like emits. (check-in: 906c5c40 user: larrybr tags: console-io-lib)
2023-11-12
19:57
Add sqlite3_x86.exe unversioned binary. (check-in: a731cddd user: larrybr tags: console-io-lib)
03:58
Use setOutputStream() to designate implicit output for oput{z,f}() emit functions, and use them extensively. (check-in: 7850fb98 user: larrybr tags: console-io-lib)
00:43
Write BOM without fwrite(), using sputz() so that if it goes to the console, it is translated "properly". (check-in: 06ef96a8 user: larrybr tags: console-io-lib)
2023-11-11
22:53
Remove SHELL_LEGACY_CONSOLE_IO PP symbol and code it made active. (It is in the repo if ever needed/wanted, but it is just inferior or dead code now.) (check-in: 27c5bf65 user: larrybr tags: console-io-lib)
20:46
Complete shell transition to using {f,o,e}put{f,z}() emit functions. (check-in: 923c6b8b user: larrybr tags: console-io-lib)
14:50
JNI wrapper1: when checking for an out-of-bounds statement column index, perform the is-statement-finalized check before the range check so that the former exception trumps the latter. (check-in: 0832f9a8 user: stephan tags: trunk)
14:43
Do not cache a statement's column count in the JNI wrapper1 API because an ALTER TABLE via another statement may invalidate it, as reported in forum post 6d80efd58d4591c7. (check-in: a6ab88e9 user: stephan tags: trunk)
13:09
Fix malf with redirected input due to bad assumption that stdin is a console in the fgets() replacement. (check-in: 79d1f2c1 user: larrybr tags: console-io-lib)
06:20
Pervasive changes to console_io.{c,h} in support of simplifying ubiquitous emit ops in shell, and to get better control of console streams that might be opened only via .read or .output commands. Changes to shell to use {s,o,e}put{f,z}(...) calls for initial testing, but this check-in has few such conversions so that most will be in a separate check-in. Many renames to better follow recent coding convention. This code seems to be working, but has not been tested on difficult platforms or with multiple console hosts yet. So it is a WIP. (check-in: 14762a00 user: larrybr tags: console-io-lib)
2023-11-10
21:03
Fix another problem with mixed join types and the RIGHT JOIN strength-reduction optimization. (check-in: 8f01f8b2 user: drh tags: branch-3.44)
20:55
Fix another problem with mixed join types and the RIGHT JOIN strength-reduction optimization. Forum post befdab472d. (check-in: f1eae192 user: dan tags: trunk)
20:46
Additional debugging information on the tree-dump of the BETWEEN operator. (check-in: aca31e49 user: drh tags: trunk)
20:35
Remove an incorrect ALWAYS() that was inserted yesterday [1e039b6eb59c0001]. (check-in: 12885e29 user: drh tags: trunk)
18:59
Merge recent trunk enhancements and fixes into the jsonb branch. (check-in: 091a5f05 user: drh tags: jsonb)
17:49
Ensure 8-byte alignment of data structues in sqlite3_database_file_object(). This should have appeared on trunk originally and then be cherry-picked onto the branch. Oh well.... (check-in: ac39800b user: drh tags: trunk)
16:29
Remove a NEVER() from whereAddIndexedExpr() that is reachable if there is an unknown indexed function in the schema. (check-in: a976b720 user: drh tags: trunk)
15:20
Fix an obscure problem with the join-strength-reduction optimization that could occur when mixing LEFT and RIGHT joins in the same query. (check-in: dcf1c137 user: drh tags: branch-3.44)
15:03
Fix an obscure problem with the join-strength-reduction optimization that could occur when mixing LEFT and RIGHT joins in the same query. Forum post 7f74ce0bee and separately post d64f0abe723ac98e. The problem was introduced by check-in [d747afda5683ca5f]. (check-in: 530d10e9 user: dan tags: trunk)
15:01
Expose the missing SQLITE_SUBTYPE to wasm. (check-in: 7bebfe20 user: stephan tags: branch-3.44)
15:00
Expose the missing SQLITE_SUBTYPE to wasm. (check-in: ac9534b2 user: stephan tags: trunk)
15:00
Expose the missing SQLITE_SUBTYPE to JNI. (check-in: 0f92f4c9 user: stephan tags: trunk)
14:15
Expose SQLITE_RESULT_SUBTYPE to JNI. (check-in: 3bf75875 user: stephan tags: trunk)
13:13
Fix a potential UAF caused by JSON parser cache spill. (Leaf check-in: ce3fc4fc user: drh tags: bedrock-3.43)
2023-11-09
18:41
Ensure 8-byte alignment of data structues in sqlite3_database_file_object(). (check-in: 3cfcaafa user: drh tags: branch-3.44)
17:55
Expose SQLITE_RESULT_SUBTYPE to wasm. (check-in: fc039886 user: stephan tags: branch-3.44)
17:53
Expose SQLITE_RESULT_SUBTYPE to wasm. (check-in: 6d2fe984 user: stephan tags: trunk)
17:42
Add the SQLITE_RESULT_SUBTYPE flag for application-defined functions. Add the -DSQLITE_STRICT_SUBTYPE=1 compile-time option that raises an error if any function invokes sqlite3_result_subtype() without the SQLITE_RESULT_SUBTYPE flag. SQLITE_RESULT_SUBTYPE prevents an indexed value of that function from being used to replace an equivalent expression, since the indexed expression does not carry the subtype. (check-in: 65a9cfc4 user: drh tags: branch-3.44)
17:36
Add the SQLITE_RESULT_SUBTYPE flag for application-defined functions. Add the -DSQLITE_STRICT_SUBTYPE=1 compile-time option that raises an error if any function invokes sqlite3_result_subtype() without the SQLITE_RESULT_SUBTYPE flag. SQLITE_RESULT_SUBTYPE prevents an indexed value of that function from being used to replace an equivalent expression, since the indexed expression does not carry the subtype. Fix for the problem described at forum post 68d284c86b082c3e. (check-in: ba789a78 user: drh tags: trunk)
17:28
Fix compilation issue seen with MSVC. (check-in: 0dfe790d user: mistachkin tags: trunk)
17:26
Put an ALWAYS on an true branch. (Closed-Leaf check-in: 1e039b6e user: drh tags: func-rw-subtype)
16:52
Futher documentation refinements. (check-in: 311c2eba user: drh tags: func-rw-subtype)
15:01
Fixes: (1) In the ->> function, instead of setting a subtype and clearing it, do not set it in the first place, as doing the set would trigger an error under SQLITE_STRICT_SUBTYPE. (2) Allow the SQLITE_STRICT_SUBTYPE through the property filter on sqlite3_create_function(). (check-in: 6195468b user: drh tags: func-rw-subtype)
13:00
A .class file build dependencies fix in the JNI build. (check-in: 8cc32915 user: stephan tags: trunk)
12:58
Add the SQLITE_STRICT_SUBTYPE compile-time option. This change reveals that the current SQLITE_RESULT_SUBTYPE design does not work unless we tag the ->> operator with SQLITE_RESULT_SUBTYPE. But that will disable an important optimization. (check-in: e98a9a65 user: drh tags: func-rw-subtype)
12:48
Add some notes about the JNI pointer-passing approach and convert a couple of potential NullPointerExceptions into appropriate C result codes. Clarify that invocation of undefined behaviour from the Java API does not (due to the addition of defensive code) mean the same thing as it does in C (e.g. no NULL pointer dereferences). (check-in: 19c4778f user: stephan tags: trunk)
12:17
Do not replace expressions that return subtypes with values taken from an index. (check-in: a35d13db user: drh tags: func-rw-subtype)
12:08
Omit the new SQLITE_VALUE_SUBTYPE name. Stay with legacy SQLTIE_SUBTYPE. Add extra documentation to sqlite3_value_subtype() and sqlite3_result_subtype() indicating that the SQLITE_SUBTYPE and SQLITE_RESULT_SUBTYPE properties are required on functions that use those interfaces. (check-in: 563ad3be user: drh tags: func-rw-subtype)
12:01
Two more JNI build fixes for Windows/MinGW, reported in forum post 4f949edc312d2a75. (check-in: a3f9c390 user: stephan tags: trunk)
01:56
JSON5 bug fix: Escape double-quotes that occur inside of single-quoted strings. (check-in: 6cc57bb2 user: drh tags: branch-3.44)
01:54
JSON5 bug fix: Escape double-quotes that occur inside of single-quoted strings. Forum post ddcad3e884. (check-in: 1c98d46d user: drh tags: trunk)
2023-11-08
21:38
Make a distinction between functions that consume subtypes and functions that generate subtypes. (check-in: 48a92e3a user: drh tags: func-rw-subtype)
18:08
Do not cover expressions using an indexed expression if the indexed expression is a function that might set a subtype. (Closed-Leaf check-in: e908b26a user: drh tags: idx-expr-fix)
17:11
Merge recent trunk enhancements into the jsonb branch, and especially the finer-grain characterization of JSON function properties. (check-in: 72393b00 user: drh tags: jsonb)
16:37
More precise characterization of JSON functions. Indicate when functions might return JSON (subtype 'J') and when they make use of the function argument cache. (check-in: b2b62546 user: drh tags: trunk)
15:56
Have the shell tool emit a warning if the user attempts to use ".scanstats vm" in a non-SQLITE_ENABLE_BYTECODE_VTAB build. (check-in: 3978c084 user: dan tags: trunk)
15:51
Remove old files related to wapptest.tcl from test/ directory. (check-in: dd3e7b5b user: dan tags: trunk)
15:49
Avoid blocking as part of passive checkpoint operations, even if SQLITE_ENABLE_SETLK_TIMEOUT is defined. (check-in: e5ecc404 user: dan tags: trunk)
15:34
Remove an unused/invalid test from the wasm suite. (check-in: 916ae898 user: stephan tags: trunk)
14:55
Add declarations for new fts5 API functions. (check-in: b8a48cc1 user: dan tags: fts5-token-data)
12:56
JNI build fixes for platforms where the jint type is not the same as int, as reported in forum post 9089d2049a. (check-in: b32b0873 user: stephan tags: trunk)
00:45
Suppress harmless UBSAN warnings about memory overflow in OP_AddImm. The exact same machine code is generated by GCC. (check-in: b0594383 user: drh tags: trunk)
00:12
Changes a no-op call to freeP4() into an assert(). (check-in: 32a7b1bd user: drh tags: trunk)
2023-11-07
20:56
Add -DSQLITE_ENABLE_SETLK_TIMEOUT=1 to a release-test configuration. (check-in: cd3e38fb user: dan tags: trunk)
20:11
Fix an assert() that could fail within calls to sqlite3_snapshot_open() in SQLITE_ENABLE_SETLK_TIMEOUT builds. (check-in: 84634bc2 user: dan tags: trunk)
19:39
An attempt to work around compilation errors on MinGW reported in forum post 9089d2049a. (check-in: d5658a3e user: stephan tags: trunk)
19:30
Refactor MBCS/UTF-8 translation to avoid extra allocations, supporting non-formatted (faster) output. Some code cleanup. Wrap .system/.shell command exection with restoration of startup console mode and renewing mode setup. Changes to make legacy MBCS build work better (than legacy did, even with --no-utf8.) (check-in: d5e88fcd user: larrybr tags: console-io-lib)
19:15
Update the documentation to the sqlite3_set_auxdata() and sqlite3_get_auxdata() routines to make it clear that they do not work as one might expect when they are called during query planning, instead of during query execution. The JSON routines misuse those interfaces, so add a special flag to JSON routines that prevents them from being invoked during query planning. (check-in: 36259009 user: drh tags: branch-3.44)
19:03
Update the documentation to the sqlite3_set_auxdata() and sqlite3_get_auxdata() routines to make it clear that they do not work as one might expect when they are called during query planning, instead of during query execution. The JSON routines misuse those interfaces, so add a special flag to JSON routines that prevents them from being invoked during query planning. Fix for the problem in forum post a655ee159eca1ea5. (check-in: 796a23f9 user: drh tags: trunk)
19:02
Do not allow aggregate or window functions in UPDATE statements. (Leaf check-in: fce776cc user: dan tags: no-aggregates-in-update)
17:15
JNI: during static init record whether the current JVM supports JNI-level access to java.nio.ByteBuffer raw memory, and add sqlite3_jni_supports_nio() to query that. (check-in: fb8dbb77 user: stephan tags: trunk)
15:56
Add Sqlite.prepareMulti() to JNI wrapper1, for preparing multiple statements from a single input. (check-in: e4670d68 user: stephan tags: trunk)
13:44
Diverse minor cleanups in the JNI pieces. (check-in: 35233dd9 user: stephan tags: trunk)
13:22
Flesh out [7a63b5b65a79] to be able to build JNI with or without SQLITE_ENABLE_COLUMN_METADATA. (check-in: fcee41b3 user: stephan tags: trunk)
02:41
Get dependencies into make recipes. Get legacy console I/O (-DSHELL_LEGACY_CONSOLE_IO) working. Due to movement of MBCS/UTF-8 translation into traditional stream I/O simulacra, the input translation does not happen the same way. (It works the same, but fails differently and a bit better.) Added printf() and fputs() look-alikes, and made CLI use them. (check-in: 1721dc6a user: larrybr tags: console-io-lib)
2023-11-06
21:57
Add -DSQLITE_ENABLE_COLUMN_METADATA to the JNI build, as per forum post 9205518c0568fdf0. Add tests for the functions that flag enables so that the build will fail if that flag is missing. (check-in: 7a63b5b6 user: stephan tags: trunk)
19:16
Merge latest trunk into this branch. (check-in: 3a869cf1 user: dan tags: fts5-token-data)
19:08
Update the srctree-check.tcl script and child script so that they can be run on a read-only source tree and so that if any inconsistencies are found, the script returns a non-zero exit code and thus halts the build. (check-in: a0cc7e81 user: drh tags: branch-3.44)
19:01
Fix an fts5 problem where a transaction consisting of (a) a DELETE on rowid X, (b) a prefix query, and (c) an INSERT on rowid X, could corrupt the index. (check-in: 34af510a user: drh tags: branch-3.44)
18:40
Fix an fts5 problem where a transaction consisting of (a) a DELETE on rowid X, (b) a prefix query, and (c) an INSERT on rowid X, could corrupt the index. (check-in: c2058a04 user: dan tags: trunk)
16:32
Merge trunk changes into this branch. (check-in: ac557061 user: dan tags: fts5-token-data)
15:31
Move console_io lib to its own subdirectory, etc/consio . (check-in: 1d0583f2 user: larrybr tags: console-io-lib)
15:15
Some renaming, warnings cured, and more coding convention conformance. (check-in: 58815f0a user: larrybr tags: console-io-lib)
13:24
Add an fputs() equivalent to console I/O lib, and use in CLI. (check-in: d661f907 user: larrybr tags: console-io-lib)
03:09
Cause CLI to use console_io library. (check-in: bf66a7c1 user: larrybr tags: console-io-lib)
00:15
Make MSVC accept it, too. (Cannot use static const int as part of a constant expression?) (check-in: bb278d24 user: larrybr tags: console-io-lib)
2023-11-05
23:55
Make it buildable. Pull test program from testee. Zap stray fprintf(). (check-in: 2b850aca user: larrybr tags: console-io-lib)
19:42
Input working. No line-editor provisions yet. (WIP, but suitable for testing.) (check-in: e8568b1d user: larrybr tags: console-io-lib)
04:20
Add incremental blob I/O support to JNI wrapper1. (check-in: 7f1c76fe user: stephan tags: trunk)
03:37
JNI wrapper1 normalizeSql() now throws UnsupportedOperationException, instead of returning null, if built without SQLITE_ENABLE_NORMALIZE. Remove SQLITE_PREPARE_NORMALIZE from the JNI interface because it's a legacy no-op. (check-in: d081a126 user: stephan tags: trunk)
01:55
Add authorizer support to JNI wrapper1. (check-in: 773f9873 user: stephan tags: trunk)
01:39
Add progress-handler support to JNI wrapper1. Correct the return type of the extended_result_codes() JNI binding and expose it to wrapper1. (check-in: 6c0acfdc user: stephan tags: trunk)
01:21
Setup, takedown, mode set and output working. No input yet. (WIP) (check-in: dfea85be user: larrybr tags: console-io-lib)
01:14
Add update-hook support to JNI wrapper1. (check-in: 6c584cf2 user: stephan tags: trunk)
00:48
Add commit/rollback hook support to JNI wrapper1. (check-in: ff3d44fe user: stephan tags: trunk)
00:02
Add busy-handler support to JNI wrapper1. (check-in: dcf579ab user: stephan tags: trunk)
2023-11-04
23:37
Bind collation and collation-needed to JNI wrapper1 and correct the callback return type for collation-needed callbacks in the lower-level JNI binding. (check-in: 0f673140 user: stephan tags: trunk)
22:47
Wrap the sqlite3_backup API in the JNI wrapper1 API. (check-in: 3ee6cc29 user: stephan tags: trunk)
21:51
Reimplement auto-extensions in Java for use with the JNI wrapper1 API. (check-in: 14ed4c64 user: stephan tags: trunk)
21:44
Ensure that the YYYY-MM-DD input to date and time functions has been normalized prior to returning a result. Forum post 6bb476897e. (check-in: b692eb8c user: drh tags: trunk)
16:01
Expose context_db_handle() to the JNI wrapper1 API and clean up some related tests. (check-in: c23123af user: stephan tags: trunk)
13:37
Rework the JNI wrapper1 variants of status() and db_status() to be more Java-esque. (check-in: 40ad3920 user: stephan tags: trunk)
13:16
Bind the bool-flag sqlite3_db_config() variants to the JNI wrapper1 API. (check-in: b5cdcb92 user: stephan tags: trunk)
12:53
Bind the trace API to the JNI wrapper1 API and add a way to map the native-level db/stmt types to their high-level counterparts (required for translating callbacks such as tracers). (check-in: 702910e0 user: stephan tags: trunk)
02:22
Define interface between project command-line apps and a console I/O "library". (check-in: 64abef83 user: larrybr tags: console-io-lib)
2023-11-03
18:45
Back out the ALWAYS inserted late yesterday. The fuzzer discovered a counter-example. (check-in: 57063557 user: drh tags: trunk)
17:20
Fix a case where adjacent tokens are handled incorrectly by the fts5 snippet() function. (check-in: 8f5e9c19 user: dan tags: trunk)
13:00
Wrap more of the stmt API behind the JNI wrapper1 API. (check-in: 8fea23dc user: stephan tags: trunk)
12:09
Enhance the JSONB lookup routine with logic to apply edits. The new logic is currently unused and hence untested but does not create any regressions. (check-in: b1211027 user: drh tags: jsonb)
11:53
Bind the sqlite3_keyword_...() and sqlite3_compileoption_...() family of functions to the JNI wrapper1 API. (check-in: b2724241 user: stephan tags: trunk)
11:41
Update the tool/srctree-check.tcl script so that it verifies that autoconf has been run following edits to VERSION. (check-in: 52ab3deb user: drh tags: trunk)
11:35
Merge all the latest trunk fixes and enhancements into the jsonb branch. (check-in: b089bf46 user: drh tags: jsonb)
10:15
Update the version number to 3.45.0 to begin the next development cycle. (check-in: 15b618e9 user: drh tags: trunk)
2023-11-02
22:39
Mark a branch made always-true by the penultimate check-in with ALWAYS(). (check-in: 268b5984 user: drh tags: trunk)
22:11
In the previous check-in, use a u32 instead of an int, to make it easier to prove that the integer will never overflow. (check-in: 51002079 user: drh tags: trunk)
21:02
Fix a spurious "misuse of aggregate function" error that could occur when an aggregate function was used within the FROM clause of a sub-select of the select that owns the aggregate. e.g. "SELECT (SELECT x FROM (SELECT sum(t1.a) AS x)) FROM t1". Forum post c9970a37ed. (check-in: 4470f657 user: dan tags: trunk)
18:22
Add the "remove_diacritics" option to the fts5 trigram tokenizer. (check-in: 0d501724 user: dan tags: trunk)
18:10
Fix a problem with amalgamation builds on this branch. (Closed-Leaf check-in: 8f046c82 user: dan tags: fts5-trigram-diacritics)
18:08
Merge latest JNI pieces into trunk. (check-in: e8c97fae user: stephan tags: trunk)
17:31
Add the "remove_diacritics" option to the fts5 trigram tokenizer. (check-in: 83da8013 user: dan tags: fts5-trigram-diacritics)
13:10
One more tweak to tool/srctree-check.tcl so that a complete build can be accomplished from a read-only source tree. (check-in: cba9f060 user: drh tags: trunk)
12:05
Update the srctree-check.tcl script and child script so that they can be run on a read-only source tree and so that if any inconsistencies are found, the script returns a non-zero exit code and thus halts the build. (check-in: 58eb5440 user: drh tags: trunk)
11:14
Update the version number to 3.44.1 (check-in: 34f23c3d user: drh tags: branch-3.44)
11:08
CLI to compile with older MSVC compiler. (check-in: c8bf4f7a user: drh tags: branch-3.44)
11:04
CLI to compile with older MSVC compiler. (check-in: c89f75f8 user: larrybr tags: trunk)
2023-11-01
20:09
Remove some outdated JNI docs. (Closed-Leaf check-in: 52aef3d0 user: stephan tags: jni-post-3.44)
19:35
Update the windows build documentation to provide the exact command used to build the DLLs that appear on the download page. (check-in: 3524a891 user: drh tags: trunk)
14:33
Fix testrunner.tcl so that it accepts a relative path as an argument to the --zipvfs switch. (check-in: c1ed7ed0 user: dan tags: trunk)
14:12
Bring the jsonb branch up-to-date with version 3.44.0 changes. (check-in: a420a4f7 user: drh tags: jsonb)
12:50
Version 3.44.0 for the reuse-schema branch. (Leaf check-in: 30403ce2 user: drh tags: reuse-schema)
12:45
Version 3.44.0 for the bedrock branch. (Leaf check-in: 827cf67f user: drh tags: bedrock)
12:41
Version 3.44.0 for the wal2 branch (check-in: 470152fd user: drh tags: wal2)
12:38
Version 3.44.0 for the begin-concurrent branch. (check-in: 291d6b44 user: drh tags: begin-concurrent)
11:23
Version 3.44.0 (check-in: 17129ba1 user: drh tags: trunk, release, major-release, version-3.44.0)
2023-10-31
17:40
Fix harmless compiler warnings in test code. (check-in: d1895dd8 user: drh tags: trunk)
17:39
Fix a problem with SQLITE_ENABLE_FTS5 builds of the non-amalgamation testfixture.exe in Makefile.msc. (check-in: 544091cc user: dan tags: trunk)
2023-10-30
23:20
Remedy CLI non-UTF8 handling detection flaw noted in a forum post. (check-in: a4c7954b user: larrybr tags: trunk)
23:05
Merge the latest 3.44.0 release candidate changes into the reuse-schema branch. (check-in: 28f9a559 user: drh tags: reuse-schema)
23:04
Remedy CLI non-UTF8 handling detection flaw noted in a forum post. (Leaf check-in: 2666b80d user: larrybr tags: win-utf8-io-split)
22:57
Merge the latest 3.44.0 release candidate patches into the bedrock branch. (check-in: 956b03a4 user: drh tags: bedrock)
21:46
Merge the latest 3.44.0 changes into wal2 branch. (check-in: 4f65ae2d user: drh tags: wal2)
21:39
Merge the latest trunk changes into the begin-concurrent branch. (check-in: 9fa405eb user: drh tags: begin-concurrent)
20:35
Update the autoconf/Makefile.msc so that it aligns with Makefile.msc. (check-in: c4f724de user: drh tags: trunk)
19:50
Dodge a nuisance warning from MSVC in CLI use of Prepared Statement Scan Status. (Yes, C rules are fine.) (check-in: 166c96d9 user: larrybr tags: trunk)
19:03
Add a cast to i64 for an integer in an sqlite3OsWrite() offset calculation. The cast is not strictly necessary, but it helps human readers see that the code is correct. (check-in: 7564ff1b user: drh tags: trunk)
18:48
Fix another comment typo. No code changes. (check-in: 3203256c user: drh tags: trunk)
18:17
Add FTS5 to default Makefile.msc builds. And UNKNOWN_SQL_FUNCTION and STMT_SCANSTATUS to default Makefile.msc shell builds. (check-in: e41fde2f user: dan tags: trunk)
18:09
Make the new sqlite3_get_clientdata() and sqlite3_set_clientdata() interfaces available to run-time loaded extensions. (check-in: 8fc9aa0f user: drh tags: trunk)
18:07
Fix problems with previous commit on Makefile.msc. Also some win32-specific test failures in fts5misc.test. (Closed-Leaf check-in: 527f2237 user: dan tags: shell-build-changes)
17:56
Fix typo in a comment. No code changes. (check-in: 424ef955 user: drh tags: trunk)
17:13
Add FTS5 to default Makefile.msc builds. And UNKNOWN_SQL_FUNCTION and STMT_SCANSTATUS to default Makefile.msc shell builds. (check-in: bf99ebba user: dan tags: shell-build-changes)
16:38
Predicate Windows CLI UTF-8 console I/O on a runtime capability check rather than an OS version check. (check-in: 0058ea6a user: larrybr tags: trunk)
13:56
Predicate Windows CLI UTF-8 console I/O on a runtime capability check rather than an OS version check. (check-in: f89d062f user: larrybr tags: win-utf8-io-split)
12:09
With SQLITE_ENABLE_BLOCK_ATOMIC_WRITE enabled, if a transaction is committing and there is a new freelist page at the end of the database file which would cause the database file size to grow, ensure that page is written and the file size grows before the block-atomic-write commits. Fix for the problem identified by forum post 3bd8d497b2 (check-in: c9fdd680 user: drh tags: trunk)
2023-10-29
20:05
For Windows CLI, institute a version check to determine default MBCS or UTF-8 translation on console I/O. (Default to UTF-8 where known possible.) (check-in: ddc6ead6 user: larrybr tags: trunk)
19:55
Simplify code slightly. Improve comments on added code and its use. (check-in: 046c8429 user: larrybr tags: win-utf8-io-split)
16:26
Properly close a handle. Use a putatively effective runtime test for UTF-8 console I/O capability. (This makes the version test useful mainly for avoiding a warning that UTF-8 console I/O could not be setup.) (check-in: dc91eb91 user: larrybr tags: win-utf8-io-split)
00:24
Condition default UTF-8 console I/O for Windows builds on OS version 10 or more. This is to accomodate an IsValidCodePage() API which may happily report CP_UTF8 as a valid code page when the stock console cannot, in fact, do UTF-8 I/O. (check-in: 6b9b2a88 user: larrybr tags: win-utf8-io-split)
2023-10-28
16:19
Limit the range of integer unix timestamps in date4.test, since some systems (RaspberryPI) cannot deal with timestamp values that exceed pow(2,31). (check-in: 76529066 user: drh tags: trunk)
11:53
Update documentation for sqlite3_errmsg() to try to make it clear that if the schema of a database contains table names or similar with invalid UTF, then the error message generated by SQLite might also contain invalid UTF. No changes to code. (check-in: 33ba13c7 user: drh tags: trunk)
11:40
Since SQLite considers NaN to be like NULL and NULL sorts before any integer, make sure the sqlite3IntFloatCompare() routine reports that the integer argument is larger if the floating-point argument is NaN. (check-in: de1cf31a user: drh tags: trunk)
04:11
Remove the SQLITE_MAX_ALLOCATION_SIZE flag (set to 536mb) from the WASM build because it can unduly limit db exports via sqlite3_serialize(), as reported in forum post 75524f7342c1ba45. (Leaf check-in: 747b4e3a user: stephan tags: branch-3.43)
03:56
Merge trunk into jni-post-3.44 branch. (check-in: 9670eb24 user: stephan tags: jni-post-3.44)
03:54
Remove the SQLITE_MAX_ALLOCATION_SIZE flag (set to 536mb) from the WASM build because it can unduly limit db exports via sqlite3_serialize(), as reported in forum post 75524f7342c1ba45. It now defaults to whatever sqlite3.c uses, which is currently just shy of 2gb. (check-in: f6e11379 user: stephan tags: trunk)
2023-10-27
23:02
Add missing docs for the JS Worker1 export method, as pointed out in forum post 75524f7342. (check-in: a7b267bd user: stephan tags: jni-post-3.44)
21:44
Fix cosmetic flaw in SQLITE_TXN_* doc. (no code change) (check-in: 72d7c18f user: larrybr tags: trunk)
21:05
Export sqlite3_get_autocommit() to WASM and add tests for it. (check-in: 7cb6d3cd user: stephan tags: jni-post-3.44)
18:16
Disable two rtree test cases for Linux-i686. We do not have that platform available for testing. The test cases work on all other 64-bit and 32-bit platforms that we have at hand. So there is no way for us to debug this problem. Better to disable the test. forum post ffcbf789b5386573. (check-in: fed4d6e9 user: drh tags: trunk)
17:40
Add makefile targets for fuzzcheck-asan and fuzzcheck-ubsan. (check-in: 27fc1430 user: drh tags: trunk)
15:31
Fix to Makefile.in so that the "tool-zip" target can be run from outside the source tree. (check-in: cd118da9 user: dan tags: trunk)
13:59
Cleanup shell.c comments. Hide -utf8 option, as it is undocumented and accepted only for backward compatibility. No functional changes except for -help content. (check-in: 3a879955 user: larrybr tags: trunk)
10:49
Back out [2904fcbeebba9189], mostly. The page bitmap is needed even for a partial integrity_check in order to avoid an infinite loops while walking the database. (check-in: dd6e03b3 user: drh tags: trunk)
2023-10-26
18:41
In CLI for Windows builds, do MBCS/UTF-8 translation independently for input and output. (And cure an MSVC warning.) (check-in: 80f0b6f9 user: larrybr tags: trunk)
18:24
Handle utf8 mode restore better for redirected input or output. Move utf8 mode setup to before any invocation command processing. Sync w/trunk. (Leaf check-in: 59452e7c user: larrybr tags: win-utf8-io-split)
17:30
Enhance the "tool-zip" makefile target on Windows so that it uses more universally available commands to build the ZIP archive. Fix other minor issues with that makefile target at the same time. (check-in: d2f2f912 user: drh tags: trunk)
16:59
Further enhancements to make sure the correct returnning trigger is run when there are nested INSERT RETURNING statements. (check-in: d83405e8 user: drh tags: trunk)
16:05
Handle the case where a virtual table xBestIndex method called while coding a trigger fired by a top-level statement with a RETURNING clause prepares a statement that also contains a RETURNING clause. (check-in: ec6bffa3 user: dan tags: trunk)
15:12
Ready for merge, but could use testing on some dusty old Windows machines. (check-in: 20220615 user: larrybr tags: win-utf8-io-split)
12:59
Deal with the case of a reentrant INSERT on a virtual table where the outer INSERT has a RETURNING clause but the inner does not. dbsqlfuzz 3ac9a1e33f676254e02c0f297263b0a7aeb0c1a5. Fault injected by [a2449bcc2c71d0f4], first appearing in release 3.40.1. (check-in: 8aba78e4 user: drh tags: trunk)
2023-10-25
20:44
Cure a harmless MSVC warning. (no other changes) (check-in: 02234ef8 user: larrybr tags: win-utf8-io-split)
20:27
In CLI for Windows builds, do MBCS/UTF-8 translation independently for input and output. (WIP) (check-in: 47b13e66 user: larrybr tags: win-utf8-io-split)
20:08
Updates to the mktoolzip.tcl to work on win32. (Closed-Leaf check-in: 166b775b user: dan tags: win32-mktoolzip)
19:06
Fix harmless compiler warnings. (check-in: cc8efe04 user: drh tags: trunk)
18:53
Provide dummy parameter names in the prototype for the new xIntegrity method of the sqlite3_module object. (check-in: 131374d7 user: drh tags: trunk)
18:35
Fix minor problems with the "showwal" utility program. Add a missing header to the zipfile.c extension. (check-in: 7b3f866e user: drh tags: trunk)
17:26
Test module altermalloc3.test requires DQS_DDL to be turned on. (check-in: c4d02f4b user: drh tags: trunk)
15:30
Add an ALWAYS on branch that was made always-true by the DISTINCT ORDER BY fix. (check-in: c29ebcb0 user: drh tags: trunk)
14:54
When doing a DISTINCT aggregate that contains an ORDER BY, only the arguments to the aggregate need to be distinct, not the ORDER BY terms. (check-in: d2dbbdf7 user: drh tags: trunk)
12:58
Fix the amalgamation generator so that when it is reporting the Fossil version number in the header comment of the amalgamation, it does not elide the first hex digit of the version hash. (check-in: cc66f526 user: drh tags: trunk)
10:37
Enhance the new xIntegrity method of the sqlite3_module object with new parameters that provide the name of the table being checked and a flag to indicate a "quick_check". Based on feedback in forum post 965c0d02ea. (check-in: bc8afa3f user: drh tags: trunk)
2023-10-24
19:56
Implement check-in [477577120b897bf1] differently, so as not to disrupt non-standard build configuration. See forum post c11523ca2df50293. (check-in: 50448fe4 user: drh tags: trunk)
19:05
Fix a test case in fts3corrupt4.test by bypassing the fast-prng. (check-in: 540ce72b user: dan tags: bedrock)
17:45
Test cases for COLLATE and NULLS FIRST/LAST in the ORDER BY for an aggregate function. (check-in: 641f928f user: drh tags: trunk)
16:16
New #ifdefs to fix certain compile-time options. (check-in: 688c6279 user: drh tags: trunk)
16:06
Fix a problem with the fts5 highlight() and snippet() functions when used with tokenizers like "trigram" that output overlapping tokens. Forum post 63735293ec. (check-in: e952db86 user: dan tags: trunk)
15:53
Fix a problem with the fts5 highlight() and snippet() functions when used with tokenizers like "trigram" that output overlapping tokens. Forum post 63735293ec. (Closed-Leaf check-in: d570aa02 user: dan tags: fts5-trigram-snippet-fix)
15:11
Spelling improvements, in comments only (check-in: 9ee25eea user: larrybr tags: trunk)
15:07
Spelling improvements, in comments only (check-in: 65bcc583 user: larrybr tags: trunk)
11:06
Fix various harmless scan-build warnings. (check-in: 54be9af4 user: drh tags: trunk)
09:57
Fix a harmless compiler warning in the expert extension. (check-in: 0c4907dd user: drh tags: trunk)
2023-10-23
23:34
Fix a minor typo in the previous. (check-in: 9d388267 user: drh tags: trunk)
23:34
Add notes on how to build a statically linked version of sqlite3_analyzer.exe. (check-in: 99ce9939 user: drh tags: trunk)
19:51
Add the sqlite3res file to the Windows build of sqldiff.exe so that the resulting binary shows the SQLite icon. (check-in: c696a496 user: drh tags: trunk)
19:27
Merge the latest trunk enhancments into the reuse-schema branch. (check-in: 52262ac9 user: drh tags: reuse-schema)
16:08
Merge latest changes from wal2 into this branch. (check-in: c9c9bc09 user: dan tags: bedrock)
16:00
Merge latest trunk changes into this branch. (check-in: 3a6479d3 user: dan tags: wal2)
15:48
Merge latest trunk changes into this branch. (check-in: c5ef898a user: dan tags: begin-concurrent)
15:30
Avoid attempting to delete a file while it is open in test script sessionalter.test. (check-in: f20b4a96 user: dan tags: trunk)
15:24
Revert an earlier change that considered passing a NULL callback to sqlite3_preupdate_hook() to be a misuse. This is required to clear the preupdate hook altogether. (check-in: 1bf6f0f3 user: dan tags: trunk)
15:23
New test cases for PRAGMA integrity_check against FTS4 and FTS5 tables. (check-in: 3950d20c user: drh tags: trunk)
14:24
Fix mutex1.test to take into account that the prng mutex is not (as of [c84e4483cb4]) taken when writing a header to an in-memory journal. (check-in: c9e37417 user: dan tags: trunk)
13:46
Improved error messages for the xIntegrity method in FTS3/4 and FTS5. (check-in: df69abc0 user: drh tags: trunk)
12:16
Fix sqlite3ExprDup() alignment assertions so that they work on 32-bit platforms. (check-in: 143f95ef user: drh tags: trunk)
11:41
Temporarily disable the ext/expert/expert1-6.0 test, which does not work on my configurations. (check-in: a41b903d user: drh tags: trunk)
11:34
Add an SQLITE_OMIT_VIRTUALTABLE block around the new vtab code in "PRAGMA integrity_check". (check-in: ab99eb2b user: dan tags: trunk)
11:18
Add missing test file fts3fault3.test. Should have been part of [7f41d700]. (check-in: 92e64ab6 user: dan tags: trunk)
02:08
Merge fixes for expert handling of UDFs and other UD-whatevers. (check-in: b5d7d07d user: larrybr tags: trunk)
02:06
Add missing JNI sqlite3_result_subtype() binding. (check-in: ac920b53 user: stephan tags: jni-post-3.44)
02:01
Fix the shell1.test test so to align with the new behavior imposed by [bce807cd48763273] - that backslash escapes only work without quoted arguments in dot-commands of the CLI. (check-in: 0db82b42 user: drh tags: trunk)
01:55
Clear some picky warnings, sync w/trunk. (Closed-Leaf check-in: ee584259 user: larrybr tags: expert-enhancement)
01:34
Add many more high-level wrappers to the JNI wrapper1 API. Correct the JNI bindings of sqlite3_strglob/strlike() to compare as the core lib does if their glob argument is NULL and the other is not. (check-in: 55c4b1dc user: stephan tags: jni-post-3.44)
2023-10-22
23:44
Fix [f5c01676fd281e93] so that it always preserves 8-byte alignment for Expr objects. Add new assert() statement to verify this. (check-in: 678a9728 user: drh tags: trunk)
23:36
Add high-level window function wrapper to the JNI wrapper1 interface. (check-in: a27e7471 user: stephan tags: jni-post-3.44)
17:27
Do not do backslash escape processing on any unquoted strings in dot-commands in the CLI - on Windows or on posix-like systems either one. This brings the processing into alignment with the documentation, allows backslash-delimited filenames on Windows (as long as they are unquoted), and causes the CLI to work the same with regard to backslash escapes on both Windows and posix. (check-in: bce807cd user: drh tags: trunk)
14:25
JNI: flesh out and simplify the APIs for binding and fetching arbitrary Java objects. (check-in: 89fecf1d user: stephan tags: jni-post-3.44)
13:54
JNI: add column-get bindings to the wrapper1 Stmt class and extend the AggregateFunction tests to ensure that the aggregate context is honored. (check-in: 60a0e82d user: stephan tags: jni-post-3.44)
13:09
Add API_ARMOR to sqlite3_clear_bindings(). (check-in: f3fb4d34 user: stephan tags: jni-post-3.44)
12:43
Add JNI wrapper1.SqliteStmt.bindXyz() APIs. (check-in: 54fce9bf user: stephan tags: jni-post-3.44)
12:33
JNI: improve UB protections in sqlite3_bind_blob/text/text16(). (check-in: 5c838321 user: stephan tags: trunk)
11:11
Add missing ScalarFunction.java to JNI build. (check-in: b8258103 user: stephan tags: trunk)
2023-10-21
22:31
In the CLI, do not translate unquoted backslash escapes on dot-commands as that can damage filename arguments. (check-in: 4a0e2c6e user: drh tags: trunk)
20:34
Remove a branch that cannot affect the outcome from FkNoAction processing in fkey.c. Replace it with an assert(). (check-in: 023a9dbe user: drh tags: trunk)
20:03
Replace the patch at [5cb61c6788d7c017] with a better way to avoid failing PRAGMA integrity_check if a module implementation is not loaded, as the use of suppressErr can lead to problems. (check-in: be5737ee user: drh tags: trunk)
19:51
Check-in contains stray edit. (Closed-Leaf check-in: cbea52e9 user: drh tags: mistake)
18:12
Fix a problem allowing a COMMIT following an OOM to cause fts3/4 corruption. (check-in: 7f41d700 user: dan tags: trunk)
16:33
Add the SQLITE_TESTCTRL_FK_NO_ACTION test control. Make it available in the CLI. Fix a minor problems with SQLITE_CHANGESETAPPLY_FKNOACTION in sessions. (check-in: 91b64c6a user: drh tags: trunk)
16:25
Extra comment on the implementation of SQLITE_TESTCTRL_FK_NO_ACTION, warning about the need to reset the schema in order for the setting change to take full effect. (Closed-Leaf check-in: a50a333a user: drh tags: fknoaction)
15:21
Add missing "finish_test" to sessionnoact.test. (check-in: 9a1d37f5 user: dan tags: fknoaction)
15:04
Fix a problem with SQLITE_CHANGESETAPPLY_FKNOACTION and the foreign-key-trigger-cache. (check-in: 95304ec6 user: dan tags: fknoaction)
12:54
Add SQLITE_TESTCTRL_FK_NO_ACTION. (check-in: 563cf5f7 user: drh tags: fknoaction)
11:43
Adjust an EXPLAIN QUERY PLAN output in scanstatus2.test to account for a different loop order taken due to the removal of the view-scan optimization. (check-in: 9deb8b69 user: drh tags: trunk)
11:34
Compress the content of the status line in testrunning.tcl so that all the same status information appears but with less punctuation and with "zero" values omitted, so that the status line will fit comfortably on an 80-column terminal window. (check-in: 96635131 user: drh tags: trunk)
11:13
Create the new string_agg(X,Y) aggregate function which is an alias for the two-argument group_concat(X,Y) function, for compatibility with SQL-Server and PostgreSQL. (check-in: a3b3df8a user: drh tags: trunk)
11:06
Avoid an unnecessary malloc() for the page usage bitmap when running a partial integrity_check. (check-in: 2904fcbe user: drh tags: trunk)
11:00
Fix a test case broken by the previous check-in. (Leaf check-in: 1e61864c user: drh tags: string_agg)
2023-10-20
20:19
Add string_agg(X,Y) as an alias for group_concat(X,Y), for compatibility with SQLServer and PG. (check-in: b91c19bf user: drh tags: string_agg)
19:59
Fix a problem allowing a COMMIT following an OOM to cause fts5 corruption. (check-in: fba3129d user: dan tags: trunk)
19:06
Fix PRAGMA integrity_check so that it does not raise an error if the schema contains a CREATE VIRTUAL TABLE that does not have its module loaded. (check-in: 5cb61c67 user: drh tags: trunk)
18:09
Omit some redundant calls to strlen() used to find the size of Expr.u.zToken in sqliteExprDup(). This inefficiency was seen while working on the previous check-in, and I thought it best to fix it while it was fresh in mind. (check-in: b7a84eff user: drh tags: trunk)
17:15
Improvements to the sqlite3ExprDup() logic for faster performance and better run-time error detection. This check-in fixes the 5x oversize memory allocation bug from [f371e4c0f8ea73ae] as well as all other known issues that result from handing the ORDER BY clause of an aggregate function off of the pLeft pointer of the Expr object. (check-in: f5c01676 user: drh tags: trunk)
17:06
Add the SQLITE_CHANGESETAPPLY_FKNOACTION flag to sqlite3session.h, for passing to sqlite3changeset_apply_v2() to cause all foreign key constraints to behave as if they were declared NO ACTION. (check-in: fc9f82ea user: dan tags: trunk)
15:47
Simplifications and optimizations to the Expr object duplication logic. The 5x multiplier crutch from [f371e4c0f8ea73ae] is still present. More fixes are still needed. (check-in: 56142a78 user: drh tags: trunk)
14:05
Omit an unused constant from sessionfuzz.c to prevent a compiler warning. (check-in: a0cf7e24 user: drh tags: trunk)
12:23
Correct the opfs-sahpool VFS's xGetLastError() method to return the previous error code, not 0, on success. (check-in: 95a1dde6 user: stephan tags: trunk)
11:44
Merge trunk into the wasm-xGetLastError branch. (Leaf check-in: 48a9bd64 user: stephan tags: wasm-xGetLastError)
10:18
Use sqlite3ParserAddCleanup() instead of calling sqlite3ExprListDelete() directly when disposing of an unused ORDER BY in an aggregate function, to avoid disrupting ALTER TABLE data structures. (check-in: d083e420 user: drh tags: trunk)
2023-10-19
20:46
Merge recent trunk enhancements into the jsonb branch. (check-in: f47a8d0a user: drh tags: jsonb)
20:17
Increase the size of some variables associated with the PMA sorter in order to avoid any possibility of a signed integer overflow. (check-in: 72597cee user: drh tags: branch-3.43)
20:06
Remove a faulty assert() that was added just a few check-ins ago by [8b6fffb552c30f9c]. (check-in: 18e7c826 user: drh tags: trunk)
19:57
For TK_ORDER expression nodes to always be full-size. (check-in: a5c73b46 user: drh tags: trunk)
19:19
Fix an adverse interaction between the new aggregate ORDER BY logic and the expression compressor. Update 2023-10-20: Memory allocations were multiplied by a factor of 5 on line 1575 of expr.c. This was a debugging change that I neglected to remove prior to checking it. That change masks deeper problems that will be solved in later check-ins. (check-in: f371e4c0 user: drh tags: trunk)
19:08
In the TreeView logic (used for debugging only) do not show unnecessary fields of the Window object when a function has a FILTER. (check-in: d2c6b82c user: drh tags: trunk)
18:23
Fix an fts3 problem caused by reducing the page size using the undocumented "nodesize" option, then running an incremental-merge. (check-in: 2875dcb1 user: dan tags: trunk)
18:07
Simplify the Expr compression logic slightly by adding the new EP_FullSize property to expressions that are exceptions to the rule and should not be compressed. (check-in: d5ae82ec user: drh tags: trunk)
13:35
Simplification to sqlite3GetVarint32() to avoid confusing gcov. (check-in: 89862c51 user: drh tags: trunk)
13:00
Fix an error in a debugging routine used inside of testcase(). Does not appear in production. Problem discovered by scan-build. (check-in: c6c9d7ed user: drh tags: trunk)
12:36
New assert() statements to help verify correctness of the ORDER BY aggregate code. (check-in: 8b6fffb5 user: drh tags: trunk)
12:12
Fix the sqlite3ReferencesSrcList() routine so that it recognizes columns in the ORDER BY clause of an aggregate. Fixes a problem with [634286828dad873d] discoverd by dbsqlfuzz. (check-in: 3d26f1aa user: drh tags: trunk)
01:26
Add support for ORDER BY on the argument list of aggregate functions. (check-in: 63428682 user: drh tags: trunk)
01:09
Merge the latest changes from trunk. (Closed-Leaf check-in: d18bc400 user: drh tags: agg-orderby)
00:25
Fix a false-positive in run-time error checking. (check-in: cd63eec0 user: drh tags: trunk)
2023-10-18
23:48
Changes for test coverage. (check-in: ddfa09c6 user: drh tags: agg-orderby)
22:53
Test case for alter column that is used in the ORDER BY of an aggregate. (check-in: 648ddb3a user: drh tags: agg-orderby)
22:27
Deal with an OOM condition while processing aggregate ORDER BYs. (check-in: b6d44427 user: drh tags: agg-orderby)
22:03
Make sure all terms of the ORDER BY within an aggregate go through aggregate analysis. Do not attach an aggregate ORDER BY to a window function. (check-in: 16f38055 user: drh tags: agg-orderby)
19:44
Basic test cases. (check-in: 6cccf86c user: drh tags: agg-orderby)
19:07
Fix one minor error in order to get all legacy tests to pass. (check-in: 5a885139 user: drh tags: agg-orderby)
18:11
ORDER BY on aggregates seem to work, at least for simple smoke tests. Lots more testing is needed though. Surely there are many bugs. (check-in: 64c12a83 user: drh tags: agg-orderby)
13:58
Basic error checking. Resolve symbols in the aggregate ORDER BY expressions. (check-in: c83a53a5 user: drh tags: agg-orderby)
13:18
Enhance the parser so that it can accept an ORDER BY clause on a function invocation. For this incremental check-in, the ORDER BY clause is currently ignored. (check-in: 3a98ff24 user: drh tags: agg-orderby)
2023-10-17
23:35
JS: replace one errant reference to 'self' with 'globalThis' and remove a separate dead-code 'self' reference. (check-in: da1a4793 user: stephan tags: trunk)
19:33
Fix a harmless compiler warning about variant types for a pointer function. (check-in: 37ff0d8e user: drh tags: trunk)
18:59
Make a new branch in the SqlExec opcode reachable by tests. (check-in: 023ad470 user: drh tags: trunk)
18:28
Omit an unreachable branch when SQLITE_ENABLE_API_ARMOR is not defined. (check-in: 5f8b807b user: drh tags: trunk)
17:53
Changes to sqlite3IntFloatCompare() in an attempt to better measure branch coverage in the face of aggressive compiler optimization. (check-in: 5781d043 user: drh tags: trunk)
13:47
Fix a JSON bug introduced in 3.43.0. The problem occurs when doing a JSON_EXTRACT() on an array element that was added by JSON_SET() without first reparsing. (check-in: 3161c2cd user: drh tags: branch-3.43)
13:41
Fix a JSON bug introduced by the optimization of [df099ad713011b67] and first appearing in 3.43.0. The problem occurs when doing a JSON_EXTRACT() on an array element that was added by JSON_SET() without first reparsing. Reported by forum post fc0e3f1e2a. (check-in: e5099c54 user: drh tags: trunk)
11:57
Enhance the documentation of sqlite3_deserialize() to make it clear that the input database may not be in WAL mode. Forum post a7e272cee9ac469f (check-in: e7547899 user: drh tags: trunk)
10:47
When an I/O or similar error occurs during a transaction with journal_mode=MEMORY, attempt to rollback before closing the journal, as all rollback information is forgotten when a memory rollback journal is closed. (check-in: 1d67f75d user: drh tags: trunk)
02:15
Harden API_ARMOR checks for sqlite3_stmt_scanstatus_v2(). (check-in: d3f38e81 user: stephan tags: trunk)
2023-10-16
16:04
JNI: add aggregate function support to the wrapper1 API. (check-in: 15b28b34 user: stephan tags: trunk)
14:31
JNI: add scalar UDF support to the wrapper1 API. (check-in: a8505357 user: stephan tags: trunk)
13:04
JNI: initial draft (untested - requires more infrastructure first) of a UDF argument/result-handling interface which completely hides the C-style API from the client. (check-in: 43b10a5c user: stephan tags: trunk)
10:38
JNI: cleanups in Tester2 and update the jar makefile target to account for [9fcdf96adca2]. (check-in: abc82bf4 user: stephan tags: trunk)
10:27
JNI: move the C-style API parts into the capi subpackage and the higher-level wrapper into (tentatively) wrapper1, so that CApi.java can support multiple independent higher-level wrappers without name collisions, and CApi can be made public but have the option to be elided from wrapper-level javadocs for wrappers which do not wish to expose it. (check-in: 9fcdf96a user: stephan tags: trunk)
08:10
JNI: after calling a Java-side UDF, zero-out the pointer of the Java-side sqlite3_context and sqlite3_value array entries to avoid misbehavior if a client makes the mistake of holding a reference to one of those objects. (check-in: 9fc3104f user: stephan tags: trunk)
08:05
JNI: do not expose SQLITE_OPEN_... flags which are specific to VFSes. (check-in: 2b4e53d8 user: stephan tags: trunk)
2023-10-15
13:36
Change 3 instance of #if SQLITE_ENABLE_API_ARMOR to #ifdef for consistency with how it is normally used. (check-in: dd766eeb user: stephan tags: trunk)
13:32
JNI: enable all optional components in the default build and fix a test broken by an option toggle. (check-in: 5586a9df user: stephan tags: trunk)
13:25
Correct non-void return from sqlite3_preupdate_hook() when API_ARMOR is enabled. Broken by [6cb77503484e]. (check-in: 40f5906f user: stephan tags: trunk)
12:17
Merge trunk into the wasm-xGetLastError branch. (check-in: 0239e374 user: stephan tags: wasm-xGetLastError)
12:11
Add coverage of more functions to SQLITE_ENABLE_API_ARMOR builds. (check-in: 6cb77503 user: stephan tags: trunk)
2023-10-14
20:44
JNI: extend [baf220e78a46246c47] to include macro-generated sqlite3_value_...() bindings. (Closed-Leaf check-in: ad34b254 user: stephan tags: api-armor-audit)
20:34
JNI: make the sqlite3_value_...() family of bindings resistent to NULL arguments. (check-in: baf220e7 user: stephan tags: api-armor-audit)
20:24
Do not allow an ALTER TABLE ADD COLUMN on a STRICT table if the added column contains a DEFAULT clause that would violate the type of the added column. (check-in: 75b07586 user: drh tags: trunk)
20:01
Add API_ARMOR support to the scanstatus family of functions. (check-in: 2f3101f0 user: stephan tags: api-armor-audit)
17:34
Merge the version-3.43.2 changes into the begin-concurrent-3.43 branch. (Leaf check-in: f3fb30af user: drh tags: begin-concurrent-3.43)
17:14
The rtreecheck() SQL function should not invoke BEGIN or COMMIT as this causes issues for statement transactions. (check-in: b7b2e30b user: drh tags: trunk)
16:57
JNI: add a missing result code check to sqlite3_bind_value(stmt, null). (check-in: f1a357f4 user: stephan tags: api-armor-audit)
16:56
JNI: add missing sqlite3_bind_value() and minor memory-safety-related cleanups. (check-in: 39000317 user: stephan tags: api-armor-audit)
16:29
Add API_ARMOR support to the sqlite3_result_...() family of functions and sqlite3_bind_zeroblob64(). (check-in: afabe3e3 user: stephan tags: api-armor-audit)
14:53
More API_ARMOR additions. (check-in: 78ebf838 user: stephan tags: api-armor-audit)
13:24
Add column name to API_ARMOR check in sqlite3_blob_open() to avoid a null-pointer deref. (check-in: 0114a662 user: stephan tags: api-armor-audit)
12:45
Revert [f6cd88e6b234] - the NULL callback case is perfectly legal. (check-in: 718ab676 user: stephan tags: api-armor-audit)
12:40
Bring JNI-side sqlite3_last_insert_rowid() and sqlite3_table_column_metadata() in line with the core's NULL handling. (check-in: c2afc1c2 user: stephan tags: api-armor-audit)
12:20
Extend API_ARMOR checks on sqlite3_commit/rollback_hook() to include a check for the callback pointer. (check-in: f6cd88e6 user: stephan tags: api-armor-audit)
12:19
Add missing JNI bindings for sqlite3_db_readonly() and sqlite3_db_name(). Code-adjacent tweaks for the API_ARMOR audit. (check-in: e5eace74 user: stephan tags: api-armor-audit)
10:54
Bug fix in sqlite3_analyzer: for databases larger than 1GiB, take into account the lock-byte page when calculating the number of freelist pages. (check-in: 26a909cd user: drh tags: trunk)
2023-10-13
22:19
Earlier detection of a host of errors in CREATE TABLE, such the CREATE TABLE statement itself fails, rather than generating an error on the first attempted use of the created table. (check-in: 348fa7aa user: drh tags: trunk)
19:41
Apply the correct affinity to DEFAULT values that are TRUE or FALSE. (check-in: 4958db70 user: drh tags: trunk)
18:29
Do not allow triggers on shadow tables under defensive mode. (check-in: 44b932ff user: drh tags: trunk)
15:59
Fix an fts5 problem caused by a 'rebuild' followed by a DELETE in secure-delete mode. (check-in: 18be505c user: dan tags: trunk)
13:49
Immediately fail a CREATE TABLE statement that attempts to create a table that has a generated column loop. Legacy allows the table to be created but the table would not be usable for anything. (check-in: 3237bf96 user: drh tags: trunk)
12:57
Actually prevent PRAGMA writable_schema=ON from being set in defensive mode, rather than just preventing it from functioning. (check-in: 2b574d9e user: drh tags: trunk)
12:48
Round one of an audit for SQLITE_ENABLE_API_ARMOR for functions exposed by JNI and those functions missing armor, as reported in several forum posts. (check-in: 8c25c4b1 user: stephan tags: api-armor-audit)
01:39
Avoid potential overflow in hex(). See forum post 7ac0c9c5ea. (check-in: 2e968114 user: larrybr tags: trunk)
2023-10-12
20:51
Make sure virtual tables have been connected before trying to invoke the xIntegrity method during PRAGMA integrity_check. (check-in: 4a4eccb6 user: drh tags: trunk)
20:03
Fix a problem with an fts5 secure-delete on a rowid/term pair that follows a legacy delete of the same pair. (Leaf check-in: f5913e76 user: dan tags: branch-3.42)
19:46
Fix a problem with an fts5 secure-delete on a rowid/term pair that follows a legacy delete of the same pair. (check-in: 579aea0c user: dan tags: trunk)
18:46
Enable SQLITE_VTAB_INNOCUOUS for FTS3, FTS5, and RTREE. (check-in: f34c533b user: drh tags: trunk)
18:09
Add test case for [29937081]. (check-in: d3b983ed user: dan tags: trunk)
17:47
Merge fixes from trunk into the jsonb branch. (check-in: a760bd7b user: drh tags: jsonb)
17:41
Make sure the journal file is closed when transitioning into MEMORY journal mode, to avoid an assertion fault in the new sqlite3_randomness() avoidance code added by [c84e4483cb44f827]. (check-in: 29937081 user: drh tags: trunk)
15:12
CLI to check for rare prepare failures. See forum post 5be6395182. (check-in: 286d1e80 user: larrybr tags: trunk)
2023-10-11
21:08
Add the tokendata=1 option to ignore trailing token-data when querying an fts5 table. (check-in: 12293518 user: dan tags: fts5-token-data)
20:37
Unconditionally force use of SQLITE_ENABLE_API_ARMOR in the WASM and JNI builds. Their corresponding test suites still work. (check-in: c11394b5 user: stephan tags: trunk)
17:34
Fix the use of an uninitialized value that occurs when doing a json_insert() of a string value that contains embedded U+0000 characters. (check-in: 7dcd9cfe user: drh tags: branch-3.43)
17:24
Fix the use of an uninitialized value that occurs when doing a json_insert() of a string value that contains embedded U+0000 characters. (check-in: d3c0cbb9 user: drh tags: trunk)
17:21
Fix the use of an uninitialized value that occurs when doing a json_insert() of a string value that contains embedded U+0000 characters. (check-in: fc5ee9e5 user: drh tags: jsonb)
13:52
Add (prepare, step, reset, finalize) parts of the JNI level-2 stmt wrapper and associated tests. (check-in: a7082f18 user: stephan tags: trunk)
13:34
Simplification to sqlite3ApiExit(). Generates identical machine code, but easier for humans to read. (check-in: 793bbfa5 user: drh tags: trunk)
13:19
Fix a missing zero-terminator on a string when processing JSON aggregates into JSONB. (check-in: fb81d570 user: drh tags: jsonb)
12:44
Fix an issue that can arise when processing corrupt JSONB. (check-in: e50045c2 user: drh tags: jsonb)
12:21
Improved robustness against corrupt JSONB. (check-in: 0fbda92b user: drh tags: jsonb)
11:42
Fix an assertion fault in json_patch() that can occur if the patch JSON is malformed JSONB. Report the malformed JSONB instead. (check-in: a72d5464 user: drh tags: jsonb)
2023-10-10
23:02
Improved robustness in the decoding of JSON5 text escape sequences found in malformed JSONB. (check-in: 35e0108a user: drh tags: jsonb)
18:55
Fix an off-by-one error in the changes from the previous check-in on the jsonb branch. (check-in: 216191b1 user: drh tags: jsonb)
18:42
Improved robustness when translating corrupt JSONB into JSON text. (check-in: 0caa320d user: drh tags: jsonb)
18:32
Fix a potential buffer overrun due to corrupt JSONB. (check-in: 5cbb861f user: drh tags: jsonb)
18:04
Fix bugs uncovered by the fuzzer. (check-in: c96eb7fb user: drh tags: jsonb)
17:34
Merge the latest trunk enhancements into the jsonb branch. (check-in: f93f16c9 user: drh tags: jsonb)
15:34
Fix a bug in the mkautoconfamal.sh script so that the "snapshot-tarball" and "amalgamation-tarball" makefile targets work again when run from outside of the source tree. (check-in: 3a79cf25 user: drh tags: branch-3.43)
15:33
Fix a bug in the mkautoconfamal.sh script, introduced by check-in [3308fdda4b81c110] so that the "snapshot-tarball" and "amalgamation-tarball" makefile targets work again when run from outside of the source tree. (check-in: 65ccf5fe user: drh tags: trunk)
13:55
Merge the 3.43.2 release changed into the reuse-schema-3.43 branch. (Leaf check-in: 5fefa147 user: drh tags: reuse-schema-3.43)
12:16
Start adding tests for the second JNI layer. (check-in: 0177f4df user: stephan tags: trunk)
12:14
Version 3.43.2 (check-in: 4310099c user: drh tags: release, branch-3.43, version-3.43.2)
2023-10-09
22:50
Use snprintf() in place of sprintf() in a debugging function in the CLI. (check-in: 88a11890 user: drh tags: branch-3.43)
22:45
Use snprintf() in place of sprintf() in a debugging function in the CLI. (check-in: 5e5e4d2b user: drh tags: trunk)
18:33
Systematize the names of some of the translation function in the JSON implementation. (check-in: db44bd1d user: drh tags: jsonb)
17:54
Avoid calling sqlite3_randomness and taking the PRNG mutex when writing a journal header in "journal_mode=memory" mode. (check-in: c84e4483 user: dan tags: trunk)
14:59
Add a TCL script that does various verification checks on the source tree to make sure that generated code has been updated correctly. (check-in: dc8681c4 user: drh tags: branch-3.43)
14:56
Add a TCL script that does various verification checks on the source tree to make sure that generated code has been updated correctly. (check-in: 1f1a358a user: drh tags: trunk)
14:47
Fix a compiler warning caused by the previous check-in. (check-in: 7e8768bf user: drh tags: trunk)
14:12
Change the TEA version number to 3.43.2 also. (check-in: 170ab8d1 user: drh tags: branch-3.43)
14:10
Update the version number to 3.43.2. (check-in: 0bd1199b user: drh tags: branch-3.43)
14:05
Turn on SEH by default when building using MSVC. (check-in: f57e8275 user: drh tags: trunk)
12:57
Merge the latest trunk fixes and enhancements into the jsonb branch, and especially the JSON cache spill UAF fix. (check-in: 9422c24f user: drh tags: jsonb)
12:51
Fix a potential UAF caused by JSON parser cache spill. (check-in: 5b09212a user: drh tags: branch-3.43)
12:46
Fix a potential UAF caused by JSON parser cache spill. Forum post b25edc1d46. (check-in: a163fecc user: drh tags: trunk)
12:45
Flesh out the error state captured by SqliteException.java. Doc additions. (check-in: 5c5397ff user: stephan tags: trunk)
12:39
Fix harmless compiler warning in the test module for sessions. (check-in: 3d5ec993 user: drh tags: trunk)
12:10
In the VDBE trace output (available under -DSQLITE_DEBUG only), identify register values that hold a refernce-counted string. (Closed-Leaf check-in: 53d5c504 user: drh tags: mistake)
11:46
Add JNI Sqlite and SqliteException classes. Add Tester2.java as the main test app for the high-level API. (check-in: 6acf52be user: stephan tags: trunk)
10:44
Minor JNI doc and public/private cleanups. (check-in: c49d36ec user: stephan tags: trunk)
10:30
Rename SQLite3Jni to CApi to (A) reduce name prefix collisions with incoming classes and (B) align with its counterpart in the JS build. Remove the Canonical annotation because (A) the new code separation will inherently make that distinction and (B) the line between truly canonical and semi-canonical (e.g. differing in signature overloads) is blurry enough that consistent use of that annocation is becoming an unnecessary burden. (check-in: ca216b44 user: stephan tags: trunk)
2023-10-07
23:35
Remove some unnecessary code. Report errors for invalid JSONB input on an extract. (check-in: cbea16c2 user: drh tags: jsonb)
19:46
The return from sqlite3_value_blob() in jsonFuncArgMightBeBinary() might be a NULL pointer. Check for that case. (check-in: 7b52b266 user: drh tags: jsonb)
19:40
Improved detection of malformed JSONB when parsing it into a JsonNode array. (check-in: ed99a788 user: drh tags: jsonb)
19:05
Fix the jsonbChangePayloadSize() routine so that it shifts the payload in order to always render the most compact encoding of the payload size. This is necessary as sometimes (as discovered by dbsqlfuzz) the payload size can grow significantly due to json_insert() or json_replace(). (check-in: 8d6d04ca user: drh tags: jsonb)
17:50
Improvements to error messages returned when the ->> operator fails. (check-in: 2f3388f1 user: drh tags: jsonb)
17:29
Fix a problem with sqlite3changegroup_schema() and patchsets. (check-in: c4ab4200 user: dan tags: trunk)
16:32
Add the sqlite3changegroup_schema() API. To allow changegroup objects to upgrade the schema of a changeset/patchset under some circumstances. (check-in: 03f9e50b user: dan tags: trunk)
16:07
Fix a problem with the changes on this branch and tables that use an implicit primary key. (Closed-Leaf check-in: 1f9d1023 user: dan tags: session-alter)
11:37
Merge the memory leak fix from trunk. (check-in: 358de1b0 user: drh tags: jsonb)
11:36
Improved error messages from search on JSONB. (check-in: 96cfdc31 user: drh tags: jsonb)
09:13
Report unknown JSONB element type when parsing JSONB into JsonNode. (check-in: 1f4d3268 user: drh tags: jsonb)
08:15
Add a test case to prevent a regression of the leak fixed in the previous trunk check-in. (check-in: f99ff655 user: drh tags: trunk)
08:11
Fix a resource leak: sqlite3_blob_reopen() was failing to invoke the xDel() distructor on a register when it sets that register to the new rowid. (check-in: 83846af5 user: drh tags: branch-3.43)
08:00
Fix a resource leak: sqlite3_blob_reopen() was failing to invoke the xDel() distructor on a register when it sets that register to the new rowid. This was never a problem prior to the large-column cache of [771fe35074b50b8d] as that destructor was always a no-op. dbsqlfuzz cd96368deaece480fb94d42427dde053737a650e. (check-in: 545edd5e user: drh tags: trunk)
2023-10-06
23:02
Correct handling of "raw" strings in JSON. This requires three test-case changes in TH3 to add double-quotes to the path outputs from json_tree(). The new behavior is correct, I believe. (check-in: ab2bf3e3 user: drh tags: jsonb)
22:16
Improved error detection for JSONB inputs. (check-in: 6945e11a user: drh tags: jsonb)
20:39
Add missing source code comments and fix other issues with the new code on this branch. (check-in: df39fbe9 user: dan tags: session-alter)
19:46
Update this branch with latest changes from the trunk. (check-in: 897e926a user: dan tags: session-alter)
19:01
Add tests for the sqlite3changegroup_schema() API. (check-in: 5dab481c user: dan tags: session-alter)
18:21
Incremental improvements to the JSONB logic. (check-in: fe326829 user: drh tags: jsonb)
15:35
Fixes to rendering JSON5 extensions encoded as JSONB. (check-in: 5a17e447 user: drh tags: jsonb)
14:59
Fix compiler warnings. (check-in: 5227add3 user: drh tags: jsonb)
14:52
Improvements to error handling. (check-in: b41dd237 user: drh tags: jsonb)
13:05
Merge compiler warning fixes from trunk into the jsonb branch. (check-in: 6409d307 user: drh tags: jsonb)
12:55
Remove an unused parameter from the recomputeColumnsNotIndexed() routine in order to squash a harmless compiler warning. (check-in: 9bf4bfd6 user: drh tags: trunk)
12:51
Ensure that all fields of static sqlite3_module objects are explicitly initialized, in order to hush-up nuisance compiler warnings. (check-in: f3b3d712 user: drh tags: trunk)
12:22
Remove an unused static variable from shell.c.in in order to silence a harmless compiler warning. (check-in: 47757712 user: drh tags: trunk)
12:15
Increase the size of some variables associated with the PMA sorter in order to avoid any possibility of a signed integer overflow. Chromium fuzzer issue 1489025. (check-in: dc3be3af user: drh tags: trunk)
00:06
Improvements to coping with malformed JSONB. (check-in: 563cde40 user: drh tags: jsonb)
2023-10-05
23:05
Better error detection when doing a lookup on a JSONB. (check-in: 6e8e0eed user: drh tags: jsonb)
22:52
Improvements to comments. No changes to code. (check-in: ac74d787 user: drh tags: jsonb)
20:17
Turn an unreachable branch into an assert(). (check-in: 0f751991 user: drh tags: jsonb)
19:09
Add the sqlite3changegroup_schema() API. To allow changegroups to handle differences in schema created by ALTER TABLE ADD COLUMN. (check-in: 309deee2 user: dan tags: session-alter)
18:33
Fix the parsing of non-standard "Infinity" and "NaN" values from text into JSONB. (check-in: df1fbbeb user: drh tags: jsonb)
18:09
Change the json_valid(X) routine to return true whenever X is a blob that could plausibly be a valid JSONB. (check-in: 425f0b85 user: drh tags: jsonb)
17:52
Fix the text-to-JSONB parser so that it handles some JSON5 floating point literals correctly. (check-in: 564edb3b user: drh tags: jsonb)
16:33
Slightly stricter testing for when a BLOB is valid JSONB: If the element is a null, true, or false, its payload size must be zero. (check-in: 487781be user: drh tags: jsonb)
15:05
Fix a memory leak following a syntax error in jsonb(). (check-in: bf4b36ed user: drh tags: jsonb)
15:02
Allow the PG-style syntax for the PATH operand on the right-hand side of the ->> and -> operators. (check-in: bae5071b user: drh tags: jsonb)
11:22
Merge trunk enhancements into the jsonb branch. (check-in: be5907b6 user: drh tags: jsonb)
11:09
Improved detection of corrupt databases in balance_nonroot(). dbsqlfuzz d1cf013c50a620b68c2a5bd240d29afd65e5f58e. (check-in: f4aa1bfc user: drh tags: branch-3.43)
11:06
Improved detection of corrupt databases in balance_nonroot(). dbsqlfuzz d1cf013c50a620b68c2a5bd240d29afd65e5f58e. (check-in: a2464bbb user: drh tags: trunk)
11:04
Do not squelch exceptions from SAHPool VFS importDb() - rethrow them. Problem reported in forum post c80fc578809b80a3. (check-in: 325bcdea user: stephan tags: trunk)
10:35
Remove a stray blank line from the beginning of btree.c. No functional code changes. (check-in: c89983dc user: drh tags: trunk)
2023-10-04
21:15
Allow a session object to generate a changeset, even if columns were added to one of the tables using ALTER TABLE ADD COLUMN while the changeset was being collected. (check-in: a3f435ec user: dan tags: session-alter)
12:49
The Makefile distinguishes between tcl8.4 and tcl8.5. Some makefile targets require tcl8.5, but others (ex: "sqlite3.c", "shell.c", and "sqlite3") require only tcl8.4. (check-in: 770308db user: drh tags: trunk)
11:52
Modify the main makefile so that it fails with an error if the tclsh found by ./configure is not tclsh 8.5 or later. Forum post 4380363682708ece. (check-in: 1765f3b5 user: drh tags: trunk)
11:04
Hard fail the ./configure script if it is unable to find a working tclsh. Forum post 4380363682708ece. (Closed-Leaf check-in: 9f640283 user: drh tags: error-no-tclsh)
2023-10-03
22:40
Fix a memory leak in JSON group-aggregates when the output is JSONB. (check-in: 08e7db13 user: drh tags: jsonb)
21:54
Fix a bug in the jsonReturnFromBlob() function that causes a positive result for a negative value for when a JSON integer is too large and needs to be converted into double. (check-in: dca684da user: drh tags: jsonb)
20:58
Fix problems in the "json" output column of the json_tree() virtual table for the case when the input is JSONB. (check-in: fefa4475 user: drh tags: jsonb)
20:01
Augment the jsonBlobChangePayloadSize() routine so that it tries to shift content in order to render the payload size in its minimal form. (Closed-Leaf check-in: 562e8e7b user: drh tags: jsonb-opt1)
19:37
Improved handling of OOM while translating the JsonNode representing into the BLOB representation. (check-in: ef595671 user: drh tags: jsonb)
19:06
Fixes for fts5 expression parser module to allow embedded 0x00 bytes in tokens. (check-in: 342c8d07 user: dan tags: fts5-token-data)
17:07
Update fts5_decode() to allow for embedded 0x00 bytes in tokens. (check-in: e0511200 user: dan tags: fts5-token-data)
11:36
Merge the latest trunk enhancements into the jsonb branch. (check-in: e6406a98 user: drh tags: jsonb)
10:59
Fix a problem in the JSONB parser that comes up following an OOM. (check-in: 355acfb1 user: drh tags: jsonb)
10:43
Fix an issue with the use of jsonb_group_array() and jsonb_group_object() when used by window functions. (check-in: 808bd349 user: drh tags: jsonb)
2023-10-02
23:56
New test cases for JSONB. (check-in: 6d4aeff5 user: drh tags: jsonb)
20:16
Fix jsonb_insert() so that it does not behave like jsonb_set(). New test cases added. (check-in: 54197149 user: drh tags: jsonb)
17:12
JNI: when fetching text-or-blob/length pairs, fetch the text-or-blob first, then the length, as the API docs suggest. (check-in: e4f9d394 user: stephan tags: trunk)
17:06
Fix the length of the string in the new concat() and concat_ws() functions. (check-in: 32524322 user: drh tags: trunk)
15:56
Remove an ALWAYS() from a branch that can in fact be false following an OOM fault. (check-in: 3a1feb1c user: drh tags: trunk)
15:37
Revisit the opfs-sahpool's handling of sqlite3_vfs::xGetLastError(). This impl seems to be in line with what the library internal expects but it requires more testing (via purposely-induced I/O errors) before merging. (check-in: c53fd21f user: stephan tags: wasm-xGetLastError)
14:51
New test cases for JSONB. (check-in: d624c31e user: drh tags: jsonb)
14:44
Pointer-casting-related fixes for JNI on 32-bit ARM (pi4 armv7l). (check-in: 54441039 user: stephan tags: trunk)
13:35
Allow json_replace() to accept JSONB arguments as the new value. (check-in: 95eb7b37 user: drh tags: jsonb)
13:20
Improvements to error handling for BLOB inputs on JSON. (check-in: 14f20ecb user: drh tags: jsonb)
12:40
Gather forward references into a single place for the JSON code. Allow JSONB arguments to json_array() and json_object() and similar. (check-in: c352201b user: drh tags: jsonb)
2023-10-01
18:59
Fix problems following OOM in JSONB parsing. (check-in: 0d8cd6b5 user: drh tags: jsonb)
12:15
Add JNI binding for sqlite3_normalized_sql(). (check-in: 2532e566 user: stephan tags: trunk)
11:53
Make JNI binding of sqlite3_value_frombind() return boolean instead of int and add tests for it. (check-in: 906e2ed3 user: stephan tags: trunk)
2023-09-30
18:13
Changes so that fts5 can handle tokens with embedded '\0' bytes. (check-in: c027c092 user: dan tags: fts5-token-data)
17:08
Fix JNI binding to compile without SQLITE_ENABLE_PREUPDATE_HOOK. Add build option to disable all optional ENABLE flags. (check-in: c04022b7 user: stephan tags: trunk)
16:50
Restore the trunk version of sqlite3_user_data(). Fix the xColumn for virtual tables so that the sqlite3_context contains a valid but NULL user data pointer. (check-in: 15ffd932 user: drh tags: jsonb)
16:19
Make all SQLite3Jni methods which take a void-pointer-as-long-int argument explicitly package-private, as they're always for internal use only even if SQLite3Jni is eventually made public. (check-in: 5e387275 user: stephan tags: trunk)
14:48
JNI: rename sqlite3_errmsg16() to sqlite3_errmsg(), as the 16 suffix is superfluous there. (check-in: df25b216 user: stephan tags: trunk)
14:34
Expose sqlite3_stmt_busy() to JNI. (check-in: 5733aa5f user: stephan tags: trunk)
14:34
Finish adding jsonb_ versions for all JSON routines that return JSON text. (check-in: 6daa7b69 user: drh tags: jsonb)
13:16
Correct an undefined-value deref in the JS bindings, triggered by passing invalid args and then tripping over an undefined value while trying to report that. Reported in forum post dd42df144651d779. (check-in: 1545f0f7 user: stephan tags: branch-3.43)
13:13
Correct an undefined-value deref in the JS bindings, triggered by passing invalid args and then tripping over an undefined value while trying to report that. Reported in forum post dd42df144651d779. (check-in: fd463254 user: stephan tags: trunk)
10:59
Make (almost) all SQLite3Jni.sqlite3_... members public but make the SQLite3Jni class package-private, which has the same foot-protection effect but makes it much simpler to patch SQLite3Jni to publicize the interface later. Remove some of the extraneous foot-shooting protection from indidivual functions, in lieu moving it to the still-pending higher-level interfaces. (check-in: 082b8668 user: stephan tags: trunk)
10:37
Merge in and close jni-ptr-passing branch. The remaining pointer-passing adaptation can be done incrementally without affecting the interface. (check-in: 7927c424 user: stephan tags: trunk)
10:31
Make all native JNI sqlite3_...() bindings package-private as a foot-shooting protective measure (higher-level pre-native-call argument validation is largely pending). Move SQLTester.java and TesterFts5.java into the org.sqlite.jni package so that they can access the being-tested methods. (Leaf check-in: ec82f725 user: stephan tags: jni-ptr-passing)
09:41
More work towards the new pointer-passing mechanism in JNI, and code-adjacent cleanups. (check-in: 6c63987e user: stephan tags: jni-ptr-passing)
2023-09-29
22:37
Update json_each() and json_tree() so that they work with JSONB inputs. (check-in: bb5e50ff user: drh tags: jsonb)
19:47
The u.zJContent field of JsonNode for a string or label should NOT include the quotation mark delimiters. Ever. This is an inefficiency that really ought to be fixed on trunk, but that can wait until this branch lands. (check-in: 96f545f6 user: drh tags: jsonb)
16:37
Additional refactoring and cleanup. (check-in: 45dd1760 user: drh tags: jsonb)
15:56
Add test case to ensure the assert() removed by [f090af77] no longer fails. (check-in: 615ab717 user: dan tags: trunk)
15:53
Remove an incorrect assert(). (check-in: f090af77 user: drh tags: trunk)
15:18
Bad edit (Closed-Leaf check-in: c794aeb3 user: drh tags: mistake)
12:45
Improvements to comments and procedure names for clarity in the JSON implementation. (check-in: 9b620d81 user: drh tags: jsonb)
11:17
Describe the JSONB encoding in a header comment to the json.c source file. (check-in: 1c0cba34 user: drh tags: jsonb)
2023-09-28
20:34
JNI: correct a NullPointerException triggered via SQLTester. (check-in: 0a873de7 user: stephan tags: jni-ptr-passing)
19:11
Fix some minor memory issues so that all legacy tests now pass. (check-in: 1744bfc6 user: drh tags: jsonb)
18:23
Allow the sqlite3_user_data() function to be invoked with a NULL argument or with an sqlite3_context pointer from a virtual table. It returns NULL in both cases. (check-in: 2f496873 user: drh tags: jsonb)
17:41
Merge trunk changes into the jsonb branch for the compiler warning fixes from two days ago. (check-in: cee113cc user: drh tags: jsonb)
17:27
The json_extract() function now works on BLOBs without the need to translate into an array of JsonNode objects. This is much faster. (check-in: 5853065b user: drh tags: jsonb)
17:23
Extract directly from BLOB is now complete and appears to work. (Closed-Leaf check-in: 3de58ec9 user: drh tags: jsonb-direct-extract)
17:07
Miscellaneous bugs fixed. (check-in: 5c0815fa user: drh tags: jsonb-direct-extract)
15:56
Improvements to json_extract() to better support JSONB. Still not 100% working. (check-in: 8c825761 user: drh tags: jsonb-direct-extract)
15:00
Clarify serialization API doc w.r.t. buffer validity and usage, instigated by forum post 8922e2ad2ad41205. No code changes. (check-in: b488b9fb user: larrybr tags: trunk)
11:19
Adapted the JNI bindings for the sqlite3_value_...() and (pre)update hook APIs to the new pointer-passing mechanism. (check-in: 4182f027 user: stephan tags: jni-ptr-passing)
10:50
Convert the remaining macro-generated JNI bindings to the new pointer-passing mechanism. (check-in: 250fd6ae user: stephan tags: jni-ptr-passing)
10:27
Convert the macro-generated JNI bindings which take a db pointer to the new pointer-passing mechanism. (check-in: 5f47fb77 user: stephan tags: jni-ptr-passing)
10:20
Work toward getting json_extract() to operate directly on the BLOB, omitting the translation into a JsonNode array. (check-in: c1feba70 user: drh tags: jsonb-direct-extract)
2023-09-27
16:55
Performance tests for JSONB added. (check-in: 7c1be8e3 user: drh tags: jsonb)
14:41
Adapted JNI sqlite3_blob_...() and sqlite3_close...() to the new pointer-passing mechanism. (check-in: 0b22c8ef user: stephan tags: jni-ptr-passing)
11:01
Adapt JNI sqlite3_bind_...() bindings to the new pointer-passing method and correct the mapping of sqlite3_bind_zeroblob64() to use zeroblob64() instead of zeroblob(). Related internal API renaming. (check-in: 980d559f user: stephan tags: jni-ptr-passing)
10:29
Add missing license headers to JNI annotation classes and extend the definition of @NotNull to include 0L as the equivalent of null to account for the current rework of how pointers are passed from Java to C. (check-in: bccdfeb9 user: stephan tags: jni-ptr-passing)
09:58
Rework the JNI sqlite3_backup APIs to the new pointer-passing approach. (check-in: 48aeb1e2 user: stephan tags: jni-ptr-passing)
2023-09-26
21:37
Start reworking JNI methods such that they pass void pointers from Java to C instead of passing their strongly-typed wrappers, as that is reportedly significantly faster than passing the wrapper objects to C and extracting the pointers there. There are still many, many functions left to rework for this. (check-in: 66c814dd user: stephan tags: jni-ptr-passing)
21:22
Fix harmless compiler warnings in the testfixture testing utility. (check-in: 5a39a02d user: drh tags: trunk)
19:49
JNI: implement AutoCloseable for the sqlite3 and sqlite3_stmt classes, and adjust a few tests to use it. Override Object.finalize() for sqlite3 class but not sqlite3_stmt (where it triggers a JVM crash for as-yet-unknown reasons). (check-in: b633d8bb user: stephan tags: trunk)
19:46
Merge partial-index constant value fixes from trunk into the jsonb branch. (check-in: 700bdbd7 user: drh tags: jsonb)
19:38
Fix yet another assert() in the partial-index constant value optimization. (check-in: f459d080 user: drh tags: trunk)
19:30
Add in many jsonb_xxxx() interfaces. Still uses the internal JsonNode representation for transformations and search, but it does at least conform to the desired API design. Largely untested. (check-in: e6045b4e user: drh tags: jsonb)
19:26
Remove a NEVER() from a condition in the partial-index constant value optimization that can sometimes be true. (check-in: 63aea8c3 user: dan tags: trunk)
15:13
Merge all the latest trunk enhancements into jsonb branch. (check-in: ac242c4d user: drh tags: jsonb)
14:57
Remove unreachable code from the partial-index constant value optimization ([8d4160910d651246]). (check-in: 7ad38254 user: drh tags: trunk)
09:46
Remove some outdated JNI docs. (check-in: 2ca5cbbb user: stephan tags: trunk)
07:43
Minor JNI doc updates. No code changes. (check-in: 63687cc6 user: stephan tags: trunk)
2023-09-25
17:46
In partial index scans, if the WHERE clause implies a constant value for a table column, replace occurences of that table column with the constant. This increases the likelihood of the partial index being a covering index. (check-in: 8d416091 user: dan tags: trunk)
17:21
Another very minor tweak to code on this branch to save cycles. (Closed-Leaf check-in: 2c805dc6 user: dan tags: partial-index-terms)
17:14
When parsing JSON text into the BLOB format, only use node type JSONB_TEXTJ for an unquoted object label if the object label contains escape sequences. (check-in: a82ebbac user: drh tags: jsonb)
15:25
Change the order of an if..else... in new code to make it slightly faster. (check-in: f80dc644 user: dan tags: partial-index-terms)
14:20
Enable -Wall for the compiler on --enable-debug builds. (check-in: 63a7b521 user: drh tags: trunk)
13:23
As a temporary measure, try to translate the BLOB JSON format into the legacy node format for processing. (check-in: 14f2e95a user: drh tags: jsonb)
11:12
Fix a bad interaction between LEFT JOIN, bloom filters and partial indexes. (check-in: 5775f92b user: dan tags: partial-index-terms)
00:39
Cause sqlite3_exper_new() to replicate UDFs and custom collations early enough to appear in virtual column expressions during schema copy. forum post e030aa4b3a (check-in: 8fc2c455 user: larrybr tags: expert-enhancement)
2023-09-24
22:51
Make expert changes acceptable to C89. (check-in: a4f03c22 user: larrybr tags: expert-enhancement)
19:47
Merge expert changes to accept UDFs and custom collations. (check-in: 8ead1b5e user: larrybr tags: expert-enhancement)
19:38
Add minimal exercise of expert acceptance of UDFs and custom collations. (Closed-Leaf check-in: 0f6bbb79 user: larrybr tags: expert-udfs)
19:28
Sync w/trunk prior to merge back. (check-in: 2d290854 user: larrybr tags: expert-udfs)
19:13
Resolve the JNI FTS5 test5() failure and remove some nearby dead code. (check-in: 5655c51f user: stephan tags: trunk)
19:00
Give expert ability to deal with custom collations. (check-in: ac1dc1b6 user: larrybr tags: expert-udfs)
2023-09-23
21:31
Add extra tests for changes on this branch. (check-in: cb45f5b0 user: dan tags: partial-index-terms)
19:25
Avoid an error when parsing a schema that contains indexes with WHERE clauses containing unknown collation sequences. (check-in: d5dd39e3 user: dan tags: partial-index-terms)
18:52
Fix a failing assert() caused by changes on this branch. (check-in: d0e21f20 user: dan tags: partial-index-terms)
18:49
Fix a harmless compiler warning. (check-in: 7c421025 user: drh tags: partial-index-terms)
15:34
Add extra tests for the fts5 xPhraseQuery API. (check-in: b5edea16 user: dan tags: trunk)
06:50
Resolve the JNI FTS5 test5() crash, caused by two unrelated typos in JNI callback signature strings. That test now fails with an expected-vs-got mismatch but no longer dies in the native code. (check-in: 0233f310 user: stephan tags: trunk)
06:37
Remove an invalid optimization from JNI code and add a missing check check for Java-side exception. (check-in: b8151f87 user: stephan tags: trunk)
2023-09-22
20:21
In partial index scans, if the WHERE clause implies a constant value for a table column, replace occurences of that table column with the constant. This increases the likelihood of the partial index being a covering index. (check-in: 66ed7abd user: dan tags: partial-index-terms)
16:20
Fix minor parse-to-BLOB bugs. (check-in: 8b53b2e6 user: drh tags: jsonb)
14:33
Add the ability to render a binary BLOB back into valid canonical JSON. (check-in: 0b70cb77 user: drh tags: jsonb)
14:20
Give expert ability to deal with UDFs. (check-in: 3406b05b user: larrybr tags: expert-udfs)
12:16
Begin adding code to render binary JSON back into text. Very incomplete. This is an incremental check-in. (check-in: b817dd86 user: drh tags: jsonb)
11:20
Improvements to the JSON binary BLOB format design. (check-in: 2c89ae5d user: drh tags: jsonb)
2023-09-21
18:16
Reorganize the code to put the new JSONB routines together, for easier editing. (check-in: dc23e783 user: drh tags: jsonb)
17:51
Initial development code for an experimental binary BLOB encoding for JSON. (check-in: 8131b3c2 user: drh tags: jsonb)
2023-09-18
20:42
Add extra tests for java Fts5ExtensionApi API. (check-in: f9d62b85 user: dan tags: trunk)
18:12
Extra tests for java Fts5ExtensionApi interface. (check-in: c923893f user: dan tags: trunk)
2023-09-17
16:36
Remove a NEVER() in btree.c that could actually be reached, with the approriate database corruption. (check-in: d1fd00e0 user: drh tags: trunk)
2023-09-16
18:18
Fix resolution of "rowid" and similar identifiers in queries that use nested joins. (check-in: 37ec43d9 user: dan tags: trunk)
17:11
Enable "OR IGNORE" support via SQLITE_VTAB_CONSTRAINT_SUPPORT for internal-content (not contentless or external-content) fts5 tables. (check-in: c362bde4 user: dan tags: trunk)
16:39
Add a NEVER() to an unreachable branch. (Closed-Leaf check-in: 6b6eb389 user: drh tags: nested-from-rowid-expansion)
16:23
Fix minor code indentation inconsistencies. No function changes. (check-in: 05107a0a user: drh tags: nested-from-rowid-expansion)
16:12
Fix a harmless compiler warning. (check-in: 9e9ff4ca user: drh tags: nested-from-rowid-expansion)
14:42
Further tests and assert() statements for the change on this branch. (check-in: 1c202d54 user: dan tags: nested-from-rowid-expansion)
2023-09-15
20:57
Fix resolution of unqualified "rowid" identifiers in queries with nested joins. (check-in: bbcbd3d5 user: dan tags: nested-from-rowid-expansion)
20:28
Simplifications and performance optimizations for the RTree extension. (check-in: 04a333f5 user: drh tags: trunk)
19:51
Drop support for the view-scan optimization (check-in [609fbb94b8f01d67]) 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: f911f1c4 user: drh tags: trunk)
19:27
Minor simplification to the DISTINCT output row count change. (Closed-Leaf check-in: 0738386d user: drh tags: rethink-viewscan)
19:00
Do not reduce subquery output row count estimates due to DISTINCT until after the decision of whether or not to use an index for ORDER BY has been made. (check-in: 27390051 user: drh tags: rethink-viewscan)
18:36
Allow expressions like "<tbl>.rowid" to refer to implicit rowid columns of tables in nested FROM clauses. (check-in: 59a1bbc6 user: dan tags: nested-from-rowid-expansion)
16:15
Experimental: Assume that a DISTINCT clause on a subquery reduces the number of rows returned by that subquery by a factor of 8. (check-in: 5a940e47 user: drh tags: rethink-viewscan)
14:06
The view-scan optimization was added to enhance the performance of one specific query, but it causes performance regressions on a host of others. Disable it (at least temporarily) in order to try to find an alternative way of fixing the one specific query that it was created to fix - an alternative way that does not cause performance problems for other unrelated queries. (check-in: d9625a9e user: drh tags: rethink-viewscan)
10:27
Do not try to convert a double into an unsigned 64-bit integer, as that does not work on all platforms. A double can only be converted into a signed 64-bit integer. (check-in: 4ce5a03e user: drh tags: branch-3.43)
10:24
Do not try to convert a double into an unsigned 64-bit integer, as that does not work on all platforms. A double can only be converted into a signed 64-bit integer. This is a fix for the problem reported in forum post 9f6db917e1c05d40. (check-in: ce339046 user: drh tags: trunk)
2023-09-14
20:56
Tests for java versions of Fts5ExtensionApi.xSetAuxdata() and xGetAuxdata(). (check-in: 858fa236 user: dan tags: trunk)
20:02
JNI: move XTokenizeCallback interface out of the Fts5 object - that level of indirection is a holdover from when those classes were in the core package. (check-in: 385ec085 user: stephan tags: trunk)
20:01
Add a few more tests for Fts5ExtensionApi methods. (check-in: 4ce2a7e8 user: dan tags: trunk)
17:42
Add a test for the java version of Fts5ExtensionApi.xRowid(). (check-in: 227facf8 user: dan tags: trunk)
16:45
According to forum post 9f6db917e1, older MSVC compilers are unable to convert a double directly into an unsigned long long int, but must first go through a signed long long int. Work around this by restricting the range of doubles that are converted into long long integers so that only the lower 63 bits are used. (Closed-Leaf check-in: 0ab05871 user: drh tags: legacy-msvc-workaround)
16:02
Document the use of OPFLAG_ISNOOP as the P2 argument on OP_Delete. No functional code changes. (check-in: d88f41b2 user: drh tags: trunk)
14:05
Avoid a segfault in test program showdb.c that could occur when analyzing a corrupt db. (check-in: 6bf3e906 user: dan tags: trunk)
13:10
Improve the sqlite3IntFloatCompare() routine so that it is testable. (check-in: bb221381 user: drh tags: trunk)
10:46
Do not set the global bUseLongDouble flag based purely on sizeof(long double) being more than 8. That is a necessary but not sufficient condition to use the long double routines. Instead, do a run-time test to verify that long double really does provide extra precision. (check-in: aa999d49 user: drh tags: trunk)
01:46
Reduce the number of calls to sqlite3_mprintf() made by RTree. (Closed-Leaf check-in: f158b7d4 user: drh tags: rtree-performance)
2023-09-13
21:32
JNI: enable the fts5-customization bits by default but elide them from the docs until it's clearer where they're headed. Unrelated minor doc tweaks. (check-in: 21adb1ae user: stephan tags: trunk)
20:35
Improved comments on the hasHighPrecisionDouble() routine. No changes to the underlying code. (Closed-Leaf check-in: 810c635c user: drh tags: runtime-longdouble-test)
20:06
Determine at start time whether or not the underlying hardware supports high-precision long double computations. (check-in: 9a854b91 user: drh tags: runtime-longdouble-test)
17:30
Omit the Reinsert algorithm from RTree. This causes most benchmarks to run faster, at the expense of having a slightly less dense and hence larger index (example: 33 entries/node versus 34 entries/node). (check-in: b3049a1d user: drh tags: rtree-performance)
17:16
Doc corrections for the previous checkin. (check-in: 9ea0a9f3 user: stephan tags: trunk)
17:11
Add JNI sqlite3_prepare_multi(), based on feedback. (check-in: fa1c1534 user: stephan tags: trunk)
14:07
Performance optimization to cellContains() in RTREE. (check-in: 43cde22b user: drh tags: rtree-performance)
13:12
In the ChooseLeaf algorithm of RTREE, do an initial pass through the cells of a node looking for solutions that involve no cell enlargement. Only look for the minimum cell enlargement if the enlargement is non-zero for all cells. This results in a performance improvement by reducing the number of calls to cellUnion(). (check-in: 59f0e239 user: drh tags: rtree-performance)
12:06
Reduce the number of calls to cellArea() in the ChooseLeaf() algorithm of rtree. (check-in: c633fe6b user: drh tags: rtree-performance)
11:36
Remove unused variable from the ChooseLeaf algorithm in r-tree. (check-in: fb2e4a80 user: drh tags: rtree-performance)
11:24
Replace an if() condition in fts5 that is always true with an assert(). (check-in: 2170312c user: dan tags: trunk)
2023-09-12
23:21
CLI .import to accept EOF in lieu of record terminator on last field of CSV (with multiple field records), per RFC 4180. forum post 5b21c25bdfa (check-in: 6f7842f5 user: larrybr tags: trunk)
23:11
Fix a use-after-free error in fts5 that could occur when querying the "rank" column immediately after another connection changes its definition. (check-in: dfc42411 user: drh tags: branch-3.43)
18:36
Fix a use-after-free error in fts5 that could occur when querying the "rank" column immediately after another connection changes its definition. forum post a2dd636330. (check-in: cb54c2da user: dan tags: trunk)
17:49
Clarify some metrics output in Tester1.java. (check-in: 4ae7199a user: stephan tags: trunk)
17:06
Re-add the fts5 decls to sqlite3-jni.h, removed in a rebuild without fts5 enabled. Need a better solution for this problem. (check-in: 6f269790 user: stephan tags: trunk)
17:03
Rename JNI sqlite3_errmsg() to sqlite3_errmsg16() for overall constency with the text()/text16() family of functions. (check-in: c4a8d8a5 user: stephan tags: trunk)
16:33
JNI readme fix. (check-in: 7dde000e user: stephan tags: trunk)
14:36
64-bit builds on Windows default to using UTF-8 output (as if the -utf8 command-line option had been specified.) 32-bit builds continue to use Windows code pages. There is also a new -no-utf8 command-line option to force the use of legacy code pages. (check-in: d8c7560e user: drh tags: trunk)
14:09
Show the "(utf8)" tag on the CLI banner in Windows if in UTF8 mode. (Closed-Leaf check-in: 822699a4 user: drh tags: cli-utf8)
2023-09-11
20:09
Add the -no-utf8 option to the Windows CLI to cause UTF-8 mode to be omitted. (check-in: 4cb799c6 user: drh tags: cli-utf8)
20:02
Make the -utf8 option the default behavior in the CLI on Windows for 64-bit builds. (check-in: 8b3c306d user: drh tags: cli-utf8)
15:35
Remove a harmlessly unused variable from FTS5. (check-in: 958d62c7 user: drh tags: branch-3.43)
15:28
Refuse to build amalgamation-tarball and snapshot-tarball if the TEA version number disagrees with ./VERSION. (check-in: ad5cc375 user: drh tags: branch-3.43)
15:27
Refuse to build amalgamation-tarball and snapshot-tarball if the TEA version number disagrees with ./VERSION. (check-in: 3308fdda user: drh tags: trunk)
15:20
Merge in JNI's significant divergence since it adopted sqlite3_client_data(). (check-in: e8e07dbb user: stephan tags: trunk)
15:04
Fix the TEA version number to be 3.43.1 (check-in: e00f1fed user: drh tags: branch-3.43)
14:55
Add support for the sqlite3_get_clientdata() and sqlite3_set_clientdata() interfaces, to better support JNI. (check-in: 9806c0dd user: drh tags: trunk)
13:06
Merge version 3.43.1 into the reuse-schema-3.43 subbranch. (check-in: d96586b5 user: drh tags: reuse-schema-3.43)
12:01
Version 3.43.1 (check-in: 2d3a40c0 user: drh tags: release, branch-3.43, version-3.43.1)
2023-09-10
10:56
Roll back [84e38341aeab] because a direct pointer comparison is ill-advised when the client-data string is dynamically allocated. (Closed-Leaf check-in: 7b884832 user: stephan tags: db-client-data)
2023-09-09
17:53
Remove out-of-date comment regarding use of Parse.pConstExpr. (check-in: 71548f72 user: dan tags: trunk)
15:30
Merge post-3.43.0 wal2 fixes into the bedrock-3.43 branch. (check-in: 48ecf390 user: drh tags: bedrock-3.43)
15:22
Merge post-3.43.0 wal2 fixes into the wal2-3.43 sub-branch. (Leaf check-in: f82b1a0b user: drh tags: wal2-3.43)
11:20
In the JNI build, emit a reminder to not check in the javac-generated sqlite3-jni.h when FTS5 is disabled because changes in that feature flag result in unnecessary and large diffs in checked-in generated code. (Closed-Leaf check-in: caceb52f user: stephan tags: jni-client-data)
07:52
Disable FTS5 in the JNI build by default until it can be thoroughly tested. This is mainly so that the public-facing javadoc does not include it. (check-in: 6f25f02b user: stephan tags: jni-client-data)
2023-09-08
20:24
Merge candidate patches for version 3.43.1 into the reuse-schema-3.43 branch. (check-in: c94be460 user: drh tags: reuse-schema-3.43)
20:19
Merge the latest candidate patches for 3.43.1 into the bedrock-3.43 branch. (check-in: 4cefd16e user: drh tags: bedrock-3.43)
20:14
Merge the latest 3.43.1 candidate patches into the wal2-3.43 branch. (check-in: b4491c9f user: drh tags: wal2-3.43)
20:09
Merge patches queued for version 3.43.1 into the begin-concurrent-3.43 branch. (check-in: c7867985 user: drh tags: begin-concurrent-3.43)
19:35
Fix a problem with fts5 secure-delete mode causing fts5 to corrupt its records. (check-in: fb24ca17 user: drh tags: branch-3.43)
19:32
Fix a problem with fts5 secure-delete mode causing fts5 to corrupt its records. (check-in: cc0f82a4 user: dan tags: branch-3.42)
19:18
Add extra tests for [4b60a1c3]. (check-in: 6357491b user: dan tags: trunk)
18:34
Fix a problem with fts5 secure-delete mode causing fts5 to corrupt its records. (check-in: 4b60a1c3 user: dan tags: trunk)
16:49
Fix a sanitizer runtime error in wal2 code (that (1 << 31) cannot be represented as an int). (check-in: 79a920c0 user: dan tags: wal2)
16:07
Fix an apparently harmless buffer-overrun that could occur on this branch when committing multi-file transactions in wal2 mode. (check-in: ffe043ba user: dan tags: bedrock)
16:05
Fix an apparently harmless buffer-overrun that could occur on this branch when committing multi-file transactions in wal2 mode. (check-in: dde9fcbd user: dan tags: wal2)
2023-09-07
17:54
Add -DSQLITE_OMIT_LOOKASIDE=1 to the "Sanitize" configuration in testrunner_data.tcl. (check-in: a917ebf1 user: dan tags: trunk)
16:53
Enhance the ./configure script and its associated Makefile.in so that the --with-linenoise=DIR argument cause the linenoise command-line editing library located in directory DIR to be linked with the sqlite3 CLI. (check-in: 6c7822b5 user: drh tags: trunk)
16:36
Enhance the ./configure script and its associated Makefile.in so that the --with-linenoise=DIR argument cause the linenoise command-line editing library located in directory DIR to be linked with the sqlite3 CLI. (Closed-Leaf check-in: 9c4e4928 user: drh tags: wrong-branch)
14:10
Fix a bad assert() in FTS3. (check-in: 61d2074c user: drh tags: branch-3.43)
14:04
Fix a buffer overread in the sessions extension that could occur when processing a corrupt changeset. (check-in: 6009c871 user: drh tags: branch-3.43)
13:53
Fix a buffer overread in the sessions extension that could occur when processing a corrupt changeset. (check-in: 0e4e7a05 user: dan tags: trunk)
13:48
Fix a harmless compiler warning in the sqldiff.c utility. (check-in: e6390a65 user: drh tags: trunk)
13:43
Add the "tool-zip" makefile target with the intention of using it to build the "sqlite-tool-*.zip" deliverables. deliverables. (check-in: 06e4af49 user: drh tags: trunk)
11:48
Version number to 3.43.1. (check-in: fdfe4d60 user: drh tags: branch-3.43)
02:13
Fix a problem with the new xIntegrity method for virtual tables, and also fix a bad assert() in FTS3 that was found by the new xIntegrity method. (check-in: 52bbf44f user: drh tags: trunk)
2023-09-06
17:07
Add documentation to sqlite3_get/set_clientdata() to make it clear that these are security-sensitive interfaces that should not be exposed to potential attackers. (check-in: 2837061d user: drh tags: db-client-data)
16:51
Add the xIntegrity method to the sqlite3_module object, thus enabling PRAGMA integrity_check to operate on virtual tables. Make use of this new method in the FTS3/4, FTS5, and RTREE virtual tables. (check-in: 2f08e7d2 user: drh tags: trunk)
16:22
Fix unreachable branches. (Closed-Leaf check-in: f00fc163 user: drh tags: vtab-integrity-check)
14:00
Change the xIntegrity virtual table method signature so that it returns an integer error code and writes the error message into a parameter. (check-in: f1d4024a user: drh tags: vtab-integrity-check)
12:52
Add the xIntegrity method to the sqlite3_module object. Implement this method in RTREE, FTS3/4, and FTS5 so that "PRAGMA integrity_check" also verifies the correctness of shadow tables associated with those virtual tables. (check-in: 17bede8c user: drh tags: vtab-integrity-check)
07:39
Move Java-side FTS5 bits into the fts5 subpackage to (A) make it easy to optionally bundle it (or not) and (B) set a precedent for puting extension APIs in their own package. (check-in: 4c773e1f user: stephan tags: jni-client-data)
06:54
Java FTS5 API renaming, for consistency. (check-in: 5e4cc9f3 user: stephan tags: jni-client-data)
2023-09-05
15:43
Add debugging routines to check each page for corruption after it it is manipulated by the fts5 secure-delete code, and to log said page via sqlite3_log() if it is found to be corrupt. (Leaf check-in: da4b7385 user: dan tags: fts5-secure-delete-debug)
15:03
Fix a few SQLITE_MISUSE returns so that they call sqlite3MisuseError(). (check-in: 93f74490 user: drh tags: trunk)
2023-09-04
16:48
Add tests for, and source code comments to, fts5. No changes to code. (check-in: b12afff4 user: dan tags: trunk)
12:50
Do not make assumptions about the byteorder of PowerPC processors. (check-in: 4a2498fe user: drh tags: trunk)
06:15
In JNI routines which set an OutputPointer.value, always do so, even on error, for consistency. (check-in: d0df62f0 user: stephan tags: jni-client-data)
05:58
Remove several unnececessary functions. (check-in: 84433c72 user: stephan tags: jni-client-data)
05:34
Move an internal utility class out of the public Java API. (check-in: 8e1ae319 user: stephan tags: jni-client-data)
04:23
Expose sqlite3_bind_parameter_name() to JNI. Extend the definition of null for the @NotNull annotation, to consider closed/finalized Java-side handles wrapping C-side resources as null for its purposes. (check-in: fc34e2bf user: stephan tags: jni-client-data)
2023-09-03
15:01
In mksqlite3c.tcl, pass EXTRA_SRC files through verbatim instead of applying the post-processing needed for sqlite's own source files. (Leaf check-in: 44f3d7d0 user: stephan tags: extra-src)
14:41
Add the missing sqlite3_blob_read() to [9a9945c405cf]. Elaborate on the definition of the @NotNull annotation. (check-in: 85952b4a user: stephan tags: jni-client-data)
14:13
Expose the sqlite3_blob_...() APIs to JNI. (check-in: 9a9945c4 user: stephan tags: jni-client-data)
12:46
Expose sqlite3_system_errno() to JNI. (check-in: bac54da2 user: stephan tags: jni-client-data)
12:32
Expose sqlite3_stmt_status() to JNI. (check-in: d266acc2 user: stephan tags: jni-client-data)
12:17
Expose sqlite3_randomness() to JNI. (check-in: de969224 user: stephan tags: jni-client-data)
11:58
Expose sqlite3_get/set_auxdata() to JNI. (check-in: 0de32717 user: stephan tags: jni-client-data)
11:16
Expose sqlite3_get_autocommit() to JNI. (check-in: 67391c65 user: stephan tags: jni-client-data)
11:08
Remove some unnecessary code. (check-in: c7f9bbbb user: stephan tags: jni-client-data)
10:36
Add a couple more sqlite3_backup tests. (check-in: 5c2cf89d user: stephan tags: jni-client-data)
10:23
Export the sqlite3_backup_...() APIs to JNI. (check-in: 865a3df5 user: stephan tags: jni-client-data)
09:28
Export the sqlite3_keyword_...() family of functions to JNI. (check-in: bd554db3 user: stephan tags: jni-client-data)
2023-09-02
22:07
Eliminate a redundant NK_DbAboutToClose notification. (Leaf check-in: eccffaa7 user: larrybr tags: cli_extension)
22:00
Issue NK_DbAboutToClose notifications for any shell DB about to be closed, whether presently visible in ShellExState or not. (check-in: 8e6e54e4 user: larrybr tags: cli_extension)
21:55
Also add support for EXTRA_SRC in the Makefile for MSVC. (check-in: bfc18ef4 user: mistachkin tags: extra-src)
19:35
Performance optimization to the OP_MakeRecord opcode. (check-in: 2aef9af3 user: drh tags: trunk)
14:36
Add sqlite3_config(SQLITE_CONFIG_LOG) support to Java and correct clearing of SQLITE_CONFIG_SQLLOG. Correct missing names in propagated UDF exception messages. (check-in: 652e2e82 user: stephan tags: jni-client-data)
12:53
Expose sqlite3_complete() to JNI. Slightly widen the definition of "canonical" for the purposes of the @Canonical annotation. Add a few new tests. (check-in: a59fe0cd user: stephan tags: jni-client-data)
11:26
Duplicate code consolidation. (check-in: a1872ae9 user: stephan tags: jni-client-data)
10:18
Remove a superfluous level of indirection in the JNI internals. (check-in: 8dca6f76 user: stephan tags: jni-client-data)
08:51
Further JNI cleanups. (check-in: 30e38173 user: stephan tags: jni-client-data)
08:04
Optimize sqlite3_get/set_clientdata() for the presumably common case of a static string pointer. (check-in: 84e38341 user: stephan tags: db-client-data)
05:37
Add EXTRA_SRC build var. If set, it is treated like a list of files, each of which gets appended verbatim to sqlite3.c. The intent is to enable easily extending the amalgamation. Requested in/around forum post 3fcc655f0ac0efe8. (check-in: 934b8433 user: stephan tags: extra-src)
2023-09-01
17:51
Add a timer to the JS SQLTester app to warn if it appears that loading the module has failed, which is commonly caused by the test scripts not being compiled. (check-in: f9c1f9ca user: stephan tags: jni-client-data)
16:28
Correct a Tester1.java test which inadvertently created a spurious db file in the current dir. Unrelated minor cleanups. (check-in: 016bbdad user: stephan tags: jni-client-data)
14:20
Make the JNI-internal metrics opt-in rather than opt-out so client builds won't have them by default. Unrelated doc tweaks. (check-in: aa72d25a user: stephan tags: jni-client-data)
13:27
Make JNI interfaces of sqlite3_column/value_text() match the C ones better. Internal JNI cleanups and simplifications. (check-in: eb24f972 user: stephan tags: jni-client-data)
11:30
In the OPFS VFS' importDb() methods, overwrite the header bytes 18 and 19 with 1 instead of 0. Correct a potentially leaked/unclosed SharedAccessHandle when importDb() throws. (check-in: 6795a610 user: stephan tags: branch-3.43)
11:10
Second half of [1c532e80]. (check-in: 8ca1d815 user: stephan tags: trunk)
11:05
In the OPFS VFS' importDb() methods, overwrite the header bytes 18 and 19 with 1 instead of 0. Both seem to work, but 1 is correct. (check-in: 1c532e80 user: stephan tags: trunk)
10:37
Remove some newly-dead code. (check-in: dc0fa76b user: stephan tags: jni-client-data)
10:32
Expose sqlite3_limit() to JNI and remove the all SQLITE_ macros from the Java interface which are not exposed via sqlite3.h (SQLITE_MAX_... and SQLITE_THREADSAFE_...). (check-in: 5fe5b0a5 user: stephan tags: jni-client-data)
09:43
JNI build improvements. Rename a Java class. Get the jar target working again. (check-in: d086b784 user: stephan tags: jni-client-data)
06:50
Expose sqlite3_stmt_explain(), sqlite3_stmt_isexplain(), and sqlite3_stmt_readonly() to JNI. Remove a mutex lock made superfluous by sqlite3_client_data(). (check-in: 208b786a user: stephan tags: jni-client-data)
2023-08-31
19:35
Export sqlite3_txn_state() to JNI. (check-in: d732f71d user: stephan tags: jni-client-data)
18:34
Minor JNI cleanups. (check-in: 2e2bb841 user: stephan tags: jni-client-data)
18:26
Do not disable unused columns in a UNION ALL sub-query if any component of the sub-query is DISTINCT. (check-in: 0d50d271 user: drh tags: branch-3.43)
18:00
Do not disable unused columns in a UNION ALL sub-query if any component of the sub-query is DISTINCT. Problem introduced by [7c2d3406000dc8ac] and reported by forum post aeae62275ebbf584. (check-in: c84d5602 user: dan tags: trunk)
15:24
Add convenience overloads of JNI sqlite3_table_column_metadata() to simplify usage. (check-in: faf4e6d3 user: stephan tags: jni-client-data)
14:57
Export sqlite3_(db_)free_memory() and sqlite3_table_column_metadata() to JNI. Further internals renaming for consistency and legibility. (check-in: 7c86aa34 user: stephan tags: jni-client-data)
2023-08-30
18:51
Use mutexes to make sqlite3_set_clientdata() and sqlite3_get_clientdata() threadsafe. (check-in: 443ea20d user: drh tags: db-client-data)
18:45
Replace JNI's per-db-instance state tracking with the new sqlite3_set/get_clientdata(). (check-in: e7c11d34 user: stephan tags: db-client-data)
18:38
Fix the json_array_length() function so that it gives the correct result even when its JSON input comes from json_remove(). (check-in: d63d9ee3 user: drh tags: bedrock-3.43)
18:34
Fix the json_array_length() routine so that it reports the correct answer even if its JSON input comes from the output of json_remove(). (check-in: 8b390d7e user: drh tags: wal2-3.43)
18:27
Fix a bug in json_array_length() introduced in version 3.43.0 If the JSON input comes from json_remove(), the removed array entries are still counted as part of the array length. (check-in: db7cb6cb user: drh tags: branch-3.43)
18:19
Fix a bug in json_array_length() introduced in version 3.43.0 by check-in [df099ad713011b67]. If the JSON input comes from json_remove(), the removed array entries are still counted as part of the array length. Bug report in forum post 0560d5e482. (check-in: 69a63595 user: drh tags: trunk)
17:41
Remove another unreachable branch in the sqlite3_set_clientdata() logic. (check-in: 57e31e6b user: drh tags: db-client-data)
17:14
Remove an unreachable branch, and improve documentation of sqlite3_set_clientdata(). (check-in: 565c68ad user: drh tags: db-client-data)
16:34
Fix the AVG() and TOTAL() functions so that they work with infinities. (check-in: 9877c7c8 user: drh tags: bedrock-3.43)
16:24
Fix the AVG() and TOTAL() functions so that they work with infinitites. (check-in: 988e5308 user: drh tags: wal2-3.43)
16:08
Fix the AVG() and TOTAL() functions so that they work with infinitites. (check-in: 97e20716 user: drh tags: branch-3.43)
16:03
Fix the AVG() and TOTAL() functions (after the SUM() fix of [77d3dcd283595c52]) so that they work with infinitites. Fixes a bug introduced by check-in. [c63e26e705f5e967]. Bug reported by forum post 8960fb40cc. (check-in: 6df6f17c user: drh tags: trunk)
15:51
Further tweaking in both SQLTesters. (check-in: 46b0eb98 user: stephan tags: trunk)
15:42
Fix to the sqlite3_get_clientdata() interface. (check-in: 937cd176 user: drh tags: db-client-data)
15:20
New experimental API for attaching client data to a database connection. (check-in: d542837f user: drh tags: db-client-data)
14:20
When a JS SQLTester script throws, report the exception details back to the UI regardless of whether it's fatal. (check-in: 273d3b05 user: stephan tags: trunk)
13:07
Add a JS implementation of Java's SQLTester. (check-in: b530792a user: stephan tags: trunk)
11:54
Add a UI, of sorts, to the JS SQLTester. (Closed-Leaf check-in: 249e82b9 user: stephan tags: js-tester)
00:22
Add a mechanism with which to import external SQLTester scripts into the JS testing tool. (check-in: bb08ba02 user: stephan tags: js-tester)
2023-08-29
21:30
Add directives support to JS SQLTester comparable to the Java impl. This brings the two to feature parity. (check-in: 7cef4a83 user: stephan tags: js-tester)
20:44
More fleshing out of JS SQLTester. (check-in: 8c503dfb user: stephan tags: js-tester)
20:37
Merge the latest branch-3.43 fixes into the bedrock branch. (check-in: 7e3e0075 user: drh tags: bedrock-3.43)
20:24
Merge the branch-3.43 fixes into the wal2 branch. (check-in: 903e9974 user: drh tags: wal2-3.43)
20:19
Fix a test case problem in wal2recover2.test. (check-in: 9e927eed user: drh tags: wal2)
20:01
JS SQLTestRunner can now run the Java impl's core-most sanity tests, missing only support for directives. (check-in: 5e798369 user: stephan tags: js-tester)
18:28
New conversion letters added to strftime(): %e, %k, %I, %l, %R, %P, %p, %T, %u. (check-in: 058722b2 user: drh tags: trunk)
15:39
Get the JS SQLTester command handlers in place sans those which have to run SQL. (check-in: d21b1217 user: stephan tags: js-tester)
15:38
Change the version number to 3.44.0 to begin the next development cycle. (Should have done this a few check-ins ago.) (check-in: 253fe4a4 user: drh tags: trunk)
15:24
Add support for the CONCAT() and CONCAT_WS() SQL functions, modeled after the PostgreSQL behavior. (check-in: 0b434ca7 user: drh tags: trunk)
13:28
Get the basic parsing pieces and command dispatching in place in the JS SQLTester. (check-in: 8fcc2a55 user: stephan tags: js-tester)
11:22
Init bits of a port of Java's SQLTester to JS. Far from complete. (check-in: 60eec5ce user: stephan tags: js-tester)
10:50
Change a variable from "int" to "i64" to make it easier to prove that it cannot overflow. (check-in: 00a8b3a2 user: dan tags: trunk)
00:10
Remove some dead code. Add a skeleton SQLTester script for fts5. (check-in: 6c83e31f user: stephan tags: trunk)
2023-08-28
23:18
Factor out a superfluous struct member. (check-in: 76d3911c user: stephan tags: trunk)
22:52
Further minor internal JNI simplifications. (check-in: 1808d12e user: stephan tags: trunk)
21:27
Improve threadability of the JNI collation-related bindings and add infrastructure for similar cases. (check-in: f02dad66 user: stephan tags: trunk)
20:21
Correct JNI mapping of collations to be 1-db-to-many-collations. (check-in: b927b0f5 user: stephan tags: trunk)
20:14
Updates to testrunner.tcl so that it runs fuzztest using multiple jobs. (check-in: ceeabe9f user: dan tags: trunk)
20:02
Fix the "sdevtest" testrunner.tcl command so that it correctly enables asan on windows. (Closed-Leaf check-in: 64631923 user: dan tags: testrunner)
18:15
Fixes for testrunner.tcl on windows. (check-in: 26ae0908 user: dan tags: testrunner)
16:28
Another fix for valgrind permutation. Remove the "copydir" table column - just add a [cp] or [copy] command to the test script where this functionality is required. (check-in: 448b9a57 user: dan tags: testrunner)
16:22
Remove a pair of what are arguably unnecessary mutex locks (and often hit). More JNI-internal cleanups. (check-in: ecf07a01 user: stephan tags: trunk)
16:05
Update tool/mkctimec.tcl to account for [fe7365254d343e]. (check-in: 349aac7e user: stephan tags: trunk)
15:58
Add support for the -DSQLITE_EXTRA_AUTOEXT=name compile-time option. forum thread 00829394c74a670f. (check-in: fe736525 user: drh tags: trunk)
14:59
Duplicate code consolidation. (check-in: 71f23974 user: stephan tags: trunk)
13:18
Move a metrics counter so that it can be used to indirectly witness the race condition fix from [f5274e00f17d58e0] by recording varying final values for that metric across consecutive multi-threaded test runs. (check-in: 54d2209d user: stephan tags: trunk)
13:06
Resolve a JNI-side race condition. Removed a now-extraneous struct member. Internal API renaming for consistency. (check-in: f5274e00 user: stephan tags: trunk)
12:57
Fix an issue with infinity handling by the SUM() function that goes back to the extended-precision SUM() enhancement of check-in c63e26e705f5e967. Problem reported by forum post 1c06ddcacc86032a. (check-in: 692266ab user: drh tags: branch-3.43)
12:20
Fix an issue with infinity handling by the SUM() function that goes back to the extended-precision SUM() enhancement of check-in [c63e26e705f5e967]. Problem reported by forum post 1c06ddcacc86032a. (check-in: 77d3dcd2 user: drh tags: trunk)
12:06
Resolve a condition which could cause an is-interrupted db to call its progress callback. (check-in: a0d0f1aa user: stephan tags: trunk)
11:22
Fix the valgrind permutation on this branch. (check-in: ccbf0676 user: dan tags: testrunner)
11:10
Further JNI cleanups and javadoc additions. (check-in: c393b1c9 user: stephan tags: trunk)
07:28
Lots of javadoc-related tweaks. (check-in: cfe06f90 user: stephan tags: trunk)
05:48
Correct a package renaming bug in the previous check-in and start applying the @Canonical annotation to functions to distinguish canonical API functions and Java-specific APIs. (check-in: 8a016006 user: stephan tags: trunk)
05:39
Move the JNI annotations into the annotation subpackage. (check-in: e4dedf90 user: stephan tags: trunk)
05:06
Resolve a makefile bug which causes sqlite3-worker1-bundler-friendly.mjs to be built incorrectly. Reported in forum post a874e435cf4690c1. (check-in: 289d2a0e user: stephan tags: branch-3.43)
04:59
Resolve a makefile bug which causes sqlite3-worker1-bundler-friendly.mjs to be built incorrectly. Reported in forum post a874e435cf4690c1. (check-in: 9d68c7ef user: stephan tags: trunk)
2023-08-27
15:15
Reimplement JNI's sqlite3_value_text() as a native instead of a Java-side proxy. Unrelated minor simplifications. (check-in: 401dd6ee user: stephan tags: trunk)
14:47
Generic cleanups in Tester1.java. (check-in: fbc1b631 user: stephan tags: trunk)
13:43
Remove JNI sqlite3_column_java_object(), as the protection rules of sqlite3_values makes it impossible to implement safely. Add JNI sqlite3_bind_java_object(). (check-in: 29bd4a23 user: stephan tags: trunk)
11:28
Correct the signature mismatch between JNI sqlite3_column/value_text16() and add related tests. (check-in: 77f6e70f user: stephan tags: trunk)
10:40
Make JNI sqlite3_trace_v2() thread-safe. Re-add a piece removed in [bae4d022aad9b] to work around a JVM crash which is unpredictably triggered by its substitute. Fix the THREADMODE=0 JNI build. Further internal API simplifications. (check-in: 3f9f7a9c user: stephan tags: trunk)
09:12
Factor out an unnecessary struct member. JNI sqlite3_shutdown() now frees up the various object-recycling bins. Doc touchups. (check-in: bae4d022 user: stephan tags: trunk)
08:10
Factor out a superfluous JNI class. Doc and code style cleanups. (check-in: 0f37f271 user: stephan tags: trunk)
07:26
JNI code reorgs and simplify the failing-alloc interface a bit. (check-in: deed5797 user: stephan tags: trunk)
2023-08-26
22:34
Apply the JNI OOM checks to memory returned by JDK APIs, as distinct from our APIs. (check-in: 1ff78582 user: stephan tags: trunk)
21:13
Eliminate a superfluous JNI-internal middle-man class. (check-in: daede0f8 user: stephan tags: trunk)
21:04
Updates to testrunner.tcl so that it runs "make fuzztest" using multiple jobs. (check-in: 7596ea70 user: dan tags: testrunner)
21:02
Whether or not OOM is always fatal in JNI is now a compile-time option. (check-in: 320a34c0 user: stephan tags: trunk)
19:34
Correct a string length misuse in JNI sqlite3_result_error() in an OOM case. Unrelated minor JNI cleanups. (check-in: 4252f56f user: stephan tags: trunk)
18:15
Remove a bunch of commented-out debug output. (check-in: b4948848 user: stephan tags: trunk)
18:01
Re-order some out-of-order JNI APIs. Correct JNI sqlite3_open_v2() behavior in a particular OOM condition. (check-in: 49d3be00 user: stephan tags: trunk)
17:36
Two significant typo fixes for [1a30919bfbb686]. (check-in: 6a6ee6dd user: stephan tags: trunk)
17:30
Bind sqlite3_db_handle() to JNI. (check-in: 1a30919b user: stephan tags: trunk)
16:55
Correct a potential duplicate xDestroy() being triggered for Java-side collations. (check-in: 25331172 user: stephan tags: trunk)
16:29
Recycle per-UDF JNI state. (check-in: cf406528 user: stephan tags: trunk)
14:55
Code consolidation cleanups. (check-in: d6b5ecd2 user: stephan tags: trunk)
12:19
Add -sqllog flag to the JNI 'tests' target because it hits APIs which are otherwise not tested. (check-in: cc3153ed user: stephan tags: trunk)
11:57
JNI internal cleanups and docs. (check-in: b7b26bfb user: stephan tags: trunk)
10:51
Remove the Java BusyHandler.xDestroy() method - it should not have had one. Eliminate the last of the potentially-significant MUTF-8 cases. (check-in: c852f1eb user: stephan tags: trunk)
10:20
Improve threading support for all types of JNI-side callback hooks, making them safe to invoke if another thread is busy replacing them. (check-in: f2af7bbf user: stephan tags: trunk)
2023-08-25
16:43
Move the 3 Java SQLFunction subclasses from inner classes to package scope. (check-in: 21fd47a6 user: stephan tags: trunk)
16:26
Missed a straggler when renaming Java classes in [8ca528006533ac1]. Document threading limitations. (check-in: 5786b95f user: stephan tags: trunk)
14:17
Hopefully the last major API rename in the JNI bits: rename all lower_camel_case classes which do not have direct counterparts in the C API to UpperCamelCase, as that's more idiomatic. Java types which reflect C-style types are unaffected. (check-in: 8ca52800 user: stephan tags: trunk)
13:23
More Java API renaming for consistency. (check-in: 4e457778 user: stephan tags: trunk)
12:29
Re-enable SQLITE_THREADSAFE=0 in the JNI build and add multitest target which builds and runs the tests in all 3 threading modes. (check-in: 6b1c816f user: stephan tags: trunk)
11:32
Code restructuring. Force SQLITE_THREADSAFE in JNI builds for the time being, as threadsafe==0 leads to as-yet-mysterious JNI-level reference errors. (check-in: 5a099caa user: stephan tags: trunk)
11:06
Remove incorrect (but harmless) dependency on source code file "sessionfuzz-data1.db" from main.mk and Makefile.in. (check-in: 17d56c02 user: dan tags: trunk)
04:27
Only build in the JNI-side metrics tracking in SQLITE_DEBUG builds. (check-in: 646e7fc3 user: stephan tags: trunk)
04:02
Javadoc and internal API cleanups. (check-in: 10a43cba user: stephan tags: trunk)
02:57
Replace all of the JNI XyzHook/Handler classes with snake_cased ones which follow unified naming conventions to make them easier to apply. (check-in: 76e62a38 user: stephan tags: trunk)
00:27
javadoc additions. (check-in: bedf33d4 user: stephan tags: trunk)
2023-08-24
22:28
Re-frame the incongruous SQLite3Jni.uncacheThread() API as sqlite3_java_uncache_thread(). (check-in: 7232b033 user: stephan tags: trunk)
21:45
Update some outdated JNI docs and account for a function renamed earlier this evening. (check-in: 3f684ef5 user: stephan tags: trunk)
21:31
Do not pre-allocate sqlite3_aggregate_context() for Java UDFs, as it unduly complicates UDF initialization. (check-in: e8308f0c user: stephan tags: trunk)
19:08
Add doc/testrunner.md, for documenting the testrunner.tcl script. (check-in: 9c69a284 user: dan tags: trunk)
18:43
More code legibility and style improvements in the JNI pieces. Start work on a javadoc build. (check-in: 62b404d6 user: stephan tags: trunk)
17:25
Doc, code style, and legibility cleanups. (check-in: cf185bcd user: stephan tags: trunk)
15:42
Doc style fixes. (check-in: 862f9828 user: stephan tags: trunk)
15:11
Add a new non-goal to the JNI README.md. (check-in: 53000cda user: stephan tags: trunk)
14:49
Merge the jni-threading branch into trunk, eliminating the JNI API's prior threading limitations. (check-in: 3739c8aa user: stephan tags: trunk)
14:43
Merge into trunk improvements made to the wasm APIs which were too late for 3.43. (check-in: ac9da5c7 user: stephan tags: trunk)
14:31
Correct JNI layer's misuse of an sqlite3-internal error-reporting API (no mutex held). Style cleanups. Eliminate lookups of per-thread state by approximately 85% across the test suite. (Closed-Leaf check-in: 1f46ba8d user: stephan tags: jni-threading)
14:17
Ensure that db mutex is held when using sqlite3ErrorWithMessage() to avoid a potential assertion in debug builds. (Closed-Leaf check-in: b8f6a50a user: stephan tags: wasm-post-343)
13:42
Fix a test case problem in wal2recover2.test. (check-in: 81361769 user: dan tags: bedrock)
13:32
Version-3.43.0 for the reuse-schema branch. (check-in: 6f1bcd6a user: drh tags: reuse-schema)
13:26
Version 3.43.0 for the bedrock branch. (check-in: e7b1ee1a user: drh tags: bedrock)
13:19
Version 3.43.0 for the wal2 branch. (check-in: b5970fc4 user: drh tags: wal2)
13:17
Version 3.43.0 for the begin-concurrent branch. (check-in: e67bf282 user: drh tags: begin-concurrent)
12:36
Version 3.43.0 (check-in: 0f80b798 user: drh tags: trunk, release, major-release, version-3.43.0)
12:01
Change a variable name in fts5FlushOneHash() to avoid shadowing another. (check-in: 3f5bec9a user: dan tags: trunk)
11:57
Add more JNI docs, tests, and a handful of Java-side overloads. (check-in: d19a431f user: stephan tags: jni-threading)
2023-08-23
18:42
Fix typo in the Lemon documentation. (check-in: 5daeb318 user: drh tags: trunk)
18:29
More changes to documents for GitHub-style markdown. (check-in: f20f84ef user: drh tags: trunk)
18:26
Fix the Markdown in the compile-for-windows.md document so that it works on GitHub. Improved header text in README.md. (check-in: a25360c0 user: drh tags: trunk)
17:52
JNI cleanups regarding building with certain features disabled. (check-in: a9e6d515 user: stephan tags: jni-threading)
17:15
Remove unnecessary jclass-type struct members. (check-in: d67255f7 user: stephan tags: jni-threading)
16:41
Some thinking-out-loud about how to implement vtabs in Java. In no way complete. (Closed-Leaf check-in: 49c24c29 user: stephan tags: jni-vtab)
13:36
Add a note to the JNI README explaining why the Java API has callback names like xFunc() and xPreUpdate(). (check-in: 415447a3 user: stephan tags: jni-threading)
13:17
Bind sqlite3_preupdate_hook() and friends to JNI. (check-in: d0c425b5 user: stephan tags: jni-threading)
12:53
Minor adjustments to the wording about pull requests in the README.md file. (check-in: 6b2d68af user: drh tags: trunk)
10:36
Bind a subset of sqlite3_config() to JNI: threading modes and sqllog. (check-in: fce8ecaf user: stephan tags: jni-threading)
10:20
The pageOnDirtyList() assertion is too slow even for debugging builds, for some corner cases. It makes the query appear to hang. So make it an EXPENSIVE_ASSERT instead. (check-in: bb9dcdaf user: drh tags: trunk)
09:05
Numerous minor cleanups and code style conformance improvements. (check-in: 6c92d884 user: stephan tags: jni-threading)
00:17
Improve C-side exception handling from Java-side UDF callbacks. (check-in: aebbc24a user: stephan tags: jni-threading)
2023-08-22
23:00
Minor Tester1.java cleanups. (check-in: 70d93695 user: stephan tags: jni-threading)
22:13
Fix Tester1 so that exceptions triggered via threads are not silently ignored. Disable auto-extension tests in multi-thread mode because concurrent threads rightfully interfere with that. (check-in: 56b2a077 user: stephan tags: jni-threading)
20:10
More work on the JNI multi-threaded test runner. (check-in: 9a74ad71 user: stephan tags: jni-threading)
18:36
Disassociate JNI db handles from the thread that created them, as it's no longer relevant. (check-in: 8b78b737 user: stephan tags: jni-threading)
17:51
Correct JNI binding of sqlite3_shutdown() to clean up all cached JNIEnv objects. (check-in: 02e86869 user: stephan tags: jni-threading)
17:36
JNI internal cleanups and correct two leaked db handles in test code. (check-in: f927a30b user: stephan tags: jni-threading)
16:44
Fix a harmless memory leak in the sqldiff utility. (check-in: 724bc157 user: drh tags: trunk)
15:47
Merge the trunk Makefile enhancements into the reuse-schema branch - especially the new "sdevtset" makefile target. (check-in: f55f5e9d user: drh tags: reuse-schema)
15:30
Move the JNI per-thread cache of NativePointerHolder refs into global space. This allows better-targeted mutex locks and incidentally eliminates the lagginess and post-run hangs in Tester1's multi-thread mode (presumably caused by deadlocks). (check-in: e209f56a user: stephan tags: jni-threading)
15:19
Add makefile target "sdevtest" - like "mdevtest" except asan and usan enabled for the non-debug test. (check-in: a449d650 user: dan tags: trunk)
13:41
Update version number in autoconf/tea/configure.ac. (check-in: 055ae724 user: dan tags: trunk)
11:34
Move most of the per-JNIEnv global Java class refs into the global state, saving a bit of per-thread overhead. (check-in: 7342bf57 user: stephan tags: jni-threading)
11:20
Update autoconf/Makefile.msc (by running mkmsvcmin.tcl) to support the "ASAN=1" option. (check-in: 17028ba7 user: dan tags: trunk)
2023-08-21
23:45
Minor JNI cleanups. (check-in: b88910aa user: stephan tags: jni-threading)
18:31
Merge latest changes from the wal2 branch into this one. (check-in: 4d8df0c4 user: dan tags: bedrock)
18:25
Fix problems related to structured-exception-handling on this branch. (check-in: d3d77e35 user: dan tags: bedrock)
18:03
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 76a99a2c user: drh tags: begin-concurrent)
18:02
Merge latest trunk changes into this branch. (check-in: 135bf72c user: dan tags: wal2)
17:53
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: e94f09f1 user: drh tags: reuse-schema)
17:49
Fix problems related to structured-exception-handling on this branch. (check-in: dd86c272 user: dan tags: begin-concurrent)
17:26
Fix MSVC testfixture.exe builds. (check-in: 7004c902 user: dan tags: begin-concurrent)
16:14
Fix an undefined integer overflow in fts5. (check-in: f5c50349 user: dan tags: trunk)
15:29
ifdef adjustments so that SQLITE_OMIT_WAL works with SQLITE_USE_SEH. (check-in: 0462a261 user: drh tags: trunk)
14:40
Fix another UBSAN inaccuracy in fuzzcheck. (check-in: a6fb9de8 user: drh tags: trunk)
14:28
Address minor inaccuracies in fuzzcheck and RTREE found by UBSAN. (check-in: a64e6c2f user: drh tags: trunk)
2023-08-19
14:49
JNI cleanups. (check-in: 0a841310 user: stephan tags: jni-threading)
12:34
Merge trunk into jni-threading branch. (check-in: 8254479c user: stephan tags: jni-threading)
12:32
JNI doc additions. (check-in: 0c7ac34f user: stephan tags: jni-threading)
11:52
JNI test code cleanups. (check-in: e202b6e6 user: stephan tags: jni-threading)
11:26
Minor JNI cleanups. (check-in: 1cecb9e0 user: stephan tags: jni-threading)
10:43
Add multi-thread run mode to JNI Tester1. It works but hangs on exit sometimes for Java reasons as yet not understood. (check-in: bdbaf7a4 user: stephan tags: jni-threading)
08:22
Replace JNI::NewStringUTF() for the remaining cases where output may be incompatible with MUTF-8. It is now only used when we know the output to be plain ASCII. (check-in: 2d955eef user: stephan tags: jni-threading)
08:12
shell.c.in help text typo fix. No functional changes. (check-in: c3190332 user: stephan tags: trunk)
2023-08-18
15:39
Rename the decimal_sci() function to decimal_exp(). Forum post fa027bb0ab. (check-in: c48f1be8 user: drh tags: trunk)
15:17
Avoid running test case sort2.2.3 under address-sanitizer. It runs out of memory on some 32-bit platforms. (check-in: 925be753 user: dan tags: trunk)
14:41
Improve exception handling in OpfsDb.importDb(). (check-in: a4eedd63 user: stephan tags: wasm-post-343)
14:16
Extend the importDb() method of both OPFS VFSes to (A) support reading in an async streaming fashion via a callback and (B) automatically disable WAL mode in the imported db. (check-in: 9b1398c9 user: stephan tags: wasm-post-343)
12:15
Enhance the CLI and the fuzzcheck utility programs to report whether they are compiled as 32-bit or 64-bit for things like the --version option. (check-in: ec7eeb05 user: drh tags: trunk)
11:36
Enhance the notes on compiling for Windows11 to explain how to do 32-bit builds on a 64-bit system. (check-in: dd749e40 user: drh tags: trunk)
2023-08-17
22:04
Remove some obsolete JNI-internal docs. (check-in: 00a2a373 user: stephan tags: jni-threading)
17:48
Do not allow bound parameters in the ON CONFLICT clause of an UPSERT. dbsqlfuzz 9983e2c77634a8ccf33b5c91fa9982599de5f9e9 (check-in: 3c067093 user: drh tags: trunk)
16:59
Fix an error in documentation comments in fts5.h. (check-in: 24d96bd6 user: dan tags: trunk)
16:49
Add extra test to fts5synonym2.test. (check-in: 39ea11be user: dan tags: trunk)
16:06
Add "Windows-Sanitize" configuration to "testrunner.tcl release" tests on windows. (check-in: e68b46dc user: dan tags: trunk)
15:14
Have all test names in json101.test start with "json101". (check-in: af56d7b6 user: dan tags: trunk)
15:11
Enable address sanitizer in Makefile.msc by adding the ASAN=1 argument on the nmake command line. (check-in: 3eaadaff user: drh tags: trunk)
14:19
Fix a possible UAF in SEH if an exception occurs at an inopportune moment during WAL processing. (check-in: 91b91037 user: drh tags: trunk)
13:13
Tighten up the JNI auto-ext handling. (check-in: c09c8d05 user: stephan tags: jni-threading)
12:44
Minor internal JNI cleanups and fixes. (check-in: 0e9437de user: stephan tags: jni-threading)
10:49
Remove the FIXME markers related to threading. Code style cleanups. (check-in: 154ab26d user: stephan tags: jni-threading)
09:49
Add SQLITE_EXTRA_AUTOEXT, similar to SQLITE_EXTRA_INIT but adds a builtin auto-extension provided by the client. Suggestion from forum post 00829394c74a670f. (Closed-Leaf check-in: 423e7727 user: stephan tags: extra-autoext)
2023-08-16
17:23
Refinements to instructions on compiling for Windows. (check-in: d543c36c user: drh tags: trunk)
17:12
Improved instructions on how to build SQLite on Windows 11 and similar. (check-in: 0f6b2b33 user: drh tags: trunk)
15:27
Make sqlite3_stmt_explain() accessible to loadable extensions. (check-in: a237a31f user: drh tags: trunk)
15:10
Mix the current process ID into the randomness used for generating temporary filenames on Windows. (check-in: 775a36ee user: drh tags: trunk)
14:18
Update testrunner.tcl to use environment variable %NUMBER_OF_PROCESSORS% when running under tclsh on windows. Also modify the internal database schema used by testrunner.tcl to be compatible with old versions of SQLite. (check-in: 6542ed3b user: dan tags: trunk)
13:55
Fix test script problem preventing veryquick.test from running. (check-in: e7388657 user: dan tags: trunk)
2023-08-15
21:44
Cherrypick [00ac653562a6] to remove stray JNI debug output. No functional changes. (check-in: e12d70f3 user: stephan tags: trunk)
20:57
Cherrypick [653ed92dc391] (went to wrong branch). Doc change only, no code changes. (check-in: 79a14457 user: stephan tags: trunk)
18:52
Update testrunner.tcl to make it easier to add things like mdevtest. (check-in: a531b71c user: dan tags: trunk)
18:08
Improve the portability of the src-verify.c tool on Windows. (check-in: 4068d94a user: drh tags: trunk)
14:53
Fix problems in fts5 test code. (check-in: c16ed3b1 user: dan tags: trunk)
13:01
Add note about the current threading limitation to ext/jni/README.md. No code changes. (check-in: 653ed92d user: stephan tags: wasm-post-343)
12:27
Use a dodgy substitute if the INFINITY macro is not available. See forumpost 8e66e19bb9. (check-in: 4ae72c89 user: drh tags: trunk)
11:58
Fix the PRAGMA case_sensitive_like command so that the LIKE function continues to be innocuous after the PRAGMA. Forum post 925dc9f67804c540. (check-in: 84c268c3 user: drh tags: trunk)
10:57
Fix an off-by-one error causing a buffer overread in test2.c. (check-in: e1edf95e user: dan tags: trunk)
09:26
Minor reshaping of Tester1 moving towards making a multi-threaded run mode. (check-in: f104c14c user: stephan tags: jni-threading)
09:16
Remove a piece of stray debug output. No functional changes. (check-in: 00ac6535 user: stephan tags: wasm-post-343)
2023-08-14
19:10
Fix the autoconf makefile for the CLI such that it disables double-quoted strings by default, as all other builds of the CLI do. forum post 9794b6aaa5. (check-in: 85fd4f0e user: drh tags: trunk)
18:21
Fix a problem in sqlite3_snapshot_recover() introduced by the [8a6b0c24937e855b] merge. (check-in: c2577eb0 user: dan tags: trunk)
17:12
Bring handling of the Java auto-ext handler more in line with the core in terms of locking and mutability during traversal. This removes the explicit synchronous requirement from the Java open() and auto-ext bindings. (check-in: 42994b95 user: stephan tags: jni-threading)
14:21
Remove some obsolete, commented-out makefile code. No functional or build changes. (check-in: ea574cd5 user: stephan tags: wasm-post-343)
13:33
Change the name of the ".binary" command in the CLI to ".crnl". The sense of the setting is inverted. The original ".binary" still works for backwards compatibility but is now undocumented. ".crnl" is also undocumented on machines where it is a no-op (all machines other than Windows). forum thread 8bd0b0fbdbc12477 (check-in: 544de2da user: drh tags: trunk)
13:27
More work on the JNI-specific mutexes. Rework the NativePointerHolder cache lookup to be slightly simpler and O(1) instead of O(N). (check-in: c84ded0e user: stephan tags: jni-threading)
12:20
Fix harmless compiler warnings reported by MSVC. (check-in: 391e21bb user: drh tags: trunk)
12:05
Enable SEH be default in Windows builds. (check-in: faae792f user: drh tags: trunk)
08:28
JNI-internal docs and removal of obsolete code. (check-in: b62d9325 user: stephan tags: jni-threading)
2023-08-13
20:58
Internal API renaming for clarity's sake. (check-in: 911e4fc5 user: stephan tags: jni-threading)
12:40
Add a mutex for auto-extensions, tied in to the open() process since that's the route into auto-extensions. (check-in: 8da97e0d user: stephan tags: jni-threading)
10:28
Add some docs and metrics for the new mutex internals. (check-in: 33d1780b user: stephan tags: jni-threading)
10:22
Remove SQLITE_DEBUG from JNI build. (check-in: 82f004cf user: stephan tags: trunk)
09:53
An initial attempt at protecting the JNI global state via mutexes at the C level instead of relying on Java's synchronized keyword. It seems to work but increases the run time of the single-threaded SQLTester batch by roughly 3 times. (Correction: it was just run on a slower machine. Cursory testing suggests that runtime performance hit might be, but likely isn't, as high as 10%.) (check-in: c64e6a52 user: stephan tags: jni-threading)
2023-08-12
23:47
Bind sqlite3_interrupt() and sqlite3_is_interrupted() to JNI but with caveats regarding mutexing of the JNIEnv cache. Add a loud warning to the JNI 'dist' target that it should be built with JDK8 (a.k.a. Java 1.8) for compatibility reasons. (check-in: fbf99a24 user: stephan tags: jni-threading)
21:39
Merge the Java Native Interface (JNI) binding into trunk. (check-in: 48b13edc user: stephan tags: trunk)
21:08
Update wasm's push-testing rule to exclude files which were recently removed from the build. (check-in: 0a6930a7 user: stephan tags: trunk)
20:50
Correct JNI .jar rules to only include *.java/class files, not *.* (*~ files). (Closed-Leaf check-in: 1ba77540 user: stephan tags: jni)
19:58
Fix the mdevtest target so that it works with msvc. (check-in: 01f49448 user: dan tags: trunk)
19:25
Fix testrunner.tcl so that it restarts itself using [testfixture] if its current interpreter does not support [package require sqlite3]. (check-in: 408be98d user: dan tags: trunk)
18:23
Have the mdevtest target support the OPTS variable on unix. (check-in: 940f58d9 user: dan tags: trunk)
17:36
Add "mdevtest" target to makefiles. Equivalent to running "devtest" on both debug and non-debug builds. (check-in: af354fbc user: dan tags: trunk)
15:37
More JNI docs. (check-in: 290028d3 user: stephan tags: jni)
15:09
Further simplifications in the interface of the OutputPointer family of Java classes. (check-in: 962c3e0d user: stephan tags: jni)
12:16
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: d2b0ddcc user: drh tags: reuse-schema)
10:39
Tweaks and docs for the OutputPointer family of Java classes. (check-in: 265c8fd0 user: stephan tags: jni)
10:27
Bind sqlite3_db_status() to JNI. (check-in: b79477a0 user: stephan tags: jni)
10:06
Bind sqlite3_status(64)() to JNI. (check-in: cefb6614 user: stephan tags: jni)
2023-08-11
22:40
Modernize the sqlite3 shell man page a bit, per forum request. (check-in: 3bc0693c user: stephan tags: trunk)
21:25
Add timing info to SQLTester. (check-in: b69b5fac user: stephan tags: jni)
21:24
Merge trunk into jni branch. (check-in: 4f0aeeba user: stephan tags: jni)
20:32
Fix a makefile deps problem which caused ext/jni build to fail if sqlite3.c/h were not created beforehand. (check-in: 101de670 user: stephan tags: jni)
19:38
Merge latest trunk changes, including support for handling of structured-exceptions in MSVC builds, with this branch. (check-in: cb3cf9ba user: dan tags: begin-concurrent)
19:36
Merge latest wal2 changes, including support for handling of structured-exceptions in MSVC builds, with this branch. (check-in: 331f2f3e user: dan tags: bedrock)
19:33
Merge latest trunk changes, including support for handling of structured-exceptions in MSVC builds, with this branch. (check-in: 00bfae9f user: dan tags: wal2)
19:31
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: 8a6b0c24 user: dan tags: trunk)
18:59
Minor SQLTester test tweaks and have 'make tester' include the out-of-tree tests if they are found. (check-in: 6c8538d8 user: stephan tags: jni)
18:31
Fix a problem with handling savepoints in BEGIN CONCURRENT transactions. (check-in: ca422d00 user: dan tags: bedrock)
18:25
Fix a problem with handling savepoints in BEGIN CONCURRENT transactions. (check-in: 4a5c0439 user: dan tags: begin-concurrent)
18:04
Bind sqlite3_sql() and sqlite3_expanded_sql() to JNI. Start marking C-side functions which would need explicit mutex support if we remove 'synchronized' from their Java entry points (but there are many more left to mark). (check-in: c7fb32d1 user: stephan tags: jni)
17:45
Add a doc link for the new sqlite3_js_posix_create_file(). (check-in: 0d7aac45 user: stephan tags: trunk)
17:38
Add sqlite3.capi.sqlite3_js_posix_create_file() and oo1.OpfsDb.importDb() as alternatives for the newly-deprecated sqlite3_js_vfs_create_file(). (check-in: da6eaf8d user: stephan tags: trunk)
14:31
Deprecate sqlite3_js_vfs_create_file() because, it was discovered today, its out-of-scope use of the sqlite3_vfs, sqlite3_file, and sqlite3_io_methods APIs triggers unresolvable assertions in the core when built with SQLITE_DEBUG. (check-in: f3647a3a user: stephan tags: trunk)
11:46
Merge all the latest trunk enhancements into the bedrock branch. (check-in: 859932eb user: drh tags: bedrock)
11:40
Merge the latest trunk enhancements into the wal2 branch. (check-in: fe1bf30c user: drh tags: wal2)
11:34
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 7cb2b4e3 user: drh tags: begin-concurrent)
11:30
Provide the -DSQLITE_LEGACY_JSON_VALID compile-time option to restore the (incorrect) legacy behavior of json_valid(NULL). (check-in: 00bc9f1b user: drh tags: trunk)
11:24
Fix bug in the test case for the previous check-in. (Closed-Leaf check-in: c5daae88 user: drh tags: legacy-json-valid)
11:23
Update test scripts specific to this branch so that they work on windows. (check-in: f0ca13ed user: dan tags: wal2)
11:12
Up until version 3.42.0, there was a bug in json_valid() such that it would return False (0) for a NULL input. That bug is fixed in 3.42.0. This check-in adds a compile-time option -DSQLITE_LEGACY_JSON_VALID that restores the old buggy behavior for applications that depend on it. (check-in: 15c2eadb user: drh tags: legacy-json-valid)
2023-08-10
21:50
Mark _all_ JNI binding funcs as synchronized so that Java can lock them and protect our global-state access. The alternative is writing a mountain of C-side code to do the same thing. (check-in: afe190a9 user: stephan tags: jni)
21:29
Work around jdk8 and jdk19 mangling the C name of sqlite3_db_config() differently. Correct the variadic arg handling of the JNI-side subset of sqlite3_db_config() options. (check-in: 746894c3 user: stephan tags: jni)
21:20
Add tests for structured-exception-handling and wal2. Fix a problem with the same. (Leaf check-in: 87242777 user: dan tags: wal2-shm-exceptions)
20:52
Add a working dist zip file for the JNI bits. (check-in: d6a4d212 user: stephan tags: jni)
18:58
Experimental merge of the wal-shm-exceptions and wal2 branches. (check-in: fd58c616 user: dan tags: wal2-shm-exceptions)
18:57
Initial pass at 'make dist' rules for the JNI bundle, but they still need a bare-bones, posix-make-compatible makefile to include in the bundle. (check-in: ff54e66a user: stephan tags: jni)
18:50
New testcase() macro in the tokenizer, to better document its behavior. (check-in: b2fdac0b user: drh tags: trunk)
17:39
Merge trunk into jni branch for the newly-relocated version-info tool. (check-in: cc8e8cba user: stephan tags: jni)
17:32
Move ext/wasm/version-info.c to tool/ for re-use in build other dist bundles. (check-in: 4b0871fd user: stephan tags: trunk)
17:07
Merge latest trunk changes into this branch. (Leaf check-in: 3ed89c34 user: dan tags: wal-shm-exceptions)
17:04
Mark test script wal2big.test as "TESTRUNNER: slow". (check-in: ae7f3bcb user: dan tags: wal2)
17:03
Merge latest trunk changes into this branch. (check-in: 72f7807b user: dan tags: wal2)
16:42
Add SQLTester --keep-going flag to allow it to continue to the next script after an error. (check-in: 4d635f78 user: stephan tags: jni)
13:10
Document that auto-extensions registered via JNI will fail if they open a db (to avoid triggering an endless loop in the auto-extensions). Discover the hard way that JDKv19 creates different mangled JNI names for some functions than JDKv8. Start reformatting much of the JNI API decls in prep for making them even longer. (check-in: 99c0941f user: stephan tags: jni)
12:36
Resolve two assertions in the auto-extension JNI which were triggered via new SQLTester infrastructure. Move SQLTester's db-init SQL injection into an auto-extension. (check-in: 2952906c user: stephan tags: jni)
11:15
Make test completion status more visible at a glance on modern terminals. (check-in: a4e96c30 user: stephan tags: jni)
11:04
Disable REQUIRED_PROPERTIES handling in SQLTester, per /chat. Scripts with that directive are now skipped. (check-in: ddc534cb user: stephan tags: jni)
10:58
Add a visual indicator (emoji) to TestScript verbose messages, dependent on the message's level of verbosity. (check-in: dc323d38 user: stephan tags: jni)
10:44
Add the current --testcase name to SQLTester --verbose output. (check-in: f8736740 user: stephan tags: jni)
10:34
More SQLTester docs. Add --verbosity command to help zoom in on script areas while debugging. Spice up test-start/end output with some emoji. (check-in: 8dd08021 user: stephan tags: jni)
05:25
Give DbException the option of closing the db to simplify error handling in one case. (check-in: 908c9a44 user: stephan tags: jni)
05:14
Initial version of REQUIRED_PROPERTIES support for SQLTester, with TEMPSTORE_(FILE/MEM) and RECURSIVE_TRIGGERS options. (check-in: 48d16c9d user: stephan tags: jni)
04:24
Generic cleanups and fixes in SQLTester. (check-in: fc5d3cc3 user: stephan tags: jni)
02:09
Change the SQLite3Jni API annotations to use SOURCE retention (used only at compile-time). (check-in: 3c3fea6b user: stephan tags: jni)
01:44
Move all of the SQLTester code into a single file, since it's only got 1 public class. Remove 'public' from many methods which don't need it. Add more documentation to it. (check-in: 2815d676 user: stephan tags: jni)
01:19
Defer static JNI-side init of SQLTester until main() is called so that its auto-extensions do not leak over to clients of the main library. (check-in: e461fdd5 user: stephan tags: jni)
01:05
Merge trunk into jni branch. (check-in: 52fa6f78 user: stephan tags: jni)
01:03
Treat all args to --glob as a single glob. (check-in: 4737bd34 user: stephan tags: jni)
00:58
Remove --print's ability to read ahead. (check-in: 15cfee97 user: stephan tags: jni)
00:34
Replace the SQLTester infrastructure with a line-oriented, non-regex-heavy parser. Add --column-names command. (check-in: 88863908 user: stephan tags: jni)
2023-08-09
23:47
Port the SQLTester 'v1' commands to the 'v2' evaluation bits. Still TODO is swapping out v1 with these separate impls. (check-in: 0cf57e5b user: stephan tags: jni)
22:30
Correct REQUIRED_PROPERTIES handling to not fail if there are no properties. (check-in: 7a19bef4 user: stephan tags: jni)
22:18
More for the SQLTester rework. Can read input and dispatch commands, but only --print is currently implemented. (check-in: 4fa2ad33 user: stephan tags: jni)
19:51
Initial sketches of a line-by-line parser for SQLTester to overcome its compatibility shortcomings. Far from complete. (check-in: 43534cd0 user: stephan tags: jni)
18:25
Adapt TestScript to skip REQUIRED_PROPERTIES, per [7a07863e082664da], and improve a couple of adject reasons-for-skipping messages. (check-in: f937097e user: stephan tags: jni)
17:47
Add an extra constraint to the test-script-interpreter.md spec. (check-in: 7a07863e user: drh tags: jni)
17:23
SQLTester --result command: do not double-{}-wrap error messages and do not throw on db error. (check-in: f7be20f5 user: stephan tags: jni)
17:04
Move the test command body's trim() back into the TestScript class (to simplify Command-level code) but do it after double-verbose has had the chance to emit it as-is (so that debug output is not mangled by the trim). (check-in: f15ecb68 user: stephan tags: jni)
16:56
Tweak the SQLTester --verbose and double-verbose output a bit for legibility. (check-in: 46b79afa user: stephan tags: jni)
16:29
Strip --oom commands from SQLTester input since (A) we can't currently do anything with them and (B) they can appear as body content of --testcase commands and the current parser cannot deal with that. If --verbose is provided once, emit the name and args of each command as it's run. If --verbose is used twice or more, also emit the command's body text, if any. (check-in: 0770e846 user: stephan tags: jni)
16:03
Update the definition of "special characters" for the SQLTester and correct the code to match it. (check-in: 217f6e0c user: stephan tags: jni)
15:46
Extend TestScript to be able to report why it should be skipped. Expand the test-skipping rules to account for the current spec doc. Add the {} empty-string case to the spec doc. (check-in: 4fcc8cb0 user: stephan tags: jni)
14:47
Add a test for the --null command. (check-in: 83ac815d user: stephan tags: jni)
14:43
Extend SQLTester glob support with '#'. (check-in: 756ef83f user: stephan tags: jni)
14:24
Implement the SQLTester's result escaping rules. (check-in: 61bb9508 user: stephan tags: jni)
13:51
Add --json and --json-block SQLTester commands. (check-in: 478129d9 user: stephan tags: jni)
13:16
Add SQLTester --tableresult command. (check-in: 8c5b6d89 user: stephan tags: jni)
12:05
Clean up the SQLTester output a bit by using the module name, instead of filename, where appropriate. (check-in: 5323e4fd user: stephan tags: jni)
11:10
Document SQLTester's --print command and add some argument validation to it. (check-in: ab9c945b user: stephan tags: jni)
11:05
Rework how SQLTester's Command objects are dispatched and how TestScript stores its command entries. (check-in: f929f1f7 user: stephan tags: jni)
09:56
Some minor tweaks in SQLTester in prep for larger refactoring. (check-in: 1d93f93a user: stephan tags: jni)
2023-08-08
22:10
Remove the current-statement tracking from the JNI internals because it will break down in the face of client-side mixed-mode native/java code, e.g. in cases like SQLTester. This makes tracing of sqlite3_stmt a micron slower but also reliably correct. (check-in: 4c0ec89d user: stephan tags: jni)
21:22
Adapt JNI build to be buildable with or without SQLTester. (check-in: adae7d78 user: stephan tags: jni)
21:05
Add SQLTester dup() and dup_count() UDFs. Correct arg handling of the --run command. (check-in: 0dba3073 user: stephan tags: jni)
20:41
Correct --result arg count check and add infrastructure to let us add custom C-side behavior to SQLTester via an auto extension. (check-in: bb832170 user: stephan tags: jni)
20:15
If SQLTester now treats a no-args --result as comparing against an empty string. (check-in: 49005ca5 user: stephan tags: jni)
20:02
Add glob/notglob commands to SQLTester and complete the interrupted-midway impls of the strglob() and strlike() JNI bindings. (check-in: 4ba98ec0 user: stephan tags: jni)
19:20
When SQLTester hits an unknown command, emit a warning and skip the rest of that script instead of aborting the whole run, per /chat discussion. Reduce verbosity a bit. (check-in: 3e78d22d user: stephan tags: jni)
17:36
Minor cleanups in sqlite3Int.h. By reordering some fields in the Parse object, it packs more tightly and uses less memory and less CPU to initialize. (check-in: aa6de539 user: drh tags: trunk)
16:53
Fix an issue in the amalgamation generator in which it was not correctly expanding the SQLite version in the header comment. (check-in: 293f6191 user: drh tags: trunk)
14:58
Correct the spacing output of multi-select SQL blocks for SQLTester --result. (check-in: 8d98645a user: stephan tags: jni)
14:49
Updates to the test script interpreter spec: Rather than failing immediately upon encountering an incompatibility, simply abandon the rest of that particular input file. (check-in: d2c99b96 user: drh tags: jni)
14:40
A number of baby steps for SQLTester.java. It can now handle basic --result cases. (check-in: 0404f688 user: stephan tags: jni)
14:25
Add a few words of clarification on how the SQLite Test Script Interpreter should be initialized to start each test script. (check-in: 3aa2b5a5 user: drh tags: jni)
13:05
Correct JNI sqlite3_prepare() to emit a null stmt handle when the C counterpart succeeds but results in a NULL pointer. (check-in: 94628f88 user: stephan tags: jni)
11:46
Implement the new/open/close SQLTester commands. (check-in: dc823bf0 user: stephan tags: jni)
11:46
Add a JNI-layer sqlite3.toString() for debugging. (check-in: 45669164 user: stephan tags: jni)
10:58
Bind sqlite3_strlike/strglob() to JNI. (check-in: eb5440f7 user: stephan tags: jni)
09:45
SQLTester: add print command and improve argument error reporting infrastructure. (check-in: 1b6e84f6 user: stephan tags: jni)
00:59
Add missing license header. Minor cleanups in SQLTester. (check-in: 5be50fd5 user: stephan tags: jni)
00:37
Rework SQLTester dispatching and add stub impls for several commmands. (check-in: 9e61af75 user: stephan tags: jni)
2023-08-07
23:59
Add command dispatcher to SQLTester. (check-in: e0a06931 user: stephan tags: jni)
23:04
SQLTester now ignores tests which contain constructs specified in the spec doc. (check-in: ecaeee65 user: stephan tags: jni)
22:32
SQLTester can now split a test script into a series of individual commands. (check-in: d3d1accc user: stephan tags: jni)
22:02
SQLTester can now read a script and strip it of all noise content. (check-in: 59bd3928 user: stephan tags: jni)
21:04
Initial skeleton for adding an SQL-driven test script interpreter for the JNI bindings. (check-in: 2aa8f0ed user: stephan tags: jni)
17:09
Enhance sqlite3_vtab_nochange() so that it works with "UPDATE ... FROM ..." statements. Use this to allow some updates on fts5 contentless-delete tables. (check-in: 27ff86e4 user: dan tags: trunk)
16:15
Changes so that sqlite3_vtab_nochange() works with "UPDATE ... FROM...". Use this to allow UPDATE on a contentless fts5 table if new values are supplied for all indexed columns. (Closed-Leaf check-in: 16cd2161 user: dan tags: fts5-contentless-delete)
11:18
When converting a Java exception to a db error message, use Throwable.toString() instead of getMessage() so that the exception type's name is included. More internal API renaming for consistency. (check-in: 2d44720d user: stephan tags: jni)
10:59
Lots of JNI internal API renaming, for consistency, and moving-around of utility functions. Make it safe for more callback types to throw. (check-in: 9a494394 user: stephan tags: jni)
10:01
JNI API renaming to better match the C API. (check-in: 6e0bd03d user: stephan tags: jni)
09:44
Rename fts5_api pContext parameters to pUserData, per /chat discussion. This is a cosmetic change made to reduce confusion between those parameters and the two other context-type parameters in that API. (check-in: 2ca064d8 user: stephan tags: trunk)
01:06
Make sqlite3_stmt() Java ctor private - it's only constructed from JNI code. (check-in: ce82c42f user: stephan tags: jni)
00:29
Minor internal cleanups and additional test metrics. (check-in: fa0a6b6e user: stephan tags: jni)
00:06
Bind the auto-extension APIs to JNI. (check-in: 746a5fa0 user: stephan tags: jni)
2023-08-06
22:09
Rework the sqlite3_open(_v2)() order of operations so that pending auto-extension support can get ahold of the open-time Java state despite the Java/C (sqlite3*) binding not having yet been established. (check-in: 34da294a user: stephan tags: jni)
21:29
Completely rework how the JNI sqlite3_open(_v2) and sqlite3_prepare(_vN)() bindings deal with output pointers to give the JNI side full control over the origin of db and stmt handles (necessary for solving chicken/egg situations in auto-extensions and prepare-time trace). Lots of adjacent internal API renaming. (check-in: 644999ca user: stephan tags: jni)
20:01
Start adding JNI-side support for auto extensions, but hit a brick wall which requires slightly awkward semantics changes in the JNI bindings for sqlite3_open(_v2)() to resolve, so stash this #if'd out for the time being. (check-in: 77a32d23 user: stephan tags: jni)
15:01
Doc cleanups. (check-in: 5f56b007 user: stephan tags: jni)
14:19
Bind sqlite3_config() to JNI for call variants taking (int,int*) and (int,const char *) variadic arguments. (check-in: 6119289d user: stephan tags: jni)
13:02
JNI-internal cleanups and API renaming. Add a C-side java-string-to-utf8 conversion. (check-in: 672d8579 user: stephan tags: jni)
11:05
Remove doc outdated warning about sqlite3_trace_v2() JNI binding being incompatible with MUTF-8. Use new to-string capability to simplify Fts5ExtensionApi::xColumnText() JNI binding. (check-in: ebcfc237 user: stephan tags: jni)
10:49
Add a way to convert from standard UTF-8 to a Java string (JNI lacks this capability). (check-in: 07dd082c user: stephan tags: jni)
10:14
Bind sqlite3_db_filename() and (closely related) (A) add many more docs about the UTF-8/MUTF-8 discrepancy (B) start adding internals to enable us to perform the standard-UTF-8-to-Java conversion from C. (check-in: 586720fa user: stephan tags: jni)
2023-08-05
22:41
Bind sqlite3_set_authorizer() to JNI. (check-in: e0fa0313 user: stephan tags: jni)
21:35
Refactor the per-JNIEnv cache from a fixed-size static array to a linked list of dynamically-allocated entries. Uncache all per-db state (which is necessarily JNIEnv-specific) when the corresponding JNIEnv is uncached. (check-in: 9dd8b784 user: stephan tags: jni)
20:19
Add SQLite3Jni.uncacheJniEnv(), a way for Java threads to clear their thread-specific cached state from the JNI bindings when they're about to terminate (or are otherwise done using the library). (check-in: 7468f876 user: stephan tags: jni)
19:20
In the JNI docs, note that the sizeof SQLITE_TRANSIENT and SQLITE_STATIC should ideally be the same as the platform's pointer size. (check-in: 7d4ac44e user: stephan tags: jni)
19:15
Tiny doc typo fixes from forum post 31eb707250. No code changes. (check-in: 8ede5008 user: stephan tags: trunk)
12:48
JNI internal refactoring and cleanups. (check-in: 7397973a user: stephan tags: jni)
11:16
Bind Fts5ExtensionApi::xUserData() to JNI and extend xCreateFunction() to accept that argument. In test code, use assert() instead of exceptions if assert() is enabled so that test failures (exceptions) thrown via callbacks do not get suppressed (which they otherwise necessarily are to avoid crashing the host app). (check-in: e4383737 user: stephan tags: jni)
04:30
Add missing Fts5PhraseIter.java to the build. (check-in: 96281ad0 user: stephan tags: jni)
04:23
Bind fts5_api::xCreateFunction() to JNI and demonstrate it with a test. (check-in: c653bf16 user: stephan tags: jni)
01:28
Start adding fts5_api to JNI. (check-in: 14d18fe9 user: stephan tags: jni)
00:40
Bind the remaining Fts5ExtensionApi methods to JNI, noting that all are completely untested because the higher-level bits needed to do so are still missing. (check-in: 23383c1d user: stephan tags: jni)
2023-08-04
16:01
In the opfs-sahpool VFS's importDb() and exportFile() methods, throw if the actually-wrote/read amounts differ from the expected-to-write/read amounts, per feedback in forum post a4122e986f. (check-in: a617ebf4 user: stephan tags: trunk)
15:38
More work on the JNI binding of fts5 customization (still a long ways to go). (check-in: 1a246fd2 user: stephan tags: jni)
13:29
Merge the json_remove() bug fix from trunk into the bedrock branch. (check-in: a8872aa5 user: drh tags: bedrock)
13:27
Eliminate code duplication in the two JNI tester classes. (check-in: 63e7bbe3 user: stephan tags: jni)
13:24
Merge the json_remove() bug fix from trunk into the wal2 branch. (check-in: e6c066ca user: drh tags: wal2)
13:19
Fix a bug in the jsonLookup() routine used to search JSON. Bug was introduced by the recent (unreleased) JSON caching enhancements check-in [a4c1af616e672a0d] merged into trunk at [df099ad713011b67]. (check-in: ba7a66db user: drh tags: trunk)
13:03
FTS-related JNI refactoring. Move FTS-specific tests into their own class and dynamically load it, if possible, from the main test app. (check-in: b7a8428f user: stephan tags: jni)
12:44
More work towards binding FTS5 customization to JNI. Add Fts*.java files missing from previous checkin. (check-in: 91263178 user: stephan tags: jni)
11:10
Change comment on Fts5ExtensionApi.iVersion from "always set to 3" to "always set to 2". (check-in: b7de399c user: dan tags: trunk)
11:08
Start including fts5 customization bits into JNI, but it's far from functional. (check-in: abaf5edd user: stephan tags: jni)
09:53
Improve internal error handling in the JNI create_function() impl. (check-in: 2c88390f user: stephan tags: jni)
08:45
Resolve the timing/ordering issue of a JS-to-WASM-converted xDestroy() function being uninstalled from WASM right before the underlying native call tries to call it. This has been a long-unnoticed bug which appears only when removing such functions or replacing them. (check-in: 031c9a76 user: stephan tags: trunk)
08:41
Part 2 of the fix from [a0f808363318c00fd1db78b]. (check-in: 5c310422 user: stephan tags: trunk)
08:39
More work towards fts5 customzation in JS. (Leaf check-in: ce2a65d8 user: stephan tags: wasm-fts5)
2023-08-03
23:26
Merge the latest trunk enhancements into the bedrock branch. (check-in: 877ffece user: drh tags: bedrock)
23:22
Merge the latest trunk enhancements into the wal2 branch. (check-in: 6fa71e11 user: drh tags: wal2)
22:43
Minor internal cleanups in the JS-side fts5 cleanup steps. (check-in: 2666f52e user: stephan tags: wasm-fts5)
21:14
Retain all xDestroy method WASM proxies created for fts5_api::xCreateFunction() until the db is closed, then free them all at once. (check-in: f4b9743a user: stephan tags: wasm-fts5)
20:45
Rework the fts5 db-close cleanup to avoid that fts5 internally calls a just-unbound-from-wasm xDestroy() method. There is still work to do here to cover the case of fts5 functions being replaced (in which all xDestroy methods have to be retained until the db is closed). (check-in: 795f2242 user: stephan tags: wasm-fts5)
20:02
Part 2 of the fix from [a0f808363318c00fd1db78b]. (check-in: ce0674b1 user: stephan tags: wasm-fts5)
18:46
Resolve the timing/ordering issue of a JS-to-WASM-converted xDestroy() function being uninstalled from WASM right before the underlying native call tries to call it. This has been a long-unnoticed bug which appears only when removing such functions or replacing then. (check-in: a0f80836 user: stephan tags: wasm-fts5)
18:14
Fix harmless scan-build warnings. (check-in: 65a8716d user: drh tags: trunk)
16:22
Fix a discrepancy between sqlite3_values_to_js() and its API docs/intended behavior. (check-in: 7b85c68f user: stephan tags: trunk)
16:21
More infrastructure towards binding FTS5 customization support to WASM. (check-in: 163e3e44 user: stephan tags: wasm-fts5)
16:02
Fix a discrepancy between sqlite3_values_to_js() and its API docs/intended behavior. (check-in: 16658b3c user: stephan tags: wasm-fts5)
13:30
Fix build problems associated with SQLITE_OMIT_WSD and SQLITE_OMIT_TRIGGER. (check-in: de031a5e user: drh tags: trunk)
13:07
Fix a test case whose value changes under the no_optimization permutation due to the recent change to add the ability for SQLITE_TESTCTRL_OPTIMIZATION to disable one-pass. (check-in: 976e39c6 user: drh tags: trunk)
12:41
Unix builds now assume the presence of nanosleep() in the standard library. The -DHAVE_NANOSLEEP=0 compile-time option can be used to build on systems (if any still exist) where this is not the case. (check-in: 779d5dc8 user: drh tags: trunk)
07:20
Initial work on exposing the FTS5 APIs to wasm, per request in the forum. This builds and loads the structs into JS but is completely untested. (check-in: 52c8b73a user: stephan tags: wasm-fts5)
2023-08-02
18:20
If a query has an ORDER BY clause that only refers to result columns of the left-most table and the left most table is a MATERIALIZED common table expresion, then attempt to push the ORDER BY clause down into the subquery. (Leaf check-in: 8e7a70b2 user: drh tags: order-by-push-down)
17:29
More JNI-internal docs. Correct handling of a Java exception if a trace callback throws. (check-in: 306b269a user: stephan tags: jni)
17:20
Internal doc additions in the JNI bits. (check-in: b5664364 user: stephan tags: jni)
16:06
Performance optimization for JSON rendering logic. (check-in: ea0b9aec user: drh tags: trunk)
13:45
Remove an unreachable branch in the ascii-to-floating-point conversion that was added by [e989a37ff9d5b52e]. (check-in: c4347e44 user: drh tags: trunk)
13:38
Stricter enforcement of the idea that a MATERIALIZED common table expression is an optimization fence. (check-in: 354425f8 user: drh tags: trunk)
13:29
Remove a condition from query flattening that is now taken care of by the caller. Factor out the reverse_unordered_selects processing from the main loop of sqlite3WhereBegin() for performance. (Closed-Leaf check-in: f068f105 user: drh tags: materialize-order-by)
12:39
Simplify the select.c logic that enforces the optimization fence around a MATERIALIZED common table expression. Do not allow the reverse_unordered_selects setting to affect a fenced CTE that itself has an ORDER BY clause. (check-in: 165b9bda user: drh tags: materialize-order-by)
11:06
Never flatten a CTE that is labeled MATERIALIZED. This is really something of a bug fix because the documentation says that a MATERIALIZED CTE is an optimization barrier. (check-in: b7ef9796 user: drh tags: materialize-order-by)
00:09
When a query is inside an AS MATERIALIZED CTE, do not attempt the omit-ORDER-BY optimization. If the developer specifies MATERIALIZED, that means he wants the sort to actually happen. (check-in: aa769ee7 user: drh tags: materialize-order-by)
2023-08-01
19:10
Avoid ASAN warnings when converting over-sized long double values into double. (check-in: e989a37f user: drh tags: trunk)
16:41
Filter the wasmfs-specific JS module result type check out of non-wasmfs builds. (check-in: ef7c1210 user: stephan tags: trunk)
16:38
Fix part 2 of 2 for /fiddle: a make deps problem which caused fiddle to load but fail to run when sqlite3.c was missing. (check-in: 6011bc26 user: stephan tags: trunk)
16:17
Fix part 1 of 2 for /fiddle not running: build flags which were renamed during refactoring. (check-in: 214ffeef user: stephan tags: trunk)
11:03
Fix an assert() in fts5_index.c that might fail when dealing with corrupt records. (check-in: aa55c83f user: dan tags: trunk)
10:19
More docs for the Java side of the JNI bindings. (check-in: d8e9bcee user: stephan tags: jni)
09:44
Internal exception-handling cleanups in the JNI bindings. (check-in: 057b1d4f user: stephan tags: jni)
08:48
Minor JNI-related doc tweaks and code re-ordering. (check-in: b663b27e user: stephan tags: jni)
01:07
Remove redundant comparison operator. (check-in: 01898432 user: drh tags: trunk)
00:34
Restore part of the UPDATE one-pass optimization that was removed by check-in [2c56b984a0bd3be5]: only disable one-pass if the WHERE clause contains a subquery. Allow subqueries in the SET expressions. Fix for performance problem reported by forum post 8ab195fd44e75ed0. (check-in: 42916af9 user: drh tags: trunk)
2023-07-31
22:03
Restrict the new column cache to table-btree, which is the common case anyhow. That way, writes to indexes do not need to clear the column cache. (check-in: 659284ab user: drh tags: trunk)
20:02
The original column-cache implementation from check-in [ab1edcc7fedcf279] (merged to trunk at [771fe35074b50b8d]) is unsound. This check-in fixes the issue. Had to give back a little performance, the optimization is still a overall win. (check-in: ec95e970 user: drh tags: trunk)
17:39
Add bit to sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS) that will disable the one-pass optimizating in DELETE and UPDATE. (check-in: 22f6dd5c user: drh tags: trunk)
17:20
Improved debug tracking of the Parse.nQueryLoop value. (check-in: 4a8a1749 user: drh tags: trunk)
13:52
Experimentally change the JNI sqlite3_trace_v2() callback type to have more convenient access to the current Java-side sqlite3_stmt at the cost of some uncomfortably fiddly current-statement tracking in the JNI layer. Subject to change. (check-in: 459db332 user: stephan tags: jni)
12:10
Add some JNI-internal metrics, accessible via passing -v when running Tester1.java. Document an OpenJDK bug which leads to incorrect -Xlint:jni warnings. (check-in: a5d68a6b user: stephan tags: jni)
10:55
Correct a mis-cast in the JNI wrapper which just happened to accidentally work. Update JNI binding of sqlite3_context_db_handle() to return the bound-at-open() db instance instead of a new/temp proxy object. (check-in: 9faca5d9 user: stephan tags: jni)
10:42
Add another test for JNI-bound scalar UDFs. (check-in: 8b322d92 user: stephan tags: jni)
10:22
Update some internal docs for the past two checkins. Add a way to dump out some debug info about the current JNI environment. (check-in: ac9b8bb1 user: stephan tags: jni)
10:08
Refactor the busy-handler-specific JNI hook type to use the generic hook type. (check-in: d9efdc6d user: stephan tags: jni)
09:45
Refactor the collation-specific JNI hook type to use the generic hook type. (check-in: 02c1d3b6 user: stephan tags: jni)
09:28
Internal JNI doc tweaks. (check-in: f4aa2c82 user: stephan tags: jni)
07:15
Consolidate triplicated xDestroy()-calling code. Remove some unnecessary casts. (check-in: 24c0763d user: stephan tags: jni)
2023-07-30
18:41
Internal JNI API renaming. (check-in: fcfc0706 user: stephan tags: jni)
17:24
Internal JNI refactoring towards consolidating support for callbacks with and without finalizers. (check-in: 120983a5 user: stephan tags: jni)
13:47
Mark the Java wrapper classes of the C-native types as 'final' (cannot be subclassed). (check-in: 4fd3d936 user: stephan tags: jni)
13:30
Minor tweaks and optimizations in the JNI bindings. (check-in: 41fb5898 user: stephan tags: jni)
11:36
Bind sqlite3_collation_needed() to JNI. Related adjacent cleanups and fixes. (check-in: 16ff1676 user: stephan tags: jni)
10:47
Internal JNI refacoring to support the pending sqlite3_collation_needed() callback. Correct a bug in the linked-list handling of PerDbStateJni which triggered an assert(). (check-in: 7ac6614e user: stephan tags: jni)
09:45
Incremental checkin to minimize the diff while narrowing in on an assertion caused by refactoring. (check-in: 2d7a91b1 user: stephan tags: jni)
08:12
Consolidate some warnings for java callbacks which must not throw but do. (check-in: 5e592ed2 user: stephan tags: jni)
07:44
Bind sqlite3_update_hook() to JNI. (check-in: a5bbaa90 user: stephan tags: jni)
06:44
Bind sqlite3_rollback_hook() to JNI. (check-in: 5f8ee440 user: stephan tags: jni)
06:00
Add commit hook failure to JNI tests. (check-in: be4459b4 user: stephan tags: jni)
05:50
Bind sqlite3_commit_hook() to JNI. (check-in: c687297f user: stephan tags: jni)
04:31
Bind sqlite3_progress_handler() to JNI. Add some metrics to Tester1.java. (check-in: 437ecfe8 user: stephan tags: jni)
03:54
Add tests for SAHPoolUtil.exportFile() and importDb(). (check-in: 4aa88b8f user: stephan tags: trunk)
2023-07-29
22:58
Do not try to add MEM_Term to an MEM_Static string either. (check-in: 8920dcef user: drh tags: trunk)
21:22
Do not try to apply MEM_Term to a MEM_Ephem strings. (check-in: 2a378a66 user: drh tags: trunk)
20:13
Fix a buffer overread in the fts5_structure virtual table (test code). (check-in: b837aff7 user: dan tags: trunk)
17:05
Simplification to the sqlite3_stmt_explain() implementation. (check-in: dd5eb4c7 user: drh tags: trunk)
15:53
SAHPoolUtil.importDb() now accepts either a byte array or ArrayBuffer. (check-in: 3848f04e user: stephan tags: trunk)
15:31
Enhancements to the new sqlite3_stmt_explain() interface implementation and documentation. (check-in: dc98ac6b user: drh tags: trunk)
2023-07-28
21:38
Fix doc error noted in the forum and a misspelling. (check-in: 6b79cc7d user: larrybr tags: trunk)
20:59
Do not allow the same JSON parse to be input to both arguments to the json_patch() routine. (check-in: 8e781c67 user: drh tags: trunk)
19:07
Merge the latest trunk enhancements into the wal-shm-exceptions branch. (check-in: c44fb4d0 user: drh tags: wal-shm-exceptions)
19:00
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: b8731493 user: drh tags: reuse-schema)
18:52
Merge the latest trunk enhancements into the bedrock branch. (check-in: 1d6ded32 user: drh tags: bedrock)
18:47
Merge the latest trunk enhancements into the wal2 branch. (check-in: c1fa1cb5 user: drh tags: wal2)
18:44
Internal JNI binding docs. (check-in: 991c6619 user: stephan tags: jni)
18:43
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 7407dda8 user: drh tags: begin-concurrent)
18:37
Add the sqlite3_stmt_explain() API. (check-in: 0443c0ef user: drh tags: trunk)
18:02
Fix an incorrect file path in ext/jni/README.md (check-in: bcefa2df user: stephan tags: jni)
16:12
Minor tweaks to the JSON performance measurement documentation. (check-in: 0bed957e user: drh tags: trunk)
15:58
Fix minor typos in the JNI README.md file. (check-in: e21cf2e8 user: drh tags: jni)
14:20
Enhancements to the JSON performance testing scripts and instructions to cover the recent optimizations involving updates to large JSON strings that indexed. (check-in: f9213289 user: drh tags: trunk)
13:52
JSON performance improvements: (1) Add a cache for large string values on OP_Column to avoid having to extract the string multiple times. (2) Internal JSON caching improvements. (check-in: 771fe350 user: drh tags: trunk)
12:59
A failed attempt to add a new sqlite3_result_zeroterminated() interface that is a hint to SQLite that a TEXT result does have a zero terminator. The idea is to avoid unnecessary copying of TEXT values. This seems like an unnecessary complication at the moment, but maybe I'll return to this later. Note that this check-in does not work - it is a proof of concept only. (Closed-Leaf check-in: a0de0110 user: drh tags: sqlite3_result_zeroterminated)
11:52
Correct a recently-introduced falsehood in ext/wasm/README.md regarding ssh port forwarding. (check-in: 2a3f3a9c user: stephan tags: trunk)
11:30
Mark an unreachable branch as ALWAYS(). (Closed-Leaf check-in: 8fd06d11 user: drh tags: json-opt)
10:37
Minor java cleanups recommended by a modern IDE. (check-in: f92a9bba user: stephan tags: jni)
10:01
Add Java tests which ensure that xFinal() is called with no aggregate context when the result set is empty. (check-in: 7ac8c66a user: stephan tags: jni)
09:54
Tweaks to the Java-side UDF docs. (check-in: 48e0079d user: stephan tags: jni)
09:25
More Java docs about making use of the aggregate context. Change the JNI mapping to set the sqlite3_context::aggregateContext member directly, instead of via a superflous setter, because that way is faster. (check-in: 7af0cb99 user: stephan tags: jni)
01:51
More docs and cleanups related to the aggregate UDF state. Correct the OOM check to behave properly if xFinal() is called without a matching xStep(), xValue(), or xInverse(). (check-in: ff53f1cc user: stephan tags: jni)
01:19
Add an OOM check to the previous check-in. Minor internal API renaming. (check-in: 6b56e4d6 user: stephan tags: jni)
01:12
Add support making use of sqlite3_aggregate_context() (in a roundabout way) from Java to accumulate state within aggregate and window UDFs. (check-in: 64057498 user: stephan tags: jni)
00:54
Remove some unnecessary and incorrect code that was mistakenly added in the previous check-in. (check-in: d3f458dc user: drh tags: json-opt)
2023-07-27
23:51
Switch to using jsonParseCached() for json_patch(). (check-in: 2ed9c59e user: drh tags: json-opt)
22:53
Reformulate jni tests to not require the -ea jvm flag to enable assert(). (check-in: dc356667 user: stephan tags: jni)
22:42
Add locking test for BusyHandler and clear up new -Xlint:jni warnings introduced by the busy-handler binding. (check-in: 7dcde2bf user: stephan tags: jni)
22:05
Bind sqlite3_busy_handler(). Correct mapping of pointers for, and cleanup of, JNI-level per-db state. (check-in: 52474779 user: stephan tags: jni)
20:32
Replace some www: interwiki references in the JNI readme with their full URLs to make the doc more portable. (check-in: 63ce0c9b user: stephan tags: jni)
20:28
If the input JSON to a json function that uses cache comes from an RCStr value, then use that RCStr value in the parse rather than making a copy. (check-in: 509ae9c1 user: drh tags: json-opt)
20:12
Merge trunk into jni branch for compiler warning fixes. (check-in: 0514fd34 user: stephan tags: jni)
20:08
Fix a couple of compiler warnings in fts5_index.c. (check-in: bf71faa2 user: dan tags: trunk)
20:02
Initial check-in of JNI (Java Native Interface) bindings for the core C API. (check-in: b5374b9e user: stephan tags: jni)
19:39
The OP_Column opcode caches large column values coming from overflow pages. (check-in: ab1edcc7 user: drh tags: json-opt)
19:13
Add the contentless_delete=1 option to fts5. For creating contentless tables that support DELETE and REPLACE statements. (check-in: d66b182d user: dan tags: trunk)
18:19
Merge trunk enhancements into the json-opt branch. (check-in: 5739a16a user: drh tags: json-opt)
17:50
Dynamically determine whether the wasm.xWrap() argc check can be applied, depending on how the wasm environment exposes its exports. (check-in: fd59226b user: stephan tags: trunk)
15:00
Dynamically determine whether the wasm.xWrap() argc check workaround for JSPI is necessary, instead of baking it in to JSPI builds. (Edit: closing jspi branch. Introducing JSPI would require making parts of the C API wrapper async.) (Closed-Leaf check-in: 86bb464f user: stephan tags: jspi)
01:38
Accommodate a breaking change in emcc 3.1.44. (check-in: 2c5dd341 user: stephan tags: trunk)
01:35
Accommodate a breaking change in emcc 3.1.44. (check-in: 4ce38603 user: stephan tags: jspi)
00:21
Fix a performance regression in JSON associated with generating small snippets of JSON from a larger JSON string. See forum thread 15d6bd9cd37202a7. (check-in: 837f2907 user: drh tags: trunk)
2023-07-26
23:22
Reduce the number of memory allocations when parsing JSON. (check-in: 9edd6716 user: drh tags: trunk)
21:53
Minor changes to make coverage testing easier. (check-in: ec8b4338 user: drh tags: trunk)
19:22
Change a switch() case to default for coverage. (check-in: 04f49707 user: drh tags: trunk)
19:11
Make sure jsonReplaceNode() always leaves the JsonParse in a consistent state even if an error is encountered. (check-in: 01d52232 user: drh tags: trunk)
18:34
Add a comment describing the contents of the ExceptionInformation[] array for win32 EXCEPTION_IN_PAGE_ERROR exceptions. No changes to code. (check-in: 8e203542 user: dan tags: wal-shm-exceptions)
18:13
Make sure jsonReplaceNode() always leaves the JsonParse in a consistent state even if an error is encountered. (Closed-Leaf check-in: 29c7b1cb user: drh tags: mistake)
18:11
Initial experimentation with getting JSPI (JavaScript Promise Integration) support working. It builds, but requires disabling func argument count validation checks on sqlite3.wasm.xWrap()-processed exports and it crashes cryptically in wasm when the tests are run. (check-in: 5b178f92 user: stephan tags: jspi)
17:51
Add the ".scanstats vm" command to the shell tool. For profiling VM code in SQLITE_ENABLE_STMT_SCANSTATUS builds. (check-in: 0cbec399 user: dan tags: trunk)
16:41
Improve the output when ".scanstats vm" is enabled. (Closed-Leaf check-in: 7df08fd3 user: dan tags: scanstatus-exp)
14:18
Improved caching and reuse of JSON parses. (check-in: df099ad7 user: drh tags: trunk)
13:17
Change the debugging "json_parse(X)" function so that it shows a more complete description of the JsonParse object on standard output and returns the mimified JSON. Former behavior was to return the text of a decode of the aNode array. (check-in: 1bf85d4e user: drh tags: json-opt)
11:53
More comment improvements in json.c. Do not run jsonLookup() following an OOM error. (check-in: cd5fda8c user: drh tags: json-opt)
11:43
Improved comments and other cleanup for the changes on this branch. (check-in: bac953a8 user: drh tags: json-opt)
11:41
Remove the batch SQL runner from the JS build's 'all' target, as it's long-since unused and adds noticable build time. Add makefile comments about JSPI. (check-in: b8f708e3 user: stephan tags: trunk)
11:11
Add SAHPoolUtil.getFileNames() method, and tests for it, per forum feedback. Add a test to demonstrate that two SAH pools can coexist so long as they have different names. (check-in: 72dc3f8c user: stephan tags: trunk)
11:00
Fix jsonForceRCStr() to also add the NULL terminator. (check-in: 134b01f3 user: drh tags: json-opt)
07:57
Reformulate [907dfc4a7aa1] using awk instead of sed for better cross-platform portability. (check-in: 82ff7cc6 user: stephan tags: trunk)
01:15
Merge the latest trunk fixes into the json-opt branch. (check-in: ef4e1664 user: drh tags: json-opt)
01:12
Add the concept of an RCStr string - a "Reference Counted String". Use these to keep track of big JSON strings that might need to be used in multiple places at the same time with different lifetimes. Add two different JSON string values to each parse - one with and one without changes. The net result is a large reduction in the number of parses that occur when doing an UPDATE of a indexed JSON field using json_replace() or similar. (check-in: a4c1af61 user: drh tags: json-opt)
01:05
Extend the enhancement to json_set() and json_replace(). Clean up cruft. (Closed-Leaf check-in: 2dbb22c7 user: drh tags: json-opt-rcstr)
00:48
Add the JsonParse.zAlt field to old revised JSON text after a change. Demonstrate that this elminates the need for reparsing after a change by using it in the json_remove() function. This is an incremental check-in containing lots of cruft. (check-in: f930b139 user: drh tags: json-opt-rcstr)
2023-07-25
20:26
Clarify ownership of the various objects involved in parsing JSON. (check-in: afe02a39 user: drh tags: json-opt-rcstr)
18:28
Incremental improvements to JSON parsing - trying to fold in the RCStr object. (check-in: 4cb15d93 user: drh tags: json-opt-rcstr)
17:54
Fix a harmless "set-but-not-used" compiler warning in sqlite3session.c. (check-in: 54b3c43f user: dan tags: trunk)
17:11
Merge trunk changes into this branch. (Closed-Leaf check-in: 719973d7 user: dan tags: fts5-contentless-delete)
16:48
Add extra test for 'deletemerge'. (check-in: bc33cff4 user: dan tags: fts5-contentless-delete)
15:48
Change the name of the fts5 'delete-automerge' option to 'deletemerge'. And add tests for it. (check-in: 1079300d user: dan tags: fts5-contentless-delete)
15:43
Fix a minor problem with error reporting in JSON. (check-in: c456e4a8 user: drh tags: json-opt-rcstr)
15:08
Create the new RCStr class of strings and try to use them for JSON storage. (check-in: c1b87250 user: drh tags: json-opt-rcstr)
13:53
Further tests for 'delete-automerge'. (check-in: ca26c7a3 user: dan tags: fts5-contentless-delete)
12:26
Reformulate a (sed -i) construct in ext/wasm/GNUmakefile to account for Mac's sed -i being different than GNU's. (check-in: 907dfc4a user: stephan tags: trunk)
00:13
First attempt to cache modified JSON parses. Does not work. This is an incremental check-in. (Leaf check-in: 075eb09a user: drh tags: json-opt-wcache1)
2023-07-24
23:27
It is an error to try to insert a BLOB value into JSON. (check-in: 28c6e964 user: drh tags: json-opt)
22:45
Clean up some #defines in json. (check-in: 327fff50 user: drh tags: json-opt)
22:34
Rework the JSON parse structure to facilitate better caching. Passes all tests. (check-in: ecdcb1de user: drh tags: json-opt)
19:13
Add the fts5 'delete-automerge' integer option. A level is eligible for auto-merging if it has a greater than or equal percentage of its entries deleted by tombstones than the 'delete-automerge' option. Default value is 10. (check-in: b314be66 user: dan tags: fts5-contentless-delete)
17:59
Incremental progress toward improved caching of parsed JSON. (check-in: f2c06388 user: drh tags: json-opt)
15:41
Resolve an ES6 module export construct which is incompatible with node.js, as reported in forum post b9680fa9ad. (check-in: 80927c39 user: stephan tags: trunk)
13:30
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: e0e7b01e user: drh tags: reuse-schema)
13:24
Merge the latest trunk enhancements into the bedrock branch. (check-in: a6f34439 user: drh tags: bedrock)
13:20
Merge the latest trunk enhancements into the wal2 branch. (check-in: b2e56f62 user: drh tags: wal2)
13:15
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 967be041 user: drh tags: begin-concurrent)
12:59
Update the latest trunk enhancements into the wal-shm-exceptions branch. (check-in: 3187ee3f user: drh tags: wal-shm-exceptions)
12:37
Merge the latest trunk enhancements into the json-opt branch. (check-in: 00bfc491 user: drh tags: json-opt)
2023-07-23
22:14
When writing the filename header in a opfs-sahpool file, ensure that all remaining bytes in that part of the header are zeroed out to avoid the downstream problems reported in forum post d50ec48a293988a5. (check-in: c1b080e3 user: stephan tags: trunk)
2023-07-22
19:57
Add the opfs-sahpool sqlite3_vfs implementation to JS, offering an alternative to the other OPFS VFS (with tradeoffs). (check-in: d2e602cd user: stephan tags: trunk)
19:47
Integrate contentless delete with auto-merge. (check-in: 85c1589a user: dan tags: fts5-contentless-delete)
16:37
Do not read past the end of a text buffer looking for a zero terminator, as that space might not be initialized. If the buffer is owned, just set the null terminator. This is a better fix for the OSSFuzz-detected use-of-initialized-value problem. (check-in: 931bccb0 user: drh tags: trunk)
15:21
Fix a harmless use-of-initialized-value warning from OSSFuzz that results from recent large string optmizations. (check-in: 1a6b3dd1 user: drh tags: trunk)
2023-07-21
22:28
Performance enhancements for queries using very large string values. (check-in: 3661b9cd user: drh tags: trunk)
22:22
Mark an unreachable branch as NEVER(). (Leaf check-in: 414a4d66 user: drh tags: big-function-text)
21:10
Fix fts5 incremental optimization so that it too can handle an index that consists of a single segment with one or more tombstone hash pages. (check-in: e61c9b08 user: dan tags: fts5-contentless-delete)
19:33
Ensure the fts5 'optimize' command correctly rewrites any index that consists of a single segment and one or more tombstone hash pages. (check-in: f4926006 user: dan tags: fts5-contentless-delete)
19:17
Fix harmless compiler warning introduced by the previous check-in. (check-in: 06f829e9 user: drh tags: big-function-text)
18:38
Avoid a potentially large strlen() in sqlite3DecOrHexToI64(). (check-in: 5413b02b user: drh tags: big-function-text)
18:09
Further improvements to large string handling in relation to JSON. (check-in: 1e5df0aa user: drh tags: big-function-text)
15:07
Fix harmless compiler warning about signed/unsigned comparison. (check-in: 75cc3c89 user: drh tags: big-function-text)
15:01
Multiple optimizations that try to preserve or infer the zero-terminated property of TEXT values. Avoid unnecessary copying of text values destined to become function parameters. All changes help improve performance of doing UPDATEs on large JSON values that are indexed multiple ways. (check-in: d0278cde user: drh tags: big-function-text)
11:09
More infrastructure changes towards improving JSON cache performance. Incremental check-in. (check-in: 1955e66c user: drh tags: json-opt)
10:51
Minor internal cleanups in the opfs-sahpool VFS. (Closed-Leaf check-in: 74ad31e2 user: stephan tags: opfs-sahpool)
09:10
Internal cleanups in the async part of the JS library bootstrap phase. (check-in: b6d57ab6 user: stephan tags: opfs-sahpool)
2023-07-20
23:25
Minor internal cleanups in JS code. (check-in: 21a2ca9f user: stephan tags: opfs-sahpool)
20:29
Fix some divide-by-zero errors that could occur when handling corrupt tombstone hash records. (check-in: 7567ca06 user: dan tags: fts5-contentless-delete)
20:09
Avoid an infinite loop that could be entered when dealing with corrupt fts5 tombstone hash pages. (check-in: 69ce2ce0 user: dan tags: fts5-contentless-delete)
17:45
Experimental framework upon which to build a better JSON parse structure that supports cached of modified JSON. All of these changes are tentative and subject to change or removal. Incremental check-in. (check-in: e384163a user: drh tags: json-opt)
16:07
Add tests and fixes for the new code on this branch. (check-in: 5aac50e9 user: dan tags: fts5-contentless-delete)
09:06
Filter the OPFS VFSes out of the sqlite3-node.mjs build. Add another level of subdirectory to the sahpool to later enable transparent support of client-provided files under the VFS's root dir. Rework the awkward sahpool-via-oo1 mapping. (check-in: 080a4d0a user: stephan tags: opfs-sahpool)
2023-07-19
23:02
Performance enhancements to the JSON parser and code generator. (check-in: 0a745897 user: drh tags: trunk)
20:23
Revise the new JSON parser performance test to make the test run 25 times longer, and thus provide a more repeatable number. (check-in: bee9e403 user: drh tags: trunk)
19:23
Describe JSON parser performance testing procedure in test/json/README.md (check-in: c47056e1 user: drh tags: trunk)
18:47
Fix various issues with code added to this branch. (check-in: 8d09011f user: dan tags: fts5-contentless-delete)
17:47
More internal refactoring and docs for opfs-sahpool. (check-in: 64ccf617 user: stephan tags: opfs-sahpool)
17:46
Update the development-over-ssh docs for the wasm build. (check-in: 500109bd user: stephan tags: opfs-sahpool)
17:24
Further improvement to JSON parser performance. (check-in: 144c8ccf user: drh tags: json-opt)
15:06
Further performance enhancements to JSON parsing and rendering. Total performance gain for large JSONs so far on this branch is about 11%. (check-in: adb4d6b0 user: drh tags: json-opt)
13:50
Performance optimization for parsing large JSONs that contain lots of text. (check-in: c9fbe018 user: drh tags: json-opt)
13:31
Major restructuring of opfs-sahpool to improve maintainability and hopefully make it easier to reuse these pieces in the upcoming JSPI-based VFS experiment. (check-in: 534481cd user: stephan tags: opfs-sahpool)
12:52
Enhance the JSON parser cache such that it is able to extract lines from the cache and use them for writing, though they then have to be evicted from the cache. This was an experiment in trying to reduce the amount of parsing needed for a big UPDATE, but it does not seem to help any. Retained for reference only. (Closed-Leaf check-in: 2e6fbebc user: drh tags: json-write-cache)
11:33
Appearance and legibility improvements for tester1.js. (check-in: 4fd3ed1b user: stephan tags: opfs-sahpool)
10:17
Merge the latest trunk enhancements into the sqlite3_stmt_explain branch. (Closed-Leaf check-in: 06eae046 user: drh tags: sqlite3_stmt_explain)
09:52
Two minor improvements to sum(), one of which was inspired by forum post af5be98dbc. (check-in: a0d3e757 user: drh tags: trunk)
08:18
Internal refactoring in opfs-sahpool. Move OPFS tests to the end of tester1.c-cpp.js. (check-in: 6bd5a741 user: stephan tags: opfs-sahpool)
2023-07-18
21:06
Do not use the viewscan optimization on a query that has only a single loop, as the cost adjustments can cause problems for outer queries. Proposed fix for the performance regression reported by forum post 64d36440e473516c. (check-in: 76152ad2 user: drh tags: trunk)
20:41
Improved ".wheretrace" for the VIEWSCAN optimization. (check-in: 27057ea7 user: drh tags: trunk)
19:52
Fix various problems with fts5 contentless_delete=1 tables. (check-in: 0d005112 user: dan tags: fts5-contentless-delete)
19:47
More opfs-sahpool tests. (check-in: 60713fa9 user: stephan tags: opfs-sahpool)
19:27
Fix a shadowed var in opfs-sahpool and add more tests. (check-in: 9c8a73af user: stephan tags: opfs-sahpool)
18:52
Further refactoring of opfs-sahpool and start integrating it into tester1.c-pp.js. (check-in: 91c78923 user: stephan tags: opfs-sahpool)
17:43
Merge the FTS5 memory leak fix from trunk. (check-in: fb65cb73 user: drh tags: fts5-contentless-delete)
17:29
Enhance the sqlite3_stmt_explain() interface so that avoids unnecessary reprepare operations. (check-in: 050f773a user: drh tags: sqlite3_stmt_explain)
16:29
Fix memory leak in fts5 introduced by [def41225]. (check-in: 4dcad2db user: dan tags: trunk)
16:24
Major restructuring of the opfs-sahpool bits to better support multiple instances per app (each sandboxed from each other). Eliminate the pesky promise resolution race condition when two such instances are loaded in parallel. (check-in: 95e5fa49 user: stephan tags: opfs-sahpool)
15:06
Experimental (untested, non-working) changes that try reduce the number of reprepares generated by sqlite3_stmt_explain(). I think I see an easier way to do this now, so I'm parking this experiment on a branch to pursue the new idea. (Closed-Leaf check-in: c2fba6a6 user: drh tags: sqlite3-stmt-explain-opt1)
13:55
Merge trunk changes with this branch. (check-in: 5f66eb4e user: dan tags: fts5-contentless-delete)
13:55
Fix a buffer overrun in fts5 that could occur in 'secure-delete' mode when dealing with corrupt database records. (check-in: def41225 user: dan tags: trunk)
12:09
Refactor opfs-sahpool to support multiple instances, each with a separate VFS name and directory. (check-in: d036eaf6 user: stephan tags: opfs-sahpool)
2023-07-17
18:40
Fix cases where a row is inserted into a contentless_delete=1 fts5 table and then deleted within the same transaction. (check-in: d928856a user: dan tags: fts5-contentless-delete)
17:59
Do not allow the 'delete' command to be used on contentless_delete=1 fts5 tables. (check-in: cc694b83 user: dan tags: fts5-contentless-delete)
11:47
Merge trunk changes into this branch. (check-in: c4fb2f2e user: dan tags: fts5-contentless-delete)
07:43
Another -DSQLITE_TEMP_STORE=3 to 2 change for the wasm build. (check-in: 5ad8f998 user: stephan tags: opfs-sahpool)
07:14
sahpool vfs: rename defaultCapacity to initialCapacity, per feedback. (check-in: 2c9c95d0 user: stephan tags: opfs-sahpool)
07:13
Change wasm build's -DSQLITE_TEMP_STORE=3 to -DSQLITE_TEMP_STORE=2, primarily so that clients can optionally shift temp files from memory to OPFS storage. (check-in: 764430e8 user: stephan tags: opfs-sahpool)
2023-07-16
21:07
Remove an extraneous JS script import. (check-in: 5a205b25 user: stephan tags: opfs-sahpool)
20:42
Add sqlite3-vfs-opfs-sahpool.js to ext/wasm/api/README.md. (check-in: 58d05201 user: stephan tags: opfs-sahpool)
20:20
Minor doc tweaks. (check-in: 0cb0d7a9 user: stephan tags: opfs-sahpool)
19:29
Correct a missing assignment. Minor doc additions. (check-in: 1c4957d0 user: stephan tags: opfs-sahpool)
19:20
Doc tweaks only, no code changes. (check-in: 044c28df user: stephan tags: opfs-sahpool)
17:51
Add a way to remove the opfs-sahpool's persistent state from OPFS or unlink() an individual file. Doc cleanups. (check-in: 80982daa user: stephan tags: opfs-sahpool)
16:52
Move SAH pool configuration options from the library-level config to a config passed to the VFS install routine. Extend and document the PoolUtil object. (check-in: d2ed9955 user: stephan tags: opfs-sahpool)
14:07
speedtest1.js: only install opfs-sahpool if it's provided via --vfs flag, to avoid locking errors in concurrent speedtest1 tabs with other VFSes. Add opfs-sahpool reserveMinimumCapacity(). (check-in: aa94c8ab user: stephan tags: opfs-sahpool)
12:02
During "opfs" VFS init, check for URL param opfs-disable and, if set, do not install the VFS. Added per forum suggestion to provide a way to help rule out misinteraction between the "opfs" and "opfs-sahpool" VFSes. (check-in: 29905b7a user: stephan tags: opfs-sahpool)
11:49
Micro-optimizations in opfs-sahpool. (check-in: 52f23db9 user: stephan tags: opfs-sahpool)
10:02
Redefine what the opfs-sahpool installation promise resolves to. Fix addCapacity(). Add utility methods to import/export files. (check-in: 809c6f4d user: stephan tags: opfs-sahpool)
2023-07-15
21:08
Minor cleanups in the opfs-sahpool VFS. (check-in: 279e0907 user: stephan tags: opfs-sahpool)
19:08
Correct opfs-sahpool VFS after the pebkac involving the previous speedtest1 runs. Make that VFS explicitly opt-in to avoid certain unfortunate locking situations. (check-in: 41bf1fe3 user: stephan tags: opfs-sahpool)
18:57
Store large tombstone hash tables in multiple database records. Ensure the same hash tables handle rowid 0. (check-in: 4410e60d user: dan tags: fts5-contentless-delete)
16:48
Add the experimental sqlite3_stmt_explain(S,E) interface. (check-in: 5683743d user: drh tags: sqlite3_stmt_explain)
16:30
speedtest1 JS: only add --memdb flag by default if no --vfs is provided. (check-in: 676ffe62 user: stephan tags: opfs-sahpool)
11:37
Rename opfs-sahpool removeCapacity() to reduceCapacity(). (check-in: fff68e9f user: stephan tags: opfs-sahpool)
11:23
opfs-sahpool VFS now seems to work, in that it runs fine (and blazingly fast) in speedtest1. Add sqlite3.config options for the high-level configurable parts of opfs-sahpool. (check-in: 5d92d5f4 user: stephan tags: opfs-sahpool)
01:02
More work on porting the sahpool bits. Revert to random backing-store names because it works better with the capacity-reduction algorithm. (check-in: b4e005fd user: stephan tags: opfs-sahpool)
2023-07-14
23:02
Switch opfs-sahpool to use deterministic backing-store file names. Delay VFS registration until after the pool's files are all opened. Fail vfs init if the client's OPFS API has an async FileSystemSyncAccessHandle.close() method (indicating that it's outdated). (check-in: 7c6697ed user: stephan tags: opfs-sahpool)
21:48
Integrate the opfs-sahpool VFS into the JS build and get it loading (but it's still far from functional). (check-in: ef96e6b5 user: stephan tags: opfs-sahpool)
21:17
Initial sketches for an alternate OPFS VFS which uses a pool of pre-opened SyncAccessHandles to bypass the need for a dedicated I/O worker and the COOP/COEP HTTP response headers. Currently completely non-functional. (check-in: a93de9f2 user: stephan tags: opfs-sahpool)
21:06
Minor internal cleanups in the OPFS VFS. (check-in: 984d491e user: stephan tags: trunk)
12:21
Minor wasm build cleanups. (check-in: 816b503f user: stephan tags: trunk)
2023-07-13
18:35
Reintroduce WASMFS+OPFS support, albeit as a separate (less portable) WASM build. (check-in: 7e4c594e user: stephan tags: trunk)
18:13
Minor cleanups related to reintroducing wasmfs support. (Closed-Leaf check-in: 6918a927 user: stephan tags: wasmfs-2023)
17:27
More work on the wasmfs build and its test apps. (check-in: 953b8557 user: stephan tags: wasmfs-2023)
16:33
Get speedtest1 wasmfs variant running again. (check-in: 0f77e031 user: stephan tags: wasmfs-2023)
14:49
Fix an off-by-one error in tests for cells overflowing the end of pages. The error is completely harmless for the default page cache, but might cause false-positive SQLITE_CORRUPT errors in systems that use an application-defined page caches that pack pages tightly together in memory. (check-in: ce6793e9 user: drh tags: trunk)
14:08
Significant surgery on the wasm build on the way to incorporating wasmfs as a first-class build option. (check-in: 215c37fc user: stephan tags: wasmfs-2023)
10:41
More work on the wasmfs build. Resolve the inconsistent argument type passed to sqlite3InitModule() in such builds. (check-in: 4850a9e2 user: stephan tags: wasmfs-2023)
04:54
Minor cleanups in the wasmfs build. (check-in: f64477f2 user: stephan tags: wasmfs-2023)
04:26
Get wasmfs build and its bare-bones test app working again, albeit currently in ES6 mode only. (check-in: 647761ed user: stephan tags: wasmfs-2023)
03:46
Replace 'self' with 'globalThis' in some JS test code. (check-in: 53eeffc9 user: stephan tags: trunk)
01:51
JS: change the default OPFS VFS journal mode from PERSIST to DELETE, as DELETE is faster in current browsers. (check-in: a061a43e user: stephan tags: trunk)
01:48
Remove obsolete ext/wasm/api/sqlite3-wasi.h. (check-in: f661a6e0 user: stephan tags: trunk)
2023-07-12
20:24
Avoid a case of an infinite loop in fts5 when dealing with corrupt records. (check-in: 0e801f11 user: dan tags: fts5-contentless-delete)
19:34
Fix a crash that may occur when handling corrupt records in contentless_delete=1 mode. (check-in: 74d7610a user: dan tags: fts5-contentless-delete)
18:38
Get access to SQL functions and virtual tables used for debugging and analysis of FTS5 using SQLITE_FTS5_DEBUG and without the need for SQLITE_TEST. (check-in: 383de8e2 user: drh tags: fts5-contentless-delete)
09:30
Internal JS doc fix. (check-in: 7c5ea022 user: stephan tags: trunk)
09:16
Correct handling of the speedtest1 --without-rowid flag in the HTML front-end to speedtest1.wasm. Reduce default speedtest1-with-OPFS workload size in ext/wasm/index.html to speed up manual testing. (check-in: 2daba2cd user: stephan tags: trunk)
2023-07-11
20:57
Have contentless_delete=1 tables support REPLACE statements. (check-in: 2f553a66 user: dan tags: fts5-contentless-delete)
20:19
Have contentless_delete=1 tables support regular DELETE statements, instead of just the special INSERT syntax. (check-in: fffb8616 user: dan tags: fts5-contentless-delete)
19:54
Reduce divergence between branches: trunk and wal-shm-exceptions. (check-in: d38ed6b1 user: drh tags: trunk)
18:55
Use a hash-table instead of a flat list to store tombstone rowids. (check-in: 948267b0 user: dan tags: fts5-contentless-delete)
15:52
Get fault injection for testing working correctly. Other code clean-up. (check-in: ff492277 user: drh tags: wal-shm-exceptions)
2023-07-10
20:44
Begin adding support for deleting rows from contentless fts5 tables. (check-in: e513bea8 user: dan tags: fts5-contentless-delete)
19:21
Minor style changes to the previous MSVC makefile changes on this branch. (check-in: 4c950872 user: mistachkin tags: wal-shm-exceptions)
19:13
Compile for SEH if the USE_SEH=1 option is specified on the nmake command line. (check-in: 0e67a82f user: drh tags: wal-shm-exceptions)
18:16
Fix a warning. Unclear yet if the code is correct this way or not. (check-in: 2df4fd76 user: drh tags: wal-shm-exceptions)
18:05
Merge the latest trunk enhancements into the wal-shm-exceptions branch. (check-in: f655d08d user: drh tags: wal-shm-exceptions)
2023-07-08
19:28
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 7a9cb6f4 user: drh tags: reuse-schema)
19:16
Merge the latest trunk enhancements into the bedrock branch. (check-in: 35bfb5bf user: drh tags: bedrock)
19:09
Merge all the latest trunk enhancements into the wal2 branch. (check-in: f0793653 user: drh tags: wal2)
19:00
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 3d0823c4 user: drh tags: begin-concurrent)
17:42
Always use the "LL" suffix on 64-bit integer literals. (check-in: 07d95ed6 user: drh tags: trunk)
14:27
Fix harmless scan-build warnings. (check-in: beab3c98 user: drh tags: trunk)
2023-07-07
18:49
Omit the use of memmove() in sqlite3FpDecode() in an attempt to avoid spurious warnings from valgrind. Also makes the code slightly smaller and faster. (check-in: b409943a user: drh tags: trunk)
16:58
Proof of concept for a new sqlite3_function_needed() interface. (Leaf check-in: cd67edc0 user: drh tags: need-function)
12:18
For the "Valgrind" test scenario, set LONGDOUBLE_TYPE=double as valgrind does not correctly emulated extended precision on x64. (check-in: d3532eae user: drh tags: trunk)
12:08
Add option 2 to SQLITE_TESTCTRL_USELONGDOUBLE to move the setting to its defaults. Enhance the CLI and testfixture to make use of this value. Base the default on sizeof(LONGDOUBLE_TYPE) rather than on sizeof(long double). (check-in: 64e6bd1c user: drh tags: trunk)
2023-07-06
20:34
Improved handling of integer inputs to the new sum() implementation. (check-in: 31561c63 user: drh tags: trunk)
18:29
A more precise implementation of sqlite3RealToI64(). (check-in: 8813317c user: drh tags: trunk)
17:55
Merge all recent trunk enhancements into the wal-shm-exceptions branch. (check-in: e59cea2d user: drh tags: wal-shm-exceptions)
17:14
Fix octet_length() test cases so that they work when the database encoding is utf16. (check-in: ad2e3962 user: drh tags: trunk)
15:44
Use the Kahan-Babushka-Neumaier algorithm to improve the accuracy of sum(). (check-in: c63e26e7 user: drh tags: trunk)
14:45
Fix minor inaccuracies in the new sum() algorithm. (Closed-Leaf check-in: e3f7a960 user: drh tags: kahan-babuska-neumaier-summation)
13:19
Experimental attempt to boost the accuracy of sum() using the Kahan-Babuska-Neumaier algorithm. (check-in: ebc5edd3 user: drh tags: kahan-babuska-neumaier-summation)
00:55
Use "volatile" isntead of "#pragma" to get floating point calculations working correctly when compiling with GCC for x86 machines. (check-in: 9427f426 user: drh tags: trunk)
2023-07-05
22:05
This is alternative work-around for the x86 float-point problem that uses "volatile" rather than compile-specific #pragmas. (Closed-Leaf check-in: 1d972a69 user: drh tags: fix-dekker-with-volatile)
19:56
Improved comments on the work-around to the GCC x86 floating point wonkiness. (check-in: 7b4c1673 user: drh tags: trunk)
18:59
Work around for an apparent GCC bug. See forum post ee7278611394034c for details. (check-in: 5d9e9364 user: drh tags: trunk)
15:34
Make the order of operations explicit for the error term of Dekker double-precision multiply. (check-in: 28f57b34 user: drh tags: trunk)
14:42
Simplification of the dekkerMul2() subroutine. (check-in: bfe6432a user: drh tags: trunk)
12:00
Add the ieee754_inc(r,N) function to the ieee754.c extension. (check-in: 9a36f269 user: drh tags: trunk)
2023-07-03
18:32
Enhance the sqlite3AtoF() function so that it can operate with or without long double and provides accurate results in both cases. (check-in: fd987508 user: drh tags: trunk)
18:18
Enhance sqlite3AtoF() so that it honors the USELONGDOUBLE test-control. Enable the test/atof1.test module on non-intel platforms. (Closed-Leaf check-in: b7850fd4 user: drh tags: fp-to-decimal-refactor)
15:30
Store the fp-speed-1.c test program used to measure relative performance of SQLite versus the standard library, in the test/ directory. A header comment explains how to use it. (check-in: eaff3762 user: drh tags: trunk)
15:11
Add the --nolongdouble option to speedtest1.c. (check-in: 6bf6018a user: drh tags: trunk)
15:03
Improved precision of binary-to-decimal conversion of floating-point values on all systems but especially non-x86 systems that lake extended precision hardward floating point. (check-in: 32befb22 user: drh tags: trunk)
14:56
Whether or not to use the long-double floating point conversion technique is now a test-control setting. (check-in: 02ae6caf user: drh tags: fp-to-decimal-refactor)
12:58
New test cases for floating-point conversions. (check-in: 9435ed76 user: drh tags: fp-to-decimal-refactor)
11:44
Use Dekker double-precision floating point to do the value normalization step in sqlite3FpDecode() for systems on which "long double" is 8 bytes or less. (check-in: 51f492b4 user: drh tags: fp-to-decimal-refactor)
11:39
Final clean-up of the idea of using Dekker double-precision floating computations to improve accuracy. (Closed-Leaf check-in: 40285d63 user: drh tags: fp-to-decimal-branch1)
10:35
Squeeze as many bits as we can out of normalization. (check-in: 25d1ad6d user: drh tags: fp-to-decimal-branch1)
10:18
Faster Dekker multiplication that removes the restriction on input magnitude. (check-in: 2994caf5 user: drh tags: fp-to-decimal-branch1)
10:00
Fix one constant in the normalization logic. Improved error output from atof1.test. (check-in: d3c48807 user: drh tags: fp-to-decimal-branch1)
09:07
Replace the dodgy error estimating logic in the previous check-in with full-up Dekker double-double multiplication, and this idea works much better. There are still a few inaccuracies, but it is much closer. (check-in: 4fa6938d user: drh tags: fp-to-decimal-branch1)
00:51
The fptest(X) routine used for exploring another idea for improving fp-to-decimal conversion without the use of long double. (Leaf check-in: d9a883d7 user: drh tags: fp-to-decimal-branch2)
00:40
An idea for improving accuracy of fp-to-decimal conversion for systems that do not have "long double". Does not quite work. Retained only for documentation purposes. (check-in: 70224333 user: drh tags: fp-to-decimal-branch1)
2023-07-01
20:21
This check-in adds the use of "long double" to sqlite3FpDecode() which when run on x86 using a compiler that translates "long double" into binary80, causes all legacy tests to pass. But on a system where "long double" is just an alias for "double", some of the tests are still failing. (check-in: ce06982f user: drh tags: fp-to-decimal-refactor)
18:33
Reinstate the fpdecode() SQL function for testing, but only when compiled with SQLITE_DEBUG. (check-in: 07eab52e user: drh tags: fp-to-decimal-refactor)
17:56
Improved rounding policy. (check-in: 6f1122e9 user: drh tags: fp-to-decimal-refactor)
15:23
Improved response to Infinity and NaN. Remove the termporary fpdecode() function. (check-in: 76ab8ae8 user: drh tags: fp-to-decimal-refactor)
14:03
Progress towards fixing corner-case floating-point formatting issues. (check-in: 1138b8d1 user: drh tags: fp-to-decimal-refactor)
2023-06-30
23:42
Fix an issue with the "+" attribute in printf(). (check-in: bdfd1eb1 user: drh tags: fp-to-decimal-refactor)
23:18
Begin cutting over sqlite3FpDecode() into printf(). The code in this check-in gets a lot right, but there are still some formatting discrepencies. (check-in: c134d423 user: drh tags: fp-to-decimal-refactor)
19:41
Add decimal rounding to the sqlite3FpDecode() routine. (check-in: 27871140 user: drh tags: fp-to-decimal-refactor)
19:14
Add experimental ".scanstats vm" command to the shell tool. (check-in: e727640f user: dan tags: scanstatus-exp)
19:13
Fix an error in the previous commit on this branch. (check-in: 47c11ca9 user: dan tags: scanstatus-exp)
18:59
Add the "nexec" and "ncycle" columns to the bytecode virtual table. For accessing counters collected when SQLITE_DBCONFIG_STMT_SCANSTATUS is enabled. (check-in: f7b163a3 user: dan tags: scanstatus-exp)
18:35
Experiments with a new algorithm for converting ieee-754 binary64 numbers into decimal. (check-in: e923405e user: drh tags: fp-to-decimal-refactor)
18:31
Add support for sqlite3_stmt_scanstatus_v2() profiling of GROUP BY clauses that use a temp b-tree, and for sub-queries implemented as co-routines. (check-in: 7afad1f7 user: dan tags: trunk)
18:23
Improve support for sqlite3_stmt_scanstatus_v2() profiling of sub-queries implemented as co-routines. (Closed-Leaf check-in: 4e8718dc user: dan tags: scanstatus-exp)
17:14
Add support for sqlite3_stmt_scanstatus_v2() profiling of GROUP BY clauses that use a temp b-tree. (check-in: 796eadcc user: dan tags: scanstatus-exp)
16:16
Add extra debugging code for sqlite3_stmt_scanstatus_v2() to test1.c. (check-in: f936f101 user: dan tags: trunk)
14:01
Completely unwind the enhanced precision sum() from [a915f15a916af698] so as not to offend UBSAN and OSS-Fuzz. (check-in: 85be05b6 user: drh tags: trunk)
12:59
Omit the doubleToReal() function in vdbemem.c. Use the equivalent sqlite3RealToI64() function in its place. (check-in: 625820e8 user: drh tags: trunk)
11:51
Make the sum() function less precise and slower in order to avoid harmless signed integer overflow UBSAN warnings from OSS-Fuzz. (check-in: 1be0646a user: drh tags: trunk)
2023-06-29
23:03
Cleanup and commenting of the new DECIMAL extension code. No functional changes. (check-in: 51244816 user: drh tags: trunk)
20:28
Enhancements to the DECIMAL extension: (1) If the argument to decimal(X) is a floating point value (or an 8-byte blob), the floating point value is expanded into its exact decimal representation. (2) Function decimal_sci(X) works the same except it returns the result in scientific notation. (3) New function decimal_pow2(N) returns the full decimal expansion of the N-th integer power of 2. (check-in: 8baf8c10 user: drh tags: trunk)
17:58
Sync w/trunk (check-in: fe9aa2e9 user: larrybr tags: cli_extension)
17:48
Fix harmless compiler warnings about unused function arguments. (check-in: 24927c13 user: drh tags: trunk)
17:36
Improve the range of floating-point numbers that can be handled as integers for numeric-to-text conversion. (check-in: 41580ba4 user: drh tags: trunk)
17:26
Further refine the dtostr() testing function in the CLI so that it takes an optional second parameter which is the number of significant digits to display. (check-in: 2f9d4444 user: drh tags: trunk)
16:48
Change the (undocumented) dtostr() SQL function in the CLI so that it only shows the first 26 significant digits - 10 more digits than are available in a 64-bit double. (check-in: d758859f user: drh tags: trunk)
14:49
Add the decimal_sci(X) function to the Decimal extension for showing a decimal value in scientific notation: +D.DDDDDe+DD (check-in: 61d49239 user: drh tags: trunk)
12:14
CLI enhancements to facilitate SQLite core testing: (1) Add built-in functions strtod() and dtostr() that convert text to floating point and back using C-library routines. (2) Do not disable all of ".testctrl" without --unsafe-testing, but only those subcommands of .testctrl that are actually dangerous. (check-in: 669996a8 user: drh tags: trunk)
2023-06-28
12:02
Enhance the SUM() aggregate (and related AVG() and TOTAL()) so that the running sum is accurate to about 100 bits. (check-in: a915f15a user: drh tags: trunk)
11:46
Improved accuracy of floating-point conversion constants as suggested by forum post 598d32f6135c41c1. (check-in: 4943e8a1 user: drh tags: trunk)
2023-06-26
19:57
Simple test cases for the enhanced SUM() function. (Closed-Leaf check-in: c66ef244 user: drh tags: extended-precision-fp)
19:35
Use ideas from T. J. Dekker in "A Floating-Point Technique for Extending the Available Precision" (1971-07-26) to enhance the accuracy of the SUM() aggregate function in cases where input magnitudes vary wildly. (check-in: 439fc00f user: drh tags: extended-precision-fp)
17:23
Fix CLI .sha3sum error message for keyword identifiers, reported in forum post 7cbe081746dd. (check-in: bc27bda1 user: larrybr tags: branch-3.42)
17:08
Fix CLI .sha3sum error message for keyword identifiers, reported in forum post 7cbe081746dd. (check-in: 9d7813dd user: larrybr tags: trunk)
07:20
Replace some JS 'self' references with 'globalThis', as reported via the npm subproject. (check-in: b6ae8491 user: stephan tags: branch-3.42)
07:05
Replace some JS 'self' references with 'globalThis', as reported via the npm subproject. (check-in: d4e66dfc user: stephan tags: trunk)
2023-06-25
20:23
Fix typo in the README.md file. (check-in: 6d435d1d user: drh tags: trunk)
2023-06-23
11:10
Add support for the octet_length() SQL function, with low-level optimizations that avoid loading large string content from disk when the argument to octet_length() is a table column. (check-in: fa5f7786 user: drh tags: trunk)
2023-06-22
21:19
Optimize the argument to the octet_length() function so that it does not attempt to read content from disk. (Closed-Leaf check-in: 8b8ea4e3 user: drh tags: octet_length)
15:26
basic test cases for octet_length(). (check-in: 034a5fe2 user: drh tags: octet_length)
14:50
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 905c6c9d user: drh tags: reuse-schema)
14:40
Merge the latest trunk enhancements into the bedrock branch. (check-in: 0551b79b user: drh tags: bedrock)
14:20
Merge the latest trunk enhancements into the wal2 branch. (check-in: 80ac494f user: drh tags: wal2)
13:28
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: 5bd26fea user: drh tags: begin-concurrent)
13:01
Merge recent trunk enhancements into the octet_length branch. (check-in: d35c2148 user: drh tags: octet_length)
01:03
Simplification to the getAndInitPage() routine that results in improved performance. (check-in: 2e9734c2 user: drh tags: trunk)
2023-06-21
21:47
Improved comment on the getAndInitPage() in btree.c. No code changes. (check-in: dc468cfd user: drh tags: trunk)
18:12
This is a failed attempt to optimize the usage of the page cache in sqlite3BtreeIndexMoveto() by deferring calls to sqlite3PagerUnref() for child pages of the btree until we are sure those pages will not be reused. The code does not work in two senses: (1) Many tests still fail. (2) The performance gain is less than 2 million cycles and does not seem worth the extra risk and complication. (Closed-Leaf check-in: 84731a1f user: drh tags: pcache-opt)
14:48
Sync w/trunk (for CLI -cachetrace) (check-in: a61f9377 user: larrybr tags: cli_extension)
14:11
Add the --pcachetrace option to the CLI. (check-in: 61dfa92b user: drh tags: trunk)
2023-06-20
17:45
Omit unnecessary calls to table locking routines in the common case when there is no shared cache. (check-in: f94f3021 user: drh tags: trunk)
16:26
Avoid unnecessary calls to sqlite3DeleteTable() with NULL pointers. (check-in: 4a35f391 user: drh tags: trunk)
15:48
Avoid unnecessary calls to sqlite3CodeRowTrigger(). (check-in: 27c174db user: drh tags: trunk)
11:46
Performance optimization in sqlite3VdbeAddOp4Int(). (check-in: 456a2432 user: drh tags: trunk)
2023-06-19
23:27
Avoid unnecessary NULL pointer checks on calls to sqlite3WalkExpr(). (check-in: 73d86a12 user: drh tags: trunk)
20:54
Small performance improvement and size reduction by recognizing that no SQL keywords have less than 2 characters. (check-in: 6b3d25b7 user: drh tags: trunk)
18:16
Add the sqlite3_commit_status() API. For querying a connection for (a) the ranges of wal/wal2 frames written after a successful commit, and (b) the conflicting frame following a failed commit of a BEGIN CONCURRENT transaction. (check-in: 4b08d4da user: dan tags: bedrock)
13:09
Fix large integer constants so that they work on older C compilers. (check-in: 3c94f878 user: drh tags: trunk)
2023-06-17
23:53
Cure tclshext build warning. Sync w/trunk. (check-in: e9f21191 user: larrybr tags: cli_extension)
15:42
Fix harmless compiler warnings that show up on 32-bit RaspberryPI builds. (check-in: bc4d20f3 user: drh tags: trunk)
15:22
In date/time functions, fix the rendering of "subsecond" and the computeHMS() routine to better deal with floating point rounding errors that arise on some 32-bit systems. (check-in: e46a00ae user: drh tags: trunk)
01:56
Sync w/trunk. (check-in: 746733c1 user: larrybr tags: cli_extension)
2023-06-16
19:45
Clear MSVC warnings and fix a typedef issue with MSVC build. (check-in: b0cb4cfc user: larrybr tags: cli_extension)
14:39
Address various harmless compiler warnings from forum post d526da8ee4. (check-in: 365caf2f user: drh tags: trunk)
11:05
Fix the pager such that if the xOpen() message sends back the SQLITE_OPEN_MEMORY flag, the pager is opened in journal-mode MEMORY, even if compiled with SQLITE_OMIT_DESERIALIZE. No changes to the logic as long as that OMIT flag is omitted. We need to better document the behavior of xOpen to describe this. (check-in: da1252b2 user: drh tags: trunk)
02:18
More doc tweaks, one teensy enhancement, and a new feature bug fix (check-in: 1073ef06 user: larrybr tags: cli_extension)
2023-06-15
16:02
Updates to the README.md file. (check-in: fa5cb6da user: drh tags: trunk)
15:43
Fix harmless typo in a comment. (check-in: 6937986a user: drh tags: trunk)
2023-06-14
13:45
Add SQLITE_DBCONFIG_RANDOM_SCANORDER. This option causes unconstrained table and index scan to happen in a random order, in order to help detect under-constrained queries in applications. Closed because this feature does not add any new capabilities that are not already available with SQLITE_DBCONFIG_REVERSE_SCANORDER, but it does make the behavior non-deterministic, and hence more difficult to test. (Closed-Leaf check-in: 33021986 user: drh tags: random-scanorder)
12:19
Work around what appears to be a GCC 32-bit optimization problem in the computeHMS() routine of the date/time logic. (check-in: aebdbcbe user: drh tags: trunk)
2023-06-13
23:04
Improve and add docs for extensible shell. (check-in: 1a57af86 user: larrybr tags: cli_extension)
18:10
Improved sqlite3_error_offset() values for bare column errors on '*' and 'table.*' expressions in SELECT statements. (check-in: 118fe600 user: drh tags: trunk)
16:55
Extended the time-diff format so that it can have a 5-digit year. This enables time differences to span the full range of dates supported by SQLite. Also fix some inaccuracies in the computation of time differences and add new test cases. (check-in: d57ddbf4 user: drh tags: trunk)
2023-06-12
18:22
Initialize a local variable in FTS3 to avoid a GCC compiler warning. (check-in: 7ec4ab32 user: drh tags: trunk)
18:11
Finish .parameter improvements. (no set <cast_op> anymore, not useful enough for its apparent complexity) (check-in: bbbdb864 user: larrybr tags: cli_extension)
14:26
The decision was made to halt work on this enhancement. See the discussion beginning with forum post 4c8a673560d7999a. The changes on this branch work, but they add unnecessary user complexity with no corresponding benefit. (Closed-Leaf check-in: c8ef3b78 user: drh tags: newbie-safe-aggregates)
14:16
Fix a buffer over-read that could occur as part of an fts5 secure-delete operation on a database containing corrupt fts5 records. dbsqlfuzz a463eac437783bcd246cc675b87842618a569cae (check-in: 44fdc798 user: drh tags: branch-3.42)
14:12
Make sure temporary sqlite3_value objects used by STAT4 are reset to NULL prior to being reused, to prevent a memory leak associated with the custom xDel string value destructor. dbsqlfuzz 65209ab5d5730e4fd14fff9d024325a77239036e. (check-in: 2cf197a2 user: drh tags: branch-3.42)
14:09
Defer setting the BTS_PAGESIZE_FIXED flag until after we are certain there are no errors and the page size has been set. Forum post b901808856. (check-in: cefaf128 user: drh tags: branch-3.42)
14:03
Extra space to prevent a buffer overread on corrupt STAT4 records. dbsqlfuzz 7128d1b41ce9df2c007f9c24c1e89e2f1b2590ca. (check-in: 566c4c14 user: drh tags: branch-3.42)
13:57
Simplify a memcpy() in defragmentPage(). It now might copy more content than is strictly necessary, but runs faster and uses less code space. Possible reasons for the improved performance: (1) the copy is now always 8-byte aligned, (2) fewer intermediate results are required which means less register pressure which helps the compiler to optimize the subroutine. (check-in: 1292d676 user: drh tags: branch-3.42)
13:53
Fix CLI fault on missing -nonce reported by forum post f8c14a1134. (check-in: 67cf7c40 user: drh tags: branch-3.42)
13:49
Fix a problem causing bloom filters to be used less efficiently than they might be. Problem reported by forum post 06c3f01da6. (check-in: 56d9bb7a user: dan tags: trunk)
13:46
Fix a problem causing an infinite loop in the recovery extension when processing a corrupt free-block list. (check-in: d21c06b7 user: drh tags: branch-3.42)
13:43
Fix an issue with sqldiff reported by forum post 9bd2155bdfae25a7. (check-in: 50721074 user: drh tags: branch-3.42)
13:31
Check-in [70e12efd1b189560] left a path through lockBtree() that failed to set the BTS_PAGESIZE_FIXED flag. That omission is fixed by this check-in. dbsqlfuzz 02c9ab74eb0619c9ae3b894ce157fae1d7f94645 (check-in: 30dcc872 user: drh tags: trunk)
11:06
Fix a buffer over-read that could occur as part of an fts5 secure-delete operation on a database containing corrupt fts5 records. dbsqlfuzz a463eac437783bcd246cc675b87842618a569cae (check-in: a35c50ec user: dan tags: trunk)
2023-06-11
22:05
Merge the latest trunk enhancements into the newbie-safe-aggregates branch. (check-in: 75a877a9 user: drh tags: newbie-safe-aggregates)
21:58
Make sure temporary sqlite3_value objects used by STAT4 are reset to NULL prior to being reused, to prevent a memory leak associated with the custom xDel string value destructor. dbsqlfuzz 65209ab5d5730e4fd14fff9d024325a77239036e. (check-in: 88be7075 user: drh tags: trunk)
2023-06-10
19:33
Defer setting the BTS_PAGESIZE_FIXED flag until after we are certain there are no errors and the page size has been set. (check-in: 70e12efd user: drh tags: trunk)
18:40
Fix an assert that can go bad if STAT4 content is corrupt. This is a follow-up to the previous check-in. (check-in: ac1d3860 user: drh tags: trunk)
17:27
Add documentation for SQLITE_DBCONFIG_STRICT_AGGREGATE. (check-in: 76fb9151 user: drh tags: newbie-safe-aggregates)
17:15
Merge the latest trunk enhancements into the newbie-safe-aggregates branch. (check-in: e19e20fb user: drh tags: newbie-safe-aggregates)
17:05
Extra space to prevent a buffer overread on corrupt STAT4 records. dbsqlfuzz 7128d1b41ce9df2c007f9c24c1e89e2f1b2590ca. (check-in: b9913528 user: drh tags: trunk)
10:37
Enhance fuzzcheck so that it understand the sqlite3_db_config() and optimization settings from unused bits in the database header, which dbsqlfuzz is now using. (check-in: 918708c6 user: drh tags: trunk)
09:24
Fix a potential UAF in the parser caused by the changes on this branch. (check-in: c29ec769 user: drh tags: newbie-safe-aggregates)
08:19
Add CFLAGS_FIDDLE to ext/wasm/fiddle.make as a way to pass on additional compilation flags to the fiddle build from the CLI, e.g. CFLAGS_FIDDLE=-DSQLITE_STRICT_AGGREGATE. Expose SQLITE_DBCONFIG_STRICT_AGGREGATE to JS. (check-in: 0b017208 user: stephan tags: newbie-safe-aggregates)
2023-06-09
19:24
Naming consistency: Always use the singular "STRICT AGGREGATE", not the plural. (check-in: 275d056e user: drh tags: newbie-safe-aggregates)
18:58
Improved sqlite3_error_offset() values for bare column errors on '*' and 'table.*' expressions in SELECT statements. (check-in: 446ad162 user: drh tags: newbie-safe-aggregates)
18:30
The -DSQLITE_STRICT_AGGREGATES compile-time option enables SQLITE_DBCONFIG_STRICT_AGGREGATE by default. (check-in: cd1f6b27 user: drh tags: newbie-safe-aggregates)
15:54
Simplify a memcpy() in defragmentPage(). It now might copy more content than is strictly necessary, but runs faster and uses less code space. Possible reasons for the improved performance: (1) the copy is now always 8-byte aligned, (2) fewer intermediate results are required which means less register pressure which helps the compiler to optimize the subroutine. (check-in: 6e5607ae user: drh tags: trunk)
13:08
Experimental change to add a per-connection option that raises an error if a bare column appears in an aggregate query. (check-in: f5878911 user: drh tags: newbie-safe-aggregates)
06:04
More .parameter improvements, a WIP for ".parameter set <cast_op> ..." (check-in: 2b51dcda user: larrybr tags: cli_extension)
01:11
Sync w/trunk. Fix spelling nits. Add ".parameter edit ..." improvements. (check-in: d73f065b user: larrybr tags: cli_extension)
2023-06-08
20:49
Remove SQLITE_EXTENSION_INIT macros from dbdata.c. (check-in: 106ec745 user: dan tags: trunk)
16:19
Improvements to the src-verify.c utility program so that it continues to muddle through a corrupt manifest file, making the most sense of it that it can and reporting "manifest" has having changed at the end. (check-in: 157b5d25 user: drh tags: trunk)
15:30
Fix the amagamation generator so that it works one a clean source tree. (check-in: f502610d user: drh tags: trunk)
15:27
Include source provenance in the header comment of the amalgamation. (check-in: e3eb5af9 user: drh tags: trunk)
12:52
Enhance Lemon so that it remembers which -D command-line options are actually used in the grammar and includes a list of all such options in the header of the generated output file. (check-in: c47a4dbd user: drh tags: trunk)
2023-06-07
23:10
Add spell-checking for all comments in main sources. (./src/ .c .h .in) make target "misspell" tells of misspelled words for which no exceptions have been put into tool/custom.txt . (check-in: 5332abf0 user: larrybr tags: trunk)
17:03
Fix straggler misspellings and tidy the custom dictionary. Also include pickups from forum post c61fb09afd. (Closed-Leaf check-in: 8c291d99 user: larrybr tags: spell-check)
15:00
Remove additional traces of FTS1 and FTS2 that were missed by [2bb50d5aedef0fd2] (check-in: 9a12bac5 user: drh tags: trunk)
14:47
Remove unused, legacy shell script "mkso.sh" from the root of the repo. (check-in: 57f75e48 user: drh tags: trunk)
08:40
Add a C-source spell-checking facility. make misspell (on Nix) (check-in: 26c1bb4b user: larrybr tags: spell-check)
2023-06-06
01:07
More ExportHandler use. Sync w/trunk. Fix .archive UB. (check-in: 4fd4240f user: larrybr tags: cli_extension)
2023-06-05
17:12
Fix compiler warning in src-verify.c. (check-in: 2d58c774 user: drh tags: trunk)
13:57
Update the README.md file to talk about the verify-source makefile target. (check-in: aa8e79e1 user: drh tags: trunk)
11:30
Remove extraneous console trace output from previous check-in. (check-in: c9f6e36d user: stephan tags: trunk)
11:26
Add a JS test confirming that binding of statement parameters in a subquery works. (check-in: 5dfaf0bc user: stephan tags: trunk)
01:05
Generalize the src-verify.c utility program and provide additional documentation in the header comment. (check-in: 7ed84046 user: drh tags: trunk)
00:57
Minor cosmetic normalizations for the MSVC makefile. (check-in: c9fda8d6 user: mistachkin tags: trunk)
2023-06-04
22:59
Fix harmless compiler warnings in tool/src-verify.c (check-in: 0e79ee97 user: drh tags: trunk)
22:56
Enhancement to tool/src-verify.c to also check the manifest.uuid file. (check-in: a39a5694 user: drh tags: trunk)
22:41
Add a prototype implementation for the "verify-source" Makefile target. (check-in: ed876ff6 user: drh tags: trunk)
2023-06-03
11:22
Prototype implementation of the octet_length() SQL function. (check-in: 2db989c8 user: drh tags: octet_length)
2023-06-02
21:31
Clarify sqlite3_is_interrupted() return. No code change. (check-in: b6c2d3d2 user: larrybr tags: trunk)
20:27
Get built-in ExportHandler instances to do more of .mode work. Replace atexit() with something that works for (not quite) "main" returns. Sync w/trunk. (check-in: a588dd9f user: larrybr tags: cli_extension)
18:05
Restore the LEFT JOIN strength reduction that was partially lost in [d747afda5683ca5f] when strength reduction was generalized to all OUTER JOINs. (check-in: 2d962b84 user: drh tags: trunk)
13:31
Do that last CLI fix more simply, using established means. (check-in: a1823b29 user: larrybr tags: trunk)
12:56
Fix CLI fault on missing -nonce reported by forum post f8c14a1134. (check-in: cd24178b user: larrybr tags: trunk)
00:03
Fix the OUTER JOIN strength reduction theorem prover's handling of the CASE operator. (check-in: 73d7b14b user: drh tags: trunk)
2023-06-01
20:38
Generalize the LEFT JOIN strength reduction optimization so that it works for RIGHT and FULL JOIN as well. Rename it to the "OUTER JOIN strength reduction" optimization. (check-in: d747afda user: drh tags: trunk)
16:40
If the filename argument to sqlite3_load_extension() is an empty string, then raise an error. It turns out that if dlopen() is called with an empty filename, it tries to load the current executable. And then if the caller requests some other function from the current executable, mischief can result. (check-in: d0168855 user: drh tags: trunk)
00:28
Add an ALWAYS() on an unreachable branch. (check-in: a00928d4 user: drh tags: trunk)
00:01
Fix the LEFT JOIN strength reduction for IN operators in the WHERE clause. Further simplifications and refinement of the algorithm. (check-in: 96c72dde user: drh tags: trunk)
2023-05-31
18:52
Add a comment to explain why both sides of an AND must be non-null-row in order for the overall expression to be non-null-row. No code changes. (check-in: 8396032c user: drh tags: trunk)
18:35
Improved detection of when the LEFT JOIN strength reduction optimization can be applied. (check-in: f544a8e4 user: drh tags: trunk)
12:42
Minor enhancement to the sqlite3_trace_v2() documentation. No code changes. (check-in: fba97230 user: drh tags: trunk)
11:03
Fix a problem causing an infinite loop in the recovery extension when processing a corrupt free-block list. (check-in: 5a516c6c user: dan tags: trunk)
2023-05-30
16:40
Enhancements to date/time functions: (1) Add support for time-shift modifiers of the form (+|-)YYYY-MM-DD HH:MM:SS.SSS (2) Add the timediff(A,B) SQL function that returns the time-shift modifier sufficient to move B to A. (check-in: 574bf370 user: drh tags: trunk)
14:46
Simplifications to the new timediff() logic. (Closed-Leaf check-in: d6954259 user: drh tags: timediff)
14:10
Minor tweak to the OPFS async proxy to attempt to account for a spurious high-load console error message which was reported via the sqlite-wasm npm project. (check-in: a61467d1 user: stephan tags: trunk)
13:27
Minor internal JS doc fix. No code changes. (check-in: 68abee3c user: stephan tags: trunk)
11:51
New test cases for the timediff enhancements. (check-in: f14633ce user: drh tags: timediff)
11:13
Allow date/time modifiers of the form (+/-)YYYY-MM-DD without the following HH:MM:SS.SSS. (check-in: fa9237a8 user: drh tags: timediff)
02:50
Problems fixed. All tests are passing now. (check-in: cff293b0 user: drh tags: timediff)
02:16
Improvements to the timediff() function. Test cases added. Not all test cases are passing. (check-in: 2cf65181 user: drh tags: timediff)
2023-05-29
20:33
New date/time modifier: (+|-)YYYY-MM-DD HH:MM(:SS.SSS)? (check-in: 3832b8a9 user: drh tags: timediff)
18:01
Prototype implementation of a proposed "timediff(X,Y)" SQL function. (check-in: 054a1951 user: drh tags: timediff)
2023-05-27
20:08
Fix an issue with sqldiff reported by forum post 9bd2155bdfae25a7. (check-in: 736a79c1 user: drh tags: trunk)
19:34
Add extra tests for fts5, large rowids and "ORDER BY rowid DESC". No changes to code. (check-in: b5b5eaee user: dan tags: trunk)
00:03
CLI much closer to being callable. (fewer exit() calls) ^C interrupt response improved. Sync w/trunk. Some diagnostic code removed. Some refactoring for sake of FIDDLE build. Streamline main(), by moving code to more dedicated routines and otherwise. Make -quiet more useful. (check-in: bff3a9a8 user: larrybr tags: cli_extension)
2023-05-25
16:49
Add ability for the JS Worker1.exec() API to report the number of changes made to the caller, per request in forum post d0b19483642e20dd. (check-in: 6e79505d user: stephan tags: trunk)
2023-05-23
19:11
Minor cleanups in demo JS code, per forum feedback. (check-in: 80c7c036 user: stephan tags: trunk)
17:43
Avoid performing aggregate processing more than once for a single expression. (check-in: 1bc54971 user: drh tags: branch-3.42)
17:35
Avoid performing aggregate processing more than once for a single expression. Forum post 36ff78b2a3. (check-in: 367b4cc5 user: dan tags: trunk)
15:22
When converting an aggregate expression to AGG_COLUMN, be sure to remove the EP_Unlikely flag if it is present. (check-in: 20c8a924 user: drh tags: branch-3.42)
15:16
When converting an aggregate expression to AGG_COLUMN, be sure to remove the EP_Unlikely flag if it is present. Forum post fbfe330a2009d036. (check-in: 48e65f18 user: drh tags: trunk)
14:05
Fix a buffer overread in the recovery extension that might occur on 32-bit platforms. (check-in: ff4a9a2b user: dan tags: trunk)
11:47
Add test cases for the recovery extension. No changes to code. (check-in: cec49c7d user: dan tags: trunk)
2023-05-22
20:36
Avoid duplicate WIN32_LEAN_AND_MEAN #define. Fix a trivial nit likely never observed. (check-in: 81ffcf41 user: larrybr tags: trunk)
16:35
When a floating-point RTREE is presented with large integer constraints - integers that are too big to be represented exactly by a float - then take extra steps to ensure that all possibly relevant entries in the RTREE are returned, even in boundary cases. Fix for the problem identified by forum post da70ee0d0d. (check-in: bfd8d910 user: drh tags: trunk)
11:02
Fix a buffer overrun that could occur in fts5 when processing corrupt records. dbsqlfuzz 0c6d3451d115974bc27ebed9b14b7a8e13ea05f3. (check-in: 4891dbd9 user: dan tags: trunk)
2023-05-21
05:06
First serious stab at FIDDLE-build-ready. Fix a flub with absent -A option for some builds. (check-in: bfc36f0f user: larrybr tags: cli_extension)
02:48
CLI code cleanup and shuffle for clarity. Moderate refactoring to exploit commmon patterns. Extend OOM simulation for debug builds. Plug one leak. Fix trivial nit copied from trunk. (check-in: b64ef7f9 user: larrybr tags: cli_extension)
2023-05-19
18:26
Extend detection of the INSERT...RETURNING locking case to the DB.selectValue(s)/selectArray/selectObject() family of functions. Add tests for INSERT/UPDATE...RETURNING with those functions. (check-in: 58be212d user: stephan tags: branch-3.42)
18:23
Extend detection of the INSERT...RETURNING locking case to the DB.selectValue(s)/selectArray/selectObject() family of functions. Add tests for INSERT/UPDATE...RETURNING with those functions. (check-in: 3181c505 user: stephan tags: trunk)
17:59
Minor doc typo fix. (check-in: 4533be08 user: stephan tags: trunk)
17:52
oo1.Stmt.finalize() no longer throws, but instead returns the same as the C API. oo1.DB.exec() now triggers the INSERT...RETURNING locking failure as an exception via reset() instead of finalize(). Some code-adjacent internal API renaming for clarity's sake. (check-in: 15f105c7 user: stephan tags: branch-3.42)
17:50
oo1.Stmt.finalize() no longer throws, but instead returns the same as the C API. oo1.DB.exec() now triggers the INSERT...RETURNING locking failure as an exception via reset() instead of finalize(). Some code-adjacent internal API renaming for clarity's sake. (check-in: 4ee6b3aa user: stephan tags: trunk)
16:42
Improved documentation for sqlite3_reset(), in response to forum post a72bab3dea. (check-in: 1dfeb3dc user: drh tags: trunk)
16:39
sqlite3.oo1.Stmt.reset() and finalize() now throw if their underlying C-level APIs return non-0, in order to avoid silent failure in certain locking-related cases. (check-in: db36a9ef user: stephan tags: branch-3.42)
16:34
sqlite3.oo1.Stmt.reset() now throws if sqlite3_reset() returns non-zero, analog to [f23eb5c6d365]. (check-in: 487ae12c user: stephan tags: trunk)
16:25
CLI resmanage used wherever resources should not be leaked upon abrupt (OOM) termination. (check-in: 1687d123 user: larrybr tags: cli_extension)
16:12
Add a basic INSERT RETURNING test for the oo1.DB.exec() API. (check-in: d29d62cf user: stephan tags: trunk)
15:54
sqlite3.oo1.Stmt.finalize() now throws if sqlite3_finalize() returns non-zero. This is intended to address the INSERT RETURNING case covered in forum post 36f7a2e7494897df. (check-in: f23eb5c6 user: stephan tags: trunk)
12:46
Correct typo in an 'extern' decl name, reported in forum post 1d4342156439233b. (check-in: 3bb1d7b3 user: stephan tags: branch-3.42)
12:41
Correct typo in an 'extern' decl name, reported in forum post 1d4342156439233b. (check-in: 6ac18827 user: stephan tags: trunk)
11:48
Change the RTREE engine so that equality comparisons of floating point values are duplicated in the byte-code so that the comparisons are done using 64-bit floats and consistent results are always obtained. Forum post da61c4a1b5b4af19. (check-in: 4ec0f0a3 user: drh tags: trunk)
2023-05-18
23:42
CLI resmanage use to 100% by commands, 84% by LOC. WIP (check-in: 48f81d8f user: larrybr tags: cli_extension)
23:28
Fix incorrect b-tree root page reports from the enhanced PRAGMA integrity_check output introduced in version 3.42.0. (check-in: 0a0b7a2d user: drh tags: branch-3.42)
23:25
Fix incorrect b-tree root page reports from the enhanced PRAGMA integrity_check output introduced in version 3.42.0. (check-in: 9b538f62 user: drh tags: trunk)
23:16
Incorrect fix. (Closed-Leaf check-in: 81b1bce7 user: drh tags: mistake)
2023-05-17
19:23
Fast-path the btree transaction start for the common case where a transaction is already active. (check-in: 798c3ff2 user: drh tags: trunk)
16:13
Simplification, performance improvement, and size reduction in the codeAllEqualityTerms() function of the code generator. (check-in: 4fbe0265 user: drh tags: trunk)
15:46
New assert() statements to verify that Expr.iColumn is never used as an array index when its value is negative. (check-in: 6084c5fb user: drh tags: trunk)
15:22
More CLI resmanage use (75% LOC) (check-in: 3428ce82 user: larrybr tags: cli_extension)
13:21
Improved assertions on substExpr(). (check-in: 6dbd5b3c user: drh tags: trunk)
11:45
Avoid an assert() failure that could occur in SQLITE_ENABLE_UPDATE_DELETE_LIMIT builds when a WITH clause attached to an UPDATE or DELETE statement created a CTE of the same name as the table being modified. (check-in: 60f03e32 user: drh tags: branch-3.42)
11:31
Avoid an assert() failure that could occur in SQLITE_ENABLE_UPDATE_DELETE_LIMIT builds when a WITH clause attached to an UPDATE or DELETE statement created a CTE of the same name as the table being modified. (check-in: 8edf56d1 user: dan tags: trunk)
03:57
Further CLI resmanage use. (69% by LOC, 53% by command count) Some renames for clarity. (check-in: c010e1a7 user: larrybr tags: cli_extension)
00:47
Resolve the JS-side corner case reported in forum post 7774b773937cbe0a by not caching oo1.Stmt.columnCount. (check-in: adee1440 user: stephan tags: branch-3.42)
00:32
Increase the version number to 3.42.1 (check-in: da0c662b user: drh tags: branch-3.42)
00:29
Fix two assert() statements that failed to take into account the likely() built-in function. This does not impact production code. (check-in: 634fe4c2 user: drh tags: branch-3.42)
00:26
Fix two assert() statements that failed to take into account the likely() built-in function. This does not impact production code. (check-in: 8504fe81 user: drh tags: trunk)
2023-05-16
20:37
Further extend use of CLI resmanage. (40% of dot commands) (check-in: 0cdab9f1 user: larrybr tags: cli_extension)
14:45
Use CLI resmanage to ensure input redirection is unwound on abort. Remove unused resmanage feature. Extend no-leak-on-abort fraction. Detect OOM in .cd . (check-in: 24308527 user: larrybr tags: cli_extension)
14:20
Increase the version number to 3.43.0 in order to begin the next development cycle. (check-in: 7874023c user: drh tags: trunk)
14:18
Resolve the JS-side corner case reported in forum post 7774b773937cbe0a by not caching oo1.Stmt.columnCount. (check-in: 37d44e8c user: stephan tags: trunk)
13:11
Merge all 3.42.0 release enhancements into the reuse-schema branch. (check-in: d67b6c39 user: drh tags: reuse-schema)
13:04
Merge all 3.42.0 release changes into the bedrock branch. (check-in: 1348c2a5 user: drh tags: bedrock)
13:00
Merge all 3.42.0 release changes into the wal2 branch. (check-in: 137057f9 user: drh tags: wal2)
12:56
Merge all 3.42.0 release changes into the begin-concurrent branch. (check-in: 804bb138 user: drh tags: begin-concurrent)
12:36
Version 3.42.0 (check-in: 831d0fb2 user: drh tags: trunk, release, version-3.42.0)
12:34
Update the tool/mkmsvcmin.tcl script so that it prints a one-line message to explain what it has done. (check-in: 4254f086 user: drh tags: trunk)
2023-05-15
23:43
CLI debug build ready for testing whether OOM handling is well-behaved. (check-in: 3cec1488 user: larrybr tags: cli_extension)
21:33
Fix CLI memory leak upon loading any shell extension. (check-in: b91cec47 user: larrybr tags: cli_extension)
19:17
Fix a C++-style variable declaration in the generate_series() extension. (check-in: 1d3e0089 user: drh tags: trunk)
17:24
Limit the number of nested NOT nodes in an fts5 expression to 256. (check-in: 01219e69 user: dan tags: trunk)
17:20
Increase the stack size available to fuzzcheck to 8MB on Windows. (check-in: 2290dc68 user: drh tags: trunk)
17:14
Limit the number of nested NOT nodes in an fts5 expression to 256. (Closed-Leaf check-in: 0e5c1ee4 user: dan tags: fts5-expr-limit)
10:55
Add the --wait command-line option to fuzzcheck. (check-in: 5a479a2c user: drh tags: trunk)
03:48
Make generate_series() correct on ones complement ALUs and acceptable to UBSAN. (check-in: 4c5cd3e6 user: larrybr tags: trunk)
02:06
As evidenced by forum post f3f546025a, the new RIGHT JOIN related restriction on the push-down optimization implemented by [da3fba18742b6e0b] also needs to apply to the automatic index (a.k.a. hash-join) optimization and to the Bloom filter optimization. Computation of the restriction is now moved into the sqlite3ExprIsSingleTableConstraint() routine. (check-in: 4902015d user: drh tags: trunk)
01:02
Simplify the interface to constructAutomaticIndex(). (check-in: c5da1655 user: drh tags: trunk)
2023-05-13
20:01
Fix windows-specific problems in test scripts sessionnoop2.test and sessionrowid.test. (check-in: e4989c11 user: dan tags: trunk)
19:38
Remove unnecessary call to sqlite3_dbdata_init() from shell.c. (check-in: 84ca2000 user: dan tags: trunk)
19:13
Add an "#ifndef SQLITE_HAVE_SQLITE3R" directive to shell.c.in, to avoid including the recovery code a second time if the shell is being compiled with sqlite3r.c. (check-in: 6f1a60fb user: dan tags: trunk)
16:54
Extend CLI resource manager usage. Improve interface to it for clarity and simplicity. (check-in: fd379f22 user: larrybr tags: cli_extension)
15:55
Add the "--unsafe-testing" option to invocations of the shell tool made by test script reuse5.test. (check-in: d6971af7 user: dan tags: reuse-schema)
15:34
Mention that sqlite3_mutex_free() accepts NULL as a no-op. (no code change) (check-in: 603d9ad5 user: larrybr tags: trunk)
15:21
Merge the latest 3.42.0 changes into the reuse-schema branch. (check-in: 515bb26e user: drh tags: reuse-schema)
15:17
Merge the latest 3.42.0 changes from trunk into the begin-concurrent branch. (check-in: 18c5e16b user: drh tags: begin-concurrent)
15:10
Merge the latest 3.42.0 beta changes into the bedrock branch. (check-in: d55ba8bb user: drh tags: bedrock)
15:07
Merge the latest 3.42.0 beta from trunk into the wal2 branch. For some reason, the previous merge didn't work. Probably a PEBKAC. (check-in: 3bbfbdcd user: drh tags: wal2)
15:00
Merge the latest 3.42.0 beta changes into the wal2 branch. (check-in: 771361e1 user: drh tags: wal2)
07:23
CLI closer to doing full cleanup on error exits. Needs testing with OOM simulation. (check-in: 8751f93f user: larrybr tags: cli_extension)
05:13
Fix compilation issue seen with MSVC. (check-in: 67001887 user: mistachkin tags: trunk)
2023-05-12
21:21
CLI resource management applied to about 30% of shell source. A few minor flaws fixed. Comments begin to describe OOM responses. (check-in: ce25a079 user: larrybr tags: cli_extension)
19:06
Fix harmless compiler warning caused by [0772ddf56713d013]. (check-in: f06c16a8 user: drh tags: trunk)
19:02
Add multi-threaded test for "INSERT ... RETURNING ..." and SQLITE_BUSY errors. (check-in: 559cb1c6 user: dan tags: trunk)
15:45
Make the regexp extension more robust against OOM errors during compilation of the recognizer engine. Forum post f50aecd5e8. (check-in: 0772ddf5 user: drh tags: trunk)
14:51
Fix unlikely strange result of CLI edit(). (check-in: ab3797e8 user: larrybr tags: trunk)
13:20
Ensure the _O_U16TEXT is defined for Windows builds of the CLI. Forum post c80aa942dc6bf2. (check-in: 504effa8 user: drh tags: trunk)
12:57
Remove a stray CR from end of line in a source file. (check-in: 48139fb9 user: drh tags: trunk)
12:45
Fix harmless typos in comments. (check-in: 607c3efb user: drh tags: trunk)
10:52
Ensure that all prepared statements are expired and forced to reprepare whenever the database text encoding changes. Forum post 43cbfc4d23. (check-in: 469718f1 user: drh tags: trunk)
2023-05-11
21:47
More CLI resource manager use. Catch more OOMs. Eliminate some opportunities to lose resources under OOM conditions. Conform to coding guidelines. (check-in: efdcf109 user: larrybr tags: cli_extension)
21:15
Add restriction (5) to the omit-noop-join optimization. Fix for the issue reported by [forum/forumpost/49f2c7f690|forum post 49f2c7f690]. (check-in: 3e9c9bbd user: drh tags: trunk)
18:03
Fix a minor typo in a comment. No code changes. (check-in: 607cfb5b user: drh tags: trunk)
17:25
Fix the rbu_exclusive_checkpoint=1 option so that it works with a zipvfs database in pass-through mode. (check-in: caca67d3 user: dan tags: trunk)
17:04
For CLI: Cure an old leak and one segfault. Get all shell tests to pass (by altering expected error output in some cases.) Ready now for full use of CLI resource manager. (check-in: 0f55868e user: larrybr tags: cli_extension)
03:11
WIP, CLI resource manager worked in, barely used yet. (Leaking one object.) (check-in: dbd00bca user: larrybr tags: cli_extension)
2023-05-10
21:08
Doc typo fix. No code changes. (Closed-Leaf check-in: e841b142 user: stephan tags: oo1-no-cache-Stmt.columnCount)
21:06
Resolve the JS-side corner case reported in forum post 7774b773937cbe0a by not caching oo1.Stmt.columnCount. (check-in: c3d25c3a user: stephan tags: oo1-no-cache-Stmt.columnCount)
16:04
Enhance the split-sqlite3c.tcl script so that it uses single-character extensions on subordinate source files, even when the number of subordinates exceeds 9. This is not yet needed, but might be soon. (check-in: 4150e416 user: drh tags: trunk)
13:56
Fix harmless compiler warnings from the CBMC compiler. (check-in: 5bc17cbc user: drh tags: trunk)
11:05
Rename sqlite3IsTableConstraint() to sqlite3IsSingleTableConstraint() and improve its header comment, in an attempt to make the code easier to reason about. No functional changes - should generate identical machine code. (check-in: 5dae8974 user: drh tags: trunk)
10:03
Add a missing comma to the documentation for the OP_Jump opcode. No changes to code. (check-in: 7e2c2b1c user: drh tags: trunk)
09:51
Begin use of a resource manager for CLI. (check-in: 1527d429 user: larrybr tags: cli_extension)
00:45
Get TCL extension to build and extensible shell tests to pass. (check-in: 05ecd8a5 user: larrybr tags: cli_extension)
00:33
New restriction on the push-down optimization to prevent an ON or USING clause on the left side of a RIGHT JOIN from being pushed down into a subquery that is on the right side of that RIGHT JOIN. Forum post a7d4be7fb6. This is similar to an earlier problem fixed at [1783655ea422185e]. Also add comments to describe previously undocumented push-down optimization restrictions. (check-in: da3fba18 user: drh tags: trunk)
00:20
Fix bug in fall-back logic of CLI .clone (check-in: 0dcd9785 user: larrybr tags: trunk)
00:15
Passes shell{1-8}.test . (check-in: 76734a4b user: larrybr tags: cli_extension)
2023-05-09
21:53
sqlite3x builds too. Fails a few shell2.test TCL tests. (check-in: 2749aea2 user: larrybr tags: cli_extension)
21:20
Made to build (again). (check-in: 3eb19495 user: larrybr tags: cli_extension)
2023-05-08
21:35
WIP, sync with trunk to pickup 22 weeks of shell library enhancements. (check-in: 00d0d5b1 user: larrybr tags: cli_extension)
16:26
Fix recover1.test so that it works with DEFAULT_AUTOVACUUM builds. (check-in: 4ffae48e user: dan tags: trunk)
13:47
Improved error handling when ".open" fails in the CLI. (check-in: 38544b11 user: drh tags: trunk)
13:38
In editPage(), if an attempt is made to edit an empty 64KB page, then take the slow path through rebuildPage(), in order to maintain strict invariants in the editPage() code. Forum post 0f37727c0d. (check-in: a865e574 user: drh tags: trunk)
11:11
Ensure that the label for a JSON object really is a string and not an array or object that just happens to end with a string. dbsqfuzz 32f62ed8676d0a153dbe756aeae3202d3670fe50. (check-in: c335737c user: drh tags: trunk)
10:51
Add tests for recovering data to a lost-and-found table from a utf-16 db. No code changes. (check-in: 832f6e9f user: dan tags: trunk)
2023-05-07
03:23
It turns out that pagerExclusiveLock() can be called with the lock state already set to RESERVED if the SQLITE_FCNTL_PERSIST_WAL setting is set and a specific sequence of multiple journal mode changes occur. Enhance pagerExclusiveLock() to deal with this. Forum post 8130545bc6 (check-in: 2bb8d977 user: drh tags: trunk)
2023-05-05
20:22
Fix a comment in the JSON logic. No code changes. (check-in: 3f30ea5e user: drh tags: trunk)
19:36
Fix a buffer overrun that could occur when using the format() function to format a very small real value with the "," modifier. (check-in: 910e770a user: dan tags: trunk)
15:52
Reduce the maximum depth of nesting in json objects to 1000. (check-in: c7697a0d user: dan tags: trunk)
15:28
Do not attempt to run json502.test with SQLITE_OMIT_VIRTUALTABLE builds. (check-in: 66648506 user: dan tags: trunk)
14:16
Updates to compile-time option usage and especially to the compile-time option test script in tool/omittest.tcl. (check-in: fece588b user: drh tags: trunk)
14:14
Fix the pager2-3.1 test case so that it does not run if a required dependence (shared-cache) is omitted from the build. Fix for forum post 7a028538a7. (check-in: a77c8a78 user: drh tags: trunk)
11:47
Allow virtual tables to prepare writes to shadow tables in defensive mode from with xRelease() callbacks - even if the xRelease() is invoked from within sqlite3_finalize(). (check-in: a1710649 user: dan tags: trunk)
11:33
Improved formatting of comments on SQLITE_CONFIG_xxx defines as those comments are used by documentation. (check-in: 2cb840bc user: drh tags: trunk)
2023-05-04
20:28
Add the "subsecond" modifier to the date/time functions. (check-in: 6fcb5a94 user: drh tags: trunk)
20:19
Add some tests of subsecond modifier for date/time functions. Sync with trunk. (Closed-Leaf check-in: 6499ebff user: larrybr tags: subsec-modifier)
14:44
Enhance the format() function so that the "," modifier works for floating point numbers in addition to integers. (check-in: 83683e10 user: drh tags: trunk)
14:41
Merge latest wal2 changes into this branch. (check-in: b2e0800b user: dan tags: bedrock)
14:31
Update this branch with latest changes from trunk. (check-in: 49777032 user: dan tags: wal2)
13:07
Add support for the comma (,) modifier to %f formats in the format() function. (Closed-Leaf check-in: 7080e196 user: drh tags: comma-format)
11:29
Fix a bug in cursor hints that can cause references to tables that have not been opened. Cursor hints are intended for use by COMDB2 only and should not appear in production builds, so this should not be a factor for the vast majority of users. (check-in: d3370d59 user: drh tags: trunk)
2023-05-03
14:10
Add another assert() to FTS5 to demonstrate that a pointer is never NULL. (check-in: b8a84a1b user: drh tags: trunk)
13:57
Add an assert() to fts5_config to ensure that a potential OOM is being handled correctly. (check-in: fe9c2076 user: dan tags: trunk)
13:48
Protect a macro argument with parentheses in FTS5. (check-in: bc07fe51 user: drh tags: trunk)
13:33
Add a comment to the [0512f82a2cde7447] change to link it to its TH3 test case. (check-in: 1281d4d9 user: drh tags: trunk)
13:03
Enhancement to showwal such that it shows what the page hash should be on a hash mismatch. (check-in: 960dc970 user: drh tags: trunk)
11:27
Conform CLI double-quoted escaping to what its doc says. (check-in: 910535ba user: larrybr tags: trunk)
10:56
Fix a problem in test script changebatch1.test. (check-in: 98ecffdf user: dan tags: begin-concurrent)
07:30
In the zipfile extension, leave the catalog list in a consistent state when the last entry is removed from the list. forum post f03f1e4c5a5c9959. (check-in: 1b489d00 user: drh tags: trunk)
06:48
If the page size is wrong on the page1 content inside a WAL file, then running VACUUM could trigger an assert(). This check-in changes that assert() into a branch that returns SQLITE_CORRUPT. Forum post 4ef9b37d74d2d2e8 (check-in: 0512f82a user: drh tags: trunk)
06:38
Improved detection of excess recursion on arrays and objects in the JSON parser. Fixes a problem detected by dbsqlfuzz. (check-in: d40fd592 user: drh tags: trunk)
05:00
Do not overflow the Index.aSample[] array if the same index appears in the sqlite_stat4 table under multiple names because it is a WITHOUT ROWID primary key index. Forum post 537d8ab118df7edd (check-in: 9350a25a user: drh tags: trunk)
04:21
Do not even attempt to load the sqlite_stat4 table if the use of STAT4 is disabled using sqlite3_test_control(). (check-in: 0bf94c77 user: drh tags: trunk)
02:32
Fix CLI mishandling of OOM during .import _of_ a DB. Reported by forum post 7ed4a250d3. (check-in: 30da3f0e user: larrybr tags: trunk)
01:25
In the CLI, ensure that the argument to quoteChar() is not a NULL pointer due to a prior OOM. (check-in: 776d1a47 user: drh tags: trunk)
2023-05-02
21:26
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: d08fa7d4 user: drh tags: reuse-schema)
21:10
Update this branch with latest changes from trunk. (check-in: 6f22c767 user: dan tags: begin-concurrent)
20:34
Fix a problem with the sqlite3changeset_size() API and rowid tables. (check-in: 92ade220 user: dan tags: trunk)
19:58
Merge the latest trunk enhancements into the wal2 branch. (check-in: 0215dcc7 user: drh tags: wal2)
19:33
Give CLI quoted args hex escapes (as documented.) (Closed-Leaf check-in: 90e434a6 user: larrybr tags: cli-hex-escape)
18:03
Cure CLI hang on .import with high-ASCII column separator. (check-in: aac8ac63 user: larrybr tags: trunk)
17:33
Allow for lower-case "nan" to mean NaN in JSON. (check-in: 6bee0a19 user: drh tags: trunk)
16:34
Interpret negative arguments to sqlite3_sleep() as zero. (check-in: 2b542326 user: drh tags: trunk)
11:12
Improved handling of NULL arguments to json_valid() and json_error_position(). Forum post 06c6334412. (check-in: ab78e694 user: drh tags: trunk)
10:22
Fix typo in comment. Forum post 3da7d9c445. (check-in: 41a8a15c user: drh tags: trunk)
00:33
Minor code change in the CLI to make a UAF warning from scan-build go away. (check-in: ad6aae76 user: drh tags: trunk)
2023-05-01
20:42
Fix harmless compiler warnings. (check-in: 342af5b4 user: drh tags: trunk)
20:09
The gcc definition of the SQLITE_INLINE macro is not compatible with string ANSI, so disable it if the -std=c89 command-line option is used. (check-in: 62d703d8 user: drh tags: trunk)
19:59
Fix harmless compiler warnings in FTS5. (check-in: f6210017 user: drh tags: trunk)
19:28
Remove xFileControl() handling from the OPFS VFS altogether, re-routing all syncing through xSync() instead. This eliminates superfluous syncing introduced in [a371374148a2], as discussed in forum thread 647d2f811dbc2dfe. (check-in: f809de7f user: stephan tags: trunk)
18:52
Fix harmless compiler warnings. (check-in: 0a926994 user: drh tags: trunk)
18:28
Add support for JSON5. (check-in: f8c3ed23 user: drh tags: trunk)
15:59
Fix typos in comments in sqlite3session.h preventing documentation from being correctly generated. (check-in: ab75170d user: dan tags: trunk)
15:57
New enhancements to the sqlite3_db_config() constants documentation. (check-in: d74011a3 user: drh tags: trunk)
15:42
Expose the SQLITE_DBCONFIG_STMT_SCANSTATUS and SQLITE_DBCONFIG_REVERSE_SCANORDER sqlite3_db_config() options to JS. (check-in: 0a7024af user: stephan tags: trunk)
15:15
Implement full xSync() for the OPFS VFS. The previous implementation was not correct for journal files. Reported in forum post 647d2f811dbc2dfe. (check-in: a3713741 user: stephan tags: trunk)
14:50
Fix typos in documentation comments in sqlite3.h. (check-in: 6a8b0078 user: drh tags: trunk)
11:24
Do not apply the "AND false" optimization if either operand comes from the ON clause of a join. Fix for the problem identified by forum post 96cd4a7e9e. (check-in: d095da0e user: drh tags: trunk)
03:56
Fix abbreviated paths for objects such that they work even if the object key begins with '$'. (Closed-Leaf check-in: 1b991c78 user: drh tags: json5)
2023-04-30
23:52
Fix a problem with json_patch() when one side or the other is JSON5. dbsqlfuzz bc10593a4ba8e7a7862593532285be31f00f8e41 (check-in: e18c0899 user: drh tags: json5)
20:37
Accept the full ECMAScript 5.1 IdentifyName syntax for keys in objects. (check-in: 9be2c875 user: drh tags: json5)
19:45
All JSON to understand floating point literals "Inf" and "QNaN" and "SNaN" in any case, without the SQLITE_EXTENDED_NAN_INF compile-time option. This extension is always available. (check-in: fb551145 user: drh tags: json5)
19:34
Omit the json_valid() function. Change the name of json_error() to json_error_position(). Use "NOT json_error_position(X)" as a substitute for "json_valid5(X)". (check-in: 34c4e900 user: drh tags: json5)
2023-04-29
18:40
Merge all the latest trunk enhancements into the JSON5 branch to facilitate testing of the JSON5 branch. (check-in: 30d12ede user: drh tags: json5)
18:31
Fix a crash that could occur in fts5 'secure-delete' mode when operating on corrupt records. (check-in: 2e85b0e3 user: dan tags: trunk)
17:35
More ALWAYS() macros. (check-in: 770b09f7 user: drh tags: json5)
17:13
Add ALWAYS macros on unreachable branches in the new JSON5 logic. (check-in: 91e15ed9 user: drh tags: json5)
16:31
Simplification of the logic that normalizes JSON5 integer literals into canonical JSON integer literals. Improved reporting of OOM. (check-in: 01ee613c user: drh tags: json5)
16:00
Do not allow leading zeros on non-zero numeric literals in JSON. (check-in: 3e914943 user: drh tags: json5)
15:42
Cure CLI generate_series() overflow bug (noted by forum post #754e2d4db2a5) and bring behavior with negative step arguments closer to as-documented and eponymous function in PostgreSQL. (check-in: 07383758 user: larrybr tags: trunk)
15:29
Replace duped generate_series() test with another corner case. (Closed-Leaf check-in: fb2f0878 user: larrybr tags: generate_series-revamp)
12:29
Sync w/trunk, improve generate_series() variable names. (check-in: ecbf7e13 user: larrybr tags: generate_series-revamp)
12:13
Minor fixes to to the JSON% parser. (check-in: 2fe684cd user: drh tags: json5)
00:59
Correctly recognize an isolated U+feff as a space character in JSON5. (check-in: 4473dc8e user: drh tags: json5)
2023-04-28
23:39
Add tests for generate_series(), fix a so bug found, and change an existing test that enforced varying rowid-to-value mapping with query ordering. (That no longer varies.) (check-in: 9605db4a user: larrybr tags: generate_series-revamp)
23:38
Bug fixes in the logic to skip over JSON5 comments. (check-in: c736b77a user: drh tags: json5)
23:19
Bug fix in the offset computation for json_error(). (check-in: 8f7ab5d9 user: drh tags: json5)
21:25
Revise generate_series() extension (in CLI) to address overflow reported in forum post #754e2d4db2a5 and to make behavior better match the like-named PostgreSQL function. (check-in: beeea3e1 user: larrybr tags: generate_series-revamp)
17:38
Improvements to the accuracy of json_error(). Add the extension SQL functions random_json(SEED) and random_json5(SEED). (check-in: 8d09dc1c user: drh tags: json5)
14:48
Add the json_error(X) function that returns the 1-based character offset to the first syntax error in JSON5 string X, or 0 if there are no errors. (check-in: 901ad995 user: drh tags: json5)
13:25
Fix indentation and omit trailing whitespace in the random JSON generator script. (check-in: 629db09f user: drh tags: json5)
11:02
Fix json_tree() so that it is able to deal with the JNODE_RAW labels of a JSON5 object. (check-in: f56528d4 user: drh tags: json5)
10:23
Merge all the latest trunk fixes and enhancements into the json5 branch. (check-in: b5ca15cf user: drh tags: json5)
10:10
Do not assert() a bad string representation in an sqlite3_value after an OOM. dbsqlfuzz c822a17a23c524a0ac7cfb203c7198209da15de8. (check-in: 91fee79a user: drh tags: trunk)
00:28
Make CLI .load slightly harder to abuse. (check-in: 2779f927 user: larrybr tags: trunk)
00:19
In the CLI, early out from the output_quoted_string() routine if the input string is NULL. forum post 8a22c0bfa7. (check-in: 2881978d user: drh tags: trunk)
2023-04-27
23:59
Use a new technique to detect fresh OOM faults in columnName() that does not rely on there being no OOMs prior to entry into columnName(), as [forum/forumpost/fb6811c2f9|forum post fb6811c2f9] demonstrates a technique which could cause an OOM prior to entry into columnName(). (check-in: a63346d6 user: drh tags: trunk)
23:44
Remove a faulty assert() from the CLI. Forum post 726c4f7db0. (check-in: 4bbebb6b user: drh tags: trunk)
23:40
Remove an ALWAYS() macro that can in fact sometimes be false. Forum post f0e872fcee. (check-in: d85880e4 user: drh tags: trunk)
23:29
Test cases added, and some bugs fixed. (check-in: bc84a82e user: drh tags: json5)
22:17
Fix compilation issues seen with older versions of MSVC. (check-in: 4ba2a651 user: mistachkin tags: trunk)
21:31
Adjust OSTRACE usage so that it works with the changes in the previous check-in. (check-in: 1eb4573e user: mistachkin tags: trunk)
19:30
Further optimizations to the JSON parser. (check-in: bb8f1c16 user: drh tags: json5)
19:27
Dynamically resize the node hash table used by the rtree module. (Leaf check-in: f94f3da5 user: dan tags: rtree-batch-insert)
19:13
Faster implementation of numberic literal parsing in JSON. (check-in: 58398292 user: drh tags: json5)
18:28
Add support for hexadecimal integer literals in JSON. (check-in: 85e00c9e user: drh tags: json5)
17:32
All floating point literals "NaN" and "Infinity". Additional variants of these literals are available if compiled with SQLITE_EXTENDED_NAN_INF. (check-in: c13346af user: drh tags: json5)
16:57
Fix handling of reverse solidus in string literals. Allow decimal points in floating point literals to occurs and the beginning or end of the mantissa. (check-in: d92a6ab2 user: drh tags: json5)
16:24
Fix the handling of escape solidus in the JSON routines. (check-in: 676877ac user: drh tags: json5)
15:48
JSON string literals may span multiple lines by escaping new line characters. (check-in: 66da4bd4 user: drh tags: json5)
15:11
Allow the labels on JSON objects to be unquoted identifier names. (check-in: fb428db3 user: drh tags: json5)
14:38
Performance optimization in the JSON parser. (check-in: 5a88ba74 user: drh tags: json5)
13:55
Fix a problem on windows sometimes causing SQLITE_NOMEM to be returned if an error occurred while opening a temp file. (check-in: c22a39a6 user: dan tags: trunk)
13:44
Permit JSON5 whitespace in all contexts of objects and arrays. (check-in: 93f3ab26 user: drh tags: json5)
12:24
Translate JSON5-only string literal escape sequences into the JSON equivalents. (check-in: 14e82f36 user: drh tags: json5)
2023-04-26
20:41
Fix some problems with the rtree module and existing tests on this branch. (check-in: 50e8a30b user: dan tags: rtree-batch-insert)
20:26
Implement some of the JSON5 enhancements to string and numeric literals. This is an incremental check-in of work in progress. (check-in: 9508efa9 user: drh tags: json5)
18:50
Fix a typo in a printf() format string the sessions module. (check-in: 14d1c4a8 user: dan tags: trunk)
18:23
When changing a large integer into a floating point value, cancel the string representation. Fix for forum post 5c74a3bc4a. (check-in: 3e2da8a7 user: drh tags: trunk)
17:30
Partial implementation of JSON5 numeric literal extensions. Use a switch() statement in the parser for better performance. (check-in: 78404dc3 user: drh tags: json5)
15:58
Improvement to the way the JSON performance measure scripts work → keep the test database in the directory of the test, not in the source tree. (check-in: ac411dbd user: drh tags: json5)
15:19
Work toward implementing JSON5 whitespace. Untested and incomplete. (check-in: d262c059 user: drh tags: json5)
13:52
Fix to the json-speed-check.sh script. (check-in: d839c954 user: drh tags: json5)
13:25
Add scripts for JSON performance testing. (check-in: 3051d6a7 user: drh tags: json5)
2023-04-25
21:24
The json_valid() function only returns true for pure JSON. JSON5 (or at least that subset of JSON5 that has been so far implemented) is accepted by all routines, but json_valid() still returns false for JSON5 inputs. The new json_valid5(X) routine returns true or false if X is or is not valid JSON5. All of this is experimental and subject to change. (check-in: 5d33ab77 user: drh tags: json5)
20:41
Allow the sessions module to be configured to capture changes from tables with no explicit PRIMARY KEY. (check-in: 5d4431bc user: dan tags: trunk)
15:12
If an ON clause to the left of a RIGHT JOIN is false, that does not imply that the query returns no rows. (Leaf check-in: 4011b9d3 user: drh tags: branch-3.41)
14:54
Remove unused variable ltoj accidentally added by [1783655e]. (check-in: faa1575c user: dan tags: trunk)
14:37
Avoid assuming that an expression in an ON() clause that evaluates to zero implies that the query will return zero rows when the query contains a RIGHT JOIN. Forum Post 95849acbe1. (check-in: 1783655e user: dan tags: trunk)
11:52
Fixes to SQL extension functions base64() and base85(). (check-in: ab3331f4 user: drh tags: branch-3.41)
04:28
Handle newline-trimmed input TEXT correctly in base64, base85 UDFs, an issue exposed in forum post 8d6ed893c0. (check-in: 8f637aae user: larrybr tags: trunk)
02:44
Check for OOM sqlite_value_x() returns in base64, base85 extensions, a partial response to forum post 74dd86263e. (check-in: e6f9c0b1 user: larrybr tags: trunk)
2023-04-24
23:14
Allow trailing commas in objects and arrays of JSON. (check-in: 4031b231 user: drh tags: json5)
21:08
Hold the RTREE node cache open and defer writes until the very end of the INSERT statement, for a 20x performance improvement on the test script identified at forum post 6b8bca17bb884ef3. However, there are still bugs and tests will crash. Follow-up: Performance improvements were not real. The bugs caused incorrect answers. In reality, no performance improvement seen. (check-in: b35cb745 user: drh tags: rtree-batch-insert)
19:23
Update the compile-time detection of architecture byte-order in the RTREE extension so that it is aligned with the latest enhancements in the core. (check-in: 122431d3 user: drh tags: trunk)
19:22
Allow the sessions module to be configured to capture changes from tables with no explicit PRIMARY KEY. (Closed-Leaf check-in: 8a612f08 user: dan tags: sessions-rowid-tables)
19:14
Mistake → branched off of the wrong branch. (Closed-Leaf check-in: 491bd51d user: drh tags: mistake)
04:25
Add a note about the journaling mode in the OPFS VFS. No code changes. (check-in: e79c95fc user: stephan tags: trunk)
2023-04-23
00:12
CLI to have "undocumented" dot-commands, not usually shown by .help (check-in: 17f5dd2d user: larrybr tags: trunk)
2023-04-22
23:43
Import fixes from trunk into the branch-3.41. (check-in: 58a1d94c user: drh tags: branch-3.41)
22:32
The sqlite_stat4.idx field is case insensitive. It should work even if some entries use a different case than others. Fix for forum post 6c118daad0f1f5ef. (check-in: f097ca70 user: drh tags: trunk)
20:47
Avoid a crash in fts5 when combining an empty expression with another. (check-in: 33681ff3 user: dan tags: trunk)
20:22
Enhance the ".tables" command in the CLI so that it is able to deal gracefully with an OOM situation. (check-in: 5157fd1c user: drh tags: trunk)
20:07
The assertion-fault fix in [53a61f7423a7f057] was not quite complete. This additional change enhances it to deal with WITHOUT ROWID tables. No changes to deliverable code. (check-in: 4d5af42c user: drh tags: trunk)
17:41
Add the --unsafe-testing command-line option to the CLI. Without this option, features of the CLI that are intended for testing and that might result in incorrect answers, assertion faults, and/or corrupt database files if misused are disabled. Fix for the unfounded concerns raised by 13 separate forum posts last night. (check-in: f28256a9 user: drh tags: trunk)
16:46
Add --unsafe-testing invocation option to CLI. Needs some tests added and changed. (Closed-Leaf check-in: b3d9ac05 user: larrybr tags: shell-for-test)
12:47
Fix an incorrect assert() statement in btree.c as found by forum post d03345d572713fe6. (check-in: cd485b30 user: drh tags: trunk)
12:37
Fix a incorrect assert() statement in the pre-update hook logic. No changes to production code. Fix for the problem reported by forum post 19b217bfe709a072. (check-in: 53a61f74 user: drh tags: trunk)
12:11
Fix harmless compiler warning in [1489e7f53a4863b3]. (check-in: da907dbc user: drh tags: trunk)
11:33
Also fix no-length string intolerance for CLI json mode. (check-in: 3ac19840 user: larrybr tags: trunk)
11:29
Early out from sqlite3Prepare() following an OOM to avoid possible problems further along in the parse. Fix for the NULL pointer dereference reported by forum post 2e5131839365682a. (check-in: f35ce7c1 user: drh tags: trunk)
11:24
CLI to handle absurd string length limit better. forum post 5180af725f1cc375 (check-in: 1489e7f5 user: larrybr tags: trunk)
09:26
Avoid need for cast in CLI shell_check_oom() calls. (check-in: c88550ef user: larrybr tags: trunk)
09:14
Fix unchecked return in CLI .dbi command. (Forum post 79e2cd1bc) (check-in: 81a74ee9 user: larrybr tags: trunk)
2023-04-21
15:37
Change the return type of the ts_read/write() family of functions from int to ssize_t, per report in forum post 947169d5e7. (check-in: 7809e7ce user: stephan tags: trunk)
15:30
Add a new modifier to date/time functions: "subsecond". May be abbreviated as just "subsec". This modifier causes functions to try to show fractional seconds if they do not already. (check-in: 03f2a15e user: drh tags: subsec-modifier)
2023-04-20
20:07
Increase CLI tolerance of artificially low memory. (check-in: 13f26386 user: larrybr tags: trunk)
16:15
CLI .ar made to enforce getting a proper subcommand. (check-in: 104ab105 user: larrybr tags: trunk)
10:40
Fix a function declaration so that it correctly appears as private in the amalgamation. Forum post ec8c77516c. (check-in: 1864569b user: drh tags: trunk)
10:26
Fix a broken assert() in the recovery extension. Forum post 82a88f5812. (check-in: 8a1ad137 user: dan tags: trunk)
2023-04-19
20:29
Add tests for the progress-handler callback with the fts5 'secure-delete' feature. (check-in: 48505ad9 user: dan tags: trunk)
18:36
Improved rebustness of the pcache tracing logic. (check-in: 0a43235b user: drh tags: trunk)
18:32
Remove unreachable legacy code. (check-in: e3e7fb87 user: drh tags: trunk)
17:13
Fix a segfault that could occur if a non-empty in-memory database was the destination of a backup operation from a database with a smaller page size. (check-in: d3724158 user: drh tags: branch-3.41)
17:07
Fix a segfault that could occur if a non-empty in-memory database was the destination of a backup operation from a database with a smaller page size. Forum post 679b4de86e763d52. (check-in: 020968f8 user: dan tags: trunk)
15:39
Do not remove pages from the cache of an in-memory database due to a failure to acquire the page due to it being larger than the maximum page size. (check-in: 551b9dac user: drh tags: branch-3.41)
15:35
Do not remove pages from the cache of an in-memory database due to a failure to acquire the page due to it being larger than the maximum page size. Fix for forum post a19bb49140. (check-in: 982b3556 user: drh tags: trunk)
14:26
Fix ambiguity in the header comment to the sqlite3PagerUnrefNotNull() routine. No code changes. (check-in: d419e65e user: drh tags: trunk)
13:56
Fix a debugging printf() in pcache.c. This only comes up on custom builds. (check-in: f2d67567 user: drh tags: trunk)
13:39
Correct use of an undefined symbol in one of the OPFS VFS loading failure error reporting cases (copy/paste error). (check-in: c81c968b user: stephan tags: trunk)
13:30
Add pager debug tracing of truncate operations. (check-in: 0daadf36 user: drh tags: trunk)
12:08
Attempt to suppress harmless compiler warnings reported by forum post fc98845c06. (check-in: f6e6c5f9 user: drh tags: trunk)
2023-04-18
23:05
CLI to cease dumping back to OS shell on single ^C when interactive. (check-in: ba8e4378 user: larrybr tags: trunk)
22:53
Add comment on CLI ^C fix (because it is a bit subtle.) (Leaf check-in: 19c062f1 user: larrybr tags: cli-no-dump)
22:28
CLI to cease dumping back to OS shell on single ^C when interactive. (check-in: 7b1f6352 user: larrybr tags: cli-no-dump)
20:02
Make use of F_BARRIERFSYNC as an alternative to F_FULLFSYNC when it is available. (Leaf check-in: 3c517ba5 user: drh tags: barrier-fsync)
16:44
Ensure that the VACUUM command is not confused by alternative encodings when it is the first command run on new database connection. (check-in: 441f4e4a user: drh tags: branch-3.41)
15:21
Ensure that the VACUUM command is not confused by alternative encodings when it is the first command run on new database connection. Forum post 09503b4d33. Problem introduced by check-in [a02da71f3a80dd8e]. (check-in: 8b0fe63f user: drh tags: trunk)
14:17
Another fix to the indexed expressions in aggregate queries with GROUP BY enhancement of ticket 99378177930f87bd and implemented by check-in b9190d3da70c4171 to address a problem described by forum post f34e32d120. (check-in: c37e7610 user: drh tags: branch-3.41)
14:13
Another fix to the indexed expressions in aggregate queries with GROUP BY enhancement of ticket [99378177930f87bd] and implemented by check-in [b9190d3da70c4171] to address a problem described by forum post f34e32d120, (check-in: 5acc3ef8 user: drh tags: trunk)
11:35
Add the --fullsync option to speedtest1. (check-in: 960fe54c user: drh tags: trunk)
11:33
Fix an assert() in fts5 that could fail following an OOM or IO error. (check-in: 49595083 user: dan tags: trunk)
2023-04-17
23:59
When CLI -utf8 active, do no translation to MBCS for output to Windows console. plus code style improvements (check-in: 25edf608 user: larrybr tags: trunk)
22:28
Minor coding style changes. (Leaf check-in: 481aa3cc user: mistachkin tags: cli-utf8)
21:18
When CLI -utf8 active, do no translation to MBCS for output to Windows console. (check-in: cc1d4296 user: larrybr tags: cli-utf8)
18:32
Fix some problems with using fts5 options 'secure-delete' and detail=none together. (check-in: 4d3f27ba user: dan tags: trunk)
11:41
Fix problems handling corrupt records in new fts5 code. (check-in: 2f63d4a8 user: dan tags: trunk)
10:39
Fix an assert() in fts5 that may be true when dealing with corrupt records. (check-in: e8de2774 user: dan tags: trunk)
2023-04-15
21:00
Change a memcpy() to memmove() in new fts5 code. (check-in: 8de45425 user: dan tags: trunk)
19:58
Fix a use-after-free that could follow an OOM or IO error in fts5 when using 'secure-delete' mode. (check-in: 904be83d user: dan tags: trunk)
19:13
Avoid dropping the error code following an OOM in fts5 when using 'secure-delete' mode. (check-in: 9ee24a49 user: dan tags: trunk)
17:56
Add -utf8 option to CLI, for improved console behavior on Windows. (check-in: 414010d2 user: larrybr tags: trunk)
17:47
Add the 'secure-delete' option to the fts5 extension. For configuring fts5 to delete old entries directly from the full-text index instead of using delete keys. (check-in: 394980e4 user: dan tags: trunk)
16:12
For CLI -utf8, set output codepage too. Adjust PP vars so that the code can be entirely omitted for targets pretending to be "WIN32" but not quite doing so. (check-in: 543594a7 user: larrybr tags: cli-utf8)
2023-04-14
21:34
Fix stray edits in comments in last check-in. (check-in: fa3ce7f0 user: larrybr tags: cli-utf8)
21:23
Set CLI -utf8 option and build with line-editing package to be mutually exclusive. Integration of console-invasive UTF-8 handling with line-editing takeover of console may come later. (check-in: 047344a9 user: larrybr tags: cli-utf8)
19:56
Cure CLI double-prompting (by ditching gcc fgetws()), general cleanup. Work remaining is to avoid effect of -utf8 when a line editor is linked/used as part of CLI. (check-in: 73a5f542 user: larrybr tags: cli-utf8)
18:00
Further tests for fts5 secure-delete mode. (Closed-Leaf check-in: c5a47063 user: dan tags: fts5-secure-delete)
17:00
Add extra OOM test for the new code on this branch. (check-in: 846ae7e0 user: dan tags: fts5-secure-delete)
16:11
Add tests for the new feature on this branch. (check-in: 0268d1a5 user: dan tags: fts5-secure-delete)
15:42
Fix a typo in the aggfault.test test script. (check-in: e915bff7 user: drh tags: branch-3.41)
14:36
Fix SQLITE_OMIT_VIRTUALTABLE builds of testfixture. (check-in: 430ec1a6 user: dan tags: trunk)
13:34
Update test script recoverbuild.test so that it may be run using old test harnesses that run more than one test script in a process. (check-in: 5135aab0 user: dan tags: trunk)
10:46
When setting the column types on a subquery, ensure that the COLFLAG_HASCOLL flag is cleared from column names from when the collating sequence name has been removed. (check-in: de61bdc9 user: drh tags: branch-3.41)
10:40
When setting the column types on a subquery, ensure that the COLFLAG_HASCOLL flag is cleared from column names from when the collating sequence name has been removed. Forum post 6916dacf83. (check-in: 8d9dcd7c user: drh tags: trunk)
10:35
Fix a cosmetic indentation issue. (check-in: 90deb844 user: drh tags: trunk)
00:23
Avoid double de-quoting of table names when processing RESTRICT actions in foreign key constraints. (check-in: 5af7abff user: drh tags: branch-3.41)
00:20
Avoid double de-quoting of table names when processing RESTRICT actions in foreign key constraints. Chromium 1405220. Problem introduced by [9e503e2d0428c9e8] 2009-09-28 for version 3.6.19. (check-in: bb2b5ab1 user: drh tags: trunk)
2023-04-13
18:49
Fix an obscure issue with ALTER TABLE RENAME that comes up with triggers that have UPDATE statements that contain errors. (check-in: cf651dee user: drh tags: branch-3.41)
18:44
Fix an obscure issue with ALTER TABLE RENAME that comes up with triggers that have UPDATE statements that contain errors. Forum post ff3840145a. (check-in: c4845a7c user: drh tags: trunk)
15:11
Remove an ALWAYS() that can sometimes be false. And fix a code-generator issue associated with very unusual use of window functions. (check-in: fc127437 user: drh tags: branch-3.41)
14:53
Add extra test cases to window1.test. (check-in: ebc844fb user: dan tags: trunk)
14:50
Fix a code-generator issue associated with very unusual use of window functions. Both the expr.c or the window.c changes will each independently fix the problem. They are both included in this patch for defense in depth. Forum post 0d48347967. (check-in: 1ba22631 user: drh tags: trunk)
14:14
Get CLI utf8_fgets() to not consume more input than it returns. Get console setup restoration to happen for all non-crash exits. (check-in: b4fa233d user: larrybr tags: cli-utf8)
2023-04-12
20:23
Unwrap the loop in the WAL hash function. (check-in: eb94ae13 user: drh tags: trunk)
19:40
Automatically set HAVE_PREAD and HAVE_PWRITE on linux, as has been done in MacOS for a long time now. (check-in: 2f7a36d2 user: drh tags: trunk)
18:57
Small performance enhancement to integer-to-text conversion. (check-in: cfb3dba9 user: drh tags: trunk)
18:18
Avoid leaking a database handle in test script rbuexlock.test. (check-in: 2edf98d1 user: dan tags: trunk)
18:06
Remove temporary debugging code accidentally left on this branch. (check-in: 0a0f6487 user: dan tags: fts5-secure-delete)
17:54
WIP: CLI option to take control of console on Windows and make it support UTF-8 input pasting (or typing). Needs work to become robust per "ToDo:". (check-in: 82438239 user: larrybr tags: cli-utf8)
17:40
Add the 'secure-delete' option to fts5. Used to configure fts5 to aggressively remove old full-text-index entries belonging to deleted or updated rows. (check-in: 4240fd09 user: dan tags: fts5-secure-delete)
2023-04-11
19:38
New #ifdef to enable building with -DSQLITE_OMIT_WINDOWFUNC. (check-in: e1ff83fa user: drh tags: trunk)
15:06
Remove an ALWAYS() that can sometimes be false. Add a test case that makes the test false. Forum post 6c5678e3da. (check-in: c8fb143d user: drh tags: trunk)
02:10
Better handling of OOM errors in the cursor-hint logic. dbsqlfuzz 60cd5fff91974af91c2c3692beb4a2d7fdafef46 (check-in: 68fcfb58 user: drh tags: trunk)
2023-04-10
23:21
For sha3 extension, mention NIST standard implemented. (check-in: 529ab138 user: larrybr tags: trunk)
18:44
New assert() statements to validate the parameters to sqlite3BtreeCursorHint(). Fix a problem with the construction of those parameters discovered by forum post 0b53708c95. (check-in: 4c5a3c5f user: drh tags: trunk)
13:20
Sync the vt02.c test virtual table with TH3, in order to pull in the fix for long delays when there are huge OFFSET values. (check-in: 49ba0300 user: drh tags: trunk)
2023-04-09
20:48
Fix an assertion fault that can occur when compiling with both SQLITE_ENABLE_UNKNOWN_SQL_FUNCTIONS and SQLITE_ENABLE_STAT4. (check-in: 2b02862d user: drh tags: branch-3.41)
20:44
Fix an assertion fault that can occur when compiling with both SQLITE_ENABLE_UNKNOWN_SQL_FUNCTIONS and SQLITE_ENABLE_STAT4. (check-in: 9ff69e59 user: drh tags: trunk)
10:23
Fix a faulty assert() in whereRangeScanEst() that should only apply if there are not prior errors. (check-in: 450d8ad8 user: drh tags: branch-3.41)
10:09
Fix a faulty assert() in whereRangeScanEst() that should only apply if there are not prior errors. dbsqlfuzz 567ad91132879cbab8172b38c6a68ad40fa8d650. (check-in: 8ba9b08b user: drh tags: trunk)
2023-04-08
19:27
Fix a couple harmless compiler warnings seen with MSVC. (check-in: 1b864a37 user: mistachkin tags: trunk)
19:23
Fix a typo in [83e84531b46814ae] that changed the value of SQLITE_DBCONFIG_STMT_SCANSTATUS. (check-in: b7177653 user: drh tags: trunk)
16:51
Faster implementation of keywordCode() - the routine that determines if an identifier is really a keyword and if so, which keyword. (check-in: 0ff3d3d5 user: drh tags: trunk)
13:31
Fix a harmless compiler warning. (check-in: c9559ba6 user: drh tags: trunk)
13:01
Optimizations to btree.c save about 4.5 million CPU cycles: (1) Clone insertCell() into a separate insertCellFast() routine for use by sqlite3BtreeInsert(). (2) Mark allocateSpace() as always-inline. (3) Improved coalesence of adjacent free blocks in pageFreeArray(). (check-in: 5c12c400 user: drh tags: trunk)
2023-04-07
18:27
Guard against oversized cells in the newly enhanced pageFreeArray(). (Closed-Leaf check-in: 2dcdbb50 user: drh tags: btree-freespace-opt)
16:30
Add NEVER on an unreachable branch. (check-in: 9b3febbd user: drh tags: btree-freespace-opt)
15:49
Fix an assert(). (check-in: 7eff46ba user: drh tags: btree-freespace-opt)
15:07
Tweaks to the new insertCellFast(). (check-in: 203a581a user: drh tags: btree-freespace-opt)
14:33
Clone insertCell() into insertCellFast() for use by sqlite3BtreeInsert() for a substantial performance increase. (check-in: f225afd9 user: drh tags: btree-freespace-opt)
14:03
Fix a problem causing the rbu_exclusive_checkpoint=1 to be ignored with zipvfs databases. (check-in: d8f50b31 user: dan tags: trunk)
13:21
Small performance improvement in freeSpace(). (check-in: 8dc5292e user: drh tags: btree-freespace-opt)
11:55
Try to use a heap to make coalescence of adjacent free slots faster when freeing space on a btree page. Turns out that the overhead of managing the heap overwhelms any performance gain and the result is slower. (Closed-Leaf check-in: 5d7e833f user: drh tags: deadend)
11:18
Add further tests for the rbu_exclusive_lock=1 URI option. (check-in: c07b62be user: dan tags: trunk)
2023-04-06
20:14
Increase the size of the cache of free blocks inside of pageFreeArray() to reduce the number of calls to freeSpace(). (check-in: 27c59f1e user: drh tags: btree-freespace-opt)
17:41
Work around a harmless assertion fault associated with sqlite3VdbeMemAboutToChange() such that the detection of stale values in registers is preserved in debugging builds, but we avoid a false-positive assertion fault in cases involving a virtual table with a LIMIT clause in an IN-operator loop. (check-in: 9511d17e user: drh tags: branch-3.41)
17:29
Work around a harmless assertion fault associated with sqlite3VdbeMemAboutToChange() such that the detection of stale values in registers is preserved in debugging builds, but we avoid a false-positive assertion fault in cases involving a virtual table with a LIMIT clause in an IN-operator loop. dbsqlfuzz 3fd70d4ab4950acf1deb8f610a7a7c67cd38713b (check-in: 56ea2c2f user: drh tags: trunk)
15:32
A prepared statement that aborts due to SQLITE_SCHEMA should not invalidate cursors in other prepared statements that are already running. (check-in: 4eee8401 user: drh tags: branch-3.41)
13:35
A prepared statement that aborts due to SQLITE_SCHEMA should not invalidate cursors in other prepared statements that are already running. See forum post cae4367d9b for the original trouble report. (check-in: 857d0f5e user: drh tags: trunk)
02:26
In the CLI, during error processing while looking for a word boundary, avoid being deceived by malformed input that has a very long sequence of 0x80 characters. Also fix a problem in the zipfile extension for when a corrupt zipfile has a zero-length filename. (check-in: 5323ee77 user: drh tags: branch-3.41)
01:05
In the CLI, during error processing while looking for a word boundary, avoid being deceived by malformed input that has a very long sequence of 0x80 characters. forum post ab93a23ba1. (check-in: 82609d5a user: drh tags: trunk)
00:59
In the zipfile extension, defend against corrupt ZIP files that contain a zero-length filename. Forum post b15f5e3ad8. (check-in: 46db2e42 user: drh tags: trunk)
00:18
In the new .scanstatus command in the CLI, make sure the database is opened before invoking sqlite3_db_config(). Forum post 6e26dcf544. (check-in: 1cd993c4 user: drh tags: trunk)
2023-04-05
03:00
Remove an ALWAYS() that can now be false due to the prior check-in. (check-in: 3bfdb410 user: drh tags: branch-3.41)
02:55
Add a test case for the ALWAYS() macro removed by the previous check-in. (check-in: 68a1a837 user: drh tags: trunk)
02:50
Remove an ALWAYS() that might now be false due to the prior check-in. (check-in: fc689935 user: drh tags: trunk)
02:25
Fix the function that determines the collating function for an expression tree to handle new cases that arise as a result of the recently added ability to use indexed expressions in aggregate queries. (check-in: b29dea0d user: drh tags: branch-3.41)
02:21
Fix the function that determines the collating function for an expression tree to handle new cases that arise as a result of the recently added ability to use indexed expressions in aggregate queries. [forum/forumpost/0713a16a44|Forum post 0713a16a44]. (check-in: cc5041f3 user: drh tags: trunk)
2023-04-04
19:56
Shell to use SQLITE_SHELL_HAVE_RECOVER consistently (correcting check-in 0421cc03e0efa8f1) (check-in: 5b980d72 user: larrybr tags: trunk)
18:59
Fix an incorrect entry in the array that maps sqlite3_value values into actual datatype numbers. (check-in: 80d518fb user: drh tags: branch-3.41)
18:55
Fix an incorrect entry in the array that maps sqlite3_value values into actual datatype numbers. dbsqlfuzz f660c659bcec48577a43d3bab37f46baaa22f59e (check-in: fa8537dc user: drh tags: trunk)
18:48
Remove an assert() statement that is no longer valid due to enhancements to query planner for improved use of indexes. (check-in: 93fb8c66 user: drh tags: branch-3.41)
18:10
Remove an assert() statement that is no longer valid due to enhancements to query planner for improved use of indexes. Forum post dc16ec63d3. (check-in: 2b23dd24 user: drh tags: trunk)
17:35
Expose the new SQLITE_VTAB_USES_ALL_SCHEMAS to JS. (check-in: b7ef09be user: stephan tags: trunk)
08:49
Omit shell call to sqlite3_dbdata_init() when it is omitted. (check-in: 0421cc03 user: larrybr tags: trunk)
2023-04-03
23:55
When translating arguments of aggregate functions into references to expression indexes, make sure to only translate them for the current aggregate when there are nested aggregates. (check-in: 7ea98aba user: drh tags: branch-3.41)
23:49
When translating arguments of aggregate functions into references to expression indexes, make sure to only translate them for the current aggregate when there are nested aggregates. Forum post 409ebc7368. (check-in: 898bfa1a user: drh tags: trunk)
20:11
Improved diagnostic output from PRAGMA vdbe_addoptrace. (check-in: 050958c1 user: drh tags: trunk)
18:00
When changing a COLLATE expression node into TK_AGG_COLUMN because the nodes value is contained in an indexed expression, be sure to clear the EP_Collate property from the expression node. (check-in: af0f55cf user: drh tags: branch-3.41)
17:46
When changing a COLLATE expression node into TK_AGG_COLUMN because the nodes value is contained in an indexed expression, be sure to clear the EP_Collate property from the expression node. Fix for the assertion faults reported by forum post e45108732c and forum post 44270909bb. (check-in: cf6454ce user: drh tags: trunk)
15:01
Add the SQLITE_VTAB_USES_ALL_SCHEMAS option to sqlite3_vtab_config(). Update the sqlite_dbpage, sqlite_dbdata, and sqlite_dbptr virtual tables to make use of that interface. This was formerly handled by the internal sqlite3VtabUsesAllSchemas() routine that was called directly from sqlite_dbpage. But since sqlite_dbdata and sqlite_dbptr are an extension, an external interface to that functionality had to be provided. dbsqlfuzz 1a29c245175a63393b6a78c5b8cab5199939d6a8 (check-in: bcd51abe user: drh tags: trunk)
12:48
Make the sqlite_dbdata and sqlite3_dbptr virtual tables accessible to the CLI. (check-in: c0eff028 user: drh tags: trunk)
12:45
Stronger constraint checking in allocateSpace(). (check-in: 0f9e65b6 user: drh tags: branch-3.41)
12:33
Stronger constraint checking in allocateSpace(). dbsqlfuzz 93d4c9ff5ef7cd29f16e767af1ee71c29ec5a4c0 (check-in: 9e968f4f user: drh tags: trunk)
2023-04-02
20:56
With the -DSQLITE_ENABLE_JSON_NAN_INF compile-time option, non-standard JSON numeric values "Inf", "Infinity", "-Inf", "-Infinity", "NaN", "QNaN", and "SNaN" are all accepted. SQLite should never generate these values, but it will accept that with the appropriate compile-time option. (check-in: 0a050e90 user: drh tags: trunk)
20:46
More off-by-one errors in the new JSON parsing. (Closed-Leaf check-in: dbc99662 user: drh tags: json-nan-inf)
20:27
Fix an off-by-one error in the recognition of -Infinity. (check-in: f7ebf3e6 user: drh tags: json-nan-inf)
18:49
Earlier detection of corruption in sqlite3BtreeDelete(). dbsqlfuzz a4c48c291d6e40157a1b749a05eaa7c7faf5a625. (check-in: 728633c0 user: drh tags: branch-3.41)
16:43
Earlier detection of corruption in sqlite3BtreeDelete(). dbsqlfuzz a4c48c291d6e40157a1b749a05eaa7c7faf5a625. (check-in: 978dc71c user: drh tags: trunk)
14:53
Clear executable bit on base64.c (check-in: ec1ddbce user: larrybr tags: trunk)
2023-04-01
23:29
Allow special floating-point value names in JSON: "inf", "-inf", "infinity", "-infinity", "nan", "qnan", and "snan". All are converted into valid JSON values: 9e999, -9e999, or null. Requires the SQLITE_ENABLE_JSON_NAN_INF compile-time option to operate. (check-in: fc8793e5 user: drh tags: json-nan-inf)
16:14
Swat grammar nit on README.md (check-in: 715c00e5 user: larrybr tags: trunk)
15:51
Fix harmless compiler warnings. (check-in: a4fb2864 user: drh tags: trunk)
13:14
Improved error messages from PRAGMA integrity_check. Identify the root of the tree when a problem is found in a b-tree, making it easier to track the problem to a specific table or index. (check-in: a1cb152e user: drh tags: trunk)
12:22
In the b-tree module use %u instead of %d to print unsigned quantities such as page numbers and offsets. (check-in: 33ac62d8 user: drh tags: trunk)
2023-03-31
23:59
Omit the the count-of-view optimization if there is a HAVING clause. (check-in: a8faea28 user: drh tags: branch-3.41)
23:48
Omit the the count-of-view optimization if there is a HAVING clause. This fixes a problem that originated with check-in [9322a7c21f1c22ba]. dbsqlfuzz 6a107e3055bd22afab31cfddabc2d9d54fcbaf69 (check-in: babe2b5e user: drh tags: trunk)
16:27
Merge recent trunk fixes into the nan-inf branch. (Leaf check-in: a51fb9d7 user: drh tags: nan-inf)
2023-03-30
19:14
Earlier error detection for index expression usage by aggregate functions. dbsqlfuzz 29214ace4e25c98d2ddff8fbcf97afdda23f28b9 (check-in: cf8dd8cd user: drh tags: branch-3.41)
19:05
Earlier error detection for index expression usage by aggregate functions. dbsqlfuzz 29214ace4e25c98d2ddff8fbcf97afdda23f28b9 (check-in: 8e841e7f user: drh tags: trunk)
16:08
Omit a branch that is no longer needed following [c9c4f287652933eb]. (check-in: 960a488a user: drh tags: trunk)
12:19
Fix an error in new test script test/aggfault.test. (check-in: 8724fe74 user: dan tags: trunk)
11:28
Cherrypick three fixes from trunk. (check-in: 5583ea82 user: drh tags: branch-3.41)
11:05
Fix a crash that could follow an OOM error while processing aggregate functions. (check-in: 804435a2 user: dan tags: trunk)
2023-03-29
21:58
Avoid having OP_SeekScan jump over an OP_IdxGT or OP_IdxGE that follows the OP_SeekGE opcode. Fix for [b50528af4468237c]. (check-in: c9c4f287 user: dan tags: trunk)
18:54
Fix a problem with sqlite3_stmt_scanstatus() calls made from within an SQLITE_TRACE_STMT callback made from within a trigger. (check-in: 1fa78faf user: dan tags: trunk)
17:26
Back out elements (1) and (2) from [96ec8306457eebf5]. (check-in: d8b17615 user: drh tags: nan-inf)
16:28
Merge recent trunk fixes into the nan-inf branch. (check-in: 248bf629 user: drh tags: nan-inf)
15:16
Another #ifdef to omit code that is only used by STAT4. (check-in: 445c7556 user: drh tags: trunk)
14:42
New #ifdefs to omit code that is unused except under STAT4. (check-in: 09a9b30b user: drh tags: trunk)
11:40
Enhance PRAGMA integrity_check so that it can detect that a NOT NULL column contains a NaN value and report that as an error. (check-in: fbc27e18 user: drh tags: branch-3.41)
11:36
Enhance PRAGMA integrity_check so that it can detect that a NOT NULL column contains a NaN value and report that as an error. dbsqlfuzz f144b642fe6f1a1c196f258ac6e60118a0cb59b2. (check-in: 7638d975 user: drh tags: trunk)
00:05
Modify the OP_IsType opcode so that it does not need to distinguish between NaN and other floating point values. Later: This branch causes an unnecessary slowdown of PRAGMA integrity_check. Check-in [7638d9755dc90fd3] does a better job of detecting when a NaN value occurs in a NOT NULL column. (Closed-Leaf check-in: 242cb36c user: drh tags: istype-opcode-refactor)
2023-03-28
16:13
Fix a weird corner case in aggregate function processing that results from the recent addition of support for index expressions on aggregate queries. (check-in: 36fd948e user: drh tags: branch-3.41)
16:02
Fix a weird corner case in aggregate function processing that results from the recent addition of support for index expressions on aggregate queries. Forum post bad532820c. (check-in: c34fd9fe user: drh tags: trunk)
11:21
Fix multiple problems with RETURNING on a DML statement against a view. (1) Do not allow a RETURNING clause to trick the code generator into thinking that the view being updated has an INSTEAD OF trigger. (2) Generate all result columns for a view in a DML statement. (3) The automatic covering index for a view should cover all result columns of the view. (check-in: b49816fc user: drh tags: branch-3.41)
11:18
Fix multiple problems with RETURNING on a DML statement against a view, all inspired by forum post dc3b92cfa0. (1) Do not allow a RETURNING clause to trick the code generator into thinking that the view being updated has an INSTEAD OF trigger. (2) Generate all result columns for a view in a DML statement. (3) The automatic covering index for a view should cover all result columns of the view. (check-in: c8bedef0 user: drh tags: trunk)
2023-03-27
13:57
Remove a meaningless JS test. Add a timer to the OPFS async-side worker loader in an attempt to catch a browser-specific quirk in which the worker loading silently fails, per discussion in/around [forum post a708c98dcb3ef|forum:a708c98dcb3ef]. (check-in: 4fc1904b user: stephan tags: trunk)
13:27
Do not allow constant factoring during PRAGMA integrity_check, since the constants might be stored in registers that are later reused for other purposes. (check-in: a4b5f499 user: drh tags: branch-3.41)
13:24
Do not allow constant factoring during PRAGMA integrity_check, since the constants might be stored in registers that are later reused for other purposes. dbsqlfuzz dc9ab26037cf5ef797d28cd1ae0855ade584216d. Problem discovered by a new assert() statement added in [6f8b97f31a4c8552]. (check-in: 0bba27b7 user: drh tags: trunk)
13:10
Improvements to register allocation, especially in the ANALYZE command. New assert() statements added to help verify that memory allocation is correct, and to help fuzzer find lingering errors. (check-in: 636f6fad user: drh tags: branch-3.41)
2023-03-26
16:36
Improvements to register allocation, especially in the ANALYZE command. New assert() statements added to help verify that memory allocation is correct, and to help fuzzer find lingering errors. (check-in: 6f8b97f3 user: drh tags: trunk)
11:54
Disable factoring of constant values during ANALYZE. This is a temporary fix for forum post 07de5f6216. The register allocation logic in ANALYZE needs to be completely refactored, but that will take longer. This check-in will serve to resolve the issue until a better fix can be devised. (check-in: c3967d12 user: drh tags: trunk)
2023-03-25
23:56
When the left table of a RIGHT JOIN is used inside an aggregate function and the left table employs an index on expressions, then make sure the expressions evaluate to NULL for the cases where the left table should be NULL. (check-in: c51df77e user: drh tags: branch-3.41)
23:52
When the left table of a RIGHT JOIN is used inside an aggregate function and the left table employs an index on expressions, then make sure the expressions evaluate to NULL for the cases where the left table should be NULL. Fix for forum post 9b491e1deb. (check-in: ffe23af7 user: drh tags: trunk)
23:40
Add usage detection to the NULL value generator for the left table of a RIGHT JOIN inside of an aggregate. (Closed-Leaf check-in: 4d05a009 user: drh tags: rightjoin-agg-idxexpr)
22:42
When reading sqlite_stat4 data during query planning, be sure to expand zeroblobs prior to running comparisons. (check-in: 60f4d19d user: drh tags: branch-3.41)
22:37
When reading sqlite_stat4 data during query planning, be sure to expand zeroblobs prior to running comparisons. Fix for the issue identified by forum post 5275207102. (check-in: 5c8dd8df user: drh tags: trunk)
21:01
When the left table of a RIGHT JOIN is used inside an aggregate function and the left table employs an index on expressions, then make sure the expressions evaluate to NULL for the cases where the left table should be NULL. Proposed fix for forum post 9b491e1deb. More testing an analysis needed - there is a FIXME in this check-in. (check-in: 3572b40a user: drh tags: rightjoin-agg-idxexpr)
19:46
In the byte-code generator, when the result of an expression needs to be in a particular register, always use the sqlite3ExprCode() routine because it has the smarts to know whether to use OP_Copy or OP_SCopy. Do not try to OP_SCopy inline because an OP_Copy might be required. (check-in: 2d439ccc user: drh tags: branch-3.41)
19:44
In the byte-code generator, when the result of an expression needs to be in a particular register, always use the sqlite3ExprCode() routine because it has the smarts to know whether to use OP_Copy or OP_SCopy. Do not try to OP_SCopy inline because an OP_Copy might be required. Fix for the problem identified by forum post 5522082cfc. (check-in: c104e5c6 user: drh tags: trunk)
18:41
Add the tag-20230325-1 comment that was omitted from the prior check-in. (check-in: a13c01d0 user: drh tags: trunk)
18:33
The fix at [13c8c60bb6b4447b] was incomplete in that it failed to clear the reusable register cache that might contain registers in the STAT4 buffer region. This additional change corrects the problem. (check-in: 671bf6f5 user: drh tags: branch-3.41)
18:31
The fix at [2bf5413dc2c19d5f] was incomplete in that it failed to clear the reusable register cache that might contain registers in the STAT4 buffer region. This additional change corrects the problem. Forum post 83cb4a95a0. Test case in TH3. (check-in: 5d554e4d user: drh tags: trunk)
12:27
Even tighter bounds on the maximum length of the filename for sqlite3_load_extension(). (check-in: 78729141 user: drh tags: trunk)
03:17
Tighter constraints on the maximum length of the filename handed over to sqlite3_load_extension(), due to forum post a43074729e. This is a follow-on to [01f3877c7172d522] and forum post 08a0d6d9bf. (check-in: 9f351bde user: drh tags: trunk)
02:07
New test case to further validate the fix at [221fdcec964f8317]. Forum post d34ad68c36. (check-in: a6e218a6 user: drh tags: trunk)
02:02
Fix a problem in cursor-hints for WITHOUT ROWID tables. (check-in: fc8ec188 user: drh tags: branch-3.41)
01:50
Fix CLI non-handling of OOM. (check-in: 44c76f00 user: drh tags: branch-3.41)
01:29
Fix CLI non-handling of OOM reported at Forum post 6872514e04. (check-in: 6f6a0fd6 user: larrybr tags: trunk)
2023-03-24
22:24
Remove undocumented, vestigial SQL functions in the CLI that were once used for the ".recover" command but are now no longer needed. This is a fix for the problem described by forum post be9c294ee0. (check-in: 74d14900 user: drh tags: branch-3.41)
22:17
Remove undocumented, vestigial SQL functions in the CLI that were once used for the ".recover" command but are now no longer needed. (check-in: 1ef461aa user: drh tags: trunk)
21:35
Fix possible integer overflow in bounds checking for the debugging function "shell_int32()" found in the CLI. This change does not affect the core SQLite. Forum post be9c294ee0. (check-in: 62114711 user: drh tags: trunk)
21:27
Fix an error in the OP_SeekScan opcode. (check-in: b95e6933 user: drh tags: branch-3.41)
21:24
Fix an error in the OP_SeekScan opcode added by check-in [4a43430fd23f8835]. Problem reported by forum post 8cc1dc0fe9. (check-in: 651a13fc user: drh tags: trunk)
20:41
Increase the version number to 3.41.3. (check-in: 9a19c6ce user: drh tags: branch-3.41)
20:39
Fix the handling of indexed expressions in an outer query that appear as corelated values inside an aggregate function within a subquery. (check-in: 76b90f26 user: drh tags: branch-3.41)
20:35
Fix the handling of indexed expressions in an outer query that appear as corelated values inside an aggregate function within a subquery. Forum post 79cf371080. (check-in: d8259877 user: drh tags: trunk)
19:17
Fix a problem in cursor-hints for WITHOUT ROWID tables used in a RIGHT JOIN. Forum post 591006b1cc. (check-in: 221fdcec user: drh tags: trunk)
17:15
Add a JS test which checks for the issue described in forum post 895425b49a. (check-in: 98d30400 user: stephan tags: trunk)
17:01
Fix byte-code register allocation in ANALYZE for STAT4 when there multiple indexes with differing numbers of columns. (check-in: 13c8c60b user: drh tags: branch-3.41)
16:57
Fix byte-code register allocation in ANALYZE for STAT4 when there multiple indexes with differing numbers of columns. forum post bc39e531e5. This problem arose when expression indexes were added by check-in [2131a5ca53f0e9b0]. (check-in: 2bf5413d user: drh tags: trunk)
2023-03-23
19:22
Fix test cases so that they work when SQLITE_ENABLE_NAN_INF is defined. (check-in: 95c7af79 user: drh tags: nan-inf)
12:00
Fix #ifdefs that use the wrong preprocessor macro. (check-in: 0aecf360 user: drh tags: nan-inf)
10:58
The attempt to bring STAT4 up to 100% MC/DC at [55a26c67ed4a3a93] and at [168fa2fb22b8c1ad] are incorrect. Back them out and replace them with a simple NEVER() macro. Error reported by forum post dc4854437b. (check-in: 76e683c5 user: drh tags: branch-3.41)
10:54
The attempt to bring STAT4 up to 100% MC/DC at [55a26c67ed4a3a93] and at [168fa2fb22b8c1ad] are incorrect. Back them out and replace them with a simple NEVER() macro. Error reported by forum post dc4854437b. (check-in: 5992370a user: drh tags: trunk)
2023-03-22
20:21
Add the SQLITE_ENABLE_NAN_INF compile-time option which makes the following behavior changes: (1) sqlite3_value_double(NULL) returns NaN, (2) SQLite preserves NaN values rather than converting them to NULL. (3) CAST statements understand "NaN" and "Inf" and make the right conversions. (4) Non-standard JSON is never generated by SQLite JSON routines, but those routines will accept floating point literals "NaN", "Inf", and "-Inf". (check-in: 96ec8306 user: drh tags: nan-inf)
19:57
Internal cleanups in JS code. No functional changes. (check-in: 8fbdf7d1 user: stephan tags: trunk)
16:55
The floating-point-to-text conversion with the zero-padding option now renders NaN as "null". (check-in: ad59fa17 user: drh tags: trunk)
16:37
For consistency, the ".mode json" output from the CLI now renders infinity in the same format as the JSON functions. (check-in: abee339d user: drh tags: trunk)
16:24
The double-to-text conversion renders infinity as 9e999, so that JSON output is compliant and so that values can be round-tripped. (check-in: b52081d0 user: drh tags: trunk)
16:01
In the CLI, the magic parameter :inf and :nan bind floating point values Infinity and NaN, respectively, as an aid to testing SQLite's handling of those quantities. (check-in: c70a61d8 user: drh tags: trunk)
14:51
Update the version number for the TEA tarball to 3.42.0, to match the core. (check-in: 03e6918e user: drh tags: trunk)
13:47
Merge the 3.41.2 patch into the reuse-schema-3.41 subbranch of reuse-schema (Leaf check-in: 995fa4d0 user: drh tags: reuse-schema-3.41)
13:35
Merge the 3.41.2 patches into the bedrock-3.41 subbranch of bedrock. (Leaf check-in: b7a144c4 user: drh tags: bedrock-3.41)
13:25
Merge the 3.41.2 patch into the wal2-3.41 subbranch of wal2. (Leaf check-in: db44f17a user: drh tags: wal2-3.41)
11:56
Version 3.41.2 (check-in: 0d1fc92f user: drh tags: release, version-3.41.2, branch-3.41)
11:12
Increment the version number in the TEA configure script to 3.41.2. (check-in: 2bb74aa5 user: drh tags: branch-3.41)
2023-03-21
14:20
Add ALWAYS() on a branch this is always true now due to [84417bbd144b2197]. (check-in: badf7d0e user: drh tags: trunk)
12:29
Add the fuzzcheck-asan.exe target to the MSVC makefile. (check-in: 0901bc02 user: drh tags: trunk)
11:56
Add the fuzzcheck-asan target to the main posix makefile. (check-in: 55e94add user: drh tags: trunk)
11:27
Fix a valgrind error and potential buffer overread when handling a corrupt database. (check-in: cb8b34fa user: drh tags: branch-3.41)
11:13
Fix a valgrind error and potential buffer overread when handling a corrupt database. (check-in: b1e0cd64 user: dan tags: trunk)
2023-03-20
20:22
Reinsert two NEVER() macros for b-tree branches that were previously needed for [b6a82f3c3b9d89fd] but which are now obsolete due to [73f0036f045bf371]. Later: dbsqlfuzz quickly found new cases for which those two branches are needed. The new test cases have been added to TH3. (Closed-Leaf check-in: 3065dadb user: drh tags: backout)
18:35
Minor change to btreeNext() to facilitate coverage testing. (check-in: 20b3ef04 user: drh tags: trunk)
15:50
Fix a problem causing a cursor to retain an out-of-date cell-info cache when processing a DISTINCT query on values that are identical according to their collation sequence, but different on disk. (check-in: b0281184 user: drh tags: branch-3.41)
14:59
Fix a problem causing a cursor to retain an out-of-date cell-info cache when processing a DISTINCT query on values that are identical according to their collation sequence, but different on disk. Forum post e123e6cde4. (check-in: 1b3abc1d user: dan tags: trunk)
10:43
Back out the extra margin added to the input buffer of the CLI, as it is not needed. (check-in: ac8d1e5d user: drh tags: trunk)
01:59
Fix problems with the sqlite3_error_offset() function and its use in the CLI. (check-in: d5cd6c88 user: drh tags: branch-3.41)
01:55
A better fix for the sqlite3_error_offset() problem on generated columns. (check-in: 770b3e67 user: drh tags: trunk)
00:53
Expression errors in generated columns should not generate non-negative sqlite3_error_offset() returns. Second of two defenses against [33aa4c0de8a62e33]. (check-in: 2adb4e0d user: drh tags: trunk)
00:48
When reporting errors in the CLI, ignore the output of sqlite3_error_offset() if the value returned is clearly out-of-range. One of two lines of defense against [33aa4c0de8a62e33]. (check-in: 26adbb80 user: drh tags: trunk)
2023-03-19
21:53
Increase the size of ref-count values in the pager layer to 64-bits, to avoid any reasonable possiblity of overflowing the counters. (check-in: 824611ad user: drh tags: branch-3.41)
21:48
Increase the size of ref-count values in the pager layer to 64-bits, to avoid any reasonable possiblity of overflowing the counters. There is a performance and memory penality for this. Forum post b741f15a35. (check-in: 6c5d99a8 user: drh tags: trunk)
10:30
Avoid a buffer overread in fts3 that could occur when processing a corrupt record. (check-in: 1f91fe4b user: drh tags: branch-3.41)
2023-03-18
16:12
Avoid a buffer overread in fts3 that could occur when processing a corrupt record. (check-in: 02ac2297 user: dan tags: trunk)
2023-03-17
20:31
Fix json rendering so that it shows positive and negative infinity as 9.0e+999 and -9.0e+999 respectively. (Closed-Leaf check-in: efce4690 user: drh tags: numeric-only-json)
19:18
Add the ability to name functions using one of the join keywords like CROSS FULL INNER LEFT NATURAL OUTER RIGHT. (check-in: 0910b192 user: drh tags: trunk)
19:07
Add test cases for functions named the same as join keywords. (Closed-Leaf check-in: 94944b23 user: drh tags: functions-named-left)
14:22
Fix a potential buffer overread in the recovery extension. (check-in: 78836713 user: dan tags: branch-3.41)
14:18
Fix a potential buffer overread in the recovery extension. (check-in: 0b3b5bf9 user: dan tags: trunk)
12:25
Ensure that an error does not delete the Table object out from under the xConstruct method of a virtual table. dbsqlfuzz 7cc8804a1c6d4e3d554d79096e6ea75a7c1c7d2d (check-in: c5bd0ea3 user: drh tags: branch-3.41)
10:43
Ensure that an error does not delete the Table object out from under the xConstruct method of a virtual table. dbsqlfuzz 7cc8804a1c6d4e3d554d79096e6ea75a7c1c7d2d (check-in: df4928c9 user: drh tags: trunk)
10:30
Increase the version number to 3.41.2 (check-in: 122f12f5 user: drh tags: branch-3.41)
00:42
Add safety margin on the CLI input buffer for tickets [33aa4c0de8a62e33], [b97e6c5e6a91d97f], [2971fbe3f993e95a], and [2971fbe3f993e95a]. (check-in: 741af08a user: drh tags: trunk)
00:10
Fix assert() statements that would (incorrectly) fire if an IF NOT EXISTS trigger that already exists contained two or more RETURNING clauses. (check-in: 9b43b34d user: drh tags: branch-3.41)
00:01
Fix assert() statements that would (incorrectly) fire if an IF NOT EXISTS trigger that already exists contained two or more RETURNING clauses. Tickets [89d259d45b855a0d] and [d15b3a4ea901ef0d]. (check-in: 648899e4 user: drh tags: trunk)
2023-03-16
21:05
Correctly handle SELECT DISTINCT ... ORDER BY when all of the result set terms are constant and there are more result set terms than ORDER BY terms. (check-in: 097512b6 user: drh tags: branch-3.41)
20:54
Correctly handle SELECT DISTINCT ... ORDER BY when all of the result set terms are constant and there are more result set terms than ORDER BY terms. Fix for these tickets: [c36cdb4afd504dc1], [4051a7f931d9ba24], [d6fd512f50513ab7]. (check-in: 12ad822d user: drh tags: trunk)
12:28
Additional debug/test output from the query invariant checker showing the row-number that is being checked. (check-in: e4b6eb58 user: drh tags: trunk)
11:50
Update the tracing output for the query-invariant checker such that it shows the SQL that is run to verify that a found query-invariant discrepency is valid. Changes to testing logic only. (check-in: 8f45ad27 user: drh tags: trunk)
10:21
Do not use the one-pass optimization on an UPDATE if there is a subquery in the WHERE clause, since if the subquery is hidden behind a short-circuit operator, the subquery might not be evaluated until after one or more rows have been updated. (check-in: b5d8a9a6 user: drh tags: branch-3.41)
10:17
Do not use the one-pass optimization on an UPDATE if there is a subquery in the WHERE clause, since if the subquery is hidden behind a short-circuit operator, the subquery might not be evaluated until after one or more rows have been updated. Fix for the problem reported by forum post 0007d1fdb1. This is the same problem that was fixed by [73f0036f045bf371] only for UPDATE instead of DELETE. (check-in: 2c56b984 user: drh tags: trunk)
09:16
Remove a NEVER() from btreeNext(). (check-in: 40623f5a user: drh tags: branch-3.41)
09:12
Fix a broken assert() in the recovery extension. (check-in: 048711e4 user: drh tags: branch-3.41)
09:07
Remove a NEVER() from btreeNext() that dbsqlfuzz 460aa158f9a2c41145831cc924296cde1f312b3f found could sometimes be reached. I will find a way to test that branch later. (check-in: 1dffeffe user: drh tags: trunk)
02:30
Another approach at attempting to contain the damage caused by corruption that leaves MemPage.isInit clear. Works better than the previous but is still not perfect. (Closed-Leaf check-in: ba964eb0 user: drh tags: corruption-in-btree-init)
01:20
When the btreeInitPage() routine detects database corruption, it should continue to the end and set MemPage.isInit before it returns SQLITE_CORRUPT, because if it leaves MemPage.isInit unset, then can cause difficulty later. dbsqlfuzz 460aa158f9a2c41145831cc924296cde1f312b3f (check-in: 44e83f8b user: drh tags: corruption-in-btree-init)
2023-03-15
18:05
Disallow the one-pass optimization for DELETE if the WHERE clause contains a subquery. (check-in: 25e18318 user: drh tags: branch-3.41)
17:58
Disallow the one-pass optimization for DELETE if the WHERE clause contains a subquery. Fix for the problem reported by forum post e61252062c9d286d. This fix is more restrictive than necessary. It could be relaxed if the subquery does not involve the table that is the subject of the DELETE. (check-in: 73f0036f user: drh tags: trunk)
13:53
Fix a broken assert() in the recovery extension. (check-in: 4c4e66f2 user: dan tags: trunk)
2023-03-14
20:16
Fix Bloom filters on an expression index. (check-in: 11e0256b user: drh tags: branch-3.41)
20:08
Fix Bloom filters on an expression index. forum post 2e427099d5 and forum post d47a0e8e3a. This problem goes back to the original introduction of Bloom filters (check-in [633bfeeea2bccdd4]) for SQLite version 3.38.0. (check-in: c028fb66 user: drh tags: trunk)
2023-03-13
16:08
Include CLI's tip for -- in all builds. Better show optionality of its non-option arguments. (check-in: 9e2c771d user: larrybr tags: trunk)
2023-03-11
23:29
The cherry-pick merge at [371838562a675c1b] caused a performance regression for some queries, which is here fixed. (check-in: 6d6d95fc user: drh tags: branch-3.41)
23:21
The check-in at [198b3e33dcfd74c7] caused a performance regression for some queries, which is here fixed. Problem reported by forum post b405033490fa56d9. (check-in: dc9f025d user: drh tags: trunk)
12:27
Allow functions named using keywords "CROSS", "FULL", "INNER", "LEFT", "NATURAL", "OUTER", and "RIGHT". (check-in: eeac3d5e user: drh tags: functions-named-left)
00:15
CLI help to reflect no-more-options option (check-in: 30d95a12 user: larrybr tags: trunk)
2023-03-10
21:27
Fix a typo in a comment. No code changes. (check-in: 76acc075 user: drh tags: trunk)
20:54
Give CLI a no-more-options option. (--) (check-in: 08227887 user: larrybr tags: trunk)
13:36
Fix a problem with the fts5 snippet() function that shows up when snippets just 1 token in length are requested. (check-in: 96d5116d user: dan tags: trunk)
12:47
Merge the 3.41.1 patches into the bedrock branch. (check-in: 2780cc9f user: drh tags: bedrock-3.41)
12:13
Version 3.41.1 (check-in: 20399f3e user: drh tags: release, version-3.41.1, branch-3.41)
11:57
Export SQLITE_FCNTL_RESET_CACHE to JS. (check-in: 6195cfc8 user: stephan tags: trunk)
00:59
Merge the branch-3.41 patches into the reuse-schema branch. (check-in: af08bd3e user: drh tags: reuse-schema-3.41)
00:21
Merge the latest 3.41 patches into a new branch called wal2-3.41. (check-in: e67bfc76 user: drh tags: wal2-3.41)
2023-03-09
22:09
Replace a lingering use of 'self' with 'globalThis' in JS code, for node compatibility. (check-in: 7e3782b5 user: stephan tags: trunk)
16:11
Reinstate some test cases accidentally removed by [cb023fe28560ce0f]. (check-in: 870de61f user: dan tags: trunk)
16:04
In the Bloom filter optimization, hash all strings and blobs into the same value, because we do not know if two different strings might compare equal even if they have different byte sequences, due to collating functions. Formerly, the hash of a string or blob was just its length. This could all be improved. (check-in: cc8a0ee4 user: drh tags: branch-3.41)
15:08
Fix countofview.test so that it works with SQLITE_OMIT_PROGRESS_CALLBACK builds. (check-in: d55a7742 user: dan tags: branch-3.41)
15:08
Fix countofview.test so that it works with SQLITE_OMIT_PROGRESS_CALLBACK builds. (check-in: 2fc7c3fc user: dan tags: trunk)
14:14
Update the version number to 3.41.1 (check-in: e4e2e647 user: drh tags: branch-3.41)
13:58
Merge count-of-view optimization fixes from trunk. But count-of-view is still off by default for this branch. (check-in: cbbe8986 user: drh tags: branch-3.41)
08:51
Experimental addition of sqlite3-node.mjs, for node.js, based on feedback from forum post ac7a94d4f77db235 and related off-list discussions. Build changes only - no code changes. (check-in: a5db97fa user: stephan tags: trunk)
01:35
Fix a possible NULL pointer dereference due to the sqlite3_interrupt() enhancement in the 3.41.0 release. (check-in: 66d24a22 user: drh tags: branch-3.41)
2023-03-08
23:05
Fix a possible NULL pointer dereference due to the sqlite3_interrupt() enhancement at [bd8fa10e59f58886]. Reported by forum post f5a2b1db87. (check-in: 84417bbd user: drh tags: trunk)
22:48
Backout the OP_MakeRecord optimization as it does not work. (check-in: 25017312 user: drh tags: trunk)
18:05
Export the new SQLITE_CHANGESETAPPLY_IGNORENOOP flag to JS. (check-in: ac7359b2 user: stephan tags: trunk)
18:03
Add the SQLITE_CHANGESETAPPLY_IGNORENOOP flag, which may be passed to sqlite3changeset_apply_v2() to have it ignore changes that would be no-ops if applied to the database (e.g. deleting a row that has already been deleted), instead of considering them conflicts. (check-in: cb023fe2 user: dan tags: trunk)
17:09
Small performance improvement in the OP_MakeRecord opcode. (check-in: ca89daef user: drh tags: trunk)
14:37
Keep the historical datatype ("INT", not "NUM") for a table created as follows: "CREATE TABLE t1 AS SELECT CAST(123 AS INT) AS value;". The use of FLEXNUM only occurs on compound queries. (check-in: dc1033af user: drh tags: branch-3.41)
14:28
Change to [44135d6ea84f7ba6] that retains the historical datatype ("INT", not "NUM") for a table created as follows: "CREATE TABLE t1 AS SELECT CAST(123 AS INT) AS value;". The use of FLEXNUM only occurs on compound queries. (check-in: 6d5b5896 user: drh tags: trunk)
10:05
Extend wasm build to support a custom sqlite3.c to support building against sqlite3-see.c. The JS code now binds the SEE-specific functions if it detects an SEE build. (check-in: dd8612c8 user: stephan tags: trunk)
00:47
Fix a problem in the count-of-view optimization that can lead to incorrect bytecode. dbsqlfuzz 23d782160b71c3f8f535ccb2da313dfc8eb8c631. (check-in: f4500953 user: drh tags: trunk)
00:04
Fix an assertion fault added by [65ffee234787213c]. (check-in: d00e68ba user: drh tags: branch-3.41)
2023-03-07
23:47
Fix a bug introduced 4 days ago by [e95439119ac200cb]: do not set the Expr.affExpr field of a generated column expression if the expression is a RAISE() function, as affExpr has a different meaning for RAISE. Forum post b312e075b5. (check-in: 1096b5a7 user: drh tags: trunk)
19:39
A proposed change to [44135d6ea84f7ba6] that retains the historical datatype ("INT", not "NUM") for a table created as follows: "CREATE TABLE t1 AS SELECT CAST(123 AS INT) AS value;". (Closed-Leaf check-in: a0e54fe2 user: drh tags: flexnum-proposed-fix)
19:23
Improve how sqlite3.initWorker1API() determines whether it's running in a Worker thread. Based on feedback in forum post ac7a94d4f77db235. (check-in: 2f712b83 user: stephan tags: trunk)
19:12
Replace use of 'self' in JS code with 'globalThis', as that works in browsers and node environments. Avoid using globalThis.location if it's not set (e.g. in node). Based on feedback in forum post ac7a94d4f77db235. Minor JS build tweaks. (check-in: dbbe8f25 user: stephan tags: trunk)
12:59
In the JS sqlite3.vfs/vtab utility APIs, use a local reference to StructBinder instead of sqlite3.StructBinder, as that object is removed from the sqlite3 namespace during the final steps of API initialization. Based on feedback from forum post d19d96183badca70. (check-in: 0d89885d user: stephan tags: trunk)
02:24
Fix a couple minor spacing issues in the MSVC makefile. (check-in: 46b3ac6d user: mistachkin tags: trunk)
2023-03-06
23:39
Repair an unintential fork. (check-in: 8b524c84 user: drh tags: trunk)
23:38
Improvements to query invariant testing such that it uses the new SQLITE_DBCONFIG_REVERSE_SCANORDER opcode to sqlite3_db_config() to make more accurate judgements about when a query is ambiguous, and hence when query invariant testing is approprate. (check-in: be9ab292 user: drh tags: trunk)
21:38
Cause CLI to fail noisily when deserialize option used for non-seekable "file". (check-in: 24bd7e82 user: larrybr tags: trunk)
19:04
Add SQLITE_DBCONFIG_REVERSE_SCANORDER for direct C-language access to the "PRAGMA reverse_unordered_selects" setting. (check-in: 83e84531 user: drh tags: trunk)
2023-03-05
07:44
Rename sqlite3-worker1-bundler-friendly.js to sqlite3-worker1-bundler-friendly.mjs and refactor it to work as an ES6 module, based on feedback in forum post a255f89c2eadf4c4. (check-in: af312b13 user: stephan tags: trunk)
07:33
Correct rendering of error messages in demo-worker1.js. Remove some stray EOL whitespace. (check-in: 1d5d515a user: stephan tags: trunk)
2023-03-04
15:49
Cherry-pick the agg-with-indexed-expr optimization fix from trunk. (check-in: b2ad89d3 user: drh tags: branch-3.41)
15:36
Fix to check-in [b9190d3da70c4171] - the agg-with-indexed-expr optimization requested by ticket [99378177930f87bd] - that can cause an incorrect answer if an aggregate subquery has a GROUP BY clause, and that GROUP BY contains a term that is not in the result set, and the outer query makes use of expression indexes. Problem reported by forum post a68313d054. (check-in: e0697387 user: drh tags: trunk)
12:57
Show the output value from OP_AggFinal when doing byte-code tracing. (check-in: 35f10a06 user: drh tags: trunk)
2023-03-03
21:17
Make the SQLITE_DBCONFIG_STMT_SCANSTATUS option on by default in the CLI. (check-in: 5a091911 user: dan tags: trunk)
19:56
Fix a vdbe-coverage macro added by [f418bdd627e84e7d]. (check-in: 77f559d2 user: drh tags: trunk)
19:47
Do not use an expression index on a generated column if generated column has the wrong affinity. (check-in: 65ffee23 user: drh tags: branch-3.41)
19:43
Follow-up to [e95439119ac200cb] to fix a case where a pointer is NULL due to OOM. (check-in: 2535bc8c user: drh tags: trunk)
18:47
Enhance PRAGMA integrity_check so that it can detect when there are extra bytes at the end of an index record, which might cause OP_IdxRowid to malfunction. (check-in: c143f087 user: drh tags: branch-3.41)
18:35
Enhance PRAGMA integrity_check so that it can detect when there are extra bytes at the end of an index record, which might cause OP_IdxRowid to malfunction. dbsqlfuzz c1aa3986534d5feab8d21f28b3c1712df2ef358ba. Test case in TH3. (check-in: f418bdd6 user: drh tags: trunk)
17:11
Cherrypick the "(X IS [NOT] NULL)" fix from trunk onto branch-3.41. (check-in: 0fc7f7c2 user: drh tags: branch-3.41)
16:25
When it is known when preparing a statement that X cannot be NULL or is always NULL, transform the expression (X IS NULL) to integer value 1 or 0 instead of 'true' or 'false'. This is because under some circumstances, "Y IS TRUE" or "Y IS FALSE" may not be equivalent to "Y IS 1" of "Y IS 0". This problem was introduced by [de9c86c9e4cdb34f] and was reported by forum post 2cd11c2d37. (check-in: cc4bb05b user: dan tags: trunk)
15:12
Do not use an expression index on a generated column if generated column has the wrong affinity. dbsqlfuzz 65f5eb57f8859344d5f1f33e08c77ee12960ed83 (check-in: e9543911 user: drh tags: trunk)
10:42
Remove unnecessary call to sqlite3_dbdata_init() from shell.c.in. (check-in: c4d083a3 user: dan tags: trunk)
2023-03-02
14:09
When flattening the right operand of a LEFT JOIN, ensure that the OP_IfNullRow opcode does not NULL-out a subquery result that was computed within OP_Once. (check-in: c80b262c user: drh tags: branch-3.41)
13:49
When flattening the right operand of a LEFT JOIN (check-in [41c27bc0ff1d3135]), ensure that the OP_IfNullRow opcode does not NULL-out a subquery result that was computed within OP_Once. This fixes the problem problem reported by forum post 402f05296d. (check-in: 8fe13f7a user: drh tags: trunk)
06:58
Resolve a parallel build timing issue when building sqlite3.c/h from ext/wasm. For the time being, do not add sqlite3_wasm_extra_init.c to fiddle.wasm because it can cause duplicate definitions of extensions which are already built into the shell (a better resolution for this conflict is pending). No longer add sqlite3_wasm_extra_init.c to speedtest1.wasm because it's useless there. (check-in: 75fdd5b8 user: stephan tags: trunk)
05:51
Rename some vars in the ext/wasm makefiles for consistency's sake. (check-in: c23589d9 user: stephan tags: trunk)
2023-03-01
20:44
When flattening a view that is the right operand of a LEFT JOIN always insert the TK_IF_NULL_ROW expression nodes, even for TK_COLUMN expressions, as the TK_COLUMN might be a column from an outer query and hence still need to be NULLed out. (check-in: 37183856 user: drh tags: branch-3.41)
20:23
When flattening a view that is the right operand of a LEFT JOIN, using the optimization of check-in [41c27bc0ff1d3135], always insert the TK_IF_NULL_ROW expression nodes, even for TK_COLUMN expressions, as the TK_COLUMN might be a column from an outer query and hence still need to be NULLed out. This fixes the problem described by forum post 26387ea7ef. (check-in: 198b3e33 user: drh tags: trunk)
15:28
Make sure subtypes do not cross a subquery boundary even if the function that returned the value with a subtype is buried down inside a larger expression. (check-in: 9dc46031 user: drh tags: branch-3.41)
15:21
Follow-up to [bbaf1f2eb1e1637b]: Make sure subtypes do not cross a subquery boundary even if the function that returned the value with a subtype is buried down inside a larger expression. This fixes a problem identified by forum post 37dd14a538. (check-in: e72661eb user: drh tags: trunk)
13:54
Do not attempt to apply the count-of-view optimization to a CTE. dbsqlfuzz ef8623915d843b150c159166ee4548c78cc6895a (check-in: abc3a383 user: drh tags: trunk)
2023-02-28
21:23
Activate SQLITE_DBCONFIG_STMT_SCANSTATUS in fuzzcheck. (check-in: 4fe1419a user: drh tags: trunk)
20:06
Updates to speedtest1.c and the speed-check.sh test script so that they work with the new SQLITE_DBCONFIG_STMT_SCANSTATUS control. (check-in: bd02df05 user: drh tags: trunk)
20:04
Change the name of SQLITE_DBCONFIG_STMT_SCANSTATS to SQLITE_DBCONFIG_STMT_SCANSTATUS. (check-in: a63e4a15 user: dan tags: trunk)
19:39
Add an sqlite3_db_config() option - SQLITE_DBCONFIG_STMT_SCANSTATS - for enabling and disabling the collection of sqlite3_stmt_scanstats() statistics in SQLITE_ENABLE_STMT_SCANSTATUS builds. Collection of statistics is disabled by default. (check-in: 0f5579be user: dan tags: trunk)
18:06
Only use a Bloom filter on an automatic index if one or more of the key columns in the index can take on non-TEXT values. (check-in: 5916705c user: drh tags: trunk)
14:28
In the Bloom filter optimization, hash all strings and blobs into the same value, because we do not know if two different strings might compare equal even if they have different byte sequences, due to collating functions. Formerly, the hash of a string or blob was just its length. This could all be improved. Fix for the issue reported by forum post 0846211821. (check-in: 090304b8 user: drh tags: trunk)
13:46
When an automatic index creates a Bloom filter, show that in the EXPLAIN QUERY PLAN output. (check-in: d7b2ac1c user: drh tags: trunk)
12:31
Performance optimization in the varint decoder for the cell parser. (check-in: b2b91c7c user: drh tags: trunk)
11:02
Improve the error message generated by the recovery extension if it is used with a non-SQLITE_ENABLE_DBPAGE_VTAB build. (check-in: c1f2a1d5 user: dan tags: trunk)
2023-02-27
21:53
Make the "unref" operation on database pages a method which is part of the PgHdr object. This is a potential performance optimization. (Leaf check-in: 37c5c8aa user: drh tags: unref-opt)
18:55
Minor performance optimization in the computation of an affinity string for an index. (check-in: 07334aa1 user: drh tags: trunk)
14:48
Further to [46639f682975dac6], the parameters of a table valued function that is on the left side of a RIGHT JOIN do not need to be in the ON clause. Add new test cases and tags to associated test cases with the code. (check-in: 18ee689d user: drh tags: trunk)
07:23
Minor doc tweak for the previous commit. (check-in: a8832164 user: stephan tags: trunk)
07:12
Extend wasm build to enable inclusion of client-custom C code, initialized via the SQLITE_EXTRA_INIT mechanism, per discussion in forum post 1e1c04f3ed1bc96b. (check-in: 68a52caf user: stephan tags: trunk)
2023-02-26
21:09
When a table-valued function appears as the right table of a RIGHT JOIN, the argument constraints on the table-valued function should be considered part of the ON clause of the RIGHT JOIN. (check-in: d225d077 user: drh tags: branch-3.41)
20:57
When a table-valued function appears as the right table of a RIGHT JOIN, the argument constraints on the table-valued function should be considered part of the ON clause of the RIGHT JOIN. Fix for the problem reported by forum post 422e635f3beafbf6. Test cases in TH3. Possibly related to the enhancement at [501609eddf2a46d5]. (check-in: 46639f68 user: drh tags: trunk)
19:36
Correct substantive error (DML and DQL versus DML) of last check-in. (Leaf check-in: 703fa854 user: larrybr tags: db_config_ops_rewrite)
19:10
Revise doc for SQLITE_DBCONFIG_* options, for clarification and coverage of all vararg parameters. Also, a grammo nit swat. (check-in: aa25596b user: larrybr tags: db_config_ops_rewrite)
11:36
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. (check-in: 21aec65e user: drh tags: trunk)
2023-02-25
16:03
Split out a new variant of cellSizePtr() that applies only to leaf pages, for a small performance increase. (check-in: 22d32eef user: drh tags: trunk)
15:34
Remove an unnecessary and redundant corruption checks in defragmentPage(). (check-in: 2dc7342e user: drh tags: trunk)
15:15
Revert (mostly) to earlier CLI response to -echo and SQL at the command line. (check-in: 1c6cfcf6 user: larrybr tags: trunk)
12:50
Performance optimization on sqlite3_vsnprintf(). (check-in: 4430e6e9 user: drh tags: trunk)
2023-02-24
21:23
Add the "on" option to the ".log" command in the CLI. Allow ".log on" and ".log off" even in --safe mode. Enable the .log command for fiddle builds. (check-in: 6bba9100 user: drh tags: trunk)
21:05
In the CLI, do not emit warnings about the incorrect usage of sqlite3_config() in Fiddle. (check-in: 847021b4 user: drh tags: trunk)
19:58
Fix a problem with the sqlite3sessions_fullchangeset() and sqlite3changebatch_add() APIs on this branch. (check-in: a95a4bce user: dan tags: bedrock)
16:04
Modify the sqlite3_config() interface so that the SQLITE_CONFIG_LOG and SQLITE_CONFIG_PCACHE_HDRSZ opcodes can be called after sqlite3_initialize(). Enhancement request [0b75886e6d48f7c2]. (check-in: 7902fb80 user: drh tags: trunk)
15:59
Back out the SQLITE_CONFIG_URI option from anytime-config. (Closed-Leaf check-in: 0de98b8e user: drh tags: anytime-config)
13:45
Adjust testrunner.tcl to make use of the new number_of_cores TCL command available in testfixture, and to use no more than half the available cores. (check-in: e0122d38 user: drh tags: trunk)
13:25
Add the "number_of_cores" TCL command to the testfixture. (check-in: 16ee5a7b user: drh tags: trunk)
12:55
Merge enhancements from trunk into the anytime-config branch. (check-in: 04b2fdf3 user: drh tags: anytime-config)
11:54
Slightly faster and more precise floating-point to decimal conversion. See forum thread d1387c3979c7f557 for discussion. (check-in: 6dea6f47 user: drh tags: trunk)
01:37
A simpler fix to the problem described by forum thread d1387c3979c7f557. See specifically post 2d2ddc5b70c31de5. This approach is simpler, but it also runs a little slower. (Closed-Leaf check-in: 334d22bc user: drh tags: fp-conversion-simpler)
01:08
Fix an incorrect optimization that was attempted as part of check-in [18de3a8e6b431a07]. (Closed-Leaf check-in: f32055e8 user: drh tags: fp-conversion)
2023-02-23
22:08
Omit unnecessary branches from the enhanced floating-point conversion logic. (check-in: 32b0ba0d user: drh tags: fp-conversion)
21:18
Increased precision of floating-point to decimal conversions when the floating point value has no fractional part. Forum post d1387c3979c7f557 (check-in: 18de3a8e user: drh tags: fp-conversion)
17:12
Provide -DHAVE_LOG2=0 and -DHAVE_LOG10=0 compile-time options for use on systems that lack the log2() and log10() standard math library routines, to cause SQLite to substitute its own alternatives. (check-in: ff3362ab user: drh tags: branch-3.41)
14:43
Fix harmless compiler warnings and a code indentation error. (check-in: de6c5c6b user: drh tags: trunk)
14:22
Allow the sqlite3_config() interface to be invoked at any time for a few choosen options: SQLITE_CONFIG_LOG, SQLITE_CONFIG_URI, and SQLITE_CONFIG_PCACHE_HDRSZ. This list will likely change before release. (check-in: e1702eb4 user: drh tags: anytime-config)
01:52
Provide -DHAVE_LOG2=0 and -DHAVE_LOG10=0 compile-time options for use on systems that lack the log2() and log10() standard math library routines, to cause SQLite to substitute its own alternatives. (check-in: 7ee22f95 user: drh tags: trunk)
2023-02-22
21:47
Enable the count-of-view optimization by default. Enhancement request [eaed8e36ce888f1e]. (check-in: a4aacdd3 user: drh tags: trunk)
21:11
Avoid computing the values for unused result-set columns in subqueries. Performance optimization request [baa5bb76c35a124c]. (check-in: 7c2d3406 user: drh tags: trunk)
20:50
Update the version number to 3.42.0 to begin the next development cycle. (check-in: 65910216 user: drh tags: trunk)
20:42
Remove the push-down optimization restriction that was added by check-in [1ad41840c5e0fa70] because it is no longer needed after the enhancements to compound query processing in check-in [27655c9353620aa5] Th