]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
2 years agoAdd the opfs-sahpool sqlite3_vfs implementation to JS, offering an alternative to...
stephan [Sat, 22 Jul 2023 19:57:42 +0000 (19:57 +0000)] 
Add the opfs-sahpool sqlite3_vfs implementation to JS, offering an alternative to the other OPFS VFS (with tradeoffs).

FossilOrigin-Name: d2e602cda44bf35e76167143262b4f91826d25780d0e095e680a31d5dedb2018

2 years agoDo not read past the end of a text buffer looking for a zero terminator, as
drh [Sat, 22 Jul 2023 16:37:28 +0000 (16:37 +0000)] 
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.

FossilOrigin-Name: 931bccb0cc290b8bf3027641e7a7fac30e3244d7dc84aa9e38b24b7e9544ca06

2 years agoFix a harmless use-of-initialized-value warning from OSSFuzz that results
drh [Sat, 22 Jul 2023 15:21:41 +0000 (15:21 +0000)] 
Fix a harmless use-of-initialized-value warning from OSSFuzz that results
from recent large string optmizations.

FossilOrigin-Name: 1a6b3dd1c40277a0d0f0bb562ddc4868aadd632fc2d29be1b17bb33fc22c46c8

2 years agoPerformance enhancements for queries using very large string values.
drh [Fri, 21 Jul 2023 22:28:34 +0000 (22:28 +0000)] 
Performance enhancements for queries using very large string values.

FossilOrigin-Name: 3661b9cd98565ea23b0cafd030668f09885dcbd54eb12b7b3cd85c289aef4c3c

2 years agoMark an unreachable branch as NEVER(). big-function-text
drh [Fri, 21 Jul 2023 22:22:13 +0000 (22:22 +0000)] 
Mark an unreachable branch as NEVER().

FossilOrigin-Name: 414a4d660c3b505640227066b468db1268fcb1bd3fad931644a769617c6c00cd

2 years agoFix harmless compiler warning introduced by the previous check-in.
drh [Fri, 21 Jul 2023 19:17:26 +0000 (19:17 +0000)] 
Fix harmless compiler warning introduced by the previous check-in.

FossilOrigin-Name: 06f829e9e57c5aa495f519ad7bb379be611e8e21ef60d36e63d055e45f7a6117

2 years agoAvoid a potentially large strlen() in sqlite3DecOrHexToI64().
drh [Fri, 21 Jul 2023 18:38:59 +0000 (18:38 +0000)] 
Avoid a potentially large strlen() in sqlite3DecOrHexToI64().

FossilOrigin-Name: 5413b02bb629b9cbb76f7e688e94ebcf24276c01436d3feb73ff57c036e1d2aa

2 years agoFurther improvements to large string handling in relation to JSON.
drh [Fri, 21 Jul 2023 18:09:07 +0000 (18:09 +0000)] 
Further improvements to large string handling in relation to JSON.

FossilOrigin-Name: 1e5df0aa3dae5cadbf1d07c718ae2a5212543300b68e49d35e8c96855a7f619c

2 years agoFix harmless compiler warning about signed/unsigned comparison.
drh [Fri, 21 Jul 2023 15:07:56 +0000 (15:07 +0000)] 
Fix harmless compiler warning about signed/unsigned comparison.

FossilOrigin-Name: 75cc3c89ee2dcfefa9421ce60bee77e85d2895918e8c5cfd05c434f8932a99b5

2 years agoMultiple optimizations that try to preserve or infer the zero-terminated
drh [Fri, 21 Jul 2023 15:01:53 +0000 (15:01 +0000)] 
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.

FossilOrigin-Name: d0278cdedfa04fb0b61838ab9622be8a2c462f58d5c3ebc4c5f802a727d0974e

2 years agoMinor internal cleanups in the opfs-sahpool VFS. opfs-sahpool
stephan [Fri, 21 Jul 2023 10:51:35 +0000 (10:51 +0000)] 
Minor internal cleanups in the opfs-sahpool VFS.

FossilOrigin-Name: 74ad31e2908af8225b7aa527dbcd1877423d58163e365317a78453b31e322ea3

2 years agoInternal cleanups in the async part of the JS library bootstrap phase.
stephan [Fri, 21 Jul 2023 09:10:42 +0000 (09:10 +0000)] 
Internal cleanups in the async part of the JS library bootstrap phase.

FossilOrigin-Name: b6d57ab63793241a500ea527c5b3216c54b3ff1972d3adbbf42a9a53bfec0aa1

2 years agoMinor internal cleanups in JS code.
stephan [Thu, 20 Jul 2023 23:25:32 +0000 (23:25 +0000)] 
Minor internal cleanups in JS code.

FossilOrigin-Name: 21a2ca9fc46bf746874579897872e2a45cb07f278abb670dd22b122f7d6a9a6c

