Index: src/build.c ================================================================== --- src/build.c +++ src/build.c @@ -2761,11 +2761,11 @@ "unknown column \"%s\" in foreign key definition", pFromCol->a[i].zName); goto fk_end; } if( IN_RENAME_COLUMN ){ - sqlite3MoveRenameToken(pParse, &pFKey->aCol[i], &pFromCol->a[i]); + sqlite3MoveRenameToken(pParse, &pFKey->aCol[i], pFromCol->a[i].zName); } } } if( pToCol ){ for(i=0; in, pIdToken->z); } sqlite3ExprListSetName(pParse, p, pIdToken, 1); if( IN_RENAME_COLUMN ){ - sqlite3RenameToken(pParse, (void*)&(p->a[p->nExpr-1]), pIdToken); + sqlite3RenameToken(pParse, (void*)(p->a[p->nExpr-1].zName), pIdToken); } return p; } } // end %include Index: test/altercol.test ================================================================== --- test/altercol.test +++ test/altercol.test @@ -90,8 +90,18 @@ do_execsql_test 1.$tn.4 { SELECT sql FROM sqlite_master WHERE tbl_name='t1' AND sql!='' } $res } +#------------------------------------------------------------------------- +do_execsql_test 2.0 { + CREATE TABLE t3(a, b, c, d, e, f, g, h, i, j, k, l, m, FOREIGN KEY (b, c, d, e, f, g, h, i, j, k, l, m) REFERENCES t4); +} + +do_execsql_test 2.1 { + ALTER TABLE t3 RENAME b TO biglongname; + SELECT sql FROM sqlite_master WHERE name='t3'; +} {{CREATE TABLE t3(a, biglongname, c, d, e, f, g, h, i, j, k, l, m, FOREIGN KEY (biglongname, c, d, e, f, g, h, i, j, k, l, m) REFERENCES t4)}} + finish_test