ClickHouse/dbms/include/DB/DataStreams/BlockOutputStreamFromRowOutputStream.h

35 lines
1.0 KiB
C++
Raw Normal View History

2011-10-24 12:10:59 +00:00
#pragma once
#include <DB/DataStreams/IBlockOutputStream.h>
#include <DB/DataStreams/IRowOutputStream.h>
namespace DB
{
/** Преобразует поток для записи данных по строкам в поток для записи данных по блокам.
* Наример, для записи текстового дампа.
*/
class BlockOutputStreamFromRowOutputStream : public IBlockOutputStream
{
public:
BlockOutputStreamFromRowOutputStream(RowOutputStreamPtr row_output_);
void write(const Block & block) override;
void writePrefix() override { row_output->writePrefix(); }
void writeSuffix() override { row_output->writeSuffix(); }
void flush() override { row_output->flush(); }
void setRowsBeforeLimit(size_t rows_before_limit) override;
void setTotals(const Block & totals) override;
void setExtremes(const Block & extremes) override;
2011-10-24 12:10:59 +00:00
2015-10-29 20:38:37 +00:00
String getContentType() const override { return row_output->getContentType(); }
2011-10-24 12:10:59 +00:00
private:
RowOutputStreamPtr row_output;
2012-05-08 11:38:00 +00:00
bool first_row;
2011-10-24 12:10:59 +00:00
};
}