]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
3 years agoRemove an obsolete file. opfs-proxy-atomics
stephan [Tue, 20 Sep 2022 14:21:58 +0000 (14:21 +0000)] 
Remove an obsolete file.

FossilOrigin-Name: 1e43855498b4329f733bd6e0731841dc884e885de7d2d338d402d05d54309427

3 years agoSpeed up de/serialization of func args and return values in the OPFS VFS proxy.
stephan [Tue, 20 Sep 2022 13:25:39 +0000 (13:25 +0000)] 
Speed up de/serialization of func args and return values in the OPFS VFS proxy.

FossilOrigin-Name: 5bf235bbe035e4ace7a54851e190742528af6b4266328a1b8bbb9fb3dd7f2118

3 years agoOPFS proxy: remove one sanity-checking-only level of proxy function to shave off...
stephan [Tue, 20 Sep 2022 10:47:36 +0000 (10:47 +0000)] 
OPFS proxy: remove one sanity-checking-only level of proxy function to shave off a few microseconds.

FossilOrigin-Name: b534831f3efb8910a17e29956e3e87cc80055ea66e15dbef992b6a556ff042f8

3 years agoRemove extraneous result-code SAB slots. Doc additions.
stephan [Tue, 20 Sep 2022 10:11:52 +0000 (10:11 +0000)] 
Remove extraneous result-code SAB slots. Doc additions.

FossilOrigin-Name: 88de20712bbe3e11ea74af95edc34e9ab9f346f9aa0a30931e5a9e1f96ce57b0

3 years agoAn alternative messaging strategy for the OPFS VFS proxy which uses only SharedArrayB...
stephan [Tue, 20 Sep 2022 08:27:57 +0000 (08:27 +0000)] 
An alternative messaging strategy for the OPFS VFS proxy which uses only SharedArrayBuffer and Atomics, instead of worker messages, for communication (only the initial one-time handshake during initialization uses worker messages). It runs speedtest1 approx. 15-20% faster but still 20-ish% slower than WASMFS.

FossilOrigin-Name: a83ee3082d89439ea3ad5737e63e25bebb0f91895aca006ce5fecf5b93a2651a

3 years agoOPFS VFS: further internal refactoring towards experimenting with a new comms model.
stephan [Tue, 20 Sep 2022 03:31:02 +0000 (03:31 +0000)] 
OPFS VFS: further internal refactoring towards experimenting with a new comms model.

FossilOrigin-Name: 5ca412ced24b4e3af5f467e710a597ed440badf7b8335346aade11d3cad3d1a1

3 years agoOPFS VFS: moved i/o buffer from per-file to the VFS, and related refactoring, in...
stephan [Tue, 20 Sep 2022 01:28:47 +0000 (01:28 +0000)] 
OPFS VFS: moved i/o buffer from per-file to the VFS, and related refactoring, in prep for experimentation with a new inter-worker comms model.

FossilOrigin-Name: d4d63e4580ad8d497310608175308c03c517e051d7865cb66aa0b10356612d7d

3 years agoClarify comments that describe query flattener restrictions associated with
drh [Mon, 19 Sep 2022 19:25:15 +0000 (19:25 +0000)] 
Clarify comments that describe query flattener restrictions associated with
outer joins.  No code changes.

FossilOrigin-Name: 2647d73bb1876d01851f52cb3fd6af08a962ab336b6d51c160d27b1baf94f75f

3 years agoFurther metrics and buffer-copy optimizations in the OPFS proxy, but with little...
stephan [Mon, 19 Sep 2022 18:22:29 +0000 (18:22 +0000)] 
Further metrics and buffer-copy optimizations in the OPFS proxy, but with little effect.

FossilOrigin-Name: d1f1fe6f1c60640f7770dfb9245c459a09b8d24ec2ddf664dff77c810bd51f96

3 years agoFix a minor comment typo. No changes to code or documentation.
drh [Mon, 19 Sep 2022 17:41:59 +0000 (17:41 +0000)] 
Fix a minor comment typo.  No changes to code or documentation.

FossilOrigin-Name: 8032db4ade66f70a102abb9d3a49e20620e204c45ad7a954a49d20403985bf07

3 years agoCut the speedtest1 runtime of the OPFS VFS proxy by approximately 3/4ths via xRead...
stephan [Mon, 19 Sep 2022 17:09:09 +0000 (17:09 +0000)] 
Cut the speedtest1 runtime of the OPFS VFS proxy by approximately 3/4ths via xRead/xWrite buffer-copying optimizations. Still slower than the WASMFS impl by approx. 1/5th.

FossilOrigin-Name: fb7f287310d74a3e236125ae9c49b859f9263c29ae85161c1bcf9dd0778d8a51

3 years agoRemove an obsolete file. Update wasmfs build for today's changes. Fix the case that...
stephan [Mon, 19 Sep 2022 14:56:13 +0000 (14:56 +0000)] 
Remove an obsolete file. Update wasmfs build for today's changes. Fix the case that OPFS.xTruncate() is passed a BigInt instead of a Number.

FossilOrigin-Name: 976053925013bf1975f5f9222e28ba648af28e305bb6bdae600eb24d0e136bec

