new tests

This commit is contained in:
Volodya 2024-04-29 18:28:32 +00:00
parent 156649a087
commit 77317c0514
6 changed files with 72 additions and 23 deletions

View File

@ -350,7 +350,7 @@ void PrettyBlockOutputFormat::writeChunk(const Chunk & chunk, PortKind port_kind
writeCString("\n", out); writeCString("\n", out);
if (has_transferred_row) if (has_transferred_row)
writeTransferredRow(max_widths, transferred_row); writeTransferredRow(max_widths, transferred_row, false);
} }
if (format_settings.pretty.output_format_pretty_row_numbers) if (format_settings.pretty.output_format_pretty_row_numbers)
@ -440,13 +440,13 @@ void PrettyBlockOutputFormat::writeValueWithPadding(
serialization.serializeText(column, row_num, out_serialize, format_settings); serialization.serializeText(column, row_num, out_serialize, format_settings);
} }
size_t line_breake_pos = String::npos; size_t break_line_pos = String::npos;
if (cut_to_width) if (cut_to_width)
line_breake_pos = serialized_value.find_first_of('\n'); break_line_pos = serialized_value.find_first_of('\n');
if (line_breake_pos != String::npos) if (break_line_pos != String::npos)
{ {
has_break_line = true; has_break_line = true;
serialized_value = serialized_value.substr(0, line_breake_pos); serialized_value = serialized_value.substr(0, break_line_pos);
value_width = serialized_value.size() - 1; value_width = serialized_value.size() - 1;
} }
@ -496,7 +496,7 @@ void PrettyBlockOutputFormat::writeValueWithPadding(
writeString("", out); writeString("", out);
} }
void PrettyBlockOutputFormat::writeTransferredRow(const Widths & max_widths, const std::vector<String> & transferred_row) void PrettyBlockOutputFormat::writeTransferredRow(const Widths & max_widths, const std::vector<String> & transferred_row, const bool & space_block)
{ {
const GridSymbols & grid_symbols = format_settings.pretty.charset == FormatSettings::Pretty::Charset::UTF8 ? const GridSymbols & grid_symbols = format_settings.pretty.charset == FormatSettings::Pretty::Charset::UTF8 ?
utf8_grid_symbols : utf8_grid_symbols :
@ -508,15 +508,19 @@ void PrettyBlockOutputFormat::writeTransferredRow(const Widths & max_widths, con
for (size_t i = 0; i < row_number_width; ++i) for (size_t i = 0; i < row_number_width; ++i)
writeChar(' ', out); writeChar(' ', out);
writeCString(grid_symbols.bar, out); if (!space_block)
writeCString(grid_symbols.bar, out);
std::vector<String> new_transferred_row(num_columns); std::vector<String> new_transferred_row(num_columns);
bool has_transferred_row = false; bool has_transferred_row = false;
size_t cur_width = 0; size_t cur_width = 0;
for (size_t j = 0; j < num_columns; ++j) for (size_t j = 0; j < num_columns; ++j)
{ {
if (j != 0) if (j != 0 && !space_block)
writeCString(grid_symbols.bar, out); writeCString(grid_symbols.bar, out);
else if (j != 0)
writeCString(" ", out);
String value = transferred_row[j]; String value = transferred_row[j];
cur_width = value.size(); cur_width = value.size();
@ -552,11 +556,12 @@ void PrettyBlockOutputFormat::writeTransferredRow(const Widths & max_widths, con
writeChar(' ', out); writeChar(' ', out);
} }
writeCString(grid_symbols.bar, out); if (!space_block)
writeCString(grid_symbols.bar, out);
writeCString("\n", out); writeCString("\n", out);
if (has_transferred_row) if (has_transferred_row)
writeTransferredRow(max_widths, new_transferred_row); writeTransferredRow(max_widths, new_transferred_row, space_block);
} }

View File

@ -50,7 +50,7 @@ protected:
const IColumn & column, const ISerialization & serialization, size_t row_num, const IColumn & column, const ISerialization & serialization, size_t row_num,
size_t value_width, size_t pad_to_width, size_t cut_to_width, bool align_right, bool is_number, bool & has_break_line); size_t value_width, size_t pad_to_width, size_t cut_to_width, bool align_right, bool is_number, bool & has_break_line);
void writeTransferredRow(const Widths & max_widths, const std::vector<String> & transferred_row); void writeTransferredRow(const Widths & max_widths, const std::vector<String> & transferred_row, const bool & space_block);
void resetFormatterImpl() override void resetFormatterImpl() override
{ {

View File

@ -198,7 +198,7 @@ void PrettyCompactBlockOutputFormat::writeRow(
writeCString("\n", out); writeCString("\n", out);
if (has_transferred_row) if (has_transferred_row)
writeTransferredRow(max_widths, transferred_row); writeTransferredRow(max_widths, transferred_row, false);
} }
void PrettyCompactBlockOutputFormat::writeChunk(const Chunk & chunk, PortKind port_kind) void PrettyCompactBlockOutputFormat::writeChunk(const Chunk & chunk, PortKind port_kind)

View File

@ -116,7 +116,7 @@ void PrettySpaceBlockOutputFormat::writeChunk(const Chunk & chunk, PortKind port
writeChar('\n', out); writeChar('\n', out);
if (has_transferred_row) if (has_transferred_row)
writeTransferredRow(max_widths, transferred_row); writeTransferredRow(max_widths, transferred_row, true);
} }
total_rows += num_rows; total_rows += num_rows;