2 years agoFilter the OPFS VFSes out of the sqlite3-node.mjs build. Add another level of subdire...
stephan [Thu, 20 Jul 2023 09:06:42 +0000 (09:06 +0000)] 
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.

FossilOrigin-Name: 080a4d0aba30d8f3802b49be4a113205f069b3bdea8cebf525d654055642ff62

2 years agoPerformance enhancements to the JSON parser and code generator.
drh [Wed, 19 Jul 2023 23:02:45 +0000 (23:02 +0000)] 
Performance enhancements to the JSON parser and code generator.

FossilOrigin-Name: 0a745897d66e9f36ea6e787fad54f0c413d52c226dc96fad36ccd33a0aa1930e

2 years agoRevise the new JSON parser performance test to make the test run 25 times
drh [Wed, 19 Jul 2023 20:23:34 +0000 (20:23 +0000)] 
Revise the new JSON parser performance test to make the test run 25 times
longer, and thus provide a more repeatable number.

FossilOrigin-Name: bee9e403ae47103938aabb9a7a7e120dfa741b464875965e58788a51fa56a8fe

2 years agoDescribe JSON parser performance testing procedure in test/json/README.md
drh [Wed, 19 Jul 2023 19:23:30 +0000 (19:23 +0000)] 
Describe JSON parser performance testing procedure in test/json/README.md

FossilOrigin-Name: c47056e158073ee746c233dd2729cf224ea9e38821b15aa71ebf97607e602281

2 years agoMore internal refactoring and docs for opfs-sahpool.
stephan [Wed, 19 Jul 2023 17:47:02 +0000 (17:47 +0000)] 
More internal refactoring and docs for opfs-sahpool.

FossilOrigin-Name: 64ccf6177a019eab46fb3345ad1e8ba80eaf2c9da55767031f9f04ccd16afb4d

2 years agoUpdate the development-over-ssh docs for the wasm build.
stephan [Wed, 19 Jul 2023 17:46:28 +0000 (17:46 +0000)] 
Update the development-over-ssh docs for the wasm build.

FossilOrigin-Name: 500109bd0a4c134b91c37f397ff1ee828e09c17f7ecd153f975ede748caee7bb

2 years agoFurther improvement to JSON parser performance.
drh [Wed, 19 Jul 2023 17:24:36 +0000 (17:24 +0000)] 
Further improvement to JSON parser performance.

FossilOrigin-Name: 144c8ccf6e5bb2527dd98742f0d67e0a16c627e7c67f754ce8ed4c4fb5b8d8b6

2 years agoFurther performance enhancements to JSON parsing and rendering. Total
drh [Wed, 19 Jul 2023 15:06:29 +0000 (15:06 +0000)] 
Further performance enhancements to JSON parsing and rendering.  Total
performance gain for large JSONs so far on this branch is about 11%.

FossilOrigin-Name: adb4d6b007cbe9d7c9670f5fc196443ebe0f3a89df1f3290ba6247fcf83fe5bd

2 years agoPerformance optimization for parsing large JSONs that contain lots of text.
drh [Wed, 19 Jul 2023 13:50:31 +0000 (13:50 +0000)] 
Performance optimization for parsing large JSONs that contain lots of text.

FossilOrigin-Name: c9fbe0185cd5d64950724b00cd0bfb3a7939a985040465a0f35f445acb6e94a6

2 years agoMajor restructuring of opfs-sahpool to improve maintainability and hopefully make...
stephan [Wed, 19 Jul 2023 13:31:29 +0000 (13:31 +0000)] 
Major restructuring of opfs-sahpool to improve maintainability and hopefully make it easier to reuse these pieces in the upcoming JSPI-based VFS experiment.

FossilOrigin-Name: 534481cd0c2e6f62dd0a82f25d4b78fdcc671eb70d6966693c98212a6420891c

2 years agoAppearance and legibility improvements for tester1.js.
stephan [Wed, 19 Jul 2023 11:33:52 +0000 (11:33 +0000)] 
Appearance and legibility improvements for tester1.js.

FossilOrigin-Name: 4fd3ed1b6405f690825c9993e56b199d4a7fb497cf9131815c803150b8b96528

2 years agoTwo minor improvements to sum(), one of which was inspired by
drh [Wed, 19 Jul 2023 09:52:10 +0000 (09:52 +0000)] 
Two minor improvements to sum(), one of which was inspired by
[forum:/forumpost/af5be98dbc|forum post af5be98dbc].

FossilOrigin-Name: a0d3e7571aded8d1e03908059d2d5aa5d62ec49bff099cb38f6f35df5e4b18b5

