#pragma once #include #include namespace DB { /** Позволяет создать агрегатную функцию по её имени. * * Чтобы создать большое количество экземпляров агрегатных функций * для агрегации и последующей вставки в ColumnAggregateFunction, * создайте один объект - "прототип", и затем используйте метод cloneEmpty. */ class AggregateFunctionFactory { public: AggregateFunctionFactory(); AggregateFunctionPtr get(const String & name, const DataTypes & argument_types) const; AggregateFunctionPtr tryGet(const String & name, const DataTypes & argument_types) const; AggregateFunctionPtr getByTypeID(const String & type_id) const; }; }