Resolution: Won't Fix
Affects Version/s: 2.3.0
Fix Version/s: None
Component/s: Spark Core
See failing test at https://github.com/apache/spark/pull/19917
After stepping through in a debugger, the difference manifests at https://github.com/apache/spark/blob/8ae004b4602266d1f210e4c1564246d590412c06/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/QueryPlan.scala#L120
Changing seq.map to seq.toList.map causes the test to pass.
I think there's a very subtle bug here where the Seq of column names passed into select is expected to eagerly evaluate when .map is called on it, even though that's not part of the Seq contract.