diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result index b31ec9a3bab96f53dd3804ae2c5915265f2a71a5..581a27aa7e539f9397bb33cfffd62ab9ea22374c 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 4e287375e5d7ecc46265838ac3226c13edecf0e4..3f599c62fff2184188be9001eb5170c819a05e2c 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 109dcd7e86a9bd01638125f703128961b175f2a6..abc440df1c5605956b0cf7050585bf003f5361cd 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=