summaryrefslogtreecommitdiff
path: root/ext/sqlite/libsqlite/src/attach.c
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2004-01-08 14:25:01 +0000
committerIlia Alshanetsky <iliaa@php.net>2004-01-08 14:25:01 +0000
commita4ea8eb44ec63e407007abea957221e92a081a31 (patch)
tree23566b703ee020fcee70beb3bc38d3e11c37e14c /ext/sqlite/libsqlite/src/attach.c
parent2cf3cb6407aa108f21149782245c61e7e393ec59 (diff)
downloadphp-git-a4ea8eb44ec63e407007abea957221e92a081a31.tar.gz
Upgrade bundled libsqlite to 2.8.9
Diffstat (limited to 'ext/sqlite/libsqlite/src/attach.c')
-rw-r--r--ext/sqlite/libsqlite/src/attach.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/ext/sqlite/libsqlite/src/attach.c b/ext/sqlite/libsqlite/src/attach.c
index 5b57e29e16..5269238e0f 100644
--- a/ext/sqlite/libsqlite/src/attach.c
+++ b/ext/sqlite/libsqlite/src/attach.c
@@ -64,7 +64,6 @@ void sqliteAttach(Parse *pParse, Token *pFilename, Token *pDbname){
sqliteErrorMsg(pParse, "database %z is already in use", zName);
pParse->rc = SQLITE_ERROR;
sqliteFree(zFile);
- sqliteFree(zName);
return;
}
}
@@ -92,8 +91,16 @@ void sqliteAttach(Parse *pParse, Token *pFilename, Token *pDbname){
sqliteFree(zFile);
db->flags &= ~SQLITE_Initialized;
if( pParse->nErr ) return;
- rc = sqliteInit(pParse->db, &pParse->zErrMsg);
+ if( rc==SQLITE_OK ){
+ rc = sqliteInit(pParse->db, &pParse->zErrMsg);
+ }
if( rc ){
+ int i = db->nDb - 1;
+ assert( i>=2 );
+ if( db->aDb[i].pBt ){
+ sqliteBtreeClose(db->aDb[i].pBt);
+ db->aDb[i].pBt = 0;
+ }
sqliteResetInternalSchema(db, 0);
pParse->nErr++;
pParse->rc = SQLITE_ERROR;