mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-22 23:52:03 +00:00
another review fixes
This commit is contained in:
parent
f70044f34b
commit
ef61c22167
@ -89,22 +89,16 @@ bool allOutputsDependsOnlyOnAllowedNodes(
|
|||||||
if (visited.contains(node))
|
if (visited.contains(node))
|
||||||
return visited[node];
|
return visited[node];
|
||||||
|
|
||||||
auto has_match_in_group_by_actions_that_is_also_irreducible = [&irreducible_nodes, &matches, &node]()
|
bool res = false;
|
||||||
|
/// `matches` maps partition key nodes into nodes in group by actions
|
||||||
|
if (matches.contains(node))
|
||||||
{
|
{
|
||||||
/// `matches` maps partition key nodes into nodes in group by actions
|
const auto & match = matches.at(node);
|
||||||
if (matches.contains(node))
|
/// Function could be mapped into its argument. In this case .monotonicity != std::nullopt (see matchTrees)
|
||||||
{
|
if (match.node && match.node->result_name == node->result_name && !match.monotonicity)
|
||||||
if (const auto * node_in_gb_actions = matches.at(node).node;
|
res = irreducible_nodes.contains(match.node);
|
||||||
/// Double-check is needed because function can be mapped into its arg (see matchTrees)
|
}
|
||||||
node_in_gb_actions && node_in_gb_actions->result_name == node->result_name)
|
|
||||||
{
|
|
||||||
return irreducible_nodes.contains(node_in_gb_actions);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
|
|
||||||
bool res = has_match_in_group_by_actions_that_is_also_irreducible();
|
|
||||||
if (!res)
|
if (!res)
|
||||||
{
|
{
|
||||||
switch (node->type)
|
switch (node->type)
|
||||||
|
@ -743,7 +743,9 @@ void AggregatingTransform::initGenerate()
|
|||||||
pipe.addSimpleTransform(
|
pipe.addSimpleTransform(
|
||||||
[this](const Block & header)
|
[this](const Block & header)
|
||||||
{
|
{
|
||||||
return std::make_shared<SimpleSquashingChunksTransform>(header, params->params.max_block_size, 1024 * 1024);
|
/// Just a reasonable constant, matches default value for the setting `preferred_block_size_bytes`
|
||||||
|
static constexpr size_t oneMB = 1024 * 1024;
|
||||||
|
return std::make_shared<SimpleSquashingChunksTransform>(header, params->params.max_block_size, oneMB);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
/// AggregatingTransform::expandPipeline expects single output port.
|
/// AggregatingTransform::expandPipeline expects single output port.
|
||||||
|
Loading…
Reference in New Issue
Block a user