This is an automated email from the ASF dual-hosted git repository. kazuyukitanimura pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/datafusion-comet.git
The following commit(s) were added to refs/heads/main by this push: new 3fc51ecd5 fix: TakeOrderedAndProjectExec is not reporting all fallback reasons (#2323) 3fc51ecd5 is described below commit 3fc51ecd5792eea3aa6d1cc7f2d83dbc2c7d2fd6 Author: KAZUYUKI TANIMURA <ktanim...@apple.com> AuthorDate: Mon Sep 8 09:04:53 2025 -0700 fix: TakeOrderedAndProjectExec is not reporting all fallback reasons (#2323) ## Which issue does this PR close? Closes #2311 ## Rationale for this change Adding missing reasons for falling back ## What changes are included in this PR? Added reasons ## How are these changes tested? Existing tests --- .../sql/comet/CometTakeOrderedAndProjectExec.scala | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/spark/src/main/scala/org/apache/spark/sql/comet/CometTakeOrderedAndProjectExec.scala b/spark/src/main/scala/org/apache/spark/sql/comet/CometTakeOrderedAndProjectExec.scala index d6cc3602a..aa89dec13 100644 --- a/spark/src/main/scala/org/apache/spark/sql/comet/CometTakeOrderedAndProjectExec.scala +++ b/spark/src/main/scala/org/apache/spark/sql/comet/CometTakeOrderedAndProjectExec.scala @@ -29,6 +29,7 @@ import org.apache.spark.sql.execution.{SparkPlan, TakeOrderedAndProjectExec, Una import org.apache.spark.sql.execution.metric.{SQLMetric, SQLMetrics, SQLShuffleReadMetricsReporter, SQLShuffleWriteMetricsReporter} import org.apache.spark.sql.vectorized.ColumnarBatch +import org.apache.comet.CometSparkSessionExtensions.withInfo import org.apache.comet.serde.QueryPlanSerde.exprToProto import org.apache.comet.serde.QueryPlanSerde.supportedSortType @@ -133,8 +134,20 @@ case class CometTakeOrderedAndProjectExec( object CometTakeOrderedAndProjectExec { def isSupported(plan: TakeOrderedAndProjectExec): Boolean = { - val exprs = plan.projectList.map(exprToProto(_, plan.child.output)) - val sortOrders = plan.sortOrder.map(exprToProto(_, plan.child.output)) + val exprs = plan.projectList.map { p => + val o = exprToProto(p, plan.child.output) + if (o.isEmpty) { + withInfo(plan, s"unsupported projection: $p") + } + o + } + val sortOrders = plan.sortOrder.map { s => + val o = exprToProto(s, plan.child.output) + if (o.isEmpty) { + withInfo(plan, s"unsupported sort order: $s") + } + o + } exprs.forall(_.isDefined) && sortOrders.forall(_.isDefined) && supportedSortType(plan, plan.sortOrder) } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@datafusion.apache.org For additional commands, e-mail: commits-h...@datafusion.apache.org