You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@datafusion.apache.org by "andygrove (via GitHub)" <gi...@apache.org> on 2025/11/08 16:24:09 UTC
Re: [PR] chore: Refactor operator serde - part 1 [datafusion-comet]
andygrove commented on PR #2738:
URL: https://github.com/apache/datafusion-comet/pull/2738#issuecomment-3506692376
The diff for the changes to QueryPlanSerde is quite large, but the new code is:
```scala
op match {
// Fully native scan for V1
case scan: CometScanExec if scan.scanImpl == CometConf.SCAN_NATIVE_DATAFUSION =>
CometNativeScan.convert(scan, builder, childOp: _*)
case filter: FilterExec if CometConf.COMET_EXEC_FILTER_ENABLED.get(conf) =>
CometFilter.convert(filter, builder, childOp: _*)
case limit: LocalLimitExec if CometConf.COMET_EXEC_LOCAL_LIMIT_ENABLED.get(conf) =>
CometLocalLimit.convert(limit, builder, childOp: _*)
case globalLimitExec: GlobalLimitExec
if CometConf.COMET_EXEC_GLOBAL_LIMIT_ENABLED.get(conf) =>
CometGlobalLimit.convert(globalLimitExec, builder, childOp: _*)
case expand: ExpandExec if CometConf.COMET_EXEC_EXPAND_ENABLED.get(conf) =>
CometExpand.convert(expand, builder, childOp: _*)
case _: WindowExec if CometConf.COMET_EXEC_WINDOW_ENABLED.get(conf) =>
withInfo(op, "Window expressions are not supported")
None
case aggregate: HashAggregateExec if CometConf.COMET_EXEC_AGGREGATE_ENABLED.get(conf) =>
CometHashAggregate.convert(aggregate, builder, childOp: _*)
case aggregate: ObjectHashAggregateExec
if CometConf.COMET_EXEC_AGGREGATE_ENABLED.get(conf) =>
CometObjectHashAggregate.convert(aggregate, builder, childOp: _*)
case join: BroadcastHashJoinExec
if CometConf.COMET_EXEC_BROADCAST_HASH_JOIN_ENABLED.get(conf) =>
CometBroadcastHashJoin.convert(join, builder, childOp: _*)
case join: ShuffledHashJoinExec if CometConf.COMET_EXEC_HASH_JOIN_ENABLED.get(conf) =>
CometShuffleHashJoin.convert(join, builder, childOp: _*)
case join: SortMergeJoinExec =>
if (CometConf.COMET_EXEC_SORT_MERGE_JOIN_ENABLED.get(conf)) {
CometSortMergeJoin.convert(join, builder, childOp: _*)
} else {
withInfo(join, "SortMergeJoin is not enabled")
None
}
```
--
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: github-unsubscribe@datafusion.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscribe@datafusion.apache.org
For additional commands, e-mail: github-help@datafusion.apache.org