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

Method add_key_fields_optimize_op

sql/sql_select.cc:7238–7269  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7236
7237
7238void
7239Item_bool_func2::add_key_fields_optimize_op(JOIN *join, KEY_FIELD **key_fields,
7240 uint *and_level,
7241 table_map usable_tables,
7242 SARGABLE_PARAM **sargables,
7243 bool equal_func)
7244{
7245 /* If item is of type 'field op field/constant' add it to key_fields */
7246 if (is_local_field(args[0]))
7247 {
7248 add_key_equal_fields(join, key_fields, *and_level, this,
7249 (Item_field*) args[0]->real_item(), equal_func,
7250 args + 1, 1, usable_tables, sargables);
7251 }
7252 else
7253 {
7254 Item_field *field= NULL;
7255 int value_idx= -1;
7256 /* Handle SUBSTR(key,1,N)='const', 'const'=SUBSTR(key,1,N), etc */
7257 if (with_sargable_substr(&field, &value_idx))
7258 {
7259 add_key_equal_fields(join, key_fields, *and_level, this, field,
7260 false, args + value_idx, 1, usable_tables, sargables);
7261 }
7262 }
7263 if (is_local_field(args[1]))
7264 {
7265 add_key_equal_fields(join, key_fields, *and_level, this,
7266 (Item_field*) args[1]->real_item(), equal_func,
7267 args, 1, usable_tables, sargables);
7268 }
7269}
7270
7271
7272void

Callers

nothing calls this directly

Calls 3

is_local_fieldFunction · 0.85
add_key_equal_fieldsFunction · 0.85
real_itemMethod · 0.45

Tested by

no test coverage detected