MySQL 9.2.0
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/olap.h"
47#include "sql/opt_hints.h" // opt_hints_enum
50#include "sql/resourcegroups/platform/thread_attrs_api.h" // ...::cpu_id_t
51#include "sql/resourcegroups/resource_group_basic_types.h" // resourcegroups::Range
52#include "sql/set_var.h"
53#include "sql/sql_admin.h" // Sql_cmd_analyze_table::Histogram_command
54#include "sql/sql_alter.h" // Alter_info::enum_with_validation
55#include "sql/sql_exchange.h" // Line_separators, enum_filetype
56#include "sql/sql_get_diagnostics.h" // Diagnostics_information::Which_area
57#include "sql/sql_signal.h" // enum_condition_item_name
58#include "sql/table.h" // index_hint_type
59#include "sql/tablesample.h" // enum for sampling methods
60#include "sql/trigger_def.h" // enum_trigger_order_type
61#include "sql/window_lex.h" // enum_window_frame_unit
62#include "sql/xa.h" // xa_option_words
63#include "thr_lock.h" // thr_lock_type
64
65class Index_hint;
66class Item;
67class Item_num;
68class Item_param;
69class Item_string;
71class PT_add_partition;
78class PT_border;
79class PT_borders;
81class PT_column_def;
87class PT_exclusion;
89class PT_frame;
90class PT_group;
91class PT_tablesample;
95class PT_item_list;
96class PT_joined_table;
99class PT_library_list;
101class PT_limit_clause;
106class PT_order;
107class PT_order_expr;
108class PT_order_list;
110class PT_part_type_def;
113class PT_part_values;
114class PT_partition;
116class PT_preload_keys;
119class PT_query_primary;
121class PT_select_var;
123class PT_set;
127class PT_sub_partition;
128class PT_subpartition;
129class PT_subquery;
131class PT_table_element;
135class PT_type;
136class PT_window;
137class PT_window_list;
138class PT_with_clause;
139class PT_with_list;
140class Parse_tree_root;
141class Query_block;
142class String;
143class Table_ident;
145class sp_head;
146class sp_name;
147enum class Acl_type;
148enum class Json_on_response_type : uint16;
149enum class enum_ha_read_modes;
150enum class enum_ha_read_modes;
151enum class enum_jt_column;
152enum class enum_key_algorithm;
153enum class partition_type;
155struct CHARSET_INFO;
156struct LEX;
158struct udf_func;
160
161template <class T>
162class List;
163
164typedef Parse_tree_node_tmpl<Alter_tablespace_parse_context>
166
168
169/**
170 used by the parser to store internal variable name
171*/
175};
176
178 DROP_DEFAULT, // mode is not specified
179 DROP_CASCADE, // CASCADE option
180 DROP_RESTRICT // RESTRICT option
182
183struct Cast_type {
186 const char *length;
187 const char *dec;
188};
189
193 /*
194 true for "LIMIT offset,limit" and false for "LIMIT limit OFFSET offset"
195 */
197};
198
201
202 bool merge(const Query_options &a, const Query_options &b);
203 bool save_to(Parse_context *);
204};
205
207 DELETE_QUICK = 1 << 0,
209 DELETE_IGNORE = 1 << 2
211
212enum class Lock_strength { UPDATE, SHARE };
213
214/// We will static_cast this one to thr_lock_type.
217 WAIT = THR_WAIT,
219 SKIP = THR_SKIP
220};
221
222/**
223 Internally there is no CROSS JOIN join type, as cross joins are just a
224 special case of inner joins with a join condition that is always true. The
225 only difference is the nesting, and that is handled by the parser.
226*/
228 JTT_INNER = 0x01,
231 JTT_LEFT = 0x08,
232 JTT_RIGHT = 0x10,
233
239
241
242enum class Ternary_option { DEFAULT, ON, OFF };
243
245
247
248enum class Int_type : ulong {
254};
255
256enum class Numeric_type : ulong {
260};
261
262enum class Show_cmd_type {
263 STANDARD,
264 FULL_SHOW,
267};
268
269/**
270 std::optional-like wrapper for simple bitmaps (usually enums of binary flags)
271
272 This template wraps trivial bitmap implementations to add two features:
273
274 * std::optional-like behavior -- the "unset" flag, so we don't have
275 to inject a special "invalid" value into existent enum types, this
276 wrapper class does that for us.
277
278 * the merge() function to merge two bitmap values in a type-safe way.
279
280 @tparam Enum Usually a enum type which simulates a bit set.
281 @tparam Default_value A default Enum value for "unset" variables.
282
283*/
284template <typename Enum, Enum Default_value>
286 public:
287 /// Constructor-like function
288 ///
289 /// The Enum_parser<> class is designed for use as a field of restricted
290 /// unions, so it can't have C++ constructors.
291 void init() { m_is_set = false; }
292
293 /// False if the wrapped Enum value is not assigned.
294 bool is_set() const { return m_is_set; }
295
296 /// Return the wrapped Enum value.
297 ///
298 /// @note The wrapped value must be assigned.
299 Enum get() const {
300 assert(is_set());
301 return m_enum;
302 }
303
304 /// Return the wrapped Enum value (if any) or the Default_value.
305 Enum get_or_default() const { return is_set() ? get() : Default_value; }
306
307 /// Assign the wrapped Enum value.
308 void set(Enum value) {
309 m_is_set = true;
310 m_enum = value;
311 }
312
313 /// Merge the x bit set into the wrapped Enum value (if any), or replace it
314 void merge(const Enum_parser &x) {
315 if (x.is_set()) set(x.get());
316 }
317
318 private:
319 bool m_is_set; ///< True if m_enum is assigned with some value
320 Enum m_enum; ///< The wrapped Enum value.
321};
322
323template <typename T>
326 T value; ///< undefined if is_default is true
327};
328
330 LEX_CSTRING prefix; ///< prefix is optional: prefix.str can be nullptr
332};
333
338};
339
341
343 Lexer_yystype lexer; // terminal values from the lexical scanner
344 /*
345 Hint parser section (sql_hints.yy)
346 */
353
354 /*
355 Main parser section (sql_yacc.yy)
356 */
357 int num;
374 struct {
385 const char *c_str;
386 struct {
390 struct {
391 const char *length;
392 const char *dec;
401 struct {
424 struct {
478 struct {
485
488 struct {
492 struct {
496 struct {
500 struct {
504 struct {
517 struct {
538 struct {
544 List<char> *name_list; // TODO: merge with string_list
549 PT_add_partition *add_partition_rule;
550 struct {
565 ulong field_option; // 0 or combinations of UNSIGNED_FLAG and ZEROFILL_FLAG
569 struct {
570 const char *expr_start;
574 struct {
580 struct {
590 struct {
601 // ON EMPTY/ON ERROR response for JSON_TABLE and JSON_VALUE.
606 struct {
612 struct {
622 struct {
644 void init() {
645 algo.init();
646 lock.init();
647 }
659 void init() {
660 algo.init();
661 lock.init();
662 validation.init();
663 }
665 algo.merge(x.algo);
666 lock.merge(x.lock);
667 validation.merge(x.validation);
668 }
670 struct {
674 struct {
675 Algo_and_lock_and_validation flags;
685 struct {
696 struct {
702 struct {
707 struct {
714 struct {
723 struct {
727
730};
731
732static_assert(sizeof(MY_SQL_PARSER_STYPE) <= 32, "YYSTYPE is too big");
734
735#endif // PARSER_YYSTYPE_INCLUDED
enum_alter_table_algorithm
The different values of the ALGORITHM clause.
Definition: sql_alter.h:355
@ ALTER_TABLE_ALGORITHM_DEFAULT
Definition: sql_alter.h:357
enum_alter_table_lock
The different values of the LOCK clause.
Definition: sql_alter.h:373
@ ALTER_TABLE_LOCK_DEFAULT
Definition: sql_alter.h:375
enum_with_validation
Status of validation clause in ALTER TABLE statement.
Definition: sql_alter.h:391
@ ALTER_VALIDATION_DEFAULT
Default value, used when it's not specified in the statement.
Definition: sql_alter.h:397
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:285
Enum get_or_default() const
Return the wrapped Enum value (if any) or the Default_value.
Definition: parser_yystype.h:305
void init()
Constructor-like function.
Definition: parser_yystype.h:291
Enum get() const
Return the wrapped Enum value.
Definition: parser_yystype.h:299
bool is_set() const
False if the wrapped Enum value is not assigned.
Definition: parser_yystype.h:294
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:314
Enum m_enum
The wrapped Enum value.
Definition: parser_yystype.h:320
bool m_is_set
True if m_enum is assigned with some value.
Definition: parser_yystype.h:319
void set(Enum value)
Assign the wrapped Enum value.
Definition: parser_yystype.h:308
Helper for the sql_exchange class.
Definition: sql_exchange.h:84
Used to hold information about file and file structure in exchange via non-DB file (....
Definition: sql_exchange.h:147
Definition: sql_lex.h:501
Definition: item.h:4111
Dynamic parameters used as placeholders ('?') inside prepared statements.
Definition: item.h:4790
Definition: item.h:5460
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:930
Helper for the sql_exchange class.
Definition: sql_exchange.h:65
Definition: sql_list.h:494
A typesafe replacement for DYNAMIC_ARRAY.
Definition: mem_root_array.h:432
Definition: parse_tree_items.h:264
Definition: parse_tree_nodes.h:5115
Top-level node for the ALTER INSTANCE statement.
Definition: parse_tree_nodes.h:2255
Definition: parse_tree_nodes.h:4092
Definition: parse_tree_nodes.h:4480
Definition: parse_tree_nodes.h:5100
A template-free base class for index options that we can predeclare in sql_lex.h.
Definition: parse_tree_nodes.h:2271
Parse tree node for a single of a window extent's borders, cf.
Definition: parse_tree_nodes.h:1405
Parse tree node for one or both of a window extent's borders, cf.
Definition: parse_tree_nodes.h:1457
Base class for all column attributes in CREATE/ALTER TABLE
Definition: parse_tree_column_attrs.h:85
Definition: parse_tree_nodes.h:3047
Represents an element of the WITH list: WITH [...], [...] SELECT ..., ^ or ^ i.e.
Definition: parse_tree_nodes.h:276
Definition: parse_tree_nodes.h:2456
Base class for CREATE TABLE option nodes.
Definition: parse_tree_nodes.h:2592
Common base class for CREATE TABLE and ALTER TABLE option nodes.
Definition: parse_tree_nodes.h:2575
Definition: parse_tree_nodes.h:543
Parse tree node for a window frame's exclusions, cf.
Definition: parse_tree_nodes.h:1480
Base class for both generated and regular column definitions.
Definition: parse_tree_column_attrs.h:918
Parse tree node for a window's frame, cf.
Definition: parse_tree_nodes.h:1493
Definition: parse_tree_nodes.h:708
Definition: parse_tree_hints.h:100
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:2064
Definition: parse_tree_nodes.h:1281
Definition: parse_tree_nodes.h:1163
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:577
Definition: parse_tree_nodes.h:500
A key part specification.
Definition: parse_tree_nodes.h:2283
Definition: parse_tree_nodes.h:5622
Definition: parse_tree_nodes.h:5609
Definition: parse_tree_nodes.h:430
Definition: parse_tree_nodes.h:802
Definition: parse_tree_nodes.h:739
Definition: parse_tree_nodes.h:1087
Definition: parse_tree_nodes.h:900
Definition: parse_tree_nodes.h:217
Definition: parse_tree_nodes.h:235
Definition: parse_tree_nodes.h:728
Node for the PARTITION clause of CREATE/ALTER TABLE.
Definition: parse_tree_partitions.h:404
Definition: parse_tree_partitions.h:497
Node for a list of partitioning values in VALUES clauses.
Definition: parse_tree_partitions.h:345
Base class for partition value nodes: MAX_VALUE values or expressions.
Definition: parse_tree_partitions.h:294
Base class for VALUES partitioning clauses.
Definition: parse_tree_partitions.h:335
Base class for all partition options.
Definition: parse_tree_partitions.h:85
Node for the PARTITION definition clause.
Definition: parse_tree_partitions.h:625
Definition: parse_tree_nodes.h:5166
Definition: parse_tree_nodes.h:823
Definition: parse_tree_nodes.h:1654
Definition: parse_tree_nodes.h:1516
Definition: parse_tree_nodes.h:3217
Definition: parse_tree_nodes.h:1388
Definition: parse_tree_nodes.h:1351
Definition: parse_tree_nodes.h:878
Definition: parse_tree_nodes.h:1267
Definition: parse_tree_nodes.h:1208
Definition: parse_tree_nodes.h:1014
Base class for all subpartitioning clause nodes.
Definition: parse_tree_partitions.h:441
Node for the SUBRAPTITION clause of CREATE/ALTER TABLE
Definition: parse_tree_partitions.h:273
Definition: parse_tree_nodes.h:1802
Definition: parse_tree_nodes.h:2498
Base class for column/constraint definitions in CREATE TABLE.
Definition: parse_tree_nodes.h:2493
Definition: parse_tree_nodes.h:452
Definition: parse_tree_nodes.h:694
Definition: parse_tree_nodes.h:1155
Definition: parse_tree_nodes.h:1171
Base class for all column type nodes.
Definition: parse_tree_column_attrs.h:556
Parse tree node for a list of window definitions corresponding to a <window clause> in SQL 2003.
Definition: parse_tree_window.h:63
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:367
Represents the WITH list.
Definition: parse_tree_nodes.h:345
Base class for parse tree nodes (excluding the Parse_tree_root hierarchy)
Definition: parse_tree_node_base.h:231
Base class for all top-level nodes of SQL statements.
Definition: parse_tree_nodes.h:163
This class represents a query block, aka a query specification, which is a query consisting of a SELE...
Definition: sql_lex.h:1170
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:71
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:167
Definition: sql_lex.h:308
Definition: sql_exchange.h:129
A (partial) implementation of std::deque allocating its blocks on a MEM_ROOT.
Definition: mem_root_deque.h:111
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:389
Definition: sp_head.h:124
A class representing one system variable - that is something that can be accessed as @global....
Definition: set_var.h:107
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:64
@ MYSQL_TYPE_TINY
Definition: field_types.h:57
@ MYSQL_TYPE_LONG
Definition: field_types.h:59
@ MYSQL_TYPE_NEWDECIMAL
Definition: field_types.h:81
@ MYSQL_TYPE_DOUBLE
Definition: field_types.h:61
@ MYSQL_TYPE_SHORT
Definition: field_types.h:58
@ MYSQL_TYPE_FLOAT
Definition: field_types.h:60
@ MYSQL_TYPE_INT24
Definition: field_types.h:65
Acl_type
Definition: sql_lex.h:267
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
This file includes constants used by all storage engines.
ha_key_alg
Definition: my_base.h:98
ha_rkey_function
Definition: my_base.h:78
ha_storage_media
Definition: my_base.h:116
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
olap_type
Definition: olap.h:31
opt_hints_enum
Hint types, MAX_HINT_ENUM should be always last.
Definition: opt_hints.h:65
enum_drop_mode
Definition: parser_yystype.h:177
@ DROP_CASCADE
Definition: parser_yystype.h:179
@ DROP_DEFAULT
Definition: parser_yystype.h:178
@ DROP_RESTRICT
Definition: parser_yystype.h:180
On_duplicate
Definition: parser_yystype.h:244
Int_type
Definition: parser_yystype.h:248
Locked_row_action
We will static_cast this one to thr_lock_type.
Definition: parser_yystype.h:215
delete_option_enum
Definition: parser_yystype.h:206
@ DELETE_IGNORE
Definition: parser_yystype.h:209
@ DELETE_LOW_PRIORITY
Definition: parser_yystype.h:208
@ DELETE_QUICK
Definition: parser_yystype.h:207
enum_yes_no_unknown
Definition: parser_yystype.h:167
@ TVL_UNKNOWN
Definition: parser_yystype.h:167
@ TVL_NO
Definition: parser_yystype.h:167
@ TVL_YES
Definition: parser_yystype.h:167
Set_operator
Definition: parser_yystype.h:340
Mem_root_array_YY< LEX_CSTRING > Create_col_name_list
Definition: parser_yystype.h:240
Lock_strength
Definition: parser_yystype.h:212
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:227
@ JTT_LEFT
Definition: parser_yystype.h:231
@ JTT_STRAIGHT_INNER
Definition: parser_yystype.h:234
@ JTT_NATURAL_LEFT
Definition: parser_yystype.h:236
@ JTT_NATURAL
Definition: parser_yystype.h:230
@ JTT_NATURAL_INNER
Definition: parser_yystype.h:235
@ JTT_NATURAL_RIGHT
Definition: parser_yystype.h:237
@ JTT_STRAIGHT
Definition: parser_yystype.h:229
@ JTT_RIGHT
Definition: parser_yystype.h:232
@ JTT_INNER
Definition: parser_yystype.h:228
Show_cmd_type
Definition: parser_yystype.h:262
Ternary_option
Definition: parser_yystype.h:242
Numeric_type
Definition: parser_yystype.h:256
Virtual_or_stored
Definition: parser_yystype.h:246
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:92
column_format_type
Definition: field.h:192
ts_alter_tablespace_type
Definition: handler.h:856
enum_tx_isolation
Definition: handler.h:3237
row_type
Definition: handler.h:686
index_hint_type
Definition: table.h:1412
enum_filetype
Definition: sql_exchange.h:34
enum_source_type
Definition: sql_exchange.h:32
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:5274
Definition: parser_yystype.h:329
LEX_CSTRING prefix
prefix is optional: prefix.str can be nullptr
Definition: parser_yystype.h:330
LEX_CSTRING name
Definition: parser_yystype.h:331
Definition: m_ctype.h:421
Definition: parser_yystype.h:183
Cast_target target
Definition: parser_yystype.h:184
const char * length
Definition: parser_yystype.h:186
const CHARSET_INFO * charset
Definition: parser_yystype.h:185
const char * dec
Definition: parser_yystype.h:187
uint sql_flags
Definition: handler.h:3848
uint flags
Definition: handler.h:3847
Definition: parse_tree_hints.h:45
Definition: table.h:2658
Definition: table.h:2767
The LEX object currently serves three different purposes:
Definition: sql_lex.h:3958
Definition: parser_yystype.h:190
bool is_offset_first
Definition: parser_yystype.h:196
Item * limit
Definition: parser_yystype.h:191
Item * opt_offset
Definition: parser_yystype.h:192
Definition: mysql_lex_string.h:40
Definition: mysql_lex_string.h:35
Enum_parser< Alter_info::enum_with_validation, Alter_info::ALTER_VALIDATION_DEFAULT > validation
Definition: parser_yystype.h:658
void init()
Definition: parser_yystype.h:659
void merge(const Algo_and_lock_and_validation &x)
Definition: parser_yystype.h:664
Enum_parser< Alter_info::enum_alter_table_lock, Alter_info::ALTER_TABLE_LOCK_DEFAULT > lock
Definition: parser_yystype.h:655
Enum_parser< Alter_info::enum_alter_table_algorithm, Alter_info::ALTER_TABLE_ALGORITHM_DEFAULT > algo
Definition: parser_yystype.h:652
Definition: parser_yystype.h:637
void init()
Definition: parser_yystype.h:644
Enum_parser< Alter_info::enum_alter_table_lock, Alter_info::ALTER_TABLE_LOCK_DEFAULT > lock
Definition: parser_yystype.h:643
Enum_parser< Alter_info::enum_alter_table_algorithm, Alter_info::ALTER_TABLE_ALGORITHM_DEFAULT > algo
Definition: parser_yystype.h:640
Definition: parser_yystype.h:617
bool auto_update
Definition: parser_yystype.h:620
LEX_STRING data
Definition: parser_yystype.h:619
int num_buckets
Definition: parser_yystype.h:618
Definition: parser_yystype.h:602
Item * default_string
Definition: parser_yystype.h:604
Json_on_response_type type
Definition: parser_yystype.h:603
Definition: parser_yystype.h:334
Item * expr
Definition: parser_yystype.h:337
Bipartite_name name
Definition: parser_yystype.h:336
enum_var_type type
Definition: parser_yystype.h:335
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:421
Definition: parser_yystype.h:199
bool save_to(Parse_context *)
Definition: sql_lex.cc:4966
ulonglong query_spec_options
Definition: parser_yystype.h:200
bool merge(const Query_options &a, const Query_options &b)
Definition: sql_lex.cc:4961
Definition: sql_cmd_srs.h:41
Definition: parser_yystype.h:324
T value
undefined if is_default is true
Definition: parser_yystype.h:326
bool is_default
Definition: parser_yystype.h:325
used by the parser to store internal variable name
Definition: parser_yystype.h:172
sys_var * var
Definition: parser_yystype.h:173
LEX_CSTRING base_name
Definition: parser_yystype.h:174
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:115
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
tablesample_type
Definition: tablesample.h:27
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:342
PT_hint * hint
Definition: parser_yystype.h:348
PT_query_expression_body * opt_query_expression
Definition: parser_yystype.h:594
struct MY_SQL_PARSER_STYPE::@143 histogram
int hndlrs
Definition: parser_yystype.h:402
LEX * lex
Definition: parser_yystype.h:405
Mem_root_array_YY< PT_base_index_option * > index_options
Definition: parser_yystype.h:522
enum_mysql_timestamp_type date_time_type
Definition: parser_yystype.h:397
PT_order * order
Definition: parser_yystype.h:451
PT_field_def_base * field_def
Definition: parser_yystype.h:573
chooser_compare_func_creator boolfunc2creator
Definition: parser_yystype.h:399
struct MY_SQL_PARSER_STYPE::Algo_and_lock opt_index_lock_and_algorithm
xa_option_words xa_option_type
Definition: parser_yystype.h:487
PT_create_table_option * create_table_option
Definition: parser_yystype.h:556
Set_operator query_operator
Definition: parser_yystype.h:720
List< Index_hint > * key_usage_list
Definition: parser_yystype.h:429
struct MY_SQL_PARSER_STYPE::@139 fk_references
PT_item_list * set_var_list
Definition: parser_yystype.h:708
interval_type interval_time_st
Definition: parser_yystype.h:396
PT_borders * frame_extent
Definition: parser_yystype.h:445
Alter_info::enum_alter_table_algorithm alter_table_algorithm
Definition: parser_yystype.h:635
struct MY_SQL_PARSER_STYPE::@138 fk_options
struct MY_SQL_PARSER_STYPE::@142 wild_or_where
Mem_root_array< resourcegroups::Range > * resource_group_vcpu_list_type
Definition: parser_yystype.h:689
enum_filetype filetype
Definition: parser_yystype.h:408
struct MY_SQL_PARSER_STYPE::@136 mi_type
Lock_strength lock_strength
Definition: parser_yystype.h:596
Diagnostics_information::Which_area diag_area
Definition: parser_yystype.h:413
ulong ulong_num
Definition: parser_yystype.h:358
PT_border * bound
Definition: parser_yystype.h:446
const CHARSET_INFO * charset
Definition: parser_yystype.h:387
PT_frame * window_frame
Definition: parser_yystype.h:443
ts_alter_tablespace_type alter_tablespace_type
Definition: parser_yystype.h:712
Mem_root_array< PT_part_definition * > * part_def_list
Definition: parser_yystype.h:543
Mem_root_array< PT_create_table_option * > * create_table_options
Definition: parser_yystype.h:557
Query_block * query_block
Definition: parser_yystype.h:398
PT_adm_partition * adm_partition
Definition: parser_yystype.h:680
PT_transaction_characteristics * transaction_characteristics
Definition: parser_yystype.h:461
decltype(HA_CHECK_OPT::flags) flags
Definition: parser_yystype.h:551
Create_col_name_list simple_ident_list
Definition: parser_yystype.h:528
bool force_binary
Definition: parser_yystype.h:388
enum_tx_isolation tx_isolation
Definition: parser_yystype.h:384
LEX_CSTRING table_alias
Definition: parser_yystype.h:715
Show_cmd_type show_cmd_type
Definition: parser_yystype.h:616
LEX_STRING * lex_str_ptr
Definition: parser_yystype.h:361
PT_item_list * value_list
Definition: parser_yystype.h:498
Ternary_option ternary_option
Definition: parser_yystype.h:555
struct MY_SQL_PARSER_STYPE::Histogram_param histogram_param
List< String > * columns
Definition: parser_yystype.h:624
Bipartite_name bipartite_name
Definition: parser_yystype.h:719
Sql_cmd_srs_attributes * sql_cmd_srs_attributes
Definition: parser_yystype.h:713
PT_alter_table_standalone_action * action
Definition: parser_yystype.h:676
List< LEX_USER > * user_list
Definition: parser_yystype.h:372
Parse_tree_root * top_level_node
Definition: parser_yystype.h:509
enum_source_type source_type
Definition: parser_yystype.h:409
const char * length
Definition: parser_yystype.h:391
struct MY_SQL_PARSER_STYPE::@148 load_set_element
Mem_root_array< PT_create_table_option * > * opt_create_table_options
Definition: parser_yystype.h:591
struct MY_SQL_PARSER_STYPE::@127 trg_characteristics
Item * offset
Definition: parser_yystype.h:505
PT_assign_to_keycache * assign_to_keycache
Definition: parser_yystype.h:678
const char * dec
Definition: parser_yystype.h:392
PT_transaction_access_mode * transaction_access_mode
Definition: parser_yystype.h:459
PT_locking_clause_list * locking_clause_list
Definition: parser_yystype.h:599
PT_query_expression_body * query_expression_body
Definition: parser_yystype.h:477
Mem_root_array< PT_subpartition * > * sub_part_list
Definition: parser_yystype.h:532
Table_ident * table_ident
Definition: parser_yystype.h:510
Item * set_var
Definition: parser_yystype.h:703
PT_alter_table_action * alter_table_action
Definition: parser_yystype.h:633
PT_query_expression_body * body
Definition: parser_yystype.h:479
ha_storage_media storage_media
Definition: parser_yystype.h:562
Diagnostics_information * diag_info
Definition: parser_yystype.h:414
Acl_type acl_type
Definition: parser_yystype.h:627
Mem_root_array< PT_role_or_privilege * > * role_or_privilege_list
Definition: parser_yystype.h:630
partition_type type
Definition: parser_yystype.h:539
fk_match_opt opt_match_clause
Definition: parser_yystype.h:578
ulonglong ulonglong_number
Definition: parser_yystype.h:359
Value_or_default< bool > resource_group_state_type
Definition: parser_yystype.h:691
PT_base_index_option * type
Definition: parser_yystype.h:519
delete_option_enum opt_delete_option
Definition: parser_yystype.h:512
column_format_type column_format
Definition: parser_yystype.h:561
PT_set * set
Definition: parser_yystype.h:464
enum_order order_direction
Definition: parser_yystype.h:631
PT_limit_clause * limit_clause
Definition: parser_yystype.h:435
Histogram_param * param
Definition: parser_yystype.h:625
Item * default_value
Definition: parser_yystype.h:506
enum row_type row_type
Definition: parser_yystype.h:381
PT_insert_values_list * values_list
Definition: parser_yystype.h:508
struct MY_SQL_PARSER_STYPE::@141 json_on_error_or_empty
Virtual_or_stored virtual_or_stored
Definition: parser_yystype.h:564
PT_joined_table * join_table
Definition: parser_yystype.h:453
LEX_MFA * lex_mfa
Definition: parser_yystype.h:373
Condition_information_item::Name cond_info_item_name
Definition: parser_yystype.h:419
Mem_root_array< PT_partition_option * > * partition_option_list
Definition: parser_yystype.h:530
const char * expr_start
Definition: parser_yystype.h:570
sp_condition_value * spcondvalue
Definition: parser_yystype.h:400
PT_option_value_list_head * option_value_list
Definition: parser_yystype.h:457
Explain_format_type explain_format_type
Definition: parser_yystype.h:695
PT_into_destination * into_destination
Definition: parser_yystype.h:469
opt_hints_enum hint_type
Definition: parser_yystype.h:347
PT_type * type
Definition: parser_yystype.h:567
Hint_param_table_list hint_param_table_list
Definition: parser_yystype.h:352
struct MY_SQL_PARSER_STYPE::@125 precision
struct MY_SQL_PARSER_STYPE::Json_on_response json_on_response
LEX_MFA * mfa3
Definition: parser_yystype.h:375
struct MY_SQL_PARSER_STYPE::@150 insert_update_values_reference
PT_query_primary * query_primary
Definition: parser_yystype.h:482
PT_derived_table * derived_table
Definition: parser_yystype.h:476
interval_type interval
Definition: parser_yystype.h:396
struct MY_SQL_PARSER_STYPE::@131 column_value_list_pair
LEX_STRING explain_into_variable_name
Definition: parser_yystype.h:700
enum_null_treatment null_treatment
Definition: parser_yystype.h:448
struct MY_SQL_PARSER_STYPE::@151 explainable_stmt
Mem_root_array< PT_assign_to_keycache * > * keycache_list
Definition: parser_yystype.h:679
Sql_cmd_analyze_table::Histogram_command command
Definition: parser_yystype.h:623
PT_part_value_item * part_value_item
Definition: parser_yystype.h:533
PT_partition_option * partition_option
Definition: parser_yystype.h:529
List< String > * string_list
Definition: parser_yystype.h:367
keytype key_type
Definition: parser_yystype.h:379
Item * column
Definition: parser_yystype.h:489
sys_var_with_base variable
Definition: parser_yystype.h:377
List< PT_key_part_specification > * index_column_list
Definition: parser_yystype.h:516
Set_signal_information * signal_item_list
Definition: parser_yystype.h:422
Statement_information_item::Name stmt_info_item_name
Definition: parser_yystype.h:416
Query_options select_options
Definition: parser_yystype.h:434
PT_part_values * values
Definition: parser_yystype.h:540
Field_separators * field_separators
Definition: parser_yystype.h:466
int vars
Definition: parser_yystype.h:402
PT_sub_partition * opt_sub_part
Definition: parser_yystype.h:546
PT_group * group
Definition: parser_yystype.h:439
resourcegroups::platform::cpu_id_t start
Definition: parser_yystype.h:686
Hint_param_index_list hint_param_index_list
Definition: parser_yystype.h:350
fk_option m_fk_option
Definition: parser_yystype.h:410
Item * expr
Definition: parser_yystype.h:571
List< String > * set_expr_str_list
Definition: parser_yystype.h:710
PT_window * window
Definition: parser_yystype.h:442
struct MY_SQL_PARSER_STYPE::@147 explain_options_type
char * simple_string
Definition: parser_yystype.h:363
LEX_MFA * mfa2
Definition: parser_yystype.h:375
PT_preload_keys * preload_keys
Definition: parser_yystype.h:681
Value_or_default< int > resource_group_priority_type
Definition: parser_yystype.h:690
PT_select_var * select_var_ident
Definition: parser_yystype.h:470
LEX_STRING name
Definition: parser_yystype.h:518
enum tablesample_type tablesample_type
Definition: parser_yystype.h:438
Table_ident * table_name
Definition: parser_yystype.h:581
Int_type int_type
Definition: parser_yystype.h:566
PT_alter_table_standalone_action * alter_table_standalone_action
Definition: parser_yystype.h:634
int num
Definition: parser_yystype.h:357
Mem_root_array< PT_part_value_item_list_paren * > * part_value_list
Definition: parser_yystype.h:536
struct MY_SQL_PARSER_STYPE::Algo_and_lock_and_validation algo_and_lock_and_validation
PT_item_list * item_list2
Definition: parser_yystype.h:430
PT_partition * opt_partitioning
Definition: parser_yystype.h:592
List< Condition_information_item > * cond_info_list
Definition: parser_yystype.h:420
Parse_tree_node * node
Definition: parser_yystype.h:436
PT_order_list * order_list
Definition: parser_yystype.h:432
PT_query_expression * query_expression
Definition: parser_yystype.h:475
mem_root_deque< Item * > * item_list
Definition: parser_yystype.h:366
PT_alter_tablespace_option_base * ts_option
Definition: parser_yystype.h:683
PT_library_list * library_list
Definition: parser_yystype.h:728
enum_trigger_order_type ordering_clause
Definition: parser_yystype.h:425
struct MY_SQL_PARSER_STYPE::@133 lead_lag_info
PT_create_index_stmt * create_index_stmt
Definition: parser_yystype.h:514
ha_rkey_function ha_rkey_mode
Definition: parser_yystype.h:382
struct MY_SQL_PARSER_STYPE::@144 alter_list
Statement_information_item * stmt_info_item
Definition: parser_yystype.h:415
enum_from_first_last from_first_last
Definition: parser_yystype.h:449
enum_drop_mode opt_restrict
Definition: parser_yystype.h:554
Mem_root_array< PT_json_table_column * > * jtc_list
Definition: parser_yystype.h:600
Item_param * param_marker
Definition: parser_yystype.h:473
ha_key_alg key_alg
Definition: parser_yystype.h:380
Item * value
Definition: parser_yystype.h:490
enum_key_algorithm opt_key_algo
Definition: parser_yystype.h:545
PT_subpartition * sub_part_definition
Definition: parser_yystype.h:531
Json_on_response empty
Definition: parser_yystype.h:608
LEX_USER * lex_user
Definition: parser_yystype.h:371
struct MY_SQL_PARSER_STYPE::@134 index_name_and_type
enum_window_frame_unit frame_units
Definition: parser_yystype.h:444
PT_with_clause * with_clause
Definition: parser_yystype.h:525
PT_part_definition * part_definition
Definition: parser_yystype.h:542
PT_item_list * column_list
Definition: parser_yystype.h:493
resourcegroups::Type resource_group_type
Definition: parser_yystype.h:693
Mem_root_array< ulonglong > * thread_id_list_type
Definition: parser_yystype.h:694
enum_condition_item_name da_condition_item_name
Definition: parser_yystype.h:412
const char * c_str
Definition: parser_yystype.h:385
Mem_root_array< PT_ddl_table_option * > * space_separated_alter_table_opts
Definition: parser_yystype.h:558
PT_column_attr_base * col_attr
Definition: parser_yystype.h:560
LEX_CSTRING schema_name_for_explain
Definition: parser_yystype.h:725
Mem_root_array< Table_ident * > * table_list
Definition: parser_yystype.h:369
PT_install_component_set_element * install_component_set_element
Definition: parser_yystype.h:721
struct MY_SQL_PARSER_STYPE::@137 sp_default
struct MY_SQL_PARSER_STYPE::@135 opt_part_values
PT_key_part_specification * key_part
Definition: parser_yystype.h:484
PT_option_value_no_option_type * option_value_no_option_type
Definition: parser_yystype.h:456
Line_separators * line_separators
Definition: parser_yystype.h:465
enum olap_type olap_type
Definition: parser_yystype.h:437
URI_information * outfile_uri
Definition: parser_yystype.h:467
int curs
Definition: parser_yystype.h:402
enum_var_type var_type
Definition: parser_yystype.h:378
enum_yes_no_unknown m_yes_no_unk
Definition: parser_yystype.h:411
Mem_root_array< PT_part_value_item * > * part_value_item_list
Definition: parser_yystype.h:534
PT_start_option_value_list_following_option_type * start_option_value_list_following_option_type
Definition: parser_yystype.h:463
struct MY_SQL_PARSER_STYPE::@145 standalone_alter_table_action
PT_exclusion * frame_exclusion
Definition: parser_yystype.h:447
PT_select_var_list * select_var_list
Definition: parser_yystype.h:471
Condition_information_item * cond_info_item
Definition: parser_yystype.h:418
fk_option fk_update_opt
Definition: parser_yystype.h:575
PT_role_or_privilege * role_or_privilege
Definition: parser_yystype.h:629
LEX_STRING wild
Definition: parser_yystype.h:613
Mem_root_array_YY< PT_table_reference * > table_reference_list
Definition: parser_yystype.h:472
Parse_tree_root * statement
Definition: parser_yystype.h:724
bool visibility
Definition: parser_yystype.h:524
Item_num * item_num
Definition: parser_yystype.h:365
PT_isolation_level * isolation_level
Definition: parser_yystype.h:460
Mem_root_array< LEX_CSTRING > * lex_cstring_list
Definition: parser_yystype.h:628
struct MY_SQL_PARSER_STYPE::@149 load_set_list
Json_on_response error
Definition: parser_yystype.h:607
List< PT_install_component_set_element > * install_component_set_list
Definition: parser_yystype.h:722
bool is_analyze
Definition: parser_yystype.h:698
PT_insert_values_list * row_value_list
Definition: parser_yystype.h:494
struct MY_SQL_PARSER_STYPE::@123 lex_mfas
struct MY_SQL_PARSER_STYPE::@126 spblock
Create_col_name_list * column_list
Definition: parser_yystype.h:716
Index_hint * key_usage_element
Definition: parser_yystype.h:428
Mem_root_array< PT_column_attr_base * > * col_attr_list
Definition: parser_yystype.h:563
Item_string * item_string
Definition: parser_yystype.h:450
PT_part_values * part_values
Definition: parser_yystype.h:537
PT_library_with_alias * library_with_alias
Definition: parser_yystype.h:729
my_thread_id query_id
Definition: parser_yystype.h:718
struct MY_SQL_PARSER_STYPE::@128 query_expression_body_opt_parens
int conds
Definition: parser_yystype.h:402
PT_part_value_item_list_paren * part_value_item_list_paren
Definition: parser_yystype.h:535
udf_func * udf
Definition: parser_yystype.h:370
PT_locking_clause * locking_clause
Definition: parser_yystype.h:598
PT_table_reference * table_reference
Definition: parser_yystype.h:452
struct MY_SQL_PARSER_STYPE::@124 charset_with_opt_binary
fk_match_opt fk_match_option
Definition: parser_yystype.h:583
fk_option fk_delete_opt
Definition: parser_yystype.h:576
PT_column_def * column_def
Definition: parser_yystype.h:587
struct MY_SQL_PARSER_STYPE::@146 vcpu_range_type
PT_item_list * set_expr_list
Definition: parser_yystype.h:709
resourcegroups::platform::cpu_id_t end
Definition: parser_yystype.h:687
LEX_CSTRING lex_cstr
Definition: parser_yystype.h:360
ulong field_option
Definition: parser_yystype.h:565
PT_alter_instance * alter_instance_cmd
Definition: parser_yystype.h:513
PT_add_partition * add_partition_rule
Definition: parser_yystype.h:549
Mem_root_array< PT_ddl_table_option * > * actions
Definition: parser_yystype.h:672
PT_joined_table_type join_type
Definition: parser_yystype.h:454
PT_subquery * subquery
Definition: parser_yystype.h:483
String * set_expr_str
Definition: parser_yystype.h:705
struct MY_SQL_PARSER_STYPE::@140 create_table_tail
On_duplicate on_duplicate
Definition: parser_yystype.h:559
PT_window_list * windows
Definition: parser_yystype.h:441
XID * xid
Definition: parser_yystype.h:486
Mem_root_array_YY< Table_ident * > table_ident_list
Definition: parser_yystype.h:511
PT_table_constraint_def * table_constraint_def
Definition: parser_yystype.h:515
Locked_row_action locked_row_action
Definition: parser_yystype.h:597
Mem_root_array< PT_alter_tablespace_option_base * > * ts_options
Definition: parser_yystype.h:684
enum_trigger_order_type trigger_action_order_type
Definition: parser_yystype.h:423
bool resource_group_flag_type
Definition: parser_yystype.h:692
Item * where
Definition: parser_yystype.h:614
PT_hint_list * hint_list
Definition: parser_yystype.h:349
PT_set_scoped_system_variable * option_value_following_option_type
Definition: parser_yystype.h:455
Alter_info::enum_with_validation with_validation
Definition: parser_yystype.h:632
PT_partition * partition_clause
Definition: parser_yystype.h:548
PT_common_table_expr * common_table_expr
Definition: parser_yystype.h:527
Mem_root_array_YY< LEX_STRING > lex_str_list
Definition: parser_yystype.h:523
PT_part_type_def * part_type_def
Definition: parser_yystype.h:547
Algo_and_lock_and_validation flags
Definition: parser_yystype.h:671
PT_query_expression_body * insert_query_expression
Definition: parser_yystype.h:502
sp_name * spname
Definition: parser_yystype.h:404
struct MY_SQL_PARSER_STYPE::@129 column_value_pair
Hint_param_table hint_param_table
Definition: parser_yystype.h:351
decltype(HA_CHECK_OPT::sql_flags) sql_flags
Definition: parser_yystype.h:552
Item * item
Definition: parser_yystype.h:364
sp_head * sphead
Definition: parser_yystype.h:406
List< Statement_information_item > * stmt_info_list
Definition: parser_yystype.h:417
thr_lock_type lock_type
Definition: parser_yystype.h:395
enum_ha_read_modes ha_read_mode
Definition: parser_yystype.h:383
PT_start_option_value_list * start_option_value_list
Definition: parser_yystype.h:458
PTI_text_literal * text_literal
Definition: parser_yystype.h:474
PT_order_expr * order_expr
Definition: parser_yystype.h:431
Item * set_expr
Definition: parser_yystype.h:704
Mem_root_array< PT_preload_keys * > * preload_list
Definition: parser_yystype.h:682
Mem_root_array< PT_table_element * > * table_element_list
Definition: parser_yystype.h:589
Table_ident * table
Definition: parser_yystype.h:362
Numeric_type numeric_type
Definition: parser_yystype.h:568
String * string
Definition: parser_yystype.h:368
bool is_explicit
Definition: parser_yystype.h:699
Alter_info::enum_alter_table_lock alter_table_lock
Definition: parser_yystype.h:636
Limit_options limit_options
Definition: parser_yystype.h:433
LEX_CSTRING anchor_trigger_name
Definition: parser_yystype.h:426
struct MY_SQL_PARSER_STYPE::@130 column_row_value_list_pair
bool is_not_empty
Definition: parser_yystype.h:421
PT_json_table_column * jt_column
Definition: parser_yystype.h:610
Cast_type cast_type
Definition: parser_yystype.h:394
PT_base_index_option * index_option
Definition: parser_yystype.h:521
enum_jt_column jt_column_type
Definition: parser_yystype.h:611
Lexer_yystype lexer
Definition: parser_yystype.h:343
List< Key_part_spec > * reference_list
Definition: parser_yystype.h:579
PT_with_list * with_list
Definition: parser_yystype.h:526
File_information * outfile_file_info
Definition: parser_yystype.h:468
List< char > * name_list
Definition: parser_yystype.h:544
PT_table_element * table_element
Definition: parser_yystype.h:588
bool is_parenthesized
Definition: parser_yystype.h:480
index_hint_type index_hint
Definition: parser_yystype.h:407
PT_tablesample * tablesample
Definition: parser_yystype.h:440
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