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