2 years agoInternal refactoring in opfs-sahpool. Move OPFS tests to the end of tester1.c-cpp.js.
stephan [Wed, 19 Jul 2023 08:18:25 +0000 (08:18 +0000)] 
Internal refactoring in opfs-sahpool. Move OPFS tests to the end of tester1.c-cpp.js.

FossilOrigin-Name: 6bd5a7413dd830ca41b587a2826fb599a2196fb0186646a2333500f950b3cf4d

2 years agoDo not use the [/info/609fbb94b8f01d67|viewscan optimization] on a query
drh [Tue, 18 Jul 2023 21:06:19 +0000 (21:06 +0000)] 
Do not use the [/info/609fbb94b8f01d67|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:/forumpost/64d36440e473516c|forum post 64d36440e473516c].

FossilOrigin-Name: 76152ad2ffe56034f2fd93d9a1ce9358e1677a7e9cd3dcd9f3a34a5c956a463e

2 years agoImproved ".wheretrace" for the VIEWSCAN optimization.
drh [Tue, 18 Jul 2023 20:41:09 +0000 (20:41 +0000)] 
Improved ".wheretrace" for the VIEWSCAN optimization.

FossilOrigin-Name: 27057ea76b5f72c73fb6f16094736685019643c665b49fd0bb8d60a812ce2338

2 years agoMore opfs-sahpool tests.
stephan [Tue, 18 Jul 2023 19:47:19 +0000 (19:47 +0000)] 
More opfs-sahpool tests.

FossilOrigin-Name: 60713fa9c4627ef17e0b8778eee37913d2b930c5a06414721a00af30e1395090

2 years agoFix a shadowed var in opfs-sahpool and add more tests.
stephan [Tue, 18 Jul 2023 19:27:11 +0000 (19:27 +0000)] 
Fix a shadowed var in opfs-sahpool and add more tests.

FossilOrigin-Name: 9c8a73aff0f291e0c18072372e0d8961d3a05910489598d0d342227d99871954

2 years agoFurther refactoring of opfs-sahpool and start integrating it into tester1.c-pp.js.
stephan [Tue, 18 Jul 2023 18:52:41 +0000 (18:52 +0000)] 
Further refactoring of opfs-sahpool and start integrating it into tester1.c-pp.js.

FossilOrigin-Name: 91c789234963b660ae900f0738906b28a477993709e286d8125b2f4d6101601c

2 years agoFix memory leak in fts5 introduced by [def41225].
dan [Tue, 18 Jul 2023 16:29:34 +0000 (16:29 +0000)] 
Fix memory leak in fts5 introduced by [def41225].

FossilOrigin-Name: 4dcad2db743fdb9ef72871ca5a4d1384f76cb697161b0f5110e2670a83a18e8a

2 years agoMajor restructuring of the opfs-sahpool bits to better support multiple instances...
stephan [Tue, 18 Jul 2023 16:24:51 +0000 (16:24 +0000)] 
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.

FossilOrigin-Name: 95e5fa498f71708caeb3394636c4853530a8b2d54406e503f32750732d6815d5

2 years agoFix a buffer overrun in fts5 that could occur in 'secure-delete' mode when dealing...
dan [Tue, 18 Jul 2023 13:55:19 +0000 (13:55 +0000)] 
Fix a buffer overrun in fts5 that could occur in 'secure-delete' mode when dealing with corrupt database records.

FossilOrigin-Name: def41225b2f10b0294ab506f28bc87873688d4030f7056839298ff18e058ece5

2 years agoRefactor opfs-sahpool to support multiple instances, each with a separate VFS name...
stephan [Tue, 18 Jul 2023 12:09:16 +0000 (12:09 +0000)] 
Refactor opfs-sahpool to support multiple instances, each with a separate VFS name and directory.

FossilOrigin-Name: d036eaf6ac60c576428db40f015733c5d5425f7d613194fd8d9d4d98659077c4

2 years agoAnother -DSQLITE_TEMP_STORE=3 to 2 change for the wasm build.
stephan [Mon, 17 Jul 2023 07:43:04 +0000 (07:43 +0000)] 
Another -DSQLITE_TEMP_STORE=3 to 2 change for the wasm build.

FossilOrigin-Name: 5ad8f9987c11b5db67edd69a3471ff388140d6268d5d3f5a05dec6bb6d92ac05

2 years agosahpool vfs: rename defaultCapacity to initialCapacity, per feedback.
stephan [Mon, 17 Jul 2023 07:14:12 +0000 (07:14 +0000)] 
sahpool vfs: rename defaultCapacity to initialCapacity, per feedback.

FossilOrigin-Name: 2c9c95d087c7db2a975ffae15af5ade621411c493145b889f0c9157a55c4952a

2 years agoChange wasm build's -DSQLITE_TEMP_STORE=3 to -DSQLITE_TEMP_STORE=2, primarily so...
stephan [Mon, 17 Jul 2023 07:13:44 +0000 (07:13 +0000)] 
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.

