| 99 | } |
| 100 | |
| 101 | void FunctionNode::resolveAsAggregateFunction(AggregateFunctionPtr aggregate_function_value) |
| 102 | { |
| 103 | function_name = aggregate_function_value->getName(); |
| 104 | function = std::move(aggregate_function_value); |
| 105 | kind = FunctionKind::AGGREGATE; |
| 106 | /** When the function is resolved, we do not need the nulls action anymore. |
| 107 | * The only thing that the nulls action does is map from one function to another. |
| 108 | * Thus, the nulls action is encoded in the function name and does not make sense anymore. |
| 109 | * Keeping the nulls action may lead to incorrect comparison of functions, e.g., count() and count() IGNORE NULLS are the same function. |
| 110 | */ |
| 111 | nulls_action = NullsAction::EMPTY; |
| 112 | } |
| 113 | |
| 114 | void FunctionNode::resolveAsWindowFunction(AggregateFunctionPtr window_function_value) |
| 115 | { |
no test coverage detected