Skip to content

Commit 9b16ff0

Browse files
committed
Fix test error
1 parent bb93ca0 commit 9b16ff0

2 files changed

Lines changed: 10 additions & 3 deletions

File tree

sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -901,10 +901,13 @@ class Analyzer(
901901
// If the projection list contains Stars, expand it.
902902
case p: Project if containsStar(p.projectList) =>
903903
p.copy(projectList = buildExpandedProjectList(p.projectList, p.child))
904-
case p @ Project(projectList, _ @ SubqueryAlias(_, view: View))
904+
case p @ Project(projectList, _ @ SubqueryAlias(_, _ @ View(_, output, _)))
905905
if projectList.forall(_.resolved) =>
906-
val newProjectList = projectList.map { col =>
907-
view.output.find(_.name.equalsIgnoreCase(col.name)).get
906+
val newProjectList = projectList.map { n =>
907+
output.find(_.exprId == n.exprId) match {
908+
case Some(a) => a
909+
case _ => n
910+
}
908911
}
909912
p.copy(projectList = newProjectList)
910913
// If the aggregate function argument contains Stars, expand it.

sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2880,6 +2880,10 @@ class SQLQuerySuite extends QueryTest with SharedSQLContext {
28802880
assert(spark.table("table4").count() === cnt)
28812881
checkAnswer(spark.table("table1").select("col1", "col1", "col2"), spark.table("table4"))
28822882

2883+
spark.sql("INSERT OVERWRITE TABLE table4 select 1, COL1, COL2 from view1")
2884+
assert(spark.table("table4").count() === cnt)
2885+
checkAnswer(spark.table("table1").selectExpr("1", "col1", "col2"), spark.table("table4"))
2886+
28832887
assertThrows[AnalysisException] {
28842888
spark.sql("INSERT OVERWRITE TABLE table4 select COL1, COL3, COL2 from view1")
28852889
}

0 commit comments

Comments
 (0)