]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Minor wasm build simplifications and extend the JS bindings of sqlite3_column/value_t...
authorstephan <stephan@noemail.net>
Tue, 4 Nov 2025 22:01:55 +0000 (22:01 +0000)
committerstephan <stephan@noemail.net>
Tue, 4 Nov 2025 22:01:55 +0000 (22:01 +0000)
FossilOrigin-Name: cee2e2576f5e91911a019bff025ee6071850c0d75941e8746f10d57b56bd830a

1  2 
ext/wasm/GNUmakefile
ext/wasm/mkwasmbuilds.c
ext/wasm/tester1.c-pp.js
manifest
manifest.tags
manifest.uuid

index 937e16d6ef00cc91f143fd440279130619285b9d,73fa15a44de9b26ee9fce25acdb5f8deaa96370c..31737ee60a23479a9cf813d305238ac5f96592bb
@@@ -853,8 -849,9 +849,8 @@@ sqlite3-api.jses += $(dir.api)/sqlite3-
  sqlite3-license-version.js = $(dir.tmp)/sqlite3-license-version.js
  $(sqlite3-license-version.js): $(bin.version-info) \
    $(dir.api)/sqlite3-license-version-header.js
-       @echo '$(logtag.@) $(emo.disk)'; \
-               $(call b.mkdir@); \
+       @echo '$(logtag.@) $(emo.disk)'; \
+       $(call b.mkdir@); { \
 -               \
                cat $(dir.api)/sqlite3-license-version-header.js || exit $$?;  \
                echo '/*'; \
                echo '** This code was built from sqlite3 version...'; \
Simple merge
index f72e0803fc44d4ad2c08100fda5c5b31fa0f763c,008f55a77b1aa3440801d96e4e1c89f5e4c64bc5..cff66c39c9833e50a0fd304fb0fdf1bec2a8cb7a
@@@ -369,6 -369,88 +369,88 @@@ globalThis.sqlite3InitModule = sqlite3I
      clearOnInit: true,
      initialCapacity: 6
    };
 -     confirming that it can be read with an SEE key and cannot be read
+ //#if enable-see
+   /**
+      Code consolidator for SEE sanity checks for various VFSes. ctor
+      is the VFS's oo1.DB-type constructor.  ctorOptFunc(bool) is a
+      function which must return a constructor args object for ctor. It
+      is passed true if the db needs to be cleaned up/unlinked before
+      opening it (OPFS) and false if not (how that is done is
+      VFS-dependent).  dbUnlink is a function which is expected to
+      unlink() the db file if the ctorOpfFunc does not do so when
+      passed true (kvvfs).
+      This function initializes the db described by ctorOptFunc(...),
+      writes some secret info into it, and re-opens it twice to
++     confirmi that it can be read with an SEE key and cannot be read
+      without one.
+   */
+   T.seeBaseCheck = function(ctor, ctorOptFunc, dbUnlink){
+     let initDb = true;
+     const tryKey = function(keyKey, key, expectCount){
+       let db;
+       //console.debug('tryKey()',arguments);
+       try {
+         if (initDb) {
+           const ctoropt = ctorOptFunc(initDb);
+           initDb = false;
+           db = new ctor({
+             ...ctoropt,
+             [keyKey]: key
+           });
+           db.exec([
+             "drop table if exists t;",
+             "create table t(a);"
+           ]);
+           db.close();
+           db = null;
+           // Ensure that it's actually encrypted...
+           let err;
+           try {
+             db = new ctor(ctorOptFunc(false));
+             T.assert(db, 'db opened') /* opening is fine, but... */;
+             db.exec("select 1 from sqlite_schema");
+             console.warn("(should not be reached) sessionStorage =", sessionStorage);
+           } catch (e) {
+             err = e;
+           } finally {
+             db.close()
+             db = null;
+           }
+           T.assert(err, "Expecting an exception")
+             .assert(capi.SQLITE_NOTADB == err.resultCode,
+                     "Expecting NOTADB");
+         }/*initDb*/
+         db = new ctor({
+           ...ctorOptFunc(false),
+           [keyKey]: key
+         });
+         db.exec("insert into t(a) values (1),(2)");
+         T.assert(expectCount === db.selectValue('select sum(a) from t'));
+       } finally {
+         if (db) db.close();
+       }
+     };
+     const hexFoo = new Uint8Array([0x66,0x6f,0x6f]/*=="foo"*/);
+     dbUnlink();
+     tryKey('textkey', 'foo', 3);
+     T.assert( !initDb );
+     tryKey('textkey', 'foo', 6);
+     dbUnlink();
+     initDb = true;
+     tryKey('key', 'foo', 3);
+     T.assert( !initDb );
+     tryKey('key', hexFoo, 6);
+     dbUnlink();
+     initDb = true;
+     tryKey('hexkey', hexFoo, 3);
+     T.assert( !initDb );
+     tryKey('hexkey', hexFoo, 6);
+     dbUnlink();
+   },
+ //#endif enable-see
    ////////////////////////////////////////////////////////////////////////
    // End of infrastructure setup. Now define the tests...
    ////////////////////////////////////////////////////////////////////////
