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