mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 13:02:28 +01:00
Merge mysql.com:/usr/home/bar/mysql-5.0.b23619
into mysql.com:/usr/home/bar/mysql-5.1.b23619
This commit is contained in:
commit
8c369a4700
4 changed files with 58 additions and 6 deletions
26
mysql-test/r/rpl_charset_sjis.result
Normal file
26
mysql-test/r/rpl_charset_sjis.result
Normal file
|
@ -0,0 +1,26 @@
|
|||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
drop table if exists t1;
|
||||
drop procedure if exists p1;
|
||||
create table t1 (a varchar(255) character set sjis);
|
||||
create procedure p1 (in a varchar(255) character set sjis) insert into t1 values (a);
|
||||
SET NAMES binary;
|
||||
CALL p1 ('–\\');
|
||||
select "--- on master ---";
|
||||
--- on master ---
|
||||
--- on master ---
|
||||
select hex(a) from t1 ;
|
||||
hex(a)
|
||||
965C
|
||||
select "--- on slave ---";
|
||||
--- on slave ---
|
||||
--- on slave ---
|
||||
select hex(a) from t1;
|
||||
hex(a)
|
||||
965C
|
||||
drop table t1;
|
||||
drop procedure p1;
|
25
mysql-test/t/rpl_charset_sjis.test
Normal file
25
mysql-test/t/rpl_charset_sjis.test
Normal file
|
@ -0,0 +1,25 @@
|
|||
source include/have_sjis.inc;
|
||||
source include/master-slave.inc;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
drop procedure if exists p1;
|
||||
--enable_warnings
|
||||
create table t1 (a varchar(255) character set sjis);
|
||||
create procedure p1 (in a varchar(255) character set sjis) insert into t1 values (a);
|
||||
|
||||
SET NAMES binary;
|
||||
CALL p1 ('–\\');
|
||||
select "--- on master ---";
|
||||
select hex(a) from t1 ;
|
||||
sync_slave_with_master;
|
||||
connection slave;
|
||||
select "--- on slave ---";
|
||||
select hex(a) from t1;
|
||||
connection master;
|
||||
drop table t1;
|
||||
drop procedure p1;
|
||||
sync_slave_with_master;
|
||||
connection master;
|
||||
|
||||
# End of 5.0 tests
|
|
@ -358,7 +358,7 @@ append_query_string(CHARSET_INFO *csinfo,
|
|||
else
|
||||
{
|
||||
*ptr++= '\'';
|
||||
ptr+= escape_string_for_mysql(from->charset(), ptr, 0,
|
||||
ptr+= escape_string_for_mysql(csinfo, ptr, 0,
|
||||
from->ptr(), from->length());
|
||||
*ptr++='\'';
|
||||
}
|
||||
|
|
|
@ -93,7 +93,7 @@ sp_map_item_type(enum enum_field_types type)
|
|||
*/
|
||||
|
||||
static String *
|
||||
sp_get_item_value(Item *item, String *str)
|
||||
sp_get_item_value(THD *thd, Item *item, String *str)
|
||||
{
|
||||
Item_result result_type= item->result_type();
|
||||
|
||||
|
@ -113,15 +113,16 @@ sp_get_item_value(Item *item, String *str)
|
|||
{
|
||||
char buf_holder[STRING_BUFFER_USUAL_SIZE];
|
||||
String buf(buf_holder, sizeof(buf_holder), result->charset());
|
||||
CHARSET_INFO *cs= thd->variables.character_set_client;
|
||||
|
||||
/* We must reset length of the buffer, because of String specificity. */
|
||||
buf.length(0);
|
||||
|
||||
buf.append('_');
|
||||
buf.append(result->charset()->csname);
|
||||
if (result->charset()->escape_with_backslash_is_dangerous)
|
||||
if (cs->escape_with_backslash_is_dangerous)
|
||||
buf.append(' ');
|
||||
append_query_string(result->charset(), result, &buf);
|
||||
append_query_string(cs, result, &buf);
|
||||
str->copy(buf);
|
||||
|
||||
return str;
|
||||
|
@ -900,7 +901,7 @@ subst_spvars(THD *thd, sp_instr *instr, LEX_STRING *query_str)
|
|||
|
||||
val= (*splocal)->this_item();
|
||||
DBUG_PRINT("info", ("print %p", val));
|
||||
str_value= sp_get_item_value(val, &str_value_holder);
|
||||
str_value= sp_get_item_value(thd, val, &str_value_holder);
|
||||
if (str_value)
|
||||
res|= qbuf.append(*str_value);
|
||||
else
|
||||
|
@ -1477,7 +1478,7 @@ sp_head::execute_function(THD *thd, Item **argp, uint argcount,
|
|||
if (arg_no)
|
||||
binlog_buf.append(',');
|
||||
|
||||
str_value= sp_get_item_value(nctx->get_item(arg_no),
|
||||
str_value= sp_get_item_value(thd, nctx->get_item(arg_no),
|
||||
&str_value_holder);
|
||||
|
||||
if (str_value)
|
||||
|
|
Loading…
Reference in a new issue