FossilOrigin-Name: 764430e804332b8f7b2f63a3c0c8acf8f6cc92534858d89de2d310938c1c0d27

2 years agoRemove an extraneous JS script import.
stephan [Sun, 16 Jul 2023 21:07:01 +0000 (21:07 +0000)] 
Remove an extraneous JS script import.

FossilOrigin-Name: 5a205b25912f3feea594a2161a4b8f3955bd29163b39cb0e621b3abdb81fc24d

2 years agoAdd sqlite3-vfs-opfs-sahpool.js to ext/wasm/api/README.md.
stephan [Sun, 16 Jul 2023 20:42:19 +0000 (20:42 +0000)] 
Add sqlite3-vfs-opfs-sahpool.js to ext/wasm/api/README.md.

FossilOrigin-Name: 58d05201042804c682a417495f13ab47a535e353da6cc307f9d726a289e71ca2

2 years agoMinor doc tweaks.
stephan [Sun, 16 Jul 2023 20:20:03 +0000 (20:20 +0000)] 
Minor doc tweaks.

FossilOrigin-Name: 0cb0d7a9e73e48406f146ebebf211311fd0a0b14b285f0af9e2b645c3d2f172a

2 years agoCorrect a missing assignment. Minor doc additions.
stephan [Sun, 16 Jul 2023 19:29:50 +0000 (19:29 +0000)] 
Correct a missing assignment. Minor doc additions.

FossilOrigin-Name: 1c4957d0ef23ff14d4f7bfb33a809dd92712ee9faf77b6052f823eb55de15cf6

2 years agoDoc tweaks only, no code changes.
stephan [Sun, 16 Jul 2023 19:20:45 +0000 (19:20 +0000)] 
Doc tweaks only, no code changes.

FossilOrigin-Name: 044c28dffd45f7c4484686995edd4a1b92151450743968e7d0f662b5c850aa6b

2 years agoAdd a way to remove the opfs-sahpool's persistent state from OPFS or unlink() an...
stephan [Sun, 16 Jul 2023 17:51:43 +0000 (17:51 +0000)] 
Add a way to remove the opfs-sahpool's persistent state from OPFS or unlink() an individual file. Doc cleanups.

FossilOrigin-Name: 80982daac3c098033dbc249bb7a17ef84ae218d2d789f8644e7f4af18b553d24

2 years agoMove SAH pool configuration options from the library-level config to a config passed...
stephan [Sun, 16 Jul 2023 16:52:09 +0000 (16:52 +0000)] 
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.

FossilOrigin-Name: d2ed99556fa1f40994c1c6bd90d1d5733bebc824b1ebfabe978fae9e18948437

2 years agospeedtest1.js: only install opfs-sahpool if it's provided via --vfs flag, to avoid...
stephan [Sun, 16 Jul 2023 14:07:59 +0000 (14:07 +0000)] 
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().

FossilOrigin-Name: aa94c8abfbdfc4c7b36554c4b3ea90a5065e7e3f4294c64c8cbf688b4688300d

2 years agoDuring "opfs" VFS init, check for URL param opfs-disable and, if set, do not install...
stephan [Sun, 16 Jul 2023 12:02:37 +0000 (12:02 +0000)] 
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.

FossilOrigin-Name: 29905b7a75b73e32125bf9116033cae7235a135b668a3b783a3d8dcb0bc80374

2 years agoMicro-optimizations in opfs-sahpool.
stephan [Sun, 16 Jul 2023 11:49:18 +0000 (11:49 +0000)] 
Micro-optimizations in opfs-sahpool.

FossilOrigin-Name: 52f23db948ae9694df69c00177b85cb569e9b211350a4a2dbf249e7cd8de700c

2 years agoRedefine what the opfs-sahpool installation promise resolves to. Fix addCapacity...
stephan [Sun, 16 Jul 2023 10:02:41 +0000 (10:02 +0000)] 
Redefine what the opfs-sahpool installation promise resolves to. Fix addCapacity(). Add utility methods to import/export files.

FossilOrigin-Name: 809c6f4de3653ad7a7751af45a7a0d6cb20c3ee3be80c69833c729242227d970

2 years agoMinor cleanups in the opfs-sahpool VFS.
stephan [Sat, 15 Jul 2023 21:08:48 +0000 (21:08 +0000)] 
Minor cleanups in the opfs-sahpool VFS.

FossilOrigin-Name: 279e09070918dab7b60c39179ebb7eb931ca6bd4e589b414f436740499a2f910

2 years agoCorrect opfs-sahpool VFS after the pebkac involving the previous speedtest1 runs...
stephan [Sat, 15 Jul 2023 19:08:58 +0000 (19:08 +0000)] 
Correct opfs-sahpool VFS after the pebkac involving the previous speedtest1 runs. Make that VFS explicitly opt-in to avoid certain unfortunate locking situations.

