mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Eliminate most of the remaining hardcoded list of tests to skip
by adding check for embedded server within tests and splitting some tests into multiple test files. mysql-test/mysql-test-run.sh: Remove most of hardcoded list of tests to skip mysql-test/r/ps_1general.result: Update results mysql-test/r/timezone2.result: Update results mysql-test/r/user_var.result: Update results mysql-test/r/variables.result: Update results mysql-test/t/mix_innodb_myisam_binlog.test: Disable test with embedded server mysql-test/t/mysql_protocols.test: Disable test with embedded server mysql-test/t/mysqlbinlog.test: Disable test with embedded server mysql-test/t/mysqlbinlog2.test: Disable test with embedded server mysql-test/t/mysqldump.test: Disable test with embedded server mysql-test/t/packet.test: Disable test with embedded server mysql-test/t/ps_1general.test: Move parts of test to new ps_grant mysql-test/t/rename.test: Disable test with embedded server mysql-test/t/show_check.test: Disable test with embedded server mysql-test/t/system_mysql_db_fix.test: Disable test with embedded server mysql-test/t/timezone2.test: Move part of test to timezone_grant mysql-test/t/user_var.test: Move part of test to new user_var-binlog mysql-test/t/variables.test: Move part of test to rpl_variables
This commit is contained in:
@ -1506,21 +1506,8 @@ run_testcase ()
|
|||||||
# script soon anyway so it is not worth it spending the time
|
# script soon anyway so it is not worth it spending the time
|
||||||
if [ "x$USE_EMBEDDED_SERVER" = "x1" -a -z "$DO_TEST" ] ; then
|
if [ "x$USE_EMBEDDED_SERVER" = "x1" -a -z "$DO_TEST" ] ; then
|
||||||
for t in \
|
for t in \
|
||||||
"init_connect" \
|
"init_connect" \
|
||||||
"init_file" \
|
"init_file"
|
||||||
"mix_innodb_myisam_binlog" \
|
|
||||||
"mysqlbinlog2" \
|
|
||||||
"mysqlbinlog" \
|
|
||||||
"mysqldump" \
|
|
||||||
"mysql_protocols" \
|
|
||||||
"packet" \
|
|
||||||
"ps_1general" \
|
|
||||||
"rename" \
|
|
||||||
"show_check" \
|
|
||||||
"system_mysql_db_fix" \
|
|
||||||
"timezone2" \
|
|
||||||
"user_var" \
|
|
||||||
"variables"
|
|
||||||
do
|
do
|
||||||
if [ "$tname" = "$t" ] ; then
|
if [ "$tname" = "$t" ] ; then
|
||||||
skip_test $tname
|
skip_test $tname
|
||||||
|
@ -288,10 +288,6 @@ Variable_name Value
|
|||||||
sql_mode
|
sql_mode
|
||||||
prepare stmt4 from ' show engine bdb logs ';
|
prepare stmt4 from ' show engine bdb logs ';
|
||||||
execute stmt4;
|
execute stmt4;
|
||||||
prepare stmt4 from ' show full processlist ';
|
|
||||||
execute stmt4;
|
|
||||||
Id User Host db Command Time State Info
|
|
||||||
number root localhost test Query time NULL show full processlist
|
|
||||||
prepare stmt4 from ' show grants for user ';
|
prepare stmt4 from ' show grants for user ';
|
||||||
prepare stmt4 from ' show create table t2 ';
|
prepare stmt4 from ' show create table t2 ';
|
||||||
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||||
@ -806,81 +802,3 @@ execute stmt1 ;
|
|||||||
prepare stmt1 from ' select * from t5 ' ;
|
prepare stmt1 from ' select * from t5 ' ;
|
||||||
execute stmt1 ;
|
execute stmt1 ;
|
||||||
drop table t5 ;
|
drop table t5 ;
|
||||||
test_sequence
|
|
||||||
------ grant/revoke/drop affects a parallel session test ------
|
|
||||||
show grants for second_user@localhost ;
|
|
||||||
ERROR 42000: There is no such grant defined for user 'second_user' on host 'localhost'
|
|
||||||
create database mysqltest;
|
|
||||||
use mysqltest;
|
|
||||||
use test;
|
|
||||||
grant usage on mysqltest.* to second_user@localhost
|
|
||||||
identified by 'looser' ;
|
|
||||||
grant select on mysqltest.t9 to second_user@localhost
|
|
||||||
identified by 'looser' ;
|
|
||||||
show grants for second_user@localhost ;
|
|
||||||
Grants for second_user@localhost
|
|
||||||
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
|
||||||
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
|
||||||
select current_user();
|
|
||||||
current_user()
|
|
||||||
second_user@localhost
|
|
||||||
show grants for current_user();
|
|
||||||
Grants for second_user@localhost
|
|
||||||
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
|
||||||
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
|
||||||
prepare s_t9 from 'select c1 as my_col
|
|
||||||
from t9 where c1= 1' ;
|
|
||||||
execute s_t9 ;
|
|
||||||
my_col
|
|
||||||
1
|
|
||||||
select a as my_col from t1;
|
|
||||||
ERROR 42000: SELECT command denied to user 'second_user'@'localhost' for table 't1'
|
|
||||||
grant select on mysqltest.t1 to second_user@localhost
|
|
||||||
identified by 'looser' ;
|
|
||||||
show grants for second_user@localhost ;
|
|
||||||
Grants for second_user@localhost
|
|
||||||
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
|
||||||
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
|
||||||
GRANT SELECT ON `mysqltest`.`t1` TO 'second_user'@'localhost'
|
|
||||||
drop table mysqltest.t9 ;
|
|
||||||
show grants for second_user@localhost ;
|
|
||||||
Grants for second_user@localhost
|
|
||||||
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
|
||||||
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
|
||||||
GRANT SELECT ON `mysqltest`.`t1` TO 'second_user'@'localhost'
|
|
||||||
show grants for second_user@localhost ;
|
|
||||||
Grants for second_user@localhost
|
|
||||||
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
|
||||||
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
|
||||||
GRANT SELECT ON `mysqltest`.`t1` TO 'second_user'@'localhost'
|
|
||||||
prepare s_t1 from 'select a as my_col from t1' ;
|
|
||||||
execute s_t1 ;
|
|
||||||
my_col
|
|
||||||
1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
execute s_t9 ;
|
|
||||||
ERROR 42S02: Table 'mysqltest.t9' doesn't exist
|
|
||||||
revoke all privileges on mysqltest.t1 from second_user@localhost
|
|
||||||
identified by 'looser' ;
|
|
||||||
show grants for second_user@localhost ;
|
|
||||||
Grants for second_user@localhost
|
|
||||||
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
|
||||||
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
|
||||||
show grants for second_user@localhost ;
|
|
||||||
Grants for second_user@localhost
|
|
||||||
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
|
||||||
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
|
||||||
execute s_t1 ;
|
|
||||||
ERROR 42000: SELECT command denied to user 'second_user'@'localhost' for table 't1'
|
|
||||||
revoke all privileges, grant option from second_user@localhost ;
|
|
||||||
show grants for second_user@localhost ;
|
|
||||||
Grants for second_user@localhost
|
|
||||||
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
|
||||||
drop user second_user@localhost ;
|
|
||||||
commit ;
|
|
||||||
show grants for second_user@localhost ;
|
|
||||||
ERROR 42000: There is no such grant defined for user 'second_user' on host 'localhost'
|
|
||||||
drop table t1,t9 ;
|
|
||||||
drop database mysqltest;
|
|
||||||
|
82
mysql-test/r/ps_grant.result
Normal file
82
mysql-test/r/ps_grant.result
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
prepare stmt4 from ' show full processlist ';
|
||||||
|
execute stmt4;
|
||||||
|
Id User Host db Command Time State Info
|
||||||
|
number root localhost test Query time NULL show full processlist
|
||||||
|
test_sequence
|
||||||
|
------ grant/revoke/drop affects a parallel session test ------
|
||||||
|
show grants for second_user@localhost ;
|
||||||
|
ERROR 42000: There is no such grant defined for user 'second_user' on host 'localhost'
|
||||||
|
create database mysqltest;
|
||||||
|
use mysqltest;
|
||||||
|
use test;
|
||||||
|
grant usage on mysqltest.* to second_user@localhost
|
||||||
|
identified by 'looser' ;
|
||||||
|
grant select on mysqltest.t9 to second_user@localhost
|
||||||
|
identified by 'looser' ;
|
||||||
|
show grants for second_user@localhost ;
|
||||||
|
Grants for second_user@localhost
|
||||||
|
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
||||||
|
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
||||||
|
select current_user();
|
||||||
|
current_user()
|
||||||
|
second_user@localhost
|
||||||
|
show grants for current_user();
|
||||||
|
Grants for second_user@localhost
|
||||||
|
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
||||||
|
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
||||||
|
prepare s_t9 from 'select c1 as my_col
|
||||||
|
from t9 where c1= 1' ;
|
||||||
|
execute s_t9 ;
|
||||||
|
my_col
|
||||||
|
1
|
||||||
|
select a as my_col from t1;
|
||||||
|
ERROR 42000: SELECT command denied to user 'second_user'@'localhost' for table 't1'
|
||||||
|
grant select on mysqltest.t1 to second_user@localhost
|
||||||
|
identified by 'looser' ;
|
||||||
|
show grants for second_user@localhost ;
|
||||||
|
Grants for second_user@localhost
|
||||||
|
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
||||||
|
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
||||||
|
GRANT SELECT ON `mysqltest`.`t1` TO 'second_user'@'localhost'
|
||||||
|
drop table mysqltest.t9 ;
|
||||||
|
show grants for second_user@localhost ;
|
||||||
|
Grants for second_user@localhost
|
||||||
|
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
||||||
|
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
||||||
|
GRANT SELECT ON `mysqltest`.`t1` TO 'second_user'@'localhost'
|
||||||
|
show grants for second_user@localhost ;
|
||||||
|
Grants for second_user@localhost
|
||||||
|
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
||||||
|
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
||||||
|
GRANT SELECT ON `mysqltest`.`t1` TO 'second_user'@'localhost'
|
||||||
|
prepare s_t1 from 'select a as my_col from t1' ;
|
||||||
|
execute s_t1 ;
|
||||||
|
my_col
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
4
|
||||||
|
execute s_t9 ;
|
||||||
|
ERROR 42S02: Table 'mysqltest.t9' doesn't exist
|
||||||
|
revoke all privileges on mysqltest.t1 from second_user@localhost
|
||||||
|
identified by 'looser' ;
|
||||||
|
show grants for second_user@localhost ;
|
||||||
|
Grants for second_user@localhost
|
||||||
|
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
||||||
|
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
||||||
|
show grants for second_user@localhost ;
|
||||||
|
Grants for second_user@localhost
|
||||||
|
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
||||||
|
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
||||||
|
execute s_t1 ;
|
||||||
|
ERROR 42000: SELECT command denied to user 'second_user'@'localhost' for table 't1'
|
||||||
|
revoke all privileges, grant option from second_user@localhost ;
|
||||||
|
show grants for second_user@localhost ;
|
||||||
|
Grants for second_user@localhost
|
||||||
|
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
||||||
|
drop user second_user@localhost ;
|
||||||
|
commit ;
|
||||||
|
show grants for second_user@localhost ;
|
||||||
|
ERROR 42000: There is no such grant defined for user 'second_user' on host 'localhost'
|
||||||
|
drop table t1,t9 ;
|
||||||
|
drop database mysqltest;
|
8
mysql-test/r/rpl_variables.result
Normal file
8
mysql-test/r/rpl_variables.result
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
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;
|
||||||
|
set global slave_net_timeout=100;
|
||||||
|
set global sql_slave_skip_counter=100;
|
@ -251,58 +251,6 @@ select convert_tz(ts, @@time_zone, 'Japan') from t1;
|
|||||||
convert_tz(ts, @@time_zone, 'Japan')
|
convert_tz(ts, @@time_zone, 'Japan')
|
||||||
2001-09-09 10:46:40
|
2001-09-09 10:46:40
|
||||||
drop table t1;
|
drop table t1;
|
||||||
delete from mysql.user where user like 'mysqltest\_%';
|
|
||||||
delete from mysql.db where user like 'mysqltest\_%';
|
|
||||||
delete from mysql.tables_priv where user like 'mysqltest\_%';
|
|
||||||
delete from mysql.columns_priv where user like 'mysqltest\_%';
|
|
||||||
flush privileges;
|
|
||||||
create table t1 (a int, b datetime);
|
|
||||||
create table t2 (c int, d datetime);
|
|
||||||
grant all privileges on test.* to mysqltest_1@localhost;
|
|
||||||
show grants for current_user();
|
|
||||||
Grants for mysqltest_1@localhost
|
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
|
|
||||||
GRANT ALL PRIVILEGES ON `test`.* TO 'mysqltest_1'@'localhost'
|
|
||||||
set time_zone= '+00:00';
|
|
||||||
set time_zone= 'Europe/Moscow';
|
|
||||||
select convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC');
|
|
||||||
convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC')
|
|
||||||
2004-10-21 15:00:00
|
|
||||||
select convert_tz(b, 'Europe/Moscow', 'UTC') from t1;
|
|
||||||
convert_tz(b, 'Europe/Moscow', 'UTC')
|
|
||||||
update t1, t2 set t1.b = convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC')
|
|
||||||
where t1.a = t2.c and t2.d = (select max(d) from t2);
|
|
||||||
select * from mysql.time_zone_name;
|
|
||||||
ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysql'
|
|
||||||
select Name, convert_tz('2004-10-21 19:00:00', Name, 'UTC') from mysql.time_zone_name;
|
|
||||||
ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysql'
|
|
||||||
delete from mysql.db where user like 'mysqltest\_%';
|
|
||||||
flush privileges;
|
|
||||||
grant all privileges on test.t1 to mysqltest_1@localhost;
|
|
||||||
grant all privileges on test.t2 to mysqltest_1@localhost;
|
|
||||||
show grants for current_user();
|
|
||||||
Grants for mysqltest_1@localhost
|
|
||||||
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
|
|
||||||
GRANT ALL PRIVILEGES ON `test`.`t2` TO 'mysqltest_1'@'localhost'
|
|
||||||
GRANT ALL PRIVILEGES ON `test`.`t1` TO 'mysqltest_1'@'localhost'
|
|
||||||
set time_zone= '+00:00';
|
|
||||||
set time_zone= 'Europe/Moscow';
|
|
||||||
select convert_tz('2004-11-31 12:00:00', 'Europe/Moscow', 'UTC');
|
|
||||||
convert_tz('2004-11-31 12:00:00', 'Europe/Moscow', 'UTC')
|
|
||||||
2004-12-01 09:00:00
|
|
||||||
select convert_tz(b, 'Europe/Moscow', 'UTC') from t1;
|
|
||||||
convert_tz(b, 'Europe/Moscow', 'UTC')
|
|
||||||
update t1, t2 set t1.b = convert_tz('2004-11-30 12:00:00', 'Europe/Moscow', 'UTC')
|
|
||||||
where t1.a = t2.c and t2.d = (select max(d) from t2);
|
|
||||||
select * from mysql.time_zone_name;
|
|
||||||
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name'
|
|
||||||
select Name, convert_tz('2004-11-30 12:00:00', Name, 'UTC') from mysql.time_zone_name;
|
|
||||||
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name'
|
|
||||||
delete from mysql.user where user like 'mysqltest\_%';
|
|
||||||
delete from mysql.db where user like 'mysqltest\_%';
|
|
||||||
delete from mysql.tables_priv where user like 'mysqltest\_%';
|
|
||||||
flush privileges;
|
|
||||||
drop table t1, t2;
|
|
||||||
select convert_tz('2005-01-14 17:00:00', 'UTC', custTimeZone) from (select 'UTC' as custTimeZone) as tmp;
|
select convert_tz('2005-01-14 17:00:00', 'UTC', custTimeZone) from (select 'UTC' as custTimeZone) as tmp;
|
||||||
convert_tz('2005-01-14 17:00:00', 'UTC', custTimeZone)
|
convert_tz('2005-01-14 17:00:00', 'UTC', custTimeZone)
|
||||||
2005-01-14 17:00:00
|
2005-01-14 17:00:00
|
||||||
|
52
mysql-test/r/timezone_grant.result
Normal file
52
mysql-test/r/timezone_grant.result
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
delete from mysql.user where user like 'mysqltest\_%';
|
||||||
|
delete from mysql.db where user like 'mysqltest\_%';
|
||||||
|
delete from mysql.tables_priv where user like 'mysqltest\_%';
|
||||||
|
delete from mysql.columns_priv where user like 'mysqltest\_%';
|
||||||
|
flush privileges;
|
||||||
|
create table t1 (a int, b datetime);
|
||||||
|
create table t2 (c int, d datetime);
|
||||||
|
grant all privileges on test.* to mysqltest_1@localhost;
|
||||||
|
show grants for current_user();
|
||||||
|
Grants for mysqltest_1@localhost
|
||||||
|
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
|
||||||
|
GRANT ALL PRIVILEGES ON `test`.* TO 'mysqltest_1'@'localhost'
|
||||||
|
set time_zone= '+00:00';
|
||||||
|
set time_zone= 'Europe/Moscow';
|
||||||
|
select convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC');
|
||||||
|
convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC')
|
||||||
|
2004-10-21 15:00:00
|
||||||
|
select convert_tz(b, 'Europe/Moscow', 'UTC') from t1;
|
||||||
|
convert_tz(b, 'Europe/Moscow', 'UTC')
|
||||||
|
update t1, t2 set t1.b = convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC')
|
||||||
|
where t1.a = t2.c and t2.d = (select max(d) from t2);
|
||||||
|
select * from mysql.time_zone_name;
|
||||||
|
ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysql'
|
||||||
|
select Name, convert_tz('2004-10-21 19:00:00', Name, 'UTC') from mysql.time_zone_name;
|
||||||
|
ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysql'
|
||||||
|
delete from mysql.db where user like 'mysqltest\_%';
|
||||||
|
flush privileges;
|
||||||
|
grant all privileges on test.t1 to mysqltest_1@localhost;
|
||||||
|
grant all privileges on test.t2 to mysqltest_1@localhost;
|
||||||
|
show grants for current_user();
|
||||||
|
Grants for mysqltest_1@localhost
|
||||||
|
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
|
||||||
|
GRANT ALL PRIVILEGES ON `test`.`t2` TO 'mysqltest_1'@'localhost'
|
||||||
|
GRANT ALL PRIVILEGES ON `test`.`t1` TO 'mysqltest_1'@'localhost'
|
||||||
|
set time_zone= '+00:00';
|
||||||
|
set time_zone= 'Europe/Moscow';
|
||||||
|
select convert_tz('2004-11-31 12:00:00', 'Europe/Moscow', 'UTC');
|
||||||
|
convert_tz('2004-11-31 12:00:00', 'Europe/Moscow', 'UTC')
|
||||||
|
2004-12-01 09:00:00
|
||||||
|
select convert_tz(b, 'Europe/Moscow', 'UTC') from t1;
|
||||||
|
convert_tz(b, 'Europe/Moscow', 'UTC')
|
||||||
|
update t1, t2 set t1.b = convert_tz('2004-11-30 12:00:00', 'Europe/Moscow', 'UTC')
|
||||||
|
where t1.a = t2.c and t2.d = (select max(d) from t2);
|
||||||
|
select * from mysql.time_zone_name;
|
||||||
|
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name'
|
||||||
|
select Name, convert_tz('2004-11-30 12:00:00', Name, 'UTC') from mysql.time_zone_name;
|
||||||
|
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name'
|
||||||
|
delete from mysql.user where user like 'mysqltest\_%';
|
||||||
|
delete from mysql.db where user like 'mysqltest\_%';
|
||||||
|
delete from mysql.tables_priv where user like 'mysqltest\_%';
|
||||||
|
flush privileges;
|
||||||
|
drop table t1, t2;
|
25
mysql-test/r/user_var-binlog.result
Normal file
25
mysql-test/r/user_var-binlog.result
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
create table t1 (a varchar(50));
|
||||||
|
reset master;
|
||||||
|
SET TIMESTAMP=10000;
|
||||||
|
SET @`a b`='hello';
|
||||||
|
INSERT INTO t1 VALUES(@`a b`);
|
||||||
|
set @var1= "';aaa";
|
||||||
|
SET @var2=char(ascii('a'));
|
||||||
|
insert into t1 values (@var1),(@var2);
|
||||||
|
show binlog events from 79;
|
||||||
|
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||||
|
master-bin.000001 79 User var 1 79 @`a b`=_latin1 0x68656C6C6F COLLATE latin1_swedish_ci
|
||||||
|
master-bin.000001 120 Query 1 120 use `test`; INSERT INTO t1 VALUES(@`a b`)
|
||||||
|
master-bin.000001 184 User var 1 184 @`var1`=_latin1 0x273B616161 COLLATE latin1_swedish_ci
|
||||||
|
master-bin.000001 226 User var 1 226 @`var2`=_latin1 0x61 COLLATE latin1_swedish_ci
|
||||||
|
master-bin.000001 264 Query 1 264 use `test`; insert into t1 values (@var1),(@var2)
|
||||||
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||||
|
SET @`a b`:=_latin1 0x68656C6C6F COLLATE `latin1_swedish_ci`;
|
||||||
|
use test;
|
||||||
|
SET TIMESTAMP=10000;
|
||||||
|
INSERT INTO t1 VALUES(@`a b`);
|
||||||
|
SET @`var1`:=_latin1 0x273B616161 COLLATE `latin1_swedish_ci`;
|
||||||
|
SET @`var2`:=_latin1 0x61 COLLATE `latin1_swedish_ci`;
|
||||||
|
SET TIMESTAMP=10000;
|
||||||
|
insert into t1 values (@var1),(@var2);
|
||||||
|
drop table t1;
|
@ -162,31 +162,6 @@ charset(@a) collation(@a) coercibility(@a)
|
|||||||
latin2 latin2_bin 0
|
latin2 latin2_bin 0
|
||||||
select (@a:=_latin2'test' collate latin2_bin) = _latin2'TEST' collate latin2_general_ci;
|
select (@a:=_latin2'test' collate latin2_bin) = _latin2'TEST' collate latin2_general_ci;
|
||||||
ERROR HY000: Illegal mix of collations (latin2_bin,EXPLICIT) and (latin2_general_ci,EXPLICIT) for operation '='
|
ERROR HY000: Illegal mix of collations (latin2_bin,EXPLICIT) and (latin2_general_ci,EXPLICIT) for operation '='
|
||||||
create table t1 (a varchar(50));
|
|
||||||
reset master;
|
|
||||||
SET TIMESTAMP=10000;
|
|
||||||
SET @`a b`='hello';
|
|
||||||
INSERT INTO t1 VALUES(@`a b`);
|
|
||||||
set @var1= "';aaa";
|
|
||||||
SET @var2=char(ascii('a'));
|
|
||||||
insert into t1 values (@var1),(@var2);
|
|
||||||
show binlog events from 79;
|
|
||||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
|
||||||
master-bin.000001 79 User var 1 79 @`a b`=_latin1 0x68656C6C6F COLLATE latin1_swedish_ci
|
|
||||||
master-bin.000001 120 Query 1 120 use `test`; INSERT INTO t1 VALUES(@`a b`)
|
|
||||||
master-bin.000001 184 User var 1 184 @`var1`=_latin1 0x273B616161 COLLATE latin1_swedish_ci
|
|
||||||
master-bin.000001 226 User var 1 226 @`var2`=_latin1 0x61 COLLATE latin1_swedish_ci
|
|
||||||
master-bin.000001 264 Query 1 264 use `test`; insert into t1 values (@var1),(@var2)
|
|
||||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
|
||||||
SET @`a b`:=_latin1 0x68656C6C6F COLLATE `latin1_swedish_ci`;
|
|
||||||
use test;
|
|
||||||
SET TIMESTAMP=10000;
|
|
||||||
INSERT INTO t1 VALUES(@`a b`);
|
|
||||||
SET @`var1`:=_latin1 0x273B616161 COLLATE `latin1_swedish_ci`;
|
|
||||||
SET @`var2`:=_latin1 0x61 COLLATE `latin1_swedish_ci`;
|
|
||||||
SET TIMESTAMP=10000;
|
|
||||||
insert into t1 values (@var1),(@var2);
|
|
||||||
drop table t1;
|
|
||||||
set @var= NULL ;
|
set @var= NULL ;
|
||||||
select FIELD( @var,'1it','Hit') as my_column;
|
select FIELD( @var,'1it','Hit') as my_column;
|
||||||
my_column
|
my_column
|
||||||
|
@ -324,7 +324,6 @@ set read_buffer_size=100;
|
|||||||
set read_rnd_buffer_size=100;
|
set read_rnd_buffer_size=100;
|
||||||
set global rpl_recovery_rank=100;
|
set global rpl_recovery_rank=100;
|
||||||
set global server_id=100;
|
set global server_id=100;
|
||||||
set global slave_net_timeout=100;
|
|
||||||
set global slow_launch_time=100;
|
set global slow_launch_time=100;
|
||||||
set sort_buffer_size=100;
|
set sort_buffer_size=100;
|
||||||
set sql_auto_is_null=1;
|
set sql_auto_is_null=1;
|
||||||
@ -349,7 +348,6 @@ select @@sql_max_join_size,@@max_join_size;
|
|||||||
set sql_quote_show_create=1;
|
set sql_quote_show_create=1;
|
||||||
set sql_safe_updates=1;
|
set sql_safe_updates=1;
|
||||||
set sql_select_limit=1;
|
set sql_select_limit=1;
|
||||||
set global sql_slave_skip_counter=100;
|
|
||||||
set sql_warnings=1;
|
set sql_warnings=1;
|
||||||
set global table_cache=100;
|
set global table_cache=100;
|
||||||
set storage_engine=myisam;
|
set storage_engine=myisam;
|
||||||
|
@ -5,6 +5,9 @@
|
|||||||
# did some tests manually on a slave; tables are replicated fine and
|
# did some tests manually on a slave; tables are replicated fine and
|
||||||
# Exec_Master_Log_Pos advances as expected.
|
# Exec_Master_Log_Pos advances as expected.
|
||||||
|
|
||||||
|
# Embedded server doesn't support binlogging
|
||||||
|
-- source include/not_embedded.inc
|
||||||
|
|
||||||
-- source include/have_innodb.inc
|
-- source include/have_innodb.inc
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# Embedded server doesn't support external clients
|
||||||
|
--source include/not_embedded.inc
|
||||||
|
|
||||||
# test for Bug #4998 "--protocol doesn't reject bad values"
|
# test for Bug #4998 "--protocol doesn't reject bad values"
|
||||||
|
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
# We are using .opt file since we need small binlog size
|
# We are using .opt file since we need small binlog size
|
||||||
|
|
||||||
|
# Embedded server doesn't support binlogging
|
||||||
|
-- source include/not_embedded.inc
|
||||||
|
|
||||||
# we need this for getting fixed timestamps inside of this test
|
# we need this for getting fixed timestamps inside of this test
|
||||||
set timestamp=1000000000;
|
set timestamp=1000000000;
|
||||||
|
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
# Test for the new options --start-datetime, stop-datetime,
|
# Test for the new options --start-datetime, stop-datetime,
|
||||||
# and a few others.
|
# and a few others.
|
||||||
|
|
||||||
|
# Embedded server doesn't support binlogging
|
||||||
|
-- source include/not_embedded.inc
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
# Embedded server doesn't support external clients
|
||||||
|
--source include/not_embedded.inc
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
DROP TABLE IF EXISTS t1, `"t"1`;
|
DROP TABLE IF EXISTS t1, `"t"1`;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# Embedded server doesn't support external clients
|
||||||
|
--source include/not_embedded.inc
|
||||||
|
|
||||||
#
|
#
|
||||||
# Check protocol handling
|
# Check protocol handling
|
||||||
|
@ -316,9 +316,6 @@ prepare stmt4 from ' show engine bdb logs ';
|
|||||||
--disable_result_log
|
--disable_result_log
|
||||||
execute stmt4;
|
execute stmt4;
|
||||||
--enable_result_log
|
--enable_result_log
|
||||||
prepare stmt4 from ' show full processlist ';
|
|
||||||
--replace_column 1 number 6 time 3 localhost
|
|
||||||
execute stmt4;
|
|
||||||
prepare stmt4 from ' show grants for user ';
|
prepare stmt4 from ' show grants for user ';
|
||||||
--error 1295
|
--error 1295
|
||||||
prepare stmt4 from ' show create table t2 ';
|
prepare stmt4 from ' show create table t2 ';
|
||||||
@ -599,6 +596,7 @@ drop table t2;
|
|||||||
prepare stmt1 from ' rename table t5 to t6, t7 to t8 ' ;
|
prepare stmt1 from ' rename table t5 to t6, t7 to t8 ' ;
|
||||||
create table t5 (a int) ;
|
create table t5 (a int) ;
|
||||||
# rename must fail, t7 does not exist
|
# rename must fail, t7 does not exist
|
||||||
|
--replace_result \\ / $MYSQL_TEST_DIR . /var/master-data/ /
|
||||||
--error 1017
|
--error 1017
|
||||||
execute stmt1 ;
|
execute stmt1 ;
|
||||||
create table t7 (a int) ;
|
create table t7 (a int) ;
|
||||||
@ -841,117 +839,6 @@ execute stmt1 ;
|
|||||||
|
|
||||||
drop table t5 ;
|
drop table t5 ;
|
||||||
|
|
||||||
|
|
||||||
################ GRANT/REVOKE/DROP affecting a parallel session ################
|
|
||||||
--disable_query_log
|
|
||||||
select '------ grant/revoke/drop affects a parallel session test ------'
|
|
||||||
as test_sequence ;
|
|
||||||
--enable_query_log
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------#
|
|
||||||
# Here we test that:
|
|
||||||
# 1. A new GRANT will be visible within another sessions. #
|
|
||||||
# #
|
|
||||||
# Let's assume there is a parallel session with an already prepared #
|
|
||||||
# statement for a table. #
|
|
||||||
# A DROP TABLE will affect the EXECUTE properties. #
|
|
||||||
# A REVOKE will affect the EXECUTE properties. #
|
|
||||||
#---------------------------------------------------------------------#
|
|
||||||
|
|
||||||
# Who am I ?
|
|
||||||
# this is different across different systems:
|
|
||||||
# select current_user(), user() ;
|
|
||||||
|
|
||||||
#### create a new user account ####
|
|
||||||
## There should be no grants for that non existing user
|
|
||||||
--error 1141
|
|
||||||
show grants for second_user@localhost ;
|
|
||||||
## create a new user account by using GRANT statements on t9
|
|
||||||
create database mysqltest;
|
|
||||||
# create the tables (t1 and t9) used in many tests
|
|
||||||
use mysqltest;
|
|
||||||
--disable_query_log
|
|
||||||
--source include/ps_create.inc
|
|
||||||
--source include/ps_renew.inc
|
|
||||||
--enable_query_log
|
|
||||||
eval use $DB;
|
|
||||||
grant usage on mysqltest.* to second_user@localhost
|
|
||||||
identified by 'looser' ;
|
|
||||||
grant select on mysqltest.t9 to second_user@localhost
|
|
||||||
identified by 'looser' ;
|
|
||||||
show grants for second_user@localhost ;
|
|
||||||
|
|
||||||
|
|
||||||
#### establish a second session to the new user account
|
|
||||||
connect (con3,localhost,second_user,looser,mysqltest);
|
|
||||||
## switch to the second session
|
|
||||||
connection con3;
|
|
||||||
# Who am I ?
|
|
||||||
select current_user();
|
|
||||||
## check the access rights
|
|
||||||
show grants for current_user();
|
|
||||||
prepare s_t9 from 'select c1 as my_col
|
|
||||||
from t9 where c1= 1' ;
|
|
||||||
execute s_t9 ;
|
|
||||||
# check that we cannot do a SELECT on the table t1;
|
|
||||||
--error 1142
|
|
||||||
select a as my_col from t1;
|
|
||||||
|
|
||||||
|
|
||||||
#### give access rights to t1 and drop table t9
|
|
||||||
## switch back to the first session
|
|
||||||
connection default;
|
|
||||||
grant select on mysqltest.t1 to second_user@localhost
|
|
||||||
identified by 'looser' ;
|
|
||||||
show grants for second_user@localhost ;
|
|
||||||
drop table mysqltest.t9 ;
|
|
||||||
show grants for second_user@localhost ;
|
|
||||||
|
|
||||||
|
|
||||||
#### check the access as new user
|
|
||||||
## switch to the second session
|
|
||||||
connection con3;
|
|
||||||
######## Question 1: The table t1 should be now accessible. ########
|
|
||||||
show grants for second_user@localhost ;
|
|
||||||
prepare s_t1 from 'select a as my_col from t1' ;
|
|
||||||
execute s_t1 ;
|
|
||||||
######## Question 2: The table t9 does not exist. ########
|
|
||||||
--error 1146
|
|
||||||
execute s_t9 ;
|
|
||||||
|
|
||||||
|
|
||||||
#### revoke the access rights to t1
|
|
||||||
## switch back to the first session
|
|
||||||
connection default;
|
|
||||||
revoke all privileges on mysqltest.t1 from second_user@localhost
|
|
||||||
identified by 'looser' ;
|
|
||||||
show grants for second_user@localhost ;
|
|
||||||
|
|
||||||
#### check the access as new user
|
|
||||||
## switch to the second session
|
|
||||||
connection con3;
|
|
||||||
show grants for second_user@localhost ;
|
|
||||||
######## Question 2: The table t1 should be now not accessible. ########
|
|
||||||
--error 1142
|
|
||||||
execute s_t1 ;
|
|
||||||
|
|
||||||
## cleanup
|
|
||||||
## switch back to the first session
|
|
||||||
connection default;
|
|
||||||
## disconnect the second session
|
|
||||||
disconnect con3 ;
|
|
||||||
## remove all rights of second_user@localhost
|
|
||||||
revoke all privileges, grant option from second_user@localhost ;
|
|
||||||
show grants for second_user@localhost ;
|
|
||||||
drop user second_user@localhost ;
|
|
||||||
commit ;
|
|
||||||
--error 1141
|
|
||||||
show grants for second_user@localhost ;
|
|
||||||
|
|
||||||
drop table t1,t9 ;
|
|
||||||
drop database mysqltest;
|
|
||||||
|
|
||||||
|
|
||||||
##### RULES OF THUMB TO PRESERVE THE SYSTEMATICS OF THE PS TEST CASES #####
|
##### RULES OF THUMB TO PRESERVE THE SYSTEMATICS OF THE PS TEST CASES #####
|
||||||
#
|
#
|
||||||
# 0. You don't have the time to
|
# 0. You don't have the time to
|
||||||
|
120
mysql-test/t/ps_grant.test
Normal file
120
mysql-test/t/ps_grant.test
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
# Can't test grants with embedded server
|
||||||
|
-- source include/not_embedded.inc
|
||||||
|
|
||||||
|
# Tested here simply so it is not tested with embedded server
|
||||||
|
prepare stmt4 from ' show full processlist ';
|
||||||
|
--replace_column 1 number 6 time 3 localhost
|
||||||
|
execute stmt4;
|
||||||
|
|
||||||
|
let $type= 'MYISAM' ;
|
||||||
|
|
||||||
|
################ GRANT/REVOKE/DROP affecting a parallel session ################
|
||||||
|
--disable_query_log
|
||||||
|
select '------ grant/revoke/drop affects a parallel session test ------'
|
||||||
|
as test_sequence ;
|
||||||
|
--enable_query_log
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------#
|
||||||
|
# Here we test that:
|
||||||
|
# 1. A new GRANT will be visible within another sessions. #
|
||||||
|
# #
|
||||||
|
# Let's assume there is a parallel session with an already prepared #
|
||||||
|
# statement for a table. #
|
||||||
|
# A DROP TABLE will affect the EXECUTE properties. #
|
||||||
|
# A REVOKE will affect the EXECUTE properties. #
|
||||||
|
#---------------------------------------------------------------------#
|
||||||
|
|
||||||
|
# Who am I ?
|
||||||
|
# this is different across different systems:
|
||||||
|
# select current_user(), user() ;
|
||||||
|
|
||||||
|
#### create a new user account ####
|
||||||
|
## There should be no grants for that non existing user
|
||||||
|
--error 1141
|
||||||
|
show grants for second_user@localhost ;
|
||||||
|
## create a new user account by using GRANT statements on t9
|
||||||
|
create database mysqltest;
|
||||||
|
# create the tables (t1 and t9) used in many tests
|
||||||
|
use mysqltest;
|
||||||
|
--disable_query_log
|
||||||
|
--source include/ps_create.inc
|
||||||
|
--source include/ps_renew.inc
|
||||||
|
--enable_query_log
|
||||||
|
eval use $DB;
|
||||||
|
grant usage on mysqltest.* to second_user@localhost
|
||||||
|
identified by 'looser' ;
|
||||||
|
grant select on mysqltest.t9 to second_user@localhost
|
||||||
|
identified by 'looser' ;
|
||||||
|
show grants for second_user@localhost ;
|
||||||
|
|
||||||
|
|
||||||
|
#### establish a second session to the new user account
|
||||||
|
connect (con3,localhost,second_user,looser,mysqltest);
|
||||||
|
## switch to the second session
|
||||||
|
connection con3;
|
||||||
|
# Who am I ?
|
||||||
|
select current_user();
|
||||||
|
## check the access rights
|
||||||
|
show grants for current_user();
|
||||||
|
prepare s_t9 from 'select c1 as my_col
|
||||||
|
from t9 where c1= 1' ;
|
||||||
|
execute s_t9 ;
|
||||||
|
# check that we cannot do a SELECT on the table t1;
|
||||||
|
--error 1142
|
||||||
|
select a as my_col from t1;
|
||||||
|
|
||||||
|
|
||||||
|
#### give access rights to t1 and drop table t9
|
||||||
|
## switch back to the first session
|
||||||
|
connection default;
|
||||||
|
grant select on mysqltest.t1 to second_user@localhost
|
||||||
|
identified by 'looser' ;
|
||||||
|
show grants for second_user@localhost ;
|
||||||
|
drop table mysqltest.t9 ;
|
||||||
|
show grants for second_user@localhost ;
|
||||||
|
|
||||||
|
|
||||||
|
#### check the access as new user
|
||||||
|
## switch to the second session
|
||||||
|
connection con3;
|
||||||
|
######## Question 1: The table t1 should be now accessible. ########
|
||||||
|
show grants for second_user@localhost ;
|
||||||
|
prepare s_t1 from 'select a as my_col from t1' ;
|
||||||
|
execute s_t1 ;
|
||||||
|
######## Question 2: The table t9 does not exist. ########
|
||||||
|
--error 1146
|
||||||
|
execute s_t9 ;
|
||||||
|
|
||||||
|
|
||||||
|
#### revoke the access rights to t1
|
||||||
|
## switch back to the first session
|
||||||
|
connection default;
|
||||||
|
revoke all privileges on mysqltest.t1 from second_user@localhost
|
||||||
|
identified by 'looser' ;
|
||||||
|
show grants for second_user@localhost ;
|
||||||
|
|
||||||
|
#### check the access as new user
|
||||||
|
## switch to the second session
|
||||||
|
connection con3;
|
||||||
|
show grants for second_user@localhost ;
|
||||||
|
######## Question 2: The table t1 should be now not accessible. ########
|
||||||
|
--error 1142
|
||||||
|
execute s_t1 ;
|
||||||
|
|
||||||
|
## cleanup
|
||||||
|
## switch back to the first session
|
||||||
|
connection default;
|
||||||
|
## disconnect the second session
|
||||||
|
disconnect con3 ;
|
||||||
|
## remove all rights of second_user@localhost
|
||||||
|
revoke all privileges, grant option from second_user@localhost ;
|
||||||
|
show grants for second_user@localhost ;
|
||||||
|
drop user second_user@localhost ;
|
||||||
|
commit ;
|
||||||
|
--error 1141
|
||||||
|
show grants for second_user@localhost ;
|
||||||
|
|
||||||
|
drop table t1,t9 ;
|
||||||
|
drop database mysqltest;
|
||||||
|
|
||||||
|
|
@ -2,6 +2,10 @@
|
|||||||
# Test of rename table
|
# Test of rename table
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# Test requires concurrent connections, which can't be tested on embedded
|
||||||
|
# server
|
||||||
|
-- source include/not_embedded.inc
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop table if exists t0,t1,t2,t3,t4;
|
drop table if exists t0,t1,t2,t3,t4;
|
||||||
# Clear up from other tests (to ensure that SHOW TABLES below is right)
|
# Clear up from other tests (to ensure that SHOW TABLES below is right)
|
||||||
|
4
mysql-test/t/rpl_variables.test
Normal file
4
mysql-test/t/rpl_variables.test
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
source include/master-slave.inc;
|
||||||
|
|
||||||
|
set global slave_net_timeout=100;
|
||||||
|
set global sql_slave_skip_counter=100;
|
@ -1,3 +1,7 @@
|
|||||||
|
# Requires use of multiple simultaneous connections, not supported with
|
||||||
|
# embedded server testing
|
||||||
|
-- source include/not_embedded.inc
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test of some show commands
|
# Test of some show commands
|
||||||
#
|
#
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
# Embedded server doesn't support external clients
|
||||||
|
--source include/not_embedded.inc
|
||||||
|
|
||||||
#
|
#
|
||||||
# This is the test for mysql_fix_privilege_tables
|
# This is the test for mysql_fix_privilege_tables
|
||||||
#
|
#
|
||||||
|
@ -199,74 +199,6 @@ insert into t1 (ts) values (now());
|
|||||||
select convert_tz(ts, @@time_zone, 'Japan') from t1;
|
select convert_tz(ts, @@time_zone, 'Japan') from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
|
||||||
# Test for bug #6116 "SET time_zone := ... requires access to mysql.time_zone
|
|
||||||
# tables". We should allow implicit access to time zone description tables
|
|
||||||
# even for unprivileged users.
|
|
||||||
#
|
|
||||||
|
|
||||||
# Let us prepare playground
|
|
||||||
delete from mysql.user where user like 'mysqltest\_%';
|
|
||||||
delete from mysql.db where user like 'mysqltest\_%';
|
|
||||||
delete from mysql.tables_priv where user like 'mysqltest\_%';
|
|
||||||
delete from mysql.columns_priv where user like 'mysqltest\_%';
|
|
||||||
flush privileges;
|
|
||||||
create table t1 (a int, b datetime);
|
|
||||||
create table t2 (c int, d datetime);
|
|
||||||
|
|
||||||
grant all privileges on test.* to mysqltest_1@localhost;
|
|
||||||
connect (tzuser, localhost, mysqltest_1,,);
|
|
||||||
connection tzuser;
|
|
||||||
show grants for current_user();
|
|
||||||
set time_zone= '+00:00';
|
|
||||||
set time_zone= 'Europe/Moscow';
|
|
||||||
select convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC');
|
|
||||||
select convert_tz(b, 'Europe/Moscow', 'UTC') from t1;
|
|
||||||
# Let us also check whenever multi-update works ok
|
|
||||||
update t1, t2 set t1.b = convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC')
|
|
||||||
where t1.a = t2.c and t2.d = (select max(d) from t2);
|
|
||||||
# But still these two statements should not work:
|
|
||||||
--error 1044
|
|
||||||
select * from mysql.time_zone_name;
|
|
||||||
--error 1044
|
|
||||||
select Name, convert_tz('2004-10-21 19:00:00', Name, 'UTC') from mysql.time_zone_name;
|
|
||||||
|
|
||||||
#
|
|
||||||
# Test for bug #6765 "Implicit access to time zone description tables
|
|
||||||
# requires privileges for them if some table or column level grants
|
|
||||||
# present"
|
|
||||||
#
|
|
||||||
connection default;
|
|
||||||
# Let use some table-level grants instead of db-level
|
|
||||||
# to make life more interesting
|
|
||||||
delete from mysql.db where user like 'mysqltest\_%';
|
|
||||||
flush privileges;
|
|
||||||
grant all privileges on test.t1 to mysqltest_1@localhost;
|
|
||||||
grant all privileges on test.t2 to mysqltest_1@localhost;
|
|
||||||
# The test itself is almost the same as previous one
|
|
||||||
connect (tzuser2, localhost, mysqltest_1,,);
|
|
||||||
connection tzuser2;
|
|
||||||
show grants for current_user();
|
|
||||||
set time_zone= '+00:00';
|
|
||||||
set time_zone= 'Europe/Moscow';
|
|
||||||
select convert_tz('2004-11-31 12:00:00', 'Europe/Moscow', 'UTC');
|
|
||||||
select convert_tz(b, 'Europe/Moscow', 'UTC') from t1;
|
|
||||||
update t1, t2 set t1.b = convert_tz('2004-11-30 12:00:00', 'Europe/Moscow', 'UTC')
|
|
||||||
where t1.a = t2.c and t2.d = (select max(d) from t2);
|
|
||||||
# Again these two statements should not work (but with different errors):
|
|
||||||
--error 1142
|
|
||||||
select * from mysql.time_zone_name;
|
|
||||||
--error 1142
|
|
||||||
select Name, convert_tz('2004-11-30 12:00:00', Name, 'UTC') from mysql.time_zone_name;
|
|
||||||
|
|
||||||
# Clean-up
|
|
||||||
connection default;
|
|
||||||
delete from mysql.user where user like 'mysqltest\_%';
|
|
||||||
delete from mysql.db where user like 'mysqltest\_%';
|
|
||||||
delete from mysql.tables_priv where user like 'mysqltest\_%';
|
|
||||||
flush privileges;
|
|
||||||
drop table t1, t2;
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test for bug #7705 "CONVERT_TZ() crashes with subquery/WHERE on index
|
# Test for bug #7705 "CONVERT_TZ() crashes with subquery/WHERE on index
|
||||||
# column". Queries in which one of time zone arguments of CONVERT_TZ() is
|
# column". Queries in which one of time zone arguments of CONVERT_TZ() is
|
||||||
|
71
mysql-test/t/timezone_grant.test
Normal file
71
mysql-test/t/timezone_grant.test
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
# Embedded server testing does not support grants
|
||||||
|
-- source include/not_embedded.inc
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test for bug #6116 "SET time_zone := ... requires access to mysql.time_zone
|
||||||
|
# tables". We should allow implicit access to time zone description tables
|
||||||
|
# even for unprivileged users.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Let us prepare playground
|
||||||
|
delete from mysql.user where user like 'mysqltest\_%';
|
||||||
|
delete from mysql.db where user like 'mysqltest\_%';
|
||||||
|
delete from mysql.tables_priv where user like 'mysqltest\_%';
|
||||||
|
delete from mysql.columns_priv where user like 'mysqltest\_%';
|
||||||
|
flush privileges;
|
||||||
|
create table t1 (a int, b datetime);
|
||||||
|
create table t2 (c int, d datetime);
|
||||||
|
|
||||||
|
grant all privileges on test.* to mysqltest_1@localhost;
|
||||||
|
connect (tzuser, localhost, mysqltest_1,,);
|
||||||
|
connection tzuser;
|
||||||
|
show grants for current_user();
|
||||||
|
set time_zone= '+00:00';
|
||||||
|
set time_zone= 'Europe/Moscow';
|
||||||
|
select convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC');
|
||||||
|
select convert_tz(b, 'Europe/Moscow', 'UTC') from t1;
|
||||||
|
# Let us also check whenever multi-update works ok
|
||||||
|
update t1, t2 set t1.b = convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC')
|
||||||
|
where t1.a = t2.c and t2.d = (select max(d) from t2);
|
||||||
|
# But still these two statements should not work:
|
||||||
|
--error 1044
|
||||||
|
select * from mysql.time_zone_name;
|
||||||
|
--error 1044
|
||||||
|
select Name, convert_tz('2004-10-21 19:00:00', Name, 'UTC') from mysql.time_zone_name;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test for bug #6765 "Implicit access to time zone description tables
|
||||||
|
# requires privileges for them if some table or column level grants
|
||||||
|
# present"
|
||||||
|
#
|
||||||
|
connection default;
|
||||||
|
# Let use some table-level grants instead of db-level
|
||||||
|
# to make life more interesting
|
||||||
|
delete from mysql.db where user like 'mysqltest\_%';
|
||||||
|
flush privileges;
|
||||||
|
grant all privileges on test.t1 to mysqltest_1@localhost;
|
||||||
|
grant all privileges on test.t2 to mysqltest_1@localhost;
|
||||||
|
# The test itself is almost the same as previous one
|
||||||
|
connect (tzuser2, localhost, mysqltest_1,,);
|
||||||
|
connection tzuser2;
|
||||||
|
show grants for current_user();
|
||||||
|
set time_zone= '+00:00';
|
||||||
|
set time_zone= 'Europe/Moscow';
|
||||||
|
select convert_tz('2004-11-31 12:00:00', 'Europe/Moscow', 'UTC');
|
||||||
|
select convert_tz(b, 'Europe/Moscow', 'UTC') from t1;
|
||||||
|
update t1, t2 set t1.b = convert_tz('2004-11-30 12:00:00', 'Europe/Moscow', 'UTC')
|
||||||
|
where t1.a = t2.c and t2.d = (select max(d) from t2);
|
||||||
|
# Again these two statements should not work (but with different errors):
|
||||||
|
--error 1142
|
||||||
|
select * from mysql.time_zone_name;
|
||||||
|
--error 1142
|
||||||
|
select Name, convert_tz('2004-11-30 12:00:00', Name, 'UTC') from mysql.time_zone_name;
|
||||||
|
|
||||||
|
# Clean-up
|
||||||
|
connection default;
|
||||||
|
delete from mysql.user where user like 'mysqltest\_%';
|
||||||
|
delete from mysql.db where user like 'mysqltest\_%';
|
||||||
|
delete from mysql.tables_priv where user like 'mysqltest\_%';
|
||||||
|
flush privileges;
|
||||||
|
drop table t1, t2;
|
||||||
|
|
19
mysql-test/t/user_var-binlog.test
Normal file
19
mysql-test/t/user_var-binlog.test
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# Embedded server does not support binlogging
|
||||||
|
--source include/not_embedded.inc
|
||||||
|
|
||||||
|
# Check that user variables are binlogged correctly (BUG#3875)
|
||||||
|
create table t1 (a varchar(50));
|
||||||
|
reset master;
|
||||||
|
SET TIMESTAMP=10000;
|
||||||
|
SET @`a b`='hello';
|
||||||
|
INSERT INTO t1 VALUES(@`a b`);
|
||||||
|
set @var1= "';aaa";
|
||||||
|
SET @var2=char(ascii('a'));
|
||||||
|
insert into t1 values (@var1),(@var2);
|
||||||
|
show binlog events from 79;
|
||||||
|
# more important than SHOW BINLOG EVENTS, mysqlbinlog (where we
|
||||||
|
# absolutely need variables names to be quoted and strings to be
|
||||||
|
# escaped).
|
||||||
|
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||||
|
--exec $MYSQL_BINLOG --short-form $MYSQL_TEST_DIR/var/log/master-bin.000001
|
||||||
|
drop table t1;
|
@ -100,24 +100,6 @@ select charset(@a),collation(@a),coercibility(@a);
|
|||||||
--error 1267
|
--error 1267
|
||||||
select (@a:=_latin2'test' collate latin2_bin) = _latin2'TEST' collate latin2_general_ci;
|
select (@a:=_latin2'test' collate latin2_bin) = _latin2'TEST' collate latin2_general_ci;
|
||||||
|
|
||||||
# Check that user variables are binlogged correctly (BUG#3875)
|
|
||||||
create table t1 (a varchar(50));
|
|
||||||
reset master;
|
|
||||||
SET TIMESTAMP=10000;
|
|
||||||
SET @`a b`='hello';
|
|
||||||
INSERT INTO t1 VALUES(@`a b`);
|
|
||||||
set @var1= "';aaa";
|
|
||||||
SET @var2=char(ascii('a'));
|
|
||||||
insert into t1 values (@var1),(@var2);
|
|
||||||
show binlog events from 79;
|
|
||||||
# more important than SHOW BINLOG EVENTS, mysqlbinlog (where we
|
|
||||||
# absolutely need variables names to be quoted and strings to be
|
|
||||||
# escaped).
|
|
||||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
|
||||||
--exec $MYSQL_BINLOG --short-form $MYSQL_TEST_DIR/var/log/master-bin.000001
|
|
||||||
drop table t1;
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #6321 strange error:
|
# Bug #6321 strange error:
|
||||||
# string function FIELD(<uservariable content NULL>, ...)
|
# string function FIELD(<uservariable content NULL>, ...)
|
||||||
|
@ -218,7 +218,6 @@ set read_buffer_size=100;
|
|||||||
set read_rnd_buffer_size=100;
|
set read_rnd_buffer_size=100;
|
||||||
set global rpl_recovery_rank=100;
|
set global rpl_recovery_rank=100;
|
||||||
set global server_id=100;
|
set global server_id=100;
|
||||||
set global slave_net_timeout=100;
|
|
||||||
set global slow_launch_time=100;
|
set global slow_launch_time=100;
|
||||||
set sort_buffer_size=100;
|
set sort_buffer_size=100;
|
||||||
set sql_auto_is_null=1;
|
set sql_auto_is_null=1;
|
||||||
@ -237,7 +236,6 @@ select @@sql_max_join_size,@@max_join_size;
|
|||||||
set sql_quote_show_create=1;
|
set sql_quote_show_create=1;
|
||||||
set sql_safe_updates=1;
|
set sql_safe_updates=1;
|
||||||
set sql_select_limit=1;
|
set sql_select_limit=1;
|
||||||
set global sql_slave_skip_counter=100;
|
|
||||||
set sql_warnings=1;
|
set sql_warnings=1;
|
||||||
set global table_cache=100;
|
set global table_cache=100;
|
||||||
set storage_engine=myisam;
|
set storage_engine=myisam;
|
||||||
|
Reference in New Issue
Block a user