ClickHouse

Форк
0
/
TemporaryFileLazySource.cpp 
32 строки · 697.0 Байт
1
#include <Processors/Sources/TemporaryFileLazySource.h>
2
#include <Formats/TemporaryFileStreamLegacy.h>
3

4
namespace DB
5
{
6

7
TemporaryFileLazySource::~TemporaryFileLazySource() = default;
8

9
TemporaryFileLazySource::TemporaryFileLazySource(const std::string & path_, const Block & header_)
10
    : ISource(header_, true)
11
    , path(path_)
12
    , done(false)
13
{}
14

15
Chunk TemporaryFileLazySource::generate()
16
{
17
    if (done)
18
        return {};
19

20
    if (!stream)
21
        stream = std::make_unique<TemporaryFileStreamLegacy>(path, header);
22

23
    auto block = stream->block_in->read();
24
    if (!block)
25
    {
26
        done = true;
27
        stream.reset();
28
    }
29
    return Chunk(block.getColumns(), block.rows());
30
}
31

32
}
33

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

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

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

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