FossilOrigin-Name: 41bf1fe31f2f3d0daa2bac25dc57262a4b90f22fed6fa97e4e92467c32ae02dc

2 years agospeedtest1 JS: only add --memdb flag by default if no --vfs is provided.
stephan [Sat, 15 Jul 2023 16:30:46 +0000 (16:30 +0000)] 
speedtest1 JS: only add --memdb flag by default if no --vfs is provided.

FossilOrigin-Name: 676ffe6280c1ce787b04d0cdb4a0664229c6125c601af4b18d1bfa125aac3675

2 years agoRename opfs-sahpool removeCapacity() to reduceCapacity().
stephan [Sat, 15 Jul 2023 11:37:34 +0000 (11:37 +0000)] 
Rename opfs-sahpool removeCapacity() to reduceCapacity().

FossilOrigin-Name: fff68e9f25a57045e9d636b02ffa073cf1b984b2587d4fce10f6e35c9988469c

2 years agoopfs-sahpool VFS now seems to work, in that it runs fine (and blazingly fast) in...
stephan [Sat, 15 Jul 2023 11:23:57 +0000 (11:23 +0000)] 
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.

FossilOrigin-Name: 5d92d5f4d8ac4cfa37ba473e5cc861628b783bbf1ae4d138bcae8b9d6cc6e798

2 years agoMore work on porting the sahpool bits. Revert to random backing-store names because...
stephan [Sat, 15 Jul 2023 01:02:38 +0000 (01:02 +0000)] 
More work on porting the sahpool bits. Revert to random backing-store names because it works better with the capacity-reduction algorithm.

FossilOrigin-Name: b4e005fd38b06b8d2f2317b955b93807e80a6a18db5f06d7747978d3bfa11411

2 years agoSwitch opfs-sahpool to use deterministic backing-store file names. Delay VFS registra...
stephan [Fri, 14 Jul 2023 23:02:58 +0000 (23:02 +0000)] 
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).

FossilOrigin-Name: 7c6697ededee9a64962ac6fd78934c6d6e39258b9558a03c1a6c02bf3be1759e

