mirror of
https://github.com/sqlite/sqlite.git
synced 2025-06-13 15:41:37 +03:00
Minor cleanups related to reintroducing wasmfs support.
FossilOrigin-Name: 6918a927b5ecd1df5916b70d52d8d5ce289869c3f323e577b7dfc7c939084400
This commit is contained in:
@ -1172,24 +1172,26 @@ globalThis.sqlite3ApiBootstrap = function sqlite3ApiBootstrap(
|
|||||||
/** State for sqlite3_wasmfs_opfs_dir(). */
|
/** State for sqlite3_wasmfs_opfs_dir(). */
|
||||||
let __wasmfsOpfsDir = undefined;
|
let __wasmfsOpfsDir = undefined;
|
||||||
/**
|
/**
|
||||||
2022-12-17: incompatible WASMFS changes have made WASMFS+OPFS
|
|
||||||
unavailable from the main thread, which eliminates the most
|
|
||||||
significant benefit of supporting WASMFS. This function is now a
|
|
||||||
no-op which always returns a falsy value. Before that change,
|
|
||||||
this function behaved as documented below (and how it will again
|
|
||||||
if we can find a compelling reason to support it).
|
|
||||||
|
|
||||||
If the wasm environment has a WASMFS/OPFS-backed persistent
|
If the wasm environment has a WASMFS/OPFS-backed persistent
|
||||||
storage directory, its path is returned by this function. If it
|
storage directory, its path is returned by this function. If it
|
||||||
does not then it returns "" (noting that "" is a falsy value).
|
does not then it returns "" (noting that "" is a falsy value).
|
||||||
|
|
||||||
The first time this is called, this function inspects the current
|
The first time this is called, this function inspects the current
|
||||||
environment to determine whether persistence support is available
|
environment to determine whether persistence support is available
|
||||||
and, if it is, enables it (if needed).
|
and, if it is, enables it (if needed). After the first call it
|
||||||
|
always returns the cached result.
|
||||||
|
|
||||||
This function currently only recognizes the WASMFS/OPFS storage
|
If the returned string is not empty, any files stored under the
|
||||||
combination and its path refers to storage rooted in the
|
given path (recursively) are housed in OPFS storage. If the
|
||||||
Emscripten-managed virtual filesystem.
|
returned string is empty, this particular persistent storage
|
||||||
|
option is not available on the client.
|
||||||
|
|
||||||
|
Though the mount point name returned by this function is intended
|
||||||
|
to remain stable, clients should not hard-coded it anywhere. Always call this function to get the path.
|
||||||
|
|
||||||
|
Note that this function is a no-op in must builds of this
|
||||||
|
library, as the WASMFS capability requires a custom
|
||||||
|
build.
|
||||||
*/
|
*/
|
||||||
capi.sqlite3_wasmfs_opfs_dir = function(){
|
capi.sqlite3_wasmfs_opfs_dir = function(){
|
||||||
if(undefined !== __wasmfsOpfsDir) return __wasmfsOpfsDir;
|
if(undefined !== __wasmfsOpfsDir) return __wasmfsOpfsDir;
|
||||||
@ -1216,8 +1218,6 @@ globalThis.sqlite3ApiBootstrap = function sqlite3ApiBootstrap(
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Experimental and subject to change or removal.
|
|
||||||
|
|
||||||
Returns true if sqlite3.capi.sqlite3_wasmfs_opfs_dir() is a
|
Returns true if sqlite3.capi.sqlite3_wasmfs_opfs_dir() is a
|
||||||
non-empty string and the given name starts with (that string +
|
non-empty string and the given name starts with (that string +
|
||||||
'/'), else returns false.
|
'/'), else returns false.
|
||||||
@ -1227,13 +1227,6 @@ globalThis.sqlite3ApiBootstrap = function sqlite3ApiBootstrap(
|
|||||||
return (p && name) ? name.startsWith(p+'/') : false;
|
return (p && name) ? name.startsWith(p+'/') : false;
|
||||||
};
|
};
|
||||||
|
|
||||||
// This bit is highly arguable and is incompatible with the fiddle shell.
|
|
||||||
if(false && 0===wasm.exports.sqlite3_vfs_find(0)){
|
|
||||||
/* Assume that sqlite3_initialize() has not yet been called.
|
|
||||||
This will be the case in an SQLITE_OS_KV build. */
|
|
||||||
wasm.exports.sqlite3_initialize();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Given an `sqlite3*`, an sqlite3_vfs name, and an optional db name
|
Given an `sqlite3*`, an sqlite3_vfs name, and an optional db name
|
||||||
(defaulting to "main"), returns a truthy value (see below) if
|
(defaulting to "main"), returns a truthy value (see below) if
|
||||||
|
@ -833,22 +833,19 @@ const installOpfsVfs = function callee(options){
|
|||||||
/* If it turns out that we need to adjust for timezone, see:
|
/* If it turns out that we need to adjust for timezone, see:
|
||||||
https://stackoverflow.com/a/11760121/1458521 */
|
https://stackoverflow.com/a/11760121/1458521 */
|
||||||
wasm.poke(pOut, 2440587.5 + (new Date().getTime()/86400000),
|
wasm.poke(pOut, 2440587.5 + (new Date().getTime()/86400000),
|
||||||
'double');
|
'double');
|
||||||
return 0;
|
return 0;
|
||||||
},
|
},
|
||||||
xCurrentTimeInt64: function(pVfs,pOut){
|
xCurrentTimeInt64: function(pVfs,pOut){
|
||||||
// TODO: confirm that this calculation is correct
|
|
||||||
wasm.poke(pOut, (2440587.5 * 86400000) + new Date().getTime(),
|
wasm.poke(pOut, (2440587.5 * 86400000) + new Date().getTime(),
|
||||||
'i64');
|
'i64');
|
||||||
return 0;
|
return 0;
|
||||||
},
|
},
|
||||||
xDelete: function(pVfs, zName, doSyncDir){
|
xDelete: function(pVfs, zName, doSyncDir){
|
||||||
mTimeStart('xDelete');
|
mTimeStart('xDelete');
|
||||||
opRun('xDelete', wasm.cstrToJs(zName), doSyncDir, false);
|
const rc = opRun('xDelete', wasm.cstrToJs(zName), doSyncDir, false);
|
||||||
/* We're ignoring errors because we cannot yet differentiate
|
|
||||||
between harmless and non-harmless failures. */
|
|
||||||
mTimeEnd();
|
mTimeEnd();
|
||||||
return 0;
|
return rc;
|
||||||
},
|
},
|
||||||
xFullPathname: function(pVfs,zName,nOut,pOut){
|
xFullPathname: function(pVfs,zName,nOut,pOut){
|
||||||
/* Until/unless we have some notion of "current dir"
|
/* Until/unless we have some notion of "current dir"
|
||||||
|
18
manifest
18
manifest
@ -1,5 +1,5 @@
|
|||||||
C More\swork\son\sthe\swasmfs\sbuild\sand\sits\stest\sapps.
|
C Minor\scleanups\srelated\sto\sreintroducing\swasmfs\ssupport.
|
||||||
D 2023-07-13T17:27:05.753
|
D 2023-07-13T18:13:52.732
|
||||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||||
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
||||||
@ -497,12 +497,12 @@ F ext/wasm/api/pre-js.c-pp.js ad906703f7429590f2fbf5e6498513bf727a1a4f0ebfa057af
|
|||||||
F ext/wasm/api/sqlite3-api-cleanup.js 23ceec5ef74a0e649b19694ca985fd89e335771e21f24f50df352a626a8c81bf
|
F ext/wasm/api/sqlite3-api-cleanup.js 23ceec5ef74a0e649b19694ca985fd89e335771e21f24f50df352a626a8c81bf
|
||||||
F ext/wasm/api/sqlite3-api-glue.js f1b2dcb944de5138bb5bd9a1559d2e76a4f3ec25260963d709e8237476688803
|
F ext/wasm/api/sqlite3-api-glue.js f1b2dcb944de5138bb5bd9a1559d2e76a4f3ec25260963d709e8237476688803
|
||||||
F ext/wasm/api/sqlite3-api-oo1.js 9678dc4d9a5d39632b6ffe6ea94a023119260815bf32f265bf5f6c36c9516db8
|
F ext/wasm/api/sqlite3-api-oo1.js 9678dc4d9a5d39632b6ffe6ea94a023119260815bf32f265bf5f6c36c9516db8
|
||||||
F ext/wasm/api/sqlite3-api-prologue.js b20856fb72a07a99de2bea24cf66dd8fc7dbf6514280884e0ff91e3d0859ed3b
|
F ext/wasm/api/sqlite3-api-prologue.js 7d1c1ef59b9dcc42ad3a9cec9da972c42e29316a270cd126e7f660509b09027b
|
||||||
F ext/wasm/api/sqlite3-api-worker1.js 9f32af64df1a031071912eea7a201557fe39b1738645c0134562bb84e88e2fec
|
F ext/wasm/api/sqlite3-api-worker1.js 9f32af64df1a031071912eea7a201557fe39b1738645c0134562bb84e88e2fec
|
||||||
F ext/wasm/api/sqlite3-license-version-header.js 0c807a421f0187e778dc1078f10d2994b915123c1223fe752b60afdcd1263f89
|
F ext/wasm/api/sqlite3-license-version-header.js 0c807a421f0187e778dc1078f10d2994b915123c1223fe752b60afdcd1263f89
|
||||||
F ext/wasm/api/sqlite3-opfs-async-proxy.js 961bbc3ccc1fa4e91d6519a96e8811ad7ae60173bd969fee7775dacb6eee1da2
|
F ext/wasm/api/sqlite3-opfs-async-proxy.js 961bbc3ccc1fa4e91d6519a96e8811ad7ae60173bd969fee7775dacb6eee1da2
|
||||||
F ext/wasm/api/sqlite3-v-helper.js e5c202a9ecde9ef818536d3f5faf26c03a1a9f5192b1ddea8bdabf30d75ef487
|
F ext/wasm/api/sqlite3-v-helper.js e5c202a9ecde9ef818536d3f5faf26c03a1a9f5192b1ddea8bdabf30d75ef487
|
||||||
F ext/wasm/api/sqlite3-vfs-opfs.c-pp.js f42feb4f492f770330e95400d0ff9b03b90978f6bcc7f3b34ec4cb70b57dc40e
|
F ext/wasm/api/sqlite3-vfs-opfs.c-pp.js 07101af79baca9024eb5aa2b51702b68c5123df25a7247651578d42b66f3a4c3
|
||||||
F ext/wasm/api/sqlite3-wasm.c 12a096d8e58a0af0589142bae5a3c27a0c7e19846755a1a37d2c206352fbedda
|
F ext/wasm/api/sqlite3-wasm.c 12a096d8e58a0af0589142bae5a3c27a0c7e19846755a1a37d2c206352fbedda
|
||||||
F ext/wasm/api/sqlite3-worker1-promiser.c-pp.js bc06df0d599e625bde6a10a394e326dc68da9ff07fa5404354580f81566e591f
|
F ext/wasm/api/sqlite3-worker1-promiser.c-pp.js bc06df0d599e625bde6a10a394e326dc68da9ff07fa5404354580f81566e591f
|
||||||
F ext/wasm/api/sqlite3-worker1.c-pp.js da509469755035e919c015deea41b4514b5e84c12a1332e6cc8d42cb2cc1fb75
|
F ext/wasm/api/sqlite3-worker1.c-pp.js da509469755035e919c015deea41b4514b5e84c12a1332e6cc8d42cb2cc1fb75
|
||||||
@ -534,8 +534,8 @@ F ext/wasm/index.html b768e8659b4fe311912e54d42906449d51c0f84b7f036cca47ec1f93bf
|
|||||||
F ext/wasm/jaccwabyt/jaccwabyt.js 1264710db3cfbcb6887d95665b7aeba60c1126eaef789ca4cf1a4a17d5bc7f54
|
F ext/wasm/jaccwabyt/jaccwabyt.js 1264710db3cfbcb6887d95665b7aeba60c1126eaef789ca4cf1a4a17d5bc7f54
|
||||||
F ext/wasm/jaccwabyt/jaccwabyt.md 37911f00db12cbcca73aa1ed72594430365f30aafae2fa9c886961de74e5e0eb
|
F ext/wasm/jaccwabyt/jaccwabyt.md 37911f00db12cbcca73aa1ed72594430365f30aafae2fa9c886961de74e5e0eb
|
||||||
F ext/wasm/module-symbols.html 841de62fc198988b8330e238c260e70ec93028b096e1a1234db31b187a899d10
|
F ext/wasm/module-symbols.html 841de62fc198988b8330e238c260e70ec93028b096e1a1234db31b187a899d10
|
||||||
F ext/wasm/scratchpad-wasmfs.html a3d7388f3c4b263676b58b526846e9d02dfcb4014ff29d3a5040935286af5b96 w ext/wasm/scratchpad-wasmfs-main.html
|
F ext/wasm/scratchpad-wasmfs.html a3d7388f3c4b263676b58b526846e9d02dfcb4014ff29d3a5040935286af5b96
|
||||||
F ext/wasm/scratchpad-wasmfs.mjs 66034b9256b218de59248aad796760a1584c1dd842231505895eff00dbd57c63 w ext/wasm/scratchpad-wasmfs-main.js
|
F ext/wasm/scratchpad-wasmfs.mjs 66034b9256b218de59248aad796760a1584c1dd842231505895eff00dbd57c63
|
||||||
F ext/wasm/speedtest1-wasmfs.html dc930dd767ee95cecbfa82fe89b173b51fee41a9ed4dbe7652fb9508a5041cd6
|
F ext/wasm/speedtest1-wasmfs.html dc930dd767ee95cecbfa82fe89b173b51fee41a9ed4dbe7652fb9508a5041cd6
|
||||||
F ext/wasm/speedtest1-wasmfs.mjs ac5cadbf4ffe69e9eaac8b45e8523f030521e02bb67d654c6eb5236d9c456cbe
|
F ext/wasm/speedtest1-wasmfs.mjs ac5cadbf4ffe69e9eaac8b45e8523f030521e02bb67d654c6eb5236d9c456cbe
|
||||||
F ext/wasm/speedtest1-worker.html 97c2bf5f8534091ce718de05801090d5a80c3f13575996f095ba23638e1bdca0
|
F ext/wasm/speedtest1-worker.html 97c2bf5f8534091ce718de05801090d5a80c3f13575996f095ba23638e1bdca0
|
||||||
@ -2043,8 +2043,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
|||||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||||
P 0f77e031daf0121f7603409cedf57f138edbb43083cbbcf00d2a423e16de25a7
|
P 953b8557194e9451dcf9f3bb433eafb67961487325e6519e675e73fecf850bfb
|
||||||
R 54c0b78e867c7b454fcac7e3ab24c1a6
|
R e700999789f18f991c3d17a908f4a853
|
||||||
U stephan
|
U stephan
|
||||||
Z ca283ae8d24ff869453a63347ea884df
|
Z 805b3da82b8639af9684880add6c1ac3
|
||||||
# Remove this line to create a well-formed Fossil manifest.
|
# Remove this line to create a well-formed Fossil manifest.
|
||||||
|
@ -1 +1 @@
|
|||||||
953b8557194e9451dcf9f3bb433eafb67961487325e6519e675e73fecf850bfb
|
6918a927b5ecd1df5916b70d52d8d5ce289869c3f323e577b7dfc7c939084400
|
Reference in New Issue
Block a user