diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/basicOperators.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/basicOperators.scala index ca0a700869a0e..4e8436cd7535a 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/basicOperators.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/basicOperators.scala @@ -72,7 +72,8 @@ case class Generate( val withoutQualifier = if (join) child.output ++ generatorOutput else generatorOutput qualifier.map(q => - withoutQualifier.map(_.withQualifiers(q :: Nil)) + // prepend the new qualifier to the existed one + withoutQualifier.map(a => a.withQualifiers(q +: a.qualifiers)) ).getOrElse(withoutQualifier) } }