Commit ecb5e92a authored by unknown's avatar unknown

Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt

into  moonbone.local:/home/evgen/bk-trees/mysql-5.0-opt

parents a13fa8f6 acf0636e
...@@ -194,6 +194,17 @@ DROP FUNCTION sequence; ...@@ -194,6 +194,17 @@ DROP FUNCTION sequence;
DROP FUNCTION lookup; DROP FUNCTION lookup;
DROP FUNCTION reverse_lookup; DROP FUNCTION reverse_lookup;
DROP FUNCTION avgcost; 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"; CREATE FUNCTION is_const RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
select select
is_const(3) as const, is_const(3) as const,
......
...@@ -187,6 +187,23 @@ DROP FUNCTION lookup; ...@@ -187,6 +187,23 @@ DROP FUNCTION lookup;
DROP FUNCTION reverse_lookup; DROP FUNCTION reverse_lookup;
DROP FUNCTION avgcost; 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 # Bug#18761: constant expression as UDF parameters not passed in as constant
# #
......
...@@ -536,7 +536,7 @@ int mysql_drop_function(THD *thd,const LEX_STRING *udf_name) ...@@ -536,7 +536,7 @@ int mysql_drop_function(THD *thd,const LEX_STRING *udf_name)
tables.table_name= tables.alias= (char*) "func"; tables.table_name= tables.alias= (char*) "func";
if (!(table = open_ltable(thd,&tables,TL_WRITE))) if (!(table = open_ltable(thd,&tables,TL_WRITE)))
goto err; 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); table->file->extra(HA_EXTRA_RETRIEVE_ALL_COLS);
if (!table->file->index_read_idx(table->record[0], 0, if (!table->file->index_read_idx(table->record[0], 0,
(byte*) table->field[0]->ptr, (byte*) table->field[0]->ptr,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment