mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-10-22 16:30:49 +00:00
52 lines
1.6 KiB
C
52 lines
1.6 KiB
C
|
#ifndef DBMS_CORE_COLUMN_H
|
|||
|
#define DBMS_CORE_COLUMN_H
|
|||
|
|
|||
|
#include <vector>
|
|||
|
|
|||
|
#include <boost/variant.hpp>
|
|||
|
#include <boost/variant/recursive_variant.hpp>
|
|||
|
#include <boost/variant/static_visitor.hpp>
|
|||
|
|
|||
|
#include <DB/Core/Types.h>
|
|||
|
#include <DB/Core/Field.h>
|
|||
|
|
|||
|
namespace DB
|
|||
|
{
|
|||
|
|
|||
|
/** Типы данных для представления столбцов значений в оперативке.
|
|||
|
*/
|
|||
|
|
|||
|
typedef std::vector<UInt8> UInt8Column;
|
|||
|
typedef std::vector<UInt16> UInt16Column;
|
|||
|
typedef std::vector<UInt32> UInt32Column;
|
|||
|
typedef std::vector<UInt64> UInt64Column;
|
|||
|
|
|||
|
typedef std::vector<Int8> Int8Column;
|
|||
|
typedef std::vector<Int16> Int16Column;
|
|||
|
typedef std::vector<Int32> Int32Column;
|
|||
|
typedef std::vector<Int64> Int64Column;
|
|||
|
|
|||
|
typedef std::vector<Float32> Float32Column;
|
|||
|
typedef std::vector<Float64> Float64Column;
|
|||
|
|
|||
|
typedef std::vector<String> StringColumn;
|
|||
|
|
|||
|
typedef std::vector<Field> VariantColumn; /// Столбец произвольных значений, а также nullable значений
|
|||
|
|
|||
|
|
|||
|
typedef boost::make_recursive_variant<
|
|||
|
UInt8Column, UInt16Column, UInt32Column, UInt64Column,
|
|||
|
Int8Column, Int16Column, Int32Column, Int64Column,
|
|||
|
Float32Column, Float64Column,
|
|||
|
StringColumn,
|
|||
|
VariantColumn, /// Variant, Nullable
|
|||
|
std::vector<boost::recursive_variant_> /// Tuple, Array
|
|||
|
>::type Column;
|
|||
|
|
|||
|
typedef std::vector<Column> TupleColumn; /// Столбец значений типа "кортеж" - несколько столбцов произвольного типа
|
|||
|
typedef std::vector<Column> ArrayColumn; /// Столбец значений типа "массив" - столбец, значения в котором - массивы
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
#endif
|