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

45 lines
1.2 KiB
C
Raw Normal View History

2010-03-05 17:38:01 +00:00
#ifndef DBMS_DATA_TYPES_NUMBER_FIXED_H
#define DBMS_DATA_TYPES_NUMBER_FIXED_H
2010-03-12 18:25:35 +00:00
#include <DB/Columns/ColumnsNumber.h>
2010-03-05 17:38:01 +00:00
#include <DB/DataTypes/IDataTypeNumberFixed.h>
namespace DB
{
/** Типы столбцов для чисел фиксированной ширины. */
2011-08-09 15:57:33 +00:00
template <typename T>
struct DataTypeFromFieldType;
2010-03-05 17:38:01 +00:00
#define DEFINE_DATA_TYPE_NUMBER_FIXED(TYPE) \
2010-03-12 18:25:35 +00:00
class DataType ## TYPE : public IDataTypeNumberFixed<TYPE, Column ## TYPE> \
2010-03-05 17:38:01 +00:00
{ \
public: \
std::string getName() const { return #TYPE; } \
2010-05-21 19:52:50 +00:00
SharedPtr<IDataType> clone() const { return new DataType ## TYPE; } \
2011-08-09 15:57:33 +00:00
}; \
\
template <> struct DataTypeFromFieldType<TYPE> \
{ \
typedef DataType ## TYPE Type; \
2010-03-05 17:38:01 +00:00
};
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);
2010-06-07 17:14:13 +00:00
/* DEFINE_DATA_TYPE_NUMBER_FIXED(Float32);
DEFINE_DATA_TYPE_NUMBER_FIXED(Float64); */
2010-03-05 17:38:01 +00:00
}
#endif