| 104 | } |
| 105 | |
| 106 | static std::vector<move_agg_result_to_vector_func> getMoveAggResultToVectorFuncs( |
| 107 | std::vector<AggregateFunction>& aggregateFunctions) { |
| 108 | std::vector<move_agg_result_to_vector_func> moveAggResultToVectorFuncs; |
| 109 | for (auto& aggregateFunction : aggregateFunctions) { |
| 110 | if (aggregateFunction.needToHandleNulls) { |
| 111 | moveAggResultToVectorFuncs.push_back(writeAggResultWithoutNullToVector); |
| 112 | } else { |
| 113 | moveAggResultToVectorFuncs.push_back(writeAggResultWithNullToVector); |
| 114 | } |
| 115 | } |
| 116 | return moveAggResultToVectorFuncs; |
| 117 | } |
| 118 | |
| 119 | static const LogicalOperator* unwrapFlattens(const LogicalOperator* op) { |
| 120 | while (op->getOperatorType() == LogicalOperatorType::FLATTEN) { |
no test coverage detected