mirror of
https://github.com/MariaDB/server.git
synced 2025-01-21 22:34:18 +01:00
847fc72f54
It turns out that this test case no longer fails with the discrepancy in numbers that was the original cause for disabling this test (and showed potential genuine issues with the query cache). Therefore this test is being enabled after some minor adjustment of error codes and messages.
210 lines
5.1 KiB
Text
210 lines
5.1 KiB
Text
drop table if exists test.t1,mysqltest.t1,mysqltest.t2;
|
|
drop database if exists mysqltest;
|
|
set GLOBAL query_cache_size=1355776;
|
|
reset query cache;
|
|
flush status;
|
|
show grants for current_user;
|
|
Grants for root@localhost
|
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
|
show grants;
|
|
Grants for root@localhost
|
|
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
|
create database if not exists mysqltest;
|
|
create table mysqltest.t1 (a int,b int,c int);
|
|
create table mysqltest.t2 (a int,b int,c int);
|
|
insert into mysqltest.t1 values (1,1,1),(2,2,2);
|
|
insert into mysqltest.t2 values (3,3,3);
|
|
create table test.t1 (a char (10));
|
|
insert into test.t1 values ("test.t1");
|
|
select * from t1;
|
|
a
|
|
test.t1
|
|
select * from t1;
|
|
a b c
|
|
1 1 1
|
|
2 2 2
|
|
select a from t1;
|
|
a
|
|
1
|
|
2
|
|
select c from t1;
|
|
c
|
|
1
|
|
2
|
|
select * from t2;
|
|
a b c
|
|
3 3 3
|
|
select * from mysqltest.t1,test.t1;
|
|
a b c a
|
|
1 1 1 test.t1
|
|
2 2 2 test.t1
|
|
show status like "Qcache_queries_in_cache";
|
|
Variable_name Value
|
|
Qcache_queries_in_cache 6
|
|
show status like "Qcache_hits%";
|
|
Variable_name Value
|
|
Qcache_hits 0
|
|
grant SELECT on mysqltest.* to mysqltest_1@localhost;
|
|
grant SELECT on mysqltest.t1 to mysqltest_2@localhost;
|
|
grant SELECT on test.t1 to mysqltest_2@localhost;
|
|
grant SELECT(a) on mysqltest.t1 to mysqltest_3@localhost;
|
|
show grants for current_user();
|
|
Grants for mysqltest_1@localhost
|
|
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
|
|
GRANT SELECT ON `mysqltest`.* TO 'mysqltest_1'@'localhost'
|
|
show status like "Qcache_queries_in_cache";
|
|
Variable_name Value
|
|
Qcache_queries_in_cache 6
|
|
show status like "Qcache_hits";
|
|
Variable_name Value
|
|
Qcache_hits 0
|
|
show status like "Qcache_not_cached";
|
|
Variable_name Value
|
|
Qcache_not_cached 5
|
|
select "user1";
|
|
user1
|
|
user1
|
|
show status like "Qcache_queries_in_cache";
|
|
Variable_name Value
|
|
Qcache_queries_in_cache 6
|
|
show status like "Qcache_hits";
|
|
Variable_name Value
|
|
Qcache_hits 0
|
|
show status like "Qcache_not_cached";
|
|
Variable_name Value
|
|
Qcache_not_cached 9
|
|
select * from t1;
|
|
a b c
|
|
1 1 1
|
|
2 2 2
|
|
show status like "Qcache_queries_in_cache";
|
|
Variable_name Value
|
|
Qcache_queries_in_cache 6
|
|
show status like "Qcache_hits";
|
|
Variable_name Value
|
|
Qcache_hits 1
|
|
show status like "Qcache_not_cached";
|
|
Variable_name Value
|
|
Qcache_not_cached 12
|
|
select a from t1 ;
|
|
a
|
|
1
|
|
2
|
|
show status like "Qcache_queries_in_cache";
|
|
Variable_name Value
|
|
Qcache_queries_in_cache 6
|
|
show status like "Qcache_hits";
|
|
Variable_name Value
|
|
Qcache_hits 2
|
|
show status like "Qcache_not_cached";
|
|
Variable_name Value
|
|
Qcache_not_cached 15
|
|
select c from t1;
|
|
c
|
|
1
|
|
2
|
|
show status like "Qcache_queries_in_cache";
|
|
Variable_name Value
|
|
Qcache_queries_in_cache 6
|
|
show status like "Qcache_hits";
|
|
Variable_name Value
|
|
Qcache_hits 3
|
|
show status like "Qcache_not_cached";
|
|
Variable_name Value
|
|
Qcache_not_cached 18
|
|
show grants for current_user();
|
|
Grants for @localhost
|
|
GRANT USAGE ON *.* TO ''@'localhost'
|
|
select "user2";
|
|
user2
|
|
user2
|
|
select * from t1;
|
|
a b c
|
|
1 1 1
|
|
2 2 2
|
|
select a from t1;
|
|
a
|
|
1
|
|
2
|
|
select c from t1;
|
|
c
|
|
1
|
|
2
|
|
select * from mysqltest.t1,test.t1;
|
|
a b c a
|
|
1 1 1 test.t1
|
|
2 2 2 test.t1
|
|
select * from t2;
|
|
ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table 't2'
|
|
show status like "Qcache_queries_in_cache";
|
|
Variable_name Value
|
|
Qcache_queries_in_cache 6
|
|
show status like "Qcache_hits";
|
|
Variable_name Value
|
|
Qcache_hits 7
|
|
show status like "Qcache_not_cached";
|
|
Variable_name Value
|
|
Qcache_not_cached 22
|
|
select "user3";
|
|
user3
|
|
user3
|
|
select * from t1;
|
|
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 't1'
|
|
select a from t1;
|
|
a
|
|
1
|
|
2
|
|
select c from t1;
|
|
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1'
|
|
select * from t2;
|
|
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 't2'
|
|
select mysqltest.t1.c from test.t1,mysqltest.t1;
|
|
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1'
|
|
show status like "Qcache_queries_in_cache";
|
|
Variable_name Value
|
|
Qcache_queries_in_cache 6
|
|
show status like "Qcache_hits";
|
|
Variable_name Value
|
|
Qcache_hits 7
|
|
show status like "Qcache_not_cached";
|
|
Variable_name Value
|
|
Qcache_not_cached 30
|
|
select "user4";
|
|
user4
|
|
user4
|
|
show grants;
|
|
Grants for mysqltest_1@localhost
|
|
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost'
|
|
GRANT SELECT ON `mysqltest`.* TO 'mysqltest_1'@'localhost'
|
|
select a from t1;
|
|
ERROR 3D000: No database selected
|
|
select * from mysqltest.t1,test.t1;
|
|
a b c a
|
|
1 1 1 test.t1
|
|
2 2 2 test.t1
|
|
select a from mysqltest.t1;
|
|
a
|
|
1
|
|
2
|
|
select a from mysqltest.t1;
|
|
a
|
|
1
|
|
2
|
|
show status like "Qcache_queries_in_cache";
|
|
Variable_name Value
|
|
Qcache_queries_in_cache 8
|
|
show status like "Qcache_hits";
|
|
Variable_name Value
|
|
Qcache_hits 8
|
|
show status like "Qcache_not_cached";
|
|
Variable_name Value
|
|
Qcache_not_cached 34
|
|
set names binary;
|
|
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.tables_priv where user in ("mysqltest_1","mysqltest_2","mysqltest_3");
|
|
delete from mysql.columns_priv where user in ("mysqltest_1","mysqltest_2","mysqltest_3");
|
|
flush privileges;
|
|
drop table test.t1,mysqltest.t1,mysqltest.t2;
|
|
drop database mysqltest;
|
|
set GLOBAL query_cache_size=default;
|