| 16 | { |
| 17 | |
| 18 | void InternalTextLogs::writeLogs(const Block & block) |
| 19 | { |
| 20 | const auto & array_event_time = typeid_cast<const ColumnUInt32 &>(*block.getByName("event_time").column).getData(); |
| 21 | const auto & array_microseconds = typeid_cast<const ColumnUInt32 &>(*block.getByName("event_time_microseconds").column).getData(); |
| 22 | |
| 23 | const auto & column_host_name = typeid_cast<const ColumnString &>(*block.getByName("host_name").column); |
| 24 | const auto & column_query_id = typeid_cast<const ColumnString &>(*block.getByName("query_id").column); |
| 25 | |
| 26 | const auto & array_thread_id = typeid_cast<const ColumnUInt64 &>(*block.getByName("thread_id").column).getData(); |
| 27 | const auto & array_priority = typeid_cast<const ColumnInt8 &>(*block.getByName("priority").column).getData(); |
| 28 | const auto & column_source = typeid_cast<const ColumnString &>(*block.getByName("source").column); |
| 29 | const auto & column_text = typeid_cast<const ColumnString &>(*block.getByName("text").column); |
| 30 | |
| 31 | for (size_t row_num = 0; row_num < block.rows(); ++row_num) |
| 32 | { |
| 33 | auto host_name = column_host_name.getDataAt(row_num); |
| 34 | if (!host_name.empty()) |
| 35 | { |
| 36 | writeCString("[", wb); |
| 37 | if (color) |
| 38 | writeString(setColor(StringViewHash()(host_name)), wb); |
| 39 | writeString(host_name, wb); |
| 40 | if (color) |
| 41 | writeCString(resetColor(), wb); |
| 42 | writeCString("] ", wb); |
| 43 | } |
| 44 | |
| 45 | auto event_time = array_event_time[row_num]; |
| 46 | writeDateTimeText<'.', ':'>(event_time, wb); |
| 47 | |
| 48 | auto microseconds = array_microseconds[row_num]; |
| 49 | writeChar('.', wb); |
| 50 | writeChar('0' + ((microseconds / 100000) % 10), wb); |
| 51 | writeChar('0' + ((microseconds / 10000) % 10), wb); |
| 52 | writeChar('0' + ((microseconds / 1000) % 10), wb); |
| 53 | writeChar('0' + ((microseconds / 100) % 10), wb); |
| 54 | writeChar('0' + ((microseconds / 10) % 10), wb); |
| 55 | writeChar('0' + ((microseconds / 1) % 10), wb); |
| 56 | |
| 57 | UInt64 thread_id = array_thread_id[row_num]; |
| 58 | writeCString(" [ ", wb); |
| 59 | if (color) |
| 60 | writeString(setColor(intHash64(thread_id)), wb); |
| 61 | writeIntText(thread_id, wb); |
| 62 | if (color) |
| 63 | writeCString(resetColor(), wb); |
| 64 | writeCString(" ]", wb); |
| 65 | |
| 66 | auto query_id = column_query_id.getDataAt(row_num); |
| 67 | if (!query_id.empty()) |
| 68 | { |
| 69 | writeCString(" {", wb); |
| 70 | if (color) |
| 71 | writeString(setColor(StringViewHash()(query_id)), wb); |
| 72 | writeString(query_id, wb); |
| 73 | if (color) |
| 74 | writeCString(resetColor(), wb); |
| 75 | writeCString("}", wb); |
no test coverage detected