ClickHouse/dbms/include/DB/DataStreams/PrettyBlockOutputStream.h
2011-11-28 04:05:53 +00:00

34 lines
906 B
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <DB/DataStreams/IBlockOutputStream.h>
#define PRETTY_FORMAT_DEFAULT_MAX_ROWS 1000
namespace DB
{
/** Выводит результат в виде красивых таблиц.
*/
class PrettyBlockOutputStream : public IBlockOutputStream
{
public:
PrettyBlockOutputStream(WriteBuffer & ostr_, size_t max_rows_ = PRETTY_FORMAT_DEFAULT_MAX_ROWS);
void write(const Block & block);
void writeSuffix();
BlockOutputStreamPtr clone() { return new PrettyBlockOutputStream(ostr); }
protected:
typedef std::vector<size_t> Widths_t;
/// Вычислить видимую (при выводе на консоль с кодировкой UTF-8) ширину значений и имён столбцов.
void calculateWidths(Block & block, Widths_t & max_widths, Widths_t & name_widths);
WriteBuffer & ostr;
size_t max_rows;
size_t total_rows;
size_t terminal_width;
};
}