ClickHouse/dbms/include/DB/DataTypes/DataTypesNumberFixed.h
2011-08-09 19:19:00 +00:00

42 lines
1.1 KiB
C++

#pragma once
#include <DB/Columns/ColumnsNumber.h>
#include <DB/DataTypes/IDataTypeNumberFixed.h>
namespace DB
{
/** Типы столбцов для чисел фиксированной ширины. */
template <typename T>
struct DataTypeFromFieldType;
#define DEFINE_DATA_TYPE_NUMBER_FIXED(TYPE) \
class DataType ## TYPE : public IDataTypeNumberFixed<TYPE, Column ## TYPE> \
{ \
public: \
std::string getName() const { return #TYPE; } \
DataTypePtr clone() const { return new DataType ## TYPE; } \
}; \
\
template <> struct DataTypeFromFieldType<TYPE> \
{ \
typedef DataType ## TYPE Type; \
};
DEFINE_DATA_TYPE_NUMBER_FIXED(UInt8);
DEFINE_DATA_TYPE_NUMBER_FIXED(UInt16);
DEFINE_DATA_TYPE_NUMBER_FIXED(UInt32);
DEFINE_DATA_TYPE_NUMBER_FIXED(UInt64);
DEFINE_DATA_TYPE_NUMBER_FIXED(Int8);
DEFINE_DATA_TYPE_NUMBER_FIXED(Int16);
DEFINE_DATA_TYPE_NUMBER_FIXED(Int32);
DEFINE_DATA_TYPE_NUMBER_FIXED(Int64);
DEFINE_DATA_TYPE_NUMBER_FIXED(Float32);
DEFINE_DATA_TYPE_NUMBER_FIXED(Float64);
}