mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-10-19 15:01:03 +00:00
27 lines
718 B
C++
27 lines
718 B
C++
#include <Processors/Transforms/PartialSortingTransform.h>
|
|
#include <Interpreters/sortBlock.h>
|
|
|
|
namespace DB
|
|
{
|
|
|
|
PartialSortingTransform::PartialSortingTransform(
|
|
const Block & header_, SortDescription & description_, UInt64 limit_, bool do_count_rows_)
|
|
: ISimpleTransform(header_, header_, false)
|
|
, description(description_), limit(limit_), do_count_rows(do_count_rows_)
|
|
{
|
|
}
|
|
|
|
void PartialSortingTransform::transform(Chunk & chunk)
|
|
{
|
|
if (do_count_rows)
|
|
read_rows += chunk.getNumRows();
|
|
|
|
auto block = getInputPort().getHeader().cloneWithColumns(chunk.detachColumns());
|
|
chunk.clear();
|
|
|
|
sortBlock(block, description, limit);
|
|
chunk.setColumns(block.getColumns(), block.rows());
|
|
}
|
|
|
|
}
|