mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-29 21:20:49 +00:00
nested_columns_holder is not destoyed
This commit is contained in:
parent
bef37517b8
commit
a597e62d3b
@ -548,7 +548,7 @@ void NO_INLINE Aggregator::executeOnIntervalWithoutKeyImpl(
|
|||||||
|
|
||||||
|
|
||||||
void Aggregator::prepareAggregateInstructions(Columns columns, AggregateColumns & aggregate_columns, Columns & materialized_columns,
|
void Aggregator::prepareAggregateInstructions(Columns columns, AggregateColumns & aggregate_columns, Columns & materialized_columns,
|
||||||
AggregateFunctionInstructions & aggregate_functions_instructions)
|
AggregateFunctionInstructions & aggregate_functions_instructions, NestedColumnsHolder & nested_columns_holder)
|
||||||
{
|
{
|
||||||
for (size_t i = 0; i < params.aggregates_size; ++i)
|
for (size_t i = 0; i < params.aggregates_size; ++i)
|
||||||
aggregate_columns[i].resize(params.aggregates[i].arguments.size());
|
aggregate_columns[i].resize(params.aggregates[i].arguments.size());
|
||||||
@ -556,7 +556,6 @@ void Aggregator::prepareAggregateInstructions(Columns columns, AggregateColumns
|
|||||||
aggregate_functions_instructions.resize(params.aggregates_size + 1);
|
aggregate_functions_instructions.resize(params.aggregates_size + 1);
|
||||||
aggregate_functions_instructions[params.aggregates_size].that = nullptr;
|
aggregate_functions_instructions[params.aggregates_size].that = nullptr;
|
||||||
|
|
||||||
std::vector<std::vector<const IColumn *>> nested_columns_holder;
|
|
||||||
for (size_t i = 0; i < params.aggregates_size; ++i)
|
for (size_t i = 0; i < params.aggregates_size; ++i)
|
||||||
{
|
{
|
||||||
for (size_t j = 0; j < aggregate_columns[i].size(); ++j)
|
for (size_t j = 0; j < aggregate_columns[i].size(); ++j)
|
||||||
@ -650,9 +649,9 @@ bool Aggregator::executeOnBlock(Columns columns, UInt64 num_rows, AggregatedData
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
NestedColumnsHolder nested_columns_holder;
|
||||||
AggregateFunctionInstructions aggregate_functions_instructions;
|
AggregateFunctionInstructions aggregate_functions_instructions;
|
||||||
prepareAggregateInstructions(columns, aggregate_columns, materialized_columns, aggregate_functions_instructions);
|
prepareAggregateInstructions(columns, aggregate_columns, materialized_columns, aggregate_functions_instructions, nested_columns_holder);
|
||||||
|
|
||||||
if (isCancelled())
|
if (isCancelled())
|
||||||
return true;
|
return true;
|
||||||
|
@ -1034,6 +1034,7 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
using AggregateFunctionInstructions = std::vector<AggregateFunctionInstruction>;
|
using AggregateFunctionInstructions = std::vector<AggregateFunctionInstruction>;
|
||||||
|
using NestedColumnsHolder = std::vector<std::vector<const IColumn *>>;
|
||||||
|
|
||||||
Sizes offsets_of_aggregate_states; /// The offset to the n-th aggregate function in a row of aggregate functions.
|
Sizes offsets_of_aggregate_states; /// The offset to the n-th aggregate function in a row of aggregate functions.
|
||||||
size_t total_size_of_aggregate_states = 0; /// The total size of the row from the aggregate functions.
|
size_t total_size_of_aggregate_states = 0; /// The total size of the row from the aggregate functions.
|
||||||
@ -1263,7 +1264,8 @@ protected:
|
|||||||
Columns columns,
|
Columns columns,
|
||||||
AggregateColumns & aggregate_columns,
|
AggregateColumns & aggregate_columns,
|
||||||
Columns & materialized_columns,
|
Columns & materialized_columns,
|
||||||
AggregateFunctionInstructions & instructions);
|
AggregateFunctionInstructions & instructions,
|
||||||
|
NestedColumnsHolder & nested_columns_holder);
|
||||||
|
|
||||||
void fillAggregateColumnsWithSingleKey(
|
void fillAggregateColumnsWithSingleKey(
|
||||||
AggregatedDataVariants & data_variants,
|
AggregatedDataVariants & data_variants,
|
||||||
|
@ -69,8 +69,9 @@ void AggregatingInOrderTransform::consume(Chunk chunk)
|
|||||||
key_columns[i] = materialized_columns.back();
|
key_columns[i] = materialized_columns.back();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Aggregator::NestedColumnsHolder nested_columns_holder;
|
||||||
Aggregator::AggregateFunctionInstructions aggregate_function_instructions;
|
Aggregator::AggregateFunctionInstructions aggregate_function_instructions;
|
||||||
params->aggregator.prepareAggregateInstructions(chunk.getColumns(), aggregate_columns, materialized_columns, aggregate_function_instructions);
|
params->aggregator.prepareAggregateInstructions(chunk.getColumns(), aggregate_columns, materialized_columns, aggregate_function_instructions, nested_columns_holder);
|
||||||
|
|
||||||
size_t key_end = 0;
|
size_t key_end = 0;
|
||||||
size_t key_begin = 0;
|
size_t key_begin = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user