MySQL 8.0.39
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 |