Commit 85b08597 authored by Vicențiu Ciorbaru's avatar Vicențiu Ciorbaru Committed by Daniel Black

[MDEV-7978] Post review fixes and cleanups.

* Maintain coding style in sql_yacc.yy in regards to optional clauses.
* Remove unused variable from sql_acl.cc.
* Update test case
parent f3f45e46
...@@ -47,7 +47,7 @@ alter if exists user boo; ...@@ -47,7 +47,7 @@ alter if exists user boo;
Warnings: Warnings:
Error 1133 Can't find any matching row in the user table Error 1133 Can't find any matching row in the user table
Note 1396 Operation ALTER USER failed for 'boo' Note 1396 Operation ALTER USER failed for 'boo'
# Test SSL related altering. # Test password related altering.
alter user foo identified by 'something'; alter user foo identified by 'something';
select * from mysql.user where user = 'foo'; select * from mysql.user where user = 'foo';
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string password_expired is_role default_role max_statement_time Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string password_expired is_role default_role max_statement_time
...@@ -68,6 +68,20 @@ alter user foo identified with 'somecoolplugin' using 'somecoolpassphrase'; ...@@ -68,6 +68,20 @@ alter user foo identified with 'somecoolplugin' using 'somecoolpassphrase';
select * from mysql.user where user = 'foo'; select * from mysql.user where user = 'foo';
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string password_expired is_role default_role max_statement_time Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string password_expired is_role default_role max_statement_time
% foo N N N N N N N N N N N N N N N Y N N N N N N N N N Y N N N 0 0 0 0 somecoolplugin somecoolpassphrase N N 0.000000 % foo N N N N N N N N N N N N N N N Y N N N N N N N N N Y N N N 0 0 0 0 somecoolplugin somecoolpassphrase N N 0.000000
# Test ssl related altering.
alter user foo identified by 'something' require SSL;
select * from mysql.user where user = 'foo';
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string password_expired is_role default_role max_statement_time
% foo *88C89BE093D4ECF72D039F62EBB7477EA1FD4D63 N N N N N N N N N N N N N N N Y N N N N N N N N N Y N N N ANY 0 0 0 0 N N 0.000000
alter user foo identified by 'something' require X509;
select * from mysql.user where user = 'foo';
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string password_expired is_role default_role max_statement_time
% foo *88C89BE093D4ECF72D039F62EBB7477EA1FD4D63 N N N N N N N N N N N N N N N Y N N N N N N N N N Y N N N X509 0 0 0 0 N N 0.000000
alter user foo identified by 'something'
require cipher 'text' issuer 'foo_issuer' subject 'foo_subject';
select * from mysql.user where user = 'foo';
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string password_expired is_role default_role max_statement_time
% foo *88C89BE093D4ECF72D039F62EBB7477EA1FD4D63 N N N N N N N N N N N N N N N Y N N N N N N N N N Y N N N SPECIFIED text foo_issuer foo_subject 0 0 0 0 N N 0.000000
# Test resource limits altering. # Test resource limits altering.
alter user foo with MAX_QUERIES_PER_HOUR 10 alter user foo with MAX_QUERIES_PER_HOUR 10
MAX_UPDATES_PER_HOUR 20 MAX_UPDATES_PER_HOUR 20
...@@ -75,5 +89,5 @@ MAX_CONNECTIONS_PER_HOUR 30 ...@@ -75,5 +89,5 @@ MAX_CONNECTIONS_PER_HOUR 30
MAX_USER_CONNECTIONS 40; MAX_USER_CONNECTIONS 40;
select * from mysql.user where user = 'foo'; select * from mysql.user where user = 'foo';
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string password_expired is_role default_role max_statement_time Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin authentication_string password_expired is_role default_role max_statement_time
% foo N N N N N N N N N N N N N N N Y N N N N N N N N N Y N N N 10 20 30 40 somecoolplugin somecoolpassphrase N N 0.000000 % foo *88C89BE093D4ECF72D039F62EBB7477EA1FD4D63 N N N N N N N N N N N N N N N Y N N N N N N N N N Y N N N SPECIFIED text foo_issuer foo_subject 10 20 30 40 N N 0.000000
drop user foo; drop user foo;
...@@ -45,7 +45,7 @@ alter user boo; ...@@ -45,7 +45,7 @@ alter user boo;
--echo #--warning ER_CANNOT_USER --echo #--warning ER_CANNOT_USER
alter if exists user boo; alter if exists user boo;
--echo # Test SSL related altering. --echo # Test password related altering.
alter user foo identified by 'something'; alter user foo identified by 'something';
select * from mysql.user where user = 'foo'; select * from mysql.user where user = 'foo';
...@@ -61,6 +61,17 @@ select * from mysql.user where user = 'foo'; ...@@ -61,6 +61,17 @@ select * from mysql.user where user = 'foo';
alter user foo identified with 'somecoolplugin' using 'somecoolpassphrase'; alter user foo identified with 'somecoolplugin' using 'somecoolpassphrase';
select * from mysql.user where user = 'foo'; select * from mysql.user where user = 'foo';
--echo # Test ssl related altering.
alter user foo identified by 'something' require SSL;
select * from mysql.user where user = 'foo';
alter user foo identified by 'something' require X509;
select * from mysql.user where user = 'foo';
alter user foo identified by 'something'
require cipher 'text' issuer 'foo_issuer' subject 'foo_subject';
select * from mysql.user where user = 'foo';
--echo # Test resource limits altering. --echo # Test resource limits altering.
alter user foo with MAX_QUERIES_PER_HOUR 10 alter user foo with MAX_QUERIES_PER_HOUR 10
MAX_UPDATES_PER_HOUR 20 MAX_UPDATES_PER_HOUR 20
......
...@@ -7907,7 +7907,6 @@ bool mysql_show_create_user(THD *thd, LEX_USER *lex_user) ...@@ -7907,7 +7907,6 @@ bool mysql_show_create_user(THD *thd, LEX_USER *lex_user)
hostname= thd->security_ctx->priv_host; hostname= thd->security_ctx->priv_host;
} }
String field_name(buff, sizeof(buff), system_charset_info);
List<Item> field_list; List<Item> field_list;
strxmov(buff, "CREATE USER for ", username, "@", hostname, NullS); strxmov(buff, "CREATE USER for ", username, "@", hostname, NullS);
Item_string *field = new (thd->mem_root) Item_string_ascii(thd, "", 0); Item_string *field = new (thd->mem_root) Item_string_ascii(thd, "", 0);
......
...@@ -2532,7 +2532,7 @@ create: ...@@ -2532,7 +2532,7 @@ create:
} }
view_or_trigger_or_sp_or_event { } view_or_trigger_or_sp_or_event { }
| create_or_replace USER opt_if_not_exists clear_privileges grant_list | create_or_replace USER opt_if_not_exists clear_privileges grant_list
require_clause resource_options opt_require_clause opt_resource_options
{ {
if (Lex->set_command_with_check(SQLCOM_CREATE_USER, $1 | $3)) if (Lex->set_command_with_check(SQLCOM_CREATE_USER, $1 | $3))
MYSQL_YYABORT; MYSQL_YYABORT;
...@@ -7107,8 +7107,9 @@ alter: ...@@ -7107,8 +7107,9 @@ alter:
lex->sql_command= SQLCOM_ALTER_SERVER; lex->sql_command= SQLCOM_ALTER_SERVER;
lex->server_options.reset($3); lex->server_options.reset($3);
} OPTIONS_SYM '(' server_options_list ')' { } } OPTIONS_SYM '(' server_options_list ')' { }
/* ALTER USER foo is allowed for MySQL compatibility. */
| ALTER opt_if_exists USER clear_privileges grant_list | ALTER opt_if_exists USER clear_privileges grant_list
require_clause resource_options opt_require_clause opt_resource_options
{ {
Lex->create_info.set($2); Lex->create_info.set($2);
Lex->sql_command= SQLCOM_ALTER_USER; Lex->sql_command= SQLCOM_ALTER_USER;
...@@ -15055,14 +15056,14 @@ grant: ...@@ -15055,14 +15056,14 @@ grant:
grant_command: grant_command:
grant_privileges ON opt_table grant_ident TO_SYM grant_list grant_privileges ON opt_table grant_ident TO_SYM grant_list
require_clause grant_options opt_require_clause opt_grant_options
{ {
LEX *lex= Lex; LEX *lex= Lex;
lex->sql_command= SQLCOM_GRANT; lex->sql_command= SQLCOM_GRANT;
lex->type= 0; lex->type= 0;
} }
| grant_privileges ON FUNCTION_SYM grant_ident TO_SYM grant_list | grant_privileges ON FUNCTION_SYM grant_ident TO_SYM grant_list
require_clause grant_options opt_require_clause opt_grant_options
{ {
LEX *lex= Lex; LEX *lex= Lex;
if (lex->columns.elements) if (lex->columns.elements)
...@@ -15074,7 +15075,7 @@ grant_command: ...@@ -15074,7 +15075,7 @@ grant_command:
lex->type= TYPE_ENUM_FUNCTION; lex->type= TYPE_ENUM_FUNCTION;
} }
| grant_privileges ON PROCEDURE_SYM grant_ident TO_SYM grant_list | grant_privileges ON PROCEDURE_SYM grant_ident TO_SYM grant_list
require_clause grant_options opt_require_clause opt_grant_options
{ {
LEX *lex= Lex; LEX *lex= Lex;
if (lex->columns.elements) if (lex->columns.elements)
...@@ -15411,7 +15412,7 @@ column_list_id: ...@@ -15411,7 +15412,7 @@ column_list_id:
} }
; ;
require_clause: opt_require_clause:
/* empty */ /* empty */
| REQUIRE_SYM require_list | REQUIRE_SYM require_list
{ {
...@@ -15469,13 +15470,13 @@ resource_option_list: ...@@ -15469,13 +15470,13 @@ resource_option_list:
| resource_option {} | resource_option {}
; ;
resource_options: opt_resource_options:
/* empty */ {} /* empty */ {}
| WITH resource_option_list | WITH resource_option_list
; ;
grant_options: opt_grant_options:
/* empty */ {} /* empty */ {}
| WITH grant_option_list {} | WITH grant_option_list {}
; ;
......
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