summaryrefslogtreecommitdiff
path: root/mysql-test/suite/roles/create_and_drop_role_invalid_user_table.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/roles/create_and_drop_role_invalid_user_table.test')
-rw-r--r--mysql-test/suite/roles/create_and_drop_role_invalid_user_table.test28
1 files changed, 25 insertions, 3 deletions
diff --git a/mysql-test/suite/roles/create_and_drop_role_invalid_user_table.test b/mysql-test/suite/roles/create_and_drop_role_invalid_user_table.test
index fddab717245..ebd75c34ca1 100644
--- a/mysql-test/suite/roles/create_and_drop_role_invalid_user_table.test
+++ b/mysql-test/suite/roles/create_and_drop_role_invalid_user_table.test
@@ -1,9 +1,18 @@
+#
+# Test that SET DEFAULT ROLE doesn't work on old privilege tables
+# that don't have 'default_role' column
+#
source include/not_embedded.inc;
connect (mysql, localhost, root,,);
use mysql;
+#
+# downgrade the table to pre-default-role structure
+#
alter table user drop column is_role;
+alter table user drop column default_role;
+alter table user drop column max_statement_time;
flush privileges;
@@ -16,11 +25,24 @@ alter table user add column is_role enum('N', 'Y') default 'N' not null
COLLATE utf8_general_ci
after password_expired;
-update user set is_role='N';
-
-flush privileges;
+# Test default role column
create role test_role;
+create user test_user@localhost;
+grant test_role to test_user@localhost;
+--replace_regex /10\d\d\d\d/MYSQL_VERSION_ID/
+--error ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE
+set default role test_role for root@localhost;
drop role test_role;
+drop user test_user@localhost;
+alter table user add column default_role char(80) binary default '' not null
+ COLLATE utf8_general_ci
+after is_role;
+alter table user add max_statement_time decimal(12,6) default 0 not null
+after default_role;
+update user set is_role='N';
+flush privileges;
+create role test_role;
+drop role test_role;