24#ifndef PARSE_TREE_ITEMS_INCLUDED
25#define PARSE_TREE_ITEMS_INCLUDED
125 const char *table_arg,
const char *field_arg)
139 const char *field_arg)
162 :
super(pos, dec_arg) {}
257 :
super(pos, is_7bit_arg, literal_arg) {}
268 :
super(pos, is_7bit_arg, literal_arg) {}
282 :
super(pos, is_7bit_arg, literal_arg),
cs(cs_arg) {}
303 :
super(pos, is_7bit_arg, tail),
head(head_arg) {}
371 :
super(pos, var, expr) {}
480 bool is_negation_arg,
Item *right_arg)
Definition: item_func.h:3223
Definition: item_timefunc.h:1155
This class is used to implement operations like SET @variable or @variable:= expression.
Definition: item_func.h:3155
Dynamic parameters used as placeholders ('?') inside prepared statements.
Definition: item.h:4574
void set_cs_specified(bool cs_specified)
Set the value of m_cs_specified attribute.
Definition: item.h:5439
void init(const char *str, size_t length, const CHARSET_INFO *cs, Derivation dv, uint repertoire)
Definition: item.h:5265
void set_repertoire_from_value()
Definition: item.h:5373
Definition: item_sum.h:1062
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:853
String str_value
str_values's main purpose is to cache the value in save_in_field
Definition: item.h:3367
virtual bool itemize(Parse_context *pc, Item **res)
The same as contextualize() but with additional parameter.
Definition: item.cc:631
Bool_test
< Modifier for result transformation
Definition: item.h:937
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:6299
Definition: parse_tree_items.h:78
Item * left
Definition: parse_tree_items.h:81
bool is_all
Definition: parse_tree_items.h:83
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:175
Parse_tree_item super
Definition: parse_tree_items.h:79
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:87
PT_subquery * subselect
Definition: parse_tree_items.h:84
chooser_compare_func_creator comp_op
Definition: parse_tree_items.h:82
Definition: parse_tree_items.h:59
Parse_tree_item super
Definition: parse_tree_items.h:60
chooser_compare_func_creator boolfunc2creator
Definition: parse_tree_items.h:63
PTI_comp_op(const POS &pos, Item *left_arg, chooser_compare_func_creator boolfunc2creator_arg, Item *right_arg)
Definition: parse_tree_items.h:67
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:166
Item * right
Definition: parse_tree_items.h:64
Item * left
Definition: parse_tree_items.h:62
Definition: parse_tree_items.h:545
PTI_context(const POS &pos, Item *expr_arg, enum_parsing_context place)
Definition: parse_tree_items.h:551
Item * expr
Definition: parse_tree_items.h:547
const enum_parsing_context m_parsing_place
Definition: parse_tree_items.h:548
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:684
Parse_tree_item super
Definition: parse_tree_items.h:546
Definition: parse_tree_items.h:412
Item_sum_count super
Definition: parse_tree_items.h:413
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:582
PTI_count_sym(const POS &pos, PT_window *w)
Definition: parse_tree_items.h:416
Definition: parse_tree_items.h:446
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:320
Parse_tree_item super
Definition: parse_tree_items.h:447
PT_subquery * subselect
Definition: parse_tree_items.h:449
PTI_exists_subselect(const POS &pos, PT_subquery *subselect_arg)
Definition: parse_tree_items.h:452
Definition: parse_tree_items.h:489
Symbol_location expr_loc
Definition: parse_tree_items.h:493
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:335
Parse_tree_item super
Definition: parse_tree_items.h:490
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:497
LEX_CSTRING alias
Definition: parse_tree_items.h:494
Item * expr
Definition: parse_tree_items.h:492
Parse tree Item wrapper for 2-dimentional functional names (ex.
Definition: parse_tree_items.h:220
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:275
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:228
LEX_STRING db
Definition: parse_tree_items.h:223
LEX_STRING func
Definition: parse_tree_items.h:224
PT_item_list * opt_expr_list
Definition: parse_tree_items.h:225
Parse_tree_item super
Definition: parse_tree_items.h:221
Definition: parse_tree_items.h:198
PT_item_list * opt_udf_expr_list
Definition: parse_tree_items.h:202
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:234
Parse_tree_item super
Definition: parse_tree_items.h:199
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:207
LEX_STRING ident
Definition: parse_tree_items.h:201
udf_func * udf
Definition: parse_tree_items.h:204
Definition: parse_tree_items.h:157
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:481
PTI_function_call_nonkeyword_now(const POS &pos, uint8 dec_arg)
Definition: parse_tree_items.h:161
Item_func_now_local super
Definition: parse_tree_items.h:158
Definition: parse_tree_items.h:167
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:185
Parse_tree_item super
Definition: parse_tree_items.h:168
uint8 dec
Definition: parse_tree_items.h:170
PTI_function_call_nonkeyword_sysdate(const POS &pos, uint8 dec_arg)
Definition: parse_tree_items.h:173
Parse tree Item wrapper for 3-dimentional variable names.
Definition: parse_tree_items.h:390
const enum_var_type m_scope
Definition: parse_tree_items.h:406
const POS m_name_pos
Definition: parse_tree_items.h:407
Parse_tree_item super
Definition: parse_tree_items.h:391
const LEX_CSTRING m_name
Definition: parse_tree_items.h:409
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:558
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:394
const LEX_CSTRING m_opt_prefix
Definition: parse_tree_items.h:408
Definition: parse_tree_items.h:471
bool is_negation
Definition: parse_tree_items.h:475
PTI_handle_sql2003_note184_exception(const POS &pos, Item *left_arg, bool is_negation_arg, Item *right_arg)
Definition: parse_tree_items.h:479
Item * right
Definition: parse_tree_items.h:476
Item * left
Definition: parse_tree_items.h:474
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:326
Parse_tree_item super
Definition: parse_tree_items.h:472
Definition: parse_tree_items.h:564
PTI_having(const POS &pos, Item *expr_arg)
Definition: parse_tree_items.h:566
Definition: parse_tree_items.h:422
Parse_tree_item super
Definition: parse_tree_items.h:423
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:588
Item * expr
Definition: parse_tree_items.h:425
PTI_in_sum_expr(const POS &pos, Item *expr_arg)
Definition: parse_tree_items.h:428
Definition: parse_tree_items.h:505
PTI_int_splocal(const POS &pos, const LEX_CSTRING &name)
Definition: parse_tree_items.h:509
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:519
const POS m_location
Location of the variable name.
Definition: parse_tree_items.h:516
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:634
Definition: parse_tree_items.h:522
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:658
PTI_limit_option_ident(const POS &pos, const LEX_CSTRING &name)
Definition: parse_tree_items.h:526
Definition: parse_tree_items.h:532
Item_param * param_marker
Definition: parse_tree_items.h:535
PTI_limit_option_param_marker(const POS &pos, Item_param *param_marker_arg)
Definition: parse_tree_items.h:538
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:665
Parse_tree_item super
Definition: parse_tree_items.h:533
Definition: parse_tree_items.h:347
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.h:358
Item_string super
Definition: parse_tree_items.h:348
PTI_literal_underscore_charset_bin_num(const POS &pos, const CHARSET_INFO *charset, const LEX_STRING &literal)
Definition: parse_tree_items.h:351
Definition: parse_tree_items.h:327
Item_string super
Definition: parse_tree_items.h:328
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.h:338
PTI_literal_underscore_charset_hex_num(const POS &pos, const CHARSET_INFO *charset, const LEX_STRING &literal)
Definition: parse_tree_items.h:331
Definition: parse_tree_items.h:458
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:596
LEX_STRING ident
Definition: parse_tree_items.h:461
Item * expr
Definition: parse_tree_items.h:462
Parse_tree_item super
Definition: parse_tree_items.h:459
PTI_odbc_date(const POS &pos, const LEX_STRING &ident_arg, Item *expr_arg)
Definition: parse_tree_items.h:465
Definition: parse_tree_items.h:99
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:353
Parse_tree_item super
Definition: parse_tree_items.h:100
PTI_simple_ident_ident(const POS &pos, const LEX_CSTRING &ident_arg)
Definition: parse_tree_items.h:106
Symbol_location raw
Definition: parse_tree_items.h:103
LEX_CSTRING ident
Definition: parse_tree_items.h:102
Definition: parse_tree_items.h:145
LEX_STRING ident
Definition: parse_tree_items.h:148
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:461
Parse_tree_item super
Definition: parse_tree_items.h:146
PTI_simple_ident_nospvar_ident(const POS &pos, const LEX_STRING &ident_arg)
Definition: parse_tree_items.h:151
Parse tree Item wrapper for 3-dimentional simple_ident-s.
Definition: parse_tree_items.h:134
PTI_simple_ident_q_2d(const POS &pos, const char *table_arg, const char *field_arg)
Definition: parse_tree_items.h:138
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:409
PTI_simple_ident_q_3d super
Definition: parse_tree_items.h:135
Parse tree Item wrapper for 3-dimentional simple_ident-s.
Definition: parse_tree_items.h:115
const char * table
Definition: parse_tree_items.h:120
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:388
const char * db
Definition: parse_tree_items.h:119
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:124
Parse_tree_item super
Definition: parse_tree_items.h:116
const char * field
Definition: parse_tree_items.h:121
Definition: parse_tree_items.h:434
PT_subquery * subselect
Definition: parse_tree_items.h:437
PTI_singlerow_subselect(const POS &pos, PT_subquery *subselect_arg)
Definition: parse_tree_items.h:440
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:313
Parse_tree_item super
Definition: parse_tree_items.h:435
Definition: parse_tree_items.h:308
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:526
LEX_STRING literal
Definition: parse_tree_items.h:311
const CHARSET_INFO * cs
Definition: parse_tree_items.h:313
Parse_tree_item super
Definition: parse_tree_items.h:309
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:316
enum_field_types field_type
Definition: parse_tree_items.h:312
Definition: parse_tree_items.h:295
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:509
PTI_text_literal super
Definition: parse_tree_items.h:296
PTI_text_literal * head
Definition: parse_tree_items.h:298
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:301
Definition: parse_tree_items.h:262
PTI_text_literal_nchar_string(const POS &pos, bool is_7bit_arg, const LEX_STRING &literal_arg)
Definition: parse_tree_items.h:266
PTI_text_literal super
Definition: parse_tree_items.h:263
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:303
Definition: parse_tree_items.h:251
PTI_text_literal_text_string(const POS &pos, bool is_7bit_arg, const LEX_STRING &literal_arg)
Definition: parse_tree_items.h:255
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:488
PTI_text_literal super
Definition: parse_tree_items.h:252
Definition: parse_tree_items.h:273
PTI_text_literal super
Definition: parse_tree_items.h:274
const CHARSET_INFO * cs
Definition: parse_tree_items.h:276
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:279
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.h:284
Definition: parse_tree_items.h:239
PTI_text_literal(const POS &pos, bool is_7bit_arg, const LEX_STRING &literal_arg)
Definition: parse_tree_items.h:246
bool is_7bit
Definition: parse_tree_items.h:243
Item_string super
Definition: parse_tree_items.h:240
LEX_STRING literal
Definition: parse_tree_items.h:244
Definition: parse_tree_items.h:179
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:209
Parse_tree_item super
Definition: parse_tree_items.h:180
Item * expr
Definition: parse_tree_items.h:182
LEX_STRING select_alias
Definition: parse_tree_items.h:183
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:187
Symbol_location expr_loc
Definition: parse_tree_items.h:184
Definition: parse_tree_items.h:376
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:546
Item_func_get_user_var super
Definition: parse_tree_items.h:377
PTI_user_variable(const POS &pos, const LEX_STRING &var)
Definition: parse_tree_items.h:380
Definition: parse_tree_items.h:366
PTI_variable_aux_set_var(const POS &pos, const LEX_STRING &var, Item *expr)
Definition: parse_tree_items.h:370
Item_func_set_user_var super
Definition: parse_tree_items.h:367
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: parse_tree_items.cc:534
Definition: parse_tree_items.h:558
PTI_where(const POS &pos, Item *expr_arg)
Definition: parse_tree_items.h:560
Wrapper class for an Item list head, used to allocate Item lists in the parser in a context-independe...
Definition: parse_tree_helpers.h:105
Definition: parse_tree_nodes.h:1606
Parse tree node for a window; just a shallow wrapper for class Window, q.v.
Definition: parse_tree_window.h:39
Base class for parse-time Item objects.
Definition: parse_tree_helpers.h:70
Parse_tree_item(const POS &pos)
Definition: parse_tree_helpers.h:72
Base class for parse tree nodes (excluding the Parse_tree_root hierarchy)
Definition: parse_tree_node_base.h:139
Comp_creator *(*)(bool invert) chooser_compare_func_creator
Convenience typedef for a function that returns factories for Item comparators (ie....
Definition: comp_creator.h:39
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:222
This file contains the field type.
enum_field_types
Column types for MySQL.
Definition: field_types.h:53
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:154
Some integer typedefs for easier portability.
uint8_t uint8
Definition: my_inttypes.h:63
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1052
const std::string charset("charset")
Definition: commit_order_queue.h:34
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:76
enum_parsing_context
Names for different query parse tree parts.
Definition: parse_tree_node_base.h:58
@ CTX_HAVING
Subquery in HAVING clause item tree.
Definition: parse_tree_node_base.h:74
@ CTX_WHERE
Subquery in WHERE clause item tree.
Definition: parse_tree_node_base.h:71
"public" interface to sys_var - server configuration variables.
enum_var_type
Definition: set_var.h:90
@ DERIVATION_COERCIBLE
Definition: field.h:182
case opt name
Definition: sslopt-case.h:33
Definition: m_ctype.h:385
Definition: mysql_lex_string.h:40
Definition: mysql_lex_string.h:35
char * str
Definition: mysql_lex_string.h:36
size_t length
Definition: mysql_lex_string.h:37
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:121
Helper class for the YYLTYPE.
Definition: parse_location.h:32
Bison "location" class.
Definition: parse_location.h:43