diff options
author | dan <dan@noemail.net> | 2016-08-02 11:29:16 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2016-08-02 11:29:16 +0000 |
commit | 914b7e4238a6d777c54d26e6b75a6893dd1b95fc (patch) | |
tree | 951ac4ae432dac58869ee1cb5ba45174f81475fe /src | |
parent | 38b802dfd7292b0b8ac228aa3812be6b2c6a076d (diff) | |
download | sqlite-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.c | 5 |
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); + } } } } |