sigmod commented on code in PR #40300: URL: https://github.com/apache/spark/pull/40300#discussion_r1130602165
########## sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/LogicalPlan.scala: ########## @@ -340,13 +358,26 @@ trait ExposesMetadataColumns extends LogicalPlan { val resolve = conf.resolver val outputNames = outputSet.map(_.name) - def isOutputColumn(col: AttributeReference): Boolean = { - outputNames.exists(name => resolve(col.name, name)) + // Generate a unique name by prepending underscores. + @scala.annotation.tailrec + def makeUnique(name: String): String = name match { + case name if outputNames.exists(resolve(_, name)) => makeUnique(s"_$name") + case name => name + } + + // Rename metadata struct columns whose names conflict with output columns. Review Comment: > If there are duplicate columns, it possibly picks incorrect attribute. Is it possible to keep both in the requested schema? cc @cashmand -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org