ClickHouse/dbms/include/DB/Core/Column.h
2010-03-01 16:59:51 +00:00

52 lines
1.6 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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