diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2017-08-09 12:59:03 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2017-08-09 12:59:39 +0300 |
commit | 620ba97cfc2e3db00c3f8e423ad92e24d255af8f (patch) | |
tree | a92a6e5d17675a7f8b4e2a75f2373ab77cf7c6ee /sql/sql_yacc.yy | |
parent | f717fb824228d83a6cffc4164d64f40732197066 (diff) | |
parent | 6685cdc2501b47a97a1135fa144f78696a2f10da (diff) | |
download | mariadb-git-620ba97cfc2e3db00c3f8e423ad92e24d255af8f.tar.gz |
Merge remote-tracking branch 'origin/bb-10.2-ext' into 10.3
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r-- | sql/sql_yacc.yy | 48 |
1 files changed, 7 insertions, 41 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 92cce0666bc..69a6931ece8 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -3041,12 +3041,8 @@ sp_suid: call: CALL_SYM sp_name { - LEX *lex = Lex; - - lex->sql_command= SQLCOM_CALL; - lex->spname= $2; - lex->value_list.empty(); - sp_handler_procedure.add_used_routine(lex, thd, $2); + if (Lex->call_statement_start(thd, $2)) + MYSQL_YYABORT; } opt_sp_cparam_list {} ; @@ -15174,14 +15170,8 @@ option_value_no_option_type: } | '@' ident_or_text equal expr { - Item_func_set_user_var *item; - item= new (thd->mem_root) Item_func_set_user_var(thd, &$2, $4); - if (item == NULL) - MYSQL_YYABORT; - set_var_user *var= new (thd->mem_root) set_var_user(item); - if (var == NULL) + if (Lex->set_user_variable(thd, &$2, $4)) MYSQL_YYABORT; - Lex->var_list.push_back(var, thd->mem_root); } | '@' '@' opt_var_ident_type internal_variable_name equal set_expr_or_default { @@ -15603,25 +15593,13 @@ revoke_command: } | grant_privileges ON FUNCTION_SYM grant_ident FROM user_and_role_list { - LEX *lex= Lex; - if (lex->columns.elements) - { - thd->parse_error(); + if (Lex->add_grant_command(thd, SQLCOM_REVOKE, TYPE_ENUM_FUNCTION)) MYSQL_YYABORT; - } - lex->sql_command= SQLCOM_REVOKE; - lex->type= TYPE_ENUM_FUNCTION; } | grant_privileges ON PROCEDURE_SYM grant_ident FROM user_and_role_list { - LEX *lex= Lex; - if (lex->columns.elements) - { - thd->parse_error(); + if (Lex->add_grant_command(thd, SQLCOM_REVOKE, TYPE_ENUM_PROCEDURE)) MYSQL_YYABORT; - } - lex->sql_command= SQLCOM_REVOKE; - lex->type= TYPE_ENUM_PROCEDURE; } | ALL opt_privileges ',' GRANT OPTION FROM user_and_role_list { @@ -15665,26 +15643,14 @@ grant_command: | grant_privileges ON FUNCTION_SYM grant_ident TO_SYM grant_list opt_require_clause opt_grant_options { - LEX *lex= Lex; - if (lex->columns.elements) - { - thd->parse_error(); + if (Lex->add_grant_command(thd, SQLCOM_GRANT, TYPE_ENUM_FUNCTION)) MYSQL_YYABORT; - } - lex->sql_command= SQLCOM_GRANT; - lex->type= TYPE_ENUM_FUNCTION; } | grant_privileges ON PROCEDURE_SYM grant_ident TO_SYM grant_list opt_require_clause opt_grant_options { - LEX *lex= Lex; - if (lex->columns.elements) - { - thd->parse_error(); + if (Lex->add_grant_command(thd, SQLCOM_GRANT, TYPE_ENUM_PROCEDURE)) MYSQL_YYABORT; - } - lex->sql_command= SQLCOM_GRANT; - lex->type= TYPE_ENUM_PROCEDURE; } | PROXY_SYM ON user TO_SYM grant_list opt_grant_option { |