diff --cc manifest
index 5d972e1e29f22964e6211d4ca89fb48b02d445d5,103497b9df1ec6690a017643c5d4ed644d98f291..1ab0e604f523a226e81f202c40cd50d5a7d2db1b
+++ b/manifest
@@@ -1,5 -1,5 +1,5 @@@
- C Version\s3.51.0
- D 2025-11-04T19:38:17.314
 -C Consolidate\sthe\sthree\sVFS-specific\sSEE\stests\sinto\sa\sshared\sroutine.
 -D 2025-11-04T01:03:58.330
++C Minor\swasm\sbuild\ssimplifications\sand\sextend\sthe\sJS\sbindings\sof\ssqlite3_column/value_text()\ssuch\sthat\sthey\sinclude\sembeded\sNUL\sbytes\sin\stheir\sresult\sstrings\srather\sthan\struncate\sthem\sat\sNUL.\sConsolidate\sthe\sshell.c\sbuild\sflags\sfrom\sthe\scanonical\sand\sautoconf\smakefiles\sinto\sthe\sconfigure\sscript.
++D 2025-11-04T22:01:55.830
  F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
  F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
  F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@@ -575,8 -575,7 +575,7 @@@ F ext/session/sessionwor.test 6fd9a2256
  F ext/session/sqlite3session.c b3de195ce668cace9b324599bf6255a70290cbfb5451e826e946f3aee6e64c54
  F ext/session/sqlite3session.h 7404723606074fcb2afdc6b72c206072cdb2b7d8ba097ca1559174a80bc26f7a
  F ext/session/test_session.c 8766b5973a6323934cb51248f621c3dc87ad2a98f023c3cc280d79e7d78d36fb
- F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
- F ext/wasm/GNUmakefile 3dc01e673c456d3b752674c9407276e8fef35dec1d304b3cc1de362f019b2a09
 -F ext/wasm/GNUmakefile cb0c055a3d10afda09eeb441df56d2840d1efe88cc6a84978333f7e9640de834
++F ext/wasm/GNUmakefile 74c73254fb44c82d517a8907da9866d5d3ef1a533addaeb4322f470e0fb81ba3
  F ext/wasm/README-dist.txt f01081a850ce38a56706af6b481e3a7878e24e42b314cfcd4b129f0f8427066a
  F ext/wasm/README.md 2e87804e12c98f1d194b7a06162a88441d33bb443efcfe00dc6565a780d2f259
  F ext/wasm/SQLTester/GNUmakefile e0794f676d55819951bbfae45cc5e8d7818dc460492dc317ce7f0d2eca15caff
@@@ -632,7 -628,7 +628,7 @@@ F ext/wasm/index.html 54e27db740695ab2c
  F ext/wasm/jaccwabyt/jaccwabyt.js bbac67bc7a79dca34afe6215fd16b27768d84e22273507206f888c117e2ede7d
  F ext/wasm/jaccwabyt/jaccwabyt.md 167fc0b624c9bc2c477846e336de9403842d81b1a24fc4d3b24317cb9eba734f
  F ext/wasm/mkdist.sh 64d53f469c823ed311f6696f69cec9093f745e467334b34f5ceabdf9de3c5b28 x
- F ext/wasm/mkwasmbuilds.c 1b53c4d2a1350c19a96a8cdfbda6a39baea9d2142bfe0cbef0ccb0e898787f47
 -F ext/wasm/mkwasmbuilds.c 431a54ea363272814b7ce131ed28b786f2c60c1cd086d5fb8813cdb5a0167c06
