diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/InsertMapSortExpression.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/InsertMapSortExpression.scala index 9e153ba6722a9..ca74cf8ac71fd 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/InsertMapSortExpression.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/InsertMapSortExpression.scala @@ -89,11 +89,10 @@ object InsertMapSortInRepartitionExpressions extends Rule[LogicalPlan] { override def apply(plan: LogicalPlan): LogicalPlan = { plan.transformUpWithPruning(_.containsPattern(REPARTITION_OPERATION)) { - case rep @ - RepartitionByExpression(partitionExprs, child, optNumPartitions, optAdvisoryPartitionSize) + case rep: RepartitionByExpression if rep.partitionExpressions.exists(mapTypeExistsRecursively) => val exprToMapSort = new mutable.HashMap[Expression, Expression] - val newPartitionExprs = partitionExprs.map { expr => + val newPartitionExprs = rep.partitionExpressions.map { expr => val inserted = insertMapSortRecursively(expr) if (expr.ne(inserted)) { exprToMapSort.getOrElseUpdate(expr.canonicalized, inserted) @@ -101,9 +100,7 @@ object InsertMapSortInRepartitionExpressions extends Rule[LogicalPlan] { expr } } - RepartitionByExpression( - newPartitionExprs, child, optNumPartitions, optAdvisoryPartitionSize - ) + rep.copy(partitionExpressions = newPartitionExprs) } } }