diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/dynamicpruning/RowLevelOperationRuntimeGroupFiltering.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/dynamicpruning/RowLevelOperationRuntimeGroupFiltering.scala index 232c320bcd454..d9dad43532e0c 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/execution/dynamicpruning/RowLevelOperationRuntimeGroupFiltering.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/dynamicpruning/RowLevelOperationRuntimeGroupFiltering.scala @@ -78,9 +78,8 @@ case class RowLevelOperationRuntimeGroupFiltering(optimizeSubqueries: Rule[Logic // clone the relation and assign new expr IDs to avoid conflicts matchingRowsPlan transformUpWithNewOutput { case r: DataSourceV2Relation if r eq relation => - val oldOutput = r.output - val newOutput = oldOutput.map(_.newInstance()) - r.copy(output = newOutput) -> oldOutput.zip(newOutput) + val newRelation = r.newInstance() + newRelation -> r.output.zip(newRelation.output) } }