]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
batch-runner.js: force WebSQL batches to not abort for a failed statement (necessary...
authorstephan <stephan@noemail.net>
Fri, 30 Sep 2022 15:24:58 +0000 (15:24 +0000)
committerstephan <stephan@noemail.net>
Fri, 30 Sep 2022 15:24:58 +0000 (15:24 +0000)
FossilOrigin-Name: 60f0c5cb04d2baf8431e523434d8753e39377f4b2c6bad225c2e5487a4be419b

ext/wasm/batch-runner.js
manifest
manifest.uuid

index ad281c2e9d3376c9a8aff9bb2ae3b4de8517a302..36083e62f1e3781ac695c016718a7820c4dcb7a0 100644 (file)
 
       let runner;
       if('websql'===db.id){
+        const who = this;
         runner = function(resolve, reject){
           /* WebSQL cannot execute multiple statements, nor can it execute SQL without
              an explicit transaction. Thus we have to do some fragile surgery on the
                   tx.executeSql(s,[], ()=>{}, (t,e)=>{
                     console.error("WebSQL error",e,"SQL =",s);
                     who.logErr(e.message);
-                    throw e;
+                    //throw e;
+                    return false;
                   });
                   metrics.stepTotal += performance.now() - t;
                 }
             const nextBatch = function(){
               if(sqls.length){
                 console.log("websql sqls.length",sqls.length,'of',n);
-                db.handle.transaction(transaction, reject, nextBatch);
+                db.handle.transaction(transaction, (e)=>{
+                  who.logErr("Ignoring and contiuing:",e.message)
+                  //reject(e);
+                  return false;
+                }, nextBatch);
               }else{
                 resolve(who);
               }
           }catch(e){
             //this.gotErr = e;
             console.error("websql error:",e);
-            reject(e);
+            who.logErr(e.message);
+            //reject(e);
           }
         }.bind(this);
       }else{/*sqlite3 db...*/
             //this.gotErr = e;
             reject(e);
           }finally{
+            capi.sqlite3_exec(db.handle,"rollback;",0,0,0);
             wasm.scopedAllocPop(stack);
           }
         }.bind(this);
     }/*run()*/
   }/*App*/;
 
-  self.sqlite3TestModule.initSqlite3().then(function(sqlite3){
+  self.sqlite3TestModule.initSqlite3().then(function(sqlite3_){
+    sqlite3 = sqlite3_;
     self.App = App /* only to facilitate dev console access */;
     App.run(sqlite3);
   });
index 350f1b14837b37773a0cc82d0979426d135c2043..6855cfc14732f2055a9735ac7738fd92e80f6b30 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Expose\ssqlite3_msize()\sto\swasm.
-D 2022-09-30T12:10:36.196
+C batch-runner.js:\sforce\sWebSQL\sbatches\sto\snot\sabort\sfor\sa\sfailed\sstatement\s(necessary\sfor\sapples-to-apples-ish\sbenchmark\scomparisons).
+D 2022-09-30T15:24:58.096
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -493,7 +493,7 @@ F ext/wasm/api/sqlite3-api-worker1.js d5d5b7fac4c4731c38c7e03f4f404b2a95c388a2a1
 F ext/wasm/api/sqlite3-wasi.h 25356084cfe0d40458a902afb465df8c21fc4152c1d0a59b563a3fba59a068f9
 F ext/wasm/api/sqlite3-wasm.c 336389b23c9b83763177499e49a0967949c392b2f7d84fbbb52ad6678e159f18
 F ext/wasm/batch-runner.html c363032aba7a525920f61f8be112a29459f73f07e46f0ba3b7730081a617826e
-F ext/wasm/batch-runner.js a94dd0005b34cb4e654a799fbe6357a66070510bbbe5d116cf1a8d4f9901bd80
+F ext/wasm/batch-runner.js ce92650a6681586c89bef26ceae96674a55ca5a9727815202ca62e1a00ff5015
 F ext/wasm/common/SqliteTestUtil.js 647bf014bd30bdd870a7e9001e251d12fc1c9ec9ce176a1004b838a4b33c5c05
 F ext/wasm/common/emscripten.css 3d253a6fdb8983a2ac983855bfbdd4b6fa1ff267c28d69513dd6ef1f289ada3f
 F ext/wasm/common/testing.css 3a5143699c2b73a85b962271e1a9b3241b30d90e30d895e4f55665e648572962
@@ -2029,8 +2029,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 8a7998709f859a562cf6829485cb9921f8823af0efabe003741348ab1169fb89
-R 6289539b45a526ce95fc98c2c59f8773
+P aa6ad34f3b693b554be58ee2895f79397162c5b8877c709653c8508fc625e8f4
+R ee4d9e4b75d1595fd50d7230f8809959
 U stephan
-Z 68420fe602124bac34ea19b4b762f3c8
+Z d21afcaefd67f3605743128101420e02
 # Remove this line to create a well-formed Fossil manifest.
index cc329fd8063a3da94e984fe7a664c0cbaa49a800..6464846c21fda99609756f88b7a851dcc65e3662 100644 (file)
@@ -1 +1 @@
-aa6ad34f3b693b554be58ee2895f79397162c5b8877c709653c8508fc625e8f4
\ No newline at end of file
+60f0c5cb04d2baf8431e523434d8753e39377f4b2c6bad225c2e5487a4be419b
\ No newline at end of file