aokolnychyi commented on a change in pull request #3992: URL: https://github.com/apache/iceberg/pull/3992#discussion_r793984876
########## File path: spark/v3.2/spark-extensions/src/main/scala/org/apache/spark/sql/execution/datasources/v2/MergeRowsExec.scala ########## @@ -46,6 +48,15 @@ case class MergeRowsExec( output: Seq[Attribute], child: SparkPlan) extends UnaryExecNode { + override def requiredChildOrdering: Seq[Seq[SortOrder]] = { + if (performCardinalityCheck) { + // request a local sort by the row ID attrs to co-locate matches for the same target row + Seq(rowIdAttrs.map(attr => SortOrder(attr, Ascending))) Review comment: Instead of requesting a sort, we could keep track of all seen row IDs in a task (we keep only the last one right now). That will require more memory but we will be able to avoid the local sort. -- 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: issues-unsubscr...@iceberg.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org