2012-03-11 08:52:56 +00:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <DB/DataStreams/IBlockOutputStream.h>
|
2017-03-11 00:27:59 +00:00
|
|
|
|
#include <DB/Common/Exception.h>
|
2012-03-11 08:52:56 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace DB
|
|
|
|
|
{
|
|
|
|
|
|
2017-02-07 21:26:32 +00:00
|
|
|
|
namespace ErrorCodes
|
|
|
|
|
{
|
|
|
|
|
extern const int CANNOT_WRITE_TO_EMPTY_BLOCK_OUTPUT_STREAM;
|
|
|
|
|
}
|
2012-03-11 08:52:56 +00:00
|
|
|
|
|
|
|
|
|
/** При попытке записать в этот поток блоков, кидает исключение.
|
|
|
|
|
* Используется там, где, в общем случае, нужно передать поток блоков, но в некоторых случаях, он не должен быть использован.
|
|
|
|
|
*/
|
|
|
|
|
class EmptyBlockOutputStream : public IBlockOutputStream
|
|
|
|
|
{
|
|
|
|
|
public:
|
2014-11-08 23:52:18 +00:00
|
|
|
|
void write(const Block & block) override
|
2012-03-11 08:52:56 +00:00
|
|
|
|
{
|
|
|
|
|
throw Exception("Cannot write to EmptyBlockOutputStream", ErrorCodes::CANNOT_WRITE_TO_EMPTY_BLOCK_OUTPUT_STREAM);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
}
|