diff options
author | Varun <varun.gupta@mariadb.com> | 2019-06-10 15:56:36 +0530 |
---|---|---|
committer | Varun <varun.gupta@mariadb.com> | 2019-06-11 15:44:58 +0530 |
commit | a0cb7551a4467fbce74f3ced78549bf92866c11f (patch) | |
tree | a06c13af6dd33cf207d636276ca213e106e95299 /sql/sql_string.cc | |
parent | 40ff8019d2a00071f533bb3210b4d3a552e95bc8 (diff) | |
download | mariadb-git-a0cb7551a4467fbce74f3ced78549bf92866c11f.tar.gz |
MDEV-18880: Optimizer trace prints date in hexadecimal
Introduced a print_key_value function to makes sure that the trace prints data in readable format
for readable characters and the rest of the characters are printed as hexadecimal.
Diffstat (limited to 'sql/sql_string.cc')
-rw-r--r-- | sql/sql_string.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sql/sql_string.cc b/sql/sql_string.cc index 410f52a8c74..1b567ecb325 100644 --- a/sql/sql_string.cc +++ b/sql/sql_string.cc @@ -1196,3 +1196,15 @@ uint convert_to_printable(char *to, size_t to_len, *t= '\0'; return (uint) (t - to); } + + +bool String::append_semi_hex(const char *s, uint len, CHARSET_INFO *cs) +{ + size_t dst_len= len * 4 + 1; //extra length for the '\0' character + if (reserve(dst_len)) + return true; + uint nbytes= convert_to_printable(Ptr + str_length, dst_len, s, len, cs); + DBUG_ASSERT((ulonglong) str_length + nbytes < UINT_MAX32); + str_length+= nbytes; + return false; +} |