aboutsummaryrefslogtreecommitdiff
path: root/ext/wasm/testing-worker1-promiser.js
diff options
context:
space:
mode:
authorstephan <stephan@noemail.net>2022-08-24 20:57:37 +0000
committerstephan <stephan@noemail.net>2022-08-24 20:57:37 +0000
commit407f75378e2bfebfd21ca56b6986154f0c35d1ac (patch)
treec22591d4e185d9717feaa985d49ae1cd64095950 /ext/wasm/testing-worker1-promiser.js
parent3734401a95dc92f7cb7c3a86875370f1598213aa (diff)
downloadsqlite-407f75378e2bfebfd21ca56b6986154f0c35d1ac.tar.gz
sqlite-407f75378e2bfebfd21ca56b6986154f0c35d1ac.zip
Change DB.exec() rowMode default from 'stmt' to 'array', per /chat discussion. Add DB.exec() rowMode option for fetching a specific column by name. Add result column names to worker1 exec() callback interface, as there's otherwise no way to get that info from a worker.
FossilOrigin-Name: 1bb37e5c477b9eb098362f74a45a55be23d450fe45cdff58c1cbff08b5b3998f
Diffstat (limited to 'ext/wasm/testing-worker1-promiser.js')
-rw-r--r--ext/wasm/testing-worker1-promiser.js53
1 files changed, 49 insertions, 4 deletions
diff --git a/ext/wasm/testing-worker1-promiser.js b/ext/wasm/testing-worker1-promiser.js
index a2f3a2523..63401033c 100644
--- a/ext/wasm/testing-worker1-promiser.js
+++ b/ext/wasm/testing-worker1-promiser.js
@@ -166,16 +166,19 @@
if(undefined === f.counter) f.counter = 0;
if(null === ev.rowNumber){
/* End of result set. */
- T.assert(undefined === ev.row);
+ T.assert(undefined === ev.row)
+ .assert(2===ev.columnNames.length)
+ .assert('a'===ev.columnNames[0])
+ .assert('B'===ev.columnNames[1]);
}else{
T.assert(ev.rowNumber > 0);
++f.counter;
}
log("exec() result row:",ev);
- T.assert(null === ev.rowNumber || 'number' === typeof ev.row.b);
+ T.assert(null === ev.rowNumber || 'number' === typeof ev.row.B);
};
await wtest('exec',{
- sql: 'select a a, b b from t order by a',
+ sql: 'select a a, b B from t order by a limit 3',
callback: resultRowTest1,
rowMode: 'object'
}, function(ev){
@@ -183,6 +186,48 @@
resultRowTest1.counter = 0;
});
+ const resultRowTest2 = function f(ev){
+ if(null === ev.rowNumber){
+ /* End of result set. */
+ T.assert(undefined === ev.row)
+ .assert(1===ev.columnNames.length)
+ .assert('a'===ev.columnNames[0])
+ }else{
+ T.assert(ev.rowNumber > 0);
+ f.counter = ev.rowNumber;
+ }
+ log("exec() result row:",ev);
+ T.assert(null === ev.rowNumber || 'number' === typeof ev.row);
+ };
+ await wtest('exec',{
+ sql: 'select a a from t limit 3',
+ callback: resultRowTest2,
+ rowMode: 0
+ }, function(ev){
+ T.assert(3===resultRowTest2.counter);
+ });
+
+ const resultRowTest3 = function f(ev){
+ if(null === ev.rowNumber){
+ T.assert(3===ev.columnNames.length)
+ .assert('foo'===ev.columnNames[0])
+ .assert('bar'===ev.columnNames[1])
+ .assert('baz'===ev.columnNames[2]);
+ }else{
+ f.counter = ev.rowNumber;
+ T.assert('number' === typeof ev.row);
+ }
+ };
+ await wtest('exec',{
+ sql: "select 'foo' foo, a bar, 'baz' baz from t limit 2",
+ callback: resultRowTest3,
+ columnNames: [],
+ rowMode: ':bar'
+ }, function(ev){
+ log("exec() result row:",ev);
+ T.assert(2===resultRowTest3.counter);
+ });
+
await wtest('exec',{
multi: true,
sql:[
@@ -220,7 +265,7 @@
await wtest('close', (ev)=>{
T.assert(undefined === ev.result.filename);
- }).finally(()=>log("That's all, folks!"));
+ }).finally(()=>logHtml('',"That's all, folks!"));
}/*runTests2()*/;