aboutsummaryrefslogtreecommitdiff
path: root/src/alter.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2018-08-11 13:40:20 +0000
committerdan <dan@noemail.net>2018-08-11 13:40:20 +0000
commite325ffed04ee9fd40cc7dab8f3209e1745e8041a (patch)
tree9c583ce368b0f7b3b360139606b8059b2e8fb89e /src/alter.c
parent5da06d3d7e2fcbc3f348768a5706035411e596a9 (diff)
downloadsqlite-e325ffed04ee9fd40cc7dab8f3209e1745e8041a.tar.gz
sqlite-e325ffed04ee9fd40cc7dab8f3209e1745e8041a.zip
Reload the entire schema after renaming a column in order to ensure that the
schema for any tables for which parent key definitions were changed are reloaded. FossilOrigin-Name: f4497b0136e9fcb1121a834c86f84eeaf8f1e7d3157d409484e086bcef3487f1
Diffstat (limited to 'src/alter.c')
-rw-r--r--src/alter.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/alter.c b/src/alter.c
index d73b11a14..6bf2d4c0c 100644
--- a/src/alter.c
+++ b/src/alter.c
@@ -831,9 +831,12 @@ void sqlite3AlterRenameColumn(
zDb, MASTER_NAME, iCol, zNew, pTab->zName, zOld, pTab->zName
);
- /* Drop and reload the internal table schema. */
- sqlite3ChangeCookie(pParse, iSchema);
- reloadTableSchema(pParse, pTab, pTab->zName);
+ /* Drop and reload the database schema. */
+ if( db->mallocFailed==0 ){
+ assert( pParse->pVdbe );
+ sqlite3ChangeCookie(pParse, iSchema);
+ sqlite3VdbeAddParseSchemaOp(pParse->pVdbe, iSchema, 0);
+ }
exit_rename_column:
sqlite3SrcListDelete(db, pSrc);