github-actions[bot] commented on code in PR #27342:
URL: https://github.com/apache/doris/pull/27342#discussion_r1400420461
##########
be/src/vec/common/format_ip.cpp:
##########
@@ -75,4 +76,123 @@ consteval std::array<std::pair<const char*, size_t>, N>
str_make_array() {
/// This will generate static array of pair<const char *, size_t> for [0..255]
at compile time
extern constexpr std::array<std::pair<const char*, size_t>, 256>
one_byte_to_string_lookup_table =
str_make_array<256>();
+
+/// integer logarithm, return ceil(log(value, base)) (the smallest integer
greater or equal than log(value, base)
+static constexpr UInt32 intLog(const UInt32 value, const UInt32 base, const
bool carry) {
+ return value >= base ? 1 + intLog(value / base, base, value % base ||
carry)
+ : value % base > 1 || carry;
+}
+
+/// Print integer in desired base, faster than sprintf.
+/// NOTE This is not the best way. See
https://github.com/miloyip/itoa-benchmark
+/// But it doesn't matter here.
+template <UInt32 base, typename T>
+static void print_integer(char*& out, T value) {
+ if (value == 0) {
+ *out++ = '0';
+ } else {
+ constexpr size_t buffer_size = sizeof(T) * intLog(256, base, false);
+
+ char buf[buffer_size];
+ auto ptr = buf;
+
+ while (value > 0) {
+ *ptr = hex_digit_lowercase(value % base);
+ ++ptr;
+ value /= base;
+ }
+
+ /// Copy to out reversed.
+ while (ptr != buf) {
+ --ptr;
+ *out = *ptr;
+ ++out;
+ }
+ }
+}
+
+void formatIPv6(const unsigned char* src, char*& dst, uint8_t
zeroed_tail_bytes_count) {
Review Comment:
warning: function 'formatIPv6' exceeds recommended size/complexity
thresholds [readability-function-size]
```cpp
void formatIPv6(const unsigned char* src, char*& dst, uint8_t
zeroed_tail_bytes_count) {
^
```
<details>
<summary>Additional context</summary>
**be/src/vec/common/format_ip.cpp:113:** 82 lines including whitespace and
comments (threshold 80)
```cpp
void formatIPv6(const unsigned char* src, char*& dst, uint8_t
zeroed_tail_bytes_count) {
^
```
</details>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]