summaryrefslogtreecommitdiff
path: root/sql/sql_udf.cc
diff options
context:
space:
mode:
authorunknown <acurtis@pcgem.rdg.cyberkinetica.com>2005-03-07 13:37:10 +0000
committerunknown <acurtis@pcgem.rdg.cyberkinetica.com>2005-03-07 13:37:10 +0000
commit11d36cab93dfca86a818b7f79eacbeaf82d9dbb4 (patch)
treedd5611c1fee954a969f1a92740889987469839be /sql/sql_udf.cc
parentabd8200f77a0b5c8463628fa921f998cbf7498f9 (diff)
downloadmariadb-git-11d36cab93dfca86a818b7f79eacbeaf82d9dbb4.tar.gz
Bug#6776
Failure to delete rows from mysql.func table caused by missing charset conversion for index read by pk. sql/sql_udf.cc: Bug#6776 Have to use Field store() methods for charset conversion
Diffstat (limited to 'sql/sql_udf.cc')
-rw-r--r--sql/sql_udf.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/sql/sql_udf.cc b/sql/sql_udf.cc
index 0bb8ac8a28b..6566e327a9e 100644
--- a/sql/sql_udf.cc
+++ b/sql/sql_udf.cc
@@ -493,8 +493,11 @@ int mysql_drop_function(THD *thd,const LEX_STRING *udf_name)
tables.real_name= tables.alias= (char*) "func";
if (!(table = open_ltable(thd,&tables,TL_WRITE)))
goto err;
- if (!table->file->index_read_idx(table->record[0],0,(byte*) udf_name->str,
- (uint) udf_name->length,
+ table->field[0]->store(udf_name.str, udf_name.length, system_charset_info);
+ table->file->extra(HA_EXTRA_RETRIEVE_ALL_COLS);
+ if (!table->file->index_read_idx(table->record[0], 0,
+ (byte*) table->field[0]->ptr,
+ table->key_info[0].key_length
HA_READ_KEY_EXACT))
{
int error;