ClickHouse/dbms/include/DB/DataTypes/DataTypeAggregateFunction.h

46 lines
1.5 KiB
C
Raw Normal View History

2011-09-19 01:42:16 +00:00
#pragma once
#include <DB/AggregateFunctions/IAggregateFunction.h>
#include <DB/AggregateFunctions/AggregateFunctionFactory.h>
#include <DB/DataTypes/IDataType.h>
namespace DB
{
using Poco::SharedPtr;
/** Тип - состояние агрегатной функции.
*/
class DataTypeAggregateFunction : public IDataType
{
private:
2012-08-02 17:43:45 +00:00
AggregateFunctionFactory factory;
2011-09-19 01:42:16 +00:00
public:
2012-08-02 17:43:45 +00:00
DataTypeAggregateFunction() {}
DataTypeAggregateFunction(const AggregateFunctionFactory & factory_) : factory(factory_) {}
2011-09-19 01:42:16 +00:00
std::string getName() const { return "AggregateFunction"; }
DataTypePtr clone() const { return new DataTypeAggregateFunction(factory); }
void serializeBinary(const Field & field, WriteBuffer & ostr) const;
void deserializeBinary(Field & field, ReadBuffer & istr) const;
2012-07-18 18:27:42 +00:00
void serializeBinary(const IColumn & column, WriteBuffer & ostr, WriteCallback callback = WriteCallback()) const;
2011-09-19 01:42:16 +00:00
void deserializeBinary(IColumn & column, ReadBuffer & istr, size_t limit) const;
void serializeText(const Field & field, WriteBuffer & ostr) const;
void deserializeText(Field & field, ReadBuffer & istr) const;
void serializeTextEscaped(const Field & field, WriteBuffer & ostr) const;
void deserializeTextEscaped(Field & field, ReadBuffer & istr) const;
void serializeTextQuoted(const Field & field, WriteBuffer & ostr, bool compatible = false) const;
void deserializeTextQuoted(Field & field, ReadBuffer & istr, bool compatible = false) const;
ColumnPtr createColumn() const;
ColumnPtr createConstColumn(size_t size, const Field & field) const;
};
}