Fix a problem with renaming a column that occurs as an "excluded.colname"
construction in an UPSERT that is part of a trigger program.

FossilOrigin-Name: bb2f7234968157b605522dea8e115d8772ab4234147894089d6e48fedf5d6a5d
diff --git a/src/alter.c b/src/alter.c
index d2554a6..035ec0f 100644
--- a/src/alter.c
+++ b/src/alter.c
@@ -1361,6 +1361,11 @@
           if( pStep->pUpsert ){
             Upsert *pUpsert = pStep->pUpsert;
             assert( rc==SQLITE_OK );
+            if( pTarget==pTab ){
+              pUpsert->pUpsertSrc = &sSrc;
+              sNC.uNC.pUpsert = pUpsert;
+              sNC.ncFlags = NC_UUpsert;
+            }
             rc = sqlite3ResolveExprListNames(&sNC, pUpsert->pUpsertTarget);
             if( rc==SQLITE_OK ){
               ExprList *pUpsertSet = pUpsert->pUpsertSet;
@@ -1375,6 +1380,7 @@
             if( rc==SQLITE_OK ){
               rc = sqlite3ResolveExprNames(&sNC, pUpsert->pUpsertTargetWhere);
             }
+            sNC.ncFlags = 0;
           }
 
           if( rc==SQLITE_OK && pTarget==pTab ){
diff --git a/src/resolve.c b/src/resolve.c
index 3ac6f53..a754ae8 100644
--- a/src/resolve.c
+++ b/src/resolve.c
@@ -349,9 +349,15 @@
 #ifndef SQLITE_OMIT_UPSERT
           if( pExpr->iTable==2 ){
             testcase( iCol==(-1) );
-            pExpr->iTable = pNC->uNC.pUpsert->regData + iCol;
-            eNewExprOp = TK_REGISTER;
-            ExprSetProperty(pExpr, EP_Alias);
+            if( IN_RENAME_COLUMN ){
+              pExpr->iColumn = iCol;
+              pExpr->pTab = pTab;
+              eNewExprOp = TK_COLUMN;
+            }else{
+              pExpr->iTable = pNC->uNC.pUpsert->regData + iCol;
+              eNewExprOp = TK_REGISTER;
+              ExprSetProperty(pExpr, EP_Alias);
+            }
           }else
 #endif /* SQLITE_OMIT_UPSERT */
           {