diff options
author | 2013-03-18 10:44:54 +0000 | |
---|---|---|
committer | 2013-03-18 10:44:54 +0000 | |
commit | f1b0c374cb714f5a02b914bea387b6b573687eb8 (patch) | |
tree | e508042c8370fb39b8acd5eb62247a7ad51310e0 /lib/libsqlite3/src/attach.c | |
parent | Provide a way for *drm(4) to prevent the VGA text console wsdisplay(4) instance (diff) | |
download | wireguard-openbsd-f1b0c374cb714f5a02b914bea387b6b573687eb8.tar.xz wireguard-openbsd-f1b0c374cb714f5a02b914bea387b6b573687eb8.zip |
update to 3.7.15.2, tested by landry@/miod@
Diffstat (limited to 'lib/libsqlite3/src/attach.c')
-rw-r--r-- | lib/libsqlite3/src/attach.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/libsqlite3/src/attach.c b/lib/libsqlite3/src/attach.c index e295c30111b..6682c914754 100644 --- a/lib/libsqlite3/src/attach.c +++ b/lib/libsqlite3/src/attach.c @@ -434,6 +434,7 @@ int sqlite3FixInit( assert( db->nDb>iDb ); pFix->pParse = pParse; pFix->zDb = db->aDb[iDb].zName; + pFix->pSchema = db->aDb[iDb].pSchema; pFix->zType = zType; pFix->pName = pName; return 1; @@ -464,14 +465,15 @@ int sqlite3FixSrcList( if( NEVER(pList==0) ) return 0; zDb = pFix->zDb; for(i=0, pItem=pList->a; i<pList->nSrc; i++, pItem++){ - if( pItem->zDatabase==0 ){ - pItem->zDatabase = sqlite3DbStrDup(pFix->pParse->db, zDb); - }else if( sqlite3StrICmp(pItem->zDatabase,zDb)!=0 ){ + if( pItem->zDatabase && sqlite3StrICmp(pItem->zDatabase, zDb) ){ sqlite3ErrorMsg(pFix->pParse, "%s %T cannot reference objects in database %s", pFix->zType, pFix->pName, pItem->zDatabase); return 1; } + sqlite3DbFree(pFix->pParse->db, pItem->zDatabase); + pItem->zDatabase = 0; + pItem->pSchema = pFix->pSchema; #if !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_TRIGGER) if( sqlite3FixSelect(pFix, pItem->pSelect) ) return 1; if( sqlite3FixExpr(pFix, pItem->pOn) ) return 1; |