23#ifndef PARSE_TREE_ITEMS_INCLUDED
24#define PARSE_TREE_ITEMS_INCLUDED
124 const char *table_arg,
const char *field_arg)
138 const char *field_arg)
161 :
super(pos, dec_arg) {}
256 :
super(pos, is_7bit_arg, literal_arg) {}
267 :
super(pos, is_7bit_arg, literal_arg) {}
281 :
super(pos, is_7bit_arg, literal_arg),
cs(cs_arg) {}
302 :
super(pos, is_7bit_arg, tail),
head(head_arg) {}
370 :
super(pos, var, expr) {}
479 bool is_negation_arg,
Item *right_arg)
Definition: item_func.h:3214
Definition: item_timefunc.h:1154
This class is used to implement operations like SET @variable or @variable:= expression.
Definition: item_func.h:3146
Dynamic parameters used as placeholders ('?') inside prepared statements.
Definition: item.h:4536
void set_cs_specified(bool cs_specified)
Set the value of m_cs_specified attribute.
Definition: item.h:5401
void init(const char *str, size_t length, const CHARSET_INFO *cs, Derivation dv, uint repertoire)
Definition: item.h:5227
void set_repertoire_from_value()
Definition: item.h:5335
Definition: item_sum.h:1055
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:850
String str_value
str_values's main purpose is to cache the value in save_in_field
Definition: item.h:3334
virtual bool itemize(Parse_context *pc, Item **res)
The same as contextualize() but with additional parameter.
Definition: item.cc:630
Bool_test
< Modifier for result transformation
Definition: item.h:934
String * check_well_formed_result(String *str, bool send_error, bool truncate)
Verifies that the input string is well-formed according to its character set.
Definition: item.cc:6254
Definition: parse_tree_items.h:77
Item * left
Definition: parse_tree_items.h:80
bool is_all
Definition: parse_tree_items.h:82
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:174
Parse_tree_item super
Definition: parse_tree_items.h:78
PTI_comp_op_all(const POS &pos, Item *left_arg, chooser_compare_func_creator comp_op_arg, bool is_all_arg, PT_subquery *subselect_arg)
Definition: parse_tree_items.h:86
PT_subquery * subselect
Definition: parse_tree_items.h:83
chooser_compare_func_creator comp_op
Definition: parse_tree_items.h:81
Definition: parse_tree_items.h:58
Parse_tree_item super
Definition: parse_tree_items.h:59
chooser_compare_func_creator boolfunc2creator
Definition: parse_tree_items.h:62
PTI_comp_op(const POS &pos, Item *left_arg, chooser_compare_func_creator boolfunc2creator_arg, Item *right_arg)
Definition: parse_tree_items.h:66
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:165
Item * right
Definition: parse_tree_items.h:63
Item * left
Definition: parse_tree_items.h:61
Definition: parse_tree_items.h:544
PTI_context(const POS &pos, Item *expr_arg, enum_parsing_context place)
Definition: parse_tree_items.h:550
Item * expr
Definition: parse_tree_items.h:546
const enum_parsing_context m_parsing_place
Definition: parse_tree_items.h:547
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:683
Parse_tree_item super
Definition: parse_tree_items.h:545
Definition: parse_tree_items.h:411
Item_sum_count super
Definition: parse_tree_items.h:412
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:581
PTI_count_sym(const POS &pos, PT_window *w)
Definition: parse_tree_items.h:415
Definition: parse_tree_items.h:445
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:319
Parse_tree_item super
Definition: parse_tree_items.h:446
PT_subquery * subselect
Definition: parse_tree_items.h:448
PTI_exists_subselect(const POS &pos, PT_subquery *subselect_arg)
Definition: parse_tree_items.h:451
Definition: parse_tree_items.h:488
Symbol_location expr_loc
Definition: parse_tree_items.h:492
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:334
Parse_tree_item super
Definition: parse_tree_items.h:489
PTI_expr_with_alias(const POS &pos, Item *expr_arg, const Symbol_location &expr_loc_arg, const LEX_CSTRING &alias_arg)
Definition: parse_tree_items.h:496
LEX_CSTRING alias
Definition: parse_tree_items.h:493
Item * expr
Definition: parse_tree_items.h:491
Parse tree Item wrapper for 2-dimentional functional names (ex.
Definition: parse_tree_items.h:219
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:274
PTI_function_call_generic_2d(const POS &pos, const LEX_STRING &db_arg, const LEX_STRING &func_arg, PT_item_list *opt_expr_list_arg)
Definition: parse_tree_items.h:227
LEX_STRING db
Definition: parse_tree_items.h:222
LEX_STRING func
Definition: parse_tree_items.h:223
PT_item_list * opt_expr_list
Definition: parse_tree_items.h:224
Parse_tree_item super
Definition: parse_tree_items.h:220
Definition: parse_tree_items.h:197
PT_item_list * opt_udf_expr_list
Definition: parse_tree_items.h:201
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:233
Parse_tree_item super
Definition: parse_tree_items.h:198
PTI_function_call_generic_ident_sys(const POS &pos, const LEX_STRING &ident_arg, PT_item_list *opt_udf_expr_list_arg)
Definition: parse_tree_items.h:206
LEX_STRING ident
Definition: parse_tree_items.h:200
udf_func * udf
Definition: parse_tree_items.h:203
Definition: parse_tree_items.h:156
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:480
PTI_function_call_nonkeyword_now(const POS &pos, uint8 dec_arg)
Definition: parse_tree_items.h:160
Item_func_now_local super
Definition: parse_tree_items.h:157
Definition: parse_tree_items.h:166
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:184
Parse_tree_item super
Definition: parse_tree_items.h:167
uint8 dec
Definition: parse_tree_items.h:169
PTI_function_call_nonkeyword_sysdate(const POS &pos, uint8 dec_arg)
Definition: parse_tree_items.h:172
Parse tree Item wrapper for 3-dimentional variable names.
Definition: parse_tree_items.h:389
const enum_var_type m_scope
Definition: parse_tree_items.h:405
const POS m_name_pos
Definition: parse_tree_items.h:406
Parse_tree_item super
Definition: parse_tree_items.h:390
const LEX_CSTRING m_name
Definition: parse_tree_items.h:408
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:557
PTI_get_system_variable(const POS &pos, enum_var_type scope, const POS &name_pos, const LEX_CSTRING &opt_prefix, const LEX_CSTRING &name)
Definition: parse_tree_items.h:393
const LEX_CSTRING m_opt_prefix
Definition: parse_tree_items.h:407
Definition: parse_tree_items.h:470
bool is_negation
Definition: parse_tree_items.h:474
PTI_handle_sql2003_note184_exception(const POS &pos, Item *left_arg, bool is_negation_arg, Item *right_arg)
Definition: parse_tree_items.h:478
Item * right
Definition: parse_tree_items.h:475
Item * left
Definition: parse_tree_items.h:473
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:325
Parse_tree_item super
Definition: parse_tree_items.h:471
Definition: parse_tree_items.h:563
PTI_having(const POS &pos, Item *expr_arg)
Definition: parse_tree_items.h:565
Definition: parse_tree_items.h:421
Parse_tree_item super
Definition: parse_tree_items.h:422
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:587
Item * expr
Definition: parse_tree_items.h:424
PTI_in_sum_expr(const POS &pos, Item *expr_arg)
Definition: parse_tree_items.h:427
Definition: parse_tree_items.h:504
PTI_int_splocal(const POS &pos, const LEX_CSTRING &name)
Definition: parse_tree_items.h:508
const LEX_CSTRING m_name
Same data as in PTI_in_sum_expr::m_location but 0-terminated "for free".
Definition: parse_tree_items.h:518
const POS m_location
Location of the variable name.
Definition: parse_tree_items.h:515
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:633
Definition: parse_tree_items.h:521
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:657
PTI_limit_option_ident(const POS &pos, const LEX_CSTRING &name)
Definition: parse_tree_items.h:525
Definition: parse_tree_items.h:531
Item_param * param_marker
Definition: parse_tree_items.h:534
PTI_limit_option_param_marker(const POS &pos, Item_param *param_marker_arg)
Definition: parse_tree_items.h:537
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:664
Parse_tree_item super
Definition: parse_tree_items.h:532
Definition: parse_tree_items.h:346
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.h:357
Item_string super
Definition: parse_tree_items.h:347
PTI_literal_underscore_charset_bin_num(const POS &pos, const CHARSET_INFO *charset, const LEX_STRING &literal)
Definition: parse_tree_items.h:350
Definition: parse_tree_items.h:326
Item_string super
Definition: parse_tree_items.h:327
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.h:337
PTI_literal_underscore_charset_hex_num(const POS &pos, const CHARSET_INFO *charset, const LEX_STRING &literal)
Definition: parse_tree_items.h:330
Definition: parse_tree_items.h:457
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:595
LEX_STRING ident
Definition: parse_tree_items.h:460
Item * expr
Definition: parse_tree_items.h:461
Parse_tree_item super
Definition: parse_tree_items.h:458
PTI_odbc_date(const POS &pos, const LEX_STRING &ident_arg, Item *expr_arg)
Definition: parse_tree_items.h:464
Definition: parse_tree_items.h:98
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:352
Parse_tree_item super
Definition: parse_tree_items.h:99
PTI_simple_ident_ident(const POS &pos, const LEX_CSTRING &ident_arg)
Definition: parse_tree_items.h:105
Symbol_location raw
Definition: parse_tree_items.h:102
LEX_CSTRING ident
Definition: parse_tree_items.h:101
Definition: parse_tree_items.h:144
LEX_STRING ident
Definition: parse_tree_items.h:147
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:460
Parse_tree_item super
Definition: parse_tree_items.h:145
PTI_simple_ident_nospvar_ident(const POS &pos, const LEX_STRING &ident_arg)
Definition: parse_tree_items.h:150
Parse tree Item wrapper for 3-dimentional simple_ident-s.
Definition: parse_tree_items.h:133
PTI_simple_ident_q_2d(const POS &pos, const char *table_arg, const char *field_arg)
Definition: parse_tree_items.h:137
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:408
PTI_simple_ident_q_3d super
Definition: parse_tree_items.h:134
Parse tree Item wrapper for 3-dimentional simple_ident-s.
Definition: parse_tree_items.h:114
const char * table
Definition: parse_tree_items.h:119
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:387
const char * db
Definition: parse_tree_items.h:118
PTI_simple_ident_q_3d(const POS &pos, const char *db_arg, const char *table_arg, const char *field_arg)
Definition: parse_tree_items.h:123
Parse_tree_item super
Definition: parse_tree_items.h:115
const char * field
Definition: parse_tree_items.h:120
Definition: parse_tree_items.h:433
PT_subquery * subselect
Definition: parse_tree_items.h:436
PTI_singlerow_subselect(const POS &pos, PT_subquery *subselect_arg)
Definition: parse_tree_items.h:439
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:312
Parse_tree_item super
Definition: parse_tree_items.h:434
Definition: parse_tree_items.h:307
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:525
LEX_STRING literal
Definition: parse_tree_items.h:310
const CHARSET_INFO * cs
Definition: parse_tree_items.h:312
Parse_tree_item super
Definition: parse_tree_items.h:308
PTI_temporal_literal(const POS &pos, const LEX_STRING &literal_arg, enum_field_types field_type_arg, const CHARSET_INFO *cs_arg)
Definition: parse_tree_items.h:315
enum_field_types field_type
Definition: parse_tree_items.h:311
Definition: parse_tree_items.h:294
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:508
PTI_text_literal super
Definition: parse_tree_items.h:295
PTI_text_literal * head
Definition: parse_tree_items.h:297
PTI_text_literal_concat(const POS &pos, bool is_7bit_arg, PTI_text_literal *head_arg, const LEX_STRING &tail)
Definition: parse_tree_items.h:300
Definition: parse_tree_items.h:261
PTI_text_literal_nchar_string(const POS &pos, bool is_7bit_arg, const LEX_STRING &literal_arg)
Definition: parse_tree_items.h:265
PTI_text_literal super
Definition: parse_tree_items.h:262
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:302
Definition: parse_tree_items.h:250
PTI_text_literal_text_string(const POS &pos, bool is_7bit_arg, const LEX_STRING &literal_arg)
Definition: parse_tree_items.h:254
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:487
PTI_text_literal super
Definition: parse_tree_items.h:251
Definition: parse_tree_items.h:272
PTI_text_literal super
Definition: parse_tree_items.h:273
const CHARSET_INFO * cs
Definition: parse_tree_items.h:275
PTI_text_literal_underscore_charset(const POS &pos, bool is_7bit_arg, const CHARSET_INFO *cs_arg, const LEX_STRING &literal_arg)
Definition: parse_tree_items.h:278
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.h:283
Definition: parse_tree_items.h:238
PTI_text_literal(const POS &pos, bool is_7bit_arg, const LEX_STRING &literal_arg)
Definition: parse_tree_items.h:245
bool is_7bit
Definition: parse_tree_items.h:242
Item_string super
Definition: parse_tree_items.h:239
LEX_STRING literal
Definition: parse_tree_items.h:243
Definition: parse_tree_items.h:178
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:208
Parse_tree_item super
Definition: parse_tree_items.h:179
Item * expr
Definition: parse_tree_items.h:181
LEX_STRING select_alias
Definition: parse_tree_items.h:182
PTI_udf_expr(const POS &pos, Item *expr_arg, const LEX_STRING &select_alias_arg, const Symbol_location &expr_loc_arg)
Definition: parse_tree_items.h:186
Symbol_location expr_loc
Definition: parse_tree_items.h:183
Definition: parse_tree_items.h:375
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:545
Item_func_get_user_var super
Definition: parse_tree_items.h:376
PTI_user_variable(const POS &pos, const LEX_STRING &var)
Definition: parse_tree_items.h:379
Definition: parse_tree_items.h:365
PTI_variable_aux_set_var(const POS &pos, const LEX_STRING &var, Item *expr)
Definition: parse_tree_items.h:369
Item_func_set_user_var super
Definition: parse_tree_items.h:366
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:533
Definition: parse_tree_items.h:557
PTI_where(const POS &pos, Item *expr_arg)
Definition: parse_tree_items.h:559
Wrapper class for an Item list head, used to allocate Item lists in the parser in a context-independe...
Definition: parse_tree_helpers.h:104
Definition: parse_tree_nodes.h:1605
Parse tree node for a window; just a shallow wrapper for class Window, q.v.
Definition: parse_tree_window.h:38
Base class for parse-time Item objects.
Definition: parse_tree_helpers.h:69
Parse_tree_item(const POS &pos)
Definition: parse_tree_helpers.h:71
Base class for parse tree nodes (excluding the Parse_tree_root hierarchy)
Definition: parse_tree_node_base.h:138
Comp_creator *(*)(bool invert) chooser_compare_func_creator
Convenience typedef for a function that returns factories for Item comparators (ie....
Definition: comp_creator.h:38
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:221
This file contains the field type.
enum_field_types
Column types for MySQL.
Definition: field_types.h:52
const Name_string null_name_string(nullptr, 0)
A better implementation of the UNIX ctype(3) library.
#define MY_REPERTOIRE_UNICODE30
Definition: m_ctype.h:151
Some integer typedefs for easier portability.
uint8_t uint8
Definition: my_inttypes.h:62
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1054
const std::string charset("charset")
Definition: commit_order_queue.h:33
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:75
enum_parsing_context
Names for different query parse tree parts.
Definition: parse_tree_node_base.h:57
@ CTX_HAVING
Subquery in HAVING clause item tree.
Definition: parse_tree_node_base.h:73
@ CTX_WHERE
Subquery in WHERE clause item tree.
Definition: parse_tree_node_base.h:70
"public" interface to sys_var - server configuration variables.
enum_var_type
Definition: set_var.h:89
@ DERIVATION_COERCIBLE
Definition: field.h:181
case opt name
Definition: sslopt-case.h:32
Definition: m_ctype.h:382
Definition: mysql_lex_string.h:39
Definition: mysql_lex_string.h:34
char * str
Definition: mysql_lex_string.h:35
size_t length
Definition: mysql_lex_string.h:36
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:120
Helper class for the YYLTYPE.
Definition: parse_location.h:31
Bison "location" class.
Definition: parse_location.h:42