View File

@ -1,8 +1,44 @@
┌─id─┬─value─┐ ┌─id─┬─value─┬─value1──────┐
│ 0 │ hello…│ │ 0 │ hello…│ hello world │
│ │…world │ │ │…world │ │
└────┴───────┘ └────┴───────┴─────────────┘
┌─id─┬─value─┐ ┌─id─┬─value─┬─value1──────┐
1. │ 0 │ hello…│ 1. │ 0 │ hello…│ hello world │
│ │…world │ │ │…world │ │
└────┴───────┘ └────┴───────┴─────────────┘
┌─id─┬─value─┬─value1──────┐
1. │ 0 │ hello…│ hello world │
│ │…world │ │
└────┴───────┴─────────────┘
┏━━━━┳━━━━━━━┳━━━━━━━━━━━━━┓
┃ id ┃ value ┃ value1 ┃
┡━━━━╇━━━━━━━╇━━━━━━━━━━━━━┩
1. │ 0 │ hello…│ hello world │
│ │…world │ │
└────┴───────┴─────────────┘
id value value1
0 hello… hello world
…world
id value value1
1. 0 hello… hello world
…world
┏━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓
┃ id ┃ value ┃ value1 ┃
┡━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩
│ 0 │ hello …│ hello world │
│ │…world │ │
├────┼─────────────┼─────────────┤
│ 1 │ hello world │ hello …│
│ │ │…world │
└────┴─────────────┴─────────────┘
┏━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓
┃ id ┃ value ┃ value1 ┃
┡━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩
1. │ 1 │ hello world │ hello …│
│ │ │…world │
├────┼─────────────┼─────────────┤
2. │ 0 │ hello …│ hello world │
│ │…world │ │
└────┴─────────────┴─────────────┘

View File

@ -1,10 +1,18 @@
DROP TABLE IF EXISTS t_break_line; DROP TABLE IF EXISTS t_break_line;
CREATE TABLE t_break_line (id UInt64, value String) ENGINE=MergeTree ORDER BY id; CREATE TABLE t_break_line (id UInt64, value String, value1 String) ENGINE=MergeTree ORDER BY id;
INSERT INTO t_break_line VALUES(0, 'hello\nworld'); INSERT INTO t_break_line VALUES(0, 'hello\nworld', 'hello world');
SELECT * FROM t_break_line FORMAT PrettyCompactNoEscapes SETTINGS output_format_pretty_row_numbers = 0; SELECT * FROM t_break_line FORMAT PrettyCompactNoEscapes SETTINGS output_format_pretty_row_numbers = 0;
SELECT * FROM t_break_line FORMAT PrettyCompactNoEscapes; SELECT * FROM t_break_line FORMAT PrettyCompactNoEscapes;
SELECT * FROM t_break_line FORMAT PrettyCompact;
SELECT * FROM t_break_line FORMAT Pretty;
SELECT * FROM t_break_line FORMAT PrettySpace SETTINGS output_format_pretty_row_numbers = 0;
SELECT * FROM t_break_line FORMAT PrettySpace;
INSERT INTO t_break_line VALUES(1, 'hello world', 'hello\nworld');
SELECT * FROM t_break_line FORMAT PrettyMonoBlock SETTINGS output_format_pretty_row_numbers = 0;
SELECT * FROM t_break_line FORMAT PrettyMonoBlock;
DROP TABLE t_break_line; DROP TABLE t_break_line;