MCPcopy Create free account
hub / github.com/MariaDB/server / add_key_equal_fields

Function add_key_equal_fields

sql/sql_select.cc:6963–6993  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6961*/
6962
6963static void
6964add_key_equal_fields(JOIN *join, KEY_FIELD **key_fields, uint and_level,
6965 Item_bool_func *cond, Item *field_item,
6966 bool eq_func, Item **val,
6967 uint num_values, table_map usable_tables,
6968 SARGABLE_PARAM **sargables, uint row_col_no= 0)
6969{
6970 Field *field= ((Item_field *) (field_item->real_item()))->field;
6971 add_key_field(join, key_fields, and_level, cond, field,
6972 eq_func, val, num_values, usable_tables, sargables,
6973 row_col_no);
6974 Item_equal *item_equal= field_item->get_item_equal();
6975 if (item_equal)
6976 {
6977 /*
6978 Add to the set of possible key values every substitution of
6979 the field for an equal field included into item_equal
6980 */
6981 Item_equal_fields_iterator it(*item_equal);
6982 while (it++)
6983 {
6984 Field *equal_field= it.get_curr_field();
6985 if (!field->eq(equal_field))
6986 {
6987 add_key_field(join, key_fields, and_level, cond, equal_field,
6988 eq_func, val, num_values, usable_tables,
6989 sargables, row_col_no);
6990 }
6991 }
6992 }
6993}
6994
6995
6996/**

Callers 2

add_key_fieldsMethod · 0.85

Calls 5

add_key_fieldFunction · 0.85
get_curr_fieldMethod · 0.80
real_itemMethod · 0.45
get_item_equalMethod · 0.45
eqMethod · 0.45

Tested by

no test coverage detected