ClickHouse/src/Processors/Formats/Impl/PrettyCompactBlockOutputFormat.h
Azat Khuzhin 15be6a0dd5 Fix quirks for PrettyCompactMonoBlock
- Fix PrettyCompactMonoBlock for clickhouse-local (broken in 20.3+,
  fails with an error `Unknown format PrettyCompactMonoBlock`, after #6239)
- Fix extremes/totals with PrettyCompactMonoBlock (even before 20.3
  breakage they were simply ignored)
2020-08-06 11:59:45 +03:00

40 lines
1.1 KiB
C++

#pragma once
#include <Processors/Formats/Impl/PrettyBlockOutputFormat.h>
#include <optional>
#include <unordered_map>
namespace DB
{
/** Prints the result in the form of beautiful tables, but with fewer delimiter lines.
*/
class PrettyCompactBlockOutputFormat : public PrettyBlockOutputFormat
{
public:
PrettyCompactBlockOutputFormat(WriteBuffer & out_, const Block & header, const FormatSettings & format_settings_, bool mono_block_);
String getName() const override { return "PrettyCompactBlockOutputFormat"; }
protected:
void write(const Chunk & chunk, PortKind port_kind) override;
void writeHeader(const Block & block, const Widths & max_widths, const Widths & name_widths);
void writeBottom(const Widths & max_widths);
void writeRow(
size_t row_num,
const Block & header,
const Columns & columns,
const WidthsPerColumn & widths,
const Widths & max_widths);
private:
bool mono_block;
/// For mono_block == true only
Chunk mono_chunk;
void writeChunk(const Chunk & chunk, PortKind port_kind);
void writeSuffixIfNot() override;
};
}