SQLite

Timeline
Login

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

272 check-ins for the month beginning 2023-07-01

Following month ↑
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: 659284ab0e 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: ec95e970fb 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: 22f6dd5cd3 user: drh tags: trunk)
17:20
Improved debug tracking of the Parse.nQueryLoop value. (check-in: 4a8a17498e 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: 459db332af 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: a5d68a6b64 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: 9faca5d9ed user: stephan tags: jni)
10:42
Add another test for JNI-bound scalar UDFs. (check-in: 8b322d92e2 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: ac9b8bb1e6 user: stephan tags: jni)
10:08
Refactor the busy-handler-specific JNI hook type to use the generic hook type. (check-in: d9efdc6dd2 user: stephan tags: jni)
09:45
Refactor the collation-specific JNI hook type to use the generic hook type. (check-in: 02c1d3b650 user: stephan tags: jni)
09:28
Internal JNI doc tweaks. (check-in: f4aa2c8288 user: stephan tags: jni)
07:15
Consolidate triplicated xDestroy()-calling code. Remove some unnecessary casts. (check-in: 24c0763d0e user: stephan tags: jni)
2023-07-30
18:41
Internal JNI API renaming. (check-in: fcfc070673 user: stephan tags: jni)
17:24
Internal JNI refactoring towards consolidating support for callbacks with and without finalizers. (check-in: 120983a570 user: stephan tags: jni)
13:47
Mark the Java wrapper classes of the C-native types as 'final' (cannot be subclassed). (check-in: 4fd3d93623 user: stephan tags: jni)
13:30
Minor tweaks and optimizations in the JNI bindings. (check-in: 41fb5898f1 user: stephan tags: jni)
11:36
Bind sqlite3_collation_needed() to JNI. Related adjacent cleanups and fixes. (check-in: 16ff167691 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: 7ac6614e69 user: stephan tags: jni)
09:45
Incremental checkin to minimize the diff while narrowing in on an assertion caused by refactoring. (check-in: 2d7a91b139 user: stephan tags: jni)
08:12
Consolidate some warnings for java callbacks which must not throw but do. (check-in: 5e592ed2df user: stephan tags: jni)
07:44
Bind sqlite3_update_hook() to JNI. (check-in: a5bbaa9017 user: stephan tags: jni)
06:44
Bind sqlite3_rollback_hook() to JNI. (check-in: 5f8ee44098 user: stephan tags: jni)
06:00
Add commit hook failure to JNI tests. (check-in: be4459b495 user: stephan tags: jni)
05:50
Bind sqlite3_commit_hook() to JNI. (check-in: c687297fca user: stephan tags: jni)
04:31
Bind sqlite3_progress_handler() to JNI. Add some metrics to Tester1.java. (check-in: 437ecfe8ab user: stephan tags: jni)
03:54
Add tests for SAHPoolUtil.exportFile() and importDb(). (check-in: 4aa88b8fb1 user: stephan tags: trunk)
2023-07-29
22:58
Do not try to add MEM_Term to an MEM_Static string either. (check-in: 8920dcef1f user: drh tags: trunk)
21:22
Do not try to apply MEM_Term to a MEM_Ephem strings. (check-in: 2a378a6678 user: drh tags: trunk)
20:13
Fix a buffer overread in the fts5_structure virtual table (test code). (check-in: b837aff79c user: dan tags: trunk)
17:05
Simplification to the sqlite3_stmt_explain() implementation. (check-in: dd5eb4c7f7 user: drh tags: trunk)
15:53
SAHPoolUtil.importDb() now accepts either a byte array or ArrayBuffer. (check-in: 3848f04e54 user: stephan tags: trunk)
15:31
Enhancements to the new sqlite3_stmt_explain() interface implementation and documentation. (check-in: dc98ac6b6d user: drh tags: trunk)
2023-07-28
21:38
Fix doc error noted in the forum and a misspelling. (check-in: 6b79cc7dd0 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: 8e781c6742 user: drh tags: trunk)
19:07
Merge the latest trunk enhancements into the wal-shm-exceptions branch. (check-in: c44fb4d065 user: drh tags: wal-shm-exceptions)
19:00
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: b8731493bf user: drh tags: reuse-schema)
18:52
Merge the latest trunk enhancements into the bedrock branch. (check-in: 1d6ded3234 user: drh tags: bedrock)
18:47
Merge the latest trunk enhancements into the wal2 branch. (check-in: c1fa1cb5e0 user: drh tags: wal2)
18:44
Internal JNI binding docs. (check-in: 991c66197e user: stephan tags: jni)
18:43
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 7407dda8b4 user: drh tags: begin-concurrent)
18:37
Add the sqlite3_stmt_explain() API. (check-in: 0443c0ef85 user: drh tags: trunk)
18:02
Fix an incorrect file path in ext/jni/README.md (check-in: bcefa2df56 user: stephan tags: jni)
16:12
Minor tweaks to the JSON performance measurement documentation. (check-in: 0bed957e46 user: drh tags: trunk)
15:58
Fix minor typos in the JNI README.md file. (check-in: e21cf2e8f1 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: f9213289d0 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: 771fe35074 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: a0de01108c user: drh tags: sqlite3_result_zeroterminated)
11:52
Correct a recently-introduced falsehood in ext/wasm/README.md regarding ssh port forwarding. (check-in: 2a3f3a9cf2 user: stephan tags: trunk)
11:30
Mark an unreachable branch as ALWAYS(). (Closed-Leaf check-in: 8fd06d1151 user: drh tags: json-opt)
10:37
Minor java cleanups recommended by a modern IDE. (check-in: f92a9bbabe 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: 7ac8c66a6b user: stephan tags: jni)
09:54
Tweaks to the Java-side UDF docs. (check-in: 48e0079d8d 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: 7af0cb998f 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: ff53f1ccdc user: stephan tags: jni)
01:19
Add an OOM check to the previous check-in. Minor internal API renaming. (check-in: 6b56e4d62b 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: 6405749847 user: stephan tags: jni)
00:54
Remove some unnecessary and incorrect code that was mistakenly added in the previous check-in. (check-in: d3f458dcc3 user: drh tags: json-opt)
2023-07-27
23:51
Switch to using jsonParseCached() for json_patch(). (check-in: 2ed9c59e6a user: drh tags: json-opt)
22:53
Reformulate jni tests to not require the -ea jvm flag to enable assert(). (check-in: dc356667a8 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: 7dcde2bfce 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: 524747796a 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: 63ce0c9bdd 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: 509ae9c147 user: drh tags: json-opt)
20:12
Merge trunk into jni branch for compiler warning fixes. (check-in: 0514fd340a user: stephan tags: jni)
20:08
Fix a couple of compiler warnings in fts5_index.c. (check-in: bf71faa2a1 user: dan tags: trunk)
20:02
Initial check-in of JNI (Java Native Interface) bindings for the core C API. (check-in: b5374b9ef5 user: stephan tags: jni)
19:39
The OP_Column opcode caches large column values coming from overflow pages. (check-in: ab1edcc7fe 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: d66b182d2b user: dan tags: trunk)
18:19
Merge trunk enhancements into the json-opt branch. (check-in: 5739a16ad2 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: fd59226b34 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: 86bb464f31 user: stephan tags: jspi)
01:38
Accommodate a breaking change in emcc 3.1.44. (check-in: 2c5dd34199 user: stephan tags: trunk)
01:35
Accommodate a breaking change in emcc 3.1.44. (check-in: 4ce3860300 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: 837f2907e1 user: drh tags: trunk)
2023-07-26
23:22
Reduce the number of memory allocations when parsing JSON. (check-in: 9edd671621 user: drh tags: trunk)
21:53
Minor changes to make coverage testing easier. (check-in: ec8b43382e user: drh tags: trunk)
19:22
Change a switch() case to default for coverage. (check-in: 04f497074b 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: 01d52232dd 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: 8e20354242 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: 29c7b1cbc4 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: 5b178f92f5 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: 0cbec3990d user: dan tags: trunk)
16:41
Improve the output when ".scanstats vm" is enabled. (Closed-Leaf check-in: 7df08fd35e user: dan tags: scanstatus-exp)
14:18
Improved caching and reuse of JSON parses. (check-in: df099ad713 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: 1bf85d4e38 user: drh tags: json-opt)
11:53
More comment improvements in json.c. Do not run jsonLookup() following an OOM error. (check-in: cd5fda8c2e user: drh tags: json-opt)
11:43
Improved comments and other cleanup for the changes on this branch. (check-in: bac953a80d 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: b8f708e35d 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: 72dc3f8c32 user: stephan tags: trunk)
11:00
Fix jsonForceRCStr() to also add the NULL terminator. (check-in: 134b01f37f user: drh tags: json-opt)
07:57
Reformulate [907dfc4a7aa1] using awk instead of sed for better cross-platform portability. (check-in: 82ff7cc6a4 user: stephan tags: trunk)
01:15
Merge the latest trunk fixes into the json-opt branch. (check-in: ef4e1664d1 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: a4c1af616e user: drh tags: json-opt)
01:05
Extend the enhancement to json_set() and json_replace(). Clean up cruft. (Closed-Leaf check-in: 2dbb22c75e 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: f930b139d6 user: drh tags: json-opt-rcstr)
2023-07-25
20:26
Clarify ownership of the various objects involved in parsing JSON. (check-in: afe02a398a user: drh tags: json-opt-rcstr)
18:28
Incremental improvements to JSON parsing - trying to fold in the RCStr object. (check-in: 4cb15d934a user: drh tags: json-opt-rcstr)
17:54
Fix a harmless "set-but-not-used" compiler warning in sqlite3session.c. (check-in: 54b3c43fdf user: dan tags: trunk)
17:11
Merge trunk changes into this branch. (Closed-Leaf check-in: 719973d7f5 user: dan tags: fts5-contentless-delete)
16:48
Add extra test for 'deletemerge'. (check-in: bc33cff420 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: 1079300db2 user: dan tags: fts5-contentless-delete)
15:43
Fix a minor problem with error reporting in JSON. (check-in: c456e4a899 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: c1b8725089 user: drh tags: json-opt-rcstr)
13:53
Further tests for 'delete-automerge'. (check-in: ca26c7a37a 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: 907dfc4a7a 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: 075eb09a4f 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: 28c6e964b1 user: drh tags: json-opt)
22:45
Clean up some #defines in json. (check-in: 327fff501e user: drh tags: json-opt)
22:34
Rework the JSON parse structure to facilitate better caching. Passes all tests. (check-in: ecdcb1ded7 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: b314be66b9 user: dan tags: fts5-contentless-delete)
17:59
Incremental progress toward improved caching of parsed JSON. (check-in: f2c0638846 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: 80927c3913 user: stephan tags: trunk)
13:30
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: e0e7b01e27 user: drh tags: reuse-schema)
13:24
Merge the latest trunk enhancements into the bedrock branch. (check-in: a6f3443994 user: drh tags: bedrock)
13:20
Merge the latest trunk enhancements into the wal2 branch. (check-in: b2e56f62ad user: drh tags: wal2)
13:15
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 967be041ea user: drh tags: begin-concurrent)
12:59
Update the latest trunk enhancements into the wal-shm-exceptions branch. (check-in: 3187ee3f69 user: drh tags: wal-shm-exceptions)
12:37
Merge the latest trunk enhancements into the json-opt branch. (check-in: 00bfc4918b 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: c1b080e393 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: d2e602cda4 user: stephan tags: trunk)
19:47
Integrate contentless delete with auto-merge. (check-in: 85c1589ab1 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: 931bccb0cc 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: 1a6b3dd1c4 user: drh tags: trunk)
2023-07-21
22:28
Performance enhancements for queries using very large string values. (check-in: 3661b9cd98 user: drh tags: trunk)
22:22
Mark an unreachable branch as NEVER(). (Leaf check-in: 414a4d660c 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: e61c9b083f 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: f4926006b3 user: dan tags: fts5-contentless-delete)
19:17
Fix harmless compiler warning introduced by the previous check-in. (check-in: 06f829e9e5 user: drh tags: big-function-text)
18:38
Avoid a potentially large strlen() in sqlite3DecOrHexToI64(). (check-in: 5413b02bb6 user: drh tags: big-function-text)
18:09
Further improvements to large string handling in relation to JSON. (check-in: 1e5df0aa3d user: drh tags: big-function-text)
15:07
Fix harmless compiler warning about signed/unsigned comparison. (check-in: 75cc3c89ee 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: d0278cdedf user: drh tags: big-function-text)
11:09
More infrastructure changes towards improving JSON cache performance. Incremental check-in. (check-in: 1955e66cfc user: drh tags: json-opt)
10:51
Minor internal cleanups in the opfs-sahpool VFS. (Closed-Leaf check-in: 74ad31e290 user: stephan tags: opfs-sahpool)
09:10
Internal cleanups in the async part of the JS library bootstrap phase. (check-in: b6d57ab637 user: stephan tags: opfs-sahpool)
2023-07-20
23:25
Minor internal cleanups in JS code. (check-in: 21a2ca9fc4 user: stephan tags: opfs-sahpool)
20:29
Fix some divide-by-zero errors that could occur when handling corrupt tombstone hash records. (check-in: 7567ca0676 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: 69ce2ce035 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: e384163a47 user: drh tags: json-opt)
16:07
Add tests and fixes for the new code on this branch. (check-in: 5aac50e92e 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: 080a4d0aba user: stephan tags: opfs-sahpool)
2023-07-19
23:02
Performance enhancements to the JSON parser and code generator. (check-in: 0a745897d6 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: bee9e403ae user: drh tags: trunk)
19:23
Describe JSON parser performance testing procedure in test/json/README.md (check-in: c47056e158 user: drh tags: trunk)
18:47
Fix various issues with code added to this branch. (check-in: 8d09011fa2 user: dan tags: fts5-contentless-delete)
17:47
More internal refactoring and docs for opfs-sahpool. (check-in: 64ccf6177a user: stephan tags: opfs-sahpool)
17:46
Update the development-over-ssh docs for the wasm build. (check-in: 500109bd0a user: stephan tags: opfs-sahpool)
17:24
Further improvement to JSON parser performance. (check-in: 144c8ccf6e 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: adb4d6b007 user: drh tags: json-opt)
13:50
Performance optimization for parsing large JSONs that contain lots of text. (check-in: c9fbe0185c 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: 534481cd0c 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: 2e6fbebc41 user: drh tags: json-write-cache)
11:33
Appearance and legibility improvements for tester1.js. (check-in: 4fd3ed1b64 user: stephan tags: opfs-sahpool)
10:17
Merge the latest trunk enhancements into the sqlite3_stmt_explain branch. (Closed-Leaf check-in: 06eae046c1 user: drh tags: sqlite3_stmt_explain)
09:52
Two minor improvements to sum(), one of which was inspired by forum post af5be98dbc. (check-in: a0d3e7571a user: drh tags: trunk)
08:18
Internal refactoring in opfs-sahpool. Move OPFS tests to the end of tester1.c-cpp.js. (check-in: 6bd5a7413d 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: 76152ad2ff user: drh tags: trunk)
20:41
Improved ".wheretrace" for the VIEWSCAN optimization. (check-in: 27057ea76b user: drh tags: trunk)
19:52
Fix various problems with fts5 contentless_delete=1 tables. (check-in: 0d005112b8 user: dan tags: fts5-contentless-delete)
19:47
More opfs-sahpool tests. (check-in: 60713fa9c4 user: stephan tags: opfs-sahpool)
19:27
Fix a shadowed var in opfs-sahpool and add more tests. (check-in: 9c8a73aff0 user: stephan tags: opfs-sahpool)
18:52
Further refactoring of opfs-sahpool and start integrating it into tester1.c-pp.js. (check-in: 91c7892349 user: stephan tags: opfs-sahpool)
17:43
Merge the FTS5 memory leak fix from trunk. (check-in: fb65cb73d7 user: drh tags: fts5-contentless-delete)
17:29
Enhance the sqlite3_stmt_explain() interface so that avoids unnecessary reprepare operations. (check-in: 050f773add user: drh tags: sqlite3_stmt_explain)
16:29
Fix memory leak in fts5 introduced by [def41225]. (check-in: 4dcad2db74 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: 95e5fa498f 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: c2fba6a632 user: drh tags: sqlite3-stmt-explain-opt1)
13:55
Merge trunk changes with this branch. (check-in: 5f66eb4e26 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: def41225b2 user: dan tags: trunk)
12:09
Refactor opfs-sahpool to support multiple instances, each with a separate VFS name and directory. (check-in: d036eaf6ac 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: d928856a22 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: cc694b8340 user: dan tags: fts5-contentless-delete)
11:47
Merge trunk changes into this branch. (check-in: c4fb2f2ea0 user: dan tags: fts5-contentless-delete)
07:43
Another -DSQLITE_TEMP_STORE=3 to 2 change for the wasm build. (check-in: 5ad8f9987c user: stephan tags: opfs-sahpool)
07:14
sahpool vfs: rename defaultCapacity to initialCapacity, per feedback. (check-in: 2c9c95d087 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: 764430e804 user: stephan tags: opfs-sahpool)
2023-07-16
21:07
Remove an extraneous JS script import. (check-in: 5a205b2591 user: stephan tags: opfs-sahpool)
20:42
Add sqlite3-vfs-opfs-sahpool.js to ext/wasm/api/README.md. (check-in: 58d0520104 user: stephan tags: opfs-sahpool)
20:20
Minor doc tweaks. (check-in: 0cb0d7a9e7 user: stephan tags: opfs-sahpool)
19:29
Correct a missing assignment. Minor doc additions. (check-in: 1c4957d0ef user: stephan tags: opfs-sahpool)
19:20
Doc tweaks only, no code changes. (check-in: 044c28dffd 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: 80982daac3 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: d2ed99556f 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: aa94c8abfb 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: 29905b7a75 user: stephan tags: opfs-sahpool)
11:49
Micro-optimizations in opfs-sahpool. (check-in: 52f23db948 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: 809c6f4de3 user: stephan tags: opfs-sahpool)
2023-07-15
21:08
Minor cleanups in the opfs-sahpool VFS. (check-in: 279e090709 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: 41bf1fe31f 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: 4410e60d0c user: dan tags: fts5-contentless-delete)
16:48
Add the experimental sqlite3_stmt_explain(S,E) interface. (check-in: 5683743ddf user: drh tags: sqlite3_stmt_explain)
16:30
speedtest1 JS: only add --memdb flag by default if no --vfs is provided. (check-in: 676ffe6280 user: stephan tags: opfs-sahpool)
11:37
Rename opfs-sahpool removeCapacity() to reduceCapacity(). (check-in: fff68e9f25 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: 5d92d5f4d8 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: b4e005fd38 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: 7c6697eded 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: ef96e6b586 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: a93de9f2a5 user: stephan tags: opfs-sahpool)
21:06
Minor internal cleanups in the OPFS VFS. (check-in: 984d491eb3 user: stephan tags: trunk)
12:21
Minor wasm build cleanups. (check-in: 816b503f09 user: stephan tags: trunk)
2023-07-13
18:35
Reintroduce WASMFS+OPFS support, albeit as a separate (less portable) WASM build. (check-in: 7e4c594e95 user: stephan tags: trunk)
18:13
Minor cleanups related to reintroducing wasmfs support. (Closed-Leaf check-in: 6918a927b5 user: stephan tags: wasmfs-2023)
17:27
More work on the wasmfs build and its test apps. (check-in: 953b855719 user: stephan tags: wasmfs-2023)
16:33
Get speedtest1 wasmfs variant running again. (check-in: 0f77e031da 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: ce6793e954 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: 215c37fce3 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: 4850a9e2d2 user: stephan tags: wasmfs-2023)
04:54
Minor cleanups in the wasmfs build. (check-in: f64477f210 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: 647761ed42 user: stephan tags: wasmfs-2023)
03:46
Replace 'self' with 'globalThis' in some JS test code. (check-in: 53eeffc9b1 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: a061a43e36 user: stephan tags: trunk)
01:48
Remove obsolete ext/wasm/api/sqlite3-wasi.h. (check-in: f661a6e0c1 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: 0e801f11cd 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: 74d7610a8e 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: 383de8e225 user: drh tags: fts5-contentless-delete)
09:30
Internal JS doc fix. (check-in: 7c5ea02205 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: 2daba2cdd3 user: stephan tags: trunk)
2023-07-11
20:57
Have contentless_delete=1 tables support REPLACE statements. (check-in: 2f553a660e 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: fffb861690 user: dan tags: fts5-contentless-delete)
19:54
Reduce divergence between branches: trunk and wal-shm-exceptions. (check-in: d38ed6b1fc user: drh tags: trunk)
18:55
Use a hash-table instead of a flat list to store tombstone rowids. (check-in: 948267b066 user: dan tags: fts5-contentless-delete)
15:52
Get fault injection for testing working correctly. Other code clean-up. (check-in: ff492277ed user: drh tags: wal-shm-exceptions)
2023-07-10
20:44
Begin adding support for deleting rows from contentless fts5 tables. (check-in: e513bea84d user: dan tags: fts5-contentless-delete)
19:21
Minor style changes to the previous MSVC makefile changes on this branch. (check-in: 4c950872c8 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: 0e67a82f6c user: drh tags: wal-shm-exceptions)
18:16
Fix a warning. Unclear yet if the code is correct this way or not. (check-in: 2df4fd76ef user: drh tags: wal-shm-exceptions)
18:05
Merge the latest trunk enhancements into the wal-shm-exceptions branch. (check-in: f655d08d01 user: drh tags: wal-shm-exceptions)
2023-07-08
19:28
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 7a9cb6f4f4 user: drh tags: reuse-schema)
19:16
Merge the latest trunk enhancements into the bedrock branch. (check-in: 35bfb5bfee user: drh tags: bedrock)
19:09
Merge all the latest trunk enhancements into the wal2 branch. (check-in: f07936535f user: drh tags: wal2)
19:00
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 3d0823c48e user: drh tags: begin-concurrent)
17:42
Always use the "LL" suffix on 64-bit integer literals. (check-in: 07d95ed60f user: drh tags: trunk)
14:27
Fix harmless scan-build warnings. (check-in: beab3c9863 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: b409943af0 user: drh tags: trunk)
16:58
Proof of concept for a new sqlite3_function_needed() interface. (Leaf check-in: cd67edc032 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: d3532eaed1 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: 64e6bd1c25 user: drh tags: trunk)
2023-07-06
20:34
Improved handling of integer inputs to the new sum() implementation. (check-in: 31561c63bd user: drh tags: trunk)
18:29
A more precise implementation of sqlite3RealToI64(). (check-in: 8813317cb5 user: drh tags: trunk)
17:55
Merge all recent trunk enhancements into the wal-shm-exceptions branch. (check-in: e59cea2d85 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: ad2e39626e user: drh tags: trunk)
15:44
Use the Kahan-Babushka-Neumaier algorithm to improve the accuracy of sum(). (check-in: c63e26e705 user: drh tags: trunk)
14:45
Fix minor inaccuracies in the new sum() algorithm. (Closed-Leaf check-in: e3f7a960c9 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: ebc5edd3b1 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: 9427f42687 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: 1d972a690f user: drh tags: fix-dekker-with-volatile)
19:56
Improved comments on the work-around to the GCC x86 floating point wonkiness. (check-in: 7b4c16731e user: drh tags: trunk)
18:59
Work around for an apparent GCC bug. See forum post ee7278611394034c for details. (check-in: 5d9e936480 user: drh tags: trunk)
15:34
Make the order of operations explicit for the error term of Dekker double-precision multiply. (check-in: 28f57b34e6 user: drh tags: trunk)
14:42
Simplification of the dekkerMul2() subroutine. (check-in: bfe6432a46 user: drh tags: trunk)
12:00
Add the ieee754_inc(r,N) function to the ieee754.c extension. (check-in: 9a36f26945 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: fd987508d5 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: b7850fd480 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: eaff376277 user: drh tags: trunk)
15:11
Add the --nolongdouble option to speedtest1.c. (check-in: 6bf6018a00 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: 32befb224b 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: 02ae6caff1 user: drh tags: fp-to-decimal-refactor)
12:58
New test cases for floating-point conversions. (check-in: 9435ed76cd 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: 51f492b440 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: 40285d6310 user: drh tags: fp-to-decimal-branch1)
10:35
Squeeze as many bits as we can out of normalization. (check-in: 25d1ad6df1 user: drh tags: fp-to-decimal-branch1)
10:18
Faster Dekker multiplication that removes the restriction on input magnitude. (check-in: 2994caf588 user: drh tags: fp-to-decimal-branch1)
10:00
Fix one constant in the normalization logic. Improved error output from atof1.test. (check-in: d3c4880710 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: 4fa6938dac 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: d9a883d7d8 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: 7022433338 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: ce06982f88 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: 07eab52e08 user: drh tags: fp-to-decimal-refactor)
17:56
Improved rounding policy. (check-in: 6f1122e942 user: drh tags: fp-to-decimal-refactor)
15:23
Improved response to Infinity and NaN. Remove the termporary fpdecode() function. (check-in: 76ab8ae809 user: drh tags: fp-to-decimal-refactor)
14:03
Progress towards fixing corner-case floating-point formatting issues. (check-in: 1138b8d16e user: drh tags: fp-to-decimal-refactor)
Previous month ↓