#include #include #include #include "registerAggregateFunctions.h" namespace DB { namespace { AggregateFunctionPtr createAggregateFunctionAny(const std::string & name, const DataTypes & argument_types, const Array & parameters) { return AggregateFunctionPtr(createAggregateFunctionSingleValue(name, argument_types, parameters)); } AggregateFunctionPtr createAggregateFunctionAnyLast(const std::string & name, const DataTypes & argument_types, const Array & parameters) { return AggregateFunctionPtr(createAggregateFunctionSingleValue(name, argument_types, parameters)); } AggregateFunctionPtr createAggregateFunctionAnyHeavy(const std::string & name, const DataTypes & argument_types, const Array & parameters) { return AggregateFunctionPtr(createAggregateFunctionSingleValue(name, argument_types, parameters)); } AggregateFunctionPtr createAggregateFunctionMin(const std::string & name, const DataTypes & argument_types, const Array & parameters) { return AggregateFunctionPtr(createAggregateFunctionSingleValue(name, argument_types, parameters)); } AggregateFunctionPtr createAggregateFunctionMax(const std::string & name, const DataTypes & argument_types, const Array & parameters) { return AggregateFunctionPtr(createAggregateFunctionSingleValue(name, argument_types, parameters)); } AggregateFunctionPtr createAggregateFunctionArgMin(const std::string & name, const DataTypes & argument_types, const Array & parameters) { return AggregateFunctionPtr(createAggregateFunctionArgMinMax(name, argument_types, parameters)); } AggregateFunctionPtr createAggregateFunctionArgMax(const std::string & name, const DataTypes & argument_types, const Array & parameters) { return AggregateFunctionPtr(createAggregateFunctionArgMinMax(name, argument_types, parameters)); } } void registerAggregateFunctionsMinMaxAny(AggregateFunctionFactory & factory) { factory.registerFunction("any", createAggregateFunctionAny); factory.registerFunction("anyLast", createAggregateFunctionAnyLast); factory.registerFunction("anyHeavy", createAggregateFunctionAnyHeavy); factory.registerFunction("min", createAggregateFunctionMin, AggregateFunctionFactory::CaseInsensitive); factory.registerFunction("max", createAggregateFunctionMax, AggregateFunctionFactory::CaseInsensitive); factory.registerFunction("argMin", createAggregateFunctionArgMin); factory.registerFunction("argMax", createAggregateFunctionArgMax); } }