mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-22 09:40:49 +00:00
dbms: development [#CONV-2944].
This commit is contained in:
parent
20d1415938
commit
5501a05fc6
@ -100,7 +100,7 @@ public:
|
||||
/** Размножить все значения столько раз, сколько прописано в offsets.
|
||||
* (i-е значение размножается в offsets[i] - offsets[i - 1] значений.)
|
||||
*/
|
||||
typedef UInt32 Offset_t;
|
||||
typedef UInt64 Offset_t;
|
||||
typedef std::vector<Offset_t> Offsets_t;
|
||||
virtual void replicate(const Offsets_t & offsets) = 0;
|
||||
|
||||
|
@ -32,7 +32,10 @@ template <> ColumnPtr ColumnConst<String>::convertToFullColumn() const
|
||||
template <> ColumnPtr ColumnConst<Array>::convertToFullColumn() const
|
||||
{
|
||||
size_t array_size = data.size();
|
||||
ColumnPtr nested_column = boost::apply_visitor(FieldToDataType(), data.at(0))->createColumn();
|
||||
ColumnPtr nested_column = data.empty()
|
||||
? new ColumnUInt8 /// Для пустого массива непонятно, какого типа будет материализованный столбец. Пусть будет UInt8.
|
||||
: boost::apply_visitor(FieldToDataType(), data.at(0))->createColumn();
|
||||
|
||||
ColumnArray * res = new ColumnArray(nested_column);
|
||||
ColumnArray::Offsets_t & offsets = res->getOffsets();
|
||||
|
||||
|
@ -22,7 +22,9 @@ static void writeData(const IDataType & type, const IColumn & column, WriteBuffe
|
||||
if (const DataTypeArray * type_arr = dynamic_cast<const DataTypeArray *>(&type))
|
||||
{
|
||||
type_arr->getOffsetsType()->serializeBinary(*dynamic_cast<const ColumnArray &>(column).getOffsetsColumn(), ostr);
|
||||
writeData(*type_arr->getNestedType(), dynamic_cast<const ColumnArray &>(column).getData(), ostr);
|
||||
|
||||
if (!dynamic_cast<const ColumnArray &>(column).getData().empty())
|
||||
writeData(*type_arr->getNestedType(), dynamic_cast<const ColumnArray &>(column).getData(), ostr);
|
||||
}
|
||||
else
|
||||
type.serializeBinary(column, ostr);
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include <DB/Functions/FunctionsRandom.h>
|
||||
#include <DB/Functions/FunctionsURL.h>
|
||||
#include <DB/Functions/FunctionsArray.h>
|
||||
#include <DB/Functions/FunctionsStringArray.h>
|
||||
#include <DB/Functions/FunctionsMiscellaneous.h>
|
||||
|
||||
#include <DB/Functions/FunctionsLibrary.h>
|
||||
@ -130,6 +131,8 @@ namespace FunctionsLibrary
|
||||
("notIn", new FunctionIn(true))
|
||||
|
||||
("array", new FunctionArray)
|
||||
|
||||
("alphaTokens", new FunctionAlphaTokens)
|
||||
;
|
||||
|
||||
return res;
|
||||
|
Loading…
Reference in New Issue
Block a user