From 83ba974a3de1528c7a4749546c1690b66baf4bf3 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 21 Mar 2006 14:35:49 +0100 Subject: BUG#18293 (Values in stored procedures written to binlog unescaped): Generating character set-independent quoting of strings for the binary log when executing statements from inside stored procedure. mysql-test/r/ctype_cp932_binlog.result: Result change mysql-test/t/ctype_cp932_binlog.test: Adding check that string literals are written correctly for multi-byte character sets. sql/item.cc: Cutting out character set-independent string escaping code and putting it in a separate function. sql/log_event.cc: Adding characters set-independent code to separate function. sql/mysql_priv.h: Adding new function. sql/sp_head.cc: Escaping string value representing a string item. --- sql/item.cc | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) (limited to 'sql/item.cc') diff --git a/sql/item.cc b/sql/item.cc index 808271fe256..c48bf19a88b 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -2642,25 +2642,8 @@ const String *Item_param::query_val_str(String* str) const case STRING_VALUE: case LONG_DATA_VALUE: { - char *buf, *ptr; str->length(0); - if (str->reserve(str_value.length()*2+3)) - break; - - buf= str->c_ptr_quick(); - ptr= buf; - if (value.cs_info.character_set_client->escape_with_backslash_is_dangerous) - { - ptr= str_to_hex(ptr, str_value.ptr(), str_value.length()); - } - else - { - *ptr++= '\''; - ptr+= escape_string_for_mysql(str_value.charset(), ptr, 0, - str_value.ptr(), str_value.length()); - *ptr++='\''; - } - str->length((uint32) (ptr - buf)); + append_query_string(value.cs_info.character_set_client, &str_value, str); break; } case NULL_VALUE: -- cgit v1.2.1