++F ext/wasm/mkwasmbuilds.c 5e194df8763c8e5b2de070575a5f1bc7d7fb862f03c09d3cb9c56e0fa57b7e77
  F ext/wasm/module-symbols.html e54f42112e0aac2a31f850ab33e7f2630a2ea4f63496f484a12469a2501e07e2
  F ext/wasm/scratchpad-wasmfs.html a3d7388f3c4b263676b58b526846e9d02dfcb4014ff29d3a5040935286af5b96
  F ext/wasm/scratchpad-wasmfs.mjs 66034b9256b218de59248aad796760a1584c1dd842231505895eff00dbd57c63
@@@ -646,9 -642,9 +642,9 @@@ F ext/wasm/sql/000-mandelbrot.sql 77533
  F ext/wasm/sql/001-sudoku.sql 35b7cb7239ba5d5f193bc05ec379bcf66891bce6f2a5b3879f2f78d0917299b5
  F ext/wasm/test-opfs-vfs.html 1f2d672f3f3fce810dfd48a8d56914aba22e45c6834e262555e685bce3da8c3f
  F ext/wasm/test-opfs-vfs.js 1618670e466f424aa289859fe0ec8ded223e42e9e69b5c851f809baaaca1a00c
- F ext/wasm/tester1-worker.c-pp.html 883881eeac14eeeecc8ff22acf9fe0f18a97cacb48be08ebb0bae891ceded584
- F ext/wasm/tester1.c-pp.html 949920126dcf477925d8d540093d9cc374d3ab4c4ddee920c1dcadcf37917306
- F ext/wasm/tester1.c-pp.js 2b014884dadf28928fabcb688746ca87145673eef75e154486505a266203fc15
+ F ext/wasm/tester1-worker.c-pp.html 0e432ec2c0d99cd470484337066e8d27e7aee4641d97115338f7d962bf7b081a
+ F ext/wasm/tester1.c-pp.html 52d88fe2c6f21a046030a36410b4839b632f4424028197a45a3d5669ea724ddb
 -F ext/wasm/tester1.c-pp.js 76ed6a87c673cf55b0bb786d7cb8cafe04eebe0fb3438a4ed0bb040843e305c1
++F ext/wasm/tester1.c-pp.js 56a7889415b996f684765aff07d35ac8a31343201f887ac61d7dd14678d9f0f0
  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
@@@ -2171,11 -2167,8 +2167,9 @@@ F tool/version-info.c 33d0390ef484b3b1c
  F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
  F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98
  F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
- P ccabbe06d4e0650eecc91296d6a3040ed7fef06b47e4d63393a2367c8c8f55cf
- R 9324db4aaf883cfc2983724be7d6c4b2
- T +sym-major-release *
- T +sym-release *
- T +sym-version-3.51.0 *
- U drh
- Z bd3359fae465c4238136a20bd4edb791
 -P 900885c4fb3071e461bf868e9e68d0d8f3d3e83a1bcbf5c9c68179c701c1fb92
 -R cf212ac209e135421eafb888295b09f1
++P fb2c931ae597f8d00a37574ff67aeed3eced4e5547f9120744ae4bfa8e74527b 8ac0bf125ddb6cc86a6825dcfe8895559835eca85ef14b5ad489f7c8159462e4
++R f6a6dc74b61ecf4b92fdf7025309e13a
++T +closed 8ac0bf125ddb6cc86a6825dcfe8895559835eca85ef14b5ad489f7c8159462e4 Closed\sby\sintegrate-merge.
+ U stephan
 -Z 6ccf2b6311a3c5ee1b7f2de43939fd38
++Z 6979379120c5ced749593cd4e2d1485e
  # Remove this line to create a well-formed Fossil manifest.
diff --cc manifest.tags
index 7cf74e2b515d48e2fd40ea725ef01a9a29ad1a59,846713bd4edefde7b85b1c7e45f97cca173d759e..bec971799ff1b8ee641c166c7aeb22d12c785393
@@@ -1,5 -1,2 +1,2 @@@
 -branch wasm-post-3.51
 -tag wasm-post-3.51
 +branch trunk
 +tag trunk
- tag release
- tag major-release
- tag version-3.51.0
diff --cc manifest.uuid
index d96096a32a57e35f874b056b47e5ee868fbe9135,e09a77b28ef243e050864898242d57e8edf5fdf0..0ebbe14be01eb093356911ff4ba39eda0a901bed
@@@ -1,1 -1,1 +1,1 @@@
- fb2c931ae597f8d00a37574ff67aeed3eced4e5547f9120744ae4bfa8e74527b
 -8ac0bf125ddb6cc86a6825dcfe8895559835eca85ef14b5ad489f7c8159462e4
++cee2e2576f5e91911a019bff025ee6071850c0d75941e8746f10d57b56bd830a