diff --git a/sql/item_cmpfunc.h b/sql/item_cmpfunc.h
index 08b8d4a4d999230935c6a007fa58ce3c515aad72..b576f53ad2d097487c4ed42058ca956c8cbf9193 100644
--- a/sql/item_cmpfunc.h
+++ b/sql/item_cmpfunc.h
@@ -1134,7 +1134,7 @@ class Item_func_regex :public Item_bool_func
   void print(String *str) { print_op(str); }
   CHARSET_INFO *compare_collation() { return cmp_collation.collation; }
   bool check_partition_func_processor(byte *int_arg)
-  { return safe_for_single_char_collation(int_arg); }
+  { return safe_for_binary_collation(int_arg); }
 };
 
 #else
diff --git a/sql/item_strfunc.h b/sql/item_strfunc.h
index bf822a87406322878d357b7e29c0c7a6aa978e12..c42ba69c7b88341f89966fbd8eacc93692e4a6e0 100644
--- a/sql/item_strfunc.h
+++ b/sql/item_strfunc.h
@@ -59,8 +59,6 @@ class Item_func_sha :public Item_str_func
   String *val_str(String *);    
   void fix_length_and_dec();      
   const char *func_name() const { return "sha"; }	
-  bool check_partition_func_processor(byte *int_arg)
-  { return safe_for_single_char_collation(int_arg);}
 };
 
 class Item_func_aes_encrypt :public Item_str_func
@@ -217,8 +215,6 @@ class Item_func_substr :public Item_str_func
   String *val_str(String *);
   void fix_length_and_dec();
   const char *func_name() const { return "substr"; }
-  bool check_partition_func_processor(byte *int_arg)
-  { return safe_for_single_char_collation(int_arg);}
 };
 
 
@@ -230,8 +226,6 @@ class Item_func_substr_index :public Item_str_func
   String *val_str(String *);
   void fix_length_and_dec();
   const char *func_name() const { return "substring_index"; }
-  bool check_partition_func_processor(byte *int_arg)
-  { return safe_for_single_char_collation(int_arg);}
 };
 
 
@@ -246,8 +240,6 @@ class Item_func_trim :public Item_str_func
   String *val_str(String *);
   void fix_length_and_dec();
   const char *func_name() const { return "trim"; }
-  bool check_partition_func_processor(byte *int_arg)
-  { return safe_for_single_char_collation(int_arg);}
 };
 
 
@@ -795,8 +787,6 @@ class Item_func_uncompressed_length : public Item_int_func
   const char *func_name() const{return "uncompressed_length";}
   void fix_length_and_dec() { max_length=10; }
   longlong val_int();
-  bool check_partition_func_processor(byte *int_arg)
-  { return safe_for_single_char_collation(int_arg);}
 };
 
 #ifdef HAVE_COMPRESS
@@ -813,8 +803,6 @@ class Item_func_compress: public Item_str_func
   void fix_length_and_dec(){max_length= (args[0]->max_length*120)/100+12;}
   const char *func_name() const{return "compress";}
   String *val_str(String *) ZLIB_DEPENDED_FUNCTION
-  bool check_partition_func_processor(byte *int_arg)
-  { return safe_for_single_char_collation(int_arg);}
 };
 
 class Item_func_uncompress: public Item_str_func
@@ -825,8 +813,6 @@ class Item_func_uncompress: public Item_str_func
   void fix_length_and_dec(){max_length= MAX_BLOB_WIDTH;}
   const char *func_name() const{return "uncompress";}
   String *val_str(String *) ZLIB_DEPENDED_FUNCTION
-  bool check_partition_func_processor(byte *int_arg)
-  { return safe_for_single_char_collation(int_arg);}
 };
 
 #define UUID_LENGTH (8+1+4+1+4+1+4+1+12)