ClickHouse

Форк
0
/
SourceFromSingleChunk.cpp 
37 строк · 1.1 Кб
1
#include <Processors/Sources/SourceFromSingleChunk.h>
2
#include <DataTypes/DataTypeAggregateFunction.h>
3
#include <Processors/Transforms/AggregatingTransform.h>
4

5
namespace DB
6
{
7

8
SourceFromSingleChunk::SourceFromSingleChunk(Block header, Chunk chunk_) : ISource(std::move(header)), chunk(std::move(chunk_)) {}
9

10
SourceFromSingleChunk::SourceFromSingleChunk(Block data) : ISource(data.cloneEmpty()), chunk(data.getColumns(), data.rows())
11
{
12
    const auto & sample = getPort().getHeader();
13
    bool has_aggregate_functions = false;
14
    for (auto & type : sample.getDataTypes())
15
        if (typeid_cast<const DataTypeAggregateFunction *>(type.get()))
16
            has_aggregate_functions = true;
17

18
    if (has_aggregate_functions)
19
    {
20
        auto info = std::make_shared<AggregatedChunkInfo>();
21
        info->bucket_num = data.info.bucket_num;
22
        info->is_overflows = data.info.is_overflows;
23
        chunk.setChunkInfo(std::move(info));
24
    }
25
}
26

27
String SourceFromSingleChunk::getName() const
28
{
29
    return "SourceFromSingleChunk";
30
}
31

32
Chunk SourceFromSingleChunk::generate()
33
{
34
    return std::move(chunk);
35
}
36

37
}
38

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.