]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
wasm minimal build: strip authorizers and JSON support (saves approx 35kb). Strip...
authorstephan <stephan@noemail.net>
Wed, 24 Jul 2024 23:58:28 +0000 (23:58 +0000)
committerstephan <stephan@noemail.net>
Wed, 24 Jul 2024 23:58:28 +0000 (23:58 +0000)
FossilOrigin-Name: eb64d106551718467e0f6c6b53695410bf4c566901008e4cda8580d0f7efa7b0

ext/wasm/GNUmakefile
ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-auth [new file with mode: 0644]
ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-core
ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-vtab [new file with mode: 0644]
ext/wasm/api/sqlite3-api-glue.c-pp.js
ext/wasm/api/sqlite3-vtab-helper.c-pp.js
ext/wasm/api/sqlite3-wasm.c
ext/wasm/tester1.c-pp.js
manifest
manifest.uuid

index d9ca75d0a50a5bb5f0f68c3f96caac56508c6185..51531627b985c22d0c57b4fc897c6f945af704bd 100644 (file)
@@ -428,8 +428,10 @@ ifeq (1,$(SQLITE_C_IS_SEE))
 endif
 ifeq (0,$(minimal))
   EXPORTED_FUNCTIONS.api.in += \
+    $(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-auth) \
+    $(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-preupdate) \
     $(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-session) \
-    $(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-preupdate)
+    $(abspath $(dir.api)/EXPORTED_FUNCTIONS.sqlite3-vtab)
 else
   $(info ========================================)
   $(info This is a minimal-mode build)
diff --git a/ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-auth b/ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-auth
new file mode 100644 (file)
index 0000000..0850908
--- /dev/null
@@ -0,0 +1 @@
+_sqlite3_set_authorizer
index ce703666fe8ae632c46204bc71a0e6a6ed47ceff..db47ee7db1c9950ea7ff136ac97f23c956b51c17 100644 (file)
@@ -41,8 +41,6 @@ _sqlite3_create_collation
 _sqlite3_create_collation_v2
 _sqlite3_create_function
 _sqlite3_create_function_v2
-_sqlite3_create_module
-_sqlite3_create_module_v2
 _sqlite3_create_window_function
 _sqlite3_data_count
 _sqlite3_db_filename
@@ -50,7 +48,6 @@ _sqlite3_db_handle
 _sqlite3_db_name
 _sqlite3_db_readonly
 _sqlite3_db_status
-_sqlite3_declare_vtab
 _sqlite3_deserialize
 _sqlite3_drop_modules
 _sqlite3_errcode
@@ -106,7 +103,6 @@ _sqlite3_result_zeroblob
 _sqlite3_result_zeroblob64
 _sqlite3_rollback_hook
 _sqlite3_serialize
-_sqlite3_set_authorizer
 _sqlite3_set_auxdata
 _sqlite3_set_last_insert_rowid
 _sqlite3_shutdown
diff --git a/ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-vtab b/ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-vtab
new file mode 100644 (file)
index 0000000..1f6de96
--- /dev/null
@@ -0,0 +1,11 @@
+_sqlite3_create_module
+_sqlite3_create_module_v2
+_sqlite3_declare_vtab
+_sqlite3_vtab_collation
+_sqlite3_vtab_distinct
+_sqlite3_vtab_in
+_sqlite3_vtab_in_first
+_sqlite3_vtab_in_next
+_sqlite3_vtab_nochange
+_sqlite3_vtab_on_conflict
+_sqlite3_vtab_rhs_value
index 3e8643ad301e6334a75952f0557ccc3cd8f187ee..e5eb0cfeb64291cb2cc429ad5a9483b09f49bc04 100644 (file)
@@ -244,26 +244,6 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
       }),
       '*'
     ]],
