1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

Clean-up: moving compare_collation() from Item to Item_bool_func.

This commit is contained in:
Alexander Barkov
2015-08-21 17:08:55 +04:00
parent 1bae0d9e56
commit 98ba2bf424
6 changed files with 43 additions and 32 deletions

View File

@ -4147,7 +4147,7 @@ error:
/// Used when finding key fields
struct KEY_FIELD {
Field *field;
Item_func *cond;
Item_bool_func *cond;
Item *val; ///< May be empty if diff constant
uint level;
uint optimize;
@ -4400,7 +4400,7 @@ static uint get_semi_join_select_list_index(Field *field)
static void
add_key_field(JOIN *join,
KEY_FIELD **key_fields,uint and_level, Item_func *cond,
KEY_FIELD **key_fields,uint and_level, Item_bool_func *cond,
Field *field, bool eq_func, Item **value, uint num_values,
table_map usable_tables, SARGABLE_PARAM **sargables)
{
@ -4552,7 +4552,7 @@ add_key_field(JOIN *join,
static void
add_key_equal_fields(JOIN *join, KEY_FIELD **key_fields, uint and_level,
Item_func *cond, Item *field_item,
Item_bool_func *cond, Item *field_item,
bool eq_func, Item **val,
uint num_values, table_map usable_tables,
SARGABLE_PARAM **sargables)
@ -12511,7 +12511,8 @@ finish:
*/
static bool check_simple_equality(THD *thd, Item *left_item, Item *right_item,
Item *item, COND_EQUAL *cond_equal)
const Item_bool_func *item,
COND_EQUAL *cond_equal)
{
Item *orig_left_item= left_item;
Item *orig_right_item= right_item;
@ -12653,7 +12654,7 @@ static bool check_simple_equality(THD *thd, Item *left_item, Item *right_item,
eq_item->quick_fix_field();
item= eq_item;
}
if ((cs != ((Item_func *) item)->compare_collation()) ||
if ((cs != item->compare_collation()) ||
!cs->coll->propagate(cs, 0, 0))
return FALSE;
}