24#ifndef PARSE_TREE_PARTITIONS_INCLUDED 
   25#define PARSE_TREE_PARTITIONS_INCLUDED 
   44template <
typename Element_type>
 
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 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:2883
 
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