| 116 | } |
| 117 | |
| 118 | void ExchangePlanNode::Codegen(FragmentState* state) { |
| 119 | DCHECK(state->ShouldCodegen()); |
| 120 | PlanNode::Codegen(state); |
| 121 | if (IsNodeCodegenDisabled()) return; |
| 122 | |
| 123 | if (row_comparator_config_ != nullptr) { |
| 124 | Status codegen_status; |
| 125 | llvm::Function* compare_fn = nullptr; |
| 126 | codegen_status = row_comparator_config_->Codegen(state, &compare_fn); |
| 127 | if (codegen_status.ok()) { |
| 128 | codegen_status = |
| 129 | SortedRunMerger::Codegen(state, compare_fn, &codegend_heapify_helper_fn_); |
| 130 | } |
| 131 | AddCodegenStatus(codegen_status); |
| 132 | } |
| 133 | } |
| 134 | |
| 135 | Status ExchangeNode::Open(RuntimeState* state) { |
| 136 | SCOPED_TIMER(runtime_profile_->total_time_counter()); |
nothing calls this directly
no test coverage detected