mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-18 21:51:57 +00:00
Added ConvertColumnWithDictionaryToFullBlockInputStream.
This commit is contained in:
parent
af5475b77c
commit
0897d2a9c4
@ -13,6 +13,7 @@
|
|||||||
#include <Common/typeid_cast.h>
|
#include <Common/typeid_cast.h>
|
||||||
|
|
||||||
#include <Poco/String.h>
|
#include <Poco/String.h>
|
||||||
|
#include <DataTypes/DataTypeWithDictionary.h>
|
||||||
|
|
||||||
|
|
||||||
namespace DB
|
namespace DB
|
||||||
@ -41,6 +42,20 @@ void AggregateFunctionFactory::registerFunction(const String & name, Creator cre
|
|||||||
ErrorCodes::LOGICAL_ERROR);
|
ErrorCodes::LOGICAL_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static DataTypes convertTypesWithDictionaryToNested(const DataTypes & types)
|
||||||
|
{
|
||||||
|
DataTypes res_types;
|
||||||
|
res_types.reserve(types.size());
|
||||||
|
for (const auto & type : types)
|
||||||
|
{
|
||||||
|
if (auto * type_with_dict = typeid_cast<const DataTypeWithDictionary *>(type.get()))
|
||||||
|
res_types.push_back(type_with_dict->getDictionaryType());
|
||||||
|
else
|
||||||
|
res_types.push_back(type);
|
||||||
|
}
|
||||||
|
|
||||||
|
return std::move(res_types);
|
||||||
|
}
|
||||||
|
|
||||||
AggregateFunctionPtr AggregateFunctionFactory::get(
|
AggregateFunctionPtr AggregateFunctionFactory::get(
|
||||||
const String & name,
|
const String & name,
|
||||||
@ -57,7 +72,7 @@ AggregateFunctionPtr AggregateFunctionFactory::get(
|
|||||||
if (!combinator)
|
if (!combinator)
|
||||||
throw Exception("Logical error: cannot find aggregate function combinator to apply a function to Nullable arguments.", ErrorCodes::LOGICAL_ERROR);
|
throw Exception("Logical error: cannot find aggregate function combinator to apply a function to Nullable arguments.", ErrorCodes::LOGICAL_ERROR);
|
||||||
|
|
||||||
DataTypes nested_types = combinator->transformArguments(argument_types);
|
DataTypes nested_types = combinator->transformArguments(convertTypesWithDictionaryToNested(argument_types));
|
||||||
|
|
||||||
AggregateFunctionPtr nested_function;
|
AggregateFunctionPtr nested_function;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user