28#ifndef PARSE_TREE_HINTS_INCLUDED 
   29#define PARSE_TREE_HINTS_INCLUDED 
   65        state(switch_state_arg) {}
 
  140      : 
PT_hint(hint_type_arg, switch_state_arg),
 
  147      : 
PT_hint(hint_type_arg, switch_state_arg),
 
  189      : 
PT_hint(hint_type_arg, switch_state_arg),
 
  220      : 
PT_hint(hint_type_arg, switch_state_arg),
 
  301                           Item *sys_var_value_arg)
 
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:928
 
A typesafe replacement for DYNAMIC_ARRAY.
Definition: mem_root_array.h:432
 
Definition: parse_tree_hints.h:100
 
PT_hint_list(MEM_ROOT *mem_root)
Definition: parse_tree_hints.h:106
 
Parse_tree_node super
Definition: parse_tree_hints.h:101
 
bool push_back(PT_hint *hint)
Definition: parse_tree_hints.h:121
 
Mem_root_array< PT_hint * > hints
Definition: parse_tree_hints.h:103
 
bool do_contextualize(Parse_context *pc) override
Function handles list of the hints we get after parse procedure.
Definition: parse_tree_hints.cc:338
 
Parse tree hint object for MAX_EXECUTION_TIME hint.
Definition: parse_tree_hints.h:270
 
PT_hint_max_execution_time(ulong milliseconds_arg)
Definition: parse_tree_hints.h:276
 
bool do_contextualize(Parse_context *pc) override
Function initializes MAX_EXECUTION_TIME hint.
Definition: parse_tree_hints.cc:518
 
PT_hint super
Definition: parse_tree_hints.h:271
 
void append_args(const THD *, String *str) const override
Append additional hint arguments.
Definition: parse_tree_hints.h:288
 
ulong milliseconds
Definition: parse_tree_hints.h:274
 
Parse tree hint object for QB_NAME hint.
Definition: parse_tree_hints.h:243
 
const LEX_CSTRING qb_name
Definition: parse_tree_hints.h:244
 
void append_args(const THD *thd, String *str) const override
Append additional hint arguments.
Definition: parse_tree_hints.h:261
 
PT_hint super
Definition: parse_tree_hints.h:246
 
PT_hint_qb_name(const LEX_CSTRING qb_name_arg)
Definition: parse_tree_hints.h:249
 
bool do_contextualize(Parse_context *pc) override
Function sets query block name.
Definition: parse_tree_hints.cc:499
 
Parse tree hint object for RESOURCE_GROUP hint.
Definition: parse_tree_hints.h:320
 
void append_args(const THD *thd, String *str) const override
Append hint arguments to given string.
Definition: parse_tree_hints.h:349
 
PT_hint super
Definition: parse_tree_hints.h:323
 
PT_hint_resource_group(const LEX_CSTRING &name)
Definition: parse_tree_hints.h:326
 
bool do_contextualize(Parse_context *pc) override
Function initializes resource group name and checks for presence of resource group.
Definition: parse_tree_hints.cc:587
 
const LEX_CSTRING m_resource_group_name
Definition: parse_tree_hints.h:321
 
Definition: parse_tree_hints.h:293
 
PT_hint_sys_var(const LEX_CSTRING sys_var_name_arg, Item *sys_var_value_arg)
Definition: parse_tree_hints.h:300
 
Item * sys_var_value
Definition: parse_tree_hints.h:295
 
const LEX_CSTRING sys_var_name
Definition: parse_tree_hints.h:294
 
bool do_contextualize(Parse_context *pc) override
Function initializes SET_VAR hint.
Definition: parse_tree_hints.cc:545
 
PT_hint super
Definition: parse_tree_hints.h:297
 
The class is a base class for representation of the different types of the hints.
Definition: parse_tree_hints.h:58
 
PT_hint(opt_hints_enum hint_type_arg, bool switch_state_arg)
Definition: parse_tree_hints.h:62
 
virtual void print_warn(THD *thd, uint err_code, const LEX_CSTRING *qb_name_arg, LEX_CSTRING *table_name_arg, LEX_CSTRING *key_name_arg, PT_hint *hint) const
Print warning issuing in processing of the hint.
Definition: parse_tree_hints.cc:173
 
bool state
Definition: parse_tree_hints.h:60
 
opt_hints_enum hint_type
Definition: parse_tree_hints.h:59
 
bool switch_on() const
Definition: parse_tree_hints.h:68
 
virtual void append_args(const THD *thd, String *str) const
Append additional hint arguments.
Definition: parse_tree_hints.h:89
 
bool supports_view()
Definition: parse_tree_hints.h:91
 
opt_hints_enum type() const
Definition: parse_tree_hints.h:67
 
