mirror of
https://github.com/MariaDB/server.git
synced 2025-05-31 08:42:45 +03:00
Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into weblab.(none):/home/marcsql/TREE/mysql-5.0-21269
This commit is contained in:
commit
d57c41b79d
@ -93,6 +93,12 @@ NULL
|
|||||||
0R
|
0R
|
||||||
FR
|
FR
|
||||||
DROP TABLE bug19904;
|
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.
|
End of 5.0 tests.
|
||||||
DROP FUNCTION metaphon;
|
DROP FUNCTION metaphon;
|
||||||
DROP FUNCTION myfunc_double;
|
DROP FUNCTION myfunc_double;
|
||||||
|
@ -109,6 +109,18 @@ SELECT myfunc_double(n) AS f FROM bug19904;
|
|||||||
SELECT metaphon(v) AS f FROM bug19904;
|
SELECT metaphon(v) AS f FROM bug19904;
|
||||||
DROP TABLE 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.
|
--echo End of 5.0 tests.
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1256,6 +1256,17 @@ create_function_tail:
|
|||||||
RETURNS_SYM udf_type UDF_SONAME_SYM TEXT_STRING_sys
|
RETURNS_SYM udf_type UDF_SONAME_SYM TEXT_STRING_sys
|
||||||
{
|
{
|
||||||
LEX *lex=Lex;
|
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->sql_command = SQLCOM_CREATE_FUNCTION;
|
||||||
lex->udf.name = lex->spname->m_name;
|
lex->udf.name = lex->spname->m_name;
|
||||||
lex->udf.returns=(Item_result) $2;
|
lex->udf.returns=(Item_result) $2;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user