diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result index b31ec9a3bab..581a27aa7e5 100644 --- a/mysql-test/r/view.result +++ b/mysql-test/r/view.result @@ -2375,3 +2375,13 @@ Warnings: Error 1146 Table 'test.t1' doesn't exist Error 1356 View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them DROP VIEW v1; +create definer = current_user() sql security invoker view v1 as select 1; +show create view v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `v1` AS select 1 AS `1` +drop view v1; +create definer = current_user sql security invoker view v1 as select 1; +show create view v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `v1` AS select 1 AS `1` +drop view v1; diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test index 4e287375e5d..3f599c62fff 100644 --- a/mysql-test/t/view.test +++ b/mysql-test/t/view.test @@ -2240,3 +2240,16 @@ DROP TABLE t1; OPTIMIZE TABLE v1; DROP VIEW v1; + + +# +# BUG#14719: Views DEFINER grammar is incorrect +# + +create definer = current_user() sql security invoker view v1 as select 1; +show create view v1; +drop view v1; + +create definer = current_user sql security invoker view v1 as select 1; +show create view v1; +drop view v1; diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 109dcd7e86a..abc440df1c5 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -9008,7 +9008,7 @@ view_user: thd->lex->create_view_definer)) YYABORT; } - | CURRENT_USER optional_braces + | DEFINER_SYM EQ CURRENT_USER optional_braces { THD *thd= YYTHD; if (!(thd->lex->create_view_definer=