diff options
author | mistachkin <mistachkin@noemail.net> | 2018-01-09 22:23:42 +0000 |
---|---|---|
committer | mistachkin <mistachkin@noemail.net> | 2018-01-09 22:23:42 +0000 |
commit | dc006e05aa8ed9181b14924aa742e072dabba79a (patch) | |
tree | f9abd54cc8d0473759cf10645d04051426c038aa /ext/misc/unionvtab.c | |
parent | 7026bd67531ab5fb219ea928be456a9dee9e0937 (diff) | |
download | sqlite-dc006e05aa8ed9181b14924aa742e072dabba79a.tar.gz sqlite-dc006e05aa8ed9181b14924aa742e072dabba79a.zip |
When disconnecting from the 'swarmvtab' extension, close each database prior to invoking the 'openclose' function on it.
FossilOrigin-Name: 3e5647cb6c4553683e24b9cb62548f16c79c4e2ac9e39cf135ea52a623f7cc33
Diffstat (limited to 'ext/misc/unionvtab.c')
-rw-r--r-- | ext/misc/unionvtab.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/ext/misc/unionvtab.c b/ext/misc/unionvtab.c index 92d0b833c..94a5c8f01 100644 --- a/ext/misc/unionvtab.c +++ b/ext/misc/unionvtab.c @@ -484,14 +484,15 @@ static int unionDisconnect(sqlite3_vtab *pVtab){ int i; for(i=0; i<pTab->nSrc; i++){ UnionSrc *pSrc = &pTab->aSrc[i]; - if( pSrc->db ){ + int bHaveSrcDb = (pSrc->db!=0); + sqlite3_close(pSrc->db); + if( bHaveSrcDb ){ unionInvokeOpenClose(pTab, pSrc, 1, 0); } sqlite3_free(pSrc->zDb); sqlite3_free(pSrc->zTab); sqlite3_free(pSrc->zFile); sqlite3_free(pSrc->zContext); - sqlite3_close(pSrc->db); } sqlite3_finalize(pTab->pNotFound); sqlite3_finalize(pTab->pOpenClose); |