diff options
author | stephan <stephan@noemail.net> | 2022-12-24 11:16:49 +0000 |
---|---|---|
committer | stephan <stephan@noemail.net> | 2022-12-24 11:16:49 +0000 |
commit | 4b4ae86445c621a3eb6b67b96c67a3eb29d9751a (patch) | |
tree | f3ef1a3552519df3b8c2ff7d5fdeb4390e550e33 /ext/wasm/api/sqlite3-api-oo1.js | |
parent | 0cdc01d01a288a83327aaa3ed9d29966ffe7b81f (diff) | |
download | sqlite-4b4ae86445c621a3eb6b67b96c67a3eb29d9751a.tar.gz sqlite-4b4ae86445c621a3eb6b67b96c67a3eb29d9751a.zip |
oo1.DB.exec() rowMode="$columnName": a minor optimization and a preemtive fix for a hypothetical corner-case bug.
FossilOrigin-Name: 0b2df22bd92914708ad0851d0401ad2cf3edb1968b88b2c07fe40792a731c5ba
Diffstat (limited to 'ext/wasm/api/sqlite3-api-oo1.js')
-rw-r--r-- | ext/wasm/api/sqlite3-api-oo1.js | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/ext/wasm/api/sqlite3-api-oo1.js b/ext/wasm/api/sqlite3-api-oo1.js index 10f0ebc18..5404fc52d 100644 --- a/ext/wasm/api/sqlite3-api-oo1.js +++ b/ext/wasm/api/sqlite3-api-oo1.js @@ -439,23 +439,22 @@ self.sqlite3ApiBootstrap.initializers.push(function(sqlite3){ if(util.isInt32(opt.rowMode)){ out.cbArg = (stmt)=>stmt.get(opt.rowMode); break; - }else if('string'===typeof opt.rowMode && opt.rowMode.length>1){ + }else if('string'===typeof opt.rowMode + && opt.rowMode.length>1 + && '$'===opt.rowMode[0]){ /* "$X": fetch column named "X" (case-sensitive!). Prior to 2022-12-14 ":X" and "@X" were also permitted, but having so many options is unnecessary and likely to cause confusion. */ - if('$'===opt.rowMode[0]){ - out.cbArg = function(stmt){ - const rc = stmt.get(this.obj)[this.colName]; - return (undefined===rc) - ? toss3("exec(): unknown result column:",this.colName) - : rc; - }.bind({ - obj:Object.create(null), - colName: opt.rowMode.substr(1) - }); - break; - } + const $colName = opt.rowMode.substr(1); + out.cbArg = (stmt)=>{ + const rc = stmt.get(Object.create(null))[$colName]; + return (undefined===rc) + ? toss3(capi.SQLITE_NOTFOUND, + "exec(): unknown result column:",$colName) + : rc; + }; + break; } toss3("Invalid rowMode:",opt.rowMode); } |