| 7389 | */ |
| 7390 | |
| 7391 | static bool |
| 7392 | add_keyuse(DYNAMIC_ARRAY *keyuse_array, KEY_FIELD *key_field, |
| 7393 | uint key, uint part) |
| 7394 | { |
| 7395 | KEYUSE keyuse; |
| 7396 | Field *field= key_field->field; |
| 7397 | |
| 7398 | keyuse.table= field->table; |
| 7399 | keyuse.val= key_field->val; |
| 7400 | keyuse.key= key; |
| 7401 | if (!is_hash_join_key_no(key)) |
| 7402 | { |
| 7403 | keyuse.keypart=part; |
| 7404 | keyuse.keypart_map= (key_part_map) 1 << part; |
| 7405 | } |
| 7406 | else |
| 7407 | { |
| 7408 | keyuse.keypart= field->field_index; |
| 7409 | keyuse.keypart_map= (key_part_map) 0; |
| 7410 | } |
| 7411 | keyuse.used_tables= key_field->val->used_tables(); |
| 7412 | keyuse.optimize= key_field->optimize & KEY_OPTIMIZE_REF_OR_NULL; |
| 7413 | keyuse.ref_table_rows= 0; |
| 7414 | keyuse.null_rejecting= key_field->null_rejecting; |
| 7415 | keyuse.cond_guard= key_field->cond_guard; |
| 7416 | keyuse.sj_pred_no= key_field->sj_pred_no; |
| 7417 | keyuse.validity_ref= 0; |
| 7418 | return (insert_dynamic(keyuse_array,(uchar*) &keyuse)); |
| 7419 | } |
| 7420 | |
| 7421 | |
| 7422 | /* |
no test coverage detected