| 501 | } |
| 502 | |
| 503 | void writeAdditionalInfo( |
| 504 | size_t rows, |
| 505 | size_t rows_before_limit, |
| 506 | bool applied_limit, |
| 507 | size_t rows_before_aggregation, |
| 508 | bool applied_aggregation, |
| 509 | const Stopwatch & watch, |
| 510 | const Progress & progress, |
| 511 | bool write_statistics, |
| 512 | WriteBuffer & out) |
| 513 | { |
| 514 | writeFieldDelimiter(out, 2); |
| 515 | writeTitle("rows", out, 1, " "); |
| 516 | writeIntText(rows, out); |
| 517 | |
| 518 | if (applied_limit) |
| 519 | { |
| 520 | writeFieldDelimiter(out, 2); |
| 521 | writeTitle("rows_before_limit_at_least", out, 1, " "); |
| 522 | writeIntText(rows_before_limit, out); |
| 523 | } |
| 524 | if (applied_aggregation) |
| 525 | { |
| 526 | writeFieldDelimiter(out, 2); |
| 527 | writeTitle("rows_before_aggregation", out, 1, " "); |
| 528 | writeIntText(rows_before_aggregation, out); |
| 529 | } |
| 530 | if (write_statistics) |
| 531 | { |
| 532 | writeFieldDelimiter(out, 2); |
| 533 | writeObjectStart(out, 1, "statistics"); |
| 534 | |
| 535 | writeTitle("elapsed", out, 2, " "); |
| 536 | writeText(watch.elapsedSeconds(), out); |
| 537 | writeFieldDelimiter(out); |
| 538 | |
| 539 | writeTitle("rows_read", out, 2, " "); |
| 540 | writeText(progress.read_rows.load(), out); |
| 541 | writeFieldDelimiter(out); |
| 542 | |
| 543 | writeTitle("bytes_read", out, 2, " "); |
| 544 | writeText(progress.read_bytes.load(), out); |
| 545 | |
| 546 | writeObjectEnd(out, 1); |
| 547 | } |
| 548 | } |
| 549 | |
| 550 | void writeException(const String & exception_message, WriteBuffer & out, const FormatSettings & settings, size_t indent) |
| 551 | { |
no test coverage detected