ClickHouse
32 строки · 697.0 Байт
1#include <Processors/Sources/TemporaryFileLazySource.h>2#include <Formats/TemporaryFileStreamLegacy.h>3
4namespace DB5{
6
7TemporaryFileLazySource::~TemporaryFileLazySource() = default;8
9TemporaryFileLazySource::TemporaryFileLazySource(const std::string & path_, const Block & header_)10: ISource(header_, true)11, path(path_)12, done(false)13{}14
15Chunk TemporaryFileLazySource::generate()16{
17if (done)18return {};19
20if (!stream)21stream = std::make_unique<TemporaryFileStreamLegacy>(path, header);22
23auto block = stream->block_in->read();24if (!block)25{26done = true;27stream.reset();28}29return Chunk(block.getColumns(), block.rows());30}
31
32}
33