mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-21 01:00:48 +00:00
Style #2948
This commit is contained in:
parent
0ca8e20e66
commit
9df01c1012
@ -24,7 +24,7 @@ static void finalize(Block & block)
|
|||||||
}
|
}
|
||||||
|
|
||||||
RollupBlockInputStream::RollupBlockInputStream(
|
RollupBlockInputStream::RollupBlockInputStream(
|
||||||
const BlockInputStreamPtr & input_, const Aggregator::Params & params_) : aggregator(params_),
|
const BlockInputStreamPtr & input_, const Aggregator::Params & params_) : aggregator(params_),
|
||||||
keys(params_.keys)
|
keys(params_.keys)
|
||||||
{
|
{
|
||||||
children.push_back(input_);
|
children.push_back(input_);
|
||||||
@ -47,7 +47,7 @@ Block RollupBlockInputStream::readImpl()
|
|||||||
* we will subsequently roll it up on next iterations of 'readImpl'
|
* we will subsequently roll it up on next iterations of 'readImpl'
|
||||||
* by zeroing out every column one-by-one and re-merging a block.
|
* by zeroing out every column one-by-one and re-merging a block.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (current_key >= 0)
|
if (current_key >= 0)
|
||||||
{
|
{
|
||||||
auto & current = rollup_block.getByPosition(keys[current_key]);
|
auto & current = rollup_block.getByPosition(keys[current_key]);
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include <Core/AccurateComparison.h>
|
#include <Core/AccurateComparison.h>
|
||||||
#include <Common/FieldVisitors.h>
|
#include <Common/FieldVisitors.h>
|
||||||
#include <Common/typeid_cast.h>
|
#include <Common/typeid_cast.h>
|
||||||
|
#include <Common/Arena.h>
|
||||||
#include <IO/WriteHelpers.h>
|
#include <IO/WriteHelpers.h>
|
||||||
#include <Interpreters/ExpressionActions.h>
|
#include <Interpreters/ExpressionActions.h>
|
||||||
#include <ext/range.h>
|
#include <ext/range.h>
|
||||||
@ -1209,7 +1210,7 @@ public:
|
|||||||
{
|
{
|
||||||
if constexpr (!std::is_same_v<Op<UInt8, UInt8>, MultiplyImpl<UInt8, UInt8>>)
|
if constexpr (!std::is_same_v<Op<UInt8, UInt8>, MultiplyImpl<UInt8, UInt8>>)
|
||||||
return false;
|
return false;
|
||||||
auto is_uint_type = [](const DataTypePtr & type)
|
auto is_uint_type = [](const DataTypePtr & type)
|
||||||
{
|
{
|
||||||
return checkDataType<DataTypeUInt8>(type.get()) || checkDataType<DataTypeUInt16>(type.get())
|
return checkDataType<DataTypeUInt8>(type.get()) || checkDataType<DataTypeUInt16>(type.get())
|
||||||
|| checkDataType<DataTypeUInt32>(type.get()) || checkDataType<DataTypeUInt64>(type.get());
|
|| checkDataType<DataTypeUInt32>(type.get()) || checkDataType<DataTypeUInt64>(type.get());
|
||||||
@ -1226,14 +1227,14 @@ public:
|
|||||||
ColumnNumbers new_arguments = arguments;
|
ColumnNumbers new_arguments = arguments;
|
||||||
if (checkDataType<DataTypeAggregateFunction>(block.getByPosition(new_arguments[1]).type.get()))
|
if (checkDataType<DataTypeAggregateFunction>(block.getByPosition(new_arguments[1]).type.get()))
|
||||||
std::swap(new_arguments[0], new_arguments[1]);
|
std::swap(new_arguments[0], new_arguments[1]);
|
||||||
|
|
||||||
const ColumnAggregateFunction * column = typeid_cast<const ColumnAggregateFunction *>(block.getByPosition(new_arguments[0]).column.get());
|
const ColumnAggregateFunction * column = typeid_cast<const ColumnAggregateFunction *>(block.getByPosition(new_arguments[0]).column.get());
|
||||||
IAggregateFunction * function = column->getAggregateFunction().get();
|
IAggregateFunction * function = column->getAggregateFunction().get();
|
||||||
|
|
||||||
auto arena = std::make_shared<Arena>();
|
auto arena = std::make_shared<Arena>();
|
||||||
|
|
||||||
auto column_to = ColumnAggregateFunction::create(column->getAggregateFunction(), Arenas(1, arena));
|
auto column_to = ColumnAggregateFunction::create(column->getAggregateFunction(), Arenas(1, arena));
|
||||||
column_to->reserve(input_rows_count);
|
column_to->reserve(input_rows_count);
|
||||||
|
|
||||||
auto column_from = ColumnAggregateFunction::create(column->getAggregateFunction(), Arenas(1, arena));
|
auto column_from = ColumnAggregateFunction::create(column->getAggregateFunction(), Arenas(1, arena));
|
||||||
column_from->reserve(input_rows_count);
|
column_from->reserve(input_rows_count);
|
||||||
@ -1266,7 +1267,7 @@ public:
|
|||||||
m /= 2;
|
m /= 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
block.getByPosition(result).column = std::move(column_to);
|
block.getByPosition(result).column = std::move(column_to);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -539,7 +539,7 @@ void InterpreterSelectQuery::executeImpl(Pipeline & pipeline, const BlockInputSt
|
|||||||
{
|
{
|
||||||
if (query.group_by_with_totals)
|
if (query.group_by_with_totals)
|
||||||
executeTotalsAndHaving(pipeline, expressions.has_having, expressions.before_having, aggregate_overflow_row, !query.group_by_with_rollup);
|
executeTotalsAndHaving(pipeline, expressions.has_having, expressions.before_having, aggregate_overflow_row, !query.group_by_with_rollup);
|
||||||
|
|
||||||
if (query.group_by_with_rollup)
|
if (query.group_by_with_rollup)
|
||||||
executeRollup(pipeline);
|
executeRollup(pipeline);
|
||||||
}
|
}
|
||||||
@ -1079,9 +1079,9 @@ void InterpreterSelectQuery::executeRollup(Pipeline & pipeline)
|
|||||||
|
|
||||||
for (const auto & name : key_names)
|
for (const auto & name : key_names)
|
||||||
keys.push_back(header.getPositionByName(name));
|
keys.push_back(header.getPositionByName(name));
|
||||||
|
|
||||||
const Settings & settings = context.getSettingsRef();
|
const Settings & settings = context.getSettingsRef();
|
||||||
|
|
||||||
Aggregator::Params params(header, keys, aggregates,
|
Aggregator::Params params(header, keys, aggregates,
|
||||||
false, settings.max_rows_to_group_by, settings.group_by_overflow_mode,
|
false, settings.max_rows_to_group_by, settings.group_by_overflow_mode,
|
||||||
settings.compile ? &context.getCompiler() : nullptr, settings.min_count_to_compile,
|
settings.compile ? &context.getCompiler() : nullptr, settings.min_count_to_compile,
|
||||||
|
Loading…
Reference in New Issue
Block a user