diff options
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); |