aboutsummaryrefslogtreecommitdiff
path: root/ext/wasm/api/sqlite3-vfs-opfs.c-pp.js
diff options
context:
space:
mode:
authorstephan <stephan@noemail.net>2022-12-03 01:59:03 +0000
committerstephan <stephan@noemail.net>2022-12-03 01:59:03 +0000
commita37fed0f6289faa31dad019785092c6e2f92a08b (patch)
tree0d14a3def1b1e433d514d0f8682485aedeac00c9 /ext/wasm/api/sqlite3-vfs-opfs.c-pp.js
parentbb4e4a4840530da37c6fdaabc9769a1996f25809 (diff)
downloadsqlite-a37fed0f6289faa31dad019785092c6e2f92a08b.tar.gz
sqlite-a37fed0f6289faa31dad019785092c6e2f92a08b.zip
Rework the oo1.DB's distinct-per-VFS post-open() step to accept either a batch of SQL or a callback function. Increase OPFS's busy timeout to 10s.
FossilOrigin-Name: 9feefe253ac487cb52be6bdf91bdd305963266716baa08f2bf9505954ee76321
Diffstat (limited to 'ext/wasm/api/sqlite3-vfs-opfs.c-pp.js')
-rw-r--r--ext/wasm/api/sqlite3-vfs-opfs.c-pp.js39
1 files changed, 21 insertions, 18 deletions
diff --git a/ext/wasm/api/sqlite3-vfs-opfs.c-pp.js b/ext/wasm/api/sqlite3-vfs-opfs.c-pp.js
index 4dc145a61..f5a1eb6cc 100644
--- a/ext/wasm/api/sqlite3-vfs-opfs.c-pp.js
+++ b/ext/wasm/api/sqlite3-vfs-opfs.c-pp.js
@@ -1163,24 +1163,27 @@ const installOpfsVfs = function callee(options){
OpfsDb.prototype = Object.create(sqlite3.oo1.DB.prototype);
sqlite3.oo1.DB.dbCtorHelper.setVfsPostOpenSql(
opfsVfs.pointer,
- [
- /* Truncate journal mode is faster than delete for
- this vfs, per speedtest1. That gap seems to have closed with
- Chrome version 108 or 109, but "persist" is very roughly 5-6%
- faster than truncate in initial tests. */
- "pragma journal_mode=persist;",
- /* Set a default busy-timeout handler to help OPFS dbs
- deal with multi-tab/multi-worker contention. */
- "pragma busy_timeout=5000;",
- /*
- This vfs benefits hugely from cache on moderate/large
- speedtest1 --size 50 and --size 100 workloads. We currently
- rely on setting a non-default cache size when building
- sqlite3.wasm. If that policy changes, the cache can
- be set here.
- */
- //"pragma cache_size=-16384;"
- ].join("")
+ function(oo1Db, sqlite3){
+ /* Set a relatively high default busy-timeout handler to
+ help OPFS dbs deal with multi-tab/multi-worker
+ contention. */
+ sqlite3.capi.sqlite3_busy_timeout(oo1Db, 10000);
+ sqlite3.capi.sqlite3_exec(oo1Db, [
+ /* Truncate journal mode is faster than delete for
+ this vfs, per speedtest1. That gap seems to have closed with
+ Chrome version 108 or 109, but "persist" is very roughly 5-6%
+ faster than truncate in initial tests. */
+ "pragma journal_mode=persist;",
+ /*
+ This vfs benefits hugely from cache on moderate/large
+ speedtest1 --size 50 and --size 100 workloads. We
+ currently rely on setting a non-default cache size when
+ building sqlite3.wasm. If that policy changes, the cache
+ can be set here.
+ */
+ "pragma cache_size=-16384;"
+ ], 0, 0, 0);
+ }
);
}