27 #ifndef PARSE_TREE_HINTS_INCLUDED 28 #define PARSE_TREE_HINTS_INCLUDED 30 #include <sys/types.h> 62 : hint_type(hint_type_arg), state(switch_state_arg) {}
76 virtual void print_warn(
THD *thd,
uint err_code,
87 String *str MY_ATTRIBUTE((unused)))
const {}
136 :
PT_hint(hint_type_arg, switch_state_arg),
137 qb_name(qb_name_arg),
143 :
PT_hint(hint_type_arg, switch_state_arg),
144 qb_name(qb_name_arg),
146 table_list(table_list_arg) {}
167 void append_args(
const THD *thd,
String *str)
const override;
185 :
PT_hint(hint_type_arg, switch_state_arg),
186 qb_name(qb_name_arg),
187 table_list(table_list_arg) {}
216 :
PT_hint(hint_type_arg, switch_state_arg),
217 table_name(table_name_arg),
218 key_list(key_list_arg) {}
232 void append_args(
const THD *thd,
String *str)
const override;
274 milliseconds(milliseconds_arg) {}
297 Item *sys_var_value_arg)
299 sys_var_name(sys_var_name_arg),
300 sys_var_value(sys_var_value_arg) {}
347 m_resource_group_name.
length);
Our own string classes, used pervasively throughout the executor.
void append_identifier(String *packet, const char *name, size_t length)
Convert and quote the given identifier if needed and append it to the target string.
Definition: sql_show.cc:1443
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:182
Definition: opt_hints.h:84
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:213
const LEX_CSTRING qb_name
Definition: parse_tree_hints.h:176
bool switch_on() const
Definition: parse_tree_hints.h:65
PT_hint super
Definition: parse_tree_hints.h:319
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:134
virtual Hint_param_table_list * get_table_list()
Definition: parse_tree_hints.h:168
Definition: opt_hints.h:69
PT_hint_sys_var(const LEX_CSTRING sys_var_name_arg, Item *sys_var_value_arg)
Definition: parse_tree_hints.h:296
Parse tree hint object for MAX_EXECUTION_TIME hint.
Definition: parse_tree_hints.h:266
PT_hint super
Definition: parse_tree_hints.h:179
const char * str
Definition: mysql_lex_string.h:40
Mem_root_array_YY< LEX_CSTRING > Hint_param_index_list
Definition: parse_tree_hints.h:49
PT_hint_resource_group(const LEX_CSTRING &name)
Definition: parse_tree_hints.h:322
uint get_args() const
Definition: parse_tree_hints.h:148
void append_args(const THD *thd, String *str) const override
Append hint arguments to given string.
Definition: parse_tree_hints.h:345
Definition: mysql_lex_string.h:39
Definition: parse_tree_hints.h:97
Mem_root_array< PT_hint * > hints
Definition: parse_tree_hints.h:100
Definition: opt_hints.h:81
Hint_param_table_list table_list
Definition: parse_tree_hints.h:177
PT_hint super
Definition: parse_tree_hints.h:293
Parse tree hint object for QB_NAME hint.
Definition: parse_tree_hints.h:239
Parse tree hint object for table level hints.
Definition: parse_tree_hints.h:175
const LEX_CSTRING sys_var_name
Definition: parse_tree_hints.h:290
Using this class is fraught with peril, and you need to be very careful when doing so...
Definition: sql_string.h:164
PT_hint super
Definition: parse_tree_hints.h:267
Hint_param_index_list key_list
Definition: parse_tree_hints.h:208
const LEX_CSTRING m_resource_group_name
Definition: parse_tree_hints.h:317
Hint_param_table_list table_list
List of tables specified in join order hint.
Definition: parse_tree_hints.h:129
opt_hints_enum
Hint types, MAX_HINT_ENUM should be always last.
Definition: opt_hints.h:62
PT_hint super
Definition: parse_tree_hints.h:131
bool state
Definition: parse_tree_hints.h:59
Parse tree hint object for key level hints.
Definition: parse_tree_hints.h:206
bool supports_view()
Definition: parse_tree_hints.h:88
void append_args(const THD *thd, String *str) const override
Append additional hint arguments.
Definition: parse_tree_hints.h:257
size_t length
Definition: mysql_lex_string.h:41
LEX_CSTRING opt_query_block
Definition: parse_tree_hints.h:46
Parse tree hint object for query block level hints.
Definition: parse_tree_hints.h:123
bool push_back(PT_hint *hint)
Definition: parse_tree_hints.h:117
Header for compiler-dependent features.
void append_args(const THD *, String *str) const override
Append additional hint arguments.
Definition: parse_tree_hints.h:284
unsigned int uint
Definition: uca-dump.cc:29
Parse_tree_node super
Definition: parse_tree_hints.h:98
Base class for parse tree nodes (excluding the Parse_tree_root hierarchy)
Definition: parse_tree_node_base.h:101
case opt name
Definition: sslopt-case.h:32
#define true
Definition: config_static.h:44
The class is a base class for representation of the different types of the hints. ...
Definition: parse_tree_hints.h:57
ulong milliseconds
Definition: parse_tree_hints.h:270
type
Definition: base.h:36
Definition: parse_tree_hints.h:44
uint args
Bit mask of arguments to hint.
Definition: parse_tree_hints.h:127
A typesafe replacement for DYNAMIC_ARRAY.
Definition: mem_root_array.h:416
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:89
Parse tree hint object for RESOURCE_GROUP hint.
Definition: parse_tree_hints.h:316
Hint_param_table table_name
Definition: parse_tree_hints.h:207
opt_hints_enum hint_type
Definition: parse_tree_hints.h:58
static MEM_ROOT mem_root
Definition: client_plugin.cc:109
virtual void append_args(const THD *thd, String *str) const
Append additional hint arguments.
Definition: parse_tree_hints.h:86
PT_hint_list(MEM_ROOT *mem_root)
Definition: parse_tree_hints.h:103
Mem_root_array_YY< Hint_param_table > Hint_param_table_list
Definition: parse_tree_hints.h:50
LEX_CSTRING table
Definition: parse_tree_hints.h:45
Item * sys_var_value
Definition: parse_tree_hints.h:291
Definition: opt_hints.h:78
Definition: parse_tree_hints.h:289
bool push_back(const Element_type &element)
Adds a new element at the end of the array, after its current last element.
Definition: mem_root_array.h:180
PT_hint_max_execution_time(ulong milliseconds_arg)
Definition: parse_tree_hints.h:272
PT_hint_qb_name(const LEX_CSTRING qb_name_arg)
Definition: parse_tree_hints.h:245
const LEX_CSTRING qb_name
Definition: parse_tree_hints.h:240
opt_hints_enum type() const
Definition: parse_tree_hints.h:64
bool append_ulonglong(ulonglong val)
Append an unsigned longlong to the string.
Definition: sql_string.cc:492
PT_hint super
Definition: parse_tree_hints.h:210
The MEM_ROOT is a simple arena, where allocations are carved out of larger blocks.
Definition: my_alloc.h:77
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:140
PT_hint(opt_hints_enum hint_type_arg, bool switch_state_arg)
Definition: parse_tree_hints.h:61
PT_hint super
Definition: parse_tree_hints.h:242
Definition: opt_hints.h:86
Definition: opt_hints.h:68
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_class.h:803
const LEX_CSTRING qb_name
Name of query block.
Definition: parse_tree_hints.h:125