-    ["sqlite3_set_authorizer", "int", [
-      "sqlite3*",
-      new wasm.xWrap.FuncPtrAdapter({
-        name: "sqlite3_set_authorizer::xAuth",
-        signature: "i(pi"+"ssss)",
-        contextKey: (argv, argIndex)=>argv[0/*(sqlite3*)*/],
-        callProxy: (callback)=>{
-          return (pV, iCode, s0, s1, s2, s3)=>{
-            try{
-              s0 = s0 && wasm.cstrToJs(s0); s1 = s1 && wasm.cstrToJs(s1);
-              s2 = s2 && wasm.cstrToJs(s2); s3 = s3 && wasm.cstrToJs(s3);
-              return callback(pV, iCode, s0, s1, s2, s3) || 0;
-            }catch(e){
-              return e.resultCode || capi.SQLITE_ERROR;
-            }
-          }
-        }
-      }),
-      "*"/*pUserData*/
-    ]],
     ["sqlite3_set_auxdata", undefined, [
       "sqlite3_context*", "int", "*",
       new wasm.xWrap.FuncPtrAdapter({
@@ -278,8 +258,6 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
     ["sqlite3_status", "int", "int", "*", "*", "int"],
     ["sqlite3_step", "int", "sqlite3_stmt*"],
     ["sqlite3_stmt_busy", "int", "sqlite3_stmt*"],
-    ["sqlite3_stmt_explain", "int", "sqlite3_stmt*", "int"],
-    ["sqlite3_stmt_isexplain", "int", "sqlite3_stmt*"],
     ["sqlite3_stmt_readonly", "int", "sqlite3_stmt*"],
     ["sqlite3_stmt_status", "int", "sqlite3_stmt*", "int", "int"],
     ["sqlite3_strglob", "int", "string","string"],
@@ -325,6 +303,38 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
     ["sqlite3_vfs_unregister", "int", "sqlite3_vfs*"]
   ]/*wasm.bindingSignatures*/;
 
+  if( !!wasm.exports.sqlite3_stmt_explain ){
+    wasm.bindingSignatures.push(
+      ["sqlite3_stmt_explain", "int", "sqlite3_stmt*", "int"],
+      ["sqlite3_stmt_isexplain", "int", "sqlite3_stmt*"]
+    );
+  }
+
+  if( !!wasm.exports.sqlite3_set_authorizer ){
+    wasm.bindingSignatures.push(
+      ["sqlite3_set_authorizer", "int", [
+        "sqlite3*",
+        new wasm.xWrap.FuncPtrAdapter({
+          name: "sqlite3_set_authorizer::xAuth",
+          signature: "i(pi"+"ssss)",
+          contextKey: (argv, argIndex)=>argv[0/*(sqlite3*)*/],
+          callProxy: (callback)=>{
+            return (pV, iCode, s0, s1, s2, s3)=>{
+              try{
+                s0 = s0 && wasm.cstrToJs(s0); s1 = s1 && wasm.cstrToJs(s1);
+                s2 = s2 && wasm.cstrToJs(s2); s3 = s3 && wasm.cstrToJs(s3);
+                return callback(pV, iCode, s0, s1, s2, s3) || 0;
+              }catch(e){
+                return e.resultCode || capi.SQLITE_ERROR;
+              }
+            }
+          }
+        }),
+        "*"/*pUserData*/
+      ]]
+    );
+  }/* sqlite3_set_authorizer() */
+
   if(false && wasm.compileOptionUsed('SQLITE_ENABLE_NORMALIZE')){
     /* ^^^ "the problem" is that this is an option feature and the
        build-time function-export list does not currently take
@@ -367,11 +377,6 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
     ["sqlite3_bind_int64","int", ["sqlite3_stmt*", "int", "i64"]],
     ["sqlite3_changes64","i64", ["sqlite3*"]],
     ["sqlite3_column_int64","i64", ["sqlite3_stmt*", "int"]],
-    ["sqlite3_create_module", "int",
-     ["sqlite3*","string","sqlite3_module*","*"]],
-    ["sqlite3_create_module_v2", "int",
-     ["sqlite3*","string","sqlite3_module*","*","*"]],
-    ["sqlite3_declare_vtab", "int", ["sqlite3*", "string:flexible"]],
     ["sqlite3_deserialize", "int", "sqlite3*", "string", "*", "i64", "i64", "int"]
     /* Careful! Short version: de/serialize() are problematic because they
        might use a different allocator than the user for managing the
@@ -407,19 +412,29 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
       "*"
     ]],
     ["sqlite3_uri_int64", "i64", ["sqlite3_filename", "string", "i64"]],
-    ["sqlite3_value_int64","i64", "sqlite3_value*"],
-    ["sqlite3_vtab_collation","string","sqlite3_index_info*","int"],
-    ["sqlite3_vtab_distinct","int", "sqlite3_index_info*"],
-    ["sqlite3_vtab_in","int", "sqlite3_index_info*", "int", "int"],
-    ["sqlite3_vtab_in_first", "int", "sqlite3_value*", "**"],
-    ["sqlite3_vtab_in_next", "int", "sqlite3_value*", "**"],
-    /*["sqlite3_vtab_config" is variadic and requires a hand-written
-      proxy.] */
-    ["sqlite3_vtab_nochange","int", "sqlite3_context*"],
-    ["sqlite3_vtab_on_conflict","int", "sqlite3*"],
-    ["sqlite3_vtab_rhs_value","int", "sqlite3_index_info*", "int", "**"]
+    ["sqlite3_value_int64","i64", "sqlite3_value*"]
   ];
 
+  if( wasm.bigIntEnabled && !!wasm.exports.sqlite3_declare_vtab ){
+    wasm.bindingSignatures.int64.push(
+      ["sqlite3_create_module", "int",
+       ["sqlite3*","string","sqlite3_module*","*"]],
+      ["sqlite3_create_module_v2", "int",
+       ["sqlite3*","string","sqlite3_module*","*","*"]],
+      ["sqlite3_declare_vtab", "int", ["sqlite3*", "string:flexible"]],
+      ["sqlite3_vtab_collation","string","sqlite3_index_info*","int"],
+      ["sqlite3_vtab_distinct","int", "sqlite3_index_info*"],
+      ["sqlite3_vtab_in","int", "sqlite3_index_info*", "int", "int"],
+      ["sqlite3_vtab_in_first", "int", "sqlite3_value*", "**"],
+      ["sqlite3_vtab_in_next", "int", "sqlite3_value*", "**"],
+      /*["sqlite3_vtab_config" is variadic and requires a hand-written
+        proxy.] */
+      ["sqlite3_vtab_nochange","int", "sqlite3_context*"],
+      ["sqlite3_vtab_on_conflict","int", "sqlite3*"],
+      ["sqlite3_vtab_rhs_value","int", "sqlite3_index_info*", "int", "**"]
+    );
+  }/* virtual table APIs */
+
   if(wasm.bigIntEnabled && !!wasm.exports.sqlite3_preupdate_hook){
     wasm.bindingSignatures.int64.push(
       ["sqlite3_preupdate_blobwrite", "int", "sqlite3*"],
@@ -725,12 +740,6 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
     ('sqlite3*', (v)=>
       __xArgPtr((v instanceof (sqlite3?.oo1?.DB || nilType))
            ? v.pointer : v))
-    ('sqlite3_index_info*', (v)=>
-      __xArgPtr((v instanceof (capi.sqlite3_index_info || nilType))
-           ? v.pointer : v))
-    ('sqlite3_module*', (v)=>
-      __xArgPtr((v instanceof (capi.sqlite3_module || nilType))
-           ? v.pointer : v))
     /**
        `sqlite3_vfs*`:
 
@@ -753,6 +762,15 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
       return __xArgPtr((v instanceof (capi.sqlite3_vfs || nilType))
                        ? v.pointer : v);
     });
+    if( wasm.exports.sqlite3_declare_vtab ){
+      wasm.xWrap.argAdapter('sqlite3_index_info*', (v)=>
+        __xArgPtr((v instanceof (capi.sqlite3_index_info || nilType))
+                  ? v.pointer : v))
+      ('sqlite3_module*', (v)=>
+        __xArgPtr((v instanceof (capi.sqlite3_module || nilType))
+                  ? v.pointer : v)
+      );
+    }
 
     const __xRcPtr = wasm.xWrap.resultAdapter('*');
     wasm.xWrap.resultAdapter('sqlite3*', __xRcPtr)
@@ -1031,12 +1049,16 @@ globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
       'sqlite3_update_hook'
     ]) {
       const x = wasm.exports[name];
+      if( !x ){
+        /* assume it was built without this API */
+        continue;
+      }
       closeArgs.length = x.length/*==argument count*/
       /* recall that undefined entries translate to 0 when passed to
          WASM. */;
       try{ capi[name](...closeArgs) }
       catch(e){
-        console.warn("close-time call of",name+"(",closeArgs,") threw:",e);
+        sqlite3.config.warn("close-time call of",name+"(",closeArgs,") threw:",e);
       }
     }
     const m = __dbCleanupMap(pDb, 0);
index 7359ea39aa7d0409d07eb126fa082dc95f482dd8..d78fbdbf376544798a6a10010cf16d6f1702d1a8 100644 (file)
 
 /**
    This file installs sqlite3.vtab, a namespace of helpers for use in
-   the creation of JavaScript implementations virtual tables.
+   the creation of JavaScript implementations virtual tables. If built
+   without virtual table support then this function does nothing.
 */
 'use strict';
 globalThis.sqlite3ApiBootstrap.initializers.push(function(sqlite3){
+  if( !sqlite3.wasm.exports.sqlite3_declare_vtab ){
+    return;
+  }
   const wasm = sqlite3.wasm, capi = sqlite3.capi, toss = sqlite3.util.toss3;
   const vtab = Object.create(null);
   sqlite3.vtab = vtab;
index c755662791e0542129d1bde418dbb4b8b30d9293..7f7e696899b86de1dcab90bff81c8f9b3f2b0c37 100644 (file)
 #  define SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
 #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... */
 #ifndef SQLITE_OMIT_DEPRECATED
 #  define SQLITE_EXTRA_INIT sqlite3_wasm_extra_init
 #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
+#  undef SQLITE_OMIT_AUTHORIZATION
+#  define SQLITE_OMIT_AUTHORIZATION
+/*Reminder re. custom sqlite3.c:
+
+  fossil clean -x
+  ./configure
+  OPTS='-DSQLITE_OMIT_VIRTUALTABLE -DSQLITE_OMIT_EXPLAIN -DSQLITE_OMIT_TRIGGER' make -e sqlite3
+*/
+/*Requires a custom sqlite3.c
+#  undef SQLITE_OMIT_TRIGGER
+#  define SQLITE_OMIT_TRIGGER
+*/
+/*TODO (requires build tweaks)
+#  undef SQLITE_OMIT_WINDOWFUNC
+#  define SQLITE_OMIT_WINDOWFUNC
+*/
+/*Requires a custom sqlite3.c
+#  undef SQLITE_OMIT_EXPLAIN
+#  define SQLITE_OMIT_EXPLAIN
+*/
+/*Requires a custom sqlite3.c
+#  undef SQLITE_OMIT_VIRTUALTABLE
+#  define SQLITE_OMIT_VIRTUALTABLE
+*/
+#  undef SQLITE_OMIT_JSON
+#  define SQLITE_OMIT_JSON
+#endif
+
 #include <assert.h>
 
 /*
@@ -941,6 +967,7 @@ const char * sqlite3__wasm_enum_json(void){
   } _DefGroup;
 
   DefGroup(vtab) {
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && !defined(SQLITE_WASM_MINIMAL)
     DefInt(SQLITE_INDEX_SCAN_UNIQUE);
     DefInt(SQLITE_INDEX_CONSTRAINT_EQ);
     DefInt(SQLITE_INDEX_CONSTRAINT_GT);
@@ -968,6 +995,7 @@ const char * sqlite3__wasm_enum_json(void){
     DefInt(SQLITE_FAIL);
     //DefInt(SQLITE_ABORT); // Also an error code
     DefInt(SQLITE_REPLACE);
+#endif /*!SQLITE_OMIT_VIRTUALTABLE*/
   } _DefGroup;
 
 #undef DefGroup
@@ -1127,6 +1155,7 @@ const char * sqlite3__wasm_enum_json(void){
     } _StructBinder;
 #undef CurrentStruct
 
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && !defined(SQLITE_WASM_MINIMAL)
     /**
      ** Workaround: in order to map the various inner structs from
      ** sqlite3_index_info, we have to uplift those into constructs we
@@ -1203,6 +1232,8 @@ const char * sqlite3__wasm_enum_json(void){
     } _StructBinder;
 #undef CurrentStruct
 
+#endif /*!SQLITE_OMIT_VIRTUALTABLE*/
+
 #if SQLITE_WASM_TESTS
 #define CurrentStruct WasmTestStruct
     StructBinder {
@@ -1572,6 +1603,7 @@ sqlite3_kvvfs_methods * sqlite3__wasm_kvvfs_methods(void){
   return &sqlite3KvvfsMethods;
 }
 
+#if !defined(SQLITE_OMIT_VIRTUALTABLE) && !defined(SQLITE_WASM_MINIMAL)
 /*
 ** This function is NOT part of the sqlite3 public API. It is strictly
 ** for use by the sqlite project's own JS/WASM bindings.
@@ -1594,6 +1626,7 @@ int sqlite3__wasm_vtab_config(sqlite3 *pDb, int op, int arg){
     return SQLITE_MISUSE;
   }
 }
+#endif /*!SQLITE_OMIT_VIRTUALTABLE*/
 
 /*
 ** This function is NOT part of the sqlite3 public API. It is strictly
index cf97208b994a945a1a9380f503d11c9895d3e608..c49a82d36ec797842895cd8877e066270a00f7d4 100644 (file)
@@ -1510,6 +1510,7 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
   ////////////////////////////////////////////////////////////////////
     .t({
       name: "sqlite3_set_authorizer()",
+      predicate: ()=>!!wasm.exports.sqlite3_set_authorizer || "Missing sqlite3_set_authorizer()",
       test:function(sqlite3){
         T.assert(capi.SQLITE_IGNORE>0)
           .assert(capi.SQLITE_DENY>0);
@@ -2152,7 +2153,7 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
   ////////////////////////////////////////////////////////////////////////
     .t({
       name: 'virtual table #1: eponymous w/ manual exception handling',
-      predicate: ()=>!!capi.sqlite3_index_info,
+      predicate: ()=>!!capi.sqlite3_create_module || "Missing vtab support",
       test: function(sqlite3){
         const VT = sqlite3.vtab;
         const tmplCols = Object.assign(Object.create(null),{
@@ -2349,7 +2350,7 @@ globalThis.sqlite3InitModule = sqlite3InitModule;
   ////////////////////////////////////////////////////////////////////////
     .t({
       name: 'virtual table #2: non-eponymous w/ automated exception wrapping',
-      predicate: ()=>!!capi.sqlite3_index_info,
+      predicate: ()=>!!capi.sqlite3_create_module || "Missing vtab support",
       test: function(sqlite3){
         const VT = sqlite3.vtab;
         const tmplCols = Object.assign(Object.create(null),{
index c5b9997bdcaf7bd731a07c10d7956a5032ca9a0f..608c658c9e6b10d22463c9bf33de54797d31ff21 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Restructuring\sof\sthe\swasm\sbuild\sto\ssupport\san\sexperimental\s'minimal'\sbuild\smode\swhich\selides\sall\snon-core\sAPIs.
-D 2024-07-24T22:07:18.372
+C wasm\sminimal\sbuild:\sstrip\sauthorizers\sand\sJSON\ssupport\s(saves\sapprox\s35kb).\sStrip\svtab\ssupport\sfrom\sthe\sJS\sbits\sbut\scannot\syet\sstrip\sit\sfrom\sthe\sC\sbits\sbecause\sthat\srequires\sa\scustom-configured\ssqlite3.c.
+D 2024-07-24T23:58:28.415
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -593,7 +593,7 @@ F ext/userauth/sqlite3userauth.h 7f3ea8c4686db8e40b0a0e7a8e0b00fac13aa7a3
 F ext/userauth/user-auth.txt ca7e9ee82ca4e1c1744295f8184dd70edfae1992865d26c64303f539eb6c084c
 F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb
 F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
-F ext/wasm/GNUmakefile 3940f4e685f8a8b521afaed02bb9dbc9058540a918b7d37ba02bd35c6e359765
+F ext/wasm/GNUmakefile d4f6586d9a36ee2869a8c7f77227a8b7f42b6c4623f3be594beafb1554ab20d9
 F ext/wasm/README-dist.txt 6382cb9548076fca472fb3330bbdba3a55c1ea0b180ff9253f084f07ff383576
 F ext/wasm/README.md a8a2962c3aebdf8d2104a9102e336c5554e78fc6072746e5daf9c61514e7d193
 F ext/wasm/SQLTester/GNUmakefile e0794f676d55819951bbfae45cc5e8d7818dc460492dc317ce7f0d2eca15caff
@@ -601,10 +601,12 @@ F ext/wasm/SQLTester/SQLTester.mjs ce765c0ad7d57f93553d12ef4dca574deb00300134a26
 F ext/wasm/SQLTester/SQLTester.run.mjs c72b7fe2072d05992f7a3d8c6a1d34e95712513ceabe40849784e24e41c84638
 F ext/wasm/SQLTester/index.html 3f8a016df0776be76605abf20e815ecaafbe055abac0e1fe5ea080e7846b760d
 F ext/wasm/SQLTester/touint8array.c 2d5ece04ec1393a6a60c4bf96385bda5e1a10ad49f3038b96460fc5e5aa7e536
-F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-core 8f5f661fbe853cf830337c549d81dfafc7836e4d3cf1c042a4262c1627866c06 w ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-api
+F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-auth 7ac80cc3b6a6d52e041bb295e85555ce797be78c15ef2008a64ae58815014080
+F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-core 400213eb52a7e5ad5f448053d375cacf4dac2cf45d134f3edfe485ae4a49a183
 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-session 213b6c04267cb9bd760172db011eb1650732805fb3d01f9395478a8ceec18eb0
+F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-vtab fd57af1f4502a052be27d8402df74be1dc60fcb6a687d372972abd90e424120a
 F ext/wasm/api/EXPORTED_RUNTIME_METHODS.sqlite3-api 1ec3c73e7d66e95529c3c64ac3de2470b0e9e7fbf7a5b41261c367cf4f1b7287
 F ext/wasm/api/README.md 34fe11466f9c1d81b10a0469e1114e5f1c5a6365c73d80a1a6ca639a1a358b73
 F ext/wasm/api/extern-post-js.c-pp.js c4154a7f90c2d7e51fd6738273908152036c3457fdc0b6523f1be3ef51105aac
@@ -613,7 +615,7 @@ F ext/wasm/api/post-js-footer.js cd0a8ec768501d9bd45d325ab0442037fb0e33d1f3b4f08
 F ext/wasm/api/post-js-header.js 04dc12c3edd666b64a1b4ef3b6690c88dcc653f26451fd4734472d8e29c1c122
 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-glue.c-pp.js ba759315ee7a7cf8e60d8fb0c1a4ce2bb735d54e19d8797b5afd13237784101c
+F ext/wasm/api/sqlite3-api-glue.c-pp.js 54b32b5321105a72d6f3d3e8b77f28f162d0367b08c63184263d3f85f3d7dbed
 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-worker1.c-pp.js 5cc22a3c0d52828cb32aad8691488719f47d27567e63e8bc8b832d74371c352d
@@ -622,8 +624,8 @@ F ext/wasm/api/sqlite3-opfs-async-proxy.js e8f1df56e97a29004a95a2eddd26778f52c33
 F ext/wasm/api/sqlite3-vfs-helper.c-pp.js 3f828cc66758acb40e9c5b4dcfd87fd478a14c8fb7f0630264e6c7fa0e57515d
 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-vtab-helper.c-pp.js a2fcbc3fecdd0eea229283584ebc122f29d98194083675dbe5cb2cf3a17fe309
-F ext/wasm/api/sqlite3-wasm.c 2f795a9689e7c28616a74969be84f567f59a641ba08e5ade0697faf1ba3dad48
+F ext/wasm/api/sqlite3-vtab-helper.c-pp.js e809739d71e8b35dfe1b55d24d91f02d04239e6aef7ca1ea92a15a29e704f616
+F ext/wasm/api/sqlite3-wasm.c 09a938fc570f282e602acd111147c7b74b5332da72540c512a79b916ab57882a
 F ext/wasm/api/sqlite3-worker1-promiser.c-pp.js 46f303ba8ddd1b2f0a391798837beddfa72e8c897038c8047eda49ce7d5ed46b
 F ext/wasm/api/sqlite3-worker1.c-pp.js 5e8706c2c4af2a57fbcdc02f4e7ef79869971bc21bb8ede777687786ce1c92d5
 F ext/wasm/batch-runner-sahpool.html e9a38fdeb36a13eac7b50241dfe7ae066fe3f51f5c0b0151e7baee5fce0d07a7
@@ -669,7 +671,7 @@ F ext/wasm/test-opfs-vfs.html 1f2d672f3f3fce810dfd48a8d56914aba22e45c6834e262555
 F ext/wasm/test-opfs-vfs.js 1618670e466f424aa289859fe0ec8ded223e42e9e69b5c851f809baaaca1a00c
 F ext/wasm/tester1-worker.html ebc4b820a128963afce328ecf63ab200bd923309eb939f4110510ab449e9814c
 F ext/wasm/tester1.c-pp.html 1c1bc78b858af2019e663b1a31e76657b73dc24bede28ca92fbe917c3a972af2
-F ext/wasm/tester1.c-pp.js dd5f9cefd5d99cca5c5f415c0f6b6afafb40a0aa6cf544aa0d167c5928f41056
+F ext/wasm/tester1.c-pp.js a88b9c669715adc1c5e76750ca8c0994ae33d04572e3bf295b6f4f5870f3bdf3
 F ext/wasm/tests/opfs/concurrency/index.html 657578a6e9ce1e9b8be951549ed93a6a471f4520a99e5b545928668f4285fb5e
 F ext/wasm/tests/opfs/concurrency/test.js d08889a5bb6e61937d0b8cbb78c9efbefbf65ad09f510589c779b7cc6a803a88
 F ext/wasm/tests/opfs/concurrency/worker.js 0a8c1a3e6ebb38aabbee24f122693f1fb29d599948915c76906681bb7da1d3d2
@@ -2197,8 +2199,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 bcc31846964102385d5a21eb5e85d7db153b155e76b4e2847c9453d3d0e1af04
-R f16b6030874c752d822201bd54acf1fe
+P ee2191f7302210100fa0b29ace8156531ad995bf61aa2642e526e0901d0c6862
+R 72e8c79f1e4399a95154f130ea5870d2
 U stephan
-Z b5a8cea365fa73a1ac2818f134bd3edc
+Z 427f56307156eafbb2685aac023af7a2
 # Remove this line to create a well-formed Fossil manifest.
index 29c8b9a12e9b6bcf0bccbcaacb7a75a466a4fc83..01abe9750ddd97109610cc62a4f88bf434c03786 100644 (file)
@@ -1 +1 @@
-ee2191f7302210100fa0b29ace8156531ad995bf61aa2642e526e0901d0c6862
+eb64d106551718467e0f6c6b53695410bf4c566901008e4cda8580d0f7efa7b0