SQLite

Timeline
Login

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

100 check-ins occurring around a29f994989.

2022-10-03
11:42
Reimplement fiddle_reset_db() so that it works with all VFSes. (check-in: 18462052 user: stephan tags: fiddle-opfs)
11:33
Experimentally relinquish the OPFS VFS sync access handle when the db is idle and reacquire it on demand, the goal being to help alleviate cross-tab locking issues. (check-in: 2703ac98 user: stephan tags: fiddle-opfs)
11:23
Add journal=MODE to the list of supported URL flags for speedtest1-worker.html. (check-in: 5c43e8d2 user: stephan tags: fiddle-opfs)
09:21
OPFS VFS now lazily opens its sync access handle, as a step towards experimenting with relinquishing it during idle times to help avoid cross-tab and page-reload locking issues. (check-in: a984e1ba user: stephan tags: fiddle-opfs)
08:30
Partial revert of [a82e6faaa642] to remove the 'I' alias for 'j' wasm function signature letter. In hindsight, that change seems premature. (check-in: dcd46af9 user: stephan tags: fiddle-opfs)
08:21
Minor JS API tweaks prompted by documenting them. (check-in: a82e6faa user: stephan tags: fiddle-opfs)
2022-10-02
22:50
More cleanups in the UDF argument and result handling, in particular int64. Consolidate some duplicate int64/bigint range checking code. Expose the UDF low-level utilities (arg/result conversion) to client code. Add the sqlite3_context pointer to the JS-side UDF wrappers for API consistency. (check-in: 10ab77af user: stephan tags: fiddle-opfs)
20:13
Minor doc typo fix in sqlite.h.in. (check-in: 372802aa user: stephan tags: trunk)
20:08
JS: clean up create_function() wrapper and add support for create_window_function(). Eliminate an extraneous blob copy when a UDF returns a blob. Make use of newfound JS-fu to clean up how sqlite3ApiBootstrap() config is initialized. (check-in: d3bad934 user: stephan tags: fiddle-opfs)
18:47
js: implement a hand-written wrapper for sqlite3_create_function_v2() which converts, if necessary, JS-function-type args to WASM function wrappers. Replace DB.createFunction() impl with the new one. (check-in: 435ab333 user: stephan tags: fiddle-opfs)
03:14
Doc typo fixes. (check-in: e528675d user: stephan tags: fiddle-opfs)
03:11
More fleshing out of sqlite3.capi.wasm.pstack. (check-in: eb572667 user: stephan tags: fiddle-opfs)
01:48
Document the roles of the new (this past week) JS files added to the build process. (check-in: 8b3bc731 user: stephan tags: fiddle-opfs)
00:09
General internal cleanups in the oo1 API. (check-in: f9db664f user: stephan tags: fiddle-opfs)
2022-10-01
20:27
Performance optimization in sqlite3_prepare() (discovered while working on the stmt-cache branch). (check-in: cd494240 user: drh tags: trunk)
19:21
Correct fiddle db export breakage caused by a post-testing API change made in [1fa019c88dea]. (check-in: e73cc44e user: stephan tags: fiddle-opfs)
18:55
Pedantic constness tweak. (check-in: c8a173cf user: stephan tags: fiddle-opfs)
18:47
wasm: correct a memleak caused by a shadowed var in the previous checkin. Add a stack-like allocator, sqlite3.capi.wasm.pstack, as a faster way of managing short-lived pointers (like the one which got shadowed). (check-in: 1fa019c8 user: stephan tags: fiddle-opfs)
16:01
Fiddle: fix makefile dependency issue and duplicate inclusion of post-js.js. Reimplement db export using sqlite3_serialize(). (check-in: 29db7de7 user: stephan tags: fiddle-opfs)
13:45
Merge trunk into fiddle-opfs branch. (check-in: 64ebcbe4 user: stephan tags: fiddle-opfs)
13:38
Tweak sqlite3-worker1.js to be able to load either sqlite3.js or sqlite3-wasmfs.js, noting that the latter still does not load in a Worker because of an Emscripten loader bug. (check-in: 000ef705 user: stephan tags: fiddle-opfs)
13:28
Merge the Parse.prepFlags change from trunk. (Leaf check-in: c8d77f39 user: drh tags: stmt-cache)
13:17
Replace the Parse.disableVtab field with Parse.prepFlags for increased generality, a small size reduction, and a small performance increase. (check-in: b7da0bcd user: drh tags: trunk)
12:04
Note two wasm-related potential TODOs. (check-in: 5636e828 user: stephan tags: fiddle-opfs)
12:00
Merge the latest trunk enhancements into the stmt-cache branch. (check-in: 7812aea6 user: drh tags: stmt-cache)
2022-09-30
23:49
Remove a couple of weird quirks of the Worker1 and Promiser APIs. The Worker1 (now undocumented) unlink capability needs to be reevaluated to work equivalently for all storage backends. (check-in: 9f2b331a user: stephan tags: fiddle-opfs)
23:02
Tweaks to the Worker1 and Promiser APIs prompted by documenting them. (check-in: c68b9aa1 user: stephan tags: fiddle-opfs)
22:40
Remove one of the NEVER() macros added by [5166acf3f0040459] because it is reachable after all. (check-in: bd8ae5fe user: drh tags: trunk)
20:59
New test cases in fuzzdata8.db (check-in: aa367a3c user: drh tags: trunk)
20:53
Fix a bug in the demoDelete fix from [d76a301e22e05722]. (check-in: 7e761a02 user: drh tags: trunk)
20:48
Add NEVER() to two error-detection tests that were made unreachable by the previous check-in. (check-in: 5166acf3 user: drh tags: trunk)
20:35
Add JS wrapper for sqlite3_exec() which knows how to handle a JS callback. Add some console.error() reporting of module-load failures, as they otherwise often get silently swallowed up by the loader's mechanisms. Add 'flexible-string' JS-to-WASM argument converter which performs more X-to-string conversions than the 'string' arg converter does. (check-in: 96818aa8 user: stephan tags: fiddle-opfs)
20:15
Better handle a case of database corruption where a b-tree page is one of its own ancestor pages. (check-in: a24e4680 user: dan tags: trunk)
16:49
Add sqlite3.version object. Add more state to the Worker #1 config-get response, including sqlite3.version. (check-in: 711f458d user: stephan tags: fiddle-opfs)
15:46
Add oo1.JsStorageDb.clearStorage/storageSize() methods, copies of capi.sqlite3_web_kvvfs_clear/size(). (check-in: 1e09efe7 user: stephan tags: fiddle-opfs)
15:24
batch-runner.js: force WebSQL batches to not abort for a failed statement (necessary for apples-to-apples-ish benchmark comparisons). (check-in: 60f0c5cb user: stephan tags: fiddle-opfs)
14:35
Improvements to the "demoDelete" method in the demovfs, suggested by forum post cad18961c2. (check-in: d76a301e user: drh tags: trunk)
14:14
Merge recent trunk enhancements into the reuse-schema branch. (check-in: b119a5e8 user: drh tags: reuse-schema)
14:04
Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 68a61513 user: drh tags: begin-concurrent-pnu-wal2)
13:54
Merge recent trunk enhancements into the wal2 branch. (check-in: c22c7c87 user: drh tags: wal2)
13:42
Merge the latest trunk changes into the begin-concurrent-report branch (check-in: 4d6141f3 user: drh tags: begin-concurrent-report)
13:29
Merge all recent trunk enhancements into the begin-concurrent branch. (check-in: ba2539f6 user: drh tags: begin-concurrent)
12:27
Merge version 3.39.4 changes into the reuse-schema-3.39 branch. (Leaf check-in: 81025928 user: drh tags: reuse-schema-3.39)
12:10
Expose sqlite3_msize() to wasm. (check-in: aa6ad34f user: stephan tags: fiddle-opfs)
11:01
Add oo1.JsStorageDb() as a convenience wrapper for oo1.DB(...,'kvvfs'). Minor doc cleanups. (check-in: 8a799870 user: stephan tags: fiddle-opfs)
10:55
wasm: expose sqlite3_de/serialize(), sqlite3_malloc/free() and friends, noting that the former explicitly lies on use of the latter for memory management so is not generically safe for use in wasm. (check-in: fbc0edb5 user: stephan tags: fiddle-opfs)
2022-09-29
22:08
Add JS infrastructure to ostensibly allow us to customize the wasm imports, which will hypothetically allow us to eliminate the dependency on EM_JS(), but the corresponding Emscripten glue-level feature currently breaks fatally with WASMFS builds so it's disabled. (check-in: 88d9253b user: stephan tags: fiddle-opfs)
17:35
Ensure that the wasm builds always, even when passing -Ox flags from the CLI, use -g3 to avoid problems caused by symbol minification with optimization levels -O2 and higher. (check-in: 27d24d5d user: stephan tags: fiddle-opfs)
16:54
Finish eliminating explicit Emscripten module dependencies in test code and fiddle. The only remnant in public code is the Emscripten-generated module load/init interface. (check-in: 7be78dd4 user: stephan tags: fiddle-opfs)
15:55
Version 3.39.4 (check-in: a29f9949 user: drh tags: release, branch-3.39, version-3.39.4)
13:17
Rework the Emscripten-emitted module loader/init function such that it passes on the sqlite3 module, instead of the Emscripten module, to the first then() of sqlite3InitModule()'s returned Promise. This eliminates any need to mention the Emscripten module object in client-side code unless they want to configure it in advance for loading-status reports. (check-in: 0dbaa0e2 user: stephan tags: fiddle-opfs)
2022-09-28
19:19
Fix misuse of the sqlite3_set_auxdata() interface in the ICU extension. (check-in: 6607dd01 user: drh tags: branch-3.39)
19:14
Fix misuse of the sqlite3_set_auxdata() interface in the ICU extension. (check-in: f25cf634 user: drh tags: trunk)
18:10
Wasm: expose sqlite3_exec() and use it to simplify the db-reset logic in batch-runner.js a bit. (check-in: 2e2821f7 user: stephan tags: fiddle-opfs)
17:52
More work on batch-runner.html/js to facilitate speed comparisons between various VFSes and WebSQL. (check-in: 3bd1bc24 user: stephan tags: fiddle-opfs)
17:10
Prototype implementation of "PRAGMA reset_database". This pragma differs from SQLITE_DBCONFIG_RESET_DATABASE in that the pragma only works if the database is reasonably well-formed, whereas the dbconfig works regardless. (Leaf check-in: cf0999d4 user: drh tags: reset-database)
13:38
Remove a NEVER macro in defragmentPage() that dbsqlfuzz discovered can be true. crash-32d9312f145cdce41613573f6431d9a3e439e3d7 (check-in: a4342fc0 user: drh tags: branch-3.39)
13:01
Correct duplicate copies of sqlite3-api.js being embedded in the wasmfs-based builds. (check-in: bbfcfba2 user: stephan tags: fiddle-opfs)
07:53
Work around broken -Os wasm builds by adding the -g3 flag. Unrelated documentation tweaks. (check-in: f5d6bf86 user: stephan tags: fiddle-opfs)
2022-09-27
17:03
Minor doc correction. (check-in: 093f6e4b user: stephan tags: fiddle-opfs)
17:00
Fix a potential division by zero error in this version of RBU that might occur if an external client checkpoints a wal file created by a suspended RBU process. (Leaf check-in: 73edd93a user: dan tags: branch-3.14)
16:35
Provide the SQLITE_MAX_ALLOCATION_SIZE compile-time option for limiting the maximum memory allocation size. (check-in: 584de6a9 user: drh tags: trunk)
14:31
Comment the -Os wasm builds as being broken (mysteriously missing JS bits). (check-in: f61475ef user: stephan tags: fiddle-opfs)
13:40
WASM API renaming. Reworked JS API bootstrap's async post-init into a generic mechanism, no longer OPFS-specific. (check-in: c42a8cb0 user: stephan tags: fiddle-opfs)
09:17
wasm/js: rename /persistent to /opfs to account for potential future persistent storage options. Minor flag-handling cleanups in the speedtest1 pages. Minor API tweaks in oo1. (check-in: 4dc972a3 user: stephan tags: fiddle-opfs)
02:04
Enhance defensive mode so that it disallows CREATE TRIGGER statements if the statements within the trigger attempt to write on a shadow table. Also make the legacy FTS3 code more robust against integer overflow during memory allocation. (check-in: c41f25e6 user: drh tags: branch-3.39)
01:53
Make the legacy FTS3 code more robust against integer overflow during memory allocation. (check-in: 5517bc50 user: drh tags: trunk)
00:56
Enhance defensive mode so that it disallows CREATE TRIGGER statements if the statements within the trigger attempt to write on a shadow table. (check-in: 3283bbd1 user: drh tags: trunk)
2022-09-26
20:51
Modify implementation of recovery to break recovery of the lost_and_found table into multiple steps. (check-in: adedfd04 user: dan tags: recover-extension)
13:55
Fiddle: replace db export routine with a C-side one which works for both Emscripten FS-hosted and OPFS-hosted db files. Minor code-adjacent cleanups. (check-in: 3579a8d6 user: stephan tags: fiddle-opfs)
11:38
Get fiddle db export working for OPFS VFS. Add root dir handle to the main OPFS VFS worker to enable creation of certain utility functions without delegating to the async worker. Add sqlite3.capi.sqlite3_wasm_rc_str() to map integer result codes back to their SQLITE_xxx counterparts. Minor doc touchups. (check-in: 9b2244e1 user: stephan tags: fiddle-opfs)
11:34
wasm: change StructBinder signature for sqlite3_file::pMethods from 'P' to 'p' to eliminate an unnecessary and inconsistent level of magic. (check-in: 85f2e877 user: stephan tags: fiddle-opfs)
2022-09-24
19:54
Add the SQLITE_RECOVER_SLOWINDEXES option, for specifying that indexes should be created and populated along with tables, instead of separately at the end of the recovery operation. (check-in: ad9dba9d user: dan tags: recover-extension)
19:17
Add sqlite3_recover_step() to header file sqlite3recover.h. Update the API docs in this file. (check-in: 47f41615 user: dan tags: recover-extension)
18:05
Update things to use sqlite3_recover_step() internally. (check-in: f4b15aad user: dan tags: recover-extension)
11:32
Fiddle: move, rather than copy, data buffers between the threads. Fix the case of an uploaded db failing to install because its filename is the same as the opened db. (check-in: bcec4f96 user: stephan tags: fiddle-opfs)
10:15
Resolve "already configured" warnings from shell's main() when starting it up in fiddle mode. (check-in: 114ef355 user: stephan tags: fiddle-opfs)
10:12
Reworked out the OPFS async proxy metrics are fetched so that they play more nicely with the tight event-polling loop. (check-in: ef503ced user: stephan tags: fiddle-opfs)
07:36
Refactoring towards getting fiddle to support OPFS as a first-class citizen. Certain operations, e.g. import, export, and unlink, are not OPFS-aware. (check-in: 1b923ed6 user: stephan tags: fiddle-opfs)
2022-09-23
21:01
Internal changes to the recover extension towards a step() style interface. (check-in: 73926d5c user: dan tags: recover-extension)
11:40
Fix various compiler warnings in new code on this branch. (check-in: ae49e9ef user: dan tags: recover-extension)
11:30
Merge latest trunk changes into this branch. (check-in: e87fa70a user: dan tags: recover-extension)
2022-09-21
20:24
Reformulate some JS to work around a buggy/broken code transformation in one of the Emscripten-driven code optimizers. (check-in: e1249369 user: stephan tags: fiddle-opfs)
19:51
Put pieces in place for fiddle to support opfs, but more cleanup is required in the sqlite3.js/fiddle connection. bigIntEnabled now defaults to whether the Emscripten's module has bigint enabled. Add wasm-sensible defaults for several SQLITE_ENABLE/OMIT flags in sqlite3-wasm.c. (check-in: 7c7fb753 user: stephan tags: fiddle-opfs)
18:21
Reduced and improved comments on the constraintCompatibleWithOuterJoin() function. (check-in: 38aaf26e user: drh tags: trunk)
16:21
shell.c.in: when building in fiddle mode, define _POSIX_SOURCE (ifndef) so that emcc's string.h reveals strdup(). (check-in: fb85b269 user: stephan tags: fiddle-opfs)
14:02
Correct mistyped --shrink-memory flag in speedtest1-worker. Minor OPFS proxy cleanups. (check-in: 86e2b55e user: stephan tags: fiddle-opfs)
12:27
Doc cleanups and additions. Add a way for the OPFS async runner to propagate exception text to the calling thread. (check-in: 5c5e8065 user: stephan tags: fiddle-opfs)
12:25
Added some structure to the wasm demo link list. (check-in: 777077c4 user: stephan tags: fiddle-opfs)
09:54
The RIGHT JOIN logic added to version 3.39.0 added a new restriction on the query flattener which resulted in a performance regression for some queries, as documented by forum post 96b9e5709cf47cda. This change removes that restriction (thus restoring performance) and fixes the problem that RIGHT JOIN was having in a different way. (check-in: 501609ed user: drh tags: trunk)
08:41
Add a link to fiddle.html in the wasm test app index.html. (check-in: 96c734c0 user: stephan tags: fiddle-opfs)
08:39
Move fiddle build rules into the wasm-centric build files. Add rule to push wasm bits to the wasm test server. (check-in: 113f8204 user: stephan tags: fiddle-opfs)
00:16
Break out the decision of whether or not a constraint term is usable by an outer join into a subroutine: constraintCompatibleWithOuterJoin(). (Closed-Leaf check-in: c7fbc9b0 user: drh tags: flattener-omit-restriction-29)
2022-09-20
22:19
Do not allow EP_InnerON terms to be used on a outer join. (check-in: f47aa745 user: drh tags: flattener-omit-restriction-29)
21:07
Add new test cases that (current) get an incorrect answer. (check-in: fe5c3773 user: drh tags: flattener-omit-restriction-29)
19:45
New test cases for query flattening when there are ON clauses and outer joins. (check-in: db55387b user: drh tags: flattener-omit-restriction-29)
19:22
Modify the OP_IfNotOpen opcode so that the jump is taken if the cursor is open but was previously set to a NULL row using OP_NullRow. (check-in: 1292d68c user: drh tags: flattener-omit-restriction-29)
18:18
Remove code that has been previously commented out. (check-in: 852b385a user: drh tags: flattener-omit-restriction-29)
17:43
Merge the fuzzcheck fix from trunk into the flattener improvement branch. (check-in: 930a8c15 user: drh tags: flattener-omit-restriction-29)
17:21
Update the fuzz invariant checker to conform to the latest changes in dbsqlfuzz. (check-in: 8d8c1243 user: drh tags: trunk)