summaryrefslogtreecommitdiff
path: root/sql/sql_yacc.yy
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2017-08-09 12:59:03 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2017-08-09 12:59:39 +0300
commit620ba97cfc2e3db00c3f8e423ad92e24d255af8f (patch)
treea92a6e5d17675a7f8b4e2a75f2373ab77cf7c6ee /sql/sql_yacc.yy
parentf717fb824228d83a6cffc4164d64f40732197066 (diff)
parent6685cdc2501b47a97a1135fa144f78696a2f10da (diff)
downloadmariadb-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.yy48
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
{