![]() |
MySQL 8.0.43
Source Code Documentation
|
Opt_hints class is used as ancestor for Opt_hints_global, Opt_hints_qb, Opt_hints_table, Opt_hints_key classes. More...
#include <opt_hints.h>
Public Member Functions | |
| Opt_hints (const LEX_CSTRING *name_arg, Opt_hints *parent_arg, MEM_ROOT *mem_root_arg) | |
| virtual | ~Opt_hints ()=default |
| bool | is_specified (opt_hints_enum type_arg) const |
| bool | set_switch (bool switch_state_arg, opt_hints_enum type_arg, bool check_parent) |
| Function sets switch hint state. More... | |
| bool | get_switch (opt_hints_enum type_arg) const |
| Function returns switch hint state. More... | |
| virtual const LEX_CSTRING * | get_name () const |
| virtual const LEX_CSTRING * | get_print_name () |
| void | set_name (const LEX_CSTRING *name_arg) |
| Opt_hints * | get_parent () const |
| virtual void | set_resolved () |
| virtual bool | is_resolved (opt_hints_enum type_arg) |
| Returns 'resolved' flag value for depending on hint type. More... | |
| virtual void | set_unresolved (opt_hints_enum type_arg) |
| Set hint to unresolved state. More... | |
| virtual bool | ignore_print (opt_hints_enum type_arg) const |
| If ignore_print() returns true, hint is not printed in Opt_hints::print() function. More... | |
| void | incr_resolved_children () |
| Mem_root_array< Opt_hints * > * | child_array_ptr () |
| bool | is_all_resolved () const |
| void | register_child (Opt_hints *hint_arg) |
| virtual PT_hint * | get_complex_hints (opt_hints_enum type) |
| Returns pointer to complex hint for a given type. More... | |
| Opt_hints * | find_by_name (const LEX_CSTRING *name_arg, const CHARSET_INFO *cs) const |
| Find hint among lower-level hint objects. More... | |
| void | print (const THD *thd, String *str, enum_query_type query_type) |
| Print all hints except of QB_NAME hint. More... | |
| void | check_unresolved (THD *thd) |
| Check if there are any unresolved hint objects and print warnings for them. More... | |
| virtual void | append_name (const THD *thd, String *str)=0 |
Private Member Functions | |
| void | append_hint_type (String *str, opt_hints_enum type) |
| Append hint type. More... | |
| void | print_warn_unresolved (THD *thd) |
| Print warning for unresolved hint name. More... | |
| virtual void | print_irregular_hints (const THD *thd, String *str) |
| Function prints hints which are non-standard and don't fit into existing hint infrastructure. More... | |
Private Attributes | |
| const LEX_CSTRING * | name |
| Opt_hints * | parent |
| Opt_hints_map | hints_map |
| Mem_root_array< Opt_hints * > | child_array |
| bool | resolved |
| uint | resolved_children |
Opt_hints class is used as ancestor for Opt_hints_global, Opt_hints_qb, Opt_hints_table, Opt_hints_key classes.
Opt_hints_global class is hierarchical structure. It contains information about global hints and also contains array of QUERY BLOCK level objects (Opt_hints_qb class). Each QUERY BLOCK level object contains array of TABLE level hints (class Opt_hints_table). Each TABLE level hint contains array of KEY lelev hints (Opt_hints_key class). Hint information(specified, on|off state) is stored in hints_map object.
|
inline |
|
virtualdefault |
|
private |
Append hint type.
| str | Pointer to String object |
| type | Hint type |
Implemented in Opt_hints_global, Opt_hints_qb, Opt_hints_table, and Opt_hints_key.
| void Opt_hints::check_unresolved | ( | THD * | thd | ) |
Check if there are any unresolved hint objects and print warnings for them.
| thd | Pointer to THD object |
|
inline |
| Opt_hints * Opt_hints::find_by_name | ( | const LEX_CSTRING * | name_arg, |
| const CHARSET_INFO * | cs | ||
| ) | const |
Find hint among lower-level hint objects.
| name_arg | hint name |
| cs | Pointer to character set |
|
inlinevirtual |
Returns pointer to complex hint for a given type.
A complex hint is a hint that has arguments. (It is not just an on/off switch.)
| type | hint type |
Reimplemented in Opt_hints_global, Opt_hints_qb, and Opt_hints_table.
|
inlinevirtual |
|
inline |
|
inlinevirtual |
Reimplemented in Opt_hints_qb.
| bool Opt_hints::get_switch | ( | opt_hints_enum | type_arg | ) | const |
Function returns switch hint state.
| type_arg | hint type |
|
inlinevirtual |
If ignore_print() returns true, hint is not printed in Opt_hints::print() function.
Atm used for INDEX_MERGE, SKIP_SCAN, INDEX, JOIN_INDEX, GROUP_INDEX ORDER_INDEX hints.
| type_arg | hint type |
Reimplemented in Opt_hints_key.
|
inline |
|
inline |
|
inlinevirtual |
Returns 'resolved' flag value for depending on hint type.
| type_arg | hint type |
Reimplemented in Opt_hints_table.
|
inline |
| void Opt_hints::print | ( | const THD * | thd, |
| String * | str, | ||
| enum_query_type | query_type | ||
| ) |
Print all hints except of QB_NAME hint.
| thd | Pointer to THD object |
| str | Pointer to String object |
| query_type | If query type is QT_NORMALIZED_FORMAT, un-resolved hints will also be printed |
|
inlineprivatevirtual |
Function prints hints which are non-standard and don't fit into existing hint infrastructure.
| thd | pointer to THD object |
| str | pointer to String object |
Reimplemented in Opt_hints_global, and Opt_hints_qb.
|
private |
Print warning for unresolved hint name.
| thd | Pointer to THD object |
|
inline |
|
inline |
|
inlinevirtual |
Reimplemented in Opt_hints_table.
|
inline |
Function sets switch hint state.
| switch_state_arg | switch hint state |
| type_arg | hint type |
| check_parent | true if hint can be on parent level |
|
inlinevirtual |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |