1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-14 00:22:38 +03:00

Fail an ATTACH if the auxiliary database is locked. Ticket #514. (CVS 1127)

FossilOrigin-Name: ac428c8d4a731678cc26cf198689814a8a56d141
This commit is contained in:
drh
2003-12-06 22:22:35 +00:00
parent 41743984bf
commit 447623d9aa
4 changed files with 100 additions and 11 deletions

View File

@@ -11,7 +11,7 @@
*************************************************************************
** This file contains code used to implement the ATTACH and DETACH commands.
**
** $Id: attach.c,v 1.7 2003/06/14 12:04:08 drh Exp $
** $Id: attach.c,v 1.8 2003/12/06 22:22:36 drh Exp $
*/
#include "sqliteInt.h"
@@ -91,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;