Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add a JS test confirming that binding of statement parameters in a subquery works. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
5dfaf0bce83c3e15ad605e3f07291ce2 |
User & Date: | stephan 2023-06-05 11:26:59.145 |
Context
2023-06-05
| ||
11:30 | Remove extraneous console trace output from previous check-in. (check-in: c9f6e36d59 user: stephan tags: trunk) | |
11:26 | Add a JS test confirming that binding of statement parameters in a subquery works. (check-in: 5dfaf0bce8 user: stephan tags: trunk) | |
01:05 | Generalize the src-verify.c utility program and provide additional documentation in the header comment. (check-in: 7ed84046ef user: drh tags: trunk) | |
Changes
Changes to ext/wasm/tester1.c-pp.js.
︙ | ︙ | |||
94 95 96 97 98 99 100 101 102 103 104 105 106 107 | ln.classList.add(c); } } ln.append(document.createTextNode(normalizeArgs(args).join(' '))); logTarget.append(ln); }; const cbReverse = document.querySelector('#cb-log-reverse'); const cbReverseKey = 'tester1:cb-log-reverse'; const cbReverseIt = ()=>{ logTarget.classList[cbReverse.checked ? 'add' : 'remove']('reverse'); //localStorage.setItem(cbReverseKey, cbReverse.checked ? 1 : 0); }; cbReverse.addEventListener('change', cbReverseIt, true); /*if(localStorage.getItem(cbReverseKey)){ | > | 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | ln.classList.add(c); } } ln.append(document.createTextNode(normalizeArgs(args).join(' '))); logTarget.append(ln); }; const cbReverse = document.querySelector('#cb-log-reverse'); //cbReverse.setAttribute('checked','checked'); const cbReverseKey = 'tester1:cb-log-reverse'; const cbReverseIt = ()=>{ logTarget.classList[cbReverse.checked ? 'add' : 'remove']('reverse'); //localStorage.setItem(cbReverseKey, cbReverse.checked ? 1 : 0); }; cbReverse.addEventListener('change', cbReverseIt, true); /*if(localStorage.getItem(cbReverseKey)){ |
︙ | ︙ | |||
3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 | wasm.pstack.restore(stackPtr); db1.close(); db2.close(); } } })/*session API sanity tests*/ ;/*end of session API group*/; //////////////////////////////////////////////////////////////////////// log("Loading and initializing sqlite3 WASM module..."); if(0){ self.sqlite3ApiConfig = { debug: ()=>{}, log: ()=>{}, | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 | wasm.pstack.restore(stackPtr); db1.close(); db2.close(); } } })/*session API sanity tests*/ ;/*end of session API group*/; //////////////////////////////////////////////////////////////////////// T.g('Bug Reports') .t({ name: 'Delete via bound parameter in subquery', test: function(sqlite3){ // Testing https://sqlite.org/forum/forumpost/40ce55bdf5 // with the exception that that post uses "external content" // for the FTS index. const db = new sqlite3.oo1.DB(':memory:','wt'); db.exec([ "create virtual table f using fts5 (path);", "insert into f(path) values('abc'),('def'),('ghi');" ]); const fetchEm = ()=> db.exec({ sql: "SELECT * FROM f order by path", rowMode: 'array' }); const dump = function(lbl){ let rc = fetchEm(); log((lbl ? (lbl+' results') : ''),rc); }; //dump('Full fts table'); let rc = fetchEm(); T.assert(3===rc.length); db.exec(` delete from f where rowid in ( select rowid from f where path = :path )`, {bind: {":path": "def"}} ); //dump('After deleting one entry via subquery'); rc = fetchEm(); T.assert(2===rc.length) .assert('abcghi'===rc.join('')); //log('rc =',rc); db.close(); } }) ;/*end of Bug Reports group*/; //////////////////////////////////////////////////////////////////////// log("Loading and initializing sqlite3 WASM module..."); if(0){ self.sqlite3ApiConfig = { debug: ()=>{}, log: ()=>{}, |
︙ | ︙ |