mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-22 07:31:57 +00:00
Merge pull request #5407 from kvap/all-columns-required-in-limit-by
Mark all input columns in LIMIT BY as required output
This commit is contained in:
commit
bffe621d94
@ -849,8 +849,19 @@ bool ExpressionAnalyzer::appendLimitBy(ExpressionActionsChain & chain, bool only
|
||||
|
||||
getRootActions(select_query->limitBy(), only_types, step.actions);
|
||||
|
||||
NameSet aggregated_names;
|
||||
for (const auto & column : aggregated_columns)
|
||||
{
|
||||
step.required_output.push_back(column.name);
|
||||
aggregated_names.insert(column.name);
|
||||
}
|
||||
|
||||
for (const auto & child : select_query->limitBy()->children)
|
||||
step.required_output.push_back(child->getColumnName());
|
||||
{
|
||||
auto child_name = child->getColumnName();
|
||||
if (!aggregated_names.count(child_name))
|
||||
step.required_output.push_back(std::move(child_name));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -24,3 +24,4 @@
|
||||
101
|
||||
101
|
||||
102
|
||||
1
|
||||
|
@ -32,4 +32,7 @@ SELECT 1 as one FROM remote('127.0.0.{2,3}', system.one) LIMIT 1 BY one;
|
||||
-- Distributed LIMIT BY with LIMIT
|
||||
SELECT toInt8(number / 5 + 100) AS x FROM remote('127.0.0.1', system.numbers) LIMIT 2 BY x LIMIT 5;
|
||||
|
||||
-- Distributed LIMIT BY with ORDER BY non-selected column
|
||||
SELECT 1 AS x FROM remote('127.0.0.{2,3}', system.one) ORDER BY dummy LIMIT 1 BY x;
|
||||
|
||||
DROP TABLE IF EXISTS limit_by;
|
||||
|
Loading…
Reference in New Issue
Block a user