2 years agoIntegrate the opfs-sahpool VFS into the JS build and get it loading (but it's still...
stephan [Fri, 14 Jul 2023 21:48:45 +0000 (21:48 +0000)] 
Integrate the opfs-sahpool VFS into the JS build and get it loading (but it's still far from functional).

FossilOrigin-Name: ef96e6b586825a2b3ed011174309cba8ce1031876c86dc59ed87ab9bbc64f57f

2 years agoInitial sketches for an alternate OPFS VFS which uses a pool of pre-opened SyncAccess...
stephan [Fri, 14 Jul 2023 21:17:29 +0000 (21:17 +0000)] 
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.

FossilOrigin-Name: a93de9f2a553a3a4edd1b361dd6f465a1b0b5b51f7bb8ede432067aedcfefda4

2 years agoMinor internal cleanups in the OPFS VFS.
stephan [Fri, 14 Jul 2023 21:06:00 +0000 (21:06 +0000)] 
Minor internal cleanups in the OPFS VFS.

FossilOrigin-Name: 984d491eb3fe06f714bf07d6873321f3992a072812b46508e599bfefd39dff3e

2 years agoMinor wasm build cleanups.
stephan [Fri, 14 Jul 2023 12:21:05 +0000 (12:21 +0000)] 
Minor wasm build cleanups.

FossilOrigin-Name: 816b503f093c4e6d92d0eb2f9fbd841acd01cc9bc89ee58d961b56c64f71406a

2 years agoReintroduce WASMFS+OPFS support, albeit as a separate (less portable) WASM build.
stephan [Thu, 13 Jul 2023 18:35:48 +0000 (18:35 +0000)] 
Reintroduce WASMFS+OPFS support, albeit as a separate (less portable) WASM build.

FossilOrigin-Name: 7e4c594e9591101f6b727212c99f561498444e86d3d059e5864a717c614f903a

2 years agoMinor cleanups related to reintroducing wasmfs support. wasmfs-2023
stephan [Thu, 13 Jul 2023 18:13:52 +0000 (18:13 +0000)] 
Minor cleanups related to reintroducing wasmfs support.

FossilOrigin-Name: 6918a927b5ecd1df5916b70d52d8d5ce289869c3f323e577b7dfc7c939084400

2 years agoMore work on the wasmfs build and its test apps.
stephan [Thu, 13 Jul 2023 17:27:05 +0000 (17:27 +0000)] 
More work on the wasmfs build and its test apps.

FossilOrigin-Name: 953b8557194e9451dcf9f3bb433eafb67961487325e6519e675e73fecf850bfb

2 years agoGet speedtest1 wasmfs variant running again.
stephan [Thu, 13 Jul 2023 16:33:45 +0000 (16:33 +0000)] 
Get speedtest1 wasmfs variant running again.

FossilOrigin-Name: 0f77e031daf0121f7603409cedf57f138edbb43083cbbcf00d2a423e16de25a7

2 years agoFix an off-by-one error in tests for cells overflowing the end pages. The
drh [Thu, 13 Jul 2023 14:49:39 +0000 (14:49 +0000)] 
Fix an off-by-one error in tests for cells overflowing the end pages.  The
error is completely harmless for the default page cache, but might cause
problems for application-defined page caches that pack pages tightly
together.

FossilOrigin-Name: ce6793e954f291b6f5c29175baf730ce217328de1f0601b8935daac62af5f448

2 years agoSignificant surgery on the wasm build on the way to incorporating wasmfs as a first...
stephan [Thu, 13 Jul 2023 14:08:30 +0000 (14:08 +0000)] 
Significant surgery on the wasm build on the way to incorporating wasmfs as a first-class build option.

FossilOrigin-Name: 215c37fce38cf647e073480689b79d952af7eb8165ae08c7f5caed27003fecfc

2 years agoMore work on the wasmfs build. Resolve the inconsistent argument type passed to sqlit...
stephan [Thu, 13 Jul 2023 10:41:41 +0000 (10:41 +0000)] 
More work on the wasmfs build. Resolve the inconsistent argument type passed to sqlite3InitModule() in such builds.

FossilOrigin-Name: 4850a9e2d2b41b91e91b9ef99a6d26ddf11a161b4c970fc00d2d095606729a04

2 years agoMinor cleanups in the wasmfs build.
stephan [Thu, 13 Jul 2023 04:54:18 +0000 (04:54 +0000)] 
Minor cleanups in the wasmfs build.

FossilOrigin-Name: f64477f21040c265061ad9b7f601e74159fd6141e7e4b122c80bf244ab6ddb76

2 years agoGet wasmfs build and its bare-bones test app working again, albeit currently in ES6...
stephan [Thu, 13 Jul 2023 04:26:13 +0000 (04:26 +0000)] 
Get wasmfs build and its bare-bones test app working again, albeit currently in ES6 mode only.

FossilOrigin-Name: 647761ed422f196f94facc88bbddd7219a2c1a6301a5f847b0a32d3e405233a7

2 years agoReplace 'self' with 'globalThis' in some JS test code. 12/head
stephan [Thu, 13 Jul 2023 03:46:43 +0000 (03:46 +0000)] 
Replace 'self' with 'globalThis' in some JS test code.

FossilOrigin-Name: 53eeffc9b1ea8c3ee7d7cdcc220997ed893403e45b35d8ea10805ea3b0435587

2 years agoJS: change the default OPFS VFS journal mode from PERSIST to DELETE, as DELETE is...
stephan [Thu, 13 Jul 2023 01:51:16 +0000 (01:51 +0000)] 
JS: change the default OPFS VFS journal mode from PERSIST to DELETE, as DELETE is faster in current browsers.

FossilOrigin-Name: a061a43e36b8f3cb7c465fd2e54cfcd9dceb07e232ee78602bbdd1818acd05ea

2 years agoRemove obsolete ext/wasm/api/sqlite3-wasi.h.
stephan [Thu, 13 Jul 2023 01:48:53 +0000 (01:48 +0000)] 
Remove obsolete ext/wasm/api/sqlite3-wasi.h.

FossilOrigin-Name: f661a6e0c1ac081ee402e64590eabd427440db1b717be9166bdfc025d0b0d899

2 years agoInternal JS doc fix.
stephan [Wed, 12 Jul 2023 09:30:13 +0000 (09:30 +0000)] 
Internal JS doc fix.

FossilOrigin-Name: 7c5ea02205a360a11fa9043be12c678eb7fe6f6a0b63b09a3dc976beae881e3f

2 years agoCorrect handling of the speedtest1 --without-rowid flag in the HTML front-end to...
stephan [Wed, 12 Jul 2023 09:16:18 +0000 (09:16 +0000)] 
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.

FossilOrigin-Name: 2daba2cdd3890c87899ff3eb0c1706c814f0ae62e72822eef3b0d4a885679a6b

2 years agoReduce divergence between branches: trunk and wal-shm-exceptions.
drh [Tue, 11 Jul 2023 19:54:17 +0000 (19:54 +0000)] 
Reduce divergence between branches: trunk and wal-shm-exceptions.

FossilOrigin-Name: d38ed6b1fc6b572997d520c36f256c11404fb1bd5f28acab07466bfc96554a8f

2 years agoAlways use the "LL" suffix on 64-bit integer literals.
drh [Sat, 8 Jul 2023 17:42:24 +0000 (17:42 +0000)] 
Always use the "LL" suffix on 64-bit integer literals.

FossilOrigin-Name: 07d95ed60f0a17ea13b4bc19c2ab2ec9052fedd27c9e1e57a1ec6e3a6470e5b7

2 years agoFix harmless scan-build warnings.
drh [Sat, 8 Jul 2023 14:27:55 +0000 (14:27 +0000)] 
Fix harmless scan-build warnings.

FossilOrigin-Name: beab3c98639be531744e60440223bb9ee76bc15234aff05e5efb273c8241dfd8

2 years agoOmit the use of memmove() in sqlite3FpDecode() in an attempt to avoid
drh [Fri, 7 Jul 2023 18:49:08 +0000 (18:49 +0000)] 
Omit the use of memmove() in sqlite3FpDecode() in an attempt to avoid
spurious warnings from valgrind.  Also makes the code slightly smaller and
faster.

FossilOrigin-Name: b409943af00e35ad05906d0a80ffa1225a66f3d807c131e00cfbf6671a03a981

2 years agoFor the "Valgrind" test scenario, set LONGDOUBLE_TYPE=double as valgrind
drh [Fri, 7 Jul 2023 12:18:26 +0000 (12:18 +0000)] 
For the "Valgrind" test scenario, set LONGDOUBLE_TYPE=double as valgrind
does not correctly emulated extended precision on x64.

FossilOrigin-Name: d3532eaed1cc671d8149b1bd34ead2a88fb83502a2898a5f60aea0a7daf18958

2 years agoAdd option 2 to SQLITE_TESTCTRL_USELONGDOUBLE to move the setting to its
drh [Fri, 7 Jul 2023 12:08:22 +0000 (12:08 +0000)] 
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).

FossilOrigin-Name: 64e6bd1c25d8e1dbfe511cba1921ff052c0fa4fe410fc9ce4435700a70cb88b1

2 years agoImproved handling of integer inputs to the new sum() implementation.
drh [Thu, 6 Jul 2023 20:34:06 +0000 (20:34 +0000)] 
Improved handling of integer inputs to the new sum() implementation.

FossilOrigin-Name: 31561c63bde6af2210296810fd66232b935033b4d26273a6b8a52142c54b4e12

2 years agoA more precise implementation of sqlite3RealToI64().
drh [Thu, 6 Jul 2023 18:29:15 +0000 (18:29 +0000)] 
A more precise implementation of sqlite3RealToI64().

FossilOrigin-Name: 8813317cb52990d90bd48de163b6e35ddcad2b6f3187aa28b28e2e088b4489ce

2 years agoFix octet_length() test cases so that they work when the database encoding
drh [Thu, 6 Jul 2023 17:14:47 +0000 (17:14 +0000)] 
Fix octet_length() test cases so that they work when the database encoding
is utf16.

FossilOrigin-Name: ad2e39626e6115fd322ef9495ae3bcd91343d7131a725f1bf24211a51a21dcc2

2 years agoUse the Kahan-Babushka-Neumaier algorithm to improve the accuracy of sum().
drh [Thu, 6 Jul 2023 15:44:38 +0000 (15:44 +0000)] 
Use the Kahan-Babushka-Neumaier algorithm to improve the accuracy of sum().

FossilOrigin-Name: c63e26e705f5e967e14ef6aea8ce226548293ad8d25066069f29fa89673913d2

2 years agoFix minor inaccuracies in the new sum() algorithm. kahan-babuska-neumaier-summation
drh [Thu, 6 Jul 2023 14:45:53 +0000 (14:45 +0000)] 
Fix minor inaccuracies in the new sum() algorithm.

FossilOrigin-Name: e3f7a960c9bd8e84cd70f0585bb955d043604a92001d0e2bf6c1216bb1fd7221

2 years agoExperimental attempt to boost the accuracy of sum() using the
drh [Thu, 6 Jul 2023 13:19:10 +0000 (13:19 +0000)] 
Experimental attempt to boost the accuracy of sum() using the
Kahan-Babuska-Neumaier algorithm.

FossilOrigin-Name: ebc5edd3b10c1102b07b9fb0d6837266b81e55504ef883b9b8a7ad5e8ab29dd2

2 years agoUse "volatile" isntead of "#pragma" to get floating point calculations
drh [Thu, 6 Jul 2023 00:55:06 +0000 (00:55 +0000)] 
Use "volatile" isntead of "#pragma" to get floating point calculations
working correctly when compiling with GCC for x86 machines.

FossilOrigin-Name: 9427f42687ed6d97c474bf42d0c3e82d6f4b0075e74206adcb5699d72e32140e

2 years agoThis is alternative work-around for the x86 float-point problem that uses fix-dekker-with-volatile
drh [Wed, 5 Jul 2023 22:05:18 +0000 (22:05 +0000)] 
This is alternative work-around for the x86 float-point problem that uses
"volatile" rather than compile-specific #pragmas.

FossilOrigin-Name: 1d972a690fdc70ab40862bd38427d68b48e8802ddf8e5c301f2d58ce2178b6ec

2 years agoImproved comments on the work-around to the GCC x86 floating point wonkiness.
drh [Wed, 5 Jul 2023 19:56:14 +0000 (19:56 +0000)] 
Improved comments on the work-around to the GCC x86 floating point wonkiness.

FossilOrigin-Name: 7b4c16731e7bf6f03f5adf4fcb2008c0b19be473fb1b90b405c217c08916586a

2 years agoWork around for an apparent GCC bug. See
drh [Wed, 5 Jul 2023 18:59:52 +0000 (18:59 +0000)] 
Work around for an apparent GCC bug.  See
[forum:/info/ee7278611394034c|forum post ee7278611394034c] for details.

FossilOrigin-Name: 5d9e9364808793d65925d4efbfde0f4246df258758f15e8ce1105070d1018fe6

2 years agoMake the order of operations explicit for the error term of Dekker
drh [Wed, 5 Jul 2023 15:34:30 +0000 (15:34 +0000)] 
Make the order of operations explicit for the error term of Dekker
double-precision multiply.

FossilOrigin-Name: 28f57b34e6b11184a36e363a985e7531bddd7be48a5e039a670e5acf748eedda

2 years agoSimplification of the dekkerMul2() subroutine.
drh [Wed, 5 Jul 2023 14:42:50 +0000 (14:42 +0000)] 
Simplification of the dekkerMul2() subroutine.

FossilOrigin-Name: bfe6432a46fd41bfadf4516a73b4e2523d9b453c3e4486fe6df7e1d25275dfb3

2 years agoAdd the ieee754_inc(r,N) function to the ieee754.c extension.
drh [Wed, 5 Jul 2023 12:00:32 +0000 (12:00 +0000)] 
Add the ieee754_inc(r,N) function to the ieee754.c extension.

FossilOrigin-Name: 9a36f269451d8832f68e223ac3995493704364e7fd0cc772989c96e863a08d29

2 years agoEnhance the sqlite3AtoF() function so that it can operate with or without
drh [Mon, 3 Jul 2023 18:32:29 +0000 (18:32 +0000)] 
Enhance the sqlite3AtoF() function so that it can operate with or without
long double and provides accurate results in both cases.

FossilOrigin-Name: fd987508d5589d42b46625c97cfb2feeac70fdb1cb11224610554b07a60644e6

2 years agoEnhance sqlite3AtoF() so that it honors the USELONGDOUBLE test-control. fp-to-decimal-refactor
drh [Mon, 3 Jul 2023 18:18:35 +0000 (18:18 +0000)] 
Enhance sqlite3AtoF() so that it honors the USELONGDOUBLE test-control.
Enable the test/atof1.test module on non-intel platforms.

FossilOrigin-Name: b7850fd480535980d66f107c2746e7f7fc0a5379ec8244d84f7785533c83f276

2 years agoStore the fp-speed-1.c test program used to measure relative performance of
drh [Mon, 3 Jul 2023 15:30:50 +0000 (15:30 +0000)] 
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.

FossilOrigin-Name: eaff376277edceb043e9aac9d2df3e1157f576605508733be8a0a0aa4d720e1d

2 years agoAdd the --nolongdouble option to speedtest1.c.
drh [Mon, 3 Jul 2023 15:11:28 +0000 (15:11 +0000)] 
Add the --nolongdouble option to speedtest1.c.

FossilOrigin-Name: 6bf6018a00d61c5f0e53b37b00befaf5ad1d85323f41cf0cea25d8c6c1017096

2 years agoImproved precision of binary-to-decimal conversion of floating-point values
drh [Mon, 3 Jul 2023 15:03:59 +0000 (15:03 +0000)] 
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.

FossilOrigin-Name: 32befb224b254639e756fd493f300507ff60c5222e00a7338dbcd39140133964

2 years agoWhether or not to use the long-double floating point conversion technique
drh [Mon, 3 Jul 2023 14:56:49 +0000 (14:56 +0000)] 
Whether or not to use the long-double floating point conversion technique
is now a test-control setting.

FossilOrigin-Name: 02ae6caff1f7925c696ad263fe78b1036364d24b6373e1baec10d53aafb14a12

2 years agoNew test cases for floating-point conversions.
drh [Mon, 3 Jul 2023 12:58:18 +0000 (12:58 +0000)] 
New test cases for floating-point conversions.

FossilOrigin-Name: 9435ed76cd9bb1be02768b3853a2323834f67bda75d3e3f76f6aa7bd0bade3d7