![]()  | 
  
    MySQL 9.5.0
    
   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 |