MySQL 8.0.37
Source Code Documentation
parser_yystype.h
Go to the documentation of this file.
1/* Copyright (c) 2019, 2024, Oracle and/or its affiliates.
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 designed to work 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 either included with
13 the program or referenced in the documentation.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License, version 2.0, for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program; if not, write to the Free Software
22 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
23
24#ifndef PARSER_YYSTYPE_INCLUDED
25#define PARSER_YYSTYPE_INCLUDED
26
27#include <assert.h>
28#include <sys/types.h> // TODO: replace with cstdint
29
30#include <optional>
31
32#include "field_types.h"
33#include "lex_string.h"
34#include "my_base.h"
35
36#include "my_inttypes.h" // TODO: replace with cstdint
37#include "my_time.h" // interval_type
38#include "mysql_time.h"
39#include "sql/comp_creator.h"
40#include "sql/field.h"
41#include "sql/handler.h"
42#include "sql/item_create.h" // Cast_target
43#include "sql/key_spec.h" // keytype, fk_option
44#include "sql/lexer_yystype.h" // Lexer_yystype
45#include "sql/mem_root_array.h"
46#include "sql/opt_hints.h" // opt_hints_enum
49#include "sql/resourcegroups/platform/thread_attrs_api.h" // ...::cpu_id_t
50#include "sql/resourcegroups/resource_group_basic_types.h" // resourcegroups::Range
51#include "sql/set_var.h"
52#include "sql/sql_admin.h" // Sql_cmd_analyze_table::Histogram_command
53#include "sql/sql_alter.h" // Alter_info::enum_with_validation
54#include "sql/sql_exchange.h" // Line_separators, enum_filetype
55#include "sql/sql_get_diagnostics.h" // Diagnostics_information::Which_area
56#include "sql/sql_signal.h" // enum_condition_item_name
57#include "sql/table.h" // index_hint_type
58#include "sql/trigger_def.h" // enum_trigger_order_type
59#include "sql/window_lex.h" // enum_window_frame_unit
60#include "sql/xa.h" // xa_option_words
61#include "thr_lock.h" // thr_lock_type
62
63class Index_hint;
64class Item;
65class Item_num;
66class Item_param;
67class Item_string;
69class PT_add_partition;
76class PT_border;
77class PT_borders;
79class PT_column_def;
85class PT_exclusion;
87class PT_frame;
88class PT_group;
92class PT_item_list;
93class PT_joined_table;
96class PT_limit_clause;
101class PT_order;
102class PT_order_expr;
103class PT_order_list;
105class PT_part_type_def;
108class PT_part_values;
109class PT_partition;
111class PT_preload_keys;
114class PT_query_primary;
116class PT_select_var;
118class PT_set;
122class PT_sub_partition;
123class PT_subpartition;
124class PT_subquery;
125class PT_subselect;
127class PT_table_element;
131class PT_type;
132class PT_window;
133class PT_window_list;
134class PT_with_clause;
135class PT_with_list;
136class Parse_tree_root;
137class Query_block;
138class String;
139class Table_ident;
141class sp_head;
142class sp_name;
143enum class Acl_type;
144enum class Json_on_response_type : uint16;
145enum class enum_ha_read_modes;
146enum class enum_ha_read_modes;
147enum class enum_jt_column;
148enum class enum_key_algorithm;
149enum class partition_type;
151struct CHARSET_INFO;
152struct LEX;
154struct udf_func;
156
157template <class T>
158class List;
159
160typedef Parse_tree_node_tmpl<Alter_tablespace_parse_context>
162
164
165/**
166 used by the parser to store internal variable name
167*/
171};
172
174 DROP_DEFAULT, // mode is not specified
175 DROP_CASCADE, // CASCADE option
176 DROP_RESTRICT // RESTRICT option
178
180
181struct Cast_type {
184 const char *length;
185 const char *dec;
186};
187
191 /*
192 true for "LIMIT offset,limit" and false for "LIMIT limit OFFSET offset"
193 */
195};
196
199
200 bool merge(const Query_options &a, const Query_options &b);
201 bool save_to(Parse_context *);
202};
203
205 DELETE_QUICK = 1 << 0,
207 DELETE_IGNORE = 1 << 2
209
210enum class Lock_strength { UPDATE, SHARE };
211
212/// We will static_cast this one to thr_lock_type.
215 WAIT = THR_WAIT,
217 SKIP = THR_SKIP
218};
219
220/**
221 Internally there is no CROSS JOIN join type, as cross joins are just a
222 special case of inner joins with a join condition that is always true. The
223 only difference is the nesting, and that is handled by the parser.
224*/
226 JTT_INNER = 0x01,
229 JTT_LEFT = 0x08,
230 JTT_RIGHT = 0x10,
231
237
239
240enum class Ternary_option { DEFAULT, ON, OFF };
241
243
245
246enum class Int_type : ulong {
252};
253
254enum class Numeric_type : ulong {
258};
259
260enum class Show_cmd_type {
261 STANDARD,
262 FULL_SHOW,
265};
266
267/**
268 std::optional-like wrapper for simple bitmaps (usually enums of binary flags)
269
270 This template wraps trivial bitmap implementations to add two features:
271
272 * std::optional-like behavior -- the "unset" flag, so we don't have
273 to inject a special "invalid" value into existent enum types, this
274 wrapper class does that for us.
275
276 * the merge() function to merge two bitmap values in a type-safe way.
277
278 @tparam Enum Usually a enum type which simulates a bit set.
279 @tparam Default_value A default Enum value for "unset" variables.
280
281*/
282template <typename Enum, Enum Default_value>
284 public:
285 /// Constructor-like function
286 ///
287 /// The Enum_parser<> class is designed for use as a field of restricted
288 /// unions, so it can't have C++ constructors.
289 void init() { m_is_set = false; }
290
291 /// False if the wrapped Enum value is not assigned.
292 bool is_set() const { return m_is_set; }
293
294 /// Return the wrapped Enum value.
295 ///
296 /// @note The wrapped value must be assigned.
297 Enum get() const {
298 assert(is_set());
299 return m_enum;
300 }
301
302 /// Return the wrapped Enum value (if any) or the Default_value.
303 Enum get_or_default() const { return is_set() ? get() : Default_value; }
304
305 /// Assign the wrapped Enum value.
306 void set(Enum value) {
307 m_is_set = true;
308 m_enum = value;
309 }
310
311 /// Merge the x bit set into the wrapped Enum value (if any), or replace it
312 void merge(const Enum_parser &x) {
313 if (x.is_set()) set(x.get());
314 }
315
316 private:
317 bool m_is_set; ///< True if m_enum is assigned with some value
318 Enum m_enum; ///< The wrapped Enum value.
319};
320
321template <typename T>
324 T value; ///< undefined if is_default is true
325};
326
328 LEX_CSTRING prefix; ///< prefix is optional: prefix.str can be nullptr
330};
331
336};
337
339
340union YYSTYPE {
341 Lexer_yystype lexer; // terminal values from the lexical scanner
342 /*
343 Hint parser section (sql_hints.yy)
344 */
351
352 /*
353 Main parser section (sql_yacc.yy)
354 */
355 int num;
372 struct {
383 const char *c_str;
384 struct {
388 struct {
389 const char *length;
390 const char *dec;
399 struct {
422 struct {
428 PT_subselect *subselect;
473 struct {
480
483 struct {
487 struct {
491 struct {
495 struct {
499 struct {
512 struct {
533 struct {
539 List<char> *name_list; // TODO: merge with string_list
544 PT_add_partition *add_partition_rule;
545 struct {
560 ulong field_option; // 0 or combinations of UNSIGNED_FLAG and ZEROFILL_FLAG
564 struct {
565 const char *expr_start;
569 struct {
575 struct {
585 struct {
596 // ON EMPTY/ON ERROR response for JSON_TABLE and JSON_VALUE.
601 struct {
607 struct {
616 struct {
638 void init() {
639 algo.init();
640 lock.init();
641 }
653 void init() {
654 algo.init();
655 lock.init();
656 validation.init();
657 }
659 algo.merge(x.algo);
660 lock.merge(x.lock);
661 validation.merge(x.validation);
662 }
664 struct {
668 struct {
669 Algo_and_lock_and_validation flags;
679 struct {
690 struct {
695 struct {
700 struct {
707 struct {
716};
717
718static_assert(sizeof(YYSTYPE) <= 32, "YYSTYPE is too big");
719
720#endif // PARSER_YYSTYPE_INCLUDED
enum_alter_table_algorithm
The different values of the ALGORITHM clause.
Definition: sql_alter.h:354
@ ALTER_TABLE_ALGORITHM_DEFAULT
Definition: sql_alter.h:356
enum_alter_table_lock
The different values of the LOCK clause.
Definition: sql_alter.h:372
@ ALTER_TABLE_LOCK_DEFAULT
Definition: sql_alter.h:374
enum_with_validation
Status of validation clause in ALTER TABLE statement.
Definition: sql_alter.h:390
@ ALTER_VALIDATION_DEFAULT
Default value, used when it's not specified in the statement.
Definition: sql_alter.h:396
A condition information item.
Definition: sql_get_diagnostics.h:224
Name
The name of a condition information item.
Definition: sql_get_diagnostics.h:229
Represents the diagnostics information to be obtained.
Definition: sql_get_diagnostics.h:74
Which_area
Which Diagnostics Area to access.
Definition: sql_get_diagnostics.h:79
std::optional-like wrapper for simple bitmaps (usually enums of binary flags)
Definition: parser_yystype.h:283
Enum get_or_default() const
Return the wrapped Enum value (if any) or the Default_value.
Definition: parser_yystype.h:303
void init()
Constructor-like function.
Definition: parser_yystype.h:289
Enum get() const
Return the wrapped Enum value.
Definition: parser_yystype.h:297
bool is_set() const
False if the wrapped Enum value is not assigned.
Definition: parser_yystype.h:292
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:312
Enum m_enum
The wrapped Enum value.
Definition: parser_yystype.h:318
bool m_is_set
True if m_enum is assigned with some value.
Definition: parser_yystype.h:317
void set(Enum value)
Assign the wrapped Enum value.
Definition: parser_yystype.h:306
Definition: sql_lex.h:486
Definition: item.h:3884
Dynamic parameters used as placeholders ('?') inside prepared statements.
Definition: item.h:4579
Definition: item.h:5262
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:851
Definition: sql_list.h:434
A typesafe replacement for DYNAMIC_ARRAY.
Definition: mem_root_array.h:426
Definition: parse_tree_items.h:239
Definition: parse_tree_nodes.h:4752
Top-level node for the ALTER INSTANCE statement.
Definition: parse_tree_nodes.h:2019
Definition: parse_tree_nodes.h:3770
Definition: parse_tree_nodes.h:4149
Definition: parse_tree_nodes.h:4738
A template-free base class for index options that we can predeclare in sql_lex.h.
Definition: parse_tree_nodes.h:2035
Parse tree node for a single of a window extent's borders, cf.
Definition: parse_tree_nodes.h:1243
Parse tree node for one or both of a window extent's borders, cf.
Definition: parse_tree_nodes.h:1288
Base class for all column attributes in CREATE/ALTER TABLE
Definition: parse_tree_column_attrs.h:85
Definition: parse_tree_nodes.h:2767
Represents an element of the WITH list: WITH [...], [...] SELECT ..., ^ or ^ i.e.
Definition: parse_tree_nodes.h:251
Definition: parse_tree_nodes.h:2213
Base class for CREATE TABLE option nodes.
Definition: parse_tree_nodes.h:2330
Common base class for CREATE TABLE and ALTER TABLE option nodes.
Definition: parse_tree_nodes.h:2316
Definition: parse_tree_nodes.h:484
Parse tree node for a window frame's exclusions, cf.
Definition: parse_tree_nodes.h:1310
Base class for both generated and regular column definitions.
Definition: parse_tree_column_attrs.h:876
Parse tree node for a window's frame, cf.
Definition: parse_tree_nodes.h:1322
Definition: parse_tree_nodes.h:618
Definition: parse_tree_hints.h:98
The class is a base class for representation of the different types of the hints.
Definition: parse_tree_hints.h:58
Definition: parse_tree_nodes.h:1836
Definition: parse_tree_nodes.h:1147
Definition: parse_tree_nodes.h:1041
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:515
Definition: parse_tree_nodes.h:445
A key part specification.
Definition: parse_tree_nodes.h:2044
Definition: parse_tree_nodes.h:389
Definition: parse_tree_nodes.h:705
Definition: parse_tree_nodes.h:642
Definition: parse_tree_nodes.h:968
Definition: parse_tree_nodes.h:798
Definition: parse_tree_nodes.h:202
Definition: parse_tree_nodes.h:214
Definition: parse_tree_nodes.h:631
Node for the PARTITION clause of CREATE/ALTER TABLE.
Definition: parse_tree_partitions.h:386
Definition: parse_tree_partitions.h:472
Node for a list of partitioning values in VALUES clauses.
Definition: parse_tree_partitions.h:329
Base class for partition value nodes: MAX_VALUE values or expressions.
Definition: parse_tree_partitions.h:281
Base class for VALUES partitioning clauses.
Definition: parse_tree_partitions.h:322
Base class for all partition options.
Definition: parse_tree_partitions.h:85
Node for the PARTITION definition clause.
Definition: parse_tree_partitions.h:594
Definition: parse_tree_nodes.h:4802
Definition: parse_tree_nodes.h:725
Definition: parse_tree_nodes.h:1462
Definition: parse_tree_nodes.h:1342
Definition: parse_tree_nodes.h:2930
Definition: parse_tree_nodes.h:1226
Definition: parse_tree_nodes.h:1191
Definition: parse_tree_nodes.h:778
Definition: parse_tree_nodes.h:1134
Definition: parse_tree_nodes.h:1083
Definition: parse_tree_nodes.h:899
Base class for all subpartitioning clause nodes.
Definition: parse_tree_partitions.h:422
Node for the SUBRAPTITION clause of CREATE/ALTER TABLE
Definition: parse_tree_partitions.h:263
Definition: parse_tree_nodes.h:1606
Definition: parse_tree_nodes.h:2252
Base class for column/constraint definitions in CREATE TABLE.
Definition: parse_tree_nodes.h:2250
Definition: parse_tree_nodes.h:405
Definition: parse_tree_nodes.h:1033
Definition: parse_tree_nodes.h:1049
Base class for all column type nodes.
Definition: parse_tree_column_attrs.h:531
Parse tree node for a list of window definitions corresponding to a <window clause> in SQL 2003.
Definition: parse_tree_window.h:60
Parse tree node for a window; just a shallow wrapper for class Window, q.v.
Definition: parse_tree_window.h:39
Represents the WITH clause: WITH [...], [...] SELECT ..., ^^^^^^^^^^^^^^^^^.
Definition: parse_tree_nodes.h:336
Represents the WITH list.
Definition: parse_tree_nodes.h:316
Base class for parse tree nodes (excluding the Parse_tree_root hierarchy)
Definition: parse_tree_node_base.h:139
Base class for all top-level nodes of SQL statements.
Definition: parse_tree_nodes.h:159
This class represents a query block, aka a query specification, which is a query consisting of a SELE...
Definition: sql_lex.h:1156
Set_signal_information is a container used in the parsed tree to represent the collection of assignme...
Definition: sql_signal.h:68
Histogram_command
Specifies which (if any) of the commands UPDATE HISTOGRAM or DROP HISTOGRAM that is specified after A...
Definition: sql_admin.h:70
A statement information item.
Definition: sql_get_diagnostics.h:175
Name
The name of a statement information item.
Definition: sql_get_diagnostics.h:178
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:168
Definition: sql_lex.h:294
A (partial) implementation of std::deque allocating its blocks on a MEM_ROOT.
Definition: mem_root_deque.h:110
This class represents condition-value term in DECLARE CONDITION or DECLARE HANDLER statements.
Definition: sp_pcontext.h:133
sp_head represents one instance of a stored program.
Definition: sp_head.h:380
Definition: sp_head.h:120
A class representing one system variable - that is something that can be accessed as @global....
Definition: set_var.h:105
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
This file contains the field type.
@ MYSQL_TYPE_LONGLONG
Definition: field_types.h:62
@ MYSQL_TYPE_TINY
Definition: field_types.h:55
@ MYSQL_TYPE_LONG
Definition: field_types.h:57
@ MYSQL_TYPE_NEWDECIMAL
Definition: field_types.h:78
@ MYSQL_TYPE_DOUBLE
Definition: field_types.h:59
@ MYSQL_TYPE_SHORT
Definition: field_types.h:56
@ MYSQL_TYPE_FLOAT
Definition: field_types.h:58
@ MYSQL_TYPE_INT24
Definition: field_types.h:63
Acl_type
Definition: sql_lex.h:261
Cast_target
Definition: item_create.h:56
Builder for SQL functions.
fk_match_opt
Definition: key_spec.h:58
enum_order
Definition: key_spec.h:65
keytype
Definition: key_spec.h:40
fk_option
Definition: key_spec.h:49
#define YYSTYPE
Definition: lexyy.cc:905
This file includes constants used by all storage engines.
ha_key_alg
Definition: my_base.h:97
ha_rkey_function
Definition: my_base.h:78
ha_storage_media
Definition: my_base.h:115
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:56
uint16_t uint16
Definition: my_inttypes.h:65
uint32 my_thread_id
Definition: my_thread_local.h:34
Interface for low level time utilities.
interval_type
Available interval types used in any statement.
Definition: my_time.h:455
Time declarations shared between the server and client API: you should not add anything to this heade...
enum_mysql_timestamp_type
Definition: mysql_time.h:45
borrowable::binary::Enum< true > Enum
Definition: classic_protocol_binary.h:330
Provides atomic access in shared-exclusive modes.
Definition: shared_spin_lock.h:79
uint32_t cpu_id_t
Definition: thread_attrs_api.h:34
Type
Definition: resource_group_basic_types.h:33
opt_hints_enum
Hint types, MAX_HINT_ENUM should be always last.
Definition: opt_hints.h:64
enum_drop_mode
Definition: parser_yystype.h:173
@ DROP_CASCADE
Definition: parser_yystype.h:175
@ DROP_DEFAULT
Definition: parser_yystype.h:174
@ DROP_RESTRICT
Definition: parser_yystype.h:176
olap_type
Definition: parser_yystype.h:179
@ ROLLUP_TYPE
Definition: parser_yystype.h:179
@ UNSPECIFIED_OLAP_TYPE
Definition: parser_yystype.h:179
On_duplicate
Definition: parser_yystype.h:242
Int_type
Definition: parser_yystype.h:246
Locked_row_action
We will static_cast this one to thr_lock_type.
Definition: parser_yystype.h:213
delete_option_enum
Definition: parser_yystype.h:204
@ DELETE_IGNORE
Definition: parser_yystype.h:207
@ DELETE_LOW_PRIORITY
Definition: parser_yystype.h:206
@ DELETE_QUICK
Definition: parser_yystype.h:205
enum_yes_no_unknown
Definition: parser_yystype.h:163
@ TVL_UNKNOWN
Definition: parser_yystype.h:163
@ TVL_NO
Definition: parser_yystype.h:163
@ TVL_YES
Definition: parser_yystype.h:163
Set_operator
Definition: parser_yystype.h:338
Mem_root_array_YY< LEX_CSTRING > Create_col_name_list
Definition: parser_yystype.h:238
Lock_strength
Definition: parser_yystype.h:210
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:225
@ JTT_LEFT
Definition: parser_yystype.h:229
@ JTT_STRAIGHT_INNER
Definition: parser_yystype.h:232
@ JTT_NATURAL_LEFT
Definition: parser_yystype.h:234
@ JTT_NATURAL
Definition: parser_yystype.h:228
@ JTT_NATURAL_INNER
Definition: parser_yystype.h:233
@ JTT_NATURAL_RIGHT
Definition: parser_yystype.h:235
@ JTT_STRAIGHT
Definition: parser_yystype.h:227
@ JTT_RIGHT
Definition: parser_yystype.h:230
@ JTT_INNER
Definition: parser_yystype.h:226
Show_cmd_type
Definition: parser_yystype.h:260
Ternary_option
Definition: parser_yystype.h:240
Numeric_type
Definition: parser_yystype.h:254
Virtual_or_stored
Definition: parser_yystype.h:244
partition_type
An enum and a struct to handle partitioning and subpartitioning.
Definition: partition_element.h:33
enum_key_algorithm
PARTITION BY KEY ALGORITHM=N Which algorithm to use for hashing the fields.
Definition: partition_info.h:174
"public" interface to sys_var - server configuration variables.
enum_var_type
Definition: set_var.h:90
column_format_type
Definition: field.h:190
ts_alter_tablespace_type
Definition: handler.h:845
enum_tx_isolation
Definition: handler.h:3028
row_type
Definition: handler.h:676
index_hint_type
Definition: table.h:1389
enum_filetype
Definition: sql_exchange.h:32
enum_source_type
Definition: sql_exchange.h:30
enum_ha_read_modes
Definition: sql_handler.h:35
enum_condition_item_name
This enumeration list all the condition item names of a condition in the SQL condition area.
Definition: sql_signal.h:41
Definition: parse_tree_nodes.h:4906
Definition: parser_yystype.h:327
LEX_CSTRING prefix
prefix is optional: prefix.str can be nullptr
Definition: parser_yystype.h:328
LEX_CSTRING name
Definition: parser_yystype.h:329
Definition: m_ctype.h:385
Definition: parser_yystype.h:181
Cast_target target
Definition: parser_yystype.h:182
const char * length
Definition: parser_yystype.h:184
const CHARSET_INFO * charset
Definition: parser_yystype.h:183
const char * dec
Definition: parser_yystype.h:185
Helper for the sql_exchange class.
Definition: sql_exchange.h:53
uint sql_flags
Definition: handler.h:3633
uint flags
Definition: handler.h:3632
Definition: parse_tree_hints.h:45
Definition: table.h:2550
Definition: table.h:2657
The LEX object currently serves three different purposes:
Definition: sql_lex.h:3709
Definition: parser_yystype.h:188
bool is_offset_first
Definition: parser_yystype.h:194
Item * limit
Definition: parser_yystype.h:189
Item * opt_offset
Definition: parser_yystype.h:190
Helper for the sql_exchange class.
Definition: sql_exchange.h:38
Definition: mysql_lex_string.h:40
Definition: mysql_lex_string.h:35
Definition: parser_yystype.h:332
Item * expr
Definition: parser_yystype.h:335
Bipartite_name name
Definition: parser_yystype.h:334
enum_var_type type
Definition: parser_yystype.h:333
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:121
Definition: parser_yystype.h:197
bool save_to(Parse_context *)
Definition: sql_lex.cc:4858
ulonglong query_spec_options
Definition: parser_yystype.h:198
bool merge(const Query_options &a, const Query_options &b)
Definition: sql_lex.cc:4853
Definition: sql_cmd_srs.h:41
Definition: parser_yystype.h:322
T value
undefined if is_default is true
Definition: parser_yystype.h:324
bool is_default
Definition: parser_yystype.h:323
Definition: parser_yystype.h:643
void merge(const Algo_and_lock_and_validation &x)
Definition: parser_yystype.h:658
Enum_parser< Alter_info::enum_alter_table_algorithm, Alter_info::ALTER_TABLE_ALGORITHM_DEFAULT > algo
Definition: parser_yystype.h:646
Enum_parser< Alter_info::enum_alter_table_lock, Alter_info::ALTER_TABLE_LOCK_DEFAULT > lock
Definition: parser_yystype.h:649
Enum_parser< Alter_info::enum_with_validation, Alter_info::ALTER_VALIDATION_DEFAULT > validation
Definition: parser_yystype.h:652
void init()
Definition: parser_yystype.h:653
Definition: parser_yystype.h:631
void init()
Definition: parser_yystype.h:638
Enum_parser< Alter_info::enum_alter_table_algorithm, Alter_info::ALTER_TABLE_ALGORITHM_DEFAULT > algo
Definition: parser_yystype.h:634
Enum_parser< Alter_info::enum_alter_table_lock, Alter_info::ALTER_TABLE_LOCK_DEFAULT > lock
Definition: parser_yystype.h:637
Definition: parser_yystype.h:612
int num_buckets
Definition: parser_yystype.h:613
LEX_STRING data
Definition: parser_yystype.h:614
Definition: parser_yystype.h:597
Json_on_response_type type
Definition: parser_yystype.h:598
Item * default_string
Definition: parser_yystype.h:599
used by the parser to store internal variable name
Definition: parser_yystype.h:168
sys_var * var
Definition: parser_yystype.h:169
LEX_CSTRING base_name
Definition: parser_yystype.h:170
Definition: sql_udf.h:44
struct xid_t is binary compatible with the XID structure as in the X/Open CAE Specification,...
Definition: xa.h:83
Explain_format_type
Values for explain_format sysvar.
Definition: system_variables.h:121
Json_on_response_type
Types of ON EMPTY/ON ERROR clauses for JSON_TABLE and JSON_VALUE.
Definition: table_function.h:192
enum_jt_column
Type of columns for JSON_TABLE function.
Definition: table_function.h:183
thr_lock_type
Definition: thr_lock.h:51
@ THR_NOWAIT
Definition: thr_lock.h:97
@ THR_SKIP
Definition: thr_lock.h:97
@ THR_DEFAULT
Definition: thr_lock.h:97
@ THR_WAIT
Definition: thr_lock.h:97
This file defines all base public constants related to triggers in MySQL.
enum_trigger_order_type
Possible trigger ordering clause values:
Definition: trigger_def.h:64
Definition: lexer_yystype.h:33
Definition: parser_yystype.h:340
Condition_information_item * cond_info_item
Definition: parser_yystype.h:416
PT_part_definition * part_definition
Definition: parser_yystype.h:537
PT_select_var_list * select_var_list
Definition: parser_yystype.h:466
chooser_compare_func_creator boolfunc2creator
Definition: parser_yystype.h:397
PT_start_option_value_list_following_option_type * start_option_value_list_following_option_type
Definition: parser_yystype.h:460
Mem_root_array< PT_partition_option * > * partition_option_list
Definition: parser_yystype.h:525
Mem_root_array< PT_role_or_privilege * > * role_or_privilege_list
Definition: parser_yystype.h:624
Table_ident * table_ident
Definition: parser_yystype.h:505
Parse_tree_root * top_level_node
Definition: parser_yystype.h:504
struct YYSTYPE::@137 load_set_element
Explain_format_type explain_format_type
Definition: parser_yystype.h:689
PT_group * group
Definition: parser_yystype.h:437
PT_table_constraint_def * table_constraint_def
Definition: parser_yystype.h:510
bool is_not_empty
Definition: parser_yystype.h:419
Mem_root_array< ulonglong > * thread_id_list_type
Definition: parser_yystype.h:688
PT_with_clause * with_clause
Definition: parser_yystype.h:520
struct YYSTYPE::@135 vcpu_range_type
List< Index_hint > * key_usage_list
Definition: parser_yystype.h:427
List< String > * string_list
Definition: parser_yystype.h:365
enum_null_treatment null_treatment
Definition: parser_yystype.h:445
Item_num * item_num
Definition: parser_yystype.h:363
ulonglong ulonglong_number
Definition: parser_yystype.h:357
enum_filetype filetype
Definition: parser_yystype.h:406
sp_condition_value * spcondvalue
Definition: parser_yystype.h:398
Query_block * query_block
Definition: parser_yystype.h:396
my_thread_id query_id
Definition: parser_yystype.h:711
Mem_root_array< PT_part_value_item_list_paren * > * part_value_list
Definition: parser_yystype.h:531
PT_partition * partition_clause
Definition: parser_yystype.h:543
struct YYSTYPE::@134 standalone_alter_table_action
Mem_root_array< PT_create_table_option * > * create_table_options
Definition: parser_yystype.h:552
PT_alter_tablespace_option_base * ts_option
Definition: parser_yystype.h:677
PT_frame * window_frame
Definition: parser_yystype.h:440
PT_table_reference * table_reference
Definition: parser_yystype.h:449
struct YYSTYPE::@122 lead_lag_info
PT_base_index_option * index_option
Definition: parser_yystype.h:516
List< String > * set_expr_str_list
Definition: parser_yystype.h:703
struct YYSTYPE::@112 lex_mfas
struct YYSTYPE::@136 explain_options_type
PT_preload_keys * preload_keys
Definition: parser_yystype.h:675
struct YYSTYPE::@129 create_table_tail
On_duplicate on_duplicate
Definition: parser_yystype.h:554
struct YYSTYPE::Histogram_param histogram_param
ha_storage_media storage_media
Definition: parser_yystype.h:557
Mem_root_array< PT_table_element * > * table_element_list
Definition: parser_yystype.h:584
PT_subquery * subquery
Definition: parser_yystype.h:478
Value_or_default< bool > resource_group_state_type
Definition: parser_yystype.h:685
PT_isolation_level * isolation_level
Definition: parser_yystype.h:457
Value_or_default< int > resource_group_priority_type
Definition: parser_yystype.h:684
LEX_MFA * mfa2
Definition: parser_yystype.h:373
fk_option fk_delete_opt
Definition: parser_yystype.h:571
Mem_root_array< PT_column_attr_base * > * col_attr_list
Definition: parser_yystype.h:558
Mem_root_array_YY< LEX_STRING > lex_str_list
Definition: parser_yystype.h:518
PT_derived_table * derived_table
Definition: parser_yystype.h:471
LEX_CSTRING anchor_trigger_name
Definition: parser_yystype.h:424
List< String > * columns
Definition: parser_yystype.h:618
PT_item_list * set_var_list
Definition: parser_yystype.h:701
PT_part_values * values
Definition: parser_yystype.h:535
LEX_USER * lex_user
Definition: parser_yystype.h:369
enum_from_first_last from_first_last
Definition: parser_yystype.h:446
struct YYSTYPE::@138 load_set_list
Item_string * item_string
Definition: parser_yystype.h:447
String * string
Definition: parser_yystype.h:366
LEX_MFA * mfa3
Definition: parser_yystype.h:373
PT_part_type_def * part_type_def
Definition: parser_yystype.h:542
interval_type interval_time_st
Definition: parser_yystype.h:394
fk_option m_fk_option
Definition: parser_yystype.h:408
struct YYSTYPE::@118 column_value_pair
PT_create_index_stmt * create_index_stmt
Definition: parser_yystype.h:509
Item * column
Definition: parser_yystype.h:484
PT_hint_list * hint_list
Definition: parser_yystype.h:347
ulong field_option
Definition: parser_yystype.h:560
PT_alter_table_action * alter_table_action
Definition: parser_yystype.h:627
Mem_root_array< PT_ddl_table_option * > * actions
Definition: parser_yystype.h:666
Alter_info::enum_alter_table_algorithm alter_table_algorithm
Definition: parser_yystype.h:629
struct YYSTYPE::@113 charset_with_opt_binary
PT_alter_table_standalone_action * alter_table_standalone_action
Definition: parser_yystype.h:628
PT_locking_clause * locking_clause
Definition: parser_yystype.h:593
const char * length
Definition: parser_yystype.h:389
LEX * lex
Definition: parser_yystype.h:403
const char * expr_start
Definition: parser_yystype.h:565
PT_key_part_specification * key_part
Definition: parser_yystype.h:479
enum_window_frame_unit frame_units
Definition: parser_yystype.h:441
Mem_root_array< PT_part_value_item * > * part_value_item_list
Definition: parser_yystype.h:529
Mem_root_array_YY< PT_table_reference * > table_reference_list
Definition: parser_yystype.h:467
PT_install_component_set_element * install_component_set_element
Definition: parser_yystype.h:714
int curs
Definition: parser_yystype.h:400
PT_insert_values_list * values_list
Definition: parser_yystype.h:503
Virtual_or_stored virtual_or_stored
Definition: parser_yystype.h:559
enum_drop_mode opt_restrict
Definition: parser_yystype.h:549
resourcegroups::platform::cpu_id_t end
Definition: parser_yystype.h:681
mem_root_deque< Item * > * item_list
Definition: parser_yystype.h:364
PT_subpartition * sub_part_definition
Definition: parser_yystype.h:526
Statement_information_item * stmt_info_item
Definition: parser_yystype.h:413
List< Key_part_spec > * reference_list
Definition: parser_yystype.h:574
PT_joined_table * join_table
Definition: parser_yystype.h:450
resourcegroups::platform::cpu_id_t start
Definition: parser_yystype.h:680
List< PT_key_part_specification > * index_column_list
Definition: parser_yystype.h:511
bool force_binary
Definition: parser_yystype.h:386
resourcegroups::Type resource_group_type
Definition: parser_yystype.h:687
struct YYSTYPE::@128 fk_references
udf_func * udf
Definition: parser_yystype.h:368
PT_locking_clause_list * locking_clause_list
Definition: parser_yystype.h:594
Item * where
Definition: parser_yystype.h:609
struct YYSTYPE::@117 query_expression_body_opt_parens
partition_type type
Definition: parser_yystype.h:534
struct YYSTYPE::@126 sp_default
LEX_STRING name
Definition: parser_yystype.h:513
PT_with_list * with_list
Definition: parser_yystype.h:521
Condition_information_item::Name cond_info_item_name
Definition: parser_yystype.h:417
Set_operator query_operator
Definition: parser_yystype.h:713
PT_exclusion * frame_exclusion
Definition: parser_yystype.h:444
Mem_root_array< PT_ddl_table_option * > * space_separated_alter_table_opts
Definition: parser_yystype.h:553
Item * expr
Definition: parser_yystype.h:566
PT_set_scoped_system_variable * option_value_following_option_type
Definition: parser_yystype.h:452
struct YYSTYPE::Algo_and_lock_and_validation algo_and_lock_and_validation
struct YYSTYPE::@139 insert_update_values_reference
Diagnostics_information * diag_info
Definition: parser_yystype.h:412
thr_lock_type lock_type
Definition: parser_yystype.h:393
Lexer_yystype lexer
Definition: parser_yystype.h:341
struct YYSTYPE::@127 fk_options
int conds
Definition: parser_yystype.h:400
Line_separators line_separators
Definition: parser_yystype.h:462
int num
Definition: parser_yystype.h:355
ha_rkey_function ha_rkey_mode
Definition: parser_yystype.h:380
PT_query_expression_body * query_expression_body
Definition: parser_yystype.h:472
PT_field_def_base * field_def
Definition: parser_yystype.h:568
bool resource_group_flag_type
Definition: parser_yystype.h:686
Alter_info::enum_alter_table_lock alter_table_lock
Definition: parser_yystype.h:630
Item * offset
Definition: parser_yystype.h:500
Ternary_option ternary_option
Definition: parser_yystype.h:550
PT_partition * opt_partitioning
Definition: parser_yystype.h:587
PT_column_def * column_def
Definition: parser_yystype.h:582
enum_ha_read_modes ha_read_mode
Definition: parser_yystype.h:381
Table_ident * table
Definition: parser_yystype.h:360
enum_order order_direction
Definition: parser_yystype.h:625
struct YYSTYPE::@123 index_name_and_type
Algo_and_lock_and_validation flags
Definition: parser_yystype.h:665
Hint_param_table_list hint_param_table_list
Definition: parser_yystype.h:350
PT_part_values * part_values
Definition: parser_yystype.h:532
PT_query_expression * query_expression
Definition: parser_yystype.h:470
enum_mysql_timestamp_type date_time_type
Definition: parser_yystype.h:395
Table_ident * table_name
Definition: parser_yystype.h:576
char * simple_string
Definition: parser_yystype.h:361
const CHARSET_INFO * charset
Definition: parser_yystype.h:385
enum_jt_column jt_column_type
Definition: parser_yystype.h:606
PT_item_list * value_list
Definition: parser_yystype.h:489
LEX_CSTRING lex_cstr
Definition: parser_yystype.h:358
PT_alter_instance * alter_instance_cmd
Definition: parser_yystype.h:508
Item * set_var
Definition: parser_yystype.h:696
XID * xid
Definition: parser_yystype.h:481
PT_add_partition * add_partition_rule
Definition: parser_yystype.h:544
PT_subselect * subselect
Definition: parser_yystype.h:428
PT_borders * frame_extent
Definition: parser_yystype.h:442
PT_part_value_item_list_paren * part_value_item_list_paren
Definition: parser_yystype.h:530
Index_hint * key_usage_element
Definition: parser_yystype.h:426
struct YYSTYPE::Algo_and_lock opt_index_lock_and_algorithm
PT_order * order
Definition: parser_yystype.h:448
Parse_tree_node * node
Definition: parser_yystype.h:435
bool is_analyze
Definition: parser_yystype.h:692
decltype(HA_CHECK_OPT::flags) flags
Definition: parser_yystype.h:546
enum_condition_item_name da_condition_item_name
Definition: parser_yystype.h:410
int hndlrs
Definition: parser_yystype.h:400
struct YYSTYPE::@132 histogram
enum_trigger_order_type ordering_clause
Definition: parser_yystype.h:423
Json_on_response error
Definition: parser_yystype.h:602
Acl_type acl_type
Definition: parser_yystype.h:621
Limit_options limit_options
Definition: parser_yystype.h:432
sys_var_with_base variable
Definition: parser_yystype.h:375
Mem_root_array< LEX_CSTRING > * lex_cstring_list
Definition: parser_yystype.h:622
LEX_STRING wild
Definition: parser_yystype.h:608
String * set_expr_str
Definition: parser_yystype.h:698
index_hint_type index_hint
Definition: parser_yystype.h:405
Mem_root_array_YY< PT_base_index_option * > index_options
Definition: parser_yystype.h:517
ts_alter_tablespace_type alter_tablespace_type
Definition: parser_yystype.h:705
Item * value
Definition: parser_yystype.h:485
Item * default_value
Definition: parser_yystype.h:501
List< Statement_information_item > * stmt_info_list
Definition: parser_yystype.h:415
decltype(HA_CHECK_OPT::sql_flags) sql_flags
Definition: parser_yystype.h:547
PT_limit_clause * limit_clause
Definition: parser_yystype.h:434
List< LEX_USER > * user_list
Definition: parser_yystype.h:370
PT_joined_table_type join_type
Definition: parser_yystype.h:451
PT_border * bound
Definition: parser_yystype.h:443
enum_source_type source_type
Definition: parser_yystype.h:407
struct YYSTYPE::@115 spblock
struct YYSTYPE::@130 json_on_error_or_empty
LEX_CSTRING table_alias
Definition: parser_yystype.h:708
Mem_root_array< resourcegroups::Range > * resource_group_vcpu_list_type
Definition: parser_yystype.h:683
sp_head * sphead
Definition: parser_yystype.h:404
struct YYSTYPE::@131 wild_or_where
PT_order_list * order_list
Definition: parser_yystype.h:431
ha_key_alg key_alg
Definition: parser_yystype.h:378
Item * set_expr
Definition: parser_yystype.h:697
List< Condition_information_item > * cond_info_list
Definition: parser_yystype.h:418
Mem_root_array< PT_alter_tablespace_option_base * > * ts_options
Definition: parser_yystype.h:678
Hint_param_index_list hint_param_index_list
Definition: parser_yystype.h:348
enum_var_type var_type
Definition: parser_yystype.h:376
enum_key_algorithm opt_key_algo
Definition: parser_yystype.h:540
Int_type int_type
Definition: parser_yystype.h:561
Mem_root_array< PT_subpartition * > * sub_part_list
Definition: parser_yystype.h:527
PT_start_option_value_list * start_option_value_list
Definition: parser_yystype.h:455
PT_set * set
Definition: parser_yystype.h:461
enum row_type row_type
Definition: parser_yystype.h:379
PT_common_table_expr * common_table_expr
Definition: parser_yystype.h:522
PT_select_var * select_var_ident
Definition: parser_yystype.h:465
PT_sub_partition * opt_sub_part
Definition: parser_yystype.h:541
PTI_text_literal * text_literal
Definition: parser_yystype.h:469
struct YYSTYPE::@119 column_value_list_pair
opt_hints_enum hint_type
Definition: parser_yystype.h:345
ulong ulong_num
Definition: parser_yystype.h:356
PT_query_expression_body * body
Definition: parser_yystype.h:474
PT_column_attr_base * col_attr
Definition: parser_yystype.h:555
enum_yes_no_unknown m_yes_no_unk
Definition: parser_yystype.h:409
struct YYSTYPE::Json_on_response json_on_response
Query_options select_options
Definition: parser_yystype.h:433
PT_window * window
Definition: parser_yystype.h:439
LEX_STRING * lex_str_ptr
Definition: parser_yystype.h:359
PT_create_table_option * create_table_option
Definition: parser_yystype.h:551
Numeric_type numeric_type
Definition: parser_yystype.h:563
enum_tx_isolation tx_isolation
Definition: parser_yystype.h:382
struct YYSTYPE::@133 alter_list
PT_part_value_item * part_value_item
Definition: parser_yystype.h:528
const char * dec
Definition: parser_yystype.h:390
fk_option fk_update_opt
Definition: parser_yystype.h:570
PT_insert_values_list * row_value_list
Definition: parser_yystype.h:493
PT_hint * hint
Definition: parser_yystype.h:346
Histogram_param * param
Definition: parser_yystype.h:619
PT_item_list * column_list
Definition: parser_yystype.h:488
LEX_MFA * lex_mfa
Definition: parser_yystype.h:371
PT_type * type
Definition: parser_yystype.h:562
PT_query_expression_body * insert_query_expression
Definition: parser_yystype.h:497
bool is_parenthesized
Definition: parser_yystype.h:475
PT_window_list * windows
Definition: parser_yystype.h:438
Mem_root_array_YY< Table_ident * > table_ident_list
Definition: parser_yystype.h:506
Mem_root_array< PT_assign_to_keycache * > * keycache_list
Definition: parser_yystype.h:673
delete_option_enum opt_delete_option
Definition: parser_yystype.h:507
PT_json_table_column * jt_column
Definition: parser_yystype.h:605
Alter_info::enum_with_validation with_validation
Definition: parser_yystype.h:626
Cast_type cast_type
Definition: parser_yystype.h:392
PT_alter_table_standalone_action * action
Definition: parser_yystype.h:670
sp_name * spname
Definition: parser_yystype.h:402
PT_item_list * set_expr_list
Definition: parser_yystype.h:702
fk_match_opt opt_match_clause
Definition: parser_yystype.h:573
Show_cmd_type show_cmd_type
Definition: parser_yystype.h:611
PT_option_value_list_head * option_value_list
Definition: parser_yystype.h:454
Mem_root_array< PT_part_definition * > * part_def_list
Definition: parser_yystype.h:538
Lock_strength lock_strength
Definition: parser_yystype.h:591
Json_on_response empty
Definition: parser_yystype.h:603
Create_col_name_list simple_ident_list
Definition: parser_yystype.h:523
PT_adm_partition * adm_partition
Definition: parser_yystype.h:674
PT_table_element * table_element
Definition: parser_yystype.h:583
struct YYSTYPE::@124 opt_part_values
const char * c_str
Definition: parser_yystype.h:383
interval_type interval
Definition: parser_yystype.h:394
struct YYSTYPE::@114 precision
PT_transaction_characteristics * transaction_characteristics
Definition: parser_yystype.h:458
Mem_root_array< PT_preload_keys * > * preload_list
Definition: parser_yystype.h:676
Mem_root_array< PT_json_table_column * > * jtc_list
Definition: parser_yystype.h:595
Create_col_name_list * column_list
Definition: parser_yystype.h:709
bool visibility
Definition: parser_yystype.h:519
List< PT_install_component_set_element > * install_component_set_list
Definition: parser_yystype.h:715
List< char > * name_list
Definition: parser_yystype.h:539
Locked_row_action locked_row_action
Definition: parser_yystype.h:592
PT_item_list * item_list2
Definition: parser_yystype.h:429
Set_signal_information * signal_item_list
Definition: parser_yystype.h:420
Item * item
Definition: parser_yystype.h:362
PT_into_destination * into_destination
Definition: parser_yystype.h:464
int vars
Definition: parser_yystype.h:400
fk_match_opt fk_match_option
Definition: parser_yystype.h:578
Field_separators field_separators
Definition: parser_yystype.h:463
column_format_type column_format
Definition: parser_yystype.h:556
enum olap_type olap_type
Definition: parser_yystype.h:436
bool is_explicit
Definition: parser_yystype.h:693
PT_partition_option * partition_option
Definition: parser_yystype.h:524
PT_query_primary * query_primary
Definition: parser_yystype.h:477
Sql_cmd_analyze_table::Histogram_command command
Definition: parser_yystype.h:617
PT_order_expr * order_expr
Definition: parser_yystype.h:430
Bipartite_name bipartite_name
Definition: parser_yystype.h:712
Mem_root_array< Table_ident * > * table_list
Definition: parser_yystype.h:367
Hint_param_table hint_param_table
Definition: parser_yystype.h:349
struct YYSTYPE::@120 column_row_value_list_pair
Diagnostics_information::Which_area diag_area
Definition: parser_yystype.h:411
struct YYSTYPE::@125 mi_type
PT_query_expression_body * opt_query_expression
Definition: parser_yystype.h:589
Item_param * param_marker
Definition: parser_yystype.h:468
PT_option_value_no_option_type * option_value_no_option_type
Definition: parser_yystype.h:453
PT_assign_to_keycache * assign_to_keycache
Definition: parser_yystype.h:672
Mem_root_array< PT_create_table_option * > * opt_create_table_options
Definition: parser_yystype.h:586
Sql_cmd_srs_attributes * sql_cmd_srs_attributes
Definition: parser_yystype.h:706
PT_base_index_option * type
Definition: parser_yystype.h:514
xa_option_words xa_option_type
Definition: parser_yystype.h:482
PT_role_or_privilege * role_or_privilege
Definition: parser_yystype.h:623
keytype key_type
Definition: parser_yystype.h:377
Statement_information_item::Name stmt_info_item_name
Definition: parser_yystype.h:414
struct YYSTYPE::@116 trg_characteristics
enum_trigger_order_type trigger_action_order_type
Definition: parser_yystype.h:421
PT_transaction_access_mode * transaction_access_mode
Definition: parser_yystype.h:456
enum_null_treatment
Cf.
Definition: window_lex.h:58
enum_window_frame_unit
Cf.
Definition: window_lex.h:31
enum_from_first_last
Cf.
Definition: window_lex.h:63
xa_option_words
Definition: xa.h:53