Loading mysql-test/r/udf.result +6 −0 Original line number Diff line number Diff line Loading @@ -93,6 +93,12 @@ NULL 0R FR DROP TABLE bug19904; CREATE DEFINER=CURRENT_USER() FUNCTION should_not_parse RETURNS STRING SONAME "should_not_parse.so"; ERROR HY000: Incorrect usage of SONAME and DEFINER CREATE DEFINER=someone@somewhere FUNCTION should_not_parse RETURNS STRING SONAME "should_not_parse.so"; ERROR HY000: Incorrect usage of SONAME and DEFINER End of 5.0 tests. DROP FUNCTION metaphon; DROP FUNCTION myfunc_double; Loading mysql-test/t/udf.test +12 −0 Original line number Diff line number Diff line Loading @@ -109,6 +109,18 @@ SELECT myfunc_double(n) AS f FROM bug19904; SELECT metaphon(v) AS f FROM bug19904; DROP TABLE bug19904; # # Bug#21269: DEFINER-clause is allowed for UDF-functions # --error ER_WRONG_USAGE CREATE DEFINER=CURRENT_USER() FUNCTION should_not_parse RETURNS STRING SONAME "should_not_parse.so"; --error ER_WRONG_USAGE CREATE DEFINER=someone@somewhere FUNCTION should_not_parse RETURNS STRING SONAME "should_not_parse.so"; --echo End of 5.0 tests. # Loading sql/sql_yacc.yy +11 −0 Original line number Diff line number Diff line Loading @@ -1256,6 +1256,17 @@ create_function_tail: RETURNS_SYM udf_type UDF_SONAME_SYM TEXT_STRING_sys { LEX *lex=Lex; if (lex->definer != NULL) { /* DEFINER is a concept meaningful when interpreting SQL code. UDF functions are compiled. Using DEFINER with UDF has therefore no semantic, and is considered a parsing error. */ my_error(ER_WRONG_USAGE, MYF(0), "SONAME", "DEFINER"); YYABORT; } lex->sql_command = SQLCOM_CREATE_FUNCTION; lex->udf.name = lex->spname->m_name; lex->udf.returns=(Item_result) $2; Loading Loading
mysql-test/r/udf.result +6 −0 Original line number Diff line number Diff line Loading @@ -93,6 +93,12 @@ NULL 0R FR DROP TABLE bug19904; CREATE DEFINER=CURRENT_USER() FUNCTION should_not_parse RETURNS STRING SONAME "should_not_parse.so"; ERROR HY000: Incorrect usage of SONAME and DEFINER CREATE DEFINER=someone@somewhere FUNCTION should_not_parse RETURNS STRING SONAME "should_not_parse.so"; ERROR HY000: Incorrect usage of SONAME and DEFINER End of 5.0 tests. DROP FUNCTION metaphon; DROP FUNCTION myfunc_double; Loading
mysql-test/t/udf.test +12 −0 Original line number Diff line number Diff line Loading @@ -109,6 +109,18 @@ SELECT myfunc_double(n) AS f FROM bug19904; SELECT metaphon(v) AS f FROM bug19904; DROP TABLE bug19904; # # Bug#21269: DEFINER-clause is allowed for UDF-functions # --error ER_WRONG_USAGE CREATE DEFINER=CURRENT_USER() FUNCTION should_not_parse RETURNS STRING SONAME "should_not_parse.so"; --error ER_WRONG_USAGE CREATE DEFINER=someone@somewhere FUNCTION should_not_parse RETURNS STRING SONAME "should_not_parse.so"; --echo End of 5.0 tests. # Loading
sql/sql_yacc.yy +11 −0 Original line number Diff line number Diff line Loading @@ -1256,6 +1256,17 @@ create_function_tail: RETURNS_SYM udf_type UDF_SONAME_SYM TEXT_STRING_sys { LEX *lex=Lex; if (lex->definer != NULL) { /* DEFINER is a concept meaningful when interpreting SQL code. UDF functions are compiled. Using DEFINER with UDF has therefore no semantic, and is considered a parsing error. */ my_error(ER_WRONG_USAGE, MYF(0), "SONAME", "DEFINER"); YYABORT; } lex->sql_command = SQLCOM_CREATE_FUNCTION; lex->udf.name = lex->spname->m_name; lex->udf.returns=(Item_result) $2; Loading