MySQL  8.0.21
Source Code Documentation
parser_yystype.h
Go to the documentation of this file.
1 /* Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved.
2 
3  This program is free software; you can redistribute it and/or modify
4  it under the terms of the GNU General Public License, version 2.0,
5  as published by the Free Software Foundation.
6 
7  This program is also distributed with certain software (including
8  but not limited to OpenSSL) that is licensed under separate terms,
9  as designated in a particular file or component or in included license
10  documentation. The authors of MySQL hereby grant you an additional
11  permission to link the program and your derivative works with the
12  separately licensed software that they have included with MySQL.
13 
14  This program is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU General Public License, version 2.0, for more details.
18 
19  You should have received a copy of the GNU General Public License
20  along with this program; if not, write to the Free Software
21  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
22 
23 #ifndef PARSER_YYSTYPE_INCLUDED
24 #define PARSER_YYSTYPE_INCLUDED
25 
26 #include "my_base.h"
27 #include "my_time.h" // interval_type
28 #include "sql/comp_creator.h"
29 #include "sql/handler.h"
30 #include "sql/item_create.h" // Cast_target
31 #include "sql/key_spec.h" // keytype, fk_option
32 #include "sql/lexer_yystype.h" // Lexer_yystype
33 #include "sql/opt_hints.h" // opt_hints_enum
34 #include "sql/parse_tree_hints.h"
35 #include "sql/resourcegroups/platform/thread_attrs_api.h" // ...::cpu_id_t
36 #include "sql/resourcegroups/resource_group_basic_types.h" // resourcegroups::Range
37 #include "sql/sql_admin.h" // Sql_cmd_analyze_table::Histogram_command
38 #include "sql/sql_alter.h" // Alter_info::enum_with_validation
39 #include "sql/sql_exchange.h" // Line_separators, enum_filetype
40 #include "sql/sql_get_diagnostics.h" // Diagnostics_information::Which_area
41 #include "sql/sql_signal.h" // enum_condition_item_name
42 #include "sql/table.h" // index_hint_type
43 #include "sql/trigger_def.h" // enum_trigger_order_type
44 #include "sql/window_lex.h" // enum_window_frame_unit
45 #include "sql/xa.h" // xa_option_words
46 #include "sql_string.h" // String
47 #include "thr_lock.h" // thr_lock_type
48 
51 class Parse_tree_root;
52 class Table_ident;
53 enum class Acl_type;
54 enum class enum_ha_read_modes;
55 enum class enum_jt_column;
56 enum class Json_on_response_type : uint16;
57 enum class enum_key_algorithm;
58 enum class partition_type;
61 struct udf_func;
62 
63 typedef Parse_tree_node_tmpl<Alter_tablespace_parse_context>
65 
67 
68 enum class enum_ha_read_modes;
69 
70 /**
71  used by the parser to store internal variable name
72 */
76 };
77 
79  DROP_DEFAULT, // mode is not specified
80  DROP_CASCADE, // CASCADE option
81  DROP_RESTRICT // RESTRICT option
82 };
83 
85 
86 struct Cast_type {
89  const char *length;
90  const char *dec;
91 };
92 
93 struct Limit_options {
96  /*
97  true for "LIMIT offset,limit" and false for "LIMIT limit OFFSET offset"
98  */
100 };
101 
104 
105  bool merge(const Query_options &a, const Query_options &b);
106  bool save_to(Parse_context *);
107 };
108 
110  DELETE_QUICK = 1 << 0,
112  DELETE_IGNORE = 1 << 2
113 };
114 
115 enum class Lock_strength { UPDATE, SHARE };
116 
117 /// We will static_cast this one to thr_lock_type.
118 enum class Locked_row_action {
120  WAIT = THR_WAIT,
121  NOWAIT = THR_NOWAIT,
122  SKIP = THR_SKIP
123 };
124 
125 /**
126  Internally there is no CROSS JOIN join type, as cross joins are just a
127  special case of inner joins with a join condition that is always true. The
128  only difference is the nesting, and that is handled by the parser.
129 */
131  JTT_INNER = 0x01,
132  JTT_STRAIGHT = 0x02,
133  JTT_NATURAL = 0x04,
134  JTT_LEFT = 0x08,
135  JTT_RIGHT = 0x10,
136 
141 };
142 
144 
145 enum class Ternary_option { DEFAULT, ON, OFF };
146 
148 
150 
151 enum class Int_type : ulong {
157 };
158 
159 enum class Numeric_type : ulong {
163 };
164 
165 enum class Show_cmd_type {
166  STANDARD,
167  FULL_SHOW,
170 };
171 
172 /**
173  std::optional-like wrapper for simple bitmaps (usually enums of binary flags)
174 
175  This template wraps trivial bitmap implementations to add two features:
176 
177  * std::optional-like behavior -- the "unset" flag, so we don't have
178  to inject a special "invalid" value into existent enum types, this
179  wrapper class does that for us.
180 
181  * the merge() function to merge two bitmap values in a type-safe way.
182 
183  @tparam Enum Usually a enum type which simulates a bit set.
184  @tparam Default_value A default Enum value for "unset" variables.
185 
186 */
187 template <typename Enum, Enum Default_value>
188 class Enum_parser {
189  public:
190  /// Constructor-like function
191  ///
192  /// The Enum_parser<> class is designed for use as a field of restricted
193  /// unions, so it can't have C++ constructors.
194  void init() { m_is_set = false; }
195 
196  /// False if the wrapped Enum value is not assigned.
197  bool is_set() const { return m_is_set; }
198 
199  /// Return the wrapped Enum value.
200  ///
201  /// @note The wrapped value must be assigned.
202  Enum get() const {
203  DBUG_ASSERT(is_set());
204  return m_enum;
205  }
206 
207  /// Return the wrapped Enum value (if any) or the Default_value.
208  Enum get_or_default() const { return is_set() ? get() : Default_value; }
209 
210  /// Assign the wrapped Enum value.
211  void set(Enum value) {
212  m_is_set = true;
213  m_enum = value;
214  }
215 
216  /// Merge the x bit set into the wrapped Enum value (if any), or replace it
217  void merge(const Enum_parser &x) {
218  if (x.is_set()) set(x.get());
219  }
220 
221  private:
222  bool m_is_set; ///< True if m_enum is assigned with some value
223  Enum m_enum; ///< The wrapped Enum value.
224 };
225 
226 template <typename T>
229  T value; ///< undefined if is_default is true
230 };
231 
233  // DEFAULT will be changed during parsing to TRADITIONAL
234  // for regular EXPLAIN, or TREE for EXPLAIN ANALYZE.
235  DEFAULT,
236  TRADITIONAL,
237  JSON,
238  TREE,
240 };
241 
242 // Compatibility with Bison 2.3:
243 #ifndef YYSTYPE_IS_DECLARED
244 #define YYSTYPE_IS_DECLARED 1
245 #endif // YYSTYPE_IS_DECLARED
246 
247 union YYSTYPE {
248  Lexer_yystype lexer; // terminal values from the lexical scanner
249  /*
250  Hint parser section (sql_hints.yy)
251  */
253  class PT_hint *hint;
258 
259  /*
260  Main parser section (sql_yacc.yy)
261  */
262  int num;
263  ulong ulong_num;
278  struct sys_var_with_base variable;
279  enum enum_var_type var_type;
281  enum ha_key_alg key_alg;
283  enum ha_rkey_function ha_rkey_mode;
285  enum enum_tx_isolation tx_isolation;
286  const char *c_str;
287  struct {
290  } charset_with_opt_binary;
291  struct {
292  const char *length;
293  const char *dec;
294  } precision;
295  struct Cast_type cast_type;
302  struct {
303  int vars, conds, hndlrs, curs;
304  } spblock;
308  enum index_hint_type index_hint;
309  enum enum_filetype filetype;
310  enum fk_option m_fk_option;
311  enum enum_yes_no_unknown m_yes_no_unk;
323  enum enum_trigger_order_type trigger_action_order_type;
324  struct {
325  enum enum_trigger_order_type ordering_clause;
327  } trg_characteristics;
330  class PT_subselect *subselect;
334  struct Limit_options limit_options;
339  class PT_group *group;
345  class PT_border *bound;
347  enum enum_null_treatment null_treatment;
348  enum enum_from_first_last from_first_last;
350  class PT_order *order;
365  class PT_set *set;
380 
382  enum xa_option_words xa_option_type;
383  struct {
386  } column_value_pair;
387  struct {
390  } column_value_list_pair;
391  struct {
392  class PT_item_list *column_list;
394  } column_row_value_list_pair;
395  struct {
396  class PT_item_list *column_list;
398  } insert_query_expression;
399  struct {
400  class Item *offset;
402  } lead_lag_info;
412  struct {
415  } index_name_and_type;
433  struct {
436  } opt_part_values;
439  List<char> *name_list; // TODO: merge with string_list
444  class PT_add_partition *add_partition_rule;
445  struct {
448  } mi_type;
460  ulong field_option; // 0 or combinations of UNSIGNED_FLAG and ZEROFILL_FLAG
462  class PT_type *type;
464  struct {
465  const char *expr_start;
467  } sp_default;
469  struct {
472  } fk_options;
475  struct {
477  List<Key_part_spec> *reference_list;
479  fk_option fk_update_opt;
480  fk_option fk_delete_opt;
481  } fk_references;
485  struct {
488  On_duplicate on_duplicate;
490  } create_table_tail;
496  // ON EMPTY/ON ERROR response for JSON_TABLE and JSON_VALUE.
500  } json_on_response;
501  struct {
504  } json_on_error_or_empty;
507  struct {
510  } wild_or_where;
512  struct {
516  } histogram;
527  struct Algo_and_lock {
534  void init() {
535  algo.init();
536  lock.init();
537  }
538  } opt_index_lock_and_algorithm;
549  void init() {
550  algo.init();
551  lock.init();
552  validation.init();
553  }
555  algo.merge(x.algo);
556  lock.merge(x.lock);
557  validation.merge(x.validation);
558  }
559  } algo_and_lock_and_validation;
560  struct {
563  } alter_list;
564  struct {
567  } standalone_alter_table_action;
575  struct {
578  } vcpu_range_type;
586  struct {
590  } load_set_element;
591  struct {
595  } load_set_list;
598  struct {
601  } insert_update_values_reference;
602 };
603 
604 static_assert(sizeof(YYSTYPE) <= 32, "YYSTYPE is too big");
605 
606 #endif // PARSER_YYSTYPE_INCLUDED
Definition: sql_udf.h:43
class PT_part_value_item * part_value_item
Definition: parser_yystype.h:428
Definition: parser_yystype.h:84
Builder for SQL functions.
Definition: parser_yystype.h:227
Statement_information_item::Name stmt_info_item_name
Definition: parser_yystype.h:316
unsigned long long int ulonglong
Definition: my_inttypes.h:55
List< PT_key_part_specification > * index_column_list
Definition: parser_yystype.h:411
class PT_key_part_specification * key_part
Definition: parser_yystype.h:379
Condition_information_item * cond_info_item
Definition: parser_yystype.h:318
This file defines all base public constants related to triggers in MySQL.
Definition: parser_yystype.h:527
Definition: sql_cmd_srs.h:40
class PT_column_attr_base * col_attr
Definition: parser_yystype.h:455
ts_alter_tablespace_type alter_tablespace_type
Definition: parser_yystype.h:596
Item * limit
Definition: parser_yystype.h:94
Definition: parse_tree_nodes.h:195
enum_from_first_last
Cf.
Definition: window_lex.h:62
enum_condition_item_name da_condition_item_name
Definition: parser_yystype.h:312
Our own string classes, used pervasively throughout the executor.
Item * item
Definition: parser_yystype.h:269
class PT_subselect * subselect
Definition: parser_yystype.h:330
static int interval
Definition: mysqladmin.cc:64
class Table_ident * table_ident
Definition: parser_yystype.h:405
Alter_info::enum_alter_table_lock alter_table_lock
Definition: parser_yystype.h:526
Set_signal_information * signal_item_list
Definition: parser_yystype.h:322
Definition: parser_yystype.h:132
class PT_border * bound
Definition: parser_yystype.h:345
class PT_internal_variable_name * internal_variable_name
Definition: parser_yystype.h:354
enum_order
Definition: key_spec.h:64
Definition: mysql_lex_string.h:34
Histogram_command
Specifies which (if any) of the commands UPDATE HISTOGRAM or DROP HISTOGRAM that is specified after A...
Definition: sql_admin.h:68
interval_type interval_time_st
Definition: parser_yystype.h:297
Definition: parse_tree_nodes.h:2803
Definition: parse_tree_nodes.h:4162
Definition: sql_lex.h:3409
Set_signal_information is a container used in the parsed tree to represent the collection of assignme...
Definition: sql_signal.h:67
decltype(HA_CHECK_OPT::flags) flags
Definition: parser_yystype.h:446
Definition: parser_yystype.h:139
Definition: parse_tree_nodes.h:791
Definition: parse_tree_nodes.h:1094
Definition: parse_tree_nodes.h:4302
bool visibility
Definition: parser_yystype.h:419
Enum m_enum
The wrapped Enum value.
Definition: parser_yystype.h:223
class sp_condition_value * spcondvalue
Definition: parser_yystype.h:301
T value
undefined if is_default is true
Definition: parser_yystype.h:229
class Item * default_value
Definition: parser_yystype.h:401
Acl_type acl_type
Definition: parser_yystype.h:517
Node for a list of partitioning values in VALUES clauses.
Definition: parse_tree_partitions.h:325
Default value, used when it&#39;s not specified in the statement.
Definition: sql_alter.h:382
fk_option fk_update_opt
Definition: parser_yystype.h:470
enum_ha_read_modes ha_read_mode
Definition: parser_yystype.h:284
List< String > * set_expr_str_list
Definition: parser_yystype.h:594
class PT_alter_table_action * alter_table_action
Definition: parser_yystype.h:523
Hint_param_table_list hint_param_table_list
Definition: parser_yystype.h:257
Mem_root_array< PT_assign_to_keycache * > * keycache_list
Definition: parser_yystype.h:569
Definition: field_types.h:59
Definition: parse_tree_nodes.h:207
Item * opt_offset
Definition: parser_yystype.h:95
ulong field_option
Definition: parser_yystype.h:460
Definition: parse_tree_nodes.h:1015
PT_alter_tablespace_option_base * ts_option
Definition: parser_yystype.h:573
bool is_set() const
False if the wrapped Enum value is not assigned.
Definition: parser_yystype.h:197
This class represents a query block, aka a query specification, which is a query consisting of a SELE...
Definition: sql_lex.h:1001
class PT_item_list * item_list2
Definition: parser_yystype.h:331
Mem_root_array_YY< PT_base_index_option * > index_options
Definition: parser_yystype.h:417
Item * default_string
Definition: parser_yystype.h:499
Mem_root_array< resourcegroups::Range > * resource_group_vcpu_list_type
Definition: parser_yystype.h:579
enum_key_algorithm
PARTITION BY KEY ALGORITHM=N Which algorithm to use for hashing the fields.
Definition: partition_info.h:173
Definition: item.h:4495
class PT_order_list * order_list
Definition: parser_yystype.h:333
Int_type
Definition: parser_yystype.h:151
Virtual_or_stored
Definition: parser_yystype.h:149
PT_query_primary * opt_query_expression
Definition: parser_yystype.h:489
Base class for all partition options.
Definition: parse_tree_partitions.h:81
Lock_strength lock_strength
Definition: parser_yystype.h:491
Mem_root_array_YY< LEX_STRING > lex_str_list
Definition: parser_yystype.h:418
class PT_transaction_access_mode * transaction_access_mode
Definition: parser_yystype.h:360
Definition: mysql_lex_string.h:39
enum_jt_column jt_column_type
Definition: parser_yystype.h:506
partition_type type
Definition: parser_yystype.h:434
const char * c_str
Definition: parser_yystype.h:286
Definition: field_types.h:61
enum_window_frame_unit
Cf.
Definition: window_lex.h:30
List< Item > * item_list
Definition: parser_yystype.h:271
class PT_option_value_list_head * option_value_list
Definition: parser_yystype.h:358
class PT_hint_list * hint_list
Definition: parser_yystype.h:254
Definition: parse_tree_hints.h:97
column_format_type column_format
Definition: parser_yystype.h:456
used by the parser to store internal variable name
Definition: parser_yystype.h:73
Definition: parse_tree_partitions.h:468
Diagnostics_information::Which_area diag_area
Definition: parser_yystype.h:313
Lock_strength
Definition: parser_yystype.h:115
List< char > * name_list
Definition: parser_yystype.h:439
const char * dec
Definition: parser_yystype.h:90
Parse tree node for a window; just a shallow wrapper for class Window, q.v.
Definition: parse_tree_nodes.h:1391
class PT_derived_table * derived_table
Definition: parser_yystype.h:375
Mem_root_array_YY< PT_table_reference * > table_reference_list
Definition: parser_yystype.h:371
PT_base_index_option * index_option
Definition: parser_yystype.h:416
PT_json_table_column * jt_column
Definition: parser_yystype.h:505
Definition: parse_tree_nodes.h:440
Acl_type
Definition: sql_lex.h:222
class Item * offset
Definition: parser_yystype.h:400
enum_ha_read_modes
Definition: sql_handler.h:34
String * string
Definition: parser_yystype.h:273
List< Statement_information_item > * stmt_info_list
Definition: parser_yystype.h:317
Base class for all column type nodes.
Definition: parse_tree_column_attrs.h:492
Definition: parser_yystype.h:80
Definition: field_types.h:60
Base class for all subpartitioning clause nodes.
Definition: parse_tree_partitions.h:418
class Index_hint * key_usage_element
Definition: parser_yystype.h:328
Ternary_option
Definition: parser_yystype.h:145
class PT_select_var * select_var_ident
Definition: parser_yystype.h:369
enum_drop_mode
Definition: parser_yystype.h:78
class PT_with_clause * with_clause
Definition: parser_yystype.h:420
ha_rkey_function
Definition: my_base.h:77
class PT_type * type
Definition: parser_yystype.h:462
List< Condition_information_item > * cond_info_list
Definition: parser_yystype.h:320
Explain_format_type
Definition: parser_yystype.h:232
Definition: parse_tree_nodes.h:2254
Wrapper class for an Item list head, used to allocate Item lists in the parser in a context-independe...
Definition: parse_tree_helpers.h:99
Node for the PARTITION definition clause.
Definition: parse_tree_partitions.h:590
LEX_STRING wild
Definition: parser_yystype.h:508
Enum_parser< Alter_info::enum_alter_table_lock, Alter_info::ALTER_TABLE_LOCK_DEFAULT > lock
Definition: parser_yystype.h:545
Item_num * item_num
Definition: parser_yystype.h:270
Mem_root_array< PT_subpartition * > * sub_part_list
Definition: parser_yystype.h:427
On_duplicate on_duplicate
Definition: parser_yystype.h:454
Json_on_response error
Definition: parser_yystype.h:502
Definition: parse_tree_nodes.h:385
class PT_window_list * windows
Definition: parser_yystype.h:340
char * simple_string
Definition: parser_yystype.h:268
Item * set_expr
Definition: parser_yystype.h:588
Mem_root_array< ulonglong > * thread_id_list_type
Definition: parser_yystype.h:584
Using this class is fraught with peril, and you need to be very careful when doing so...
Definition: sql_string.h:164
Alter_info::enum_with_validation with_validation
Definition: parser_yystype.h:522
class PT_window * window
Definition: parser_yystype.h:341
uint32_t cpu_id_t
Definition: thread_attrs_api.h:33
Definition: parse_tree_nodes.h:3511
Definition: parser_yystype.h:93
Diagnostics_information * diag_info
Definition: parser_yystype.h:314
void init()
Definition: parser_yystype.h:549
Definition: parser_yystype.h:137
Item * column
Definition: parser_yystype.h:384
Definition: parse_tree_items.h:240
Definition: parse_tree_nodes.h:2293
class PT_order * order
Definition: parser_yystype.h:350
Definition: thr_lock.h:96
Locked_row_action locked_row_action
Definition: parser_yystype.h:492
Definition: sql_lex.h:256
Parse_tree_node * node
Definition: parser_yystype.h:337
Item * value
Definition: parser_yystype.h:385
void merge(const Enum_parser &x)
Merge the x bit set into the wrapped Enum value (if any), or replace it.
Definition: parser_yystype.h:217
Base class for all column attributes in CREATE/ALTER TABLE
Definition: parse_tree_column_attrs.h:64
class PT_subpartition * sub_part_definition
Definition: parser_yystype.h:426
Definition: parse_tree_nodes.h:400
class PT_select_var_list * select_var_list
Definition: parser_yystype.h:370
Definition: parse_tree_nodes.h:1127
class PT_base_index_option * type
Definition: parser_yystype.h:414
partition_type
An enum and a struct to handle partitioning and subpartitioning.
Definition: partition_element.h:32
class PT_query_primary * query_primary
Definition: parser_yystype.h:377
Definition: field_types.h:65
Base class for partition value nodes: MAX_VALUE values or expressions.
Definition: parse_tree_partitions.h:277
class PT_table_constraint_def * table_constraint_def
Definition: parser_yystype.h:410
Definition: parse_tree_nodes.h:4098
void merge(const Algo_and_lock_and_validation &x)
Definition: parser_yystype.h:554
Json_on_response empty
Definition: parser_yystype.h:503
Placeholder (&#39;?&#39;) of prepared statement.
Definition: item.h:3961
fk_match_opt fk_match_option
Definition: parser_yystype.h:478
enum_filetype
Definition: sql_exchange.h:29
Mem_root_array< PT_part_value_item_list_paren * > * part_value_list
Definition: parser_yystype.h:431
class PT_locking_clause_list * locking_clause_list
Definition: parser_yystype.h:494
Represents the diagnostics information to be obtained.
Definition: sql_get_diagnostics.h:72
Definition: parse_tree_nodes.h:856
class PT_column_def * column_def
Definition: parser_yystype.h:482
Name
The name of a statement information item.
Definition: sql_get_diagnostics.h:176
This file includes constants used by all storage engines.
Parse tree node for a window frame&#39;s exclusions, cf.
Definition: parse_tree_nodes.h:1355
void init()
Constructor-like function.
Definition: parser_yystype.h:194
Mem_root_array< PT_part_value_item * > * part_value_item_list
Definition: parser_yystype.h:429
Definition: parser_yystype.h:140
Definition: parse_tree_nodes.h:946
Definition: table.h:2393
int vars
Definition: parser_yystype.h:303
class PT_part_value_item_list_paren * part_value_item_list_paren
Definition: parser_yystype.h:430
A key part specification.
Definition: parse_tree_nodes.h:2085
#define DBUG_ASSERT(A)
Definition: my_dbug.h:199
enum_alter_table_lock
The different values of the LOCK clause.
Definition: sql_alter.h:358
opt_hints_enum
Hint types, MAX_HINT_ENUM should be always last.
Definition: opt_hints.h:62
bool is_not_empty
Definition: parser_yystype.h:321
Table_ident * table
Definition: parser_yystype.h:267
sp_head * sphead
Definition: parser_yystype.h:307
enum_yes_no_unknown
Definition: parser_yystype.h:66
interval_type
Available interval types used in any statement.
Definition: my_time.h:403
Enum_parser< Alter_info::enum_alter_table_lock, Alter_info::ALTER_TABLE_LOCK_DEFAULT > lock
Definition: parser_yystype.h:533
A class representing one system variable - that is something that can be accessed as @global...
Definition: set_var.h:102
class PT_insert_values_list * values_list
Definition: parser_yystype.h:403
class PT_assign_to_keycache * assign_to_keycache
Definition: parser_yystype.h:568
class PT_create_table_option * create_table_option
Definition: parser_yystype.h:451
Definition: parser_yystype.h:66
Parse tree node for one or both of a window extent&#39;s borders, cf.
Definition: parse_tree_nodes.h:1333
int num
Definition: parser_yystype.h:262
Parse tree node for a single of a window extent&#39;s borders, cf.
Definition: parse_tree_nodes.h:1288
class PT_locking_clause * locking_clause
Definition: parser_yystype.h:493
fk_option fk_delete_opt
Definition: parser_yystype.h:471
thr_lock_type
Definition: thr_lock.h:50
Create_col_name_list * column_list
Definition: parser_yystype.h:600
XID * xid
Definition: parser_yystype.h:381
Mem_root_array_YY< Table_ident * > table_ident_list
Definition: parser_yystype.h:406
Algo_and_lock_and_validation flags
Definition: parser_yystype.h:561
Statement_information_item * stmt_info_item
Definition: parser_yystype.h:315
Definition: parser_yystype.h:111
Mem_root_array< PT_role_or_privilege * > * role_or_privilege_list
Definition: parser_yystype.h:520
Definition: parse_tree_nodes.h:840
Definition: item.h:3340
Parse_tree_root * top_level_node
Definition: parser_yystype.h:404
Mem_root_array< Table_ident * > * table_list
Definition: parser_yystype.h:274
Definition: parser_yystype.h:135
class PTI_text_literal * text_literal
Definition: parser_yystype.h:373
Table_ident * table_name
Definition: parser_yystype.h:476
keytype key_type
Definition: parser_yystype.h:280
List< Index_hint > * key_usage_list
Definition: parser_yystype.h:329
static std::mutex lock
Definition: net_ns.cc:55
Enum_parser< Alter_info::enum_with_validation, Alter_info::ALTER_VALIDATION_DEFAULT > validation
Definition: parser_yystype.h:548
Item_string * item_string
Definition: parser_yystype.h:349
Definition: parser_yystype.h:79
uint flags
Definition: handler.h:3229
enum_jt_column
Type of columns for JSON_TABLE function.
Definition: table_function.h:180
PT_alter_table_standalone_action * action
Definition: parser_yystype.h:566
delete_option_enum opt_delete_option
Definition: parser_yystype.h:407
ulong ulong_num
Definition: parser_yystype.h:263
Definition: parser_yystype.h:539
uint sql_flags
Definition: handler.h:3230
LEX * lex
Definition: parser_yystype.h:306
class PT_role_or_privilege * role_or_privilege
Definition: parser_yystype.h:519
class PT_isolation_level * isolation_level
Definition: parser_yystype.h:361
This class represents condition-value term in DECLARE CONDITION or DECLARE HANDLER statements...
Definition: sp_pcontext.h:131
ha_storage_media
Definition: my_base.h:114
class PT_hint * hint
Definition: parser_yystype.h:253
Mem_root_array_YY< LEX_CSTRING > Create_col_name_list
Definition: parser_yystype.h:143
class PT_start_option_value_list_following_option_type * start_option_value_list_following_option_type
Definition: parser_yystype.h:363
Mem_root_array< PT_create_table_option * > * opt_create_table_options
Definition: parser_yystype.h:486
resourcegroups::platform::cpu_id_t start
Definition: parser_yystype.h:576
Mem_root_array< PT_table_element * > * table_element_list
Definition: parser_yystype.h:484
Value_or_default< int > resource_group_priority_type
Definition: parser_yystype.h:580
enum_mysql_timestamp_type date_time_type
Definition: parser_yystype.h:298
Definition: parse_tree_nodes.h:738
const CHARSET_INFO * charset
Definition: parser_yystype.h:88
List< String > * columns
Definition: parser_yystype.h:514
chooser_compare_func_creator boolfunc2creator
Definition: parser_yystype.h:300
Definition: field_types.h:66
class PT_table_reference * table_reference
Definition: parser_yystype.h:351
LEX_USER * lex_user
Definition: parser_yystype.h:276
Show_cmd_type
Definition: parser_yystype.h:165
keytype
Definition: key_spec.h:39
thr_lock_type lock_type
Definition: parser_yystype.h:296
Sql_cmd_srs_attributes * sql_cmd_srs_attributes
Definition: parser_yystype.h:597
Item * expr
Definition: parser_yystype.h:466
uint16_t uint16
Definition: my_inttypes.h:64
Definition: item.h:741
Base class for parse tree nodes (excluding the Parse_tree_root hierarchy)
Definition: parse_tree_node_base.h:111
bool is_offset_first
Definition: parser_yystype.h:99
Definition: parse_tree_nodes.h:3149
class PT_group * group
Definition: parser_yystype.h:339
Definition: parse_tree_nodes.h:1678
Field_separators field_separators
Definition: parser_yystype.h:367
class PT_sub_partition * opt_sub_part
Definition: parser_yystype.h:441
class PT_part_values * part_values
Definition: parser_yystype.h:432
struct xid_t is binary compatible with the XID structure as in the X/Open CAE Specification, Distributed Transaction Processing: The XA Specification, X/Open Company Ltd., 1991.
Definition: xa.h:213
Type
Definition: resource_group_basic_types.h:32
delete_option_enum
Definition: parser_yystype.h:109
class PT_exclusion * frame_exclusion
Definition: parser_yystype.h:346
Virtual_or_stored virtual_or_stored
Definition: parser_yystype.h:459
The class is a base class for representation of the different types of the hints. ...
Definition: parse_tree_hints.h:57
Definition: parse_tree_hints.h:44
class PT_item_list * column_list
Definition: parser_yystype.h:388
LEX_CSTRING base_name
Definition: parser_yystype.h:75
On_duplicate
Definition: parser_yystype.h:147
Base class for CREATE TABLE option nodes.
Definition: parse_tree_nodes.h:2371
Definition: parser_yystype.h:497
Definition: m_ctype.h:359
Definition: parser_yystype.h:134
Mem_root_array< PT_ddl_table_option * > * actions
Definition: parser_yystype.h:562
Int_type int_type
Definition: parser_yystype.h:461
Definition: field_types.h:58
fk_match_opt opt_match_clause
Definition: parser_yystype.h:473
Definition: parse_tree_nodes.h:1271
resourcegroups::platform::cpu_id_t end
Definition: parser_yystype.h:577
Enum_parser< Alter_info::enum_alter_table_algorithm, Alter_info::ALTER_TABLE_ALGORITHM_DEFAULT > algo
Definition: parser_yystype.h:530
A typesafe replacement for DYNAMIC_ARRAY.
Definition: mem_root_array.h:389
Query_options select_options
Definition: parser_yystype.h:335
class PT_create_index_stmt * create_index_stmt
Definition: parser_yystype.h:409
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:99
A statement information item.
Definition: sql_get_diagnostics.h:173
class PT_partition_option * partition_option
Definition: parser_yystype.h:424
Definition: parse_tree_nodes.h:1192
sp_head represents one instance of a stored program.
Definition: sp_head.h:379
Represents the WITH list.
Definition: parse_tree_nodes.h:312
PT_joined_table_type
Internally there is no CROSS JOIN join type, as cross joins are just a special case of inner joins wi...
Definition: parser_yystype.h:130
Mem_root_array< PT_column_attr_base * > * col_attr_list
Definition: parser_yystype.h:458
Definition: parse_tree_nodes.h:1078
Definition: parser_yystype.h:86
Mem_root_array< PT_json_table_column * > * jtc_list
Definition: parser_yystype.h:495
Hint_param_table hint_param_table
Definition: parser_yystype.h:256
class PT_query_expression_body * query_expression_body
Definition: parser_yystype.h:376
Definition: parse_tree_nodes.h:479
class PT_into_destination * into_destination
Definition: parser_yystype.h:368
fk_option
Definition: key_spec.h:48
Json_on_response_type
Types of ON EMPTY/ON ERROR clauses for JSON_TABLE and JSON_VALUE.
Definition: table_function.h:189
Alter_info::enum_alter_table_algorithm alter_table_algorithm
Definition: parser_yystype.h:525
LEX_CSTRING lex_cstr
Definition: parser_yystype.h:265
resourcegroups::Type resource_group_type
Definition: parser_yystype.h:583
Mem_root_array< PT_partition_option * > * partition_option_list
Definition: parser_yystype.h:425
class PT_preload_keys * preload_keys
Definition: parser_yystype.h:571
A condition information item.
Definition: sql_get_diagnostics.h:222
sp_name * spname
Definition: parser_yystype.h:305
List< String > * string_list
Definition: parser_yystype.h:272
class PT_start_option_value_list * start_option_value_list
Definition: parser_yystype.h:359
enum_condition_item_name
This enumeration list all the condition item names of a condition in the SQL condition area...
Definition: sql_signal.h:40
class PT_alter_instance * alter_instance_cmd
Definition: parser_yystype.h:408
const char * length
Definition: parser_yystype.h:292
Definition: parser_yystype.h:102
int num_buckets
Definition: parser_yystype.h:515
class PT_insert_values_list * row_value_list
Definition: parser_yystype.h:393
enum_order order_direction
Definition: parser_yystype.h:521
LEX_CSTRING table_alias
Definition: parser_yystype.h:599
Cast_target target
Definition: parser_yystype.h:87
enum_drop_mode opt_restrict
Definition: parser_yystype.h:449
class PT_table_element * table_element
Definition: parser_yystype.h:483
Definition: parse_tree_nodes.h:718
List< Key_part_spec > * reference_list
Definition: parser_yystype.h:474
Mem_root_array< LEX_CSTRING > * lex_cstring_list
Definition: parser_yystype.h:518
ulonglong query_spec_options
Definition: parser_yystype.h:103
Top-level node for the ALTER INSTANCE statement.
Definition: parse_tree_nodes.h:2060
Definition: parse_tree_nodes.h:2967
decltype(HA_CHECK_OPT::sql_flags) sql_flags
Definition: parser_yystype.h:447
Name
The name of a condition information item.
Definition: sql_get_diagnostics.h:227
enum_window_frame_unit frame_units
Definition: parser_yystype.h:343
void init()
Definition: parser_yystype.h:534
A template-free base class for index options that we can predeclare in sql_lex.h. ...
Definition: parse_tree_nodes.h:2076
enum_mysql_timestamp_type
Definition: mysql_time.h:44
class PT_joined_table * join_table
Definition: parser_yystype.h:352
enum_var_type
Definition: set_var.h:87
Helper for the sql_exchange class.
Definition: sql_exchange.h:50
const char * length
Definition: parser_yystype.h:89
Definition: parse_tree_nodes.h:1236
Definition: parser_yystype.h:66
class PT_partition * partition_clause
Definition: parser_yystype.h:443
bool is_default
Definition: parser_yystype.h:228
sys_var * var
Definition: parser_yystype.h:74
Definition: parse_tree_nodes.h:643
class PT_part_type_def * part_type_def
Definition: parser_yystype.h:442
ts_alter_tablespace_type
Definition: handler.h:822
Definition: parser_yystype.h:84
Hint_param_index_list hint_param_index_list
Definition: parser_yystype.h:255
Definition: parser_yystype.h:66
Definition: parser_yystype.h:247
class PT_item_list * value_list
Definition: parser_yystype.h:389
Create_col_name_list simple_ident_list
Definition: parser_yystype.h:423
Definition: thr_lock.h:96
ha_key_alg
Definition: my_base.h:96
Definition: parser_yystype.h:133
enum_with_validation
Status of validation clause in ALTER TABLE statement.
Definition: sql_alter.h:376
Item * where
Definition: parser_yystype.h:509
Locked_row_action
We will static_cast this one to thr_lock_type.
Definition: parser_yystype.h:118
Definition: parse_tree_nodes.h:4112
Definition: parse_tree_nodes.h:1179
Parse tree node for a window&#39;s frame, cf.
Definition: parse_tree_nodes.h:1367
Mem_root_array< PT_create_table_option * > * create_table_options
Definition: parser_yystype.h:452
Definition: parser_yystype.h:81
LEX_CSTRING anchor_trigger_name
Definition: parser_yystype.h:326
bool resource_group_flag_type
Definition: parser_yystype.h:582
Json_on_response_type type
Definition: parser_yystype.h:498
Node for the PARTITION clause of CREATE/ALTER TABLE.
Definition: parse_tree_partitions.h:382
Ternary_option ternary_option
Definition: parser_yystype.h:450
class Item_param * param_marker
Definition: parser_yystype.h:372
LEX_STRING * lex_str_ptr
Definition: parser_yystype.h:266
class PT_add_partition * add_partition_rule
Definition: parser_yystype.h:444
const char * expr_start
Definition: parser_yystype.h:465
LEX_STRING name
Definition: parser_yystype.h:413
std::optional-like wrapper for simple bitmaps (usually enums of binary flags)
Definition: parser_yystype.h:188
Definition: field_types.h:79
Mem_root_array< PT_preload_keys * > * preload_list
Definition: parser_yystype.h:572
enum_alter_table_algorithm
The different values of the ALGORITHM clause.
Definition: sql_alter.h:340
const char * dec
Definition: parser_yystype.h:293
ha_storage_media storage_media
Definition: parser_yystype.h:457
enum_key_algorithm opt_key_algo
Definition: parser_yystype.h:440
class PT_alter_table_standalone_action * alter_table_standalone_action
Definition: parser_yystype.h:524
class PT_subquery * subquery
Definition: parser_yystype.h:378
Explain_format_type explain_format_type
Definition: parser_yystype.h:585
Enum get() const
Return the wrapped Enum value.
Definition: parser_yystype.h:202
class PT_adm_partition * adm_partition
Definition: parser_yystype.h:570
Definition: parser_yystype.h:138
udf_func * udf
Definition: parser_yystype.h:275
Definition: parse_tree_nodes.h:655
olap_type
Definition: parser_yystype.h:84
Definition: parse_tree_nodes.h:1881
enum_trigger_order_type
Possible trigger ordering clause values:
Definition: trigger_def.h:63
Definition: parse_tree_nodes.h:1544
Node for the SUBRAPTITION clause of CREATE/ALTER TABLE
Definition: parse_tree_partitions.h:259
Definition: field_types.h:62
const string value("\alue\)
Base class for column/constraint definitions in CREATE TABLE.
Definition: parse_tree_nodes.h:2291
String * set_expr_str
Definition: parser_yystype.h:589
Enum get_or_default() const
Return the wrapped Enum value (if any) or the Default_value.
Definition: parser_yystype.h:208
class PT_field_def_base * field_def
Definition: parser_yystype.h:468
Interface for low level time utilities.
Which_area
Which Diagnostics Area to access.
Definition: sql_get_diagnostics.h:77
Definition: parse_tree_nodes.h:1424
SELECT_LEX * select_lex
Definition: parser_yystype.h:299
class PT_frame * window_frame
Definition: parser_yystype.h:342
fk_match_opt
Definition: key_spec.h:57
Mem_root_array< PT_alter_tablespace_option_base * > * ts_options
Definition: parser_yystype.h:574
class PT_borders * frame_extent
Definition: parser_yystype.h:344
class PT_part_definition * part_definition
Definition: parser_yystype.h:437
Common base class for CREATE TABLE and ALTER TABLE option nodes.
Definition: parse_tree_nodes.h:2357
Mem_root_array< PT_ddl_table_option * > * space_separated_alter_table_opts
Definition: parser_yystype.h:453
const CHARSET_INFO * charset
Definition: parser_yystype.h:288
column_format_type
Definition: field.h:187
Lexer_yystype lexer
Definition: parser_yystype.h:248
class PT_query_primary * insert_query_expression
Definition: parser_yystype.h:397
class PT_option_value_no_option_type * option_value_no_option_type
Definition: parser_yystype.h:357
opt_hints_enum hint_type
Definition: parser_yystype.h:252
static int flags[50]
Definition: hp_test1.cc:39
Base class for VALUES partitioning clauses.
Definition: parse_tree_partitions.h:318
Line_separators line_separators
Definition: parser_yystype.h:366
PT_item_list * set_expr_list
Definition: parser_yystype.h:593
Base class for all top-level nodes of SQL statements.
Definition: parse_tree_nodes.h:152
Represents the WITH clause: WITH [...], [...] SELECT ..., ^^^^^^^^^^^^^^^^^.
Definition: parse_tree_nodes.h:332
PT_item_list * set_var_list
Definition: parser_yystype.h:592
class PT_with_list * with_list
Definition: parser_yystype.h:421
Definition: thr_lock.h:96
class PT_order_expr * order_expr
Definition: parser_yystype.h:332
PT_part_values * values
Definition: parser_yystype.h:435
class PT_transaction_characteristics * transaction_characteristics
Definition: parser_yystype.h:362
class PT_limit_clause * limit_clause
Definition: parser_yystype.h:336
Definition: parser_yystype.h:131
enum_null_treatment
Cf.
Definition: window_lex.h:57
class PT_query_expression * query_expression
Definition: parser_yystype.h:374
Sql_cmd_analyze_table::Histogram_command command
Definition: parser_yystype.h:513
Definition: lexer_yystype.h:32
class PT_option_value_following_option_type * option_value_following_option_type
Definition: parser_yystype.h:355
Item * set_var
Definition: parser_yystype.h:587
index_hint_type
Definition: table.h:1304
Show_cmd_type show_cmd_type
Definition: parser_yystype.h:511
bool m_is_set
True if m_enum is assigned with some value.
Definition: parser_yystype.h:222
bool force_binary
Definition: parser_yystype.h:289
Definition: sql_alter.h:360
enum_tx_isolation
Definition: handler.h:2639
Condition_information_item::Name cond_info_item_name
Definition: parser_yystype.h:319
PT_partition * opt_partitioning
Definition: parser_yystype.h:487
Numeric_type numeric_type
Definition: parser_yystype.h:463
join_type
Definition: sql_opt_exec_shared.h:176
Definition: parse_tree_nodes.h:630
Represents an element of the WITH list: WITH [...], [...] SELECT ..., ^ or ^ i.e. ...
Definition: parse_tree_nodes.h:246
Base class for both generated and regular column definitions.
Definition: parse_tree_column_attrs.h:835
ulonglong ulonglong_number
Definition: parser_yystype.h:264
Definition: sp_head.h:119
Cast_target
Definition: item_create.h:54
Numeric_type
Definition: parser_yystype.h:159
Definition: thr_lock.h:96
bool_t is_set(node_set set, node_no i)
Definition: node_set.cc:216
Definition: sql_lex.h:441
Definition: parser_yystype.h:112
Parse tree node for a list of window definitions corresponding to a <window clause> in SQL 2003...
Definition: parse_tree_nodes.h:1412
Value_or_default< bool > resource_group_state_type
Definition: parser_yystype.h:581
xa_option_words
Definition: xa.h:49
Mem_root_array< PT_part_definition * > * part_def_list
Definition: parser_yystype.h:438
List< LEX_USER > * user_list
Definition: parser_yystype.h:277
Helper for the sql_exchange class.
Definition: sql_exchange.h:35
Definition: parse_tree_nodes.h:1086
class PT_common_table_expr * common_table_expr
Definition: parser_yystype.h:422
Comp_creator *(*)(bool invert) chooser_compare_func_creator
Convenience typedef for a function that returns factories for Item comparators (ie., returns Comp_creator).
Definition: comp_creator.h:38
Definition: parser_yystype.h:110
Definition: parse_tree_nodes.h:510
row_type
Definition: handler.h:666
Enum_parser< Alter_info::enum_alter_table_algorithm, Alter_info::ALTER_TABLE_ALGORITHM_DEFAULT > algo
Definition: parser_yystype.h:542