In the shell WASM build, call open_db() early so that we can get access to the global db handle from certain experimentation-only function without having to first run some SQL code.
FossilOrigin-Name: 31706ef851f7d55e2fe865933ec03f42dfa8b49e6d1f12b6c016b5c1d3460504
This commit is contained in:
parent
056b72a988
commit
2eb454147a
@ -1522,6 +1522,9 @@ fiddle_html = $(fiddle_dir)/fiddle.html
|
||||
fiddle_generated = $(fiddle_html) \
|
||||
$(fiddle_dir)/fiddle.js \
|
||||
$(fiddle_dir)/fiddle.wasm
|
||||
# fiddle_dummy_exports = ,comma,list of func bound solely for
|
||||
# experimentation and testing purposes in the WASM build.
|
||||
fiddle_dummy_exports = ,_fiddle_experiment,_fiddle_the_db,_fiddle_db_arg
|
||||
clean-fiddle:
|
||||
rm -f $(fiddle_generated)
|
||||
clean: clean-fiddle
|
||||
@ -1529,11 +1532,11 @@ clean: clean-fiddle
|
||||
#emcc_opt = -O1
|
||||
#emcc_opt = -O2
|
||||
#emcc_opt = -O3
|
||||
# --js-library $(fiddle_dir)/_dummylib.js
|
||||
emcc_opt = -Oz
|
||||
emcc_flags = $(emcc_opt) $(SHELL_OPT) \
|
||||
-sEXPORTED_RUNTIME_METHODS=ccall,cwrap \
|
||||
-sEXPORTED_FUNCTIONS=_fiddle_exec \
|
||||
-sEXIT_RUNTIME=1 \
|
||||
-sEXPORTED_FUNCTIONS=_fiddle_exec$(fiddle_dummy_exports) \
|
||||
--pre-js $(fiddle_dir)/module-pre.js \
|
||||
--post-js $(fiddle_dir)/module-post.js \
|
||||
--shell-file $(fiddle_dir)/fiddle.in.html \
|
||||
|
14
manifest
14
manifest
@ -1,9 +1,9 @@
|
||||
C Added\sthe\sstandard\ssqlite\slicense\sheader\sto\sthe\sthe\sfiddle\sJS\sfiles.\sMinor\sinternal\srenamings\sin\sthose\ssame\sfiles.
|
||||
D 2022-05-20T13:50:04.114
|
||||
C In\sthe\sshell\sWASM\sbuild,\scall\sopen_db()\searly\sso\sthat\swe\scan\sget\saccess\sto\sthe\sglobal\sdb\shandle\sfrom\scertain\sexperimentation-only\sfunction\swithout\shaving\sto\sfirst\srun\ssome\sSQL\scode.
|
||||
D 2022-05-21T00:01:45.485
|
||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
||||
F Makefile.in 5dbc61c076215a580d59d1f21b5e62955d2e570321b63f00a31b188f1f5089a6
|
||||
F Makefile.in e3327ed68a4fd74f582db211b2762dda06d4a7f87220eaaaf97f63a200fdbefa
|
||||
F Makefile.linux-gcc f609543700659711fbd230eced1f01353117621dccae7b9fb70daa64236c5241
|
||||
F Makefile.msc b28a8a7a977e7312f6859f560348e1eb110c21bd6cf9fab0d16537c0a514eef3
|
||||
F README.md 8b8df9ca852aeac4864eb1e400002633ee6db84065bd01b78c33817f97d31f5e
|
||||
@ -559,7 +559,7 @@ F src/random.c 097dc8b31b8fba5a9aca1697aeb9fd82078ec91be734c16bffda620ced7ab83c
|
||||
F src/resolve.c a4eb3c617027fd049b07432f3b942ea7151fa793a332a11a7d0f58c9539e104f
|
||||
F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
|
||||
F src/select.c 74060a09f66c0c056f3c61627e22cb484af0bbfa29d7d14dcf17c684742c15de
|
||||
F src/shell.c.in 198aed4b4d225acdaf89c19b1c32b5e1a5c5956ef25c6de993ec6ac872369215
|
||||
F src/shell.c.in c2d899a884cb0304cfd12e3d37c8152be5c578f8bed0e3dae53f92130363ccfc
|
||||
F src/sqlite.h.in d15c307939039086adca159dd340a94b79b69827e74c6d661f343eeeaefba896
|
||||
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
|
||||
F src/sqlite3ext.h a988810c9b21c0dc36dc7a62735012339dc76fc7ab448fb0792721d30eacb69d
|
||||
@ -1959,8 +1959,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||
P 326f79ea54566a9302be99d920856f13b48f2c2ed265fa87d78ced367d4b1946
|
||||
R 76d9a4819c4f6ef4f9e021cade27fd08
|
||||
P 67e40d99ff84a6cb23c68bf0722a4f9dee29b8ad18d9e7aac7d1665e99901ba1
|
||||
R b8510496fc1cbfa1fe2f478924d15996
|
||||
U stephan
|
||||
Z 966630693783fc252ee07d3554d16c4c
|
||||
Z 60d40b9749dd39838277861d3f9c9ebd
|
||||
# Remove this line to create a well-formed Fossil manifest.
|
||||
|
@ -1 +1 @@
|
||||
67e40d99ff84a6cb23c68bf0722a4f9dee29b8ad18d9e7aac7d1665e99901ba1
|
||||
31706ef851f7d55e2fe865933ec03f42dfa8b49e6d1f12b6c016b5c1d3460504
|
@ -12563,6 +12563,38 @@ int SQLITE_CDECL wmain(int argc, wchar_t **wargv){
|
||||
|
||||
|
||||
#ifdef SQLITE_SHELL_WASM_MODE
|
||||
/* Only for emcc experimentation purposes. */
|
||||
int fiddle_experiment(int a,int b){
|
||||
return a + b;
|
||||
}
|
||||
|
||||
/* Only for emcc experimentation purposes.
|
||||
|
||||
Define this function in JS using:
|
||||
|
||||
emcc ... --js-library somefile.js
|
||||
|
||||
containing:
|
||||
|
||||
mergeInto(LibraryManager.library, {
|
||||
my_foo: function(){
|
||||
console.debug("my_foo()",arguments);
|
||||
}
|
||||
});
|
||||
*/
|
||||
/*extern void my_foo(sqlite3 *);*/
|
||||
/* Only for emcc experimentation purposes. */
|
||||
sqlite3 * fiddle_the_db(){
|
||||
printf("fiddle_the_db(%p)\n", (const void*)globalDb);
|
||||
/*my_foo(globalDb);*/
|
||||
return globalDb;
|
||||
}
|
||||
/* Only for emcc experimentation purposes. */
|
||||
sqlite3 * fiddle_db_arg(sqlite3 *arg){
|
||||
printf("fiddle_db_arg(%p)\n", (const void*)arg);
|
||||
return arg;
|
||||
}
|
||||
|
||||
/*
|
||||
** Trivial exportable function for emscripten. Needs to be exported using:
|
||||
**
|
||||
@ -12589,7 +12621,13 @@ void fiddle_exec(const char * zSql){
|
||||
);
|
||||
puts("WASM shell");
|
||||
puts("Enter \".help\" for usage hints.");
|
||||
puts("Connected to a transient in-memory database.");
|
||||
if(once>0) open_db(&shellState, 0);
|
||||
if(shellState.db){
|
||||
puts("Connected to a transient in-memory database.");
|
||||
}else{
|
||||
fprintf(stderr,"ERROR initializing db!\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(once<0){
|
||||
puts("DB init failed. Not executing SQL.");
|
||||
|
Loading…
x
Reference in New Issue
Block a user