#ifndef DBMS_CORE_COLUMN_H #define DBMS_CORE_COLUMN_H #include #include #include #include #include #include namespace DB { /** Типы данных для представления столбцов значений в оперативке. */ typedef std::vector UInt8Column; typedef std::vector UInt16Column; typedef std::vector UInt32Column; typedef std::vector UInt64Column; typedef std::vector Int8Column; typedef std::vector Int16Column; typedef std::vector Int32Column; typedef std::vector Int64Column; typedef std::vector Float32Column; typedef std::vector Float64Column; typedef std::vector StringColumn; typedef std::vector VariantColumn; /// Столбец произвольных значений, а также nullable значений typedef boost::make_recursive_variant< UInt8Column, UInt16Column, UInt32Column, UInt64Column, Int8Column, Int16Column, Int32Column, Int64Column, Float32Column, Float64Column, StringColumn, VariantColumn, /// Variant, Nullable std::vector /// Tuple, Array >::type Column; typedef std::vector TupleColumn; /// Столбец значений типа "кортеж" - несколько столбцов произвольного типа typedef std::vector ArrayColumn; /// Столбец значений типа "массив" - столбец, значения в котором - массивы } #endif