Parse tree hint object for key level hints.
Definition: parse_tree_hints.h:210
 
void append_args(const THD *thd, String *str) const override
Append additional hint arguments.
Definition: parse_tree_hints.cc:402
 
Hint_param_table table_name
Definition: parse_tree_hints.h:211
 
PT_key_level_hint(Hint_param_table &table_name_arg, const Hint_param_index_list &key_list_arg, bool switch_state_arg, opt_hints_enum hint_type_arg)
Definition: parse_tree_hints.h:217
 
Hint_param_index_list key_list
Definition: parse_tree_hints.h:212
 
PT_hint super
Definition: parse_tree_hints.h:214
 
bool do_contextualize(Parse_context *pc) override
Function handles key level hint.
Definition: parse_tree_hints.cc:415
 
Parse tree hint object for query block level hints.
Definition: parse_tree_hints.h:127
 
PT_qb_level_hint(const LEX_CSTRING qb_name_arg, bool switch_state_arg, enum opt_hints_enum hint_type_arg, uint arg)
Definition: parse_tree_hints.h:138
 
void append_args(const THD *thd, String *str) const override
Append hint arguments to given string.
Definition: parse_tree_hints.cc:287
 
Hint_param_table_list table_list
List of tables specified in join order hint.
Definition: parse_tree_hints.h:133
 
const LEX_CSTRING qb_name
Name of query block.
Definition: parse_tree_hints.h:129
 
bool do_contextualize(Parse_context *pc) override
Function handles query block level hint.
Definition: parse_tree_hints.cc:225
 
PT_hint super
Definition: parse_tree_hints.h:135
 
uint get_args() const
Definition: parse_tree_hints.h:152
 
virtual Hint_param_table_list * get_table_list()
Definition: parse_tree_hints.h:172
 
PT_qb_level_hint(const LEX_CSTRING qb_name_arg, bool switch_state_arg, enum opt_hints_enum hint_type_arg, const Hint_param_table_list &table_list_arg)
Definition: parse_tree_hints.h:144
 
uint args
Bit mask of arguments to hint.
Definition: parse_tree_hints.h:131
 
Parse tree hint object for table level hints.
Definition: parse_tree_hints.h:179
 
PT_table_level_hint(const LEX_CSTRING qb_name_arg, const Hint_param_table_list &table_list_arg, bool switch_state_arg, opt_hints_enum hint_type_arg)
Definition: parse_tree_hints.h:186
 
bool do_contextualize(Parse_context *pc) override
Function handles table level hint.
Definition: parse_tree_hints.cc:363
 
Hint_param_table_list table_list
Definition: parse_tree_hints.h:181
 
const LEX_CSTRING qb_name
Definition: parse_tree_hints.h:180
 
PT_hint super
Definition: parse_tree_hints.h:183
 
Base class for parse tree nodes (excluding the Parse_tree_root hierarchy)
Definition: parse_tree_node_base.h:231
 
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:169
 
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
 
static MEM_ROOT mem_root
Definition: client_plugin.cc:114
 
Header for compiler-dependent features.
 
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1078
 
void append_identifier(std::string *sbuf, std::string_view id, String *bufp)
Append an identifier to a string using backtick quotes.
Definition: utils.cc:36
 
opt_hints_enum
Hint types, MAX_HINT_ENUM should be always last.
Definition: opt_hints.h:66
 
@ MAX_HINT_ENUM
Definition: opt_hints.h:90
 
@ ORDER_INDEX_HINT_ENUM
Definition: opt_hints.h:88
 
@ RESOURCE_GROUP_HINT_ENUM
Definition: opt_hints.h:82
 
@ QB_NAME_HINT_ENUM
Definition: opt_hints.h:73
 
@ MAX_EXEC_TIME_HINT_ENUM
Definition: opt_hints.h:72
 
@ INDEX_HINT_ENUM
Definition: opt_hints.h:85
 
Mem_root_array_YY< LEX_CSTRING > Hint_param_index_list
Definition: parse_tree_hints.h:50
 
Mem_root_array_YY< Hint_param_table > Hint_param_table_list
Definition: parse_tree_hints.h:51
 
Our own string classes, used pervasively throughout the executor.
 
case opt name
Definition: sslopt-case.h:29
 
Definition: parse_tree_hints.h:45
 
LEX_CSTRING table
Definition: parse_tree_hints.h:46
 
LEX_CSTRING opt_query_block
Definition: parse_tree_hints.h:47
 
The MEM_ROOT is a simple arena, where allocations are carved out of larger blocks.
Definition: my_alloc.h:83
 
Definition: mysql_lex_string.h:40
 
const char * str
Definition: mysql_lex_string.h:41
 
size_t length
Definition: mysql_lex_string.h:42
 
Bison "location" class.
Definition: parse_location.h:43
 
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:422