mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-10-22 08:20:48 +00:00
42 lines
1.1 KiB
C++
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);
|
|
|
|
}
|