aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordan <dan@noemail.net>2016-08-02 11:29:16 +0000
committerdan <dan@noemail.net>2016-08-02 11:29:16 +0000
commit914b7e4238a6d777c54d26e6b75a6893dd1b95fc (patch)
tree951ac4ae432dac58869ee1cb5ba45174f81475fe /src
parent38b802dfd7292b0b8ac228aa3812be6b2c6a076d (diff)
downloadsqlite-914b7e4238a6d777c54d26e6b75a6893dd1b95fc.tar.gz
sqlite-914b7e4238a6d777c54d26e6b75a6893dd1b95fc.zip
Fix a problem introduced by [77948b5eceab92a7] causing duplicate calls to be made to the xSavepoint() method of virtual tables under some circumstances.
FossilOrigin-Name: e64a4173d2899acf13b73e6e28f2e164fd638a75
Diffstat (limited to 'src')
-rw-r--r--src/vtab.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/vtab.c b/src/vtab.c
index e81079a05..f37eb261a 100644
--- a/src/vtab.c
+++ b/src/vtab.c
@@ -947,7 +947,10 @@ int sqlite3VtabBegin(sqlite3 *db, VTable *pVTab){
if( rc==SQLITE_OK ){
int iSvpt = db->nStatement + db->nSavepoint;
addToVTrans(db, pVTab);
- if( iSvpt ) rc = sqlite3VtabSavepoint(db, SAVEPOINT_BEGIN, iSvpt-1);
+ if( iSvpt && pModule->xSavepoint ){
+ pVTab->iSavepoint = iSvpt;
+ rc = pModule->xSavepoint(pVTab->pVtab, iSvpt-1);
+ }
}
}
}