3 years agoAdd sqlite3_web_vfs_list() to JS API. Corrected OPFS VFS's registering itself as...
stephan [Mon, 19 Sep 2022 13:44:23 +0000 (13:44 +0000)] 
Add sqlite3_web_vfs_list() to JS API. Corrected OPFS VFS's registering itself as the default VFS. speedtest1-worker now uses the xDelete() of both the default VFS and OPFS, to avoid that it starts up with a persistent OPFS test db (the native app calls unlink(), but that unlink call operates on a different virtual filesystem than the OPFS VFS).

FossilOrigin-Name: 2ec7e09139a510b9fd29e4c97283b20740a00f369193c6fecbb734f187e81b48

3 years agoMerge kv-vfs branch into fiddle-opfs. Adjust various JS APIs and apps to deal with...
stephan [Mon, 19 Sep 2022 13:16:35 +0000 (13:16 +0000)] 
Merge kv-vfs branch into fiddle-opfs. Adjust various JS APIs and apps to deal with the new method of handling kvvfs. Adjust speedtest1 JS build to include sqlite3-api.js so that it can use kvvfs and opfs VFSes. Permit passing of the vfs as a URL parameter to certain demo/test apps. Milestone: speedtest-worker.html?vfs=opfs runs with the standalone OPFS impl.

FossilOrigin-Name: ec09f32f7ae2249aaf27388ad2062982afa8bbbb5f88d236d6d9068bf33ad93d

3 years agospeedtest1: add --vfs NAME flag and eliminate code duplication in argc size verificat...
stephan [Mon, 19 Sep 2022 11:47:38 +0000 (11:47 +0000)] 
speedtest1: add --vfs NAME flag and eliminate code duplication in argc size verification for all flags which take a value.

FossilOrigin-Name: 281d09867134e0a057cfadd9bfcbf0e21b8ac9737a278c41973d33a3101be7bc

3 years agoMinor doc improvements in demo-123.js.
stephan [Mon, 19 Sep 2022 10:13:01 +0000 (10:13 +0000)] 
Minor doc improvements in demo-123.js.

FossilOrigin-Name: 9370ce94780e974da03d5c74cf9a5983eed333e7b3bc54e605c5f30b3fa99287

3 years agoGeneric cleanups in the OPFS VFS proxies.
stephan [Mon, 19 Sep 2022 09:58:01 +0000 (09:58 +0000)] 
Generic cleanups in the OPFS VFS proxies.

FossilOrigin-Name: 7d5f6adc3b964413fc96ad8d2735312c3e58348024cabdd2099682cbf696eaf7

3 years agoCorrect OPFS VFS xRead() to copy the result buffer if the result code is SQLITE_IOERR...
stephan [Mon, 19 Sep 2022 09:25:25 +0000 (09:25 +0000)] 
Correct OPFS VFS xRead() to copy the result buffer if the result code is SQLITE_IOERR_SHORT_READ.

FossilOrigin-Name: 56668f9902c6e896b6c63621a444444c6f58ee20f88a5feae97f1699be35892d

3 years agoReplace OPFS VFS xSleep() impl with a more efficient one (no Worker round-trip needed).
stephan [Mon, 19 Sep 2022 05:19:04 +0000 (05:19 +0000)] 
Replace OPFS VFS xSleep() impl with a more efficient one (no Worker round-trip needed).

FossilOrigin-Name: b9773f164878b0a1b7c88cc7a6d1374ea95f64920065e8b2b178a1afffd82fe5

3 years agoRename demo-oo1.* to demo-123.* and add demo-123-worker.html, which runs the same...
stephan [Mon, 19 Sep 2022 03:57:31 +0000 (03:57 +0000)] 
Rename demo-oo1.* to demo-123.* and add demo-123-worker.html, which runs the same demo via a Worker. Doc typo fixes.

FossilOrigin-Name: 2e4a005bd35424caeaa99ace23162cf79e2ebdb159475ffad92b85dc864ad764

3 years agoDisable build of wasmfs-using components on aarch64 (ARM), as wasmfs won't build...
stephan [Mon, 19 Sep 2022 00:40:53 +0000 (00:40 +0000)] 
Disable build of wasmfs-using components on aarch64 (ARM), as wasmfs won't build there.

FossilOrigin-Name: 9a9eeebc2c27b734041089131b4952d7c0440df48ef32f355641aca61d4b30a0

3 years agoRemove a NEVER macro in defragmentPage() that dbsqlfuzz discovered can be
drh [Sun, 18 Sep 2022 17:59:28 +0000 (17:59 +0000)] 
Remove a NEVER macro in defragmentPage() that dbsqlfuzz discovered can be
true.  crash-32d9312f145cdce41613573f6431d9a3e439e3d7

FossilOrigin-Name: 90403759e1cf30f7c11fa8170d6df59a0dd138e1de59d2b60bec7ba15d74f67c

3 years agoNumerous cleanups in the JS bits. Removed some now-defunct wasm test files. Expose...
stephan [Sun, 18 Sep 2022 17:32:35 +0000 (17:32 +0000)] 
Numerous cleanups in the JS bits. Removed some now-defunct wasm test files. Expose sqlite3.opfs object containing various OPFS-specific utilities.

FossilOrigin-Name: 26e625d05d9820033b23536f18ad3ddc59ed712ad507d4b0c7fe88abd15d2be8

