MySQL 8.0.40
Source Code Documentation
parse_tree_partitions.h
Go to the documentation of this file.
1/* Copyright (c) 2016, 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 PARSE_TREE_PARTITIONS_INCLUDED
25#define PARSE_TREE_PARTITIONS_INCLUDED
26
27#include <sys/types.h> // TODO: replace with cstdint
28
29#include "lex_string.h"
30#include "my_base.h"
31#include "my_inttypes.h" // TODO: replace with cstdint
32#include "sql/parse_location.h"
36#include "sql/partition_info.h"
37
38class Item;
39class THD;
40
41template <class T>
42class List;
43
44template <typename Element_type>
45class Mem_root_array;
46
47/**
48 Parse context for partitioning-specific parse tree nodes.
49
50 For internal use in the contextualization code.
51
52 @ingroup ptn_partitioning
53*/
60
61 Partition_parse_context(THD *thd_arg, partition_info *part_info_arg,
63 : Partition_parse_context(thd_arg, part_info_arg, nullptr, nullptr,
65
66 /**
67 True for "ALTER TABLE ADD PARTITION" and "ALTER TABLE REORGANIZE PARTITION"
68 statements, otherwise false.
69 */
71};
72
73/**
74 Base class for all Partition_parse_context-dependent nodes
75
76 @ingroup ptn_partitioning
77*/
79
80/**
81 Base class for all partition options
82
83 @ingroup ptn_part_options
84*/
86
87/**
88 Node for the @SQL{COMMENT [=] @<string@>} partition option
89
90 @ingroup ptn_part_options
91*/
94
95 char *comment;
96
97 public:
99
101 if (super::contextualize(pc)) return true;
102
104 return false;
105 }
106};
107
108/**
109 Node for the @SQL{INDEX DIRECTORY [=] @<string@>} partition option
110
111 @ingroup ptn_part_options
112*/
115
116 const char *index_directory;
117
118 public:
121
123 if (super::contextualize(pc)) return true;
124
126 return false;
127 }
128};
129
130/**
131 Node for the @SQL{DATA DIRECTORY [=] @<string@>} partition option
132
133 @ingroup ptn_part_options
134*/
137
138 const char *data_directory;
139
140 public:
143
145 if (super::contextualize(pc)) return true;
146
148 return false;
149 }
150};
151
152/**
153 Node for the @SQL{MIN_ROWS [=] @<integer@>} partition option
154
155 @ingroup ptn_part_options
156*/
159
161
162 public:
164
166 if (super::contextualize(pc)) return true;
167
169 return false;
170 }
171};
172
173/**
174 Node for the @SQL{MAX_ROWS [=] @<integer@>} partition option
175
176 @ingroup ptn_part_options
177*/
180
182
183 public:
185
187 if (super::contextualize(pc)) return true;
188
190 return false;
191 }
192};
193
194/**
195 Node for the @SQL{NODEGROUP [=] @<integer@>} partition option
196
197 @ingroup ptn_part_options
198*/
201
203
204 public:
206
208 if (super::contextualize(pc)) return true;
209
211 return false;
212 }
213};
214
215/**
216 Node for the @SQL{[STORAGE] ENGINE [=] @<identifier|string@>} partition option
217
218 @ingroup ptn_part_options
219*/
222
223 public:
225
227
229 if (super::contextualize(pc)) return true;
230
231 return resolve_engine(pc->thd, name, false, // partition can't be temporary
232 false, &pc->curr_part_elem->engine_type);
233 }
234};
235
236/**
237 Node for the @SQL{TABLESPACE [=] @<identifier@>} partition option
238
239 @ingroup ptn_part_options
240*/
243
244 const char *tablespace;
245
246 public:
249
251 if (super::contextualize(pc)) return true;
252
254 return false;
255 }
256};
257
258/**
259 Node for the @SQL{SUBRAPTITION} clause of @SQL{CREATE/ALTER TABLE}
260
261 @ingroup ptn_partitioning
262*/
264 const POS pos;
265 const char *name;
267
268 public:
269 PT_subpartition(const POS &pos, const char *name,
271 : pos(pos), name(name), options(options) {}
272
273 bool contextualize(Partition_parse_context *pc) override;
274};
275
276/**
277 Base class for partition value nodes: @SQL{MAX_VALUE} values or expressions
278
279 @ingroup ptn_partitioning
280*/
282
283/**
284 Node for the @SQL{MAX_VALUE} partition value in @SQL{CREATE/ALTER TABLE}
285
286 @ingroup ptn_partitioning
287*/
290
291 const POS pos;
292
293 public:
294 explicit PT_part_value_item_max(const POS &pos) : pos(pos) {}
295
296 bool contextualize(Partition_parse_context *pc) override;
297};
298
299/**
300 Node for the partitioning expression in @SQL{CREATE/ALTER TABLE}
301
302 @ingroup ptn_partitioning
303*/
306
307 const POS pos;
309
310 public:
312 : pos(pos), expr(expr) {}
313
314 bool contextualize(Partition_parse_context *pc) override;
315};
316
317/**
318 Base class for @SQL{VALUES} partitioning clauses
319
320 @ingroup ptn_partitioning
321*/
323
324/**
325 Node for a list of partitioning values in @SQL{VALUES} clauses
326
327 @ingroup ptn_partitioning
328*/
331
334
335 public:
339
340 bool contextualize(Partition_parse_context *pc) override;
341};
342
343/**
344 Node for a list of partitioning values in the @SQL{VALUES IN} clause
345
346 @ingroup ptn_partitioning
347*/
350
351 const POS pos;
353
354 public:
357 : pos(pos), item(item) {}
358
359 bool contextualize(Partition_parse_context *pc) override;
360};
361
362/**
363 Node for a list of partitioning values in the @SQL{VALUES IN} clause
364
365 @ingroup ptn_partitioning
366*/
369
370 const POS pos;
372
373 public:
376 : pos(pos), list(list) {}
377
378 bool contextualize(Partition_parse_context *pc) override;
379};
380
381/**
382 Node for the @SQL{PARTITION} clause of CREATE/ALTER TABLE
383
384 @ingroup ptn_partitioning
385*/
388
389 const POS pos;
397
398 public:
401 const POS &values_pos,
404 const POS &sub_partitions_pos)
405 : pos(pos),
406 name(name),
407 type(type),
413
414 bool contextualize(Partition_parse_context *pc) override;
415};
416
417/**
418 Base class for all subpartitioning clause nodes
419
420 @ingroup ptn_partitioning
421*/
423
424/**
425 Node for the @SQL{SUBRAPTITION BY HASH} definition clause
426
427 @ingroup ptn_partitioning
428*/
431
432 const bool is_linear;
436
437 public:
442 hash(hash),
444
445 bool contextualize(Partition_parse_context *pc) override;
446};
447
448/**
449 Node for the @SQL{SUBRAPTITION BY KEY} definition clause
450
451 @ingroup ptn_partitioning
452*/
455
456 const bool is_linear;
460
461 public:
468
469 bool contextualize(Partition_parse_context *pc) override;
470};
471
473 protected:
475
476 bool itemize_part_expr(Partition_parse_context *pc, const POS &pos,
477 Item **item);
478};
479
480/**
481 Node for the @SQL{PARTITION BY [LINEAR] KEY} type clause
482
483 @ingroup ptn_partitioning
484*/
487
488 const bool is_linear;
491
492 public:
496
497 bool contextualize(Partition_parse_context *pc) override;
498};
499
500/**
501 Node for the @SQL{PARTITION BY [LINEAR] HASH} type clause
502
503 @ingroup ptn_partitioning
504*/
507
508 const bool is_linear;
511
512 public:
515
516 bool contextualize(Partition_parse_context *pc) override;
517};
518
519/**
520 Node for the @SQL{PARTITION BY RANGE (@<expression@>) } type clause
521
522 @ingroup ptn_partitioning
523*/
526
529
530 public:
532 : expr_pos(expr_pos), expr(expr) {}
533
534 bool contextualize(Partition_parse_context *pc) override;
535};
536
537/**
538 Node for the @SQL{PARTITION BY RANGE COLUMNS (@<ident list@>) } type clause
539
540 @ingroup ptn_partitioning
541*/
544
546
547 public:
549 : columns(columns) {}
550
551 bool contextualize(Partition_parse_context *pc) override;
552};
553
554/**
555 Node for the @SQL{PARTITION BY LIST (@<expression@>) } type clause
556
557 @ingroup ptn_partitioning
558*/
561
564
565 public:
567 : expr_pos(expr_pos), expr(expr) {}
568
569 bool contextualize(Partition_parse_context *pc) override;
570};
571
572/**
573 Node for the @SQL{PARTITION BY LIST COLUMNS (@<ident list@>) } type clause
574
575 @ingroup ptn_partitioning
576*/
579
581
582 public:
584 : columns(columns) {}
585
586 bool contextualize(Partition_parse_context *pc) override;
587};
588
589/**
590 Node for the @SQL{PARTITION} definition clause
591
592 @ingroup ptn_partitioning
593*/
596
602
603 public:
605
606 public:
615
616 bool contextualize(Parse_context *pc) override;
617};
618
619#endif /* PARSE_TREE_PARTITIONS_INCLUDED */
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:853
Definition: sql_list.h:434
A typesafe replacement for DYNAMIC_ARRAY.
Definition: mem_root_array.h:426
Node for the PARTITION clause of CREATE/ALTER TABLE.
Definition: parse_tree_partitions.h:386
const POS pos
Definition: parse_tree_partitions.h:389
PT_part_values *const opt_part_values
Definition: parse_tree_partitions.h:392
Mem_root_array< PT_partition_option * > * opt_part_options
Definition: parse_tree_partitions.h:394
Mem_root_array< PT_subpartition * > * opt_sub_partitions
Definition: parse_tree_partitions.h:395
const LEX_STRING name
Definition: parse_tree_partitions.h:390
partition_type type
Definition: parse_tree_partitions.h:391
const POS values_pos
Definition: parse_tree_partitions.h:393
Parse_tree_part_node super
Definition: parse_tree_partitions.h:387
PT_part_definition(const POS &pos, const LEX_STRING &name, partition_type type, PT_part_values *const opt_part_values, const POS &values_pos, Mem_root_array< PT_partition_option * > *opt_part_options, Mem_root_array< PT_subpartition * > *opt_sub_partitions, const POS &sub_partitions_pos)
Definition: parse_tree_partitions.h:399
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.cc:202
const POS sub_partitions_pos
Definition: parse_tree_partitions.h:396
Node for the PARTITION BY [LINEAR] HASH type clause.
Definition: parse_tree_partitions.h:505
const bool is_linear
Definition: parse_tree_partitions.h:508
Item * expr
Definition: parse_tree_partitions.h:510
const POS expr_pos
Definition: parse_tree_partitions.h:509
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.cc:420
PT_part_type_def super
Definition: parse_tree_partitions.h:506
PT_part_type_def_hash(bool is_linear, const POS &expr_pos, Item *expr)
Definition: parse_tree_partitions.h:513
Node for the PARTITION BY [LINEAR] KEY type clause.
Definition: parse_tree_partitions.h:485
PT_part_type_def super
Definition: parse_tree_partitions.h:486
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.cc:405
const bool is_linear
Definition: parse_tree_partitions.h:488
const enum_key_algorithm key_algo
Definition: parse_tree_partitions.h:489
PT_part_type_def_key(bool is_linear, enum_key_algorithm key_algo, List< char > *opt_columns)
Definition: parse_tree_partitions.h:493
List< char > *const opt_columns
Definition: parse_tree_partitions.h:490
Node for the PARTITION BY LIST COLUMNS (<ident list>) type clause.
Definition: parse_tree_partitions.h:577
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.cc:465
List< char > *const columns
Definition: parse_tree_partitions.h:580
PT_part_type_def_list_columns(List< char > *columns)
Definition: parse_tree_partitions.h:583
PT_part_type_def super
Definition: parse_tree_partitions.h:578
Node for the PARTITION BY LIST (<expression>) type clause.
Definition: parse_tree_partitions.h:559
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.cc:454
PT_part_type_def super
Definition: parse_tree_partitions.h:560
const POS expr_pos
Definition: parse_tree_partitions.h:562
PT_part_type_def_list_expr(const POS &expr_pos, Item *expr)
Definition: parse_tree_partitions.h:566
Item * expr
Definition: parse_tree_partitions.h:563
Node for the PARTITION BY RANGE COLUMNS (<ident list>) type clause.
Definition: parse_tree_partitions.h:542
List< char > *const columns
Definition: parse_tree_partitions.h:545
PT_part_type_def_range_columns(List< char > *columns)
Definition: parse_tree_partitions.h:548
PT_part_type_def super
Definition: parse_tree_partitions.h:543
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.cc:443
Node for the PARTITION BY RANGE (<expression>) type clause.
Definition: parse_tree_partitions.h:524
PT_part_type_def_range_expr(const POS &expr_pos, Item *expr)
Definition: parse_tree_partitions.h:531
Item * expr
Definition: parse_tree_partitions.h:528
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.cc:432
PT_part_type_def super
Definition: parse_tree_partitions.h:525
const POS expr_pos
Definition: parse_tree_partitions.h:527
Definition: parse_tree_partitions.h:472
bool itemize_part_expr(Partition_parse_context *pc, const POS &pos, Item **item)
Definition: parse_tree_partitions.cc:384
bool set_part_field_list(Partition_parse_context *pc, List< char > *list)
Definition: parse_tree_partitions.cc:372
Node for the partitioning expression in CREATE/ALTER TABLE
Definition: parse_tree_partitions.h:304
Item * expr
Definition: parse_tree_partitions.h:308
PT_part_value_item_expr(const POS &pos, Item *expr)
Definition: parse_tree_partitions.h:311
const POS pos
Definition: parse_tree_partitions.h:307
PT_part_value_item super
Definition: parse_tree_partitions.h:305
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.cc:117
Node for a list of partitioning values in VALUES clauses.
Definition: parse_tree_partitions.h:329
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.cc:131
PT_part_values super
Definition: parse_tree_partitions.h:330
PT_part_value_item_list_paren(Mem_root_array< PT_part_value_item * > *values, const POS &paren_pos)
Definition: parse_tree_partitions.h:336
Mem_root_array< PT_part_value_item * > * values
Definition: parse_tree_partitions.h:332
const POS paren_pos
Definition: parse_tree_partitions.h:333
Node for the MAX_VALUE partition value in CREATE/ALTER TABLE
Definition: parse_tree_partitions.h:288
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.cc:105
PT_part_value_item super
Definition: parse_tree_partitions.h:289
const POS pos
Definition: parse_tree_partitions.h:291
PT_part_value_item_max(const POS &pos)
Definition: parse_tree_partitions.h:294
Base class for partition value nodes: MAX_VALUE values or expressions.
Definition: parse_tree_partitions.h:281
Node for a list of partitioning values in the VALUES IN clause.
Definition: parse_tree_partitions.h:348
PT_part_values super
Definition: parse_tree_partitions.h:349
PT_part_values_in_item(const POS &pos, PT_part_value_item_list_paren *item)
Definition: parse_tree_partitions.h:355
const POS pos
Definition: parse_tree_partitions.h:351
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.cc:163
PT_part_value_item_list_paren * item
Definition: parse_tree_partitions.h:352
Node for a list of partitioning values in the VALUES IN clause.
Definition: parse_tree_partitions.h:367
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.cc:188
Mem_root_array< PT_part_value_item_list_paren * > * list
Definition: parse_tree_partitions.h:371
PT_part_values super
Definition: parse_tree_partitions.h:368
PT_part_values_in_list(const POS &pos, Mem_root_array< PT_part_value_item_list_paren * > *list)
Definition: parse_tree_partitions.h:374
const POS pos
Definition: parse_tree_partitions.h:370
Base class for VALUES partitioning clauses.
Definition: parse_tree_partitions.h:322
Node for the COMMENT [=] <string> partition option.
Definition: parse_tree_partitions.h:92
PT_partition_comment(char *comment)
Definition: parse_tree_partitions.h:98
PT_partition_option super
Definition: parse_tree_partitions.h:93
char * comment
Definition: parse_tree_partitions.h:95
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.h:100
Node for the DATA DIRECTORY [=] <string> partition option.
Definition: parse_tree_partitions.h:135
PT_partition_option super
Definition: parse_tree_partitions.h:136
const char * data_directory
Definition: parse_tree_partitions.h:138
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.h:144
PT_partition_data_directory(const char *data_directory)
Definition: parse_tree_partitions.h:141
Node for the [STORAGE] ENGINE [=] <identifier|string> partition option.
Definition: parse_tree_partitions.h:220
PT_partition_engine(const LEX_CSTRING &name)
Definition: parse_tree_partitions.h:226
const LEX_CSTRING name
Definition: parse_tree_partitions.h:224
PT_partition_option super
Definition: parse_tree_partitions.h:221
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.h:228
Node for the INDEX DIRECTORY [=] <string> partition option.
Definition: parse_tree_partitions.h:113
PT_partition_option super
Definition: parse_tree_partitions.h:114
PT_partition_index_directory(const char *index_directory)
Definition: parse_tree_partitions.h:119
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.h:122
const char * index_directory
Definition: parse_tree_partitions.h:116
Node for the MAX_ROWS [=] <integer> partition option.
Definition: parse_tree_partitions.h:178
PT_partition_option super
Definition: parse_tree_partitions.h:179
ha_rows max_rows
Definition: parse_tree_partitions.h:181
PT_partition_max_rows(ha_rows max_rows)
Definition: parse_tree_partitions.h:184
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.h:186
Node for the MIN_ROWS [=] <integer> partition option.
Definition: parse_tree_partitions.h:157
PT_partition_option super
Definition: parse_tree_partitions.h:158
ha_rows min_rows
Definition: parse_tree_partitions.h:160
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.h:165
PT_partition_min_rows(ha_rows min_rows)
Definition: parse_tree_partitions.h:163
Node for the NODEGROUP [=] <integer> partition option.
Definition: parse_tree_partitions.h:199
uint16 nodegroup
Definition: parse_tree_partitions.h:202
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.h:207
PT_partition_nodegroup(uint16 nodegroup)
Definition: parse_tree_partitions.h:205
PT_partition_option super
Definition: parse_tree_partitions.h:200
Base class for all partition options.
Definition: parse_tree_partitions.h:85
Node for the TABLESPACE [=] <identifier> partition option.
Definition: parse_tree_partitions.h:241
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.h:250
PT_partition_tablespace(const char *tablespace)
Definition: parse_tree_partitions.h:247
const char * tablespace
Definition: parse_tree_partitions.h:244
PT_partition_option super
Definition: parse_tree_partitions.h:242
Node for the PARTITION definition clause.
Definition: parse_tree_partitions.h:594
Mem_root_array< PT_part_definition * > * part_defs
Definition: parse_tree_partitions.h:601
partition_info part_info
Definition: parse_tree_partitions.h:604
PT_sub_partition *const opt_sub_part
Definition: parse_tree_partitions.h:599
const POS part_defs_pos
Definition: parse_tree_partitions.h:600
bool contextualize(Parse_context *pc) override
Definition: parse_tree_partitions.cc:475
Parse_tree_node super
Definition: parse_tree_partitions.h:595
PT_part_type_def *const part_type_def
Definition: parse_tree_partitions.h:597
PT_partition(PT_part_type_def *part_type_def, uint opt_num_parts, PT_sub_partition *opt_sub_part, const POS &part_defs_pos, Mem_root_array< PT_part_definition * > *part_defs)
Definition: parse_tree_partitions.h:607
const uint opt_num_parts
Definition: parse_tree_partitions.h:598
Node for the SUBRAPTITION BY HASH definition clause.
Definition: parse_tree_partitions.h:429
Item * hash
Definition: parse_tree_partitions.h:434
const uint opt_num_subparts
Definition: parse_tree_partitions.h:435
PT_sub_partition_by_hash(bool is_linear, const POS &hash_pos, Item *hash, uint opt_num_subparts)
Definition: parse_tree_partitions.h:438
PT_sub_partition super
Definition: parse_tree_partitions.h:430
const POS hash_pos
Definition: parse_tree_partitions.h:433
const bool is_linear
Definition: parse_tree_partitions.h:432
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.cc:320
Node for the SUBRAPTITION BY KEY definition clause.
Definition: parse_tree_partitions.h:453
const bool is_linear
Definition: parse_tree_partitions.h:456
enum_key_algorithm key_algo
Definition: parse_tree_partitions.h:457
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.cc:347
PT_sub_partition_by_key(bool is_linear, enum_key_algorithm key_algo, List< char > *field_names, const uint opt_num_subparts)
Definition: parse_tree_partitions.h:462
const uint opt_num_subparts
Definition: parse_tree_partitions.h:459
PT_sub_partition super
Definition: parse_tree_partitions.h:454
List< char > * field_names
Definition: parse_tree_partitions.h:458
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
const POS pos
Definition: parse_tree_partitions.h:264
const char * name
Definition: parse_tree_partitions.h:265
PT_subpartition(const POS &pos, const char *name, Mem_root_array< PT_partition_option * > *options)
Definition: parse_tree_partitions.h:269
bool contextualize(Partition_parse_context *pc) override
Definition: parse_tree_partitions.cc:53
const Mem_root_array< PT_partition_option * > * options
Definition: parse_tree_partitions.h:266
Base class for parse tree nodes (excluding the Parse_tree_root hierarchy)
Definition: parse_tree_node_base.h:139
virtual bool contextualize(Context *pc)
Do all context-sensitive things and mark the node as contextualized.
Definition: parse_tree_node_base.h:187
Definition: partition_info.h:180
partition_element *const current_partition
Definition: partition_info.h:183
partition_info *const part_info
Definition: partition_info.h:182
partition_element *const curr_part_elem
Definition: partition_info.h:184
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:34
Definition: partition_element.h:108
const char * index_file_name
Definition: partition_element.h:121
char * part_comment
Definition: partition_element.h:119
handlerton * engine_type
Definition: partition_element.h:122
ha_rows part_min_rows
Definition: partition_element.h:115
ha_rows part_max_rows
Definition: partition_element.h:114
uint16 nodegroup_id
Definition: partition_element.h:124
const char * data_file_name
Definition: partition_element.h:120
const char * tablespace_name
Definition: partition_element.h:118
Definition: partition_info.h:209
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:222
Parse_tree_node_tmpl< Partition_parse_context > Parse_tree_part_node
Base class for all Partition_parse_context-dependent nodes.
Definition: parse_tree_partitions.h:78
This file includes constants used by all storage engines.
my_off_t ha_rows
Definition: my_base.h:1140
Some integer typedefs for easier portability.
uint16_t uint16
Definition: my_inttypes.h:65
Definition: options.cc:49
std::list< T, ut::allocator< T > > list
Specialization of list which uses ut_allocator.
Definition: ut0new.h:2879
bool resolve_engine(THD *thd, const LEX_CSTRING &name, bool is_temp_table, bool strict, handlerton **ret)
Resolve engine by its name.
Definition: parse_tree_helpers.cc:289
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
Definition: mysql_lex_string.h:40
Definition: mysql_lex_string.h:35
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:121
THD *const thd
Current thread handler.
Definition: parse_tree_node_base.h:122
Parse context for partitioning-specific parse tree nodes.
Definition: parse_tree_partitions.h:55
const bool is_add_or_reorganize_partition
True for "ALTER TABLE ADD PARTITION" and "ALTER TABLE REORGANIZE PARTITION" statements,...
Definition: parse_tree_partitions.h:70
Partition_parse_context(THD *const thd, partition_info *part_info, partition_element *current_partition, partition_element *curr_part_elem, bool is_add_or_reorganize_partition)
Definition: parse_tree_partitions.cc:44
Partition_parse_context(THD *thd_arg, partition_info *part_info_arg, bool is_add_or_reorganize_partition)
Definition: parse_tree_partitions.h:61
Bison "location" class.
Definition: parse_location.h:43
unsigned int uint
Definition: uca9-dump.cc:75