Commit 638c0f07 authored by Leonard Zhou's avatar Leonard Zhou

Merge 5.0 to 5.1

parents 7c261213 944915ca
...@@ -329,6 +329,9 @@ SELECT * FROM t1 WHERE a = NAME_CONST('reportDate', ...@@ -329,6 +329,9 @@ SELECT * FROM t1 WHERE a = NAME_CONST('reportDate',
_binary'2009-01-09' COLLATE 'binary'); _binary'2009-01-09' COLLATE 'binary');
a a
DROP TABLE t1; DROP TABLE t1;
select NAME_CONST('_id',1234) as id;
id
1234
End of 5.0 tests End of 5.0 tests
select connection_id() > 0; select connection_id() > 0;
connection_id() > 0 connection_id() > 0
......
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;
==== Initialize ====
[on master]
create table t1 (id int);
==== create a procedure that has a column aliase in a subquery ====
drop procedure if exists test_procedure;
create procedure test_procedure(_id int)
begin
insert into t1 (id)
select a.id
from
( select _id as id ) a;
end;$$
==== enable the binary log, then call the procedure ====
call test_procedure(1234);
[on slave]
select * from t1 order by id;
id
1234
==== Clean up ====
[on master]
drop table t1;
drop procedure test_procedure;
...@@ -454,6 +454,11 @@ SELECT * FROM t1 WHERE a = NAME_CONST('reportDate', ...@@ -454,6 +454,11 @@ SELECT * FROM t1 WHERE a = NAME_CONST('reportDate',
_binary'2009-01-09' COLLATE 'binary'); _binary'2009-01-09' COLLATE 'binary');
DROP TABLE t1; DROP TABLE t1;
#
# Bug#35515: Aliases of variables in binary log are ignored with NAME_CONST
#
select NAME_CONST('_id',1234) as id;
--echo End of 5.0 tests --echo End of 5.0 tests
# #
......
# ==== Purpose ====
#
# Test that aliases of variables in binary log aren't ignored with NAME_CONST.
#
# ==== Method ====
#
# Create a procedure with aliases of variables, then replicate it to slave.
# BUG#35515 Aliases of variables in binary log are ignored with NAME_CONST.
#
source include/master-slave.inc;
--echo ==== Initialize ====
--echo [on master]
--connection master
create table t1 (id int);
--echo ==== create a procedure that has a column aliase in a subquery ====
--disable_warnings
drop procedure if exists test_procedure;
--enable_warnings
delimiter $$;
create procedure test_procedure(_id int)
begin
insert into t1 (id)
select a.id
from
( select _id as id ) a;
end;$$
delimiter ;$$
--echo ==== enable the binary log, then call the procedure ====
call test_procedure(1234);
--echo [on slave]
sync_slave_with_master;
select * from t1 order by id;
--echo ==== Clean up ====
--echo [on master]
connection master;
drop table t1;
drop procedure test_procedure;
...@@ -1313,7 +1313,10 @@ bool Item_name_const::fix_fields(THD *thd, Item **ref) ...@@ -1313,7 +1313,10 @@ bool Item_name_const::fix_fields(THD *thd, Item **ref)
my_error(ER_RESERVED_SYNTAX, MYF(0), "NAME_CONST"); my_error(ER_RESERVED_SYNTAX, MYF(0), "NAME_CONST");
return TRUE; return TRUE;
} }
set_name(item_name->ptr(), (uint) item_name->length(), system_charset_info); if (is_autogenerated_name)
{
set_name(item_name->ptr(), (uint) item_name->length(), system_charset_info);
}
collation.set(value_item->collation.collation, DERIVATION_IMPLICIT); collation.set(value_item->collation.collation, DERIVATION_IMPLICIT);
max_length= value_item->max_length; max_length= value_item->max_length;
decimals= value_item->decimals; decimals= value_item->decimals;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment