mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-8253 EXPLAIN SELECT prints unexpected characters
Item_string::clone_item() creates a new Item_string that points exactly to the same buffer that the original one does. Later, Item_string::print() uses c_ptr() for the original Item_string, which reallocs the original buffer, and the clone remain with the old freed buffer. Refactoring the code not to use c_ptr() in Item_string::print().
This commit is contained in:
@@ -568,7 +568,15 @@ public:
|
||||
str_length+= arg_length;
|
||||
return FALSE;
|
||||
}
|
||||
void print(String *print) const;
|
||||
void print(String *to) const;
|
||||
void print_with_conversion(String *to, CHARSET_INFO *cs) const;
|
||||
void print(String *to, CHARSET_INFO *cs) const
|
||||
{
|
||||
if (my_charset_same(charset(), cs))
|
||||
print(to);
|
||||
else
|
||||
print_with_conversion(to, cs);
|
||||
}
|
||||
|
||||
bool append_for_single_quote(const char *st, uint len);
|
||||
bool append_for_single_quote(const String *s)
|
||||
|
Reference in New Issue
Block a user