Add test case for altering a column's charset
This catches a bug in `sql.BuildDMLInsertQuery` where we are using the target column's Charset to drive the value conversion. In the case where we are altering the charset, the Charset used for conversion will be different than the original column's charset, resulting in an erroneous conversion.
This commit is contained in:
parent
eac6a726de
commit
671fc71067
23
localtests/alter-charset/create.sql
Normal file
23
localtests/alter-charset/create.sql
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
drop table if exists gh_ost_test;
|
||||||
|
create table gh_ost_test (
|
||||||
|
id int auto_increment,
|
||||||
|
t varchar(128) charset latin1 collate latin1_swedish_ci,
|
||||||
|
tutf8 varchar(128) charset utf8,
|
||||||
|
tutf8mb4 varchar(128) charset utf8mb4,
|
||||||
|
primary key(id)
|
||||||
|
) auto_increment=1;
|
||||||
|
|
||||||
|
drop event if exists gh_ost_test;
|
||||||
|
delimiter ;;
|
||||||
|
create event gh_ost_test
|
||||||
|
on schedule every 1 second
|
||||||
|
starts current_timestamp
|
||||||
|
ends current_timestamp + interval 60 second
|
||||||
|
on completion not preserve
|
||||||
|
enable
|
||||||
|
do
|
||||||
|
begin
|
||||||
|
insert into gh_ost_test values (null, md5(rand()), md5(rand()), md5(rand()));
|
||||||
|
insert into gh_ost_test values (null, 'átesting', 'átesting', 'átesting');
|
||||||
|
insert into gh_ost_test values (null, 'testátest', 'testátest', '🍻😀');
|
||||||
|
end ;;
|
1
localtests/alter-charset/extra_args
Normal file
1
localtests/alter-charset/extra_args
Normal file
@ -0,0 +1 @@
|
|||||||
|
--alter='MODIFY `t` varchar(128) CHARACTER SET utf8mb4 NOT NULL'
|
Loading…
Reference in New Issue
Block a user