mariadb/mysql-test/t/rpl_name_const.test
Leonard Zhou 944915cabe BUG#35515 Aliases of variables in binary log are ignored with NAME_CONST.
When add an aliase name after NAME_CONST, the aliase name will be overwrite.
      
NAME_CONST will re-set the field's name only if there isn't an aliase in the
function fix-fields().
If there is an aliase, NAME_CONST doesn't re-set the field's name and keeps the old
name.

mysql-test/r/func_misc.result:
  Test result.
mysql-test/r/rpl_name_const.result:
  Test case.
mysql-test/t/func_misc.test:
  Add NAME_CONST test.
mysql-test/t/rpl_name_const.test:
  Test result.
sql/item.cc:
  Re-set field's name if the name is autogenerated, that mean without aliase.
2009-03-26 15:38:17 +08:00

47 lines
984 B
Text

# ==== 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;