Commit 4b087e17 authored by Oleksandr Byelkin's avatar Oleksandr Byelkin

Merge branch '10.4' into 10.5

parents fc2f2fa8 646d1ec8
...@@ -277,6 +277,8 @@ support-files/mysqld_multi.server ...@@ -277,6 +277,8 @@ support-files/mysqld_multi.server
support-files/wsrep.cnf support-files/wsrep.cnf
support-files/wsrep_notify support-files/wsrep_notify
support-files/policy/selinux/mysqld-safe.pp support-files/policy/selinux/mysqld-safe.pp
support-files/sysusers.conf
support-files/tmpfiles.conf
support-files/mariadb.pp support-files/mariadb.pp
tags tags
tests/async_queries tests/async_queries
......
...@@ -105,6 +105,8 @@ SET(ignored ...@@ -105,6 +105,8 @@ SET(ignored
"%ignore /etc/systemd/system" "%ignore /etc/systemd/system"
"%ignore /lib" "%ignore /lib"
"%ignore /lib/security" "%ignore /lib/security"
"%ignore /lib64"
"%ignore /lib64/security"
"%ignore ${CMAKE_INSTALL_PREFIX}" "%ignore ${CMAKE_INSTALL_PREFIX}"
"%ignore ${CMAKE_INSTALL_PREFIX}/bin" "%ignore ${CMAKE_INSTALL_PREFIX}/bin"
"%ignore ${CMAKE_INSTALL_PREFIX}/include" "%ignore ${CMAKE_INSTALL_PREFIX}/include"
......
...@@ -163,7 +163,7 @@ SET(INSTALL_UNIX_ADDRDIR_RPM "${INSTALL_MYSQLDATADIR_RPM}/mysql.sock" ...@@ -163,7 +163,7 @@ SET(INSTALL_UNIX_ADDRDIR_RPM "${INSTALL_MYSQLDATADIR_RPM}/mysql.sock"
SET(INSTALL_SYSTEMD_UNITDIR_RPM "/usr/lib/systemd/system") SET(INSTALL_SYSTEMD_UNITDIR_RPM "/usr/lib/systemd/system")
SET(INSTALL_SYSTEMD_SYSUSERSDIR_RPM "/usr/lib/sysusers.d") SET(INSTALL_SYSTEMD_SYSUSERSDIR_RPM "/usr/lib/sysusers.d")
SET(INSTALL_SYSTEMD_TMPFILESDIR_RPM "/usr/lib/tmpfiles.d") SET(INSTALL_SYSTEMD_TMPFILESDIR_RPM "/usr/lib/tmpfiles.d")
SET(INSTALL_PAMDIR_RPM "/lib/security") SET(INSTALL_PAMDIR_RPM "/${INSTALL_LIBDIR_RPM}/security")
# #
# DEB layout # DEB layout
......
# Copyright (c) 2012, Monty Program Ab # Copyright (c) 2012, 2020, MariaDB
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
...@@ -21,11 +21,11 @@ SET(MAN1_SERVER innochecksum.1 my_print_defaults.1 myisam_ftdump.1 myisamchk.1 ...@@ -21,11 +21,11 @@ SET(MAN1_SERVER innochecksum.1 my_print_defaults.1 myisam_ftdump.1 myisamchk.1
mysql_secure_installation.1 mysql_setpermission.1 mysql_secure_installation.1 mysql_setpermission.1
mysql_tzinfo_to_sql.1 mysql_upgrade.1 mysql_tzinfo_to_sql.1 mysql_upgrade.1
mysqld_multi.1 mysqld_safe.1 mysqldumpslow.1 mysqlhotcopy.1 mysqld_multi.1 mysqld_safe.1 mysqldumpslow.1 mysqlhotcopy.1
mysqltest.1 perror.1 replace.1 resolve_stack_dump.1 perror.1 replace.1 resolve_stack_dump.1
resolveip.1 mariadb-service-convert.1 resolveip.1 mariadb-service-convert.1
mysqld_safe_helper.1 tokuftdump.1 wsrep_sst_common.1 mysqld_safe_helper.1 wsrep_sst_common.1
wsrep_sst_mysqldump.1 wsrep_sst_rsync.1 wsrep_sst_mysqldump.1 wsrep_sst_rsync.1
galera_recovery.1 galera_new_cluster.1 tokuft_logprint.1 galera_recovery.1 galera_new_cluster.1
mysql_ldb.1 mysql_ldb.1
wsrep_sst_mariabackup.1 mbstream.1 mariabackup.1 wsrep_sst_mariabackup.1 mbstream.1 mariabackup.1
wsrep_sst_rsync_wan.1) wsrep_sst_rsync_wan.1)
...@@ -36,7 +36,8 @@ SET(MAN1_CLIENT msql2mysql.1 mysql.1 mysql_find_rows.1 mysql_waitpid.1 ...@@ -36,7 +36,8 @@ SET(MAN1_CLIENT msql2mysql.1 mysql.1 mysql_find_rows.1 mysql_waitpid.1
mysql_plugin.1 mysql_embedded.1) mysql_plugin.1 mysql_embedded.1)
SET(MAN1_DEVEL mysql_config.1) SET(MAN1_DEVEL mysql_config.1)
SET(MAN1_TEST mysql-stress-test.pl.1 mysql-test-run.pl.1 mysql_client_test.1 SET(MAN1_TEST mysql-stress-test.pl.1 mysql-test-run.pl.1 mysql_client_test.1
mysqltest_embedded.1 mysql_client_test_embedded.1 my_safe_process.1) mysqltest.1 mysqltest_embedded.1 mysql_client_test_embedded.1
my_safe_process.1)
INSTALL(FILES ${MAN1_SERVER} DESTINATION ${INSTALL_MANDIR}/man1 COMPONENT ManPagesServer) INSTALL(FILES ${MAN1_SERVER} DESTINATION ${INSTALL_MANDIR}/man1 COMPONENT ManPagesServer)
INSTALL(FILES ${MAN8_SERVER} DESTINATION ${INSTALL_MANDIR}/man8 COMPONENT ManPagesServer) INSTALL(FILES ${MAN8_SERVER} DESTINATION ${INSTALL_MANDIR}/man8 COMPONENT ManPagesServer)
......
...@@ -103,12 +103,12 @@ update mysql.user set plugin="", authentication_string="", password=old_password ...@@ -103,12 +103,12 @@ update mysql.user set plugin="", authentication_string="", password=old_password
flush privileges; flush privileges;
show grants for test@localhost; show grants for test@localhost;
Grants for test@localhost Grants for test@localhost
GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost' IDENTIFIED BY PASSWORD '2f27438961437573' GRANT ALL PRIVILEGES ON *.* TO `test`@`localhost` IDENTIFIED BY PASSWORD '2f27438961437573'
update mysql.user set plugin='mysql_old_password' where user='test'; update mysql.user set plugin='mysql_old_password' where user='test';
flush privileges; flush privileges;
show grants for test@localhost; show grants for test@localhost;
Grants for test@localhost Grants for test@localhost
GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost' IDENTIFIED BY PASSWORD '2f27438961437573' GRANT ALL PRIVILEGES ON *.* TO `test`@`localhost` IDENTIFIED BY PASSWORD '2f27438961437573'
connect con10,localhost,test,gambling2,; connect con10,localhost,test,gambling2,;
connect con5,localhost,test,gambling2,mysql; connect con5,localhost,test,gambling2,mysql;
set password=""; set password="";
......
...@@ -16823,6 +16823,95 @@ id username id userid logindate ...@@ -16823,6 +16823,95 @@ id username id userid logindate
2 user2 3 2 2017-06-19 12:17:02 2 user2 3 2 2017-06-19 12:17:02
set join_cache_level=default; set join_cache_level=default;
DROP TABLE t1,t2; DROP TABLE t1,t2;
#
# MDEV-21614: potentially splittable materialized derived/view
# within materialized semi-join
#
create table t1 (
id int not null auto_increment primary key,
a int not null
) engine=myisam;
create table t2 (
id int not null auto_increment primary key,
ro_id int not null,
flag int not null, key (ro_id)
) engine=myisam;
insert into t1(a) select seq+100 from seq_1_to_20;
insert into t2(ro_id,flag) select seq, 1 from seq_1_to_20;
insert into t2(ro_id,flag) select seq, 0 from seq_1_to_20;
create view v1 as
select t1.* from t1 left join t2 on (t1.id = t2.ro_id AND t2.flag = 1)
group by t1.id;
select id, a from t1 where id in (select id from v1);
id a
1 101
2 102
3 103
4 104
5 105
6 106
7 107
8 108
9 109
10 110
11 111
12 112
13 113
14 114
15 115
16 116
17 117
18 118
19 119
20 120
explain extended select id, a from t1 where id in (select id from v1);
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 20 100.00
1 PRIMARY <derived3> ref key0 key0 4 test.t1.id 2 100.00 FirstMatch(t1)
3 LATERAL DERIVED t1 eq_ref PRIMARY PRIMARY 4 test.t1.id 1 100.00
3 LATERAL DERIVED t2 ref ro_id ro_id 4 test.t1.id 1 100.00 Using where
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`a` AS `a` from `test`.`t1` semi join (`test`.`v1`) where `v1`.`id` = `test`.`t1`.`id`
select id, a from t1
where id in (select id
from (select t1.* from t1 left join t2
on (t1.id = t2.ro_id AND t2.flag = 1)
group by t1.id) dt);
id a
1 101
2 102
3 103
4 104
5 105
6 106
7 107
8 108
9 109
10 110
11 111
12 112
13 113
14 114
15 115
16 116
17 117
18 118
19 119
20 120
explain extended select id, a from t1
where id in (select id
from (select t1.* from t1 left join t2
on (t1.id = t2.ro_id AND t2.flag = 1)
group by t1.id) dt);
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 20 100.00
1 PRIMARY <derived3> ref key0 key0 4 test.t1.id 2 100.00 FirstMatch(t1)
3 LATERAL DERIVED t1 eq_ref PRIMARY PRIMARY 4 test.t1.id 1 100.00
3 LATERAL DERIVED t2 ref ro_id ro_id 4 test.t1.id 1 100.00 Using where
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`a` AS `a` from `test`.`t1` semi join ((/* select#3 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`a` AS `a` from `test`.`t1` left join `test`.`t2` on(`test`.`t2`.`ro_id` = `test`.`t1`.`id` and `test`.`t2`.`flag` = 1) where `test`.`t1`.`id` = `test`.`t1`.`id` group by `test`.`t1`.`id`) `dt`) where `dt`.`id` = `test`.`t1`.`id`
drop view v1;
drop table t1,t2;
# End of 10.3 tests # End of 10.3 tests
# #
# MDEV-18679: materialized view with SELECT S containing materialized # MDEV-18679: materialized view with SELECT S containing materialized
......
--source include/have_sequence.inc
--source include/default_optimizer_switch.inc --source include/default_optimizer_switch.inc
let $no_pushdown= set statement optimizer_switch='condition_pushdown_for_derived=off' for; let $no_pushdown= set statement optimizer_switch='condition_pushdown_for_derived=off' for;
set @@join_buffer_size=256*1024; set @@join_buffer_size=256*1024;
...@@ -3328,6 +3329,48 @@ set join_cache_level=default; ...@@ -3328,6 +3329,48 @@ set join_cache_level=default;
DROP TABLE t1,t2; DROP TABLE t1,t2;
--echo #
--echo # MDEV-21614: potentially splittable materialized derived/view
--echo # within materialized semi-join
--echo #
create table t1 (
id int not null auto_increment primary key,
a int not null
) engine=myisam;
create table t2 (
id int not null auto_increment primary key,
ro_id int not null,
flag int not null, key (ro_id)
) engine=myisam;
insert into t1(a) select seq+100 from seq_1_to_20;
insert into t2(ro_id,flag) select seq, 1 from seq_1_to_20;
insert into t2(ro_id,flag) select seq, 0 from seq_1_to_20;
create view v1 as
select t1.* from t1 left join t2 on (t1.id = t2.ro_id AND t2.flag = 1)
group by t1.id;
let $q1=
select id, a from t1 where id in (select id from v1);
eval $q1;
eval explain extended $q1;
let $q2=
select id, a from t1
where id in (select id
from (select t1.* from t1 left join t2
on (t1.id = t2.ro_id AND t2.flag = 1)
group by t1.id) dt);
eval $q2;
eval explain extended $q2;
drop view v1;
drop table t1,t2;
--echo # End of 10.3 tests --echo # End of 10.3 tests
--echo # --echo #
......
...@@ -618,7 +618,7 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp ...@@ -618,7 +618,7 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
USE test; USE test;
SHOW GRANTS FOR CURRENT_USER; SHOW GRANTS FOR CURRENT_USER;
Grants for root@localhost Grants for root@localhost
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
SET GLOBAL event_scheduler = ON; SET GLOBAL event_scheduler = ON;
CREATE TABLE events_test.event_log CREATE TABLE events_test.event_log
...@@ -632,9 +632,9 @@ GRANT create, insert, select, event ON events_test.* TO evtest1@localhost; ...@@ -632,9 +632,9 @@ GRANT create, insert, select, event ON events_test.* TO evtest1@localhost;
GRANT select,insert ON test.* TO evtest1@localhost; GRANT select,insert ON test.* TO evtest1@localhost;
SHOW GRANTS FOR evtest1@localhost; SHOW GRANTS FOR evtest1@localhost;
Grants for evtest1@localhost Grants for evtest1@localhost
GRANT USAGE ON *.* TO 'evtest1'@'localhost' IDENTIFIED BY PASSWORD '*3170F3644E31580C25DE4A08F4C07CC9A2D40C32' GRANT USAGE ON *.* TO `evtest1`@`localhost` IDENTIFIED BY PASSWORD '*3170F3644E31580C25DE4A08F4C07CC9A2D40C32'
GRANT SELECT, INSERT ON `test`.* TO 'evtest1'@'localhost' GRANT SELECT, INSERT ON `test`.* TO `evtest1`@`localhost`
GRANT SELECT, INSERT, CREATE, EVENT ON `events_test`.* TO 'evtest1'@'localhost' GRANT SELECT, INSERT, CREATE, EVENT ON `events_test`.* TO `evtest1`@`localhost`
connect e1,localhost,evtest1,ev1,events_test,$MASTER_MYPORT,$MASTER_MYSOCK; connect e1,localhost,evtest1,ev1,events_test,$MASTER_MYPORT,$MASTER_MYSOCK;
CREATE EVENT ev_sched_1823 ON SCHEDULE EVERY 2 SECOND CREATE EVENT ev_sched_1823 ON SCHEDULE EVERY 2 SECOND
DO BEGIN DO BEGIN
......
...@@ -23,9 +23,9 @@ USER() DATABASE() ...@@ -23,9 +23,9 @@ USER() DATABASE()
ev_test@localhost events_test2 ev_test@localhost events_test2
SHOW GRANTS; SHOW GRANTS;
Grants for ev_test@localhost Grants for ev_test@localhost
GRANT USAGE ON *.* TO 'ev_test'@'localhost' GRANT USAGE ON *.* TO `ev_test`@`localhost`
GRANT ALL PRIVILEGES ON `events_test`.* TO 'ev_test'@'localhost' GRANT ALL PRIVILEGES ON `events_test`.* TO `ev_test`@`localhost`
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, TRIGGER, DELETE HISTORY ON `events_test2`.* TO 'ev_test'@'localhost' GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, TRIGGER, DELETE HISTORY ON `events_test2`.* TO `ev_test`@`localhost`
"Here comes an error:"; "Here comes an error:";
SHOW EVENTS; SHOW EVENTS;
ERROR 42000: Access denied for user 'ev_test'@'localhost' to database 'events_test2' ERROR 42000: Access denied for user 'ev_test'@'localhost' to database 'events_test2'
......
...@@ -10,25 +10,25 @@ SELECT * FROM testdb.t1; ...@@ -10,25 +10,25 @@ SELECT * FROM testdb.t1;
GRANT CREATE VIEW, SHOW VIEW ON testdb.v1 TO 'show_view_tbl'@'localhost'; GRANT CREATE VIEW, SHOW VIEW ON testdb.v1 TO 'show_view_tbl'@'localhost';
SHOW GRANTS FOR 'show_view_tbl'@'localhost'; SHOW GRANTS FOR 'show_view_tbl'@'localhost';
Grants for show_view_tbl@localhost Grants for show_view_tbl@localhost
GRANT USAGE ON *.* TO 'show_view_tbl'@'localhost' GRANT USAGE ON *.* TO `show_view_tbl`@`localhost`
GRANT CREATE VIEW, SHOW VIEW ON `testdb`.`v1` TO 'show_view_tbl'@'localhost' GRANT CREATE VIEW, SHOW VIEW ON `testdb`.`v1` TO `show_view_tbl`@`localhost`
GRANT SELECT(c1) on testdb.v1 to 'select_only_c1'@localhost; GRANT SELECT(c1) on testdb.v1 to 'select_only_c1'@localhost;
SHOW GRANTS FOR 'select_only_c1'@'localhost'; SHOW GRANTS FOR 'select_only_c1'@'localhost';
Grants for select_only_c1@localhost Grants for select_only_c1@localhost
GRANT USAGE ON *.* TO 'select_only_c1'@'localhost' GRANT USAGE ON *.* TO `select_only_c1`@`localhost`
GRANT SELECT (c1) ON `testdb`.`v1` TO 'select_only_c1'@'localhost' GRANT SELECT (c1) ON `testdb`.`v1` TO `select_only_c1`@`localhost`
"after fix privs" "after fix privs"
SHOW GRANTS FOR 'show_view_tbl'@'localhost'; SHOW GRANTS FOR 'show_view_tbl'@'localhost';
Grants for show_view_tbl@localhost Grants for show_view_tbl@localhost
GRANT USAGE ON *.* TO 'show_view_tbl'@'localhost' GRANT USAGE ON *.* TO `show_view_tbl`@`localhost`
GRANT CREATE VIEW, SHOW VIEW ON `testdb`.`v1` TO 'show_view_tbl'@'localhost' GRANT CREATE VIEW, SHOW VIEW ON `testdb`.`v1` TO `show_view_tbl`@`localhost`
SHOW GRANTS FOR 'select_only_c1'@'localhost'; SHOW GRANTS FOR 'select_only_c1'@'localhost';
Grants for select_only_c1@localhost Grants for select_only_c1@localhost
GRANT USAGE ON *.* TO 'select_only_c1'@'localhost' GRANT USAGE ON *.* TO `select_only_c1`@`localhost`
GRANT SELECT (c1) ON `testdb`.`v1` TO 'select_only_c1'@'localhost' GRANT SELECT (c1) ON `testdb`.`v1` TO `select_only_c1`@`localhost`
DROP USER 'show_view_tbl'@'localhost'; DROP USER 'show_view_tbl'@'localhost';
DROP USER 'select_only_c1'@'localhost'; DROP USER 'select_only_c1'@'localhost';
......
This diff is collapsed.
...@@ -60,12 +60,12 @@ disconnect user1; ...@@ -60,12 +60,12 @@ disconnect user1;
connection default; connection default;
show grants for mysqltest_1@localhost; show grants for mysqltest_1@localhost;
Grants for mysqltest_1@localhost Grants for mysqltest_1@localhost
GRANT CREATE USER ON *.* TO 'mysqltest_1'@'localhost' GRANT CREATE USER ON *.* TO `mysqltest_1`@`localhost`
GRANT ALL PRIVILEGES ON `my\_%`.* TO 'mysqltest_1'@'localhost' WITH GRANT OPTION GRANT ALL PRIVILEGES ON `my\_%`.* TO `mysqltest_1`@`localhost` WITH GRANT OPTION
show grants for mysqltest_2@localhost; show grants for mysqltest_2@localhost;
Grants for mysqltest_2@localhost Grants for mysqltest_2@localhost
GRANT USAGE ON *.* TO 'mysqltest_2'@'localhost' GRANT USAGE ON *.* TO `mysqltest_2`@`localhost`
GRANT ALL PRIVILEGES ON `my\_1`.* TO 'mysqltest_2'@'localhost' WITH GRANT OPTION GRANT ALL PRIVILEGES ON `my\_1`.* TO `mysqltest_2`@`localhost` WITH GRANT OPTION
show grants for mysqltest_3@localhost; show grants for mysqltest_3@localhost;
ERROR 42000: There is no such grant defined for user 'mysqltest_3' on host 'localhost' ERROR 42000: There is no such grant defined for user 'mysqltest_3' on host 'localhost'
delete from mysql.user where user like 'mysqltest\_%'; delete from mysql.user where user like 'mysqltest\_%';
...@@ -89,8 +89,8 @@ disconnect user2; ...@@ -89,8 +89,8 @@ disconnect user2;
connection default; connection default;
show grants for mysqltest_1@localhost; show grants for mysqltest_1@localhost;
Grants for mysqltest_1@localhost Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
GRANT ALL PRIVILEGES ON `mysqltest\_1`.* TO 'mysqltest_1'@'localhost' WITH GRANT OPTION GRANT ALL PRIVILEGES ON `mysqltest\_1`.* TO `mysqltest_1`@`localhost` WITH GRANT OPTION
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\_%';
drop database mysqltest_1; drop database mysqltest_1;
...@@ -104,8 +104,8 @@ connect mrbad, localhost, mysqltest_1,,mysqltest; ...@@ -104,8 +104,8 @@ connect mrbad, localhost, mysqltest_1,,mysqltest;
connection mrbad; connection mrbad;
show grants for current_user(); show grants for current_user();
Grants for mysqltest_1@localhost Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
GRANT SELECT, INSERT ON `mysqltest`.* TO 'mysqltest_1'@'localhost' GRANT SELECT, INSERT ON `mysqltest`.* TO `mysqltest_1`@`localhost`
insert into t1 values (1, 'I can''t change it!'); insert into t1 values (1, 'I can''t change it!');
update t1 set data='I can change it!' where id = 1; update t1 set data='I can change it!' where id = 1;
ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for table 't1'
...@@ -199,13 +199,13 @@ host db user table_name column_name ...@@ -199,13 +199,13 @@ host db user table_name column_name
% test mysqltest_2 t2 c2 % test mysqltest_2 t2 c2
show grants for 'mysqltest_1'; show grants for 'mysqltest_1';
Grants for mysqltest_1@% Grants for mysqltest_1@%
GRANT USAGE ON *.* TO 'mysqltest_1'@'%' GRANT USAGE ON *.* TO "mysqltest_1"@"%"
show grants for 'mysqltest_2'; show grants for 'mysqltest_2';
Grants for mysqltest_2@% Grants for mysqltest_2@%
GRANT SELECT ON *.* TO 'mysqltest_2'@'%' IDENTIFIED BY PASSWORD '*BD447CBA355AF58578D3AE33BA2E2CD388BA08D1' GRANT SELECT ON *.* TO "mysqltest_2"@"%" IDENTIFIED BY PASSWORD '*BD447CBA355AF58578D3AE33BA2E2CD388BA08D1'
GRANT INSERT ON "test".* TO 'mysqltest_2'@'%' GRANT INSERT ON "test".* TO "mysqltest_2"@"%"
GRANT UPDATE (c2) ON "test"."t2" TO 'mysqltest_2'@'%' GRANT UPDATE (c2) ON "test"."t2" TO "mysqltest_2"@"%"
GRANT UPDATE ON "test"."t1" TO 'mysqltest_2'@'%' GRANT UPDATE ON "test"."t1" TO "mysqltest_2"@"%"
drop user 'mysqltest_1'; drop user 'mysqltest_1';
select host,user,password,plugin,authentication_string from mysql.user where user like 'mysqltest_%'; select host,user,password,plugin,authentication_string from mysql.user where user like 'mysqltest_%';
Host User Password plugin authentication_string Host User Password plugin authentication_string
...@@ -240,10 +240,10 @@ host db user table_name column_name ...@@ -240,10 +240,10 @@ host db user table_name column_name
% test mysqltest_1 t2 c2 % test mysqltest_1 t2 c2
show grants for 'mysqltest_1'; show grants for 'mysqltest_1';
Grants for mysqltest_1@% Grants for mysqltest_1@%
GRANT SELECT ON *.* TO 'mysqltest_1'@'%' IDENTIFIED BY PASSWORD '*BD447CBA355AF58578D3AE33BA2E2CD388BA08D1' GRANT SELECT ON *.* TO "mysqltest_1"@"%" IDENTIFIED BY PASSWORD '*BD447CBA355AF58578D3AE33BA2E2CD388BA08D1'
GRANT INSERT ON "test".* TO 'mysqltest_1'@'%' GRANT INSERT ON "test".* TO "mysqltest_1"@"%"
GRANT UPDATE (c2) ON "test"."t2" TO 'mysqltest_1'@'%' GRANT UPDATE (c2) ON "test"."t2" TO "mysqltest_1"@"%"
GRANT UPDATE ON "test"."t1" TO 'mysqltest_1'@'%' GRANT UPDATE ON "test"."t1" TO "mysqltest_1"@"%"
drop user 'mysqltest_1', 'mysqltest_3'; drop user 'mysqltest_1', 'mysqltest_3';
drop user 'mysqltest_1'; drop user 'mysqltest_1';
ERROR HY000: Operation DROP USER failed for 'mysqltest_1'@'%' ERROR HY000: Operation DROP USER failed for 'mysqltest_1'@'%'
...@@ -293,19 +293,19 @@ drop user 'mysqltest_2'; ...@@ -293,19 +293,19 @@ drop user 'mysqltest_2';
create user '%@b'@'b'; create user '%@b'@'b';
show grants for '%@b'@'b'; show grants for '%@b'@'b';
Grants for %@b@b Grants for %@b@b
GRANT USAGE ON *.* TO '%@b'@'b' GRANT USAGE ON *.* TO "%@b"@"b"
grant select on mysql.* to '%@b'@'b'; grant select on mysql.* to '%@b'@'b';
show grants for '%@b'@'b'; show grants for '%@b'@'b';
Grants for %@b@b Grants for %@b@b
GRANT USAGE ON *.* TO '%@b'@'b' GRANT USAGE ON *.* TO "%@b"@"b"
GRANT SELECT ON "mysql".* TO '%@b'@'b' GRANT SELECT ON "mysql".* TO "%@b"@"b"
rename user '%@b'@'b' to '%@a'@'a'; rename user '%@b'@'b' to '%@a'@'a';
show grants for '%@b'@'b'; show grants for '%@b'@'b';
ERROR 42000: There is no such grant defined for user '%@b' on host 'b' ERROR 42000: There is no such grant defined for user '%@b' on host 'b'
show grants for '%@a'@'a'; show grants for '%@a'@'a';
Grants for %@a@a Grants for %@a@a
GRANT USAGE ON *.* TO '%@a'@'a' GRANT USAGE ON *.* TO "%@a"@"a"
GRANT SELECT ON "mysql".* TO '%@a'@'a' GRANT SELECT ON "mysql".* TO "%@a"@"a"
drop user '%@a'@'a'; drop user '%@a'@'a';
create user mysqltest_2@localhost; create user mysqltest_2@localhost;
grant create user on *.* to mysqltest_2@localhost; grant create user on *.* to mysqltest_2@localhost;
...@@ -325,8 +325,8 @@ connect user4,localhost,mysqltest_3,,; ...@@ -325,8 +325,8 @@ connect user4,localhost,mysqltest_3,,;
connection user4; connection user4;
show grants; show grants;
Grants for mysqltest_3@localhost Grants for mysqltest_3@localhost
GRANT USAGE ON *.* TO 'mysqltest_3'@'localhost' GRANT USAGE ON *.* TO `mysqltest_3`@`localhost`
GRANT INSERT, UPDATE, DELETE ON `mysql`.* TO 'mysqltest_3'@'localhost' GRANT INSERT, UPDATE, DELETE ON `mysql`.* TO `mysqltest_3`@`localhost`
select host,user,password,plugin,authentication_string from mysql.user where user like 'mysqltest_%' ; select host,user,password,plugin,authentication_string from mysql.user where user like 'mysqltest_%' ;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 'user' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 'user'
insert into mysql.global_priv set host='%', user='mysqltest_B'; insert into mysql.global_priv set host='%', user='mysqltest_B';
...@@ -346,8 +346,8 @@ connect n1,127.0.0.1,mysqltest_1,,mysqltest_1,$MASTER_MYPORT,$MASTER_MYSOCK; ...@@ -346,8 +346,8 @@ connect n1,127.0.0.1,mysqltest_1,,mysqltest_1,$MASTER_MYPORT,$MASTER_MYSOCK;
connection n1; connection n1;
show grants for current_user(); show grants for current_user();
Grants for mysqltest_1@127.0.0.0/255.0.0.0 Grants for mysqltest_1@127.0.0.0/255.0.0.0
GRANT USAGE ON *.* TO 'mysqltest_1'@'127.0.0.0/255.0.0.0' GRANT USAGE ON *.* TO `mysqltest_1`@`127.0.0.0/255.0.0.0`
GRANT ALL PRIVILEGES ON `mysqltest_1`.`t1` TO 'mysqltest_1'@'127.0.0.0/255.0.0.0' GRANT ALL PRIVILEGES ON `mysqltest_1`.`t1` TO `mysqltest_1`@`127.0.0.0/255.0.0.0`
select * from t1; select * from t1;
i i
1 1
......
...@@ -143,9 +143,9 @@ connect conn1,localhost,mysqltest1,,; ...@@ -143,9 +143,9 @@ connect conn1,localhost,mysqltest1,,;
connection conn1; connection conn1;
SHOW GRANTS; SHOW GRANTS;
Grants for mysqltest1@% Grants for mysqltest1@%
GRANT USAGE ON *.* TO 'mysqltest1'@'%' GRANT USAGE ON *.* TO `mysqltest1`@`%`
GRANT SELECT, UPDATE ON `mysqltest\_1`.* TO 'mysqltest1'@'%' GRANT SELECT, UPDATE ON `mysqltest\_1`.* TO `mysqltest1`@`%`
GRANT UPDATE ON `mysqltest_1`.* TO 'mysqltest1'@'%' GRANT UPDATE ON `mysqltest_1`.* TO `mysqltest1`@`%`
SELECT * FROM mysqltest_1.t1; SELECT * FROM mysqltest_1.t1;
a a
disconnect conn1; disconnect conn1;
...@@ -166,20 +166,20 @@ RENAME USER 'user1'@'%' TO 'user2'@'%'; ...@@ -166,20 +166,20 @@ RENAME USER 'user1'@'%' TO 'user2'@'%';
# Show privileges after rename and BEFORE grant # Show privileges after rename and BEFORE grant
SHOW GRANTS FOR 'user2'@'%'; SHOW GRANTS FOR 'user2'@'%';
Grants for user2@% Grants for user2@%
GRANT USAGE ON *.* TO 'user2'@'%' GRANT USAGE ON *.* TO `user2`@`%`
GRANT SELECT (a), INSERT (b) ON `temp`.`t1` TO 'user2'@'%'; GRANT SELECT (a), INSERT (b) ON `temp`.`t1` TO 'user2'@'%';
# Show privileges after rename and grant # Show privileges after rename and grant
SHOW GRANTS FOR 'user2'@'%'; SHOW GRANTS FOR 'user2'@'%';
Grants for user2@% Grants for user2@%
GRANT USAGE ON *.* TO 'user2'@'%' GRANT USAGE ON *.* TO `user2`@`%`
GRANT SELECT (a), INSERT (b) ON `temp`.`t1` TO 'user2'@'%' GRANT SELECT (a), INSERT (b) ON `temp`.`t1` TO `user2`@`%`
# Connect as the renamed user # Connect as the renamed user
connect conn1, localhost, user2,,; connect conn1, localhost, user2,,;
connection conn1; connection conn1;
SHOW GRANTS; SHOW GRANTS;
Grants for user2@% Grants for user2@%
GRANT USAGE ON *.* TO 'user2'@'%' GRANT USAGE ON *.* TO `user2`@`%`
GRANT SELECT (a), INSERT (b) ON `temp`.`t1` TO 'user2'@'%' GRANT SELECT (a), INSERT (b) ON `temp`.`t1` TO `user2`@`%`
SELECT a FROM temp.t1; SELECT a FROM temp.t1;
a a
1 1
......
...@@ -8,11 +8,11 @@ connect conn_1, localhost, test,,; ...@@ -8,11 +8,11 @@ connect conn_1, localhost, test,,;
set role foo; set role foo;
show grants for test; show grants for test;
Grants for test@% Grants for test@%
GRANT foo TO 'test'@'%' GRANT `foo` TO `test`@`%`
GRANT USAGE ON *.* TO 'test'@'%' GRANT USAGE ON *.* TO `test`@`%`
show grants for foo; show grants for foo;
Grants for foo Grants for foo
GRANT USAGE ON *.* TO 'foo' GRANT USAGE ON *.* TO `foo`
show grants for foo@'%'; show grants for foo@'%';
ERROR 42000: Access denied for user 'test'@'%' to database 'mysql' ERROR 42000: Access denied for user 'test'@'%' to database 'mysql'
connection default; connection default;
...@@ -25,6 +25,101 @@ ERROR HY000: Table 'procs_priv' was not locked with LOCK TABLES ...@@ -25,6 +25,101 @@ ERROR HY000: Table 'procs_priv' was not locked with LOCK TABLES
REVOKE PROCESS ON *.* FROM u; REVOKE PROCESS ON *.* FROM u;
ERROR HY000: Table 'db' was not locked with LOCK TABLES ERROR HY000: Table 'db' was not locked with LOCK TABLES
DROP TABLE t1; DROP TABLE t1;
#
# MDEV-20076: SHOW GRANTS does not quote role names properly
#
create role 'role1';
create role 'fetch';
create role 'role-1';
create role 'rock\'n\'roll';
create user 'user1'@'localhost';
create user 'fetch'@'localhost';
create user 'user-1'@'localhost';
create user 'O\'Brien'@'localhost';
grant select on mysql.user to role1;
grant select on mysql.user to 'fetch';
grant select on mysql.user to 'role-1';
grant select on mysql.user to 'rock\'n\'roll';
GRANT 'role1' TO 'user1'@'localhost';
GRANT 'fetch' TO 'fetch'@'localhost';
GRANT 'role-1' TO 'user-1'@'localhost';
GRANT 'rock\'n\'roll' TO 'O\'Brien'@'localhost';
show grants for 'role1';
Grants for role1
GRANT USAGE ON *.* TO `role1`
GRANT SELECT ON `mysql`.`user` TO `role1`
show grants for 'fetch';
Grants for fetch
GRANT USAGE ON *.* TO `fetch`
GRANT SELECT ON `mysql`.`user` TO `fetch`
show grants for 'role-1';
Grants for role-1
GRANT USAGE ON *.* TO `role-1`
GRANT SELECT ON `mysql`.`user` TO `role-1`
show grants for 'rock\'n\'roll';
Grants for rock'n'roll
GRANT USAGE ON *.* TO `rock'n'roll`
GRANT SELECT ON `mysql`.`user` TO `rock'n'roll`
show grants for 'user1'@'localhost';
Grants for user1@localhost
GRANT `role1` TO `user1`@`localhost`
GRANT USAGE ON *.* TO `user1`@`localhost`
show grants for 'fetch'@'localhost';
Grants for fetch@localhost
GRANT `fetch` TO `fetch`@`localhost`
GRANT USAGE ON *.* TO `fetch`@`localhost`
show grants for 'user-1'@'localhost';
Grants for user-1@localhost
GRANT `role-1` TO `user-1`@`localhost`
GRANT USAGE ON *.* TO `user-1`@`localhost`
show grants for 'O\'Brien'@'localhost';
Grants for O'Brien@localhost
GRANT `rock'n'roll` TO `O'Brien`@`localhost`
GRANT USAGE ON *.* TO `O'Brien`@`localhost`
set @save_sql_quote_show_create= @@sql_quote_show_create;
set @@sql_quote_show_create= OFF;
show grants for 'role1';
Grants for role1
GRANT USAGE ON *.* TO role1
GRANT SELECT ON `mysql`.`user` TO role1
show grants for 'fetch';
Grants for fetch
GRANT USAGE ON *.* TO `fetch`
GRANT SELECT ON `mysql`.`user` TO `fetch`
show grants for 'role-1';
Grants for role-1
GRANT USAGE ON *.* TO `role-1`
GRANT SELECT ON `mysql`.`user` TO `role-1`
show grants for 'rock\'n\'roll';
Grants for rock'n'roll
GRANT USAGE ON *.* TO `rock'n'roll`
GRANT SELECT ON `mysql`.`user` TO `rock'n'roll`
show grants for 'user1'@'localhost';
Grants for user1@localhost
GRANT role1 TO user1@localhost
GRANT USAGE ON *.* TO user1@localhost
show grants for 'fetch'@'localhost';
Grants for fetch@localhost
GRANT `fetch` TO `fetch`@localhost
GRANT USAGE ON *.* TO `fetch`@localhost
show grants for 'user-1'@'localhost';
Grants for user-1@localhost
GRANT `role-1` TO `user-1`@localhost
GRANT USAGE ON *.* TO `user-1`@localhost
show grants for 'O\'Brien'@'localhost';
Grants for O'Brien@localhost
GRANT `rock'n'roll` TO `O'Brien`@localhost
GRANT USAGE ON *.* TO `O'Brien`@localhost
set @@sql_quote_show_create= @save_sql_quote_show_create;
drop role 'role1';
drop role 'fetch';
drop role 'role-1';
drop role 'rock\'n\'roll';
drop user 'user1'@'localhost';
drop user 'fetch'@'localhost';
drop user 'user-1'@'localhost';
drop user 'O\'Brien'@'localhost';
# End of 10.3 tests
create user u1@h identified with 'mysql_native_password' using 'pwd'; create user u1@h identified with 'mysql_native_password' using 'pwd';
ERROR HY000: Password hash should be a 41-digit hexadecimal number ERROR HY000: Password hash should be a 41-digit hexadecimal number
create user u1@h identified with 'mysql_native_password' using password('pwd'); create user u1@h identified with 'mysql_native_password' using password('pwd');
...@@ -61,28 +156,28 @@ update mysql.global_priv set priv=json_set(priv, '$.plugin', 'nonexistent') wher ...@@ -61,28 +156,28 @@ update mysql.global_priv set priv=json_set(priv, '$.plugin', 'nonexistent') wher
flush privileges; flush privileges;
show create user u1@h; show create user u1@h;
CREATE USER for u1@h CREATE USER for u1@h
CREATE USER 'u1'@'h' IDENTIFIED BY PASSWORD 'bad' CREATE USER `u1`@`h` IDENTIFIED BY PASSWORD 'bad'
show create user u2@h; show create user u2@h;
CREATE USER for u2@h CREATE USER for u2@h
CREATE USER 'u2'@'h' IDENTIFIED BY PASSWORD '*975B2CD4FF9AE554FE8AD33168FBFC326D2021DD' CREATE USER `u2`@`h` IDENTIFIED BY PASSWORD '*975B2CD4FF9AE554FE8AD33168FBFC326D2021DD'
show create user u3@h; show create user u3@h;
CREATE USER for u3@h CREATE USER for u3@h
CREATE USER 'u3'@'h' IDENTIFIED BY PASSWORD '*975B2CD4FF9AE554FE8AD33168FBFC326D2021DD' CREATE USER `u3`@`h` IDENTIFIED BY PASSWORD '*975B2CD4FF9AE554FE8AD33168FBFC326D2021DD'
show create user u4@h; show create user u4@h;
CREATE USER for u4@h CREATE USER for u4@h
CREATE USER 'u4'@'h' IDENTIFIED BY PASSWORD '*975B2CD4FF9AE554FE8AD33168FBFC326D2021DD' CREATE USER `u4`@`h` IDENTIFIED BY PASSWORD '*975B2CD4FF9AE554FE8AD33168FBFC326D2021DD'
show create user u5@h; show create user u5@h;
CREATE USER for u5@h CREATE USER for u5@h
CREATE USER 'u5'@'h' IDENTIFIED BY PASSWORD 'bad' CREATE USER `u5`@`h` IDENTIFIED BY PASSWORD 'bad'
show create user u6@h; show create user u6@h;
CREATE USER for u6@h CREATE USER for u6@h
CREATE USER 'u6'@'h' IDENTIFIED BY PASSWORD '78a302dd267f6044' CREATE USER `u6`@`h` IDENTIFIED BY PASSWORD '78a302dd267f6044'
show create user u7@h; show create user u7@h;
CREATE USER for u7@h CREATE USER for u7@h
CREATE USER 'u7'@'h' IDENTIFIED BY PASSWORD '78a302dd267f6044' CREATE USER `u7`@`h` IDENTIFIED BY PASSWORD '78a302dd267f6044'
show create user u8@h; show create user u8@h;
CREATE USER for u8@h CREATE USER for u8@h
CREATE USER 'u8'@'h' IDENTIFIED VIA nonexistent USING '78a302dd267f6044' CREATE USER `u8`@`h` IDENTIFIED VIA nonexistent USING '78a302dd267f6044'
grant select on *.* to u1@h; grant select on *.* to u1@h;
grant select on *.* to u2@h; grant select on *.* to u2@h;
grant select on *.* to u3@h; grant select on *.* to u3@h;
...@@ -130,3 +225,4 @@ drop user twg@'%'; ...@@ -130,3 +225,4 @@ drop user twg@'%';
insert mysql.tables_priv (host,db,user,table_name,grantor,table_priv) values ('localhost','','otto','t1','root@localhost','select'); insert mysql.tables_priv (host,db,user,table_name,grantor,table_priv) values ('localhost','','otto','t1','root@localhost','select');
flush privileges; flush privileges;
delete from mysql.tables_priv where db=''; delete from mysql.tables_priv where db='';
# End of 10.4 tests
...@@ -34,6 +34,56 @@ REVOKE EXECUTE ON PROCEDURE sp FROM u; ...@@ -34,6 +34,56 @@ REVOKE EXECUTE ON PROCEDURE sp FROM u;
REVOKE PROCESS ON *.* FROM u; REVOKE PROCESS ON *.* FROM u;
DROP TABLE t1; DROP TABLE t1;
--echo #
--echo # MDEV-20076: SHOW GRANTS does not quote role names properly
--echo #
create role 'role1';
create role 'fetch';
create role 'role-1';
create role 'rock\'n\'roll';
create user 'user1'@'localhost';
create user 'fetch'@'localhost';
create user 'user-1'@'localhost';
create user 'O\'Brien'@'localhost';
grant select on mysql.user to role1;
grant select on mysql.user to 'fetch';
grant select on mysql.user to 'role-1';
grant select on mysql.user to 'rock\'n\'roll';
GRANT 'role1' TO 'user1'@'localhost';
GRANT 'fetch' TO 'fetch'@'localhost';
GRANT 'role-1' TO 'user-1'@'localhost';
GRANT 'rock\'n\'roll' TO 'O\'Brien'@'localhost';
show grants for 'role1';
show grants for 'fetch';
show grants for 'role-1';
show grants for 'rock\'n\'roll';
show grants for 'user1'@'localhost';
show grants for 'fetch'@'localhost';
show grants for 'user-1'@'localhost';
show grants for 'O\'Brien'@'localhost';
set @save_sql_quote_show_create= @@sql_quote_show_create;
set @@sql_quote_show_create= OFF;
show grants for 'role1';
show grants for 'fetch';
show grants for 'role-1';
show grants for 'rock\'n\'roll';
show grants for 'user1'@'localhost';
show grants for 'fetch'@'localhost';
show grants for 'user-1'@'localhost';
show grants for 'O\'Brien'@'localhost';
set @@sql_quote_show_create= @save_sql_quote_show_create;
drop role 'role1';
drop role 'fetch';
drop role 'role-1';
drop role 'rock\'n\'roll';
drop user 'user1'@'localhost';
drop user 'fetch'@'localhost';
drop user 'user-1'@'localhost';
drop user 'O\'Brien'@'localhost';
--echo # End of 10.3 tests
# #
# MDEV-12321 authentication plugin: SET PASSWORD support # MDEV-12321 authentication plugin: SET PASSWORD support
# #
...@@ -131,3 +181,5 @@ drop user twg@'%'; ...@@ -131,3 +181,5 @@ drop user twg@'%';
insert mysql.tables_priv (host,db,user,table_name,grantor,table_priv) values ('localhost','','otto','t1','root@localhost','select'); insert mysql.tables_priv (host,db,user,table_name,grantor,table_priv) values ('localhost','','otto','t1','root@localhost','select');
flush privileges; flush privileges;
delete from mysql.tables_priv where db=''; delete from mysql.tables_priv where db='';
--echo # End of 10.4 tests
...@@ -14,11 +14,11 @@ connect root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK; ...@@ -14,11 +14,11 @@ connect root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK;
connection root; connection root;
show grants for current_user; show grants for current_user;
Grants for root@localhost Grants for root@localhost
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
show grants; show grants;
Grants for root@localhost Grants for root@localhost
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
create database if not exists mysqltest; create database if not exists mysqltest;
create table mysqltest.t1 (a int,b int,c int); create table mysqltest.t1 (a int,b int,c int);
...@@ -65,8 +65,8 @@ connect user1,localhost,mysqltest_1,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK; ...@@ -65,8 +65,8 @@ connect user1,localhost,mysqltest_1,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK;
connection user1; connection user1;
show grants for current_user(); show grants for current_user();
Grants for mysqltest_1@localhost Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
GRANT SELECT ON `mysqltest`.* TO 'mysqltest_1'@'localhost' GRANT SELECT ON `mysqltest`.* TO `mysqltest_1`@`localhost`
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";
Variable_name Value Variable_name Value
Qcache_queries_in_cache 6 Qcache_queries_in_cache 6
...@@ -131,7 +131,7 @@ connect unkuser,localhost,unkuser,,,$MASTER_MYPORT,$MASTER_MYSOCK; ...@@ -131,7 +131,7 @@ connect unkuser,localhost,unkuser,,,$MASTER_MYPORT,$MASTER_MYSOCK;
connection unkuser; connection unkuser;
show grants for current_user(); show grants for current_user();
Grants for @localhost Grants for @localhost
GRANT USAGE ON *.* TO ''@'localhost' GRANT USAGE ON *.* TO ``@`localhost`
connect user2,localhost,mysqltest_2,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK; connect user2,localhost,mysqltest_2,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK;
connection user2; connection user2;
select "user2"; select "user2";
...@@ -197,8 +197,8 @@ user4 ...@@ -197,8 +197,8 @@ user4
user4 user4
show grants; show grants;
Grants for mysqltest_1@localhost Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
GRANT SELECT ON `mysqltest`.* TO 'mysqltest_1'@'localhost' GRANT SELECT ON `mysqltest`.* TO `mysqltest_1`@`localhost`
select a from t1; select a from t1;
ERROR 3D000: No database selected ERROR 3D000: No database selected
select * from mysqltest.t1,test.t1; select * from mysqltest.t1,test.t1;
......
...@@ -14,11 +14,11 @@ connect root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK; ...@@ -14,11 +14,11 @@ connect root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK;
connection root; connection root;
show grants for current_user; show grants for current_user;
Grants for root@localhost Grants for root@localhost
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
show grants; show grants;
Grants for root@localhost Grants for root@localhost
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
create database if not exists mysqltest; create database if not exists mysqltest;
create table mysqltest.t1 (a int,b int,c int); create table mysqltest.t1 (a int,b int,c int);
...@@ -65,8 +65,8 @@ connect user1,localhost,mysqltest_1,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK; ...@@ -65,8 +65,8 @@ connect user1,localhost,mysqltest_1,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK;
connection user1; connection user1;
show grants for current_user(); show grants for current_user();
Grants for mysqltest_1@localhost Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
GRANT SELECT ON `mysqltest`.* TO 'mysqltest_1'@'localhost' GRANT SELECT ON `mysqltest`.* TO `mysqltest_1`@`localhost`
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";
Variable_name Value Variable_name Value
Qcache_queries_in_cache 6 Qcache_queries_in_cache 6
...@@ -131,7 +131,7 @@ connect unkuser,localhost,unkuser,,,$MASTER_MYPORT,$MASTER_MYSOCK; ...@@ -131,7 +131,7 @@ connect unkuser,localhost,unkuser,,,$MASTER_MYPORT,$MASTER_MYSOCK;
connection unkuser; connection unkuser;
show grants for current_user(); show grants for current_user();
Grants for @localhost Grants for @localhost
GRANT USAGE ON *.* TO ''@'localhost' GRANT USAGE ON *.* TO ``@`localhost`
connect user2,localhost,mysqltest_2,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK; connect user2,localhost,mysqltest_2,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK;
connection user2; connection user2;
select "user2"; select "user2";
...@@ -197,8 +197,8 @@ user4 ...@@ -197,8 +197,8 @@ user4
user4 user4
show grants; show grants;
Grants for mysqltest_1@localhost Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
GRANT SELECT ON `mysqltest`.* TO 'mysqltest_1'@'localhost' GRANT SELECT ON `mysqltest`.* TO `mysqltest_1`@`localhost`
select a from t1; select a from t1;
ERROR 3D000: No database selected ERROR 3D000: No database selected
select * from mysqltest.t1,test.t1; select * from mysqltest.t1,test.t1;
......
...@@ -1052,8 +1052,8 @@ GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE ...@@ -1052,8 +1052,8 @@ GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
'user1'@'localhost' def USAGE NO 'user1'@'localhost' def USAGE NO
show grants; show grants;
Grants for user1@localhost Grants for user1@localhost
GRANT USAGE ON *.* TO 'user1'@'localhost' GRANT USAGE ON *.* TO `user1`@`localhost`
GRANT SELECT (f1) ON `mysqltest`.`t1` TO 'user1'@'localhost' GRANT SELECT (f1) ON `mysqltest`.`t1` TO `user1`@`localhost`
connection con2; connection con2;
select * from information_schema.column_privileges order by grantee; select * from information_schema.column_privileges order by grantee;
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
...@@ -1067,8 +1067,8 @@ GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE ...@@ -1067,8 +1067,8 @@ GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
'user2'@'localhost' def USAGE NO 'user2'@'localhost' def USAGE NO
show grants; show grants;
Grants for user2@localhost Grants for user2@localhost
GRANT USAGE ON *.* TO 'user2'@'localhost' GRANT USAGE ON *.* TO `user2`@`localhost`
GRANT SELECT ON `mysqltest`.`t2` TO 'user2'@'localhost' GRANT SELECT ON `mysqltest`.`t2` TO `user2`@`localhost`
connection con3; connection con3;
select * from information_schema.column_privileges order by grantee; select * from information_schema.column_privileges order by grantee;
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
...@@ -1082,8 +1082,8 @@ GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE ...@@ -1082,8 +1082,8 @@ GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
'user3'@'localhost' def USAGE NO 'user3'@'localhost' def USAGE NO
show grants; show grants;
Grants for user3@localhost Grants for user3@localhost
GRANT USAGE ON *.* TO 'user3'@'localhost' GRANT USAGE ON *.* TO `user3`@`localhost`
GRANT SELECT ON `mysqltest`.* TO 'user3'@'localhost' GRANT SELECT ON `mysqltest`.* TO `user3`@`localhost`
connection con4; connection con4;
select * from information_schema.column_privileges where grantee like '\'user%' select * from information_schema.column_privileges where grantee like '\'user%'
order by grantee; order by grantee;
...@@ -1106,7 +1106,7 @@ GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE ...@@ -1106,7 +1106,7 @@ GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE
'user4'@'localhost' def SELECT NO 'user4'@'localhost' def SELECT NO
show grants; show grants;
Grants for user4@localhost Grants for user4@localhost
GRANT SELECT ON *.* TO 'user4'@'localhost' GRANT SELECT ON *.* TO `user4`@`localhost`
connection default; connection default;
disconnect con1; disconnect con1;
disconnect con2; disconnect con2;
......
...@@ -2,7 +2,7 @@ set @old_debug= @@debug_dbug; ...@@ -2,7 +2,7 @@ set @old_debug= @@debug_dbug;
create user user_1; create user user_1;
show grants for user_1; show grants for user_1;
Grants for user_1@% Grants for user_1@%
GRANT USAGE ON *.* TO 'user_1'@'%' GRANT USAGE ON *.* TO `user_1`@`%`
# create user # create user
create database d; create database d;
use d; use d;
......
create user user_1; create user user_1;
show grants for user_1; show grants for user_1;
Grants for user_1@% Grants for user_1@%
GRANT USAGE ON *.* TO 'user_1'@'%' GRANT USAGE ON *.* TO `user_1`@`%`
# create user # create user
create database d; create database d;
use d; use d;
......
...@@ -4,8 +4,8 @@ CREATE USER testuser@'::1' identified by '1234'; ...@@ -4,8 +4,8 @@ CREATE USER testuser@'::1' identified by '1234';
GRANT ALL ON test.* TO testuser@'::1'; GRANT ALL ON test.* TO testuser@'::1';
SHOW GRANTS FOR testuser@'::1'; SHOW GRANTS FOR testuser@'::1';
Grants for testuser@::1 Grants for testuser@::1
GRANT USAGE ON *.* TO 'testuser'@'::1' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF' GRANT USAGE ON *.* TO `testuser`@`::1` IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF'
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser'@'::1' GRANT ALL PRIVILEGES ON `test`.* TO `testuser`@`::1`
SET @nip= inet_aton('::1'); SET @nip= inet_aton('::1');
SELECT @nip; SELECT @nip;
@nip @nip
...@@ -36,8 +36,8 @@ CREATE USER testuser@'127.0.0.1' identified by '1234'; ...@@ -36,8 +36,8 @@ CREATE USER testuser@'127.0.0.1' identified by '1234';
GRANT ALL ON test.* TO testuser@'127.0.0.1'; GRANT ALL ON test.* TO testuser@'127.0.0.1';
SHOW GRANTS FOR testuser@'127.0.0.1'; SHOW GRANTS FOR testuser@'127.0.0.1';
Grants for testuser@127.0.0.1 Grants for testuser@127.0.0.1
GRANT USAGE ON *.* TO 'testuser'@'127.0.0.1' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF' GRANT USAGE ON *.* TO `testuser`@`127.0.0.1` IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF'
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser'@'127.0.0.1' GRANT ALL PRIVILEGES ON `test`.* TO `testuser`@`127.0.0.1`
SET @nip= inet_aton('127.0.0.1'); SET @nip= inet_aton('127.0.0.1');
SELECT @nip; SELECT @nip;
@nip @nip
......
...@@ -4,8 +4,8 @@ CREATE USER testuser@'127.0.0.1' identified by '1234'; ...@@ -4,8 +4,8 @@ CREATE USER testuser@'127.0.0.1' identified by '1234';
GRANT ALL ON test.* TO testuser@'127.0.0.1'; GRANT ALL ON test.* TO testuser@'127.0.0.1';
SHOW GRANTS FOR testuser@'127.0.0.1'; SHOW GRANTS FOR testuser@'127.0.0.1';
Grants for testuser@127.0.0.1 Grants for testuser@127.0.0.1
GRANT USAGE ON *.* TO 'testuser'@'127.0.0.1' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF' GRANT USAGE ON *.* TO `testuser`@`127.0.0.1` IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF'
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser'@'127.0.0.1' GRANT ALL PRIVILEGES ON `test`.* TO `testuser`@`127.0.0.1`
SET @nip= inet_aton('127.0.0.1'); SET @nip= inet_aton('127.0.0.1');
SELECT @nip; SELECT @nip;
@nip @nip
...@@ -36,8 +36,8 @@ CREATE USER testuser@'0:0:0:0:0:FFFF:127.0.0.1' identified by '1234'; ...@@ -36,8 +36,8 @@ CREATE USER testuser@'0:0:0:0:0:FFFF:127.0.0.1' identified by '1234';
GRANT ALL ON test.* TO testuser@'0:0:0:0:0:FFFF:127.0.0.1'; GRANT ALL ON test.* TO testuser@'0:0:0:0:0:FFFF:127.0.0.1';
SHOW GRANTS FOR testuser@'0:0:0:0:0:FFFF:127.0.0.1'; SHOW GRANTS FOR testuser@'0:0:0:0:0:FFFF:127.0.0.1';
Grants for testuser@0:0:0:0:0:ffff:127.0.0.1 Grants for testuser@0:0:0:0:0:ffff:127.0.0.1
GRANT USAGE ON *.* TO 'testuser'@'0:0:0:0:0:ffff:127.0.0.1' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF' GRANT USAGE ON *.* TO `testuser`@`0:0:0:0:0:ffff:127.0.0.1` IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF'
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser'@'0:0:0:0:0:ffff:127.0.0.1' GRANT ALL PRIVILEGES ON `test`.* TO `testuser`@`0:0:0:0:0:ffff:127.0.0.1`
SET @nip= inet_aton('0:0:0:0:0:FFFF:127.0.0.1'); SET @nip= inet_aton('0:0:0:0:0:FFFF:127.0.0.1');
SELECT @nip; SELECT @nip;
@nip @nip
...@@ -68,8 +68,8 @@ CREATE USER testuser@'0000:0000:0000:0000:0000:FFFF:127.0.0.1' identified by '12 ...@@ -68,8 +68,8 @@ CREATE USER testuser@'0000:0000:0000:0000:0000:FFFF:127.0.0.1' identified by '12
GRANT ALL ON test.* TO testuser@'0000:0000:0000:0000:0000:FFFF:127.0.0.1'; GRANT ALL ON test.* TO testuser@'0000:0000:0000:0000:0000:FFFF:127.0.0.1';
SHOW GRANTS FOR testuser@'0000:0000:0000:0000:0000:FFFF:127.0.0.1'; SHOW GRANTS FOR testuser@'0000:0000:0000:0000:0000:FFFF:127.0.0.1';
Grants for testuser@0000:0000:0000:0000:0000:ffff:127.0.0.1 Grants for testuser@0000:0000:0000:0000:0000:ffff:127.0.0.1
GRANT USAGE ON *.* TO 'testuser'@'0000:0000:0000:0000:0000:ffff:127.0.0.1' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF' GRANT USAGE ON *.* TO `testuser`@`0000:0000:0000:0000:0000:ffff:127.0.0.1` IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF'
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser'@'0000:0000:0000:0000:0000:ffff:127.0.0.1' GRANT ALL PRIVILEGES ON `test`.* TO `testuser`@`0000:0000:0000:0000:0000:ffff:127.0.0.1`
SET @nip= inet_aton('0000:0000:0000:0000:0000:FFFF:127.0.0.1'); SET @nip= inet_aton('0000:0000:0000:0000:0000:FFFF:127.0.0.1');
SELECT @nip; SELECT @nip;
@nip @nip
...@@ -100,8 +100,8 @@ CREATE USER testuser@'0:0000:0000:0:0000:FFFF:127.0.0.1' identified by '1234'; ...@@ -100,8 +100,8 @@ CREATE USER testuser@'0:0000:0000:0:0000:FFFF:127.0.0.1' identified by '1234';
GRANT ALL ON test.* TO testuser@'0:0000:0000:0:0000:FFFF:127.0.0.1'; GRANT ALL ON test.* TO testuser@'0:0000:0000:0:0000:FFFF:127.0.0.1';
SHOW GRANTS FOR testuser@'0:0000:0000:0:0000:FFFF:127.0.0.1'; SHOW GRANTS FOR testuser@'0:0000:0000:0:0000:FFFF:127.0.0.1';
Grants for testuser@0:0000:0000:0:0000:ffff:127.0.0.1 Grants for testuser@0:0000:0000:0:0000:ffff:127.0.0.1
GRANT USAGE ON *.* TO 'testuser'@'0:0000:0000:0:0000:ffff:127.0.0.1' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF' GRANT USAGE ON *.* TO `testuser`@`0:0000:0000:0:0000:ffff:127.0.0.1` IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF'
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser'@'0:0000:0000:0:0000:ffff:127.0.0.1' GRANT ALL PRIVILEGES ON `test`.* TO `testuser`@`0:0000:0000:0:0000:ffff:127.0.0.1`
SET @nip= inet_aton('0:0000:0000:0:0000:FFFF:127.0.0.1'); SET @nip= inet_aton('0:0000:0000:0:0000:FFFF:127.0.0.1');
SELECT @nip; SELECT @nip;
@nip @nip
...@@ -132,8 +132,8 @@ CREATE USER testuser@'0::0000:FFFF:127.0.0.1' identified by '1234'; ...@@ -132,8 +132,8 @@ CREATE USER testuser@'0::0000:FFFF:127.0.0.1' identified by '1234';
GRANT ALL ON test.* TO testuser@'0::0000:FFFF:127.0.0.1'; GRANT ALL ON test.* TO testuser@'0::0000:FFFF:127.0.0.1';
SHOW GRANTS FOR testuser@'0::0000:FFFF:127.0.0.1'; SHOW GRANTS FOR testuser@'0::0000:FFFF:127.0.0.1';
Grants for testuser@0::0000:ffff:127.0.0.1 Grants for testuser@0::0000:ffff:127.0.0.1
GRANT USAGE ON *.* TO 'testuser'@'0::0000:ffff:127.0.0.1' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF' GRANT USAGE ON *.* TO `testuser`@`0::0000:ffff:127.0.0.1` IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF'
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser'@'0::0000:ffff:127.0.0.1' GRANT ALL PRIVILEGES ON `test`.* TO `testuser`@`0::0000:ffff:127.0.0.1`
SET @nip= inet_aton('0::0000:FFFF:127.0.0.1'); SET @nip= inet_aton('0::0000:FFFF:127.0.0.1');
SELECT @nip; SELECT @nip;
@nip @nip
...@@ -165,8 +165,8 @@ CREATE USER testuser@'::FFFF:127.0.0.1' identified by '1234'; ...@@ -165,8 +165,8 @@ CREATE USER testuser@'::FFFF:127.0.0.1' identified by '1234';
GRANT ALL ON test.* TO testuser@'::FFFF:127.0.0.1'; GRANT ALL ON test.* TO testuser@'::FFFF:127.0.0.1';
SHOW GRANTS FOR testuser@'::FFFF:127.0.0.1'; SHOW GRANTS FOR testuser@'::FFFF:127.0.0.1';
Grants for testuser@::ffff:127.0.0.1 Grants for testuser@::ffff:127.0.0.1
GRANT USAGE ON *.* TO 'testuser'@'::ffff:127.0.0.1' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF' GRANT USAGE ON *.* TO `testuser`@`::ffff:127.0.0.1` IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF'
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser'@'::ffff:127.0.0.1' GRANT ALL PRIVILEGES ON `test`.* TO `testuser`@`::ffff:127.0.0.1`
SET @nip= inet_aton('::FFFF:127.0.0.1'); SET @nip= inet_aton('::FFFF:127.0.0.1');
SELECT @nip; SELECT @nip;
@nip @nip
......
...@@ -4,8 +4,8 @@ CREATE USER testuser@'::1' identified by '1234'; ...@@ -4,8 +4,8 @@ CREATE USER testuser@'::1' identified by '1234';
GRANT ALL ON test.* TO testuser@'::1'; GRANT ALL ON test.* TO testuser@'::1';
SHOW GRANTS FOR testuser@'::1'; SHOW GRANTS FOR testuser@'::1';
Grants for testuser@::1 Grants for testuser@::1
GRANT USAGE ON *.* TO 'testuser'@'::1' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF' GRANT USAGE ON *.* TO `testuser`@`::1` IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF'
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser'@'::1' GRANT ALL PRIVILEGES ON `test`.* TO `testuser`@`::1`
SET @nip= inet_aton('::1'); SET @nip= inet_aton('::1');
SELECT @nip; SELECT @nip;
@nip @nip
...@@ -37,8 +37,8 @@ CREATE USER testuser@'0000:0000:0000:0000:0000:0000:0000:0001' identified by '12 ...@@ -37,8 +37,8 @@ CREATE USER testuser@'0000:0000:0000:0000:0000:0000:0000:0001' identified by '12
GRANT ALL ON test.* TO testuser@'0000:0000:0000:0000:0000:0000:0000:0001'; GRANT ALL ON test.* TO testuser@'0000:0000:0000:0000:0000:0000:0000:0001';
SHOW GRANTS FOR testuser@'0000:0000:0000:0000:0000:0000:0000:0001'; SHOW GRANTS FOR testuser@'0000:0000:0000:0000:0000:0000:0000:0001';
Grants for testuser@0000:0000:0000:0000:0000:0000:0000:0001 Grants for testuser@0000:0000:0000:0000:0000:0000:0000:0001
GRANT USAGE ON *.* TO 'testuser'@'0000:0000:0000:0000:0000:0000:0000:0001' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF' GRANT USAGE ON *.* TO `testuser`@`0000:0000:0000:0000:0000:0000:0000:0001` IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF'
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser'@'0000:0000:0000:0000:0000:0000:0000:0001' GRANT ALL PRIVILEGES ON `test`.* TO `testuser`@`0000:0000:0000:0000:0000:0000:0000:0001`
SET @nip= inet_aton('0000:0000:0000:0000:0000:0000:0000:0001'); SET @nip= inet_aton('0000:0000:0000:0000:0000:0000:0000:0001');
SELECT @nip; SELECT @nip;
@nip @nip
...@@ -69,8 +69,8 @@ CREATE USER testuser@'0:0:0:0:0:0:0:1' identified by '1234'; ...@@ -69,8 +69,8 @@ CREATE USER testuser@'0:0:0:0:0:0:0:1' identified by '1234';
GRANT ALL ON test.* TO testuser@'0:0:0:0:0:0:0:1'; GRANT ALL ON test.* TO testuser@'0:0:0:0:0:0:0:1';
SHOW GRANTS FOR testuser@'0:0:0:0:0:0:0:1'; SHOW GRANTS FOR testuser@'0:0:0:0:0:0:0:1';
Grants for testuser@0:0:0:0:0:0:0:1 Grants for testuser@0:0:0:0:0:0:0:1
GRANT USAGE ON *.* TO 'testuser'@'0:0:0:0:0:0:0:1' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF' GRANT USAGE ON *.* TO `testuser`@`0:0:0:0:0:0:0:1` IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF'
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser'@'0:0:0:0:0:0:0:1' GRANT ALL PRIVILEGES ON `test`.* TO `testuser`@`0:0:0:0:0:0:0:1`
SET @nip= inet_aton('0:0:0:0:0:0:0:1'); SET @nip= inet_aton('0:0:0:0:0:0:0:1');
SELECT @nip; SELECT @nip;
@nip @nip
......
--lc-messages=de_DE
...@@ -51,7 +51,7 @@ DROP TABLE t1; ...@@ -51,7 +51,7 @@ DROP TABLE t1;
# #
SET lc_messages=sr_YU; SET lc_messages=sr_YU;
Warnings: Warnings:
Warning 1287 'sr_YU' is deprecated and will be removed in a future release. Please use sr_RS instead Warning 1287 'sr_YU' ist veraltet. Bitte benutzen Sie 'sr_RS'
SHOW VARIABLES LIKE 'lc_messages'; SHOW VARIABLES LIKE 'lc_messages';
Variable_name Value Variable_name Value
lc_messages sr_RS lc_messages sr_RS
......
...@@ -41,12 +41,12 @@ Note 1396 Operation ALTER USER failed for 'inexistentUser'@'localhost' ...@@ -41,12 +41,12 @@ Note 1396 Operation ALTER USER failed for 'inexistentUser'@'localhost'
# #
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' CREATE USER `user1`@`localhost`
create user user1@localhost account lock; create user user1@localhost account lock;
ERROR HY000: Operation CREATE USER failed for 'user1'@'localhost' ERROR HY000: Operation CREATE USER failed for 'user1'@'localhost'
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' CREATE USER `user1`@`localhost`
# #
# Passing multiple users should lock them all # Passing multiple users should lock them all
# #
...@@ -83,19 +83,19 @@ localhost user1 0 ...@@ -83,19 +83,19 @@ localhost user1 0
# #
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' CREATE USER `user1`@`localhost`
alter user user1@localhost account lock; alter user user1@localhost account lock;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' ACCOUNT LOCK CREATE USER `user1`@`localhost` ACCOUNT LOCK
alter user user1@localhost account unlock; alter user user1@localhost account unlock;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' CREATE USER `user1`@`localhost`
create user newuser@localhost account lock; create user newuser@localhost account lock;
show create user newuser@localhost; show create user newuser@localhost;
CREATE USER for newuser@localhost CREATE USER for newuser@localhost
CREATE USER 'newuser'@'localhost' ACCOUNT LOCK CREATE USER `newuser`@`localhost` ACCOUNT LOCK
drop user newuser@localhost; drop user newuser@localhost;
# #
# Users should be able to lock themselves # Users should be able to lock themselves
...@@ -121,7 +121,7 @@ connection con1; ...@@ -121,7 +121,7 @@ connection con1;
alter user user1@localhost account unlock; alter user user1@localhost account unlock;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' CREATE USER `user1`@`localhost`
disconnect con1; disconnect con1;
connection default; connection default;
# #
......
...@@ -4,8 +4,8 @@ create database MYSQLtest; ...@@ -4,8 +4,8 @@ create database MYSQLtest;
grant all on MySQLtest.* to mysqltest_1@localhost; grant all on MySQLtest.* to mysqltest_1@localhost;
show grants for mysqltest_1@localhost; show grants for mysqltest_1@localhost;
Grants for mysqltest_1@localhost Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
GRANT ALL PRIVILEGES ON `mysqltest`.* TO 'mysqltest_1'@'localhost' GRANT ALL PRIVILEGES ON `mysqltest`.* TO `mysqltest_1`@`localhost`
select * from db where user = 'mysqltest_1'; select * from db where user = 'mysqltest_1';
Host Db User Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Grant_priv References_priv Index_priv Alter_priv Create_tmp_table_priv Lock_tables_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Execute_priv Event_priv Trigger_priv Delete_history_priv Host Db User Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Grant_priv References_priv Index_priv Alter_priv Create_tmp_table_priv Lock_tables_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Execute_priv Event_priv Trigger_priv Delete_history_priv
localhost mysqltest mysqltest_1 Y Y Y Y Y Y N Y Y Y Y Y Y Y Y Y Y Y Y Y localhost mysqltest mysqltest_1 Y Y Y Y Y Y N Y Y Y Y Y Y Y Y Y Y Y Y Y
...@@ -13,8 +13,8 @@ update db set db = 'MYSQLtest' where db = 'mysqltest' and user = 'mysqltest_1' a ...@@ -13,8 +13,8 @@ update db set db = 'MYSQLtest' where db = 'mysqltest' and user = 'mysqltest_1' a
flush privileges; flush privileges;
show grants for mysqltest_1@localhost; show grants for mysqltest_1@localhost;
Grants for mysqltest_1@localhost Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
GRANT ALL PRIVILEGES ON `mysqltest`.* TO 'mysqltest_1'@'localhost' GRANT ALL PRIVILEGES ON `mysqltest`.* TO `mysqltest_1`@`localhost`
select * from db where user = 'mysqltest_1'; select * from db where user = 'mysqltest_1';
Host Db User Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Grant_priv References_priv Index_priv Alter_priv Create_tmp_table_priv Lock_tables_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Execute_priv Event_priv Trigger_priv Delete_history_priv Host Db User Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Grant_priv References_priv Index_priv Alter_priv Create_tmp_table_priv Lock_tables_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Execute_priv Event_priv Trigger_priv Delete_history_priv
localhost MYSQLtest mysqltest_1 Y Y Y Y Y Y N Y Y Y Y Y Y Y Y Y Y Y Y Y localhost MYSQLtest mysqltest_1 Y Y Y Y Y Y N Y Y Y Y Y Y Y Y Y Y Y Y Y
......
...@@ -313,8 +313,8 @@ Phase 7/7: Running 'FLUSH PRIVILEGES' ...@@ -313,8 +313,8 @@ Phase 7/7: Running 'FLUSH PRIVILEGES'
OK OK
SHOW GRANTS FOR 'user3'@'%'; SHOW GRANTS FOR 'user3'@'%';
Grants for user3@% Grants for user3@%
GRANT USAGE ON *.* TO 'user3'@'%' GRANT USAGE ON *.* TO `user3`@`%`
GRANT ALL PRIVILEGES ON `roelt`.`test2` TO 'user3'@'%' GRANT ALL PRIVILEGES ON `roelt`.`test2` TO `user3`@`%`
DROP USER 'user3'@'%'; DROP USER 'user3'@'%';
# End of 5.1 tests # End of 5.1 tests
The --upgrade-system-tables option was used, user tables won't be touched. The --upgrade-system-tables option was used, user tables won't be touched.
...@@ -586,8 +586,8 @@ Run mysql_upgrade with all privileges on a user ...@@ -586,8 +586,8 @@ Run mysql_upgrade with all privileges on a user
flush privileges; flush privileges;
SHOW GRANTS FOR 'user3'@'%'; SHOW GRANTS FOR 'user3'@'%';
Grants for user3@% Grants for user3@%
GRANT USAGE ON *.* TO 'user3'@'%' GRANT USAGE ON *.* TO `user3`@`%`
GRANT ALL PRIVILEGES ON `roelt`.`test2` TO 'user3'@'%' GRANT ALL PRIVILEGES ON `roelt`.`test2` TO `user3`@`%`
DROP USER 'user3'@'%'; DROP USER 'user3'@'%';
update mysql.db set Delete_history_priv='Y' where db like 'test%'; update mysql.db set Delete_history_priv='Y' where db like 'test%';
drop table mysql.global_priv; drop table mysql.global_priv;
...@@ -597,7 +597,7 @@ drop view mysql.user_bak; ...@@ -597,7 +597,7 @@ drop view mysql.user_bak;
create user 'user3'@'localhost' identified with mysql_native_password as password('a_password'); create user 'user3'@'localhost' identified with mysql_native_password as password('a_password');
show create user user3@localhost; show create user user3@localhost;
CREATE USER for user3@localhost CREATE USER for user3@localhost
CREATE USER 'user3'@'localhost' IDENTIFIED BY PASSWORD '*5DC1D11F45824A9DD613961F05C1EC1E7A1601AA' CREATE USER `user3`@`localhost` IDENTIFIED BY PASSWORD '*5DC1D11F45824A9DD613961F05C1EC1E7A1601AA'
update mysql.user set password=authentication_string, authentication_string='' where user='user3'; update mysql.user set password=authentication_string, authentication_string='' where user='user3';
select password,plugin,authentication_string from mysql.user where user='user3'; select password,plugin,authentication_string from mysql.user where user='user3';
password plugin authentication_string password plugin authentication_string
...@@ -605,7 +605,7 @@ password plugin authentication_string ...@@ -605,7 +605,7 @@ password plugin authentication_string
flush privileges; flush privileges;
show create user user3@localhost; show create user user3@localhost;
CREATE USER for user3@localhost CREATE USER for user3@localhost
CREATE USER 'user3'@'localhost' IDENTIFIED BY PASSWORD '*5DC1D11F45824A9DD613961F05C1EC1E7A1601AA' PASSWORD EXPIRE NEVER CREATE USER `user3`@`localhost` IDENTIFIED BY PASSWORD '*5DC1D11F45824A9DD613961F05C1EC1E7A1601AA' PASSWORD EXPIRE NEVER
connect con1,localhost,user3,a_password; connect con1,localhost,user3,a_password;
select current_user(); select current_user();
current_user() current_user()
...@@ -615,7 +615,7 @@ connection default; ...@@ -615,7 +615,7 @@ connection default;
# mysql_upgrade --force --silent 2>&1 # mysql_upgrade --force --silent 2>&1
show create user user3@localhost; show create user user3@localhost;
CREATE USER for user3@localhost CREATE USER for user3@localhost
CREATE USER 'user3'@'localhost' IDENTIFIED BY PASSWORD '*5DC1D11F45824A9DD613961F05C1EC1E7A1601AA' CREATE USER `user3`@`localhost` IDENTIFIED BY PASSWORD '*5DC1D11F45824A9DD613961F05C1EC1E7A1601AA'
connect con1,localhost,user3,a_password; connect con1,localhost,user3,a_password;
select current_user(); select current_user();
current_user() current_user()
......
...@@ -654,8 +654,8 @@ CREATE USER untrusted@localhost; ...@@ -654,8 +654,8 @@ CREATE USER untrusted@localhost;
GRANT SELECT ON mysqltest1.* TO untrusted@localhost; GRANT SELECT ON mysqltest1.* TO untrusted@localhost;
SHOW GRANTS FOR untrusted@localhost; SHOW GRANTS FOR untrusted@localhost;
Grants for untrusted@localhost Grants for untrusted@localhost
GRANT USAGE ON *.* TO 'untrusted'@'localhost' GRANT USAGE ON *.* TO `untrusted`@`localhost`
GRANT SELECT ON `mysqltest1`.* TO 'untrusted'@'localhost' GRANT SELECT ON `mysqltest1`.* TO `untrusted`@`localhost`
USE mysqltest1; USE mysqltest1;
CREATE TABLE t1 (a INT, b CHAR(64)); CREATE TABLE t1 (a INT, b CHAR(64));
flush logs; flush logs;
......
--- mysqld--help.result 2018-08-12 00:10:13.694793500 +0100 --- a/mysql-test/r/mysqld--help.result
+++ mysqld--help,win.reject 2018-08-16 20:31:08.353317200 +0100 +++ b/mysql-test/r/mysqld--help.result
@@ -386,7 +386,6 @@ @@ -419,7 +419,6 @@
The number of segments in a key cache The number of segments in a key cache
-L, --language=name Client error messages in given language. May be given as -L, --language=name Client error messages in given language. May be given as
a full path. Deprecated. Use --lc-messages-dir instead. a full path. Deprecated. Use --lc-messages-dir instead.
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
--lc-messages=name Set the language used for the error messages. --lc-messages=name Set the language used for the error messages.
-L, --lc-messages-dir=name -L, --lc-messages-dir=name
Directory where error messages are Directory where error messages are
@@ -608,6 +607,7 @@ @@ -647,6 +646,7 @@
Use MySQL-5.6 (instead of MariaDB-5.3) format for TIME, Use MySQL-5.6 (instead of MariaDB-5.3) format for TIME,
DATETIME, TIMESTAMP columns. DATETIME, TIMESTAMP columns.
(Defaults to on; use --skip-mysql56-temporal-format to disable.) (Defaults to on; use --skip-mysql56-temporal-format to disable.)
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
--net-buffer-length=# --net-buffer-length=#
Buffer length for TCP/IP and socket communication Buffer length for TCP/IP and socket communication
--net-read-timeout=# --net-read-timeout=#
@@ -1188,6 +1188,10 @@ @@ -1236,6 +1236,10 @@
Log slow queries to given log file. Defaults logging to Log slow queries to given log file. Defaults logging to
'hostname'-slow.log. Must be enabled to activate other 'hostname'-slow.log. Must be enabled to activate other
slow log options slow log options
...@@ -27,15 +27,15 @@ ...@@ -27,15 +27,15 @@
--socket=name Socket file to use for connection --socket=name Socket file to use for connection
--sort-buffer-size=# --sort-buffer-size=#
Each thread that needs to do a sort allocates a buffer of Each thread that needs to do a sort allocates a buffer of
@@ -1207,6 +1211,7 @@ @@ -1260,6 +1264,7 @@
EMPTY_STRING_IS_NULL, SIMULTANEOUS_ASSIGNMENT deleting or updating every row in a table.
--stack-trace Print a symbolic stack trace on failure --stack-trace Print a symbolic stack trace on failure
(Defaults to on; use --skip-stack-trace to disable.) (Defaults to on; use --skip-stack-trace to disable.)
+ --standalone Dummy option to start as a standalone program (NT). + --standalone Dummy option to start as a standalone program (NT).
--standard-compliant-cte --standard-compliant-cte
Allow only CTEs compliant to SQL standard Allow only CTEs compliant to SQL standard
(Defaults to on; use --skip-standard-compliant-cte to disable.) (Defaults to on; use --skip-standard-compliant-cte to disable.)
@@ -1277,6 +1282,11 @@ @@ -1330,6 +1335,11 @@
--thread-pool-max-threads=# --thread-pool-max-threads=#
Maximum allowed number of worker threads in the thread Maximum allowed number of worker threads in the thread
pool pool
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
--thread-pool-oversubscribe=# --thread-pool-oversubscribe=#
How many additional active worker threads in a group are How many additional active worker threads in a group are
allowed. allowed.
@@ -1315,8 +1325,8 @@ @@ -1370,8 +1380,8 @@
automatically convert it to an on-disk MyISAM or Aria automatically convert it to an on-disk MyISAM or Aria
table. table.
-t, --tmpdir=name Path for temporary files. Several paths may be specified, -t, --tmpdir=name Path for temporary files. Several paths may be specified,
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
--transaction-alloc-block-size=# --transaction-alloc-block-size=#
Allocation block size for transactions to be stored in Allocation block size for transactions to be stored in
binary log binary log
@@ -1451,7 +1461,6 @@ @@ -1513,7 +1523,6 @@
key-cache-division-limit 100 key-cache-division-limit 100
key-cache-file-hash-size 512 key-cache-file-hash-size 512
key-cache-segments 0 key-cache-segments 0
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
lc-messages en_US lc-messages en_US
lc-messages-dir MYSQL_SHAREDIR/ lc-messages-dir MYSQL_SHAREDIR/
lc-time-names en_US lc-time-names en_US
@@ -1523,6 +1532,7 @@ @@ -1587,6 +1596,7 @@
myisam-stats-method NULLS_UNEQUAL myisam-stats-method NULLS_UNEQUAL
myisam-use-mmap FALSE myisam-use-mmap FALSE
mysql56-temporal-format TRUE mysql56-temporal-format TRUE
...@@ -74,15 +74,15 @@ ...@@ -74,15 +74,15 @@
net-buffer-length 16384 net-buffer-length 16384
net-read-timeout 30 net-read-timeout 30
net-retry-count 10 net-retry-count 10
@@ -1660,6 +1670,7 @@ @@ -1726,6 +1736,7 @@
slave-type-conversions slave-type-conversions
slow-launch-time 2 slow-launch-time 2
slow-query-log FALSE slow-query-log FALSE
+slow-start-timeout 15000 +slow-start-timeout 15000
sort-buffer-size 2097152 sort-buffer-size 2097152
sql-mode STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION sql-mode STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
stack-trace TRUE sql-safe-updates FALSE
@@ -1674,9 +1685,9 @@ @@ -1741,10 +1752,10 @@
sync-relay-log-info 10000 sync-relay-log-info 10000
sysdate-is-now FALSE sysdate-is-now FALSE
system-versioning-alter-history ERROR system-versioning-alter-history ERROR
...@@ -90,11 +90,13 @@ ...@@ -90,11 +90,13 @@
+table-cache 2000 +table-cache 2000
table-definition-cache 400 table-definition-cache 400
-table-open-cache 421 -table-open-cache 421
-table-open-cache-instances 1
+table-open-cache 2000 +table-open-cache 2000
table-open-cache-instances 8 +table-open-cache-instances 8
tc-heuristic-recover OFF tc-heuristic-recover OFF
tcp-keepalive-interval 0 tcp-keepalive-interval 0
@@ -1686,6 +1697,8 @@ tcp-keepalive-probes 0
@@ -1753,6 +1764,8 @@
thread-cache-size 151 thread-cache-size 151
thread-pool-idle-timeout 60 thread-pool-idle-timeout 60
thread-pool-max-threads 65536 thread-pool-max-threads 65536
......
...@@ -1755,7 +1755,7 @@ system-versioning-alter-history ERROR ...@@ -1755,7 +1755,7 @@ system-versioning-alter-history ERROR
table-cache 421 table-cache 421
table-definition-cache 400 table-definition-cache 400
table-open-cache 421 table-open-cache 421
table-open-cache-instances 8 table-open-cache-instances 1
tc-heuristic-recover OFF tc-heuristic-recover OFF
tcp-keepalive-interval 0 tcp-keepalive-interval 0
tcp-keepalive-probes 0 tcp-keepalive-probes 0
......
...@@ -10,8 +10,8 @@ grant select,alter on mysqltest_1.* to mysqltest_1@localhost; ...@@ -10,8 +10,8 @@ grant select,alter on mysqltest_1.* to mysqltest_1@localhost;
connect conn1,localhost,mysqltest_1,,mysqltest_1; connect conn1,localhost,mysqltest_1,,mysqltest_1;
show grants for current_user; show grants for current_user;
Grants for mysqltest_1@localhost Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
GRANT SELECT, ALTER ON `mysqltest_1`.* TO 'mysqltest_1'@'localhost' GRANT SELECT, ALTER ON `mysqltest_1`.* TO `mysqltest_1`@`localhost`
alter table t1 add b int; alter table t1 add b int;
alter table t1 drop partition p2; alter table t1 drop partition p2;
ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 't1'
......
...@@ -1015,3 +1015,47 @@ select * from t1 partition (p1); ...@@ -1015,3 +1015,47 @@ select * from t1 partition (p1);
d d
2000-01-01 00:00:01.000000 2000-01-01 00:00:01.000000
DROP TABLE t1, t2; DROP TABLE t1, t2;
#
# MDEV-21195 INSERT chooses wrong partition for RANGE partitioning by DECIMAL column
#
create or replace table t (
d decimal(2,1)) partition by range (d)
(partition p1 values less than (10));
insert into t values (9.9);
create or replace table t (
d decimal(2,1)) partition by range (d)
(partition p1 values less than (10),
partition p2 values less than (20));
insert into t values (9.9);
select * from t partition (p1);
d
9.9
select * from t partition (p2);
d
create or replace table t (
d decimal(2,1)) partition by range (d)
(partition p1 values less than (-3));
insert into t values (-3.3);
create or replace table t (
d decimal(2,1)) partition by range (d+1)
(partition p1 values less than (10),
partition p2 values less than (20));
insert into t values (8.9);
select * from t partition (p1);
d
8.9
select * from t partition (p2);
d
set time_zone='+00:00';
create or replace table t (
d timestamp(1)) partition by range (unix_timestamp(d))
(partition p1 values less than (1577836800),
partition p2 values less than (2000000000));
insert into t values (from_unixtime(1577836799.9));
select * from t partition (p1);
d
2019-12-31 23:59:59.9
select * from t partition (p2);
d
set time_zone=default;
drop table t;
...@@ -1001,3 +1001,49 @@ select * from t1 partition (p0); ...@@ -1001,3 +1001,49 @@ select * from t1 partition (p0);
select * from t1 partition (p1); select * from t1 partition (p1);
DROP TABLE t1, t2; DROP TABLE t1, t2;
--echo #
--echo # MDEV-21195 INSERT chooses wrong partition for RANGE partitioning by DECIMAL column
--echo #
create or replace table t (
d decimal(2,1)) partition by range (d)
(partition p1 values less than (10));
insert into t values (9.9);
create or replace table t (
d decimal(2,1)) partition by range (d)
(partition p1 values less than (10),
partition p2 values less than (20));
insert into t values (9.9);
select * from t partition (p1);
select * from t partition (p2);
create or replace table t (
d decimal(2,1)) partition by range (d)
(partition p1 values less than (-3));
insert into t values (-3.3);
create or replace table t (
d decimal(2,1)) partition by range (d+1)
(partition p1 values less than (10),
partition p2 values less than (20));
insert into t values (8.9);
select * from t partition (p1);
select * from t partition (p2);
set time_zone='+00:00';
create or replace table t (
d timestamp(1)) partition by range (unix_timestamp(d))
(partition p1 values less than (1577836800),
partition p2 values less than (2000000000));
insert into t values (from_unixtime(1577836799.9));
select * from t partition (p1);
select * from t partition (p2);
set time_zone=default;
drop table t;
...@@ -103,32 +103,32 @@ drop user user1@localhost; ...@@ -103,32 +103,32 @@ drop user user1@localhost;
create user user1@localhost; create user user1@localhost;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' CREATE USER `user1`@`localhost`
alter user user1@localhost password expire; alter user user1@localhost password expire;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' PASSWORD EXPIRE CREATE USER `user1`@`localhost` PASSWORD EXPIRE
set password for user1@localhost= password(''); set password for user1@localhost= password('');
alter user user1@localhost password expire default; alter user user1@localhost password expire default;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' CREATE USER `user1`@`localhost`
alter user user1@localhost password expire never; alter user user1@localhost password expire never;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' PASSWORD EXPIRE NEVER CREATE USER `user1`@`localhost` PASSWORD EXPIRE NEVER
alter user user1@localhost password expire interval 123 day; alter user user1@localhost password expire interval 123 day;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' PASSWORD EXPIRE INTERVAL 123 DAY CREATE USER `user1`@`localhost` PASSWORD EXPIRE INTERVAL 123 DAY
alter user user1@localhost password expire; alter user user1@localhost password expire;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' PASSWORD EXPIRE CREATE USER `user1`@`localhost` PASSWORD EXPIRE
set password for user1@localhost= password(''); set password for user1@localhost= password('');
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' PASSWORD EXPIRE INTERVAL 123 DAY CREATE USER `user1`@`localhost` PASSWORD EXPIRE INTERVAL 123 DAY
drop user user1@localhost; drop user user1@localhost;
# #
# Incorrect INTERVAL values should be rejected # Incorrect INTERVAL values should be rejected
...@@ -141,52 +141,52 @@ ERROR HY000: Incorrect DAY value: '0' ...@@ -141,52 +141,52 @@ ERROR HY000: Incorrect DAY value: '0'
create user user1@localhost; create user user1@localhost;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' CREATE USER `user1`@`localhost`
flush privileges; flush privileges;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' PASSWORD EXPIRE NEVER CREATE USER `user1`@`localhost` PASSWORD EXPIRE NEVER
alter user user1@localhost password expire; alter user user1@localhost password expire;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' PASSWORD EXPIRE CREATE USER `user1`@`localhost` PASSWORD EXPIRE
flush privileges; flush privileges;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' PASSWORD EXPIRE CREATE USER `user1`@`localhost` PASSWORD EXPIRE
set password for user1@localhost= password(''); set password for user1@localhost= password('');
alter user user1@localhost password expire default; alter user user1@localhost password expire default;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' CREATE USER `user1`@`localhost`
flush privileges; flush privileges;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' PASSWORD EXPIRE NEVER CREATE USER `user1`@`localhost` PASSWORD EXPIRE NEVER
alter user user1@localhost password expire never; alter user user1@localhost password expire never;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' PASSWORD EXPIRE NEVER CREATE USER `user1`@`localhost` PASSWORD EXPIRE NEVER
flush privileges; flush privileges;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' PASSWORD EXPIRE NEVER CREATE USER `user1`@`localhost` PASSWORD EXPIRE NEVER
alter user user1@localhost password expire interval 123 day; alter user user1@localhost password expire interval 123 day;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' PASSWORD EXPIRE INTERVAL 123 DAY CREATE USER `user1`@`localhost` PASSWORD EXPIRE INTERVAL 123 DAY
flush privileges; flush privileges;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' PASSWORD EXPIRE NEVER CREATE USER `user1`@`localhost` PASSWORD EXPIRE NEVER
alter user user1@localhost password expire; alter user user1@localhost password expire;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' PASSWORD EXPIRE CREATE USER `user1`@`localhost` PASSWORD EXPIRE
flush privileges; flush privileges;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' PASSWORD EXPIRE CREATE USER `user1`@`localhost` PASSWORD EXPIRE
set global disconnect_on_expired_password=ON; set global disconnect_on_expired_password=ON;
connect(localhost,user1,,test,MYSQL_PORT,MYSQL_SOCK); connect(localhost,user1,,test,MYSQL_PORT,MYSQL_SOCK);
connect con1,localhost,user1; connect con1,localhost,user1;
......
...@@ -178,18 +178,18 @@ connection default; ...@@ -178,18 +178,18 @@ connection default;
disconnect proxy_admin_con; disconnect proxy_admin_con;
SHOW GRANTS FOR grant_plug; SHOW GRANTS FOR grant_plug;
Grants for grant_plug@% Grants for grant_plug@%
GRANT ALL PRIVILEGES ON *.* TO 'grant_plug'@'%' IDENTIFIED VIA test_plugin_server USING 'grant_plug_dest' GRANT ALL PRIVILEGES ON *.* TO `grant_plug`@`%` IDENTIFIED VIA test_plugin_server USING 'grant_plug_dest'
GRANT PROXY ON 'future_user'@'%' TO 'grant_plug'@'%' GRANT PROXY ON 'future_user'@'%' TO 'grant_plug'@'%'
REVOKE PROXY ON future_user FROM grant_plug; REVOKE PROXY ON future_user FROM grant_plug;
SHOW GRANTS FOR grant_plug; SHOW GRANTS FOR grant_plug;
Grants for grant_plug@% Grants for grant_plug@%
GRANT ALL PRIVILEGES ON *.* TO 'grant_plug'@'%' IDENTIFIED VIA test_plugin_server USING 'grant_plug_dest' GRANT ALL PRIVILEGES ON *.* TO `grant_plug`@`%` IDENTIFIED VIA test_plugin_server USING 'grant_plug_dest'
## testing drop user ## testing drop user
CREATE USER test_drop@localhost; CREATE USER test_drop@localhost;
GRANT PROXY ON future_user TO test_drop@localhost; GRANT PROXY ON future_user TO test_drop@localhost;
SHOW GRANTS FOR test_drop@localhost; SHOW GRANTS FOR test_drop@localhost;
Grants for test_drop@localhost Grants for test_drop@localhost
GRANT USAGE ON *.* TO 'test_drop'@'localhost' GRANT USAGE ON *.* TO `test_drop`@`localhost`
GRANT PROXY ON 'future_user'@'%' TO 'test_drop'@'localhost' GRANT PROXY ON 'future_user'@'%' TO 'test_drop'@'localhost'
DROP USER test_drop@localhost; DROP USER test_drop@localhost;
SELECT * FROM mysql.proxies_priv WHERE Host = 'test_drop' AND User = 'localhost'; SELECT * FROM mysql.proxies_priv WHERE Host = 'test_drop' AND User = 'localhost';
......
...@@ -11,8 +11,8 @@ grant select on mysqltest.t9 to second_user@localhost ...@@ -11,8 +11,8 @@ grant select on mysqltest.t9 to second_user@localhost
identified by 'looser' ; identified by 'looser' ;
show grants for second_user@localhost ; show grants for second_user@localhost ;
Grants for second_user@localhost Grants for second_user@localhost
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3' GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost' GRANT SELECT ON `mysqltest`.`t9` TO `second_user`@`localhost`
connect con3,localhost,second_user,looser,mysqltest; connect con3,localhost,second_user,looser,mysqltest;
connection con3; connection con3;
select current_user(); select current_user();
...@@ -20,8 +20,8 @@ current_user() ...@@ -20,8 +20,8 @@ current_user()
second_user@localhost second_user@localhost
show grants for current_user(); show grants for current_user();
Grants for second_user@localhost Grants for second_user@localhost
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3' GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost' GRANT SELECT ON `mysqltest`.`t9` TO `second_user`@`localhost`
prepare s_t9 from 'select c1 as my_col prepare s_t9 from 'select c1 as my_col
from t9 where c1= 1' ; from t9 where c1= 1' ;
execute s_t9 ; execute s_t9 ;
...@@ -34,21 +34,21 @@ grant select on mysqltest.t1 to second_user@localhost ...@@ -34,21 +34,21 @@ grant select on mysqltest.t1 to second_user@localhost
identified by 'looser' ; identified by 'looser' ;
show grants for second_user@localhost ; show grants for second_user@localhost ;
Grants for second_user@localhost Grants for second_user@localhost
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3' GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost' GRANT SELECT ON `mysqltest`.`t9` TO `second_user`@`localhost`
GRANT SELECT ON `mysqltest`.`t1` TO 'second_user'@'localhost' GRANT SELECT ON `mysqltest`.`t1` TO `second_user`@`localhost`
drop table mysqltest.t9 ; drop table mysqltest.t9 ;
show grants for second_user@localhost ; show grants for second_user@localhost ;
Grants for second_user@localhost Grants for second_user@localhost
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3' GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost' GRANT SELECT ON `mysqltest`.`t9` TO `second_user`@`localhost`
GRANT SELECT ON `mysqltest`.`t1` TO 'second_user'@'localhost' GRANT SELECT ON `mysqltest`.`t1` TO `second_user`@`localhost`
connection con3; connection con3;
show grants for second_user@localhost ; show grants for second_user@localhost ;
Grants for second_user@localhost Grants for second_user@localhost
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3' GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost' GRANT SELECT ON `mysqltest`.`t9` TO `second_user`@`localhost`
GRANT SELECT ON `mysqltest`.`t1` TO 'second_user'@'localhost' GRANT SELECT ON `mysqltest`.`t1` TO `second_user`@`localhost`
prepare s_t1 from 'select a as my_col from t1' ; prepare s_t1 from 'select a as my_col from t1' ;
execute s_t1 ; execute s_t1 ;
my_col my_col
...@@ -63,13 +63,13 @@ connection default; ...@@ -63,13 +63,13 @@ connection default;
revoke all privileges on mysqltest.t1 from second_user@localhost; revoke all privileges on mysqltest.t1 from second_user@localhost;
show grants for second_user@localhost ; show grants for second_user@localhost ;
Grants for second_user@localhost Grants for second_user@localhost
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3' GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost' GRANT SELECT ON `mysqltest`.`t9` TO `second_user`@`localhost`
connection con3; connection con3;
show grants for second_user@localhost ; show grants for second_user@localhost ;
Grants for second_user@localhost Grants for second_user@localhost
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3' GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost' GRANT SELECT ON `mysqltest`.`t9` TO `second_user`@`localhost`
execute s_t1 ; execute s_t1 ;
ERROR 42000: SELECT command denied to user 'second_user'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'second_user'@'localhost' for table 't1'
connection default; connection default;
...@@ -77,7 +77,7 @@ disconnect con3; ...@@ -77,7 +77,7 @@ disconnect con3;
revoke all privileges, grant option from second_user@localhost ; revoke all privileges, grant option from second_user@localhost ;
show grants for second_user@localhost ; show grants for second_user@localhost ;
Grants for second_user@localhost Grants for second_user@localhost
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3' GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
drop user second_user@localhost ; drop user second_user@localhost ;
commit ; commit ;
show grants for second_user@localhost ; show grants for second_user@localhost ;
......
...@@ -168,7 +168,7 @@ user() current_user() ...@@ -168,7 +168,7 @@ user() current_user()
foo@localhost foo@localhost foo@localhost foo@localhost
show grants; show grants;
Grants for foo@localhost Grants for foo@localhost
GRANT USAGE ON *.* TO 'foo'@'localhost' IDENTIFIED BY PASSWORD '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB' GRANT USAGE ON *.* TO `foo`@`localhost` IDENTIFIED BY PASSWORD '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB'
disconnect foo; disconnect foo;
connection default; connection default;
select user,host,password,plugin,authentication_string from mysql.user where user='foo'; select user,host,password,plugin,authentication_string from mysql.user where user='foo';
......
create user foo; create user foo;
show create user foo; show create user foo;
CREATE USER for foo@% CREATE USER for foo@%
CREATE USER 'foo'@'%' CREATE USER `foo`@`%`
create user foo@test; create user foo@test;
show create user foo@test; show create user foo@test;
CREATE USER for foo@test CREATE USER for foo@test
CREATE USER 'foo'@'test' CREATE USER `foo`@`test`
create user foo2@test identified by 'password'; create user foo2@test identified by 'password';
show create user foo2@test; show create user foo2@test;
CREATE USER for foo2@test CREATE USER for foo2@test
CREATE USER 'foo2'@'test' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' CREATE USER `foo2`@`test` IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'
alter user foo2@test identified with 'mysql_old_password' as '0123456789ABCDEF'; alter user foo2@test identified with 'mysql_old_password' as '0123456789ABCDEF';
show create user foo2@test; show create user foo2@test;
CREATE USER for foo2@test CREATE USER for foo2@test
CREATE USER 'foo2'@'test' IDENTIFIED BY PASSWORD '0123456789ABCDEF' CREATE USER `foo2`@`test` IDENTIFIED BY PASSWORD '0123456789ABCDEF'
create user foo3@test require SSL; create user foo3@test require SSL;
show create user foo3@test; show create user foo3@test;
CREATE USER for foo3@test CREATE USER for foo3@test
CREATE USER 'foo3'@'test' REQUIRE SSL CREATE USER `foo3`@`test` REQUIRE SSL
create user foo4@test require cipher 'text' issuer 'foo_issuer' subject 'foo_subject'; create user foo4@test require cipher 'text' issuer 'foo_issuer' subject 'foo_subject';
show create user foo4@test; show create user foo4@test;
CREATE USER for foo4@test CREATE USER for foo4@test
CREATE USER 'foo4'@'test' REQUIRE ISSUER 'foo_issuer' SUBJECT 'foo_subject' CIPHER 'text' CREATE USER `foo4`@`test` REQUIRE ISSUER 'foo_issuer' SUBJECT 'foo_subject' CIPHER 'text'
create user foo5@test require SSL create user foo5@test require SSL
with MAX_QUERIES_PER_HOUR 10 with MAX_QUERIES_PER_HOUR 10
MAX_UPDATES_PER_HOUR 20 MAX_UPDATES_PER_HOUR 20
...@@ -30,7 +30,7 @@ MAX_USER_CONNECTIONS 40 ...@@ -30,7 +30,7 @@ MAX_USER_CONNECTIONS 40
MAX_STATEMENT_TIME 0.5; MAX_STATEMENT_TIME 0.5;
show create user foo5@test; show create user foo5@test;
CREATE USER for foo5@test CREATE USER for foo5@test
CREATE USER 'foo5'@'test' REQUIRE SSL WITH MAX_QUERIES_PER_HOUR 10 MAX_UPDATES_PER_HOUR 20 MAX_CONNECTIONS_PER_HOUR 30 MAX_USER_CONNECTIONS 40 MAX_STATEMENT_TIME 0.500000 CREATE USER `foo5`@`test` REQUIRE SSL WITH MAX_QUERIES_PER_HOUR 10 MAX_UPDATES_PER_HOUR 20 MAX_CONNECTIONS_PER_HOUR 30 MAX_USER_CONNECTIONS 40 MAX_STATEMENT_TIME 0.500000
drop user foo5@test; drop user foo5@test;
drop user foo4@test; drop user foo4@test;
drop user foo3@test; drop user foo3@test;
......
...@@ -94,21 +94,21 @@ ERROR HY000: The MariaDB server is running with the --skip-grant-tables option s ...@@ -94,21 +94,21 @@ ERROR HY000: The MariaDB server is running with the --skip-grant-tables option s
flush privileges; flush privileges;
show create user root@localhost; show create user root@localhost;
CREATE USER for root@localhost CREATE USER for root@localhost
CREATE USER 'root'@'localhost' CREATE USER `root`@`localhost`
show create user bar@foo; show create user bar@foo;
CREATE USER for bar@foo CREATE USER for bar@foo
CREATE USER 'bar'@'foo' CREATE USER `bar`@`foo`
show create user baz@baz; show create user baz@baz;
CREATE USER for baz@baz CREATE USER for baz@baz
CREATE USER 'baz'@'baz' IDENTIFIED VIA baz CREATE USER `baz`@`baz` IDENTIFIED VIA baz
set password for bar@foo = password("pass word"); set password for bar@foo = password("pass word");
show create user bar@foo; show create user bar@foo;
CREATE USER for bar@foo CREATE USER for bar@foo
CREATE USER 'bar'@'foo' IDENTIFIED BY PASSWORD '*EDBBEA7F4E7B5D8B0BC8D7AC5D1936FB7DA10611' CREATE USER `bar`@`foo` IDENTIFIED BY PASSWORD '*EDBBEA7F4E7B5D8B0BC8D7AC5D1936FB7DA10611'
alter user baz@baz identified with mysql_native_password as password("baz"); alter user baz@baz identified with mysql_native_password as password("baz");
show create user baz@baz; show create user baz@baz;
CREATE USER for baz@baz CREATE USER for baz@baz
CREATE USER 'baz'@'baz' IDENTIFIED BY PASSWORD '*E52096EF8EB0240275A7FE9E069101C33F98CF07' CREATE USER `baz`@`baz` IDENTIFIED BY PASSWORD '*E52096EF8EB0240275A7FE9E069101C33F98CF07'
drop user bar@foo; drop user bar@foo;
drop user baz@baz; drop user baz@baz;
# restart # restart
...@@ -2,8 +2,8 @@ CREATE USER mysqltest_1@'127.0.0.1/255.255.255.255'; ...@@ -2,8 +2,8 @@ CREATE USER mysqltest_1@'127.0.0.1/255.255.255.255';
GRANT ALL ON test.* TO mysqltest_1@'127.0.0.1/255.255.255.255'; GRANT ALL ON test.* TO mysqltest_1@'127.0.0.1/255.255.255.255';
SHOW GRANTS FOR mysqltest_1@'127.0.0.1/255.255.255.255'; SHOW GRANTS FOR mysqltest_1@'127.0.0.1/255.255.255.255';
Grants for mysqltest_1@127.0.0.1/255.255.255.255 Grants for mysqltest_1@127.0.0.1/255.255.255.255
GRANT USAGE ON *.* TO 'mysqltest_1'@'127.0.0.1/255.255.255.255' GRANT USAGE ON *.* TO `mysqltest_1`@`127.0.0.1/255.255.255.255`
GRANT ALL PRIVILEGES ON `test`.* TO 'mysqltest_1'@'127.0.0.1/255.255.255.255' GRANT ALL PRIVILEGES ON `test`.* TO `mysqltest_1`@`127.0.0.1/255.255.255.255`
REVOKE ALL ON test.* FROM mysqltest_1@'127.0.0.1/255.255.255.255'; REVOKE ALL ON test.* FROM mysqltest_1@'127.0.0.1/255.255.255.255';
DROP USER mysqltest_1@'127.0.0.1/255.255.255.255'; DROP USER mysqltest_1@'127.0.0.1/255.255.255.255';
connect con1, localhost, root, , test, $MASTER_MYPORT, ; connect con1, localhost, root, , test, $MASTER_MYPORT, ;
......
...@@ -195,14 +195,14 @@ grant insert on t1 to usera@localhost; ...@@ -195,14 +195,14 @@ grant insert on t1 to usera@localhost;
grant execute on procedure sptest.p1 to usera@localhost; grant execute on procedure sptest.p1 to usera@localhost;
show grants for usera@localhost; show grants for usera@localhost;
Grants for usera@localhost Grants for usera@localhost
GRANT USAGE ON *.* TO 'usera'@'localhost' GRANT USAGE ON *.* TO `usera`@`localhost`
GRANT INSERT ON `test`.`t1` TO 'usera'@'localhost' GRANT INSERT ON `test`.`t1` TO `usera`@`localhost`
GRANT EXECUTE ON PROCEDURE `sptest`.`p1` TO 'usera'@'localhost' GRANT EXECUTE ON PROCEDURE `sptest`.`p1` TO `usera`@`localhost`
grant execute on procedure sptest.p1 to userc@localhost with grant option; grant execute on procedure sptest.p1 to userc@localhost with grant option;
show grants for userc@localhost; show grants for userc@localhost;
Grants for userc@localhost Grants for userc@localhost
GRANT USAGE ON *.* TO 'userc'@'localhost' GRANT USAGE ON *.* TO `userc`@`localhost`
GRANT EXECUTE ON PROCEDURE `sptest`.`p1` TO 'userc'@'localhost' WITH GRANT OPTION GRANT EXECUTE ON PROCEDURE `sptest`.`p1` TO `userc`@`localhost` WITH GRANT OPTION
connect con2usera,localhost,usera,,; connect con2usera,localhost,usera,,;
connect con3userb,localhost,userb,,; connect con3userb,localhost,userb,,;
connect con4userc,localhost,userc,,; connect con4userc,localhost,userc,,;
...@@ -239,18 +239,18 @@ userb@localhost 4 ...@@ -239,18 +239,18 @@ userb@localhost 4
grant all privileges on procedure sptest.p1 to userc@localhost; grant all privileges on procedure sptest.p1 to userc@localhost;
show grants for userc@localhost; show grants for userc@localhost;
Grants for userc@localhost Grants for userc@localhost
GRANT USAGE ON *.* TO 'userc'@'localhost' GRANT USAGE ON *.* TO `userc`@`localhost`
GRANT EXECUTE, ALTER ROUTINE ON PROCEDURE `sptest`.`p1` TO 'userc'@'localhost' WITH GRANT OPTION GRANT EXECUTE, ALTER ROUTINE ON PROCEDURE `sptest`.`p1` TO `userc`@`localhost` WITH GRANT OPTION
show grants for userb@localhost; show grants for userb@localhost;
Grants for userb@localhost Grants for userb@localhost
GRANT USAGE ON *.* TO 'userb'@'localhost' GRANT USAGE ON *.* TO `userb`@`localhost`
GRANT EXECUTE ON PROCEDURE `sptest`.`p1` TO 'userb'@'localhost' GRANT EXECUTE ON PROCEDURE `sptest`.`p1` TO `userb`@`localhost`
connection con4userc; connection con4userc;
revoke all privileges on procedure sptest.p1 from userb@localhost; revoke all privileges on procedure sptest.p1 from userb@localhost;
connection con1root; connection con1root;
show grants for userb@localhost; show grants for userb@localhost;
Grants for userb@localhost Grants for userb@localhost
GRANT USAGE ON *.* TO 'userb'@'localhost' GRANT USAGE ON *.* TO `userb`@`localhost`
disconnect con4userc; disconnect con4userc;
disconnect con3userb; disconnect con3userb;
disconnect con2usera; disconnect con2usera;
...@@ -721,14 +721,14 @@ user() current_user() ...@@ -721,14 +721,14 @@ user() current_user()
foo@localhost foo@local_ost foo@localhost foo@local_ost
show grants; show grants;
Grants for foo@local_ost Grants for foo@local_ost
GRANT USAGE ON *.* TO 'foo'@'local_ost' GRANT USAGE ON *.* TO `foo`@`local_ost`
GRANT CREATE ROUTINE ON `foodb`.* TO 'foo'@'local_ost' GRANT CREATE ROUTINE ON `foodb`.* TO `foo`@`local_ost`
create procedure fooproc() select 'i am fooproc'; create procedure fooproc() select 'i am fooproc';
show grants; show grants;
Grants for foo@local_ost Grants for foo@local_ost
GRANT USAGE ON *.* TO 'foo'@'local_ost' GRANT USAGE ON *.* TO `foo`@`local_ost`
GRANT CREATE ROUTINE ON `foodb`.* TO 'foo'@'local_ost' GRANT CREATE ROUTINE ON `foodb`.* TO `foo`@`local_ost`
GRANT EXECUTE, ALTER ROUTINE ON PROCEDURE `test`.`fooproc` TO 'foo'@'local_ost' GRANT EXECUTE, ALTER ROUTINE ON PROCEDURE `test`.`fooproc` TO `foo`@`local_ost`
disconnect con1; disconnect con1;
connection default; connection default;
drop user foo@local_ost; drop user foo@local_ost;
...@@ -773,12 +773,12 @@ set password=password('foobar'); ...@@ -773,12 +773,12 @@ set password=password('foobar');
create procedure sp1() select 1; create procedure sp1() select 1;
show grants; show grants;
Grants for u1@localhost Grants for u1@localhost
GRANT ALL PRIVILEGES ON *.* TO 'u1'@'localhost' IDENTIFIED BY PASSWORD '*9B500343BC52E2911172EB52AE5CF4847604C6E5' WITH GRANT OPTION GRANT ALL PRIVILEGES ON *.* TO `u1`@`localhost` IDENTIFIED BY PASSWORD '*9B500343BC52E2911172EB52AE5CF4847604C6E5' WITH GRANT OPTION
grant execute on procedure sp1 to current_user() identified by 'barfoo'; grant execute on procedure sp1 to current_user() identified by 'barfoo';
show grants; show grants;
Grants for u1@localhost Grants for u1@localhost
GRANT ALL PRIVILEGES ON *.* TO 'u1'@'localhost' IDENTIFIED BY PASSWORD '*343915A8181B5728EADBDC73E1F7E6B0C3998483' WITH GRANT OPTION GRANT ALL PRIVILEGES ON *.* TO `u1`@`localhost` IDENTIFIED BY PASSWORD '*343915A8181B5728EADBDC73E1F7E6B0C3998483' WITH GRANT OPTION
GRANT EXECUTE ON PROCEDURE `test`.`sp1` TO 'u1'@'localhost' GRANT EXECUTE ON PROCEDURE `test`.`sp1` TO `u1`@`localhost`
drop procedure sp1; drop procedure sp1;
disconnect u1; disconnect u1;
connection default; connection default;
......
...@@ -8,11 +8,11 @@ show grants for 'root'@'localhost'; ...@@ -8,11 +8,11 @@ show grants for 'root'@'localhost';
end| end|
call bug4902()| call bug4902()|
Grants for root@localhost Grants for root@localhost
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
call bug4902()| call bug4902()|
Grants for root@localhost Grants for root@localhost
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
drop procedure bug4902| drop procedure bug4902|
drop procedure if exists bug4902_2| drop procedure if exists bug4902_2|
...@@ -159,11 +159,11 @@ create procedure 15298_2 () sql security definer show grants; ...@@ -159,11 +159,11 @@ create procedure 15298_2 () sql security definer show grants;
connect con1,localhost,mysqltest_1,,test; connect con1,localhost,mysqltest_1,,test;
call 15298_1(); call 15298_1();
Grants for root@localhost Grants for root@localhost
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
call 15298_2(); call 15298_2();
Grants for root@localhost Grants for root@localhost
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
connection default; connection default;
disconnect con1; disconnect con1;
...@@ -328,21 +328,21 @@ update mysql.user set authentication_string = replace(authentication_string, '*' ...@@ -328,21 +328,21 @@ update mysql.user set authentication_string = replace(authentication_string, '*'
connect foo,localhost,foo1,foo; connect foo,localhost,foo1,foo;
show grants; show grants;
Grants for foo1@localhost Grants for foo1@localhost
GRANT USAGE ON *.* TO 'foo1'@'localhost' IDENTIFIED BY PASSWORD '*F3A2A51A9B0F2BE2468926B4132313728C250DBF' GRANT USAGE ON *.* TO `foo1`@`localhost` IDENTIFIED BY PASSWORD '*F3A2A51A9B0F2BE2468926B4132313728C250DBF'
GRANT CREATE ROUTINE ON `test`.* TO 'foo1'@'localhost' GRANT CREATE ROUTINE ON `test`.* TO `foo1`@`localhost`
connection default; connection default;
flush privileges; flush privileges;
connection foo; connection foo;
show grants; show grants;
Grants for foo1@localhost Grants for foo1@localhost
GRANT USAGE ON *.* TO 'foo1'@'localhost' IDENTIFIED BY PASSWORD '-F3A2A51A9B0F2BE2468926B4132313728C250DBF' GRANT USAGE ON *.* TO `foo1`@`localhost` IDENTIFIED BY PASSWORD '-F3A2A51A9B0F2BE2468926B4132313728C250DBF'
GRANT CREATE ROUTINE ON `test`.* TO 'foo1'@'localhost' GRANT CREATE ROUTINE ON `test`.* TO `foo1`@`localhost`
create procedure spfoo() select 1; create procedure spfoo() select 1;
show grants; show grants;
Grants for foo1@localhost Grants for foo1@localhost
GRANT USAGE ON *.* TO 'foo1'@'localhost' IDENTIFIED BY PASSWORD '-F3A2A51A9B0F2BE2468926B4132313728C250DBF' GRANT USAGE ON *.* TO `foo1`@`localhost` IDENTIFIED BY PASSWORD '-F3A2A51A9B0F2BE2468926B4132313728C250DBF'
GRANT CREATE ROUTINE ON `test`.* TO 'foo1'@'localhost' GRANT CREATE ROUTINE ON `test`.* TO `foo1`@`localhost`
GRANT EXECUTE, ALTER ROUTINE ON PROCEDURE `test`.`spfoo` TO 'foo1'@'localhost' GRANT EXECUTE, ALTER ROUTINE ON PROCEDURE `test`.`spfoo` TO `foo1`@`localhost`
connection default; connection default;
disconnect foo; disconnect foo;
drop procedure spfoo; drop procedure spfoo;
......
...@@ -79,13 +79,13 @@ create user ioo identified with "mysql_old_password" as "7a8f886d28473e85"; ...@@ -79,13 +79,13 @@ create user ioo identified with "mysql_old_password" as "7a8f886d28473e85";
# #
show grants for foo; show grants for foo;
Grants for foo@% Grants for foo@%
GRANT USAGE ON *.* TO 'foo'@'%' GRANT USAGE ON *.* TO `foo`@`%`
show grants for goo; show grants for goo;
Grants for goo@% Grants for goo@%
GRANT USAGE ON *.* TO 'goo'@'%' IDENTIFIED BY PASSWORD '*F3A2A51A9B0F2BE2468926B4132313728C250DBF' GRANT USAGE ON *.* TO `goo`@`%` IDENTIFIED BY PASSWORD '*F3A2A51A9B0F2BE2468926B4132313728C250DBF'
show grants for ioo; show grants for ioo;
Grants for ioo@% Grants for ioo@%
GRANT USAGE ON *.* TO 'ioo'@'%' IDENTIFIED BY PASSWORD '7a8f886d28473e85' GRANT USAGE ON *.* TO `ioo`@`%` IDENTIFIED BY PASSWORD '7a8f886d28473e85'
select user, host, select_priv, plugin, authentication_string from mysql.user select user, host, select_priv, plugin, authentication_string from mysql.user
where user like "%oo" where user like "%oo"
order by user; order by user;
...@@ -99,13 +99,13 @@ ioo % N mysql_old_password 7a8f886d28473e85 ...@@ -99,13 +99,13 @@ ioo % N mysql_old_password 7a8f886d28473e85
SET PASSWORD FOR foo=PASSWORD("bar"); SET PASSWORD FOR foo=PASSWORD("bar");
show grants for foo; show grants for foo;
Grants for foo@% Grants for foo@%
GRANT USAGE ON *.* TO 'foo'@'%' IDENTIFIED BY PASSWORD '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB' GRANT USAGE ON *.* TO `foo`@`%` IDENTIFIED BY PASSWORD '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB'
show grants for goo; show grants for goo;
Grants for goo@% Grants for goo@%
GRANT USAGE ON *.* TO 'goo'@'%' IDENTIFIED BY PASSWORD '*F3A2A51A9B0F2BE2468926B4132313728C250DBF' GRANT USAGE ON *.* TO `goo`@`%` IDENTIFIED BY PASSWORD '*F3A2A51A9B0F2BE2468926B4132313728C250DBF'
show grants for ioo; show grants for ioo;
Grants for ioo@% Grants for ioo@%
GRANT USAGE ON *.* TO 'ioo'@'%' IDENTIFIED BY PASSWORD '7a8f886d28473e85' GRANT USAGE ON *.* TO `ioo`@`%` IDENTIFIED BY PASSWORD '7a8f886d28473e85'
select user, host, select_priv, plugin, authentication_string from mysql.user select user, host, select_priv, plugin, authentication_string from mysql.user
where user like "%oo" where user like "%oo"
order by user; order by user;
...@@ -119,13 +119,13 @@ ioo % N mysql_old_password 7a8f886d28473e85 ...@@ -119,13 +119,13 @@ ioo % N mysql_old_password 7a8f886d28473e85
flush privileges; flush privileges;
show grants for foo; show grants for foo;
Grants for foo@% Grants for foo@%
GRANT USAGE ON *.* TO 'foo'@'%' IDENTIFIED BY PASSWORD '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB' GRANT USAGE ON *.* TO `foo`@`%` IDENTIFIED BY PASSWORD '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB'
show grants for goo; show grants for goo;
Grants for goo@% Grants for goo@%
GRANT USAGE ON *.* TO 'goo'@'%' IDENTIFIED BY PASSWORD '*F3A2A51A9B0F2BE2468926B4132313728C250DBF' GRANT USAGE ON *.* TO `goo`@`%` IDENTIFIED BY PASSWORD '*F3A2A51A9B0F2BE2468926B4132313728C250DBF'
show grants for ioo; show grants for ioo;
Grants for ioo@% Grants for ioo@%
GRANT USAGE ON *.* TO 'ioo'@'%' IDENTIFIED BY PASSWORD '7a8f886d28473e85' GRANT USAGE ON *.* TO `ioo`@`%` IDENTIFIED BY PASSWORD '7a8f886d28473e85'
# #
# Test granting of privileges. # Test granting of privileges.
# #
...@@ -134,26 +134,26 @@ grant select on *.* to goo; ...@@ -134,26 +134,26 @@ grant select on *.* to goo;
grant select on *.* to ioo; grant select on *.* to ioo;
show grants for foo; show grants for foo;
Grants for foo@% Grants for foo@%
GRANT SELECT ON *.* TO 'foo'@'%' IDENTIFIED BY PASSWORD '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB' GRANT SELECT ON *.* TO `foo`@`%` IDENTIFIED BY PASSWORD '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB'
show grants for goo; show grants for goo;
Grants for goo@% Grants for goo@%
GRANT SELECT ON *.* TO 'goo'@'%' IDENTIFIED BY PASSWORD '*F3A2A51A9B0F2BE2468926B4132313728C250DBF' GRANT SELECT ON *.* TO `goo`@`%` IDENTIFIED BY PASSWORD '*F3A2A51A9B0F2BE2468926B4132313728C250DBF'
show grants for ioo; show grants for ioo;
Grants for ioo@% Grants for ioo@%
GRANT SELECT ON *.* TO 'ioo'@'%' IDENTIFIED BY PASSWORD '7a8f886d28473e85' GRANT SELECT ON *.* TO `ioo`@`%` IDENTIFIED BY PASSWORD '7a8f886d28473e85'
# #
# Check to see if grants are stable on flush. # Check to see if grants are stable on flush.
# #
flush privileges; flush privileges;
show grants for foo; show grants for foo;
Grants for foo@% Grants for foo@%
GRANT SELECT ON *.* TO 'foo'@'%' IDENTIFIED BY PASSWORD '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB' GRANT SELECT ON *.* TO `foo`@`%` IDENTIFIED BY PASSWORD '*E8D46CE25265E545D225A8A6F1BAF642FEBEE5CB'
show grants for goo; show grants for goo;
Grants for goo@% Grants for goo@%
GRANT SELECT ON *.* TO 'goo'@'%' IDENTIFIED BY PASSWORD '*F3A2A51A9B0F2BE2468926B4132313728C250DBF' GRANT SELECT ON *.* TO `goo`@`%` IDENTIFIED BY PASSWORD '*F3A2A51A9B0F2BE2468926B4132313728C250DBF'
show grants for ioo; show grants for ioo;
Grants for ioo@% Grants for ioo@%
GRANT SELECT ON *.* TO 'ioo'@'%' IDENTIFIED BY PASSWORD '7a8f886d28473e85' GRANT SELECT ON *.* TO `ioo`@`%` IDENTIFIED BY PASSWORD '7a8f886d28473e85'
# #
# Check internal table representation. # Check internal table representation.
# #
...@@ -177,46 +177,46 @@ connect con1,localhost,user1; ...@@ -177,46 +177,46 @@ connect con1,localhost,user1;
ERROR HY000: Access denied, this account is locked ERROR HY000: Access denied, this account is locked
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' ACCOUNT LOCK CREATE USER `user1`@`localhost` ACCOUNT LOCK
alter user user1@localhost account unlock; alter user user1@localhost account unlock;
connect con1,localhost,user1; connect con1,localhost,user1;
disconnect con1; disconnect con1;
connection default; connection default;
show create user user1@localhost; show create user user1@localhost;
CREATE USER for user1@localhost CREATE USER for user1@localhost
CREATE USER 'user1'@'localhost' CREATE USER `user1`@`localhost`
# #
# Test password expiration fields are loaded correctly # Test password expiration fields are loaded correctly
# #
create user user@localhost; create user user@localhost;
show create user user@localhost; show create user user@localhost;
CREATE USER for user@localhost CREATE USER for user@localhost
CREATE USER 'user'@'localhost' CREATE USER `user`@`localhost`
alter user user@localhost password expire; alter user user@localhost password expire;
show create user user@localhost; show create user user@localhost;
CREATE USER for user@localhost CREATE USER for user@localhost
CREATE USER 'user'@'localhost' PASSWORD EXPIRE CREATE USER `user`@`localhost` PASSWORD EXPIRE
set password for user@localhost= password(''); set password for user@localhost= password('');
alter user user@localhost password expire default; alter user user@localhost password expire default;
show create user user@localhost; show create user user@localhost;
CREATE USER for user@localhost CREATE USER for user@localhost
CREATE USER 'user'@'localhost' CREATE USER `user`@`localhost`
alter user user@localhost password expire never; alter user user@localhost password expire never;
show create user user@localhost; show create user user@localhost;
CREATE USER for user@localhost CREATE USER for user@localhost
CREATE USER 'user'@'localhost' PASSWORD EXPIRE NEVER CREATE USER `user`@`localhost` PASSWORD EXPIRE NEVER
alter user user@localhost password expire interval 123 day; alter user user@localhost password expire interval 123 day;
show create user user@localhost; show create user user@localhost;
CREATE USER for user@localhost CREATE USER for user@localhost
CREATE USER 'user'@'localhost' PASSWORD EXPIRE INTERVAL 123 DAY CREATE USER `user`@`localhost` PASSWORD EXPIRE INTERVAL 123 DAY
alter user user@localhost password expire; alter user user@localhost password expire;
show create user user@localhost; show create user user@localhost;
CREATE USER for user@localhost CREATE USER for user@localhost
CREATE USER 'user'@'localhost' PASSWORD EXPIRE CREATE USER `user`@`localhost` PASSWORD EXPIRE
set password for user@localhost= password(''); set password for user@localhost= password('');
show create user user@localhost; show create user user@localhost;
CREATE USER for user@localhost CREATE USER for user@localhost
CREATE USER 'user'@'localhost' PASSWORD EXPIRE INTERVAL 123 DAY CREATE USER `user`@`localhost` PASSWORD EXPIRE INTERVAL 123 DAY
drop user user@localhost; drop user user@localhost;
# #
# Reset to final original state. # Reset to final original state.
......
...@@ -13,8 +13,8 @@ connect tzuser, localhost, mysqltest_1,,; ...@@ -13,8 +13,8 @@ connect tzuser, localhost, mysqltest_1,,;
connection tzuser; connection tzuser;
show grants for current_user(); show grants for current_user();
Grants for mysqltest_1@localhost Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
GRANT ALL PRIVILEGES ON `test`.* TO 'mysqltest_1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO `mysqltest_1`@`localhost`
set time_zone= '+00:00'; set time_zone= '+00:00';
set time_zone= 'Europe/Moscow'; set time_zone= 'Europe/Moscow';
select convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC'); select convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC');
...@@ -39,9 +39,9 @@ connect tzuser2, localhost, mysqltest_1,,; ...@@ -39,9 +39,9 @@ connect tzuser2, localhost, mysqltest_1,,;
connection tzuser2; connection tzuser2;
show grants for current_user(); show grants for current_user();
Grants for mysqltest_1@localhost Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO '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`.`t2` TO `mysqltest_1`@`localhost`
GRANT ALL PRIVILEGES ON `test`.`t1` TO 'mysqltest_1'@'localhost' GRANT ALL PRIVILEGES ON `test`.`t1` TO `mysqltest_1`@`localhost`
set time_zone= '+00:00'; set time_zone= '+00:00';
set time_zone= 'Europe/Moscow'; set time_zone= 'Europe/Moscow';
select convert_tz('2004-11-31 12:00:00', 'Europe/Moscow', 'UTC'); select convert_tz('2004-11-31 12:00:00', 'Europe/Moscow', 'UTC');
......
...@@ -194,8 +194,8 @@ use mysqltest_db1; ...@@ -194,8 +194,8 @@ use mysqltest_db1;
GRANT DELETE ON mysqltest_db1.* TO mysqltest_u1@localhost; GRANT DELETE ON mysqltest_db1.* TO mysqltest_u1@localhost;
SHOW GRANTS FOR mysqltest_u1@localhost; SHOW GRANTS FOR mysqltest_u1@localhost;
Grants for mysqltest_u1@localhost Grants for mysqltest_u1@localhost
GRANT USAGE ON *.* TO 'mysqltest_u1'@'localhost' GRANT USAGE ON *.* TO `mysqltest_u1`@`localhost`
GRANT DELETE, TRIGGER ON `mysqltest_db1`.* TO 'mysqltest_u1'@'localhost' GRANT DELETE, TRIGGER ON `mysqltest_db1`.* TO `mysqltest_u1`@`localhost`
connection bug15166_u1_con; connection bug15166_u1_con;
use mysqltest_db1; use mysqltest_db1;
CREATE TRIGGER t1_trg_after_delete AFTER DELETE ON t1 CREATE TRIGGER t1_trg_after_delete AFTER DELETE ON t1
......
...@@ -108,11 +108,11 @@ connection default; ...@@ -108,11 +108,11 @@ connection default;
grant usage on *.* to mysqltest_1@localhost with max_user_connections -1; grant usage on *.* to mysqltest_1@localhost with max_user_connections -1;
show grants for mysqltest_1@localhost; show grants for mysqltest_1@localhost;
Grants for mysqltest_1@localhost Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' WITH MAX_USER_CONNECTIONS -1 GRANT USAGE ON *.* TO `mysqltest_1`@`localhost` WITH MAX_USER_CONNECTIONS -1
flush user_resources; flush user_resources;
show grants for mysqltest_1@localhost; show grants for mysqltest_1@localhost;
Grants for mysqltest_1@localhost Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' WITH MAX_USER_CONNECTIONS -1 GRANT USAGE ON *.* TO `mysqltest_1`@`localhost` WITH MAX_USER_CONNECTIONS -1
connect(localhost,mysqltest_1,,test,MYSQL_PORT,MYSQL_SOCK); connect(localhost,mysqltest_1,,test,MYSQL_PORT,MYSQL_SOCK);
connect muc5, localhost, mysqltest_1,,; connect muc5, localhost, mysqltest_1,,;
ERROR 42000: User 'mysqltest_1' has exceeded the 'max_user_connections' resource (current value: -1) ERROR 42000: User 'mysqltest_1' has exceeded the 'max_user_connections' resource (current value: -1)
......
...@@ -4,12 +4,12 @@ create user test@localhost; ...@@ -4,12 +4,12 @@ create user test@localhost;
grant create view on test.* to test@localhost; grant create view on test.* to test@localhost;
show grants for test@localhost; show grants for test@localhost;
Grants for test@localhost Grants for test@localhost
GRANT USAGE ON *.* TO 'test'@'localhost' GRANT USAGE ON *.* TO `test`@`localhost`
GRANT CREATE VIEW ON `test`.* TO 'test'@'localhost' GRANT CREATE VIEW ON `test`.* TO `test`@`localhost`
revoke create view on test.* from test@localhost; revoke create view on test.* from test@localhost;
show grants for test@localhost; show grants for test@localhost;
Grants for test@localhost Grants for test@localhost
GRANT USAGE ON *.* TO 'test'@'localhost' GRANT USAGE ON *.* TO `test`@`localhost`
drop user test@localhost; drop user test@localhost;
connect root,localhost,root,,test; connect root,localhost,root,,test;
connection root; connection root;
......
...@@ -4775,8 +4775,8 @@ sub extract_warning_lines ($$) { ...@@ -4775,8 +4775,8 @@ sub extract_warning_lines ($$) {
qr/InnoDB: Cannot open .*ib_buffer_pool.* for reading: No such file or directory*/, qr/InnoDB: Cannot open .*ib_buffer_pool.* for reading: No such file or directory*/,
qr/InnoDB: Table .*mysql.*innodb_table_stats.* not found./, qr/InnoDB: Table .*mysql.*innodb_table_stats.* not found./,
qr/InnoDB: User stopword table .* does not exist./, qr/InnoDB: User stopword table .* does not exist./,
qr/Dump thread [0-9]+ last sent to server [0-9]+ binlog file:pos .+/ qr/Dump thread [0-9]+ last sent to server [0-9]+ binlog file:pos .+/,
qr/Detected table cache mutex contention at instance .* waits. Additional table cache instance cannot be activated: consider raising table_open_cache_instances. Number of active instances/
); );
my $matched_lines= []; my $matched_lines= [];
......
...@@ -4,7 +4,7 @@ set @saved_binlog_format = @@global.binlog_format; ...@@ -4,7 +4,7 @@ set @saved_binlog_format = @@global.binlog_format;
create user mysqltest_1@localhost; create user mysqltest_1@localhost;
show grants for mysqltest_1@localhost; show grants for mysqltest_1@localhost;
Grants for mysqltest_1@localhost Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
connect plain,localhost,mysqltest_1,,test; connect plain,localhost,mysqltest_1,,test;
connect root,localhost,root,,test; connect root,localhost,root,,test;
**** Variable SQL_LOG_BIN **** **** Variable SQL_LOG_BIN ****
......
...@@ -132,15 +132,15 @@ END; ...@@ -132,15 +132,15 @@ END;
$$ $$
SHOW GRANTS; SHOW GRANTS;
Grants for u1@localhost Grants for u1@localhost
GRANT USAGE ON *.* TO 'u1'@'localhost' GRANT USAGE ON *.* TO "u1"@"localhost"
GRANT SELECT, CREATE ROUTINE ON "db1".* TO 'u1'@'localhost' GRANT SELECT, CREATE ROUTINE ON "db1".* TO "u1"@"localhost"
GRANT EXECUTE, ALTER ROUTINE ON PROCEDURE "db1"."p1" TO 'u1'@'localhost' GRANT EXECUTE, ALTER ROUTINE ON PROCEDURE "db1"."p1" TO "u1"@"localhost"
CALL p1; CALL p1;
DROP PROCEDURE p1; DROP PROCEDURE p1;
SHOW GRANTS; SHOW GRANTS;
Grants for u1@localhost Grants for u1@localhost
GRANT USAGE ON *.* TO 'u1'@'localhost' GRANT USAGE ON *.* TO "u1"@"localhost"
GRANT SELECT, CREATE ROUTINE ON "db1".* TO 'u1'@'localhost' GRANT SELECT, CREATE ROUTINE ON "db1".* TO "u1"@"localhost"
# #
# Now u1 can also CREATE, DROP its own package specifications # Now u1 can also CREATE, DROP its own package specifications
# #
...@@ -157,14 +157,14 @@ FUNCTION f1 RETURN TEXT; ...@@ -157,14 +157,14 @@ FUNCTION f1 RETURN TEXT;
END latin1 latin1_swedish_ci latin1_swedish_ci END latin1 latin1_swedish_ci latin1_swedish_ci
SHOW GRANTS; SHOW GRANTS;
Grants for u1@localhost Grants for u1@localhost
GRANT USAGE ON *.* TO 'u1'@'localhost' GRANT USAGE ON *.* TO "u1"@"localhost"
GRANT SELECT, CREATE ROUTINE ON "db1".* TO 'u1'@'localhost' GRANT SELECT, CREATE ROUTINE ON "db1".* TO "u1"@"localhost"
GRANT EXECUTE, ALTER ROUTINE ON PACKAGE "db1"."pkg2" TO 'u1'@'localhost' GRANT EXECUTE, ALTER ROUTINE ON PACKAGE "db1"."pkg2" TO "u1"@"localhost"
DROP PACKAGE pkg2; DROP PACKAGE pkg2;
SHOW GRANTS; SHOW GRANTS;
Grants for u1@localhost Grants for u1@localhost
GRANT USAGE ON *.* TO 'u1'@'localhost' GRANT USAGE ON *.* TO "u1"@"localhost"
GRANT SELECT, CREATE ROUTINE ON "db1".* TO 'u1'@'localhost' GRANT SELECT, CREATE ROUTINE ON "db1".* TO "u1"@"localhost"
# #
# Now u1 can also CREATE, DROP package bodies and EXECUTE package body routines # Now u1 can also CREATE, DROP package bodies and EXECUTE package body routines
# #
...@@ -184,9 +184,9 @@ FUNCTION f1 RETURN TEXT AS BEGIN RETURN 'This is pkg1.f1'; END; ...@@ -184,9 +184,9 @@ FUNCTION f1 RETURN TEXT AS BEGIN RETURN 'This is pkg1.f1'; END;
END latin1 latin1_swedish_ci latin1_swedish_ci END latin1 latin1_swedish_ci latin1_swedish_ci
SHOW GRANTS; SHOW GRANTS;
Grants for u1@localhost Grants for u1@localhost
GRANT USAGE ON *.* TO 'u1'@'localhost' GRANT USAGE ON *.* TO "u1"@"localhost"
GRANT SELECT, CREATE ROUTINE ON "db1".* TO 'u1'@'localhost' GRANT SELECT, CREATE ROUTINE ON "db1".* TO "u1"@"localhost"
GRANT EXECUTE, ALTER ROUTINE ON PACKAGE BODY "db1"."pkg1" TO 'u1'@'localhost' GRANT EXECUTE, ALTER ROUTINE ON PACKAGE BODY "db1"."pkg1" TO "u1"@"localhost"
CALL pkg1.p1; CALL pkg1.p1;
comment comment
This is pkg1.p1 This is pkg1.p1
...@@ -196,8 +196,8 @@ This is pkg1.f1 ...@@ -196,8 +196,8 @@ This is pkg1.f1
DROP PACKAGE BODY pkg1; DROP PACKAGE BODY pkg1;
SHOW GRANTS; SHOW GRANTS;
Grants for u1@localhost Grants for u1@localhost
GRANT USAGE ON *.* TO 'u1'@'localhost' GRANT USAGE ON *.* TO "u1"@"localhost"
GRANT SELECT, CREATE ROUTINE ON "db1".* TO 'u1'@'localhost' GRANT SELECT, CREATE ROUTINE ON "db1".* TO "u1"@"localhost"
# #
# Now create a PACKAGE BODY by root. # Now create a PACKAGE BODY by root.
# u1 does not have EXECUTE access by default. # u1 does not have EXECUTE access by default.
...@@ -232,9 +232,9 @@ u1@localhost ...@@ -232,9 +232,9 @@ u1@localhost
SET sql_mode=ORACLE; SET sql_mode=ORACLE;
SHOW GRANTS; SHOW GRANTS;
Grants for u1@localhost Grants for u1@localhost
GRANT USAGE ON *.* TO 'u1'@'localhost' GRANT USAGE ON *.* TO "u1"@"localhost"
GRANT SELECT, CREATE ROUTINE ON "db1".* TO 'u1'@'localhost' GRANT SELECT, CREATE ROUTINE ON "db1".* TO "u1"@"localhost"
GRANT EXECUTE ON PACKAGE BODY "db1"."pkg1" TO 'u1'@'localhost' GRANT EXECUTE ON PACKAGE BODY "db1"."pkg1" TO "u1"@"localhost"
CALL pkg1.p1; CALL pkg1.p1;
comment comment
This is pkg1.p1 This is pkg1.p1
......
...@@ -128,7 +128,7 @@ CREATE USER 'testuser1'@'localhost'; ...@@ -128,7 +128,7 @@ CREATE USER 'testuser1'@'localhost';
GRANT ALL ON *.* TO testuser1@localhost; GRANT ALL ON *.* TO testuser1@localhost;
SHOW GRANTS FOR testuser1@localhost; SHOW GRANTS FOR testuser1@localhost;
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT ALL PRIVILEGES ON *.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON *.* TO `testuser1`@`localhost`
connect testuser1, localhost, testuser1, , test; connect testuser1, localhost, testuser1, , test;
USE information_schema; USE information_schema;
CREATE TABLE schemata ( c1 INT ); CREATE TABLE schemata ( c1 INT );
......
...@@ -5,8 +5,8 @@ CREATE user boo1; ...@@ -5,8 +5,8 @@ CREATE user boo1;
GRANT select,create,alter,drop on foo.* to boo1; GRANT select,create,alter,drop on foo.* to boo1;
SHOW GRANTS for boo1; SHOW GRANTS for boo1;
Grants for boo1@% Grants for boo1@%
GRANT USAGE ON *.* TO 'boo1'@'%' GRANT USAGE ON *.* TO `boo1`@`%`
GRANT SELECT, CREATE, DROP, ALTER ON `foo`.* TO 'boo1'@'%' GRANT SELECT, CREATE, DROP, ALTER ON `foo`.* TO `boo1`@`%`
CREATE user boo2; CREATE user boo2;
create database foo; create database foo;
CONNECT con1,localhost, boo1,, foo; CONNECT con1,localhost, boo1,, foo;
...@@ -130,8 +130,8 @@ INSERT INTO t1 VALUES (1, 2), (2, 3); ...@@ -130,8 +130,8 @@ INSERT INTO t1 VALUES (1, 2), (2, 3);
GRANT SELECT (a) ON t1 TO foo; GRANT SELECT (a) ON t1 TO foo;
SHOW GRANTS FOR foo; SHOW GRANTS FOR foo;
Grants for foo@% Grants for foo@%
GRANT USAGE ON *.* TO 'foo'@'%' GRANT USAGE ON *.* TO `foo`@`%`
GRANT SELECT (a) ON `db`.`t1` TO 'foo'@'%' GRANT SELECT (a) ON `db`.`t1` TO `foo`@`%`
SELECT * FROM information_schema.check_constraints; SELECT * FROM information_schema.check_constraints;
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA TABLE_NAME CONSTRAINT_NAME CHECK_CLAUSE CONSTRAINT_CATALOG CONSTRAINT_SCHEMA TABLE_NAME CONSTRAINT_NAME CHECK_CLAUSE
def db t1 CONSTRAINT_1 `b` > 0 def db t1 CONSTRAINT_1 `b` > 0
......
...@@ -196,8 +196,8 @@ ORDER BY grantee, table_schema,table_name,column_name,privilege_type; ...@@ -196,8 +196,8 @@ ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO `testuser1`@`localhost`
connect testuser1, localhost, testuser1, , test; connect testuser1, localhost, testuser1, , test;
SELECT * FROM information_schema.column_privileges SELECT * FROM information_schema.column_privileges
WHERE table_name = 'my_table' WHERE table_name = 'my_table'
...@@ -205,8 +205,8 @@ ORDER BY grantee, table_schema,table_name,column_name,privilege_type; ...@@ -205,8 +205,8 @@ ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO `testuser1`@`localhost`
connection default; connection default;
GRANT SELECT (f1,f3) ON db_datadict.my_table TO 'testuser1'@'localhost'; GRANT SELECT (f1,f3) ON db_datadict.my_table TO 'testuser1'@'localhost';
SELECT * FROM information_schema.column_privileges SELECT * FROM information_schema.column_privileges
...@@ -217,9 +217,9 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRAN ...@@ -217,9 +217,9 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRAN
'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO 'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO `testuser1`@`localhost`
GRANT SELECT (f3, f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' GRANT SELECT (f3, f1) ON `db_datadict`.`my_table` TO `testuser1`@`localhost`
connection testuser1; connection testuser1;
SELECT * FROM information_schema.column_privileges SELECT * FROM information_schema.column_privileges
WHERE table_name = 'my_table' WHERE table_name = 'my_table'
...@@ -229,9 +229,9 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRAN ...@@ -229,9 +229,9 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRAN
'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO 'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO `testuser1`@`localhost`
GRANT SELECT (f3, f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' GRANT SELECT (f3, f1) ON `db_datadict`.`my_table` TO `testuser1`@`localhost`
connection default; connection default;
ALTER TABLE db_datadict.my_table DROP COLUMN f3; ALTER TABLE db_datadict.my_table DROP COLUMN f3;
GRANT UPDATE (f1) ON db_datadict.my_table TO 'testuser1'@'localhost'; GRANT UPDATE (f1) ON db_datadict.my_table TO 'testuser1'@'localhost';
...@@ -244,9 +244,9 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRAN ...@@ -244,9 +244,9 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRAN
'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO 'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO `testuser1`@`localhost`
GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO `testuser1`@`localhost`
connection testuser1; connection testuser1;
SELECT * FROM information_schema.column_privileges SELECT * FROM information_schema.column_privileges
WHERE table_name = 'my_table' WHERE table_name = 'my_table'
...@@ -257,9 +257,9 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRAN ...@@ -257,9 +257,9 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRAN
'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO 'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO `testuser1`@`localhost`
GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO `testuser1`@`localhost`
SELECT f1, f3 FROM db_datadict.my_table; SELECT f1, f3 FROM db_datadict.my_table;
ERROR 42S22: Unknown column 'f3' in 'field list' ERROR 42S22: Unknown column 'f3' in 'field list'
connection default; connection default;
...@@ -273,9 +273,9 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRAN ...@@ -273,9 +273,9 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRAN
'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO 'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO `testuser1`@`localhost`
GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO `testuser1`@`localhost`
connection testuser1; connection testuser1;
SELECT * FROM information_schema.column_privileges SELECT * FROM information_schema.column_privileges
WHERE table_name = 'my_table' WHERE table_name = 'my_table'
...@@ -286,9 +286,9 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRAN ...@@ -286,9 +286,9 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRAN
'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO 'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO `testuser1`@`localhost`
GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO `testuser1`@`localhost`
connection default; connection default;
DROP TABLE db_datadict.my_table; DROP TABLE db_datadict.my_table;
SELECT * FROM information_schema.column_privileges SELECT * FROM information_schema.column_privileges
...@@ -300,9 +300,9 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRAN ...@@ -300,9 +300,9 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRAN
'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO 'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO `testuser1`@`localhost`
GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO `testuser1`@`localhost`
connection testuser1; connection testuser1;
SELECT * FROM information_schema.column_privileges SELECT * FROM information_schema.column_privileges
WHERE table_name = 'my_table' WHERE table_name = 'my_table'
...@@ -313,9 +313,9 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRAN ...@@ -313,9 +313,9 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRAN
'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO 'testuser1'@'localhost' def db_datadict my_table f3 SELECT NO
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO `testuser1`@`localhost`
GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO `testuser1`@`localhost`
connection default; connection default;
REVOKE ALL ON db_datadict.my_table FROM 'testuser1'@'localhost'; REVOKE ALL ON db_datadict.my_table FROM 'testuser1'@'localhost';
SELECT * FROM information_schema.column_privileges SELECT * FROM information_schema.column_privileges
...@@ -324,8 +324,8 @@ ORDER BY grantee, table_schema,table_name,column_name,privilege_type; ...@@ -324,8 +324,8 @@ ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO `testuser1`@`localhost`
connection testuser1; connection testuser1;
SELECT * FROM information_schema.column_privileges SELECT * FROM information_schema.column_privileges
WHERE table_name = 'my_table' WHERE table_name = 'my_table'
...@@ -333,8 +333,8 @@ ORDER BY grantee, table_schema,table_name,column_name,privilege_type; ...@@ -333,8 +333,8 @@ ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' GRANT ALL PRIVILEGES ON `test`.* TO `testuser1`@`localhost`
connection default; connection default;
disconnect testuser1; disconnect testuser1;
DROP USER 'testuser1'@'localhost'; DROP USER 'testuser1'@'localhost';
......
...@@ -124,10 +124,10 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE ...@@ -124,10 +124,10 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
'testuser1'@'localhost' def db_datadict_4 SELECT YES 'testuser1'@'localhost' def db_datadict_4 SELECT YES
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT INSERT ON `db_datadict_1`.* TO 'testuser1'@'localhost' GRANT INSERT ON `db_datadict_1`.* TO `testuser1`@`localhost`
GRANT SELECT ON `db_datadict_4`.* TO 'testuser1'@'localhost' WITH GRANT OPTION GRANT SELECT ON `db_datadict_4`.* TO `testuser1`@`localhost` WITH GRANT OPTION
GRANT INSERT ON `db_datadict_2`.`t1` TO 'testuser1'@'localhost' GRANT INSERT ON `db_datadict_2`.`t1` TO `testuser1`@`localhost`
SHOW GRANTS FOR 'testuser2'@'localhost'; SHOW GRANTS FOR 'testuser2'@'localhost';
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'mysql' ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'mysql'
connect testuser2, localhost, testuser2, , test; connect testuser2, localhost, testuser2, , test;
...@@ -147,10 +147,10 @@ SHOW GRANTS FOR 'testuser1'@'localhost'; ...@@ -147,10 +147,10 @@ SHOW GRANTS FOR 'testuser1'@'localhost';
ERROR 42000: Access denied for user 'testuser2'@'localhost' to database 'mysql' ERROR 42000: Access denied for user 'testuser2'@'localhost' to database 'mysql'
SHOW GRANTS FOR 'testuser2'@'localhost'; SHOW GRANTS FOR 'testuser2'@'localhost';
Grants for testuser2@localhost Grants for testuser2@localhost
GRANT USAGE ON *.* TO 'testuser2'@'localhost' GRANT USAGE ON *.* TO `testuser2`@`localhost`
GRANT SELECT ON `db_datadict_3`.* TO 'testuser2'@'localhost' GRANT SELECT ON `db_datadict_3`.* TO `testuser2`@`localhost`
GRANT SELECT ON `db_datadict_1`.* TO 'testuser2'@'localhost' GRANT SELECT ON `db_datadict_1`.* TO `testuser2`@`localhost`
GRANT SELECT ON `db_datadict_4`.* TO 'testuser2'@'localhost' GRANT SELECT ON `db_datadict_4`.* TO `testuser2`@`localhost`
connection default; connection default;
disconnect testuser1; disconnect testuser1;
disconnect testuser2; disconnect testuser2;
...@@ -165,16 +165,16 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE ...@@ -165,16 +165,16 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
'testuser2'@'localhost' def db_datadict_4 SELECT NO 'testuser2'@'localhost' def db_datadict_4 SELECT NO
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT INSERT ON `db_datadict_1`.* TO 'testuser1'@'localhost' GRANT INSERT ON `db_datadict_1`.* TO `testuser1`@`localhost`
GRANT SELECT ON `db_datadict_4`.* TO 'testuser1'@'localhost' WITH GRANT OPTION GRANT SELECT ON `db_datadict_4`.* TO `testuser1`@`localhost` WITH GRANT OPTION
GRANT INSERT ON `db_datadict_2`.`t1` TO 'testuser1'@'localhost' GRANT INSERT ON `db_datadict_2`.`t1` TO `testuser1`@`localhost`
SHOW GRANTS FOR 'testuser2'@'localhost'; SHOW GRANTS FOR 'testuser2'@'localhost';
Grants for testuser2@localhost Grants for testuser2@localhost
GRANT USAGE ON *.* TO 'testuser2'@'localhost' GRANT USAGE ON *.* TO `testuser2`@`localhost`
GRANT SELECT ON `db_datadict_3`.* TO 'testuser2'@'localhost' GRANT SELECT ON `db_datadict_3`.* TO `testuser2`@`localhost`
GRANT SELECT ON `db_datadict_1`.* TO 'testuser2'@'localhost' GRANT SELECT ON `db_datadict_1`.* TO `testuser2`@`localhost`
GRANT SELECT ON `db_datadict_4`.* TO 'testuser2'@'localhost' GRANT SELECT ON `db_datadict_4`.* TO `testuser2`@`localhost`
DROP USER 'testuser1'@'localhost'; DROP USER 'testuser1'@'localhost';
DROP USER 'testuser2'@'localhost'; DROP USER 'testuser2'@'localhost';
DROP DATABASE db_datadict_1; DROP DATABASE db_datadict_1;
......
...@@ -195,10 +195,10 @@ def db_datadict_2 t4 1 db_datadict_2 f2_ind 1 f2 NULL 0 NULL NULL YES HASH ...@@ -195,10 +195,10 @@ def db_datadict_2 t4 1 db_datadict_2 f2_ind 1 f2 NULL 0 NULL NULL YES HASH
def db_datadict_2 t4 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH def db_datadict_2 t4 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
SHOW GRANTS FOR 'testuser2'@'localhost'; SHOW GRANTS FOR 'testuser2'@'localhost';
Grants for testuser2@localhost Grants for testuser2@localhost
GRANT USAGE ON *.* TO 'testuser2'@'localhost' GRANT USAGE ON *.* TO `testuser2`@`localhost`
connect testuser1, localhost, testuser1, , test; connect testuser1, localhost, testuser1, , test;
SELECT * FROM information_schema.statistics SELECT * FROM information_schema.statistics
WHERE table_schema LIKE 'db_datadict%' WHERE table_schema LIKE 'db_datadict%'
...@@ -206,7 +206,7 @@ ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; ...@@ -206,7 +206,7 @@ ORDER BY table_schema,table_name,index_name,seq_in_index,column_name;
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
SHOW GRANTS FOR 'testuser2'@'localhost'; SHOW GRANTS FOR 'testuser2'@'localhost';
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'mysql' ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'mysql'
connect testuser2, localhost, testuser2, , test; connect testuser2, localhost, testuser2, , test;
...@@ -218,7 +218,7 @@ SHOW GRANTS FOR 'testuser1'@'localhost'; ...@@ -218,7 +218,7 @@ SHOW GRANTS FOR 'testuser1'@'localhost';
ERROR 42000: Access denied for user 'testuser2'@'localhost' to database 'mysql' ERROR 42000: Access denied for user 'testuser2'@'localhost' to database 'mysql'
SHOW GRANTS FOR 'testuser2'@'localhost'; SHOW GRANTS FOR 'testuser2'@'localhost';
Grants for testuser2@localhost Grants for testuser2@localhost
GRANT USAGE ON *.* TO 'testuser2'@'localhost' GRANT USAGE ON *.* TO `testuser2`@`localhost`
connection default; connection default;
GRANT SELECT ON db_datadict.t1 TO 'testuser1'@'localhost' WITH GRANT OPTION; GRANT SELECT ON db_datadict.t1 TO 'testuser1'@'localhost' WITH GRANT OPTION;
GRANT SELECT(f1,f5) ON db_datadict_2.t3 TO 'testuser1'@'localhost'; GRANT SELECT(f1,f5) ON db_datadict_2.t3 TO 'testuser1'@'localhost';
...@@ -238,12 +238,12 @@ def db_datadict_2 t4 1 db_datadict_2 f2_ind 1 f2 NULL 0 NULL NULL YES HASH ...@@ -238,12 +238,12 @@ def db_datadict_2 t4 1 db_datadict_2 f2_ind 1 f2 NULL 0 NULL NULL YES HASH
def db_datadict_2 t4 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH def db_datadict_2 t4 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT SELECT ON `db_datadict`.`t1` TO 'testuser1'@'localhost' WITH GRANT OPTION GRANT SELECT ON `db_datadict`.`t1` TO `testuser1`@`localhost` WITH GRANT OPTION
GRANT SELECT (f5, f1) ON `db_datadict_2`.`t3` TO 'testuser1'@'localhost' GRANT SELECT (f5, f1) ON `db_datadict_2`.`t3` TO `testuser1`@`localhost`
SHOW GRANTS FOR 'testuser2'@'localhost'; SHOW GRANTS FOR 'testuser2'@'localhost';
Grants for testuser2@localhost Grants for testuser2@localhost
GRANT USAGE ON *.* TO 'testuser2'@'localhost' GRANT USAGE ON *.* TO `testuser2`@`localhost`
connection testuser1; connection testuser1;
SELECT * FROM information_schema.statistics SELECT * FROM information_schema.statistics
WHERE table_schema LIKE 'db_datadict%' WHERE table_schema LIKE 'db_datadict%'
...@@ -257,9 +257,9 @@ def db_datadict_2 t3 0 db_datadict_2 f5 1 f5 NULL 0 NULL NULL YES HASH ...@@ -257,9 +257,9 @@ def db_datadict_2 t3 0 db_datadict_2 f5 1 f5 NULL 0 NULL NULL YES HASH
def db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH def db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT SELECT ON `db_datadict`.`t1` TO 'testuser1'@'localhost' WITH GRANT OPTION GRANT SELECT ON `db_datadict`.`t1` TO `testuser1`@`localhost` WITH GRANT OPTION
GRANT SELECT (f5, f1) ON `db_datadict_2`.`t3` TO 'testuser1'@'localhost' GRANT SELECT (f5, f1) ON `db_datadict_2`.`t3` TO `testuser1`@`localhost`
SHOW GRANTS FOR 'testuser2'@'localhost'; SHOW GRANTS FOR 'testuser2'@'localhost';
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'mysql' ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'mysql'
connection testuser2; connection testuser2;
...@@ -271,13 +271,13 @@ SHOW GRANTS FOR 'testuser1'@'localhost'; ...@@ -271,13 +271,13 @@ SHOW GRANTS FOR 'testuser1'@'localhost';
ERROR 42000: Access denied for user 'testuser2'@'localhost' to database 'mysql' ERROR 42000: Access denied for user 'testuser2'@'localhost' to database 'mysql'
SHOW GRANTS FOR 'testuser2'@'localhost'; SHOW GRANTS FOR 'testuser2'@'localhost';
Grants for testuser2@localhost Grants for testuser2@localhost
GRANT USAGE ON *.* TO 'testuser2'@'localhost' GRANT USAGE ON *.* TO `testuser2`@`localhost`
connection default; connection default;
REVOKE SELECT,GRANT OPTION ON db_datadict.t1 FROM 'testuser1'@'localhost'; REVOKE SELECT,GRANT OPTION ON db_datadict.t1 FROM 'testuser1'@'localhost';
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT SELECT (f5, f1) ON `db_datadict_2`.`t3` TO 'testuser1'@'localhost' GRANT SELECT (f5, f1) ON `db_datadict_2`.`t3` TO `testuser1`@`localhost`
connection testuser1; connection testuser1;
SELECT * FROM information_schema.statistics SELECT * FROM information_schema.statistics
WHERE table_schema LIKE 'db_datadict%' WHERE table_schema LIKE 'db_datadict%'
...@@ -289,8 +289,8 @@ def db_datadict_2 t3 0 db_datadict_2 f5 1 f5 NULL 0 NULL NULL YES HASH ...@@ -289,8 +289,8 @@ def db_datadict_2 t3 0 db_datadict_2 f5 1 f5 NULL 0 NULL NULL YES HASH
def db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH def db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT SELECT (f5, f1) ON `db_datadict_2`.`t3` TO 'testuser1'@'localhost' GRANT SELECT (f5, f1) ON `db_datadict_2`.`t3` TO `testuser1`@`localhost`
connection default; connection default;
disconnect testuser1; disconnect testuser1;
disconnect testuser2; disconnect testuser2;
......
...@@ -109,8 +109,8 @@ CREATE USER 'testuser1'@'localhost'; ...@@ -109,8 +109,8 @@ CREATE USER 'testuser1'@'localhost';
GRANT SELECT(f5) ON db_datadict.t1 TO 'testuser1'@'localhost'; GRANT SELECT(f5) ON db_datadict.t1 TO 'testuser1'@'localhost';
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT SELECT (f5) ON `db_datadict`.`t1` TO 'testuser1'@'localhost' GRANT SELECT (f5) ON `db_datadict`.`t1` TO `testuser1`@`localhost`
SELECT * FROM information_schema.table_constraints SELECT * FROM information_schema.table_constraints
WHERE table_schema = 'db_datadict' WHERE table_schema = 'db_datadict'
ORDER BY table_schema,table_name, constraint_name; ORDER BY table_schema,table_name, constraint_name;
...@@ -133,8 +133,8 @@ t2 0 PRIMARY 2 f2 ### ### ### ### ### ### ### ...@@ -133,8 +133,8 @@ t2 0 PRIMARY 2 f2 ### ### ### ### ### ### ###
connect testuser1, localhost, testuser1, , db_datadict; connect testuser1, localhost, testuser1, , db_datadict;
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT SELECT (f5) ON `db_datadict`.`t1` TO 'testuser1'@'localhost' GRANT SELECT (f5) ON `db_datadict`.`t1` TO `testuser1`@`localhost`
SELECT * FROM information_schema.table_constraints SELECT * FROM information_schema.table_constraints
WHERE table_schema = 'db_datadict' WHERE table_schema = 'db_datadict'
ORDER BY table_schema,table_name, constraint_name; ORDER BY table_schema,table_name, constraint_name;
......
...@@ -84,9 +84,9 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE ...@@ -84,9 +84,9 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
'testuser1'@'localhost' def db_datadict tb1 SELECT NO 'testuser1'@'localhost' def db_datadict tb1 SELECT NO
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT SELECT, CREATE ON `db_datadict`.* TO 'testuser1'@'localhost' WITH GRANT OPTION GRANT SELECT, CREATE ON `db_datadict`.* TO `testuser1`@`localhost` WITH GRANT OPTION
GRANT SELECT ON `db_datadict`.`tb1` TO 'testuser1'@'localhost' GRANT SELECT ON `db_datadict`.`tb1` TO `testuser1`@`localhost`
connect testuser2, localhost, testuser2, , db_datadict; connect testuser2, localhost, testuser2, , db_datadict;
SELECT * FROM information_schema.table_privileges SELECT * FROM information_schema.table_privileges
WHERE table_name LIKE 'tb%' WHERE table_name LIKE 'tb%'
...@@ -107,8 +107,8 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE ...@@ -107,8 +107,8 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
'testuser2'@'localhost' def db_datadict tb1 UPDATE YES 'testuser2'@'localhost' def db_datadict tb1 UPDATE YES
SHOW GRANTS FOR 'testuser2'@'localhost'; SHOW GRANTS FOR 'testuser2'@'localhost';
Grants for testuser2@localhost Grants for testuser2@localhost
GRANT USAGE ON *.* TO 'testuser2'@'localhost' GRANT USAGE ON *.* TO `testuser2`@`localhost`
GRANT ALL PRIVILEGES ON `db_datadict`.`tb1` TO 'testuser2'@'localhost' WITH GRANT OPTION GRANT ALL PRIVILEGES ON `db_datadict`.`tb1` TO `testuser2`@`localhost` WITH GRANT OPTION
connect testuser3, localhost, testuser3, , db_datadict; connect testuser3, localhost, testuser3, , db_datadict;
SELECT * FROM information_schema.table_privileges SELECT * FROM information_schema.table_privileges
WHERE table_name LIKE 'tb%' WHERE table_name LIKE 'tb%'
...@@ -117,8 +117,8 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE ...@@ -117,8 +117,8 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
'testuser3'@'localhost' def db_datadict tb3 SELECT NO 'testuser3'@'localhost' def db_datadict tb3 SELECT NO
SHOW GRANTS FOR 'testuser3'@'localhost'; SHOW GRANTS FOR 'testuser3'@'localhost';
Grants for testuser3@localhost Grants for testuser3@localhost
GRANT USAGE ON *.* TO 'testuser3'@'localhost' GRANT USAGE ON *.* TO `testuser3`@`localhost`
GRANT SELECT ON `db_datadict`.`tb3` TO 'testuser3'@'localhost' GRANT SELECT ON `db_datadict`.`tb3` TO `testuser3`@`localhost`
connection default; connection default;
disconnect testuser1; disconnect testuser1;
disconnect testuser2; disconnect testuser2;
...@@ -144,17 +144,17 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE ...@@ -144,17 +144,17 @@ GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
'testuser3'@'localhost' def db_datadict tb3 SELECT NO 'testuser3'@'localhost' def db_datadict tb3 SELECT NO
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT SELECT, CREATE ON `db_datadict`.* TO 'testuser1'@'localhost' WITH GRANT OPTION GRANT SELECT, CREATE ON `db_datadict`.* TO `testuser1`@`localhost` WITH GRANT OPTION
GRANT SELECT ON `db_datadict`.`tb1` TO 'testuser1'@'localhost' GRANT SELECT ON `db_datadict`.`tb1` TO `testuser1`@`localhost`
SHOW GRANTS FOR 'testuser2'@'localhost'; SHOW GRANTS FOR 'testuser2'@'localhost';
Grants for testuser2@localhost Grants for testuser2@localhost
GRANT USAGE ON *.* TO 'testuser2'@'localhost' GRANT USAGE ON *.* TO `testuser2`@`localhost`
GRANT ALL PRIVILEGES ON `db_datadict`.`tb1` TO 'testuser2'@'localhost' WITH GRANT OPTION GRANT ALL PRIVILEGES ON `db_datadict`.`tb1` TO `testuser2`@`localhost` WITH GRANT OPTION
SHOW GRANTS FOR 'testuser3'@'localhost'; SHOW GRANTS FOR 'testuser3'@'localhost';
Grants for testuser3@localhost Grants for testuser3@localhost
GRANT USAGE ON *.* TO 'testuser3'@'localhost' GRANT USAGE ON *.* TO `testuser3`@`localhost`
GRANT SELECT ON `db_datadict`.`tb3` TO 'testuser3'@'localhost' GRANT SELECT ON `db_datadict`.`tb3` TO `testuser3`@`localhost`
DROP USER 'testuser1'@'localhost'; DROP USER 'testuser1'@'localhost';
DROP USER 'testuser2'@'localhost'; DROP USER 'testuser2'@'localhost';
DROP USER 'testuser3'@'localhost'; DROP USER 'testuser3'@'localhost';
...@@ -226,9 +226,9 @@ SHOW GRANTS FOR 'testuser1'@'localhost'; ...@@ -226,9 +226,9 @@ SHOW GRANTS FOR 'testuser1'@'localhost';
ERROR 42000: There is no such grant defined for user 'testuser1' on host 'localhost' ERROR 42000: There is no such grant defined for user 'testuser1' on host 'localhost'
SHOW GRANTS FOR 'the_user'@'localhost'; SHOW GRANTS FOR 'the_user'@'localhost';
Grants for the_user@localhost Grants for the_user@localhost
GRANT USAGE ON *.* TO 'the_user'@'localhost' GRANT USAGE ON *.* TO `the_user`@`localhost`
GRANT ALL PRIVILEGES ON `test`.`t1_view` TO 'the_user'@'localhost' GRANT ALL PRIVILEGES ON `test`.`t1_view` TO `the_user`@`localhost`
GRANT ALL PRIVILEGES ON `test`.`t1_table` TO 'the_user'@'localhost' GRANT ALL PRIVILEGES ON `test`.`t1_table` TO `the_user`@`localhost`
SELECT DISTINCT table_schema,table_name FROM information_schema.table_privileges SELECT DISTINCT table_schema,table_name FROM information_schema.table_privileges
WHERE table_name LIKE 't1_%' WHERE table_name LIKE 't1_%'
ORDER BY table_schema,table_name; ORDER BY table_schema,table_name;
...@@ -246,9 +246,9 @@ test t1_table ...@@ -246,9 +246,9 @@ test t1_table
test t1_view test t1_view
SHOW GRANTS FOR 'the_user'@'localhost'; SHOW GRANTS FOR 'the_user'@'localhost';
Grants for the_user@localhost Grants for the_user@localhost
GRANT USAGE ON *.* TO 'the_user'@'localhost' GRANT USAGE ON *.* TO `the_user`@`localhost`
GRANT ALL PRIVILEGES ON `test`.`t1_view` TO 'the_user'@'localhost' GRANT ALL PRIVILEGES ON `test`.`t1_view` TO `the_user`@`localhost`
GRANT ALL PRIVILEGES ON `test`.`t1_table` TO 'the_user'@'localhost' GRANT ALL PRIVILEGES ON `test`.`t1_table` TO `the_user`@`localhost`
REVOKE ALL PRIVILEGES ON test.t1_table FROM 'the_user'@'localhost'; REVOKE ALL PRIVILEGES ON test.t1_table FROM 'the_user'@'localhost';
REVOKE ALL PRIVILEGES ON test.t1_view FROM 'the_user'@'localhost'; REVOKE ALL PRIVILEGES ON test.t1_view FROM 'the_user'@'localhost';
DROP VIEW test.t1_view; DROP VIEW test.t1_view;
......
...@@ -145,8 +145,8 @@ trg1 INSERT t1 SET @test_before = 2, new.f1 = @test_before BEFORE # testuser1@l ...@@ -145,8 +145,8 @@ trg1 INSERT t1 SET @test_before = 2, new.f1 = @test_before BEFORE # testuser1@l
connect testuser2, localhost, testuser2, , db_datadict; connect testuser2, localhost, testuser2, , db_datadict;
SHOW GRANTS FOR 'testuser2'@'localhost'; SHOW GRANTS FOR 'testuser2'@'localhost';
Grants for testuser2@localhost Grants for testuser2@localhost
GRANT USAGE ON *.* TO 'testuser2'@'localhost' GRANT USAGE ON *.* TO `testuser2`@`localhost`
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW, DELETE HISTORY ON `db_datadict`.`t1` TO 'testuser2'@'localhost' GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW, DELETE HISTORY ON `db_datadict`.`t1` TO `testuser2`@`localhost`
# No TRIGGER Privilege --> no result for query # No TRIGGER Privilege --> no result for query
SELECT * FROM information_schema.triggers SELECT * FROM information_schema.triggers
WHERE trigger_name = 'trg1'; WHERE trigger_name = 'trg1';
...@@ -156,8 +156,8 @@ Trigger Event Table Statement Timing Created sql_mode Definer character_set_clie ...@@ -156,8 +156,8 @@ Trigger Event Table Statement Timing Created sql_mode Definer character_set_clie
connect testuser3, localhost, testuser3, , test; connect testuser3, localhost, testuser3, , test;
SHOW GRANTS FOR 'testuser3'@'localhost'; SHOW GRANTS FOR 'testuser3'@'localhost';
Grants for testuser3@localhost Grants for testuser3@localhost
GRANT TRIGGER ON *.* TO 'testuser3'@'localhost' GRANT TRIGGER ON *.* TO `testuser3`@`localhost`
GRANT SELECT ON `db_datadict`.`t1` TO 'testuser3'@'localhost' GRANT SELECT ON `db_datadict`.`t1` TO `testuser3`@`localhost`
# TRIGGER Privilege + SELECT Privilege on t1 --> result for query # TRIGGER Privilege + SELECT Privilege on t1 --> result for query
SELECT * FROM information_schema.triggers SELECT * FROM information_schema.triggers
WHERE trigger_name = 'trg1'; WHERE trigger_name = 'trg1';
...@@ -169,7 +169,7 @@ trg1 INSERT t1 SET @test_before = 2, new.f1 = @test_before BEFORE # testuser1@l ...@@ -169,7 +169,7 @@ trg1 INSERT t1 SET @test_before = 2, new.f1 = @test_before BEFORE # testuser1@l
connect testuser4, localhost, testuser4, , test; connect testuser4, localhost, testuser4, , test;
SHOW GRANTS FOR 'testuser4'@'localhost'; SHOW GRANTS FOR 'testuser4'@'localhost';
Grants for testuser4@localhost Grants for testuser4@localhost
GRANT TRIGGER ON *.* TO 'testuser4'@'localhost' GRANT TRIGGER ON *.* TO `testuser4`@`localhost`
# TRIGGER Privilege + no SELECT Privilege on t1 --> result for query # TRIGGER Privilege + no SELECT Privilege on t1 --> result for query
SELECT * FROM db_datadict.t1; SELECT * FROM db_datadict.t1;
ERROR 42000: SELECT command denied to user 'testuser4'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'testuser4'@'localhost' for table 't1'
......
...@@ -194,9 +194,9 @@ json_detailed(priv) { ...@@ -194,9 +194,9 @@ json_detailed(priv) {
} }
SHOW GRANTS; SHOW GRANTS;
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT SELECT, UPDATE ON `db_datadict`.* TO 'testuser1'@'localhost' WITH GRANT OPTION GRANT SELECT, UPDATE ON `db_datadict`.* TO `testuser1`@`localhost` WITH GRANT OPTION
GRANT SELECT ON `mysql`.`global_priv` TO 'testuser1'@'localhost' GRANT SELECT ON `mysql`.`global_priv` TO `testuser1`@`localhost`
# Now add SELECT on *.* to testuser1; # Now add SELECT on *.* to testuser1;
connection default; connection default;
...@@ -332,9 +332,9 @@ json_detailed(priv) { ...@@ -332,9 +332,9 @@ json_detailed(priv) {
} }
SHOW GRANTS; SHOW GRANTS;
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT SELECT ON *.* TO 'testuser1'@'localhost' WITH GRANT OPTION GRANT SELECT ON *.* TO `testuser1`@`localhost` WITH GRANT OPTION
GRANT SELECT, UPDATE ON `db_datadict`.* TO 'testuser1'@'localhost' WITH GRANT OPTION GRANT SELECT, UPDATE ON `db_datadict`.* TO `testuser1`@`localhost` WITH GRANT OPTION
GRANT SELECT ON `mysql`.`global_priv` TO 'testuser1'@'localhost' GRANT SELECT ON `mysql`.`global_priv` TO `testuser1`@`localhost`
connect testuser2, localhost, testuser2, , db_datadict; connect testuser2, localhost, testuser2, , db_datadict;
SELECT * FROM information_schema.user_privileges SELECT * FROM information_schema.user_privileges
WHERE grantee LIKE '''testuser%''' WHERE grantee LIKE '''testuser%'''
...@@ -352,7 +352,7 @@ WHERE user LIKE 'testuser%' ORDER BY host, user; ...@@ -352,7 +352,7 @@ WHERE user LIKE 'testuser%' ORDER BY host, user;
ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table 'global_priv' ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table 'global_priv'
SHOW GRANTS; SHOW GRANTS;
Grants for testuser2@localhost Grants for testuser2@localhost
GRANT INSERT, UPDATE ON *.* TO 'testuser2'@'localhost' GRANT INSERT, UPDATE ON *.* TO `testuser2`@`localhost`
connect testuser3, localhost, testuser3, , test; connect testuser3, localhost, testuser3, , test;
SELECT * FROM information_schema.user_privileges SELECT * FROM information_schema.user_privileges
WHERE grantee LIKE '''testuser%''' WHERE grantee LIKE '''testuser%'''
...@@ -366,7 +366,7 @@ WHERE user LIKE 'testuser%' ORDER BY host, user; ...@@ -366,7 +366,7 @@ WHERE user LIKE 'testuser%' ORDER BY host, user;
ERROR 42000: SELECT command denied to user 'testuser3'@'localhost' for table 'global_priv' ERROR 42000: SELECT command denied to user 'testuser3'@'localhost' for table 'global_priv'
SHOW GRANTS; SHOW GRANTS;
Grants for testuser3@localhost Grants for testuser3@localhost
GRANT USAGE ON *.* TO 'testuser3'@'localhost' GRANT USAGE ON *.* TO `testuser3`@`localhost`
# Revoke privileges from testuser1; # Revoke privileges from testuser1;
connection default; connection default;
...@@ -429,7 +429,7 @@ WHERE user LIKE 'testuser%' ORDER BY host, user; ...@@ -429,7 +429,7 @@ WHERE user LIKE 'testuser%' ORDER BY host, user;
ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 'global_priv' ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 'global_priv'
SHOW GRANTS; SHOW GRANTS;
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
CREATE TABLE db_datadict.tb_55 ( c1 TEXT ); CREATE TABLE db_datadict.tb_55 ( c1 TEXT );
ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table 'tb_55' ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table 'tb_55'
SELECT * FROM information_schema.user_privileges SELECT * FROM information_schema.user_privileges
...@@ -444,7 +444,7 @@ WHERE user LIKE 'testuser%' ORDER BY host, user; ...@@ -444,7 +444,7 @@ WHERE user LIKE 'testuser%' ORDER BY host, user;
ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 'global_priv' ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 'global_priv'
SHOW GRANTS; SHOW GRANTS;
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
CREATE TABLE db_datadict.tb_66 ( c1 TEXT ); CREATE TABLE db_datadict.tb_66 ( c1 TEXT );
ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table 'tb_66' ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table 'tb_66'
...@@ -533,9 +533,9 @@ json_detailed(priv) { ...@@ -533,9 +533,9 @@ json_detailed(priv) {
} }
SHOW GRANTS; SHOW GRANTS;
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'testuser1'@'localhost' WITH GRANT OPTION GRANT ALL PRIVILEGES ON `db_datadict`.* TO `testuser1`@`localhost` WITH GRANT OPTION
GRANT SELECT ON `mysql`.`global_priv` TO 'testuser1'@'localhost' GRANT SELECT ON `mysql`.`global_priv` TO `testuser1`@`localhost`
CREATE TABLE db_datadict.tb_56 ( c1 TEXT ); CREATE TABLE db_datadict.tb_56 ( c1 TEXT );
ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table 'tb_56' ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table 'tb_56'
USE db_datadict; USE db_datadict;
...@@ -574,9 +574,9 @@ json_detailed(priv) { ...@@ -574,9 +574,9 @@ json_detailed(priv) {
} }
SHOW GRANTS; SHOW GRANTS;
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'testuser1'@'localhost' WITH GRANT OPTION GRANT ALL PRIVILEGES ON `db_datadict`.* TO `testuser1`@`localhost` WITH GRANT OPTION
GRANT SELECT ON `mysql`.`global_priv` TO 'testuser1'@'localhost' GRANT SELECT ON `mysql`.`global_priv` TO `testuser1`@`localhost`
CREATE TABLE tb_57 ( c1 TEXT ) CREATE TABLE tb_57 ( c1 TEXT )
ENGINE = <other_engine_type>; ENGINE = <other_engine_type>;
...@@ -641,7 +641,7 @@ WHERE user LIKE 'testuser%' ORDER BY host, user; ...@@ -641,7 +641,7 @@ WHERE user LIKE 'testuser%' ORDER BY host, user;
ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 'global_priv' ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 'global_priv'
SHOW GRANTS; SHOW GRANTS;
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
CREATE TABLE db_datadict.tb_58 ( c1 TEXT ) CREATE TABLE db_datadict.tb_58 ( c1 TEXT )
ENGINE = <other_engine_type>; ENGINE = <other_engine_type>;
USE db_datadict; USE db_datadict;
...@@ -673,7 +673,7 @@ PRIVILEGE_TYPE USAGE ...@@ -673,7 +673,7 @@ PRIVILEGE_TYPE USAGE
IS_GRANTABLE NO IS_GRANTABLE NO
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO 'testuser1'@'localhost' GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT SELECT, FILE ON *.* TO 'testuser1'@'localhost'; GRANT SELECT, FILE ON *.* TO 'testuser1'@'localhost';
SELECT * FROM information_schema.user_privileges SELECT * FROM information_schema.user_privileges
WHERE grantee = '''testuser1''@''localhost'''; WHERE grantee = '''testuser1''@''localhost''';
...@@ -687,7 +687,7 @@ PRIVILEGE_TYPE FILE ...@@ -687,7 +687,7 @@ PRIVILEGE_TYPE FILE
IS_GRANTABLE NO IS_GRANTABLE NO
SHOW GRANTS FOR 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost';
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT SELECT, FILE ON *.* TO 'testuser1'@'localhost' GRANT SELECT, FILE ON *.* TO `testuser1`@`localhost`
DROP USER 'testuser1'@'localhost'; DROP USER 'testuser1'@'localhost';
SELECT * FROM information_schema.user_privileges SELECT * FROM information_schema.user_privileges
WHERE grantee = '''testuser1''@''localhost'''; WHERE grantee = '''testuser1''@''localhost''';
......
...@@ -74,7 +74,7 @@ GRANT INSERT,UPDATE ON processlist TO current_user; ...@@ -74,7 +74,7 @@ GRANT INSERT,UPDATE ON processlist TO current_user;
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
SHOW GRANTS; SHOW GRANTS;
Grants for root@localhost Grants for root@localhost
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
CREATE INDEX i_processlist ON processlist (user); CREATE INDEX i_processlist ON processlist (user);
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
...@@ -151,7 +151,7 @@ GRANT INSERT,UPDATE ON processlist TO current_user; ...@@ -151,7 +151,7 @@ GRANT INSERT,UPDATE ON processlist TO current_user;
ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema' ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
SHOW GRANTS; SHOW GRANTS;
Grants for ddicttestuser1@localhost Grants for ddicttestuser1@localhost
GRANT USAGE ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1' GRANT USAGE ON *.* TO `ddicttestuser1`@`localhost` IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
CREATE INDEX i_processlist ON processlist (user); CREATE INDEX i_processlist ON processlist (user);
ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema' ERROR 42000: Access denied for user 'ddicttestuser1'@'localhost' to database 'information_schema'
DROP TABLE processlist; DROP TABLE processlist;
...@@ -187,7 +187,7 @@ SHOW/SELECT shows only the processes (1) of the user. ...@@ -187,7 +187,7 @@ SHOW/SELECT shows only the processes (1) of the user.
connection con100; connection con100;
SHOW GRANTS; SHOW GRANTS;
Grants for ddicttestuser1@localhost Grants for ddicttestuser1@localhost
GRANT PROCESS ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1' GRANT PROCESS ON *.* TO `ddicttestuser1`@`localhost` IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
SHOW processlist; SHOW processlist;
Id User Host db Command Time State Info Progress Id User Host db Command Time State Info Progress
ID ddicttestuser1 HOST_NAME information_schema Query TIME Init SHOW processlist TIME_MS ID ddicttestuser1 HOST_NAME information_schema Query TIME Init SHOW processlist TIME_MS
...@@ -201,7 +201,7 @@ SHOW/SELECT shows all processes/threads. ...@@ -201,7 +201,7 @@ SHOW/SELECT shows all processes/threads.
connect con101,localhost,ddicttestuser1,ddictpass,information_schema; connect con101,localhost,ddicttestuser1,ddictpass,information_schema;
SHOW GRANTS; SHOW GRANTS;
Grants for ddicttestuser1@localhost Grants for ddicttestuser1@localhost
GRANT PROCESS ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1' GRANT PROCESS ON *.* TO `ddicttestuser1`@`localhost` IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
SHOW processlist; SHOW processlist;
Id User Host db Command Time State Info Progress Id User Host db Command Time State Info Progress
ID root HOST_NAME information_schema Sleep TIME NULL TIME_MS ID root HOST_NAME information_schema Sleep TIME NULL TIME_MS
...@@ -227,7 +227,7 @@ SHOW/SELECT shows all processes/threads. ...@@ -227,7 +227,7 @@ SHOW/SELECT shows all processes/threads.
connect anonymous1,localhost,"''",,information_schema; connect anonymous1,localhost,"''",,information_schema;
SHOW GRANTS; SHOW GRANTS;
Grants for @localhost Grants for @localhost
GRANT PROCESS ON *.* TO ''@'localhost' GRANT PROCESS ON *.* TO ``@`localhost`
SHOW processlist; SHOW processlist;
Id User Host db Command Time State Info Progress Id User Host db Command Time State Info Progress
ID root HOST_NAME information_schema Sleep TIME NULL TIME_MS ID root HOST_NAME information_schema Sleep TIME NULL TIME_MS
...@@ -254,7 +254,7 @@ ddicttestuser1 are visible. ...@@ -254,7 +254,7 @@ ddicttestuser1 are visible.
#################################################################################### ####################################################################################
SHOW GRANTS; SHOW GRANTS;
Grants for ddicttestuser1@localhost Grants for ddicttestuser1@localhost
GRANT USAGE ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1' GRANT USAGE ON *.* TO `ddicttestuser1`@`localhost` IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
SHOW processlist; SHOW processlist;
Id User Host db Command Time State Info Progress Id User Host db Command Time State Info Progress
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
...@@ -279,7 +279,7 @@ Again only the processes of the anonymous user are visible. ...@@ -279,7 +279,7 @@ Again only the processes of the anonymous user are visible.
#################################################################################### ####################################################################################
SHOW GRANTS FOR ''@'localhost'; SHOW GRANTS FOR ''@'localhost';
Grants for @localhost Grants for @localhost
GRANT USAGE ON *.* TO ''@'localhost' GRANT USAGE ON *.* TO ``@`localhost`
SELECT * FROM information_schema.processlist; SELECT * FROM information_schema.processlist;
ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED MAX_MEMORY_USED EXAMINED_ROWS QUERY_ID INFO_BINARY TID ID USER HOST DB COMMAND TIME STATE INFO TIME_MS STAGE MAX_STAGE PROGRESS MEMORY_USED MAX_MEMORY_USED EXAMINED_ROWS QUERY_ID INFO_BINARY TID
ID HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY MAX_MEMORY ROWS QUERY_ID SELECT * FROM information_schema.processlist TID ID HOST_NAME information_schema Query TIME Filling schema table SELECT * FROM information_schema.processlist TIME_MS 0 0 0.000 MEMORY MAX_MEMORY ROWS QUERY_ID SELECT * FROM information_schema.processlist TID
...@@ -297,7 +297,7 @@ Only the processes of ddicttestuser1 user are visible. ...@@ -297,7 +297,7 @@ Only the processes of ddicttestuser1 user are visible.
#################################################################################### ####################################################################################
SHOW GRANTS FOR 'ddicttestuser1'@'localhost'; SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
Grants for ddicttestuser1@localhost Grants for ddicttestuser1@localhost
GRANT SUPER ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1' GRANT SUPER ON *.* TO `ddicttestuser1`@`localhost` IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
SHOW processlist; SHOW processlist;
Id User Host db Command Time State Info Progress Id User Host db Command Time State Info Progress
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
...@@ -324,7 +324,7 @@ Only the processes of ddicttestuser1 are visible. ...@@ -324,7 +324,7 @@ Only the processes of ddicttestuser1 are visible.
#################################################################################### ####################################################################################
SHOW GRANTS FOR 'ddicttestuser1'@'localhost'; SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
Grants for ddicttestuser1@localhost Grants for ddicttestuser1@localhost
GRANT USAGE ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1' GRANT USAGE ON *.* TO `ddicttestuser1`@`localhost` IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
SHOW processlist; SHOW processlist;
Id User Host db Command Time State Info Progress Id User Host db Command Time State Info Progress
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
...@@ -352,7 +352,7 @@ Try to grant PROCESS privilege to user ddicttestuser2 without having it. ...@@ -352,7 +352,7 @@ Try to grant PROCESS privilege to user ddicttestuser2 without having it.
#################################################################################### ####################################################################################
SHOW GRANTS FOR 'ddicttestuser1'@'localhost'; SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
Grants for ddicttestuser1@localhost Grants for ddicttestuser1@localhost
GRANT SUPER ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1' WITH GRANT OPTION GRANT SUPER ON *.* TO `ddicttestuser1`@`localhost` IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1' WITH GRANT OPTION
GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost'; GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost';
ERROR 28000: Access denied for user 'ddicttestuser1'@'localhost' (using password: YES) ERROR 28000: Access denied for user 'ddicttestuser1'@'localhost' (using password: YES)
#################################################################################### ####################################################################################
...@@ -368,7 +368,7 @@ Grant PROCESS privilege to user ddicttestuser2 ...@@ -368,7 +368,7 @@ Grant PROCESS privilege to user ddicttestuser2
#################################################################################### ####################################################################################
SHOW GRANTS FOR 'ddicttestuser1'@'localhost'; SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
Grants for ddicttestuser1@localhost Grants for ddicttestuser1@localhost
GRANT PROCESS, SUPER ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1' WITH GRANT OPTION GRANT PROCESS, SUPER ON *.* TO `ddicttestuser1`@`localhost` IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1' WITH GRANT OPTION
GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost'; GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost';
#################################################################################### ####################################################################################
10.4 New connection con200 (ddicttestuser2 with PROCESS privilege) 10.4 New connection con200 (ddicttestuser2 with PROCESS privilege)
...@@ -377,7 +377,7 @@ ddicttestuser2 has now the PROCESS privilege and sees all connections ...@@ -377,7 +377,7 @@ ddicttestuser2 has now the PROCESS privilege and sees all connections
#################################################################################### ####################################################################################
SHOW GRANTS FOR 'ddicttestuser2'@'localhost'; SHOW GRANTS FOR 'ddicttestuser2'@'localhost';
Grants for ddicttestuser2@localhost Grants for ddicttestuser2@localhost
GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1' GRANT PROCESS ON *.* TO `ddicttestuser2`@`localhost` IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
SHOW processlist; SHOW processlist;
Id User Host db Command Time State Info Progress Id User Host db Command Time State Info Progress
ID root HOST_NAME information_schema Sleep TIME NULL TIME_MS ID root HOST_NAME information_schema Sleep TIME NULL TIME_MS
...@@ -417,7 +417,7 @@ ddicttestuser2 has no more the PROCESS privilege and can only see own connects ...@@ -417,7 +417,7 @@ ddicttestuser2 has no more the PROCESS privilege and can only see own connects
#################################################################################### ####################################################################################
SHOW GRANTS; SHOW GRANTS;
Grants for ddicttestuser2@localhost Grants for ddicttestuser2@localhost
GRANT USAGE ON *.* TO 'ddicttestuser2'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1' GRANT USAGE ON *.* TO `ddicttestuser2`@`localhost` IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
SHOW processlist; SHOW processlist;
Id User Host db Command Time State Info Progress Id User Host db Command Time State Info Progress
ID ddicttestuser2 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser2 HOST_NAME information_schema Sleep TIME NULL TIME_MS
...@@ -440,7 +440,7 @@ He is also unable to GRANT the PROCESS privilege to ddicttestuser2 ...@@ -440,7 +440,7 @@ He is also unable to GRANT the PROCESS privilege to ddicttestuser2
#################################################################################### ####################################################################################
SHOW GRANTS FOR 'ddicttestuser1'@'localhost'; SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
Grants for ddicttestuser1@localhost Grants for ddicttestuser1@localhost
GRANT USAGE ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1' GRANT USAGE ON *.* TO `ddicttestuser1`@`localhost` IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost'; GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost';
ERROR 28000: Access denied for user 'ddicttestuser1'@'localhost' (using password: YES) ERROR 28000: Access denied for user 'ddicttestuser1'@'localhost' (using password: YES)
SHOW processlist; SHOW processlist;
...@@ -479,7 +479,7 @@ Therefore the missing SELECT privilege does not affect SELECTs on PROCESSLIST. ...@@ -479,7 +479,7 @@ Therefore the missing SELECT privilege does not affect SELECTs on PROCESSLIST.
#################################################################################### ####################################################################################
SHOW GRANTS FOR 'ddicttestuser1'@'localhost'; SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
Grants for ddicttestuser1@localhost Grants for ddicttestuser1@localhost
GRANT USAGE ON *.* TO 'ddicttestuser1'@'localhost' IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1' GRANT USAGE ON *.* TO `ddicttestuser1`@`localhost` IDENTIFIED BY PASSWORD '*22DA61451703738F203CDB9DB041ACBA1F4760B1'
SHOW processlist; SHOW processlist;
Id User Host db Command Time State Info Progress Id User Host db Command Time State Info Progress
ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS ID ddicttestuser1 HOST_NAME information_schema Sleep TIME NULL TIME_MS
......
This diff is collapsed.
...@@ -28,8 +28,8 @@ GRANT ALL PRIVILEGES ON testdb_9401.t1 TO dummy@localhost; ...@@ -28,8 +28,8 @@ GRANT ALL PRIVILEGES ON testdb_9401.t1 TO dummy@localhost;
FLUSH PRIVILEGES; FLUSH PRIVILEGES;
SHOW GRANTS FOR dummy@localhost; SHOW GRANTS FOR dummy@localhost;
Grants for dummy@localhost Grants for dummy@localhost
GRANT USAGE ON *.* TO 'dummy'@'localhost' GRANT USAGE ON *.* TO `dummy`@`localhost`
GRANT ALL PRIVILEGES ON `testdb_9401`.`t1` TO 'dummy'@'localhost' GRANT ALL PRIVILEGES ON `testdb_9401`.`t1` TO `dummy`@`localhost`
REVOKE ALL PRIVILEGES, GRANT OPTION FROM dummy@localhost; REVOKE ALL PRIVILEGES, GRANT OPTION FROM dummy@localhost;
DROP USER dummy@localhost; DROP USER dummy@localhost;
DROP DATABASE testdb_9401; DROP DATABASE testdb_9401;
......
...@@ -28,8 +28,8 @@ connect foo_node_2,127.0.0.1,foo,,test,$port_2,; ...@@ -28,8 +28,8 @@ connect foo_node_2,127.0.0.1,foo,,test,$port_2,;
connection foo_node_1; connection foo_node_1;
SHOW GRANTS; SHOW GRANTS;
Grants for foo@localhost Grants for foo@localhost
GRANT role1 TO 'foo'@'localhost' GRANT `role1` TO `foo`@`localhost`
GRANT USAGE ON *.* TO 'foo'@'localhost' GRANT USAGE ON *.* TO `foo`@`localhost`
FLUSH TABLES; FLUSH TABLES;
ERROR 42000: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation ERROR 42000: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation
SELECT * FROM mysql.roles_mapping; SELECT * FROM mysql.roles_mapping;
...@@ -64,8 +64,8 @@ pr1 ...@@ -64,8 +64,8 @@ pr1
connection foo_node_2; connection foo_node_2;
SHOW GRANTS; SHOW GRANTS;
Grants for foo@localhost Grants for foo@localhost
GRANT role1 TO 'foo'@'localhost' GRANT `role1` TO `foo`@`localhost`
GRANT USAGE ON *.* TO 'foo'@'localhost' GRANT USAGE ON *.* TO `foo`@`localhost`
FLUSH TABLES; FLUSH TABLES;
ERROR 42000: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation ERROR 42000: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation
SELECT * FROM mysql.roles_mapping; SELECT * FROM mysql.roles_mapping;
...@@ -131,7 +131,7 @@ SELECT a FROM test1.t2; ...@@ -131,7 +131,7 @@ SELECT a FROM test1.t2;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 't2'
SHOW GRANTS; SHOW GRANTS;
Grants for foo@localhost Grants for foo@localhost
GRANT USAGE ON *.* TO 'foo'@'localhost' GRANT USAGE ON *.* TO `foo`@`localhost`
SELECT * FROM INFORMATION_SCHEMA.ENABLED_ROLES; SELECT * FROM INFORMATION_SCHEMA.ENABLED_ROLES;
ROLE_NAME ROLE_NAME
NULL NULL
...@@ -153,7 +153,7 @@ SELECT a FROM test1.t2; ...@@ -153,7 +153,7 @@ SELECT a FROM test1.t2;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 't2'
SHOW GRANTS; SHOW GRANTS;
Grants for foo@localhost Grants for foo@localhost
GRANT USAGE ON *.* TO 'foo'@'localhost' GRANT USAGE ON *.* TO `foo`@`localhost`
SELECT * FROM INFORMATION_SCHEMA.ENABLED_ROLES; SELECT * FROM INFORMATION_SCHEMA.ENABLED_ROLES;
ROLE_NAME ROLE_NAME
NULL NULL
......
This diff is collapsed.
This diff is collapsed.
call mtr.add_suppression("InnoDB: Tablespace for table .* is set as discarded");
CREATE TABLE mdev21563(f1 VARCHAR(100), FULLTEXT idx(f1))ENGINE=InnoDB;
set debug_dbug="+d,fts_instrument_sync_request";
INSERT INTO mdev21563 VALUES('This is a test');
ALTER TABLE mdev21563 DISCARD TABLESPACE;
# restart
DROP TABLE mdev21563;
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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