aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <>2023-09-07 02:13:01 +0000
committerdrh <>2023-09-07 02:13:01 +0000
commitdd69129f2a3713a1e7e3a37dc0770521e08cad0d (patch)
tree0a91179d7f07a3d2a0376c622520369229a84819 /src
parentd4bb0896d4c0febbd9964c4185948f10a3d22066 (diff)
downloadsqlite-dd69129f2a3713a1e7e3a37dc0770521e08cad0d.tar.gz
sqlite-dd69129f2a3713a1e7e3a37dc0770521e08cad0d.zip
Fix a problem with the new xIntegrity method for virtual tables, and also fix
a bad assert() in FTS3 that was found by the new xIntegrity method. FossilOrigin-Name: 52bbf44f2d9addc2b5f68b0fe33542470852310ce3a283e2c7ff4c52831d0ed1
Diffstat (limited to 'src')
-rw-r--r--src/vdbe.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/vdbe.c b/src/vdbe.c
index eccd5291e..41e56d306 100644
--- a/src/vdbe.c
+++ b/src/vdbe.c
@@ -8156,7 +8156,11 @@ case OP_VCheck: { /* out2 */
assert( pModule!=0 );
assert( pModule->iVersion>=4 );
assert( pModule->xIntegrity!=0 );
+ pTab->nTabRef++;
+ sqlite3VtabLock(pTab->u.vtab.p);
rc = pModule->xIntegrity(pVtab, &zErr);
+ sqlite3VtabUnlock(pTab->u.vtab.p);
+ sqlite3DeleteTable(db, pTab);
if( rc ){
sqlite3_free(zErr);
goto abort_due_to_error;