mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-12 13:01:09 +03:00
Fix a fairly obscure problem allowing an "ALTER TABLE RENAME col TO ..." statement to modify the schema in such a way as to break a reference within a trigger program.
FossilOrigin-Name: 64bec9e6214c6932fab5a3fb8c569ae14cd2d603bd0f8b26104815c3bb9d396a
This commit is contained in:
@@ -1081,7 +1081,6 @@ static int renameResolveTrigger(Parse *pParse, const char *zDb){
|
||||
Trigger *pNew = pParse->pNewTrigger;
|
||||
TriggerStep *pStep;
|
||||
NameContext sNC;
|
||||
SrcList sSrc;
|
||||
int rc = SQLITE_OK;
|
||||
|
||||
memset(&sNC, 0, sizeof(sNC));
|
||||
@@ -1112,6 +1111,7 @@ static int renameResolveTrigger(Parse *pParse, const char *zDb){
|
||||
if( pTarget==0 ){
|
||||
rc = SQLITE_ERROR;
|
||||
}else if( SQLITE_OK==(rc = sqlite3ViewGetColumnNames(pParse, pTarget)) ){
|
||||
SrcList sSrc;
|
||||
memset(&sSrc, 0, sizeof(sSrc));
|
||||
sSrc.nSrc = 1;
|
||||
sSrc.a[0].zName = pStep->zTarget;
|
||||
@@ -1143,6 +1143,7 @@ static int renameResolveTrigger(Parse *pParse, const char *zDb){
|
||||
}
|
||||
sNC.ncFlags = 0;
|
||||
}
|
||||
sNC.pSrcList = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user