ClickHouse/dbms/src/DataStreams/BlockExtraInfoInputStream.h

47 lines
1.0 KiB
C++

#pragma once
#include <DataStreams/IProfilingBlockInputStream.h>
namespace DB
{
/** Adds to one stream additional block information that is specified
* as the constructor parameter.
*/
class BlockExtraInfoInputStream : public IProfilingBlockInputStream
{
public:
BlockExtraInfoInputStream(const BlockInputStreamPtr & input, const BlockExtraInfo & block_extra_info_)
: block_extra_info(block_extra_info_)
{
children.push_back(input);
}
BlockExtraInfo getBlockExtraInfo() const override
{
return block_extra_info;
}
String getName() const override { return "BlockExtraInfoInput"; }
String getID() const override
{
std::stringstream res;
res << "BlockExtraInfoInput(" << children.back()->getID() << ")";
return res.str();
}
Block getHeader() override { return children.back()->getHeader(); }
protected:
Block readImpl() override
{
return children.back()->read();
}
private:
BlockExtraInfo block_extra_info;
};
}