summaryrefslogtreecommitdiff
path: root/sql/sql_string.cc
diff options
context:
space:
mode:
authorVarun <varun.gupta@mariadb.com>2019-06-10 15:56:36 +0530
committerVarun <varun.gupta@mariadb.com>2019-06-11 15:44:58 +0530
commita0cb7551a4467fbce74f3ced78549bf92866c11f (patch)
treea06c13af6dd33cf207d636276ca213e106e95299 /sql/sql_string.cc
parent40ff8019d2a00071f533bb3210b4d3a552e95bc8 (diff)
downloadmariadb-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.cc12
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;
+}