mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-29 08:01:23 +03:00
Restructuring of the wasm build to support an experimental 'minimal' build mode which elides all non-core APIs.
FossilOrigin-Name: ee2191f7302210100fa0b29ace8156531ad995bf61aa2642e526e0901d0c6862
This commit is contained in:
@ -233,6 +233,14 @@ SQLITE_OPT = \
|
|||||||
# can be used to find errant uses of sqlite3_js_vfs_create_file()
|
# can be used to find errant uses of sqlite3_js_vfs_create_file()
|
||||||
# in client code.
|
# in client code.
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# minimal=1 disables all "extraneous" stuff from sqlite3-wasm.c, the
|
||||||
|
# goal being to create a WASM file with only the core APIs.
|
||||||
|
minimal ?= 0
|
||||||
|
ifeq (1,$(minimal))
|
||||||
|
SQLITE_OPT += -DSQLITE_WASM_MINIMAL
|
||||||
|
endif
|
||||||
|
|
||||||
########################################################################@
|
########################################################################@
|
||||||
# It's important that sqlite3.h be built to completion before any
|
# It's important that sqlite3.h be built to completion before any
|
||||||
# other parts of the build run, thus we use .NOTPARALLEL to disable
|
# other parts of the build run, thus we use .NOTPARALLEL to disable
|
||||||
@ -413,11 +421,20 @@ emcc_opt_full := $(emcc_opt) -g3
|
|||||||
########################################################################
|
########################################################################
|
||||||
# EXPORTED_FUNCTIONS.* = files for use with Emscripten's
|
# EXPORTED_FUNCTIONS.* = files for use with Emscripten's
|
||||||
# -sEXPORTED_FUNCTION flag.
|
# -sEXPORTED_FUNCTION flag.
|
||||||
EXPORTED_FUNCTIONS.api.main := $(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-api)
|
EXPORTED_FUNCTIONS.api.core := $(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-core)
|
||||||
EXPORTED_FUNCTIONS.api.in := $(EXPORTED_FUNCTIONS.api.main)
|
EXPORTED_FUNCTIONS.api.in := $(EXPORTED_FUNCTIONS.api.core)
|
||||||
ifeq (1,$(SQLITE_C_IS_SEE))
|
ifeq (1,$(SQLITE_C_IS_SEE))
|
||||||
EXPORTED_FUNCTIONS.api.in += $(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-see)
|
EXPORTED_FUNCTIONS.api.in += $(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-see)
|
||||||
endif
|
endif
|
||||||
|
ifeq (0,$(minimal))
|
||||||
|
EXPORTED_FUNCTIONS.api.in += \
|
||||||
|
$(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-session) \
|
||||||
|
$(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-preupdate)
|
||||||
|
else
|
||||||
|
$(info ========================================)
|
||||||
|
$(info This is a minimal-mode build)
|
||||||
|
$(info ========================================)
|
||||||
|
endif
|
||||||
EXPORTED_FUNCTIONS.api := $(dir.tmp)/EXPORTED_FUNCTIONS.api
|
EXPORTED_FUNCTIONS.api := $(dir.tmp)/EXPORTED_FUNCTIONS.api
|
||||||
$(EXPORTED_FUNCTIONS.api): $(EXPORTED_FUNCTIONS.api.in) $(sqlite3.c) $(MAKEFILE)
|
$(EXPORTED_FUNCTIONS.api): $(EXPORTED_FUNCTIONS.api.in) $(sqlite3.c) $(MAKEFILE)
|
||||||
cat $(EXPORTED_FUNCTIONS.api.in) > $@
|
cat $(EXPORTED_FUNCTIONS.api.in) > $@
|
||||||
@ -1059,9 +1076,9 @@ speedtest1.exit-runtime1 := -sEXIT_RUNTIME=1
|
|||||||
# -sEXIT_RUNTIME=1 but we need EXIT_RUNTIME=0 for the worker-based app
|
# -sEXIT_RUNTIME=1 but we need EXIT_RUNTIME=0 for the worker-based app
|
||||||
# which runs speedtest1 multiple times.
|
# which runs speedtest1 multiple times.
|
||||||
|
|
||||||
$(EXPORTED_FUNCTIONS.speedtest1): $(EXPORTED_FUNCTIONS.api.main)
|
$(EXPORTED_FUNCTIONS.speedtest1): $(EXPORTED_FUNCTIONS.api.core)
|
||||||
@echo "Making $@ ..."
|
@echo "Making $@ ..."
|
||||||
@{ echo _wasm_main; cat $(EXPORTED_FUNCTIONS.api.main); } > $@
|
@{ echo _wasm_main; cat $(EXPORTED_FUNCTIONS.api.core); } > $@
|
||||||
speedtest1.js := $(dir.dout)/speedtest1.js
|
speedtest1.js := $(dir.dout)/speedtest1.js
|
||||||
speedtest1.wasm := $(dir.dout)/speedtest1.wasm
|
speedtest1.wasm := $(dir.dout)/speedtest1.wasm
|
||||||
emcc.flags.speedtest1-vanilla := $(cflags.common) -DSQLITE_SPEEDTEST1_WASM
|
emcc.flags.speedtest1-vanilla := $(cflags.common) -DSQLITE_SPEEDTEST1_WASM
|
||||||
@ -1077,6 +1094,7 @@ $(speedtest1.js): $(MAKEFILE) $(speedtest1.cfiles) \
|
|||||||
$(emcc.speedtest1.common) \
|
$(emcc.speedtest1.common) \
|
||||||
$(emcc.flags.speedtest1-vanilla) $(pre-post-speedtest1-vanilla.flags) \
|
$(emcc.flags.speedtest1-vanilla) $(pre-post-speedtest1-vanilla.flags) \
|
||||||
$(SQLITE_OPT) \
|
$(SQLITE_OPT) \
|
||||||
|
-USQLITE_WASM_MINIMAL \
|
||||||
-USQLITE_C -DSQLITE_C=$(sqlite3.canonical.c) \
|
-USQLITE_C -DSQLITE_C=$(sqlite3.canonical.c) \
|
||||||
$(speedtest1.exit-runtime0) \
|
$(speedtest1.exit-runtime0) \
|
||||||
-o $@ $(speedtest1.cfiles) -lm
|
-o $@ $(speedtest1.cfiles) -lm
|
||||||
|
@ -84,12 +84,6 @@ _sqlite3_open_v2
|
|||||||
_sqlite3_overload_function
|
_sqlite3_overload_function
|
||||||
_sqlite3_prepare_v2
|
_sqlite3_prepare_v2
|
||||||
_sqlite3_prepare_v3
|
_sqlite3_prepare_v3
|
||||||
_sqlite3_preupdate_blobwrite
|
|
||||||
_sqlite3_preupdate_count
|
|
||||||
_sqlite3_preupdate_depth
|
|
||||||
_sqlite3_preupdate_hook
|
|
||||||
_sqlite3_preupdate_new
|
|
||||||
_sqlite3_preupdate_old
|
|
||||||
_sqlite3_progress_handler
|
_sqlite3_progress_handler
|
||||||
_sqlite3_randomness
|
_sqlite3_randomness
|
||||||
_sqlite3_realloc
|
_sqlite3_realloc
|
||||||
@ -166,45 +160,3 @@ _sqlite3_vtab_in_next
|
|||||||
_sqlite3_vtab_nochange
|
_sqlite3_vtab_nochange
|
||||||
_sqlite3_vtab_on_conflict
|
_sqlite3_vtab_on_conflict
|
||||||
_sqlite3_vtab_rhs_value
|
_sqlite3_vtab_rhs_value
|
||||||
_sqlite3changegroup_add
|
|
||||||
_sqlite3changegroup_add_strm
|
|
||||||
_sqlite3changegroup_delete
|
|
||||||
_sqlite3changegroup_new
|
|
||||||
_sqlite3changegroup_output
|
|
||||||
_sqlite3changegroup_output_strm
|
|
||||||
_sqlite3changeset_apply
|
|
||||||
_sqlite3changeset_apply_strm
|
|
||||||
_sqlite3changeset_apply_v2
|
|
||||||
_sqlite3changeset_apply_v2_strm
|
|
||||||
_sqlite3changeset_concat
|
|
||||||
_sqlite3changeset_concat_strm
|
|
||||||
_sqlite3changeset_conflict
|
|
||||||
_sqlite3changeset_finalize
|
|
||||||
_sqlite3changeset_fk_conflicts
|
|
||||||
_sqlite3changeset_invert
|
|
||||||
_sqlite3changeset_invert_strm
|
|
||||||
_sqlite3changeset_new
|
|
||||||
_sqlite3changeset_next
|
|
||||||
_sqlite3changeset_old
|
|
||||||
_sqlite3changeset_op
|
|
||||||
_sqlite3changeset_pk
|
|
||||||
_sqlite3changeset_start
|
|
||||||
_sqlite3changeset_start_strm
|
|
||||||
_sqlite3changeset_start_v2
|
|
||||||
_sqlite3changeset_start_v2_strm
|
|
||||||
_sqlite3session_attach
|
|
||||||
_sqlite3session_changeset
|
|
||||||
_sqlite3session_changeset_size
|
|
||||||
_sqlite3session_changeset_strm
|
|
||||||
_sqlite3session_config
|
|
||||||
_sqlite3session_create
|
|
||||||
_sqlite3session_delete
|
|
||||||
_sqlite3session_diff
|
|
||||||
_sqlite3session_enable
|
|
||||||
_sqlite3session_indirect
|
|
||||||
_sqlite3session_isempty
|
|
||||||
_sqlite3session_memory_used
|
|
||||||
_sqlite3session_object_config
|
|
||||||
_sqlite3session_patchset
|
|
||||||
_sqlite3session_patchset_strm
|
|
||||||
_sqlite3session_table_filter
|
|
6
ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-preupdate
Normal file
6
ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-preupdate
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
_sqlite3_preupdate_blobwrite
|
||||||
|
_sqlite3_preupdate_count
|
||||||
|
_sqlite3_preupdate_depth
|
||||||
|
_sqlite3_preupdate_hook
|
||||||
|
_sqlite3_preupdate_new
|
||||||
|
_sqlite3_preupdate_old
|
42
ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-session
Normal file
42
ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-session
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
_sqlite3changegroup_add
|
||||||
|
_sqlite3changegroup_add_strm
|
||||||
|
_sqlite3changegroup_delete
|
||||||
|
_sqlite3changegroup_new
|
||||||
|
_sqlite3changegroup_output
|
||||||
|
_sqlite3changegroup_output_strm
|
||||||
|
_sqlite3changeset_apply
|
||||||
|
_sqlite3changeset_apply_strm
|
||||||
|
_sqlite3changeset_apply_v2
|
||||||
|
_sqlite3changeset_apply_v2_strm
|
||||||
|
_sqlite3changeset_concat
|
||||||
|
_sqlite3changeset_concat_strm
|
||||||
|
_sqlite3changeset_conflict
|
||||||
|
_sqlite3changeset_finalize
|
||||||
|
_sqlite3changeset_fk_conflicts
|
||||||
|
_sqlite3changeset_invert
|
||||||
|
_sqlite3changeset_invert_strm
|
||||||
|
_sqlite3changeset_new
|
||||||
|
_sqlite3changeset_next
|
||||||
|
_sqlite3changeset_old
|
||||||
|
_sqlite3changeset_op
|
||||||
|
_sqlite3changeset_pk
|
||||||
|
_sqlite3changeset_start
|
||||||
|
_sqlite3changeset_start_strm
|
||||||
|
_sqlite3changeset_start_v2
|
||||||
|
_sqlite3changeset_start_v2_strm
|
||||||
|
_sqlite3session_attach
|
||||||
|
_sqlite3session_changeset
|
||||||
|
_sqlite3session_changeset_size
|
||||||
|
_sqlite3session_changeset_strm
|
||||||
|
_sqlite3session_config
|
||||||
|
_sqlite3session_create
|
||||||
|
_sqlite3session_delete
|
||||||
|
_sqlite3session_diff
|
||||||
|
_sqlite3session_enable
|
||||||
|
_sqlite3session_indirect
|
||||||
|
_sqlite3session_isempty
|
||||||
|
_sqlite3session_memory_used
|
||||||
|
_sqlite3session_object_config
|
||||||
|
_sqlite3session_patchset
|
||||||
|
_sqlite3session_patchset_strm
|
||||||
|
_sqlite3session_table_filter
|
@ -385,26 +385,6 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
|
|||||||
["sqlite3_malloc64", "*","i64"],
|
["sqlite3_malloc64", "*","i64"],
|
||||||
["sqlite3_msize", "i64", "*"],
|
["sqlite3_msize", "i64", "*"],
|
||||||
["sqlite3_overload_function", "int", ["sqlite3*","string","int"]],
|
["sqlite3_overload_function", "int", ["sqlite3*","string","int"]],
|
||||||
["sqlite3_preupdate_blobwrite", "int", "sqlite3*"],
|
|
||||||
["sqlite3_preupdate_count", "int", "sqlite3*"],
|
|
||||||
["sqlite3_preupdate_depth", "int", "sqlite3*"],
|
|
||||||
["sqlite3_preupdate_hook", "*", [
|
|
||||||
"sqlite3*",
|
|
||||||
new wasm.xWrap.FuncPtrAdapter({
|
|
||||||
name: 'sqlite3_preupdate_hook',
|
|
||||||
signature: "v(ppippjj)",
|
|
||||||
contextKey: (argv)=>argv[0/* sqlite3* */],
|
|
||||||
callProxy: (callback)=>{
|
|
||||||
return (p,db,op,zDb,zTbl,iKey1,iKey2)=>{
|
|
||||||
callback(p, db, op, wasm.cstrToJs(zDb), wasm.cstrToJs(zTbl),
|
|
||||||
iKey1, iKey2);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
"*"
|
|
||||||
]],
|
|
||||||
["sqlite3_preupdate_new", "int", ["sqlite3*", "int", "**"]],
|
|
||||||
["sqlite3_preupdate_old", "int", ["sqlite3*", "int", "**"]],
|
|
||||||
["sqlite3_realloc64", "*","*", "i64"],
|
["sqlite3_realloc64", "*","*", "i64"],
|
||||||
["sqlite3_result_int64", undefined, "*", "i64"],
|
["sqlite3_result_int64", undefined, "*", "i64"],
|
||||||
["sqlite3_result_zeroblob64", "int", "*", "i64"],
|
["sqlite3_result_zeroblob64", "int", "*", "i64"],
|
||||||
@ -440,8 +420,36 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
|
|||||||
["sqlite3_vtab_rhs_value","int", "sqlite3_index_info*", "int", "**"]
|
["sqlite3_vtab_rhs_value","int", "sqlite3_index_info*", "int", "**"]
|
||||||
];
|
];
|
||||||
|
|
||||||
|
if(wasm.bigIntEnabled && !!wasm.exports.sqlite3_preupdate_hook){
|
||||||
|
wasm.bindingSignatures.int64.push(
|
||||||
|
["sqlite3_preupdate_blobwrite", "int", "sqlite3*"],
|
||||||
|
["sqlite3_preupdate_count", "int", "sqlite3*"],
|
||||||
|
["sqlite3_preupdate_depth", "int", "sqlite3*"],
|
||||||
|
["sqlite3_preupdate_hook", "*", [
|
||||||
|
"sqlite3*",
|
||||||
|
new wasm.xWrap.FuncPtrAdapter({
|
||||||
|
name: 'sqlite3_preupdate_hook',
|
||||||
|
signature: "v(ppippjj)",
|
||||||
|
contextKey: (argv)=>argv[0/* sqlite3* */],
|
||||||
|
callProxy: (callback)=>{
|
||||||
|
return (p,db,op,zDb,zTbl,iKey1,iKey2)=>{
|
||||||
|
callback(p, db, op, wasm.cstrToJs(zDb), wasm.cstrToJs(zTbl),
|
||||||
|
iKey1, iKey2);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"*"
|
||||||
|
]],
|
||||||
|
["sqlite3_preupdate_new", "int", ["sqlite3*", "int", "**"]],
|
||||||
|
["sqlite3_preupdate_old", "int", ["sqlite3*", "int", "**"]]
|
||||||
|
);
|
||||||
|
} /* preupdate API */
|
||||||
|
|
||||||
// Add session/changeset APIs...
|
// Add session/changeset APIs...
|
||||||
if(wasm.bigIntEnabled && !!wasm.exports.sqlite3changegroup_add){
|
if(wasm.bigIntEnabled
|
||||||
|
&& !!wasm.exports.sqlite3changegroup_add
|
||||||
|
&& !!wasm.exports.sqlite3session_create
|
||||||
|
&& !!wasm.exports.sqlite3_preupdate_hook /* required by the session API */){
|
||||||
/**
|
/**
|
||||||
FuncPtrAdapter options for session-related callbacks with the
|
FuncPtrAdapter options for session-related callbacks with the
|
||||||
native signature "i(ps)". This proxy converts the 2nd argument
|
native signature "i(ps)". This proxy converts the 2nd argument
|
||||||
@ -1079,7 +1087,7 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
|
|||||||
};
|
};
|
||||||
}/*sqlite3_close_v2()*/
|
}/*sqlite3_close_v2()*/
|
||||||
|
|
||||||
if(capi.sqlite3session_table_filter){
|
if(capi.sqlite3session_create){
|
||||||
const __sqlite3SessionDelete = wasm.xWrap(
|
const __sqlite3SessionDelete = wasm.xWrap(
|
||||||
'sqlite3session_delete', undefined, ['sqlite3_session*']
|
'sqlite3session_delete', undefined, ['sqlite3_session*']
|
||||||
);
|
);
|
||||||
|
@ -104,8 +104,8 @@
|
|||||||
#ifndef SQLITE_ENABLE_EXPLAIN_COMMENTS
|
#ifndef SQLITE_ENABLE_EXPLAIN_COMMENTS
|
||||||
# define SQLITE_ENABLE_EXPLAIN_COMMENTS 1
|
# define SQLITE_ENABLE_EXPLAIN_COMMENTS 1
|
||||||
#endif
|
#endif
|
||||||
#ifndef SQLITE_ENABLE_FTS4
|
#ifndef SQLITE_ENABLE_FTS5
|
||||||
# define SQLITE_ENABLE_FTS4 1
|
# define SQLITE_ENABLE_FTS5 1
|
||||||
#endif
|
#endif
|
||||||
#ifndef SQLITE_ENABLE_MATH_FUNCTIONS
|
#ifndef SQLITE_ENABLE_MATH_FUNCTIONS
|
||||||
# define SQLITE_ENABLE_MATH_FUNCTIONS 1
|
# define SQLITE_ENABLE_MATH_FUNCTIONS 1
|
||||||
@ -129,6 +129,22 @@
|
|||||||
# define SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
|
# define SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
** If SQLITE_WASM_MINIMAL is defined, undefine most of the ENABLE
|
||||||
|
** macros.
|
||||||
|
*/
|
||||||
|
#ifdef SQLITE_WASM_MINIMAL
|
||||||
|
# undef SQLITE_ENABLE_DBPAGE_VTAB
|
||||||
|
# undef SQLITE_ENABLE_DBSTAT_VTAB
|
||||||
|
# undef SQLITE_ENABLE_EXPLAIN_COMMENTS
|
||||||
|
# undef SQLITE_ENABLE_FTS5
|
||||||
|
# undef SQLITE_ENABLE_OFFSET_SQL_FUNC
|
||||||
|
# undef SQLITE_ENABLE_PREUPDATE_HOOK
|
||||||
|
# undef SQLITE_ENABLE_RTREE
|
||||||
|
# undef SQLITE_ENABLE_SESSION
|
||||||
|
# undef SQLITE_ENABLE_STMTVTAB
|
||||||
|
#endif
|
||||||
|
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
/* SQLITE_O... */
|
/* SQLITE_O... */
|
||||||
#ifndef SQLITE_OMIT_DEPRECATED
|
#ifndef SQLITE_OMIT_DEPRECATED
|
||||||
@ -499,6 +515,7 @@ const char * sqlite3__wasm_enum_json(void){
|
|||||||
} _DefGroup;
|
} _DefGroup;
|
||||||
|
|
||||||
DefGroup(changeset){
|
DefGroup(changeset){
|
||||||
|
#ifdef SQLITE_CHANGESETSTART_INVERT
|
||||||
DefInt(SQLITE_CHANGESETSTART_INVERT);
|
DefInt(SQLITE_CHANGESETSTART_INVERT);
|
||||||
DefInt(SQLITE_CHANGESETAPPLY_NOSAVEPOINT);
|
DefInt(SQLITE_CHANGESETAPPLY_NOSAVEPOINT);
|
||||||
DefInt(SQLITE_CHANGESETAPPLY_INVERT);
|
DefInt(SQLITE_CHANGESETAPPLY_INVERT);
|
||||||
@ -513,6 +530,7 @@ const char * sqlite3__wasm_enum_json(void){
|
|||||||
DefInt(SQLITE_CHANGESET_OMIT);
|
DefInt(SQLITE_CHANGESET_OMIT);
|
||||||
DefInt(SQLITE_CHANGESET_REPLACE);
|
DefInt(SQLITE_CHANGESET_REPLACE);
|
||||||
DefInt(SQLITE_CHANGESET_ABORT);
|
DefInt(SQLITE_CHANGESET_ABORT);
|
||||||
|
#endif
|
||||||
} _DefGroup;
|
} _DefGroup;
|
||||||
|
|
||||||
DefGroup(config){
|
DefGroup(config){
|
||||||
@ -564,7 +582,6 @@ const char * sqlite3__wasm_enum_json(void){
|
|||||||
DefInt(SQLITE_DBCONFIG_LOOKASIDE);
|
DefInt(SQLITE_DBCONFIG_LOOKASIDE);
|
||||||
DefInt(SQLITE_DBCONFIG_ENABLE_FKEY);
|
DefInt(SQLITE_DBCONFIG_ENABLE_FKEY);
|
||||||
DefInt(SQLITE_DBCONFIG_ENABLE_TRIGGER);
|
DefInt(SQLITE_DBCONFIG_ENABLE_TRIGGER);
|
||||||
DefInt(SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER);
|
|
||||||
DefInt(SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION);
|
DefInt(SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION);
|
||||||
DefInt(SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE);
|
DefInt(SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE);
|
||||||
DefInt(SQLITE_DBCONFIG_ENABLE_QPSG);
|
DefInt(SQLITE_DBCONFIG_ENABLE_QPSG);
|
||||||
@ -859,8 +876,10 @@ const char * sqlite3__wasm_enum_json(void){
|
|||||||
} _DefGroup;
|
} _DefGroup;
|
||||||
|
|
||||||
DefGroup(session){
|
DefGroup(session){
|
||||||
|
#ifdef SQLITE_SESSION_CONFIG_STRMSIZE
|
||||||
DefInt(SQLITE_SESSION_CONFIG_STRMSIZE);
|
DefInt(SQLITE_SESSION_CONFIG_STRMSIZE);
|
||||||
DefInt(SQLITE_SESSION_OBJCONFIG_SIZE);
|
DefInt(SQLITE_SESSION_OBJCONFIG_SIZE);
|
||||||
|
#endif
|
||||||
} _DefGroup;
|
} _DefGroup;
|
||||||
|
|
||||||
DefGroup(sqlite3Status){
|
DefGroup(sqlite3Status){
|
||||||
|
@ -42,6 +42,7 @@ fiddle.emcc-flags = \
|
|||||||
-sEXPORTED_FUNCTIONS=@$(abspath $(EXPORTED_FUNCTIONS.fiddle)) \
|
-sEXPORTED_FUNCTIONS=@$(abspath $(EXPORTED_FUNCTIONS.fiddle)) \
|
||||||
-sEXPORTED_RUNTIME_METHODS=FS,wasmMemory \
|
-sEXPORTED_RUNTIME_METHODS=FS,wasmMemory \
|
||||||
$(SQLITE_OPT) $(SHELL_OPT) \
|
$(SQLITE_OPT) $(SHELL_OPT) \
|
||||||
|
-USQLITE_WASM_MINIMAL \
|
||||||
-DSQLITE_SHELL_FIDDLE
|
-DSQLITE_SHELL_FIDDLE
|
||||||
# -D_POSIX_C_SOURCE is needed for strdup() with emcc
|
# -D_POSIX_C_SOURCE is needed for strdup() with emcc
|
||||||
|
|
||||||
|
@ -2761,7 +2761,7 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
|
|||||||
})/* commit/rollback/update hooks */
|
})/* commit/rollback/update hooks */
|
||||||
.t({
|
.t({
|
||||||
name: "sqlite3_preupdate_hook()",
|
name: "sqlite3_preupdate_hook()",
|
||||||
predicate: ()=>wasm.bigIntEnabled || "Pre-update hook requires int64",
|
predicate: ()=>capi.sqlite3_preupdate_hook || "Missing pre-update hook API",
|
||||||
test: function(sqlite3){
|
test: function(sqlite3){
|
||||||
const db = new sqlite3.oo1.DB(':memory:', 1 ? 'c' : 'ct');
|
const db = new sqlite3.oo1.DB(':memory:', 1 ? 'c' : 'ct');
|
||||||
const countHook = Object.create(null);
|
const countHook = Object.create(null);
|
||||||
@ -2832,7 +2832,7 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
|
|||||||
T.g('Session API')
|
T.g('Session API')
|
||||||
.t({
|
.t({
|
||||||
name: 'Session API sanity checks',
|
name: 'Session API sanity checks',
|
||||||
predicate: ()=>!!capi.sqlite3changegroup_add,
|
predicate: ()=>!!capi.sqlite3changegroup_add || "Missing session API",
|
||||||
test: function(sqlite3){
|
test: function(sqlite3){
|
||||||
//warn("The session API tests could use some expansion.");
|
//warn("The session API tests could use some expansion.");
|
||||||
const db1 = new sqlite3.oo1.DB(), db2 = new sqlite3.oo1.DB();
|
const db1 = new sqlite3.oo1.DB(), db2 = new sqlite3.oo1.DB();
|
||||||
@ -3299,6 +3299,17 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
|
|||||||
T.g('Bug Reports')
|
T.g('Bug Reports')
|
||||||
.t({
|
.t({
|
||||||
name: 'Delete via bound parameter in subquery',
|
name: 'Delete via bound parameter in subquery',
|
||||||
|
predicate: function(sqlite3){
|
||||||
|
const d = new sqlite3.oo1.DB();
|
||||||
|
try{
|
||||||
|
d.exec("create virtual table f using fts5(x)");
|
||||||
|
return true;
|
||||||
|
}catch(e){
|
||||||
|
return "FTS5 is not available";
|
||||||
|
}finally{
|
||||||
|
d.close();
|
||||||
|
}
|
||||||
|
},
|
||||||
test: function(sqlite3){
|
test: function(sqlite3){
|
||||||
// Testing https://sqlite.org/forum/forumpost/40ce55bdf5
|
// Testing https://sqlite.org/forum/forumpost/40ce55bdf5
|
||||||
// with the exception that that post uses "external content"
|
// with the exception that that post uses "external content"
|
||||||
|
26
manifest
26
manifest
@ -1,5 +1,5 @@
|
|||||||
C Add\sthe\spercentile\sextension\sto\sthe\sCLI\sby\sdefault.
|
C Restructuring\sof\sthe\swasm\sbuild\sto\ssupport\san\sexperimental\s'minimal'\sbuild\smode\swhich\selides\sall\snon-core\sAPIs.
|
||||||
D 2024-07-24T13:53:51.649
|
D 2024-07-24T22:07:18.372
|
||||||
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
|
||||||
@ -593,7 +593,7 @@ F ext/userauth/sqlite3userauth.h 7f3ea8c4686db8e40b0a0e7a8e0b00fac13aa7a3
|
|||||||
F ext/userauth/user-auth.txt ca7e9ee82ca4e1c1744295f8184dd70edfae1992865d26c64303f539eb6c084c
|
F ext/userauth/user-auth.txt ca7e9ee82ca4e1c1744295f8184dd70edfae1992865d26c64303f539eb6c084c
|
||||||
F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb
|
F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb
|
||||||
F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
|
F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
|
||||||
F ext/wasm/GNUmakefile 2c801a86137734683966c0fe7e29d2317fdd14b8de8a24289085324213119d3f
|
F ext/wasm/GNUmakefile 3940f4e685f8a8b521afaed02bb9dbc9058540a918b7d37ba02bd35c6e359765
|
||||||
F ext/wasm/README-dist.txt 6382cb9548076fca472fb3330bbdba3a55c1ea0b180ff9253f084f07ff383576
|
F ext/wasm/README-dist.txt 6382cb9548076fca472fb3330bbdba3a55c1ea0b180ff9253f084f07ff383576
|
||||||
F ext/wasm/README.md a8a2962c3aebdf8d2104a9102e336c5554e78fc6072746e5daf9c61514e7d193
|
F ext/wasm/README.md a8a2962c3aebdf8d2104a9102e336c5554e78fc6072746e5daf9c61514e7d193
|
||||||
F ext/wasm/SQLTester/GNUmakefile e0794f676d55819951bbfae45cc5e8d7818dc460492dc317ce7f0d2eca15caff
|
F ext/wasm/SQLTester/GNUmakefile e0794f676d55819951bbfae45cc5e8d7818dc460492dc317ce7f0d2eca15caff
|
||||||
@ -601,8 +601,10 @@ F ext/wasm/SQLTester/SQLTester.mjs ce765c0ad7d57f93553d12ef4dca574deb00300134a26
|
|||||||
F ext/wasm/SQLTester/SQLTester.run.mjs c72b7fe2072d05992f7a3d8c6a1d34e95712513ceabe40849784e24e41c84638
|
F ext/wasm/SQLTester/SQLTester.run.mjs c72b7fe2072d05992f7a3d8c6a1d34e95712513ceabe40849784e24e41c84638
|
||||||
F ext/wasm/SQLTester/index.html 3f8a016df0776be76605abf20e815ecaafbe055abac0e1fe5ea080e7846b760d
|
F ext/wasm/SQLTester/index.html 3f8a016df0776be76605abf20e815ecaafbe055abac0e1fe5ea080e7846b760d
|
||||||
F ext/wasm/SQLTester/touint8array.c 2d5ece04ec1393a6a60c4bf96385bda5e1a10ad49f3038b96460fc5e5aa7e536
|
F ext/wasm/SQLTester/touint8array.c 2d5ece04ec1393a6a60c4bf96385bda5e1a10ad49f3038b96460fc5e5aa7e536
|
||||||
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-api 5265b1f090d232a4402425f5307f389ab51830c02d91c8c2ce6208647f242164
|
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-core 8f5f661fbe853cf830337c549d81dfafc7836e4d3cf1c042a4262c1627866c06 w ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-api
|
||||||
|
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-preupdate d1d62a2212099f2c0782d730beb8cb84a7a52d99c15ead2cb9b1411fff5fd6b1
|
||||||
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-see fb29e62082a658f0d81102488414d422c393c4b20cc2f685b216bc566237957b
|
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-see fb29e62082a658f0d81102488414d422c393c4b20cc2f685b216bc566237957b
|
||||||
|
F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-session 213b6c04267cb9bd760172db011eb1650732805fb3d01f9395478a8ceec18eb0
|
||||||
F ext/wasm/api/EXPORTED_RUNTIME_METHODS.sqlite3-api 1ec3c73e7d66e95529c3c64ac3de2470b0e9e7fbf7a5b41261c367cf4f1b7287
|
F ext/wasm/api/EXPORTED_RUNTIME_METHODS.sqlite3-api 1ec3c73e7d66e95529c3c64ac3de2470b0e9e7fbf7a5b41261c367cf4f1b7287
|
||||||
F ext/wasm/api/README.md 34fe11466f9c1d81b10a0469e1114e5f1c5a6365c73d80a1a6ca639a1a358b73
|
F ext/wasm/api/README.md 34fe11466f9c1d81b10a0469e1114e5f1c5a6365c73d80a1a6ca639a1a358b73
|
||||||
F ext/wasm/api/extern-post-js.c-pp.js c4154a7f90c2d7e51fd6738273908152036c3457fdc0b6523f1be3ef51105aac
|
F ext/wasm/api/extern-post-js.c-pp.js c4154a7f90c2d7e51fd6738273908152036c3457fdc0b6523f1be3ef51105aac
|
||||||
@ -611,7 +613,7 @@ F ext/wasm/api/post-js-footer.js cd0a8ec768501d9bd45d325ab0442037fb0e33d1f3b4f08
|
|||||||
F ext/wasm/api/post-js-header.js 04dc12c3edd666b64a1b4ef3b6690c88dcc653f26451fd4734472d8e29c1c122
|
F ext/wasm/api/post-js-header.js 04dc12c3edd666b64a1b4ef3b6690c88dcc653f26451fd4734472d8e29c1c122
|
||||||
F ext/wasm/api/pre-js.c-pp.js ad906703f7429590f2fbf5e6498513bf727a1a4f0ebfa057afb08161d7511219
|
F ext/wasm/api/pre-js.c-pp.js ad906703f7429590f2fbf5e6498513bf727a1a4f0ebfa057afb08161d7511219
|
||||||
F ext/wasm/api/sqlite3-api-cleanup.js d235ad237df6954145404305040991c72ef8b1881715d2a650dda7b3c2576d0e
|
F ext/wasm/api/sqlite3-api-cleanup.js d235ad237df6954145404305040991c72ef8b1881715d2a650dda7b3c2576d0e
|
||||||
F ext/wasm/api/sqlite3-api-glue.c-pp.js 21a0f8c1e4b4675b6563759c74bef954ac36aa99acce79c56802b661429f43d0
|
F ext/wasm/api/sqlite3-api-glue.c-pp.js ba759315ee7a7cf8e60d8fb0c1a4ce2bb735d54e19d8797b5afd13237784101c
|
||||||
F ext/wasm/api/sqlite3-api-oo1.c-pp.js f3a8e2004c6625d17946c11f2fb32008be78bc5207bf746fc77d59848813225f
|
F ext/wasm/api/sqlite3-api-oo1.c-pp.js f3a8e2004c6625d17946c11f2fb32008be78bc5207bf746fc77d59848813225f
|
||||||
F ext/wasm/api/sqlite3-api-prologue.js 6f1257e04885632ed9f44d43aba200b86e0bc16709ffdba29abbbeb1bc8e8b76
|
F ext/wasm/api/sqlite3-api-prologue.js 6f1257e04885632ed9f44d43aba200b86e0bc16709ffdba29abbbeb1bc8e8b76
|
||||||
F ext/wasm/api/sqlite3-api-worker1.c-pp.js 5cc22a3c0d52828cb32aad8691488719f47d27567e63e8bc8b832d74371c352d
|
F ext/wasm/api/sqlite3-api-worker1.c-pp.js 5cc22a3c0d52828cb32aad8691488719f47d27567e63e8bc8b832d74371c352d
|
||||||
@ -621,7 +623,7 @@ F ext/wasm/api/sqlite3-vfs-helper.c-pp.js 3f828cc66758acb40e9c5b4dcfd87fd478a14c
|
|||||||
F ext/wasm/api/sqlite3-vfs-opfs-sahpool.c-pp.js e529a99b7d5a088284821e2902b20d3404b561126969876997d5a73a656c9199
|
F ext/wasm/api/sqlite3-vfs-opfs-sahpool.c-pp.js e529a99b7d5a088284821e2902b20d3404b561126969876997d5a73a656c9199
|
||||||
F ext/wasm/api/sqlite3-vfs-opfs.c-pp.js e99e3d99f736937914527070f00ab13e9391d3f1cef884ab99a64cbcbee8d675
|
F ext/wasm/api/sqlite3-vfs-opfs.c-pp.js e99e3d99f736937914527070f00ab13e9391d3f1cef884ab99a64cbcbee8d675
|
||||||
F ext/wasm/api/sqlite3-vtab-helper.c-pp.js a2fcbc3fecdd0eea229283584ebc122f29d98194083675dbe5cb2cf3a17fe309
|
F ext/wasm/api/sqlite3-vtab-helper.c-pp.js a2fcbc3fecdd0eea229283584ebc122f29d98194083675dbe5cb2cf3a17fe309
|
||||||
F ext/wasm/api/sqlite3-wasm.c 9267174b9b0591b4f71193542ab57adf95bb9415f7d3453acf4a8ca8052f5e6c
|
F ext/wasm/api/sqlite3-wasm.c 2f795a9689e7c28616a74969be84f567f59a641ba08e5ade0697faf1ba3dad48
|
||||||
F ext/wasm/api/sqlite3-worker1-promiser.c-pp.js 46f303ba8ddd1b2f0a391798837beddfa72e8c897038c8047eda49ce7d5ed46b
|
F ext/wasm/api/sqlite3-worker1-promiser.c-pp.js 46f303ba8ddd1b2f0a391798837beddfa72e8c897038c8047eda49ce7d5ed46b
|
||||||
F ext/wasm/api/sqlite3-worker1.c-pp.js 5e8706c2c4af2a57fbcdc02f4e7ef79869971bc21bb8ede777687786ce1c92d5
|
F ext/wasm/api/sqlite3-worker1.c-pp.js 5e8706c2c4af2a57fbcdc02f4e7ef79869971bc21bb8ede777687786ce1c92d5
|
||||||
F ext/wasm/batch-runner-sahpool.html e9a38fdeb36a13eac7b50241dfe7ae066fe3f51f5c0b0151e7baee5fce0d07a7
|
F ext/wasm/batch-runner-sahpool.html e9a38fdeb36a13eac7b50241dfe7ae066fe3f51f5c0b0151e7baee5fce0d07a7
|
||||||
@ -644,7 +646,7 @@ F ext/wasm/demo-worker1.html 2c178c1890a2beb5a5fecb1453e796d067a4b8d3d2a04d65ca2
|
|||||||
F ext/wasm/demo-worker1.js 836bece8615b17b1b572584f7b15912236a5947fe8c68b98d2737d7e287447ef
|
F ext/wasm/demo-worker1.js 836bece8615b17b1b572584f7b15912236a5947fe8c68b98d2737d7e287447ef
|
||||||
F ext/wasm/dist.make 653e212c1e84aa3be168d62a10616ccea45ee9585b0192745d2706707a5248ce
|
F ext/wasm/dist.make 653e212c1e84aa3be168d62a10616ccea45ee9585b0192745d2706707a5248ce
|
||||||
F ext/wasm/example_extra_init.c 2347cd69d19d839ef4e5e77b7855103a7fe3ef2af86f2e8c95839afd8b05862f
|
F ext/wasm/example_extra_init.c 2347cd69d19d839ef4e5e77b7855103a7fe3ef2af86f2e8c95839afd8b05862f
|
||||||
F ext/wasm/fiddle.make 42b18ba889c103aa072c6193b135953b1808d1a7aa9930644dae44682da7592b
|
F ext/wasm/fiddle.make 2406b02473878a99fb6a2eaff0923277017adc45eb041b2afb2d7707bf7b375c
|
||||||
F ext/wasm/fiddle/fiddle-worker.js 850e66fce39b89d59e161d1abac43a181a4caa89ddeea162765d660277cd84ce
|
F ext/wasm/fiddle/fiddle-worker.js 850e66fce39b89d59e161d1abac43a181a4caa89ddeea162765d660277cd84ce
|
||||||
F ext/wasm/fiddle/fiddle.js b444a5646a9aac9f3fc06c53d78af5e1912eb235d69a8e6010723e4eb0e9d4a1
|
F ext/wasm/fiddle/fiddle.js b444a5646a9aac9f3fc06c53d78af5e1912eb235d69a8e6010723e4eb0e9d4a1
|
||||||
F ext/wasm/fiddle/index.html 739e0b75bc592679665d25e2f7649d2b8b2db678f3b41a772a8720b609b8482d
|
F ext/wasm/fiddle/index.html 739e0b75bc592679665d25e2f7649d2b8b2db678f3b41a772a8720b609b8482d
|
||||||
@ -667,7 +669,7 @@ F ext/wasm/test-opfs-vfs.html 1f2d672f3f3fce810dfd48a8d56914aba22e45c6834e262555
|
|||||||
F ext/wasm/test-opfs-vfs.js 1618670e466f424aa289859fe0ec8ded223e42e9e69b5c851f809baaaca1a00c
|
F ext/wasm/test-opfs-vfs.js 1618670e466f424aa289859fe0ec8ded223e42e9e69b5c851f809baaaca1a00c
|
||||||
F ext/wasm/tester1-worker.html ebc4b820a128963afce328ecf63ab200bd923309eb939f4110510ab449e9814c
|
F ext/wasm/tester1-worker.html ebc4b820a128963afce328ecf63ab200bd923309eb939f4110510ab449e9814c
|
||||||
F ext/wasm/tester1.c-pp.html 1c1bc78b858af2019e663b1a31e76657b73dc24bede28ca92fbe917c3a972af2
|
F ext/wasm/tester1.c-pp.html 1c1bc78b858af2019e663b1a31e76657b73dc24bede28ca92fbe917c3a972af2
|
||||||
F ext/wasm/tester1.c-pp.js 052b0c7c1039a2ae787d8c447d782182ed6e2807d0b0ee975c396c911d42e7fc
|
F ext/wasm/tester1.c-pp.js dd5f9cefd5d99cca5c5f415c0f6b6afafb40a0aa6cf544aa0d167c5928f41056
|
||||||
F ext/wasm/tests/opfs/concurrency/index.html 657578a6e9ce1e9b8be951549ed93a6a471f4520a99e5b545928668f4285fb5e
|
F ext/wasm/tests/opfs/concurrency/index.html 657578a6e9ce1e9b8be951549ed93a6a471f4520a99e5b545928668f4285fb5e
|
||||||
F ext/wasm/tests/opfs/concurrency/test.js d08889a5bb6e61937d0b8cbb78c9efbefbf65ad09f510589c779b7cc6a803a88
|
F ext/wasm/tests/opfs/concurrency/test.js d08889a5bb6e61937d0b8cbb78c9efbefbf65ad09f510589c779b7cc6a803a88
|
||||||
F ext/wasm/tests/opfs/concurrency/worker.js 0a8c1a3e6ebb38aabbee24f122693f1fb29d599948915c76906681bb7da1d3d2
|
F ext/wasm/tests/opfs/concurrency/worker.js 0a8c1a3e6ebb38aabbee24f122693f1fb29d599948915c76906681bb7da1d3d2
|
||||||
@ -2195,8 +2197,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 095c22e62248f8ef50cd8531171827f50a7bdd4fc1128bf0e616a3eb2dce980e
|
P bcc31846964102385d5a21eb5e85d7db153b155e76b4e2847c9453d3d0e1af04
|
||||||
R 76e7f4761efc98a28727d2a1442d8c13
|
R f16b6030874c752d822201bd54acf1fe
|
||||||
U drh
|
U stephan
|
||||||
Z 956d236c4ff2c748d10dde2ade86c2ae
|
Z b5a8cea365fa73a1ac2818f134bd3edc
|
||||||
# Remove this line to create a well-formed Fossil manifest.
|
# Remove this line to create a well-formed Fossil manifest.
|
||||||
|
@ -1 +1 @@
|
|||||||
bcc31846964102385d5a21eb5e85d7db153b155e76b4e2847c9453d3d0e1af04
|
ee2191f7302210100fa0b29ace8156531ad995bf61aa2642e526e0901d0c6862
|
||||||
|
Reference in New Issue
Block a user