Commit 6c996daa authored by bar@mysql.com's avatar bar@mysql.com

Bug#4338: mysql-test-run fails if compiled with non-latin1 character set

parent ce5caec1
...@@ -123,7 +123,7 @@ grant all on mysqltest.t1 to mysqltest_1@localhost; ...@@ -123,7 +123,7 @@ grant all on mysqltest.t1 to mysqltest_1@localhost;
alter table t1 rename t2; alter table t1 rename t2;
ERROR 42000: insert command denied to user 'mysqltest_1'@'localhost' for table 't2' ERROR 42000: insert command denied to user 'mysqltest_1'@'localhost' for table 't2'
revoke all privileges on mysqltest.t1 from mysqltest_1@localhost; revoke all privileges on mysqltest.t1 from mysqltest_1@localhost;
delete from mysql.user where user='mysqltest_1'; delete from mysql.user where user=_binary'mysqltest_1';
drop database mysqltest; drop database mysqltest;
create table t1 (n1 int not null, n2 int, n3 int, n4 float, create table t1 (n1 int not null, n2 int, n3 int, n4 float,
unique(n1), unique(n1),
......
...@@ -38,7 +38,7 @@ time_zone_transition_type ...@@ -38,7 +38,7 @@ time_zone_transition_type
user user
show tables; show tables;
Tables_in_test Tables_in_test
update mysql.user set password=old_password("gambling2") where user="test"; update mysql.user set password=old_password("gambling2") where user=_binary"test";
flush privileges; flush privileges;
set password=old_password('gambling3'); set password=old_password('gambling3');
show tables; show tables;
...@@ -60,5 +60,5 @@ time_zone_transition_type ...@@ -60,5 +60,5 @@ time_zone_transition_type
user user
show tables; show tables;
Tables_in_test Tables_in_test
delete from mysql.user where user="test"; delete from mysql.user where user=_binary"test";
flush privileges; flush privileges;
drop table if exists t1; drop table if exists t1;
SET NAMES binary;
delete from mysql.user where user='mysqltest_1'; delete from mysql.user where user='mysqltest_1';
delete from mysql.db where user='mysqltest_1'; delete from mysql.db where user='mysqltest_1';
flush privileges; flush privileges;
......
SET NAMES binary;
delete from mysql.user where user like 'mysqltest\_%'; delete from mysql.user where user like 'mysqltest\_%';
delete from mysql.db where user like 'mysqltest\_%'; delete from mysql.db where user like 'mysqltest\_%';
flush privileges; flush privileges;
......
...@@ -198,6 +198,7 @@ Qcache_hits 8 ...@@ -198,6 +198,7 @@ Qcache_hits 8
show status like "Qcache_not_cached"; show status like "Qcache_not_cached";
Variable_name Value Variable_name Value
Qcache_not_cached 8 Qcache_not_cached 8
set names binary;
delete from mysql.user where user in ("mysqltest_1","mysqltest_2","mysqltest_3"); delete from mysql.user where user in ("mysqltest_1","mysqltest_2","mysqltest_3");
delete from mysql.db where user in ("mysqltest_1","mysqltest_2","mysqltest_3"); delete from mysql.db where user in ("mysqltest_1","mysqltest_2","mysqltest_3");
delete from mysql.tables_priv where user in ("mysqltest_1","mysqltest_2","mysqltest_3"); delete from mysql.tables_priv where user in ("mysqltest_1","mysqltest_2","mysqltest_3");
......
...@@ -447,7 +447,7 @@ update t1, t2 set t1.b=1 where t1.a=t2.a; ...@@ -447,7 +447,7 @@ update t1, t2 set t1.b=1 where t1.a=t2.a;
update t1, t2 set t1.b=(select t3.b from t3 where t1.a=t3.a) where t1.a=t2.a; update t1, t2 set t1.b=(select t3.b from t3 where t1.a=t3.a) where t1.a=t2.a;
revoke all privileges on mysqltest.t1 from mysqltest_1@localhost; revoke all privileges on mysqltest.t1 from mysqltest_1@localhost;
revoke all privileges on mysqltest.* from mysqltest_1@localhost; revoke all privileges on mysqltest.* from mysqltest_1@localhost;
delete from mysql.user where user='mysqltest_1'; delete from mysql.user where user=_binary'mysqltest_1';
drop database mysqltest; drop database mysqltest;
create table t1 (a int, primary key (a)); create table t1 (a int, primary key (a));
create table t2 (a int, primary key (a)); create table t2 (a int, primary key (a));
......
...@@ -76,17 +76,17 @@ create table t1 (n int); ...@@ -76,17 +76,17 @@ create table t1 (n int);
insert into t1 values(3456); insert into t1 values(3456);
insert into mysql.user (Host, User, Password) insert into mysql.user (Host, User, Password)
VALUES ("10.10.10.%", "blafasel2", password("blafasel2")); VALUES ("10.10.10.%", "blafasel2", password("blafasel2"));
select select_priv,user from mysql.user where user = 'blafasel2'; select select_priv,user from mysql.user where user = _binary'blafasel2';
select_priv user select_priv user
N blafasel2 N blafasel2
update mysql.user set Select_priv = "Y" where User="blafasel2"; update mysql.user set Select_priv = "Y" where User= _binary"blafasel2";
select select_priv,user from mysql.user where user = 'blafasel2'; select select_priv,user from mysql.user where user = _binary'blafasel2';
select_priv user select_priv user
Y blafasel2 Y blafasel2
select n from t1; select n from t1;
n n
3456 3456
select select_priv,user from mysql.user where user = 'blafasel2'; select select_priv,user from mysql.user where user = _binary'blafasel2';
select_priv user select_priv user
Y blafasel2 Y blafasel2
drop table t1; drop table t1;
...@@ -4,11 +4,11 @@ reset master; ...@@ -4,11 +4,11 @@ reset master;
reset slave; reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave; start slave;
delete from mysql.user where user='rpl_do_grant'; delete from mysql.user where user=_binary'rpl_do_grant';
delete from mysql.db where user='rpl_do_grant'; delete from mysql.db where user=_binary'rpl_do_grant';
flush privileges; flush privileges;
delete from mysql.user where user='rpl_ignore_grant'; delete from mysql.user where user=_binary'rpl_ignore_grant';
delete from mysql.db where user='rpl_ignore_grant'; delete from mysql.db where user=_binary'rpl_ignore_grant';
flush privileges; flush privileges;
grant select on *.* to rpl_do_grant@localhost; grant select on *.* to rpl_do_grant@localhost;
grant drop on test.* to rpl_do_grant@localhost; grant drop on test.* to rpl_do_grant@localhost;
...@@ -17,10 +17,10 @@ Grants for rpl_do_grant@localhost ...@@ -17,10 +17,10 @@ Grants for rpl_do_grant@localhost
GRANT SELECT ON *.* TO 'rpl_do_grant'@'localhost' GRANT SELECT ON *.* TO 'rpl_do_grant'@'localhost'
GRANT DROP ON `test`.* TO 'rpl_do_grant'@'localhost' GRANT DROP ON `test`.* TO 'rpl_do_grant'@'localhost'
set password for rpl_do_grant@localhost=password("does it work?"); set password for rpl_do_grant@localhost=password("does it work?");
select password<>'' from mysql.user where user='rpl_do_grant'; select password<>_binary'' from mysql.user where user=_binary'rpl_do_grant';
password<>'' password<>_binary''
1 1
delete from mysql.user where user='rpl_do_grant'; delete from mysql.user where user=_binary'rpl_do_grant';
delete from mysql.db where user='rpl_do_grant'; delete from mysql.db where user=_binary'rpl_do_grant';
flush privileges; flush privileges;
flush privileges; flush privileges;
...@@ -4,11 +4,11 @@ reset master; ...@@ -4,11 +4,11 @@ reset master;
reset slave; reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave; start slave;
delete from mysql.user where user='rpl_ignore_grant'; delete from mysql.user where user=_binary'rpl_ignore_grant';
delete from mysql.db where user='rpl_ignore_grant'; delete from mysql.db where user=_binary'rpl_ignore_grant';
flush privileges; flush privileges;
delete from mysql.user where user='rpl_ignore_grant'; delete from mysql.user where user=_binary'rpl_ignore_grant';
delete from mysql.db where user='rpl_ignore_grant'; delete from mysql.db where user=_binary'rpl_ignore_grant';
flush privileges; flush privileges;
grant select on *.* to rpl_ignore_grant@localhost; grant select on *.* to rpl_ignore_grant@localhost;
grant drop on test.* to rpl_ignore_grant@localhost; grant drop on test.* to rpl_ignore_grant@localhost;
...@@ -18,20 +18,20 @@ GRANT SELECT ON *.* TO 'rpl_ignore_grant'@'localhost' ...@@ -18,20 +18,20 @@ GRANT SELECT ON *.* TO 'rpl_ignore_grant'@'localhost'
GRANT DROP ON `test`.* TO 'rpl_ignore_grant'@'localhost' GRANT DROP ON `test`.* TO 'rpl_ignore_grant'@'localhost'
show grants for rpl_ignore_grant@localhost; show grants for rpl_ignore_grant@localhost;
ERROR 42000: There is no such grant defined for user 'rpl_ignore_grant' on host 'localhost' ERROR 42000: There is no such grant defined for user 'rpl_ignore_grant' on host 'localhost'
select count(*) from mysql.user where user='rpl_ignore_grant'; select count(*) from mysql.user where user=_binary'rpl_ignore_grant';
count(*) count(*)
0 0
select count(*) from mysql.db where user='rpl_ignore_grant'; select count(*) from mysql.db where user=_binary'rpl_ignore_grant';
count(*) count(*)
0 0
grant select on *.* to rpl_ignore_grant@localhost; grant select on *.* to rpl_ignore_grant@localhost;
set password for rpl_ignore_grant@localhost=password("does it work?"); set password for rpl_ignore_grant@localhost=password("does it work?");
select password<>'' from mysql.user where user='rpl_ignore_grant'; select password<>_binary'' from mysql.user where user=_binary'rpl_ignore_grant';
password<>'' password<>_binary''
0 0
delete from mysql.user where user='rpl_ignore_grant'; delete from mysql.user where user=_binary'rpl_ignore_grant';
delete from mysql.db where user='rpl_ignore_grant'; delete from mysql.db where user=_binary'rpl_ignore_grant';
flush privileges; flush privileges;
delete from mysql.user where user='rpl_ignore_grant'; delete from mysql.user where user=_binary'rpl_ignore_grant';
delete from mysql.db where user='rpl_ignore_grant'; delete from mysql.db where user=_binary'rpl_ignore_grant';
flush privileges; flush privileges;
...@@ -395,6 +395,7 @@ show create database test_$1; ...@@ -395,6 +395,7 @@ show create database test_$1;
ERROR 42000: Access denied for user 'mysqltest_3'@'localhost' to database 'test_$1' ERROR 42000: Access denied for user 'mysqltest_3'@'localhost' to database 'test_$1'
drop table test_$1.t1; drop table test_$1.t1;
drop database test_$1; drop database test_$1;
set names binary;
delete from mysql.user delete from mysql.user
where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3'; where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
delete from mysql.db delete from mysql.db
......
...@@ -123,7 +123,7 @@ connection user1; ...@@ -123,7 +123,7 @@ connection user1;
alter table t1 rename t2; alter table t1 rename t2;
connection root; connection root;
revoke all privileges on mysqltest.t1 from mysqltest_1@localhost; revoke all privileges on mysqltest.t1 from mysqltest_1@localhost;
delete from mysql.user where user='mysqltest_1'; delete from mysql.user where user=_binary'mysqltest_1';
drop database mysqltest; drop database mysqltest;
# #
......
...@@ -42,7 +42,7 @@ show tables; ...@@ -42,7 +42,7 @@ show tables;
# check if old password version also works # check if old password version also works
update mysql.user set password=old_password("gambling2") where user="test"; update mysql.user set password=old_password("gambling2") where user=_binary"test";
flush privileges; flush privileges;
#connect (con1,localhost,test,gambling2,""); #connect (con1,localhost,test,gambling2,"");
...@@ -68,5 +68,5 @@ show tables; ...@@ -68,5 +68,5 @@ show tables;
# remove user 'test' so that other tests which may use 'test' # remove user 'test' so that other tests which may use 'test'
# do not depend on this test. # do not depend on this test.
delete from mysql.user where user="test"; delete from mysql.user where user=_binary"test";
flush privileges; flush privileges;
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
drop table if exists t1; drop table if exists t1;
--enable_warnings --enable_warnings
SET NAMES binary;
# #
# Test that SSL options works properly # Test that SSL options works properly
# #
......
SET NAMES binary;
# #
# GRANT tests that require several connections # GRANT tests that require several connections
# (usually it's GRANT, reconnect as another user, try something) # (usually it's GRANT, reconnect as another user, try something)
......
...@@ -126,6 +126,15 @@ show status like "Qcache_not_cached"; ...@@ -126,6 +126,15 @@ show status like "Qcache_not_cached";
# Cleanup # Cleanup
connection root; connection root;
#
# A temporary 4.1 workaround to make this test pass if
# mysql was compiled with other than latin1 --with-charset=XXX.
# Without "set names binary" the below queries fail with
# "Illegal mix of collations" error.
# In 5.0 we will change grant tables to use NCHAR(N) instead
# of "CHAR(N) BINARY", and use cast-to-nchar: N'mysqltest_1'.
#
set names binary;
delete from mysql.user where user in ("mysqltest_1","mysqltest_2","mysqltest_3"); delete from mysql.user where user in ("mysqltest_1","mysqltest_2","mysqltest_3");
delete from mysql.db where user in ("mysqltest_1","mysqltest_2","mysqltest_3"); delete from mysql.db where user in ("mysqltest_1","mysqltest_2","mysqltest_3");
delete from mysql.tables_priv where user in ("mysqltest_1","mysqltest_2","mysqltest_3"); delete from mysql.tables_priv where user in ("mysqltest_1","mysqltest_2","mysqltest_3");
......
...@@ -405,7 +405,7 @@ update t1, t2 set t1.b=(select t3.b from t3 where t1.a=t3.a) where t1.a=t2.a; ...@@ -405,7 +405,7 @@ update t1, t2 set t1.b=(select t3.b from t3 where t1.a=t3.a) where t1.a=t2.a;
connection root; connection root;
revoke all privileges on mysqltest.t1 from mysqltest_1@localhost; revoke all privileges on mysqltest.t1 from mysqltest_1@localhost;
revoke all privileges on mysqltest.* from mysqltest_1@localhost; revoke all privileges on mysqltest.* from mysqltest_1@localhost;
delete from mysql.user where user='mysqltest_1'; delete from mysql.user where user=_binary'mysqltest_1';
drop database mysqltest; drop database mysqltest;
# #
......
...@@ -110,14 +110,14 @@ create table t1 (n int); ...@@ -110,14 +110,14 @@ create table t1 (n int);
insert into t1 values(3456); insert into t1 values(3456);
insert into mysql.user (Host, User, Password) insert into mysql.user (Host, User, Password)
VALUES ("10.10.10.%", "blafasel2", password("blafasel2")); VALUES ("10.10.10.%", "blafasel2", password("blafasel2"));
select select_priv,user from mysql.user where user = 'blafasel2'; select select_priv,user from mysql.user where user = _binary'blafasel2';
update mysql.user set Select_priv = "Y" where User="blafasel2"; update mysql.user set Select_priv = "Y" where User= _binary"blafasel2";
select select_priv,user from mysql.user where user = 'blafasel2'; select select_priv,user from mysql.user where user = _binary'blafasel2';
save_master_pos; save_master_pos;
connection slave; connection slave;
sync_with_master; sync_with_master;
select n from t1; select n from t1;
select select_priv,user from mysql.user where user = 'blafasel2'; select select_priv,user from mysql.user where user = _binary'blafasel2';
connection master1; connection master1;
drop table t1; drop table t1;
save_master_pos; save_master_pos;
......
...@@ -4,16 +4,16 @@ source include/master-slave.inc; ...@@ -4,16 +4,16 @@ source include/master-slave.inc;
# do not be influenced by other tests. # do not be influenced by other tests.
connection master; connection master;
delete from mysql.user where user='rpl_do_grant'; delete from mysql.user where user=_binary'rpl_do_grant';
delete from mysql.db where user='rpl_do_grant'; delete from mysql.db where user=_binary'rpl_do_grant';
flush privileges; flush privileges;
save_master_pos; save_master_pos;
connection slave; connection slave;
sync_with_master; sync_with_master;
# if these DELETE did nothing on the master, we need to do them manually on the # if these DELETE did nothing on the master, we need to do them manually on the
# slave. # slave.
delete from mysql.user where user='rpl_ignore_grant'; delete from mysql.user where user=_binary'rpl_ignore_grant';
delete from mysql.db where user='rpl_ignore_grant'; delete from mysql.db where user=_binary'rpl_ignore_grant';
flush privileges; flush privileges;
# test replication of GRANT # test replication of GRANT
...@@ -31,12 +31,12 @@ set password for rpl_do_grant@localhost=password("does it work?"); ...@@ -31,12 +31,12 @@ set password for rpl_do_grant@localhost=password("does it work?");
save_master_pos; save_master_pos;
connection slave; connection slave;
sync_with_master; sync_with_master;
select password<>'' from mysql.user where user='rpl_do_grant'; select password<>_binary'' from mysql.user where user=_binary'rpl_do_grant';
# clear what we have done, to not influence other tests. # clear what we have done, to not influence other tests.
connection master; connection master;
delete from mysql.user where user='rpl_do_grant'; delete from mysql.user where user=_binary'rpl_do_grant';
delete from mysql.db where user='rpl_do_grant'; delete from mysql.db where user=_binary'rpl_do_grant';
flush privileges; flush privileges;
save_master_pos; save_master_pos;
connection slave; connection slave;
......
...@@ -6,16 +6,16 @@ source include/master-slave.inc; ...@@ -6,16 +6,16 @@ source include/master-slave.inc;
# do not be influenced by other tests. # do not be influenced by other tests.
connection master; connection master;
delete from mysql.user where user='rpl_ignore_grant'; delete from mysql.user where user=_binary'rpl_ignore_grant';
delete from mysql.db where user='rpl_ignore_grant'; delete from mysql.db where user=_binary'rpl_ignore_grant';
flush privileges; flush privileges;
save_master_pos; save_master_pos;
connection slave; connection slave;
sync_with_master; sync_with_master;
# as these DELETE were not replicated, we need to do them manually on the # as these DELETE were not replicated, we need to do them manually on the
# slave. # slave.
delete from mysql.user where user='rpl_ignore_grant'; delete from mysql.user where user=_binary'rpl_ignore_grant';
delete from mysql.db where user='rpl_ignore_grant'; delete from mysql.db where user=_binary'rpl_ignore_grant';
flush privileges; flush privileges;
# test non-replication of GRANT # test non-replication of GRANT
...@@ -29,8 +29,8 @@ sync_with_master; ...@@ -29,8 +29,8 @@ sync_with_master;
--error 1141 #("no such grant for user") --error 1141 #("no such grant for user")
show grants for rpl_ignore_grant@localhost; show grants for rpl_ignore_grant@localhost;
# check it another way # check it another way
select count(*) from mysql.user where user='rpl_ignore_grant'; select count(*) from mysql.user where user=_binary'rpl_ignore_grant';
select count(*) from mysql.db where user='rpl_ignore_grant'; select count(*) from mysql.db where user=_binary'rpl_ignore_grant';
# test non-replication of SET PASSWORD # test non-replication of SET PASSWORD
# first force creation of the user on slave (because as the user does not exist # first force creation of the user on slave (because as the user does not exist
...@@ -42,16 +42,16 @@ set password for rpl_ignore_grant@localhost=password("does it work?"); ...@@ -42,16 +42,16 @@ set password for rpl_ignore_grant@localhost=password("does it work?");
save_master_pos; save_master_pos;
connection slave; connection slave;
sync_with_master; sync_with_master;
select password<>'' from mysql.user where user='rpl_ignore_grant'; select password<>_binary'' from mysql.user where user=_binary'rpl_ignore_grant';
# clear what we have done, to not influence other tests. # clear what we have done, to not influence other tests.
connection master; connection master;
delete from mysql.user where user='rpl_ignore_grant'; delete from mysql.user where user=_binary'rpl_ignore_grant';
delete from mysql.db where user='rpl_ignore_grant'; delete from mysql.db where user=_binary'rpl_ignore_grant';
flush privileges; flush privileges;
save_master_pos; save_master_pos;
connection slave; connection slave;
sync_with_master; sync_with_master;
delete from mysql.user where user='rpl_ignore_grant'; delete from mysql.user where user=_binary'rpl_ignore_grant';
delete from mysql.db where user='rpl_ignore_grant'; delete from mysql.db where user=_binary'rpl_ignore_grant';
flush privileges; flush privileges;
...@@ -299,6 +299,7 @@ drop table test_$1.t1; ...@@ -299,6 +299,7 @@ drop table test_$1.t1;
drop database test_$1; drop database test_$1;
connection default; connection default;
set names binary;
delete from mysql.user delete from mysql.user
where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3'; where user='mysqltest_1' || user='mysqltest_2' || user='mysqltest_3';
delete from mysql.db delete from mysql.db
......
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