mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-10 01:25:21 +00:00
Addressing review comments
This commit is contained in:
parent
488ee75fc4
commit
9ef8ff5a31
@ -82,7 +82,8 @@ DistinctStep::DistinctStep(
|
|||||||
|
|
||||||
void DistinctStep::transformPipeline(QueryPipelineBuilder & pipeline, const BuildQueryPipelineSettings &)
|
void DistinctStep::transformPipeline(QueryPipelineBuilder & pipeline, const BuildQueryPipelineSettings &)
|
||||||
{
|
{
|
||||||
if (checkColumnsAlreadyDistinct(columns, input_streams.front().distinct_columns))
|
const auto & input_stream = input_streams.back();
|
||||||
|
if (checkColumnsAlreadyDistinct(columns, input_stream.distinct_columns))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!pre_distinct)
|
if (!pre_distinct)
|
||||||
@ -90,7 +91,6 @@ void DistinctStep::transformPipeline(QueryPipelineBuilder & pipeline, const Buil
|
|||||||
|
|
||||||
if (optimize_distinct_in_order)
|
if (optimize_distinct_in_order)
|
||||||
{
|
{
|
||||||
const auto & input_stream = input_streams.back();
|
|
||||||
SortDescription distinct_sort_desc = getSortDescription(input_stream.sort_description, columns);
|
SortDescription distinct_sort_desc = getSortDescription(input_stream.sort_description, columns);
|
||||||
if (!distinct_sort_desc.empty())
|
if (!distinct_sort_desc.empty())
|
||||||
{
|
{
|
||||||
@ -109,8 +109,10 @@ void DistinctStep::transformPipeline(QueryPipelineBuilder & pipeline, const Buil
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/// final distinct for sorted stream (sorting inside and among chunks)
|
/// final distinct for sorted stream (sorting inside and among chunks)
|
||||||
if (input_stream.has_single_port)
|
if (input_stream.sort_mode == DataStream::SortMode::Stream)
|
||||||
{
|
{
|
||||||
|
assert(input_stream.has_single_port);
|
||||||
|
|
||||||
pipeline.addSimpleTransform(
|
pipeline.addSimpleTransform(
|
||||||
[&](const Block & header, QueryPipelineBuilder::StreamType stream_type) -> ProcessorPtr
|
[&](const Block & header, QueryPipelineBuilder::StreamType stream_type) -> ProcessorPtr
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<test>
|
<test>
|
||||||
<!-- high cardinality -->
|
<!-- high cardinality -->
|
||||||
<create_query>CREATE TABLE distinct_cardinality_high (high UInt64, medium UInt64, low UInt64) ENGINE MergeTree() ORDER BY (high, medium)</create_query>
|
<create_query>CREATE TABLE distinct_cardinality_high (high UInt64, medium UInt64, low UInt64) ENGINE MergeTree() ORDER BY (high, medium)</create_query>
|
||||||
<fill_query>INSERT INTO distinct_cardinality_high SELECT number % 10000, number % 1000, number % 100 FROM numbers_mt(1e8)</fill_query>
|
<fill_query>INSERT INTO distinct_cardinality_high SELECT number % 1e6, number % 1e4, number % 1e2 FROM numbers_mt(1e8)</fill_query>
|
||||||
|
|
||||||
<query>SELECT DISTINCT high FROM distinct_cardinality_high FORMAT Null</query>
|
<query>SELECT DISTINCT high FROM distinct_cardinality_high FORMAT Null</query>
|
||||||
<query>SELECT DISTINCT high, low FROM distinct_cardinality_high FORMAT Null</query>
|
<query>SELECT DISTINCT high, low FROM distinct_cardinality_high FORMAT Null</query>
|
||||||
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
<!-- low cardinality -->
|
<!-- low cardinality -->
|
||||||
<create_query>CREATE TABLE distinct_cardinality_low (low UInt64, medium UInt64, high UInt64) ENGINE MergeTree() ORDER BY (low, medium)</create_query>
|
<create_query>CREATE TABLE distinct_cardinality_low (low UInt64, medium UInt64, high UInt64) ENGINE MergeTree() ORDER BY (low, medium)</create_query>
|
||||||
<fill_query>INSERT INTO distinct_cardinality_low SELECT number % 100, number % 1000, number % 10000 FROM numbers_mt(1e8)</fill_query>
|
<fill_query>INSERT INTO distinct_cardinality_low SELECT number % 1e2, number % 1e4, number % 1e6 FROM numbers_mt(1e8)</fill_query>
|
||||||
|
|
||||||
<query>SELECT DISTINCT low FROM distinct_cardinality_low FORMAT Null</query>
|
<query>SELECT DISTINCT low FROM distinct_cardinality_low FORMAT Null</query>
|
||||||
<query>SELECT DISTINCT low, medium FROM distinct_cardinality_low FORMAT Null</query>
|
<query>SELECT DISTINCT low, medium FROM distinct_cardinality_low FORMAT Null</query>
|
||||||
|
Loading…
Reference in New Issue
Block a user