diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala index 3b4d72584093..ca13168f74c4 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala @@ -3190,7 +3190,11 @@ class Analyzer( throw QueryCompilationErrors.nestedGeneratorError(g.generator) } g.copy(generatorOutput = - GeneratorResolution.makeGeneratorOutput(g.generator, g.generatorOutput.map(_.name))) + GeneratorResolution.makeGeneratorOutput( + g.generator, g.generatorOutput.map { + case ua: UnresolvedAttribute => ua.nameParts.head + case a => a.name + })) } } } diff --git a/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala index 3ccc5293f659..9e94c0b6e572 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala @@ -3440,6 +3440,17 @@ class SQLQuerySuite extends QueryTest with SharedSparkSession with AdaptiveSpark checkAnswer(df2, Row(1) :: Nil) } + test("SPARK-56426: LATERAL VIEW column alias with dot in name should resolve correctly") { + checkAnswer( + sql( + """ + |SELECT id, `skill.inst` + |FROM VALUES (1, array('a', 'b')) AS (id, skills) + |LATERAL VIEW explode(skills) skills_table AS `skill.inst` + """.stripMargin), + Row(1, "a") :: Row(1, "b") :: Nil) + } + test("SPARK-30279 Support 32 or more grouping attributes for GROUPING_ID()") { withTempView("t") { sql("CREATE TEMPORARY VIEW t AS SELECT * FROM " +