mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-12 17:32:32 +00:00
32 lines
650 B
C++
32 lines
650 B
C++
#include <DataStreams/SquashingBlockInputStream.h>
|
|
|
|
|
|
namespace DB
|
|
{
|
|
|
|
SquashingBlockInputStream::SquashingBlockInputStream(BlockInputStreamPtr & src, size_t min_block_size_rows, size_t min_block_size_bytes)
|
|
: transform(min_block_size_rows, min_block_size_bytes)
|
|
{
|
|
children.emplace_back(src);
|
|
}
|
|
|
|
|
|
Block SquashingBlockInputStream::readImpl()
|
|
{
|
|
if (all_read)
|
|
return {};
|
|
|
|
while (true)
|
|
{
|
|
Block block = children[0]->read();
|
|
if (!block)
|
|
all_read = true;
|
|
|
|
SquashingTransform::Result result = transform.add(std::move(block));
|
|
if (result.ready)
|
|
return result.block;
|
|
}
|
|
}
|
|
|
|
}
|