diff options
author | stephan <stephan@noemail.net> | 2025-03-19 10:14:46 +0000 |
---|---|---|
committer | stephan <stephan@noemail.net> | 2025-03-19 10:14:46 +0000 |
commit | 6e059d9daccc65e842b2488d136c790d4c704001 (patch) | |
tree | ce012e6f52388045af6db1cf549cb52a8f4dd528 /src/vdbeblob.c | |
parent | ff3c451428fb2cbadaa38acea1ef47c20368daf4 (diff) | |
parent | 8db881d0550f664fb4f32a088818553d5fef27e8 (diff) | |
download | sqlite-6e059d9daccc65e842b2488d136c790d4c704001.tar.gz sqlite-6e059d9daccc65e842b2488d136c790d4c704001.zip |
Merge trunk into the cygwin-fixes branch.
FossilOrigin-Name: 34eadd374b3c0a8c9e1f5f4a1c60fda8f16b1c56213b8c4047f96390c676b695
Diffstat (limited to 'src/vdbeblob.c')
-rw-r--r-- | src/vdbeblob.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/vdbeblob.c b/src/vdbeblob.c index 79698d0af..42edcf7de 100644 --- a/src/vdbeblob.c +++ b/src/vdbeblob.c @@ -133,6 +133,7 @@ int sqlite3_blob_open( char *zErr = 0; Table *pTab; Incrblob *pBlob = 0; + int iDb; Parse sParse; #ifdef SQLITE_ENABLE_API_ARMOR @@ -178,7 +179,10 @@ int sqlite3_blob_open( sqlite3ErrorMsg(&sParse, "cannot open view: %s", zTable); } #endif - if( !pTab ){ + if( pTab==0 + || ((iDb = sqlite3SchemaToIndex(db, pTab->pSchema))==1 && + sqlite3OpenTempDatabase(&sParse)) + ){ if( sParse.zErrMsg ){ sqlite3DbFree(db, zErr); zErr = sParse.zErrMsg; @@ -189,7 +193,7 @@ int sqlite3_blob_open( goto blob_open_out; } pBlob->pTab = pTab; - pBlob->zDb = db->aDb[sqlite3SchemaToIndex(db, pTab->pSchema)].zDbSName; + pBlob->zDb = db->aDb[iDb].zDbSName; /* Now search pTab for the exact column. */ iCol = sqlite3ColumnIndex(pTab, zColumn); @@ -273,7 +277,6 @@ int sqlite3_blob_open( {OP_Halt, 0, 0, 0}, /* 5 */ }; Vdbe *v = (Vdbe *)pBlob->pStmt; - int iDb = sqlite3SchemaToIndex(db, pTab->pSchema); VdbeOp *aOp; sqlite3VdbeAddOp4Int(v, OP_Transaction, iDb, wrFlag, |