Loading mysql-test/r/udf.result +11 −0 Original line number Diff line number Diff line Loading @@ -194,6 +194,17 @@ DROP FUNCTION sequence; DROP FUNCTION lookup; DROP FUNCTION reverse_lookup; DROP FUNCTION avgcost; select * from mysql.func; name ret dl type CREATE FUNCTION is_const RETURNS STRING SONAME "UDF_EXAMPLE_LIB"; select IS_const(3); IS_const(3) const drop function IS_const; select * from mysql.func; name ret dl type select is_const(3); ERROR 42000: FUNCTION test.is_const does not exist CREATE FUNCTION is_const RETURNS STRING SONAME "UDF_EXAMPLE_LIB"; select is_const(3) as const, Loading mysql-test/t/udf.test +17 −0 Original line number Diff line number Diff line Loading @@ -187,6 +187,23 @@ DROP FUNCTION lookup; DROP FUNCTION reverse_lookup; DROP FUNCTION avgcost; # # Bug #15439: UDF name case handling forces DELETE FROM mysql.func to remove # the UDF # select * from mysql.func; --replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB eval CREATE FUNCTION is_const RETURNS STRING SONAME "$UDF_EXAMPLE_LIB"; select IS_const(3); drop function IS_const; select * from mysql.func; --error 1305 select is_const(3); # # Bug#18761: constant expression as UDF parameters not passed in as constant # Loading sql/sql_udf.cc +1 −1 Original line number Diff line number Diff line Loading @@ -536,7 +536,7 @@ int mysql_drop_function(THD *thd,const LEX_STRING *udf_name) tables.table_name= tables.alias= (char*) "func"; if (!(table = open_ltable(thd,&tables,TL_WRITE))) goto err; table->field[0]->store(udf_name->str, udf_name->length, system_charset_info); table->field[0]->store(udf->name.str, udf->name.length, &my_charset_bin); table->file->extra(HA_EXTRA_RETRIEVE_ALL_COLS); if (!table->file->index_read_idx(table->record[0], 0, (byte*) table->field[0]->ptr, Loading Loading
mysql-test/r/udf.result +11 −0 Original line number Diff line number Diff line Loading @@ -194,6 +194,17 @@ DROP FUNCTION sequence; DROP FUNCTION lookup; DROP FUNCTION reverse_lookup; DROP FUNCTION avgcost; select * from mysql.func; name ret dl type CREATE FUNCTION is_const RETURNS STRING SONAME "UDF_EXAMPLE_LIB"; select IS_const(3); IS_const(3) const drop function IS_const; select * from mysql.func; name ret dl type select is_const(3); ERROR 42000: FUNCTION test.is_const does not exist CREATE FUNCTION is_const RETURNS STRING SONAME "UDF_EXAMPLE_LIB"; select is_const(3) as const, Loading
mysql-test/t/udf.test +17 −0 Original line number Diff line number Diff line Loading @@ -187,6 +187,23 @@ DROP FUNCTION lookup; DROP FUNCTION reverse_lookup; DROP FUNCTION avgcost; # # Bug #15439: UDF name case handling forces DELETE FROM mysql.func to remove # the UDF # select * from mysql.func; --replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB eval CREATE FUNCTION is_const RETURNS STRING SONAME "$UDF_EXAMPLE_LIB"; select IS_const(3); drop function IS_const; select * from mysql.func; --error 1305 select is_const(3); # # Bug#18761: constant expression as UDF parameters not passed in as constant # Loading
sql/sql_udf.cc +1 −1 Original line number Diff line number Diff line Loading @@ -536,7 +536,7 @@ int mysql_drop_function(THD *thd,const LEX_STRING *udf_name) tables.table_name= tables.alias= (char*) "func"; if (!(table = open_ltable(thd,&tables,TL_WRITE))) goto err; table->field[0]->store(udf_name->str, udf_name->length, system_charset_info); table->field[0]->store(udf->name.str, udf->name.length, &my_charset_bin); table->file->extra(HA_EXTRA_RETRIEVE_ALL_COLS); if (!table->file->index_read_idx(table->record[0], 0, (byte*) table->field[0]->ptr, Loading