3 years agoMove the OPFS VFS bits back into api/sqlite3-api-opfs.js. Refactor the OPFS VFS init...
stephan [Sun, 18 Sep 2022 03:05:55 +0000 (03:05 +0000)] 
Move the OPFS VFS bits back into api/sqlite3-api-opfs.js. Refactor the OPFS VFS init process to use a Promise-returning function which the client must call, as that eliminates any uncertainty about when the VFS (necessarily activated asynchronously) actually becomes available to the client. Rename x-sync-async.* to test-opfs-vfs.* Milestone: first successful test of OPFS without WASMFS.

FossilOrigin-Name: b2abf60dbfa6648f671a3932cb65feb28d05a0d5b7f792351d14f9c13d9798c5

3 years agoMove the OPFS VFS bits back into api/sqlite3-api-opfs.js. Refactor the OPFS VFS init...
stephan [Sun, 18 Sep 2022 02:35:30 +0000 (02:35 +0000)] 
Move the OPFS VFS bits back into api/sqlite3-api-opfs.js. Refactor the OPFS VFS init process to use a Promise-returning function which the client must call, as that eliminates any uncertainty about when the VFS (necessarily activated asynchronously) actually becomes available to the client.

FossilOrigin-Name: 1c660970d0f62bcfd6e698a72b050d99972a1e39f45a5ac24194a190f8f78ab3

3 years agoPlug OPFS methods in to their sqlite3_vfs/io_methods counterparts. Add URL args to...
stephan [Sun, 18 Sep 2022 00:16:12 +0000 (00:16 +0000)] 
Plug OPFS methods in to their sqlite3_vfs/io_methods counterparts. Add URL args to control debug output and running of sanity-checks in the OPFS init code.

FossilOrigin-Name: a0e93ed20b2463606a63b03ce8ca41ec1fb22886db5c5c898ace86ba24636f70

3 years agoCorrect OPFS xRead() and xWrite() impls and add a very basic sanity test for them.
stephan [Sat, 17 Sep 2022 23:47:20 +0000 (23:47 +0000)] 
Correct OPFS xRead() and xWrite() impls and add a very basic sanity test for them.

FossilOrigin-Name: cd06cc670029763955cf60ffcf944b36d41cb005b859d9b9fd0eea1b6741d0e9

3 years agoImplement OPFS xAccess(), albeit with more limited semantics than the VFS API calls...
stephan [Sat, 17 Sep 2022 23:29:27 +0000 (23:29 +0000)] 
Implement OPFS xAccess(), albeit with more limited semantics than the VFS API calls for. Add a way for OPFS xDelete() to optionally recursively remove empty dirs left over after deleting a file.

FossilOrigin-Name: c342b5d745f301104c59851c753287ebbbe95a69a56cb522d376d0f3e352c30f

3 years agoGeneric cleanups in the OPFS sync/async proxy.
stephan [Sat, 17 Sep 2022 21:13:26 +0000 (21:13 +0000)] 
Generic cleanups in the OPFS sync/async proxy.

FossilOrigin-Name: f36bddbe54c3acbfaa958042e4d24724f130bdca551401033f9bc63f3da73492

3 years agoAdd the remaining vfs/io_methods wrappers to the OPFS sync/async proxy, but most...
stephan [Sat, 17 Sep 2022 20:50:12 +0000 (20:50 +0000)] 
Add the remaining vfs/io_methods wrappers to the OPFS sync/async proxy, but most are not yet tested.

FossilOrigin-Name: 44db9132145b3072488ea91db53f6c06be74544beccad5fd07efd22c0f03dc04

3 years agoFix an uninitialized variable in the decoder kv-vfs.
drh [Sat, 17 Sep 2022 18:31:31 +0000 (18:31 +0000)] 
Fix an uninitialized variable in the decoder kv-vfs.

FossilOrigin-Name: 354726aa6c399053785f29104de15091629ce4bc275b9e2205cb3656a9e81cd7

3 years agoInclude the kv-vfs as an optional VFS on unix builds if the
drh [Sat, 17 Sep 2022 18:29:49 +0000 (18:29 +0000)] 
Include the kv-vfs as an optional VFS on unix builds if the
SQLITE_OS_KV_OPTIONAL compile-time option is present.

FossilOrigin-Name: 852812d1e2ec3c53ad7c6c64662b37d861fefcf1baeee3d58eba88bcb3f6d8df

3 years agoMerge the latest trunk enhancements into the kv-vfs branch.
drh [Sat, 17 Sep 2022 17:26:44 +0000 (17:26 +0000)] 
Merge the latest trunk enhancements into the kv-vfs branch.

FossilOrigin-Name: 37c7ca25a6e837e7f83b96a32e2b1a455730e48a48012c458ae2e734a3ccdd1f

3 years agoAdd initial bits of an experimental async-impl-via-synchronous-interface proxy intend...
stephan [Sat, 17 Sep 2022 15:08:22 +0000 (15:08 +0000)] 
Add initial bits of an experimental async-impl-via-synchronous-interface proxy intended to marshal OPFS via sqlite3_vfs API.

FossilOrigin-Name: 38da059b472415da52f57de7332fbeb8a91e3add1f4be3ff9c1924b52672f77c

3 years agoMerge kv-vfs branch into fiddle-opfs branch. Adjust speedtest1 --size flags to accoun...
stephan [Fri, 16 Sep 2022 20:16:50 +0000 (20:16 +0000)] 
Merge kv-vfs branch into fiddle-opfs branch. Adjust speedtest1 --size flags to account for new size limit.

FossilOrigin-Name: afb79050e635f3c698e51f06c346cbf23b096cfda7d0f1d8e68514ea0c25b7b7

3 years agoCorrections to the xRead method for databases in the os_kv.c VFS so that it
drh [Fri, 16 Sep 2022 15:19:04 +0000 (15:19 +0000)] 
Corrections to the xRead method for databases in the os_kv.c VFS so that it
correctly reads the header, and thus avoids unnecessary cache flushes.  This
changes also includes an optimization to the header read logic.

FossilOrigin-Name: ef54961ce69fddb4cfeeff0860288de2858a6f7a5aa396691e8e99933eb9af54

3 years agoWhen calculating kvvfs sessionStorage/localStorage size, multiply it by 2 to account...
stephan [Fri, 16 Sep 2022 12:49:45 +0000 (12:49 +0000)] 
When calculating kvvfs sessionStorage/localStorage size, multiply it by 2 to account for JS using 16-bit characters.

FossilOrigin-Name: 52d1b185b9f6cee1eb3dec436f47e0f52e4621a127abfad8c27f92fd78147889

3 years agoMerge kv-vfs branch into fiddle-opfs branch for [21915af560b1|synchronous=off fix...
stephan [Fri, 16 Sep 2022 11:45:09 +0000 (11:45 +0000)] 
Merge kv-vfs branch into fiddle-opfs branch for [21915af560b1|synchronous=off fix]. Remove some duplicate debug output in OPFS test code.

FossilOrigin-Name: 13899bb98c80525276d2484598b94e4206358f243f06d45c02700024f7e226fd

3 years agoFix os_kv.c so that it uses SQLITE_FCNTL_SYNC and hence
drh [Fri, 16 Sep 2022 11:37:01 +0000 (11:37 +0000)] 
Fix os_kv.c so that it uses SQLITE_FCNTL_SYNC and hence
works even with PRAGMA synchronous=OFF.

FossilOrigin-Name: 21915af560b111aeeaee751790356151a5f063c2fc703dd4b35b22dc393409fb

3 years agoAdd batch-runner-kvvfs.html, a kvvfs-specific build of batch-runner.html. Reduce...
stephan [Fri, 16 Sep 2022 02:30:49 +0000 (02:30 +0000)] 
Add batch-runner-kvvfs.html, a kvvfs-specific build of batch-runner.html. Reduce the speedtest1 --size X value for the batch list generation to 5 so that the kvvfs batch runner can handle it.

FossilOrigin-Name: d8df25920a047d5cf2093cc6233128c5e6057a9104d0c4397e643645bd646fe1

3 years agoRemove --nosync flag from speedtest1-kvvfs.html, as that seems to be the trigger...
stephan [Fri, 16 Sep 2022 02:28:03 +0000 (02:28 +0000)] 
Remove --nosync flag from speedtest1-kvvfs.html, as that seems to be the trigger for the 'no such table: z1' error. That app now warns if that flag is passed to it via URL args.

FossilOrigin-Name: ad0677e8abcc077636d1cf1d8485be4943506382581edf832e6b8a2021560040

3 years agoPull the src/os_kv.c part of [13839759f8f4] into the kv-vfs branch.
stephan [Fri, 16 Sep 2022 01:08:06 +0000 (01:08 +0000)] 
Pull the src/os_kv.c part of [13839759f8f4] into the kv-vfs branch.

FossilOrigin-Name: e334449912d5176e355d02024a07ed867741f71c9d10ce6744ca800414bf3eeb

3 years agoAdd return value checks to kvstorageWrite(), necessary for recognizing storage-full...
stephan [Fri, 16 Sep 2022 01:05:19 +0000 (01:05 +0000)] 
Add return value checks to kvstorageWrite(), necessary for recognizing storage-full errors in the JS binding. speedtest1-kvvfs.html runs successfully on localStorage with --size 1 to 6 and starts failing with storage shortage at --size 7.

FossilOrigin-Name: 13839759f8f45e4eb0aa6a5052801f3964d5b2dc2e427e5e91ee6692176381eb

3 years agoMore work on the synchronous OPFS experimentation. Numerous wasm/js build tweaks...
stephan [Thu, 15 Sep 2022 06:42:41 +0000 (06:42 +0000)] 
More work on the synchronous OPFS experimentation. Numerous wasm/js build tweaks. Add speeedtest-wasmfs.html, the wasmfs/opfs counterpart of speedtest1.html.

FossilOrigin-Name: 00ee49a3a2c148480f614e49a0ee5b35a255758c0a53693f0b464b31e7a4045b

3 years agoFix windows builds of recover extension.
dan [Thu, 15 Sep 2022 03:54:52 +0000 (03:54 +0000)] 
Fix windows builds of recover extension.

FossilOrigin-Name: abcbb6abfe08fc590123f0aa1bd72cfdecc75908f078f1348dc0e957de98bf52

3 years agoRemove some stale comments. Get scratchpad-opfs-worker2.js running again in prep...
stephan [Thu, 15 Sep 2022 03:16:49 +0000 (03:16 +0000)] 
Remove some stale comments. Get scratchpad-opfs-worker2.js running again in prep for reuse in experimenting with the OPFS all-synchronous API.

FossilOrigin-Name: 4cbbd370186f84e440f496e7f11c641d7dc1723acc46e4a31483392e0eb046e9

3 years agoSplit wasmfs-enabled build of sqlite3.js/wasm into sqlite3-wasmfs.js/wasm, as enablin...
stephan [Thu, 15 Sep 2022 03:09:00 +0000 (03:09 +0000)] 
Split wasmfs-enabled build of sqlite3.js/wasm into sqlite3-wasmfs.js/wasm, as enabling wasmfs breaks all tests/demos which run from a Worker thread.

FossilOrigin-Name: 08476f3c218d45846e7496bdae0b06e2122466111fdf2aa2aabb1805b15ef982

3 years agoClean up some JS documentation.
stephan [Thu, 15 Sep 2022 02:27:48 +0000 (02:27 +0000)] 
Clean up some JS documentation.

FossilOrigin-Name: 925fdbfc6c1f9f06951346bc0d4fb81ffb5797d5f1123728931973f6cb1a0efa

3 years agoInclude recovery extension in configure/make builds of testfixture.
dan [Wed, 14 Sep 2022 20:45:46 +0000 (20:45 +0000)] 
Include recovery extension in configure/make builds of testfixture.

FossilOrigin-Name: d2f4652144c4a54012a2176c178c5ade3463bd017515f472cfa8dafdde192df3

3 years agoExtra tests and fixes.
dan [Wed, 14 Sep 2022 18:57:46 +0000 (18:57 +0000)] 
Extra tests and fixes.

FossilOrigin-Name: deed5336931b23bb507c064d08e9899b33f04e4f7eee03beb8d7147eb4caa030

3 years agoFix recovery of utf-16 databases.
dan [Wed, 14 Sep 2022 16:37:59 +0000 (16:37 +0000)] 
Fix recovery of utf-16 databases.

FossilOrigin-Name: 5b05be0861f35804270fbd184ad4b89c23e98cc2fbd56b9e4fe6197daef5fe49

3 years agoAdd OOM tests for the recovery extension.
dan [Tue, 13 Sep 2022 20:40:57 +0000 (20:40 +0000)] 
Add OOM tests for the recovery extension.

FossilOrigin-Name: 9b6b4c7162439a889144edb561356afc66436db921a867c20871f0c556716502

3 years agoFix a broken error handling case in the recovery extension.
dan [Tue, 13 Sep 2022 19:47:01 +0000 (19:47 +0000)] 
Fix a broken error handling case in the recovery extension.

FossilOrigin-Name: 60089547e1fc77ecc02f207ebf75ee3160e5ff25f41d12e02e170fd7fde66602

3 years agoAdd/apply various kvvfs-specific utility APIs to the JS layer to assist in testing...
stephan [Tue, 13 Sep 2022 19:27:03 +0000 (19:27 +0000)] 
Add/apply various kvvfs-specific utility APIs to the JS layer to assist in testing and analysis. Correct a backwards default arg check for sqlite3ApiBootstrap(). Add exports for sqlite3_db_handle(), sqlite3_file_control(), and the SQLITE_FCNTL_xxx enum.

FossilOrigin-Name: 0d78961870ee9f22f1ba16d423377d28dcc36e04b1e31ffd57f3e2fd51f8f0f2

3 years agoAdd tests. Deal issues surrounding aborting recovery from within the SQL callback...
dan [Tue, 13 Sep 2022 18:08:24 +0000 (18:08 +0000)] 
Add tests. Deal issues surrounding aborting recovery from within the SQL callback, and avoiding the pending-byte page.

FossilOrigin-Name: 4e97dd31f5240d9231167ae172a5116426c42177a1ed3c5422b9d51b762d5a87

3 years agoGet testing1.js working with a kvvfs build.
stephan [Mon, 12 Sep 2022 22:27:00 +0000 (22:27 +0000)] 
Get testing1.js working with a kvvfs build.

FossilOrigin-Name: 333a45725d1708e0fefa559c33ce1c7eeb425cdb04f594b1f2b48166c1478c79

3 years agoRemove an extraneous key-copy op in the EM_JS impl of kvstorageDelete().
stephan [Mon, 12 Sep 2022 20:21:34 +0000 (20:21 +0000)] 
Remove an extraneous key-copy op in the EM_JS impl of kvstorageDelete().

FossilOrigin-Name: 1c5aeee45564c14e7e2e7730f3f52106339ea3148fb5aa786fa767a35db46f51

3 years agoMerge kv-vfs branch into fiddle-opfs and add speedtest1-kvvfs.html test app (which...
stephan [Mon, 12 Sep 2022 20:18:28 +0000 (20:18 +0000)] 
Merge kv-vfs branch into fiddle-opfs and add speedtest1-kvvfs.html test app (which currently fails early on).

FossilOrigin-Name: 8b1608a9a37131121cb3a0cb1e8dbad5e39dc1fc2a341d056f09537f179b2e7a

3 years agoFix some problems with handling corrupt database in the recovery extension.
dan [Mon, 12 Sep 2022 20:02:33 +0000 (20:02 +0000)] 
Fix some problems with handling corrupt database in the recovery extension.

FossilOrigin-Name: ed318be8241981ef96334ba13d3201a717cc812a59aed64e3dc67f7e7e71854b

3 years agoFix the <sys/time.h> include in os_kv.c.
drh [Mon, 12 Sep 2022 19:33:20 +0000 (19:33 +0000)] 
Fix the <sys/time.h> include in os_kv.c.

FossilOrigin-Name: 878cc93e779c3857adc711f212520f007256274fcd3f6f3d72c754a937fcd198

3 years agoAdd a gettimeofday()-based implementation of xCurrentTimeInt64() to os_kv.c.
drh [Mon, 12 Sep 2022 19:29:34 +0000 (19:29 +0000)] 
Add a gettimeofday()-based implementation of xCurrentTimeInt64() to os_kv.c.

FossilOrigin-Name: e393ed650ef124143f84e9d787fb996e308dd7af6b8f50df72a6f085b67bf9c3

3 years agoMore tests for the recover module.
dan [Mon, 12 Sep 2022 19:23:50 +0000 (19:23 +0000)] 
More tests for the recover module.

FossilOrigin-Name: 37fb093b95c6b7d7ad07a275697df73b69f9fb5c5549aea8544b26e38f24833f

3 years agoFix a debugging/testing edit in the previous check-in.
drh [Mon, 12 Sep 2022 18:10:41 +0000 (18:10 +0000)] 
Fix a debugging/testing edit in the previous check-in.

FossilOrigin-Name: 6fc8d34c0ae1f8277544be741f2f0835fad8e475d35bd24573224ccc1699b8bd

3 years agoAdd sqlite3.oo1.DB.clearKvvfsStorage(). Add controls to kvvfs1.js demo to reset and...
stephan [Mon, 12 Sep 2022 17:59:04 +0000 (17:59 +0000)] 
Add sqlite3.oo1.DB.clearKvvfsStorage(). Add controls to kvvfs1.js demo to reset and query the db without requiring the dev console.

FossilOrigin-Name: d845c6c22bd5d3fffc66e0566df346d690dd8bd1fc1688e312161b1a1edcfd79

3 years agoFaster text decoder for kv_os.c.
drh [Mon, 12 Sep 2022 17:44:35 +0000 (17:44 +0000)] 
Faster text decoder for kv_os.c.

FossilOrigin-Name: 3354a2edb762d70ccc31d4d25f81b70e644d76e01cb1e81d2e97b5414d809d30

3 years agoMerge kv-vfs branch into fiddle-opfs branch to add kvvfs-based wasm build and demo.
stephan [Mon, 12 Sep 2022 16:09:50 +0000 (16:09 +0000)] 
Merge kv-vfs branch into fiddle-opfs branch to add kvvfs-based wasm build and demo.

FossilOrigin-Name: a7d8b26acd3c1ae344369e4d70804c0cab45272c0983cfd32d616a0a7b28acb9

3 years agoNew run-time options to the speed-check.sh script.
drh [Mon, 12 Sep 2022 16:07:24 +0000 (16:07 +0000)] 
New run-time options to the speed-check.sh script.

FossilOrigin-Name: ff46bc9d2a844dde9dafa157114f4d9ee157205ca5c08ed9ee32f018de310e62

3 years agoFix uninitialized variable in rollback-journal processing in os_kv.c
drh [Mon, 12 Sep 2022 15:59:35 +0000 (15:59 +0000)] 
Fix uninitialized variable in rollback-journal processing in os_kv.c

FossilOrigin-Name: e49682c5eac91958f143e639c5656ca54560d14f5805d514bf4aa0c206e63844

3 years agoResolve missing kvvfs JS test: sqlite3_initialize() must be called by the client...
stephan [Mon, 12 Sep 2022 13:05:54 +0000 (13:05 +0000)] 
Resolve missing kvvfs JS test: sqlite3_initialize() must be called by the client in this build. Add basic sanity test of kvvfs using sessionStorage().

FossilOrigin-Name: 250a935aeb94d3fadec0d3fe22de85de4e658e2fdb3be3aa9a8bbc8f7b7d8414

3 years agoFix the amalgamation so that it builds with the standard unix backend again.
drh [Mon, 12 Sep 2022 12:41:07 +0000 (12:41 +0000)] 
Fix the amalgamation so that it builds with the standard unix backend again.

FossilOrigin-Name: 0adf158f4e5791339988185cc29347c75056b062e0db65b5999fdfa1f433c1ed

3 years agoInitial build of kvvfs in wasm. It loads but cannot find the VFS for as-yet-unknown...
stephan [Mon, 12 Sep 2022 12:39:28 +0000 (12:39 +0000)] 
Initial build of kvvfs in wasm. It loads but cannot find the VFS for as-yet-unknown reasons (sqlite3 shell works fine), and most APIs throw "null function or function signature mismatch" from deep within wasm, presumably as a side effect of the "missing" VFS.

FossilOrigin-Name: 1a2f24a0bdfc6eaae478916b8f4f9c6b63ead9964534fc2951fb4e995ffe61f1

3 years agoMinor cleanups and documentation in the wasm pieces.
stephan [Sun, 11 Sep 2022 16:59:40 +0000 (16:59 +0000)] 
Minor cleanups and documentation in the wasm pieces.

FossilOrigin-Name: 4e6ce329872eb733ba2f7f7879747c52761ae97790fd8ed169a25a79854cc3d9

3 years agoCorrect the result code from kvstorageRead() for the OOM case to be a negative value.
stephan [Sun, 11 Sep 2022 05:44:15 +0000 (05:44 +0000)] 
Correct the result code from kvstorageRead() for the OOM case to be a negative value.

FossilOrigin-Name: cdbf09fa1b0c93aeb3222a157de33a4688ae629c2b829ffff0f1f62364c5ae1c

3 years agoMinor cleanups and docs for the EM_JS() impls of the kvvfs read/write/delete ops.
stephan [Sun, 11 Sep 2022 05:38:39 +0000 (05:38 +0000)] 
Minor cleanups and docs for the EM_JS() impls of the kvvfs read/write/delete ops.

FossilOrigin-Name: 53b7572e441be4b4b29b4228d0f95b24457d7faaf6c0b568ed5c970a55e21ffb

3 years agoAdd EM_JS() impl for kvstorageRead().
stephan [Sun, 11 Sep 2022 04:49:29 +0000 (04:49 +0000)] 
Add EM_JS() impl for kvstorageRead().

FossilOrigin-Name: 06610314fcf644f323c2f7ae11d7f4349b195e66d0ebbee590438dd99d97eb96

3 years agoInitial prototype impls of write/delete-key ops for the pending kvvfs which use sessi...
stephan [Sun, 11 Sep 2022 02:43:08 +0000 (02:43 +0000)] 
Initial prototype impls of write/delete-key ops for the pending kvvfs which use sessionStorage or localStorage for db page storage. read-key op is pending.

FossilOrigin-Name: a4bd96f5348e607d0fcb627b751f9d86a188173a4b3bfb2c95f92913a78bd31e

3 years agoRework recover extension code for readability.
dan [Sat, 10 Sep 2022 20:01:49 +0000 (20:01 +0000)] 
Rework recover extension code for readability.

FossilOrigin-Name: 1a2540960e40e3c8c622448fd3862e249bd463c29ae4ce5e39942e942533f60a

3 years agoImproved comments in os_kv.c. Better names for the key/value name spaces.
drh [Sat, 10 Sep 2022 18:38:21 +0000 (18:38 +0000)] 
Improved comments in os_kv.c.  Better names for the key/value name spaces.

FossilOrigin-Name: 8e1652a3856765c9146cc2a7e3b598a2dc7dc84c556b35eab9a35184514384b9

3 years agoMove the vfskv.c extension to src/os_kv.c and make it part of the amalgamation,
drh [Sat, 10 Sep 2022 18:20:59 +0000 (18:20 +0000)] 
Move the vfskv.c extension to src/os_kv.c and make it part of the amalgamation,
activated if and only if SQLITE_OS_KV is true.

FossilOrigin-Name: f6632e69c2ec1a7ddc4e51f3567e3bc082ee94a6dd51fdafdc0c3bf386a32d4c

3 years agoFurther fixes to comments in sqlite3recover.h. Also rework some data structures in...
dan [Fri, 9 Sep 2022 20:44:56 +0000 (20:44 +0000)] 
Further fixes to comments in sqlite3recover.h. Also rework some data structures in sqlite3recover.c.

FossilOrigin-Name: 599d1f8ec2f9e24924a6f9e66c85664360c7b95531b07a4efe1dd8c096b3fc99

3 years agoFix harmless compiler warning seen with MSVC.
mistachkin [Fri, 9 Sep 2022 17:50:29 +0000 (17:50 +0000)] 
Fix harmless compiler warning seen with MSVC.

FossilOrigin-Name: 73c4c68d3b4c16caf8281dabddd7365d24691e5ee2da89b1783eca66bfbd9280

3 years agoHandle recovery of virtual tables by recovering each shadow table individually, then...
dan [Fri, 9 Sep 2022 16:25:19 +0000 (16:25 +0000)] 
Handle recovery of virtual tables by recovering each shadow table individually, then writing the CREATE VIRTUAL TABLE statement directly into the sqlite_schema table.

FossilOrigin-Name: 5f2d5ccd56c06c3468377126acfd4be39b79b05bb6fb09b674b2e185df143aa3

3 years agoDatabase must be named either "local" or "session". Each has a distinct
drh [Fri, 9 Sep 2022 16:16:33 +0000 (16:16 +0000)] 
Database must be named either "local" or "session".  Each has a distinct
namespace.

FossilOrigin-Name: c8e41279294ea7c2f041c7d4cbbd85fce47d55f2f56180ca837316f7dfd75237

3 years agoSeparate sqlite3_io_methods objects for database files and journals.
drh [Fri, 9 Sep 2022 14:22:41 +0000 (14:22 +0000)] 
Separate sqlite3_io_methods objects for database files and journals.

FossilOrigin-Name: 74fbf6c2a97729e481d5562344e960d0c237aeb1f07240262d32a24fb1f4b5a3

3 years agoSimple reading and writing now works.
drh [Fri, 9 Sep 2022 11:41:54 +0000 (11:41 +0000)] 
Simple reading and writing now works.

FossilOrigin-Name: 00845ac9ef2616e90f5f6a20da3dd040fa8bdcfe73f72fe9c06039561150a82d

3 years agoRemove a reference to a completed TODO.
stephan [Fri, 9 Sep 2022 05:39:36 +0000 (05:39 +0000)] 
Remove a reference to a completed TODO.

FossilOrigin-Name: 757ad69607201a26802a304839b8454b1634712458539d6aa8cf999ab2447e59

3 years agospeedtest1 wasm: add a link in the worker variant which launches the main-thread...
stephan [Fri, 9 Sep 2022 04:50:18 +0000 (04:50 +0000)] 
speedtest1 wasm: add a link in the worker variant which launches the main-thread variant with the selected CLI flags. Append collected stdout/stderr to the main-thread page after execution is finished to avoid having to open the dev tools (which inexplicably slows down wasm execution).

FossilOrigin-Name: 02709ee2beab36d144b807fd9ffaee639e3c1bdd1908a34e05f3fd23dad2ef66

3 years agoUpdate comments in sqlite3recover.h.
dan [Thu, 8 Sep 2022 21:43:18 +0000 (21:43 +0000)] 
Update comments in sqlite3recover.h.

FossilOrigin-Name: 14164047c43e3ca43aa010c77ea00dfa85400e15645ee0f5b90a677898b6a836

3 years agoMake use of the --big-transactions flag in the speedtest1 JS apps.
stephan [Thu, 8 Sep 2022 21:33:50 +0000 (21:33 +0000)] 
Make use of the --big-transactions flag in the speedtest1 JS apps.

FossilOrigin-Name: f2846dcbcaac7880394fb14597c3a60ed310419128c4c5b863cd771a7e5cdeb5

3 years agoAdd speedtest1 --big-transactions flag to cause its large tests which rely on implici...
stephan [Thu, 8 Sep 2022 21:09:42 +0000 (21:09 +0000)] 
Add speedtest1 --big-transactions flag to cause its large tests which rely on implicit transactions to be wrapped in BEGIN/COMMIT, per /chat discussion. Added to support of the WASMFS build, which slows down significantly when thousands of implicit transactions are used.

FossilOrigin-Name: 51395c005da46b7fa5a5f28809dd8fea263a6bac2b1492759b3d5a5aa7d399ca

3 years agoMinor build cleanups and tweaks in the speedtest1 wasm apps.
stephan [Thu, 8 Sep 2022 20:04:52 +0000 (20:04 +0000)] 
Minor build cleanups and tweaks in the speedtest1 wasm apps.

FossilOrigin-Name: 5240fb4d795dea826f23cf5d2152b519f5a46f49bb2499ea868fa7c7f4ce788b

3 years agoExperimentally add --nomutex flag to speedtest1 to have it open db with the SQLITE_OP...
stephan [Thu, 8 Sep 2022 19:53:59 +0000 (19:53 +0000)] 
Experimentally add --nomutex flag to speedtest1 to have it open db with the SQLITE_OPEN_NOMUTEX flag.

FossilOrigin-Name: 45ef576b2ee6369ab1e3aa2ad284764bb334f92a69a33d88b7292bbc0a1b1fda

3 years agoUpdate the shell to use the recover extension for the .recover command.
dan [Thu, 8 Sep 2022 19:22:29 +0000 (19:22 +0000)] 
Update the shell to use the recover extension for the .recover command.

FossilOrigin-Name: ae832e77084eddd696c80cb926d070a5db9d45dce34156a02522b3140e8f5e8b

3 years agoFix problems with recovering the sqlite_sequence table.
dan [Thu, 8 Sep 2022 17:42:33 +0000 (17:42 +0000)] 
Fix problems with recovering the sqlite_sequence table.

FossilOrigin-Name: 356d2209ea5f6b69ce15b62027c63419c2d039e52f01c74a3810a6317abf4fb0

3 years agoCompiles and loads as an extension. Starts to run but quickly hits issues.
drh [Thu, 8 Sep 2022 17:12:12 +0000 (17:12 +0000)] 
Compiles and loads as an extension.  Starts to run but quickly hits issues.

FossilOrigin-Name: 2e38726f46918b28b5c638967f960a20afd3fe84ad245f3bea39a1d64980435b

3 years agoCompiles without error, but untested.
drh [Thu, 8 Sep 2022 16:27:50 +0000 (16:27 +0000)] 
Compiles without error, but untested.

FossilOrigin-Name: a329939c32e33d8d00066ba3d4327f07cca1b4e67de0b8d85f1e7f98afe40954

3 years agoCode snapshot. Completely untested. Probably does not compile.
drh [Thu, 8 Sep 2022 15:48:01 +0000 (15:48 +0000)] 
Code snapshot.  Completely untested.  Probably does not compile.

FossilOrigin-Name: 51e267696d25f2f83b5bb847d5254ab15573ef1a16ea3d7dd8279c73c0bee539

3 years agoAdd speedtest1-worker.html, an interactive Worker-thread variant of speedtest1.html...
stephan [Thu, 8 Sep 2022 15:30:59 +0000 (15:30 +0000)] 
Add speedtest1-worker.html, an interactive Worker-thread variant of speedtest1.html. Add ext/wasm/index.html to act as a gateway to the various test pages.

FossilOrigin-Name: f16c68ee6d5ebb8dec2ab656dbab2ddb5f1d5133153ad553f986b31020adaa38

3 years agoAdd new test file recoverclobber.test.
dan [Thu, 8 Sep 2022 11:04:23 +0000 (11:04 +0000)] 
Add new test file recoverclobber.test.

FossilOrigin-Name: cb4e950c472bd24a79a8505a7f8e4c3a0f7821648297d05cc760738b777d5149

3 years agoEnhance an assert() to impose for tighter constraints on the operation of pcache.
drh [Wed, 7 Sep 2022 20:11:22 +0000 (20:11 +0000)] 
Enhance an assert() to impose for tighter constraints on the operation of pcache.

FossilOrigin-Name: 42105eb43a916a7cd839fa6c582eaffaef17f50b23c3e05142400c379feb73c7