@@ -2009,19 +2009,25 @@ func (b *PlanBuilder) buildDataSourceFromView(dbName model.CIStr, tableInfo *mod
2009
2009
if err != nil {
2010
2010
return nil , err
2011
2011
}
2012
- var viewCols []* expression.Column
2012
+ var projExprs []* expression.Column
2013
2013
for i := range tableInfo .View .Cols {
2014
2014
col := selectLogicalPlan .Schema ().FindColumnByName (tableInfo .View .Cols [i ].L )
2015
2015
if col == nil {
2016
- return nil , ErrViewInvalid .GenWithStackByArgs (dbName .L , tableInfo .Name .L )
2017
- }
2018
- col .ColName = tableInfo .Cols ()[i ].Name
2019
- col .OrigColName = tableInfo .View .Cols [i ]
2020
- viewCols = append (viewCols , col )
2016
+ return nil , ErrViewInvalid .GenWithStackByArgs (dbName .O , tableInfo .Name .O )
2017
+ }
2018
+ projExprs = append (projExprs , & expression.Column {
2019
+ UniqueID : b .ctx .GetSessionVars ().AllocPlanColumnID (),
2020
+ TblName : col .TblName ,
2021
+ OrigTblName : col .OrigTblName ,
2022
+ ColName : tableInfo .Cols ()[i ].Name ,
2023
+ OrigColName : tableInfo .View .Cols [i ],
2024
+ DBName : dbName ,
2025
+ RetType : col .GetType (),
2026
+ })
2021
2027
}
2022
- projUponView := LogicalProjection {Exprs : expression .Column2Exprs (viewCols )}.Init (b .ctx )
2028
+ projUponView := LogicalProjection {Exprs : expression .Column2Exprs (projExprs )}.Init (b .ctx )
2023
2029
projUponView .SetChildren (selectLogicalPlan .(LogicalPlan ))
2024
- projUponView .SetSchema (expression .NewSchema (viewCols ... ))
2030
+ projUponView .SetSchema (expression .NewSchema (projExprs ... ))
2025
2031
return projUponView , nil
2026
2032
}
2027
2033
0 commit comments