#pragma once #include #include namespace DB { using Poco::SharedPtr; /** Поток блоков, из которого можно прочитать один блок. */ class OneBlockInputStream : public IProfilingBlockInputStream { public: OneBlockInputStream(Block & block_) : block(block_), has_been_read(false) {} Block readImpl() { if (has_been_read) return Block(); has_been_read = true; return block; } String getName() const { return "OneBlockInputStream"; } BlockInputStreamPtr clone() { return new OneBlockInputStream(block); } private: Block block; bool has_been_read; }; }