24#ifndef PARSE_TREE_COL_ATTRS_INCLUDED 
   25#define PARSE_TREE_COL_ATTRS_INCLUDED 
   44#include "mysqld_error.h" 
  123                               bool *has_explicit_collation
 
  124                               [[maybe_unused]])
 const {
 
  172    *type_flags &= ~NOT_NULL_FLAG;
 
  272    assert(check_const_list != 
nullptr);
 
  338                       bool *has_explicit_collation)
 const override {
 
  339    if (*has_explicit_collation) {
 
  343    *has_explicit_collation = 
true;
 
  371      my_error(ER_WRONG_USAGE, 
MYF(0), 
"DEFAULT", 
"generated column");
 
  400      my_error(ER_WRONG_USAGE, 
MYF(0), 
"ON UPDATE", 
"generated column");
 
  406    return item == 
nullptr;
 
  426      my_error(ER_WRONG_USAGE, 
MYF(0), 
"AUTO_INCREMENT", 
"generated column");
 
  454      my_error(ER_WRONG_USAGE, 
MYF(0), 
"SERIAL DEFAULT VALUE",
 
  485      my_error(ER_WRONG_USAGE, 
MYF(0), 
"COLUMN_FORMAT", 
"generated column");
 
  515      my_error(ER_WRONG_USAGE, 
MYF(0), 
"STORAGE", 
"generated column");
 
  560      my_error(ER_WRONG_USAGE, 
MYF(0), 
"DEFAULT", 
"generated column");
 
  587    *type_flags &= ~FIELD_IS_INVISIBLE;
 
  616  virtual const char *
get_dec()
 const { 
return nullptr; }
 
  651                   ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT,
 
  652                   ER_THD(thd, ER_WARN_DEPRECATED_FLOAT_DIGITS));
 
  656                   ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT,
 
  657                   ER_THD(thd, ER_WARN_DEPRECATED_FLOAT_UNSIGNED));
 
  670                   ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT,
 
  671                   ER_THD(thd, ER_WARN_DEPRECATED_INTEGER_DISPLAY_WIDTH));
 
  850    if (!pc->
thd->
variables.explicit_defaults_for_timestamp)
 
  886template <Enum_type enum_type>
 
 1020    for (
auto attr : *attrs) {
 
 1021      if (attr->attr_type() == cand->
attr_type()) 
return true;
 
 1029    if (attrs != 
nullptr) {
 
 1030      if (attrs->
size() > 1) {
 
 1037        for (
long i = 
static_cast<long>(attrs->
size()) - 1; i >= 0; i--) {
 
 1044        for (
auto attr : *unique_attrs) attrs->
push_front(attr);
 
 1047      for (
auto attr : *attrs) {
 
 1048        if (attr->contextualize(pc)) 
return true;
 
 1051        attr->apply_comment(&
comment);
 
 1055        attr->apply_srid_modifier(&
m_srid);
 
 1106      : 
super(type_node_arg),
 
 1119      my_error(ER_WRONG_USAGE, 
MYF(0), 
"SERIAL", 
"generated column");
 
ulonglong flags
Definition: sql_alter.h:428
 
@ ADD_CHECK_CONSTRAINT
Set for add check constraint.
Definition: sql_alter.h:318
 
@ ALTER_ADD_INDEX
Set for ADD INDEX | ADD KEY | ADD PRIMARY KEY | ADD UNIQUE KEY | ADD UNIQUE INDEX | ALTER ADD [COLUMN...
Definition: sql_alter.h:228
 
geometry_type
Definition: field.h:718
 
Definition: item_timefunc.h:1155
 
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:853
 
virtual bool itemize(Parse_context *pc, Item **res)
The same as contextualize() but with additional parameter.
Definition: item.cc:631
 
@ NULL_ITEM
Definition: item.h:897
 
virtual enum Type type() const =0
 
Definition: sql_list.h:434
 
bool push_back(const Element_type &element)
Adds a new element at the end of the array, after its current last element.
Definition: mem_root_array.h:186
 
size_t size() const
Definition: mem_root_array.h:407
 
bool push_front(const Element_type &element)
Adds a new element at the beginning of the array.
Definition: mem_root_array.h:228
 
void clear()
Erases all of the elements.
Definition: mem_root_array.h:129
 
bool reserve(size_t n)
Reserves space for array elements.
Definition: mem_root_array.h:155
 
Node for the AUTO_INCREMENT column attribute.
Definition: parse_tree_column_attrs.h:417
 
PT_column_attr_base super
Definition: parse_tree_column_attrs.h:418
 
void apply_type_flags(ulong *type_flags) const override
Definition: parse_tree_column_attrs.h:421
 
enum Attr_type attr_type() const override
Definition: parse_tree_column_attrs.h:432
 
bool contextualize(Column_parse_context *pc) override
Do all context-sensitive things and mark the node as contextualized.
Definition: parse_tree_column_attrs.h:424
 
Node for the BIT type.
Definition: parse_tree_column_attrs.h:687
 
PT_bit_type(const char *length)
Definition: parse_tree_column_attrs.h:692
 
const char * get_length() const override
Definition: parse_tree_column_attrs.h:695
 
const char * length
Definition: parse_tree_column_attrs.h:688
 
PT_bit_type()
Definition: parse_tree_column_attrs.h:691
 
Node for BLOB types.
Definition: parse_tree_column_attrs.h:755
 
const CHARSET_INFO * charset
Definition: parse_tree_column_attrs.h:757
 
const char * length
Definition: parse_tree_column_attrs.h:756
 
PT_blob_type(const char *length)
Definition: parse_tree_column_attrs.h:771
 
const char * get_length() const override
Definition: parse_tree_column_attrs.h:781
 
const CHARSET_INFO * get_charset() const override
Definition: parse_tree_column_attrs.h:780
 
PT_blob_type(Blob_type blob_type, const CHARSET_INFO *charset, bool force_binary=false)
Definition: parse_tree_column_attrs.h:763
 
ulong get_type_flags() const override
Definition: parse_tree_column_attrs.h:777
 
std::remove_const< decltype(PT_type::type)>::type Parent_type
Definition: parse_tree_column_attrs.h:760
 
const bool force_binary
Definition: parse_tree_column_attrs.h:758
 
Node for the BOOL/BOOLEAN type.
Definition: parse_tree_column_attrs.h:703
 
const char * get_length() const override
Definition: parse_tree_column_attrs.h:706
 
PT_boolean_type()
Definition: parse_tree_column_attrs.h:705
 
Definition: parse_tree_column_attrs.h:715
 
PT_char_type(Char_type char_type, const CHARSET_INFO *charset, bool force_binary=false)
Definition: parse_tree_column_attrs.h:731
 
std::remove_const< decltype(PT_type::type)>::type Parent_type
Definition: parse_tree_column_attrs.h:720
 
const char * length
Definition: parse_tree_column_attrs.h:716
 
const char * get_length() const override
Definition: parse_tree_column_attrs.h:737
 
PT_char_type(Char_type char_type, const char *length, const CHARSET_INFO *charset, bool force_binary=false)
Definition: parse_tree_column_attrs.h:723
 
ulong get_type_flags() const override
Definition: parse_tree_column_attrs.h:734
 
const CHARSET_INFO * get_charset() const override
Definition: parse_tree_column_attrs.h:738
 
const CHARSET_INFO * charset
Definition: parse_tree_column_attrs.h:717
 
const bool force_binary
Definition: parse_tree_column_attrs.h:718
 
Node for the [CONSTRAINT [symbol]] CHECK '(' expr ')' column attribute.
Definition: parse_tree_column_attrs.h:251
 
bool contextualize(Column_parse_context *pc) override
Do all context-sensitive things and mark the node as contextualized.
Definition: parse_tree_column_attrs.h:276
 
void apply_alter_info_flags(ulonglong *flags) const override
Definition: parse_tree_column_attrs.h:266
 
enum Attr_type attr_type() const override
Definition: parse_tree_column_attrs.h:281
 
PT_column_attr_base super
Definition: parse_tree_column_attrs.h:252
 
bool add_check_constraints(Sql_check_constraint_spec_list *check_const_list) override
Definition: parse_tree_column_attrs.h:270
 
bool set_constraint_enforcement(bool enforced) override
Update the ENFORCED/NOT ENFORCED state of the CHECK constraint.
Definition: parse_tree_column_attrs.h:261
 
PT_check_constraint_column_attr(LEX_STRING &name, Item *expr)
Definition: parse_tree_column_attrs.h:256
 
Sql_check_constraint_spec col_cc_spec
Definition: parse_tree_column_attrs.h:253
 
Node for the COLLATE <collation> column attribute.
Definition: parse_tree_column_attrs.h:330
 
enum Attr_type attr_type() const override
Definition: parse_tree_column_attrs.h:347
 
const POS m_pos
Definition: parse_tree_column_attrs.h:350
 
bool apply_collation(Column_parse_context *pc, const CHARSET_INFO **to, bool *has_explicit_collation) const override
Definition: parse_tree_column_attrs.h:337
 
PT_collate_column_attr(const POS &pos, const CHARSET_INFO *collation)
Definition: parse_tree_column_attrs.h:332
 
const CHARSET_INFO *const m_collation
Definition: parse_tree_column_attrs.h:351
 
Base class for all column attributes in CREATE/ALTER TABLE
Definition: parse_tree_column_attrs.h:85
 
decltype(Alter_info::flags) alter_info_flags_t
Definition: parse_tree_column_attrs.h:112
 
virtual bool is_constraint_enforced() const
Check if constraint is enforced.
Definition: parse_tree_column_attrs.h:149
 
virtual bool set_constraint_enforcement(bool enforced)
Update the ENFORCED/NOT ENFORCED state of the CHECK constraint.
Definition: parse_tree_column_attrs.h:159
 
virtual void apply_alter_info_flags(ulonglong *) const
Definition: parse_tree_column_attrs.h:115
 
virtual void apply_srid_modifier(std::optional< gis::srid_t > *) const
Definition: parse_tree_column_attrs.h:120
 
virtual bool apply_collation(Column_parse_context *, const CHARSET_INFO **to, bool *has_explicit_collation) const
Definition: parse_tree_column_attrs.h:121
 
virtual void apply_gen_default_value(Value_generator **)
Definition: parse_tree_column_attrs.h:118
 
Attr_type
Definition: parse_tree_column_attrs.h:90
 
@ AT_CONSTRAINT_ENFORCEMENT_ATTR
Definition: parse_tree_column_attrs.h:101
 
@ AT_SECONDARY_COLUMN_ATTR
Definition: parse_tree_column_attrs.h:95
 
@ AT_CHECK_CONSTRAINT_COLUMN_ATTR
Definition: parse_tree_column_attrs.h:100
 
@ AT_DEFAULT_COLUMN_ATTR
Definition: parse_tree_column_attrs.h:93
 
@ AT_UNIQUE_KEY_COLUMN_ATTR
Definition: parse_tree_column_attrs.h:98
 
@ AT_COMMENT_COLUMN_ATTR
Definition: parse_tree_column_attrs.h:102
 
@ AT_PRIMARY_KEY_COLUMN_ATTR
Definition: parse_tree_column_attrs.h:99
 
@ AT_GENERATED_DEFAULT_VAL_COLUMN_ATTR
Definition: parse_tree_column_attrs.h:94
 
@ AT_SERIAL_DEFAULT_VALUE_COLUMN_ATTR
Definition: parse_tree_column_attrs.h:105
 
@ AT_ON_UPDATE_COLUMN_ATTR
Definition: parse_tree_column_attrs.h:103
 
@ AT_NULL_COLUMN_ATTR
Definition: parse_tree_column_attrs.h:97
 
@ AT_NOT_NULL_COLUMN_ATTR
Definition: parse_tree_column_attrs.h:96
 
@ AT_AUTO_INCREMENT_COLUMN_ATTR
Definition: parse_tree_column_attrs.h:104
 
@ AT_COLUMN_FORMAT_COLUMN_ATTR
Definition: parse_tree_column_attrs.h:106
 
@ AT_COLUMN_VISIBILITY_ATTR
Definition: parse_tree_column_attrs.h:109
 
@ AT_STORAGE_MEDIA_COLUMN_ATTR
Definition: parse_tree_column_attrs.h:107
 
@ AT_COLLATE_COLUMN_ATTR
Definition: parse_tree_column_attrs.h:92
 
@ AT_SRID_COLUMN_ATTR
Definition: parse_tree_column_attrs.h:108
 
@ AT_NONE
Definition: parse_tree_column_attrs.h:91
 
virtual Attr_type attr_type() const
Definition: parse_tree_column_attrs.h:131
 
virtual void apply_on_update_value(Item **) const
Definition: parse_tree_column_attrs.h:119
 
virtual void apply_type_flags(ulong *) const
Definition: parse_tree_column_attrs.h:114
 
virtual void apply_comment(LEX_CSTRING *) const
Definition: parse_tree_column_attrs.h:116
 
virtual bool add_check_constraints(Sql_check_constraint_spec_list *check_const_list)
Definition: parse_tree_column_attrs.h:127
 
PT_column_attr_base()=default
 
virtual bool has_constraint_enforcement() const
Check for the [NOT] ENFORCED characteristic.
Definition: parse_tree_column_attrs.h:139
 
virtual void apply_default_value(Item **) const
Definition: parse_tree_column_attrs.h:117
 
Node for the VISIBLE|INVISIBLE column attribute.
Definition: parse_tree_column_attrs.h:582
 
PT_column_visibility_attr(bool is_visible)
Definition: parse_tree_column_attrs.h:584
 
enum Attr_type attr_type() const override
Definition: parse_tree_column_attrs.h:591
 
void apply_type_flags(unsigned long *type_flags) const override
Definition: parse_tree_column_attrs.h:586
 
const bool m_is_visible
Definition: parse_tree_column_attrs.h:596
 
Node for the [NOT] ENFORCED column attribute.
Definition: parse_tree_column_attrs.h:291
 
bool has_constraint_enforcement() const override
Check for the [NOT] ENFORCED characteristic.
Definition: parse_tree_column_attrs.h:296
 
PT_constraint_enforcement_attr(bool enforced)
Definition: parse_tree_column_attrs.h:293
 
bool is_constraint_enforced() const override
Check if constraint is enforced.
Definition: parse_tree_column_attrs.h:298
 
enum Attr_type attr_type() const override
Definition: parse_tree_column_attrs.h:300
 
const bool m_enforced
Definition: parse_tree_column_attrs.h:305
 
Node for the DATE type.
Definition: parse_tree_column_attrs.h:799
 
PT_date_type()
Definition: parse_tree_column_attrs.h:801
 
Node for the DEFAULT <expression> column attribute.
Definition: parse_tree_column_attrs.h:361
 
void apply_type_flags(ulong *type_flags) const override
Definition: parse_tree_column_attrs.h:376
 
void apply_default_value(Item **value) const override
Definition: parse_tree_column_attrs.h:368
 
PT_default_column_attr(Item *item)
Definition: parse_tree_column_attrs.h:367
 
bool contextualize(Column_parse_context *pc) override
Do all context-sensitive things and mark the node as contextualized.
Definition: parse_tree_column_attrs.h:369
 
enum Attr_type attr_type() const override
Definition: parse_tree_column_attrs.h:380
 
Item * item
Definition: parse_tree_column_attrs.h:364
 
PT_column_attr_base super
Definition: parse_tree_column_attrs.h:362
 
Definition: parse_tree_column_attrs.h:887
 
List< String > *const interval_list
Definition: parse_tree_column_attrs.h:888
 
const CHARSET_INFO * charset
Definition: parse_tree_column_attrs.h:889
 
const bool force_binary
Definition: parse_tree_column_attrs.h:890
 
List< String > * get_interval_list() const override
Definition: parse_tree_column_attrs.h:908
 
const CHARSET_INFO * get_charset() const override
Definition: parse_tree_column_attrs.h:904
 
ulong get_type_flags() const override
Definition: parse_tree_column_attrs.h:905
 
std::remove_const< decltype(PT_type::type)>::type Parent_type
Definition: parse_tree_column_attrs.h:892
 
PT_enum_type_tmpl(List< String > *interval_list, const CHARSET_INFO *charset, bool force_binary)
Definition: parse_tree_column_attrs.h:895
 
Base class for both generated and regular column definitions.
Definition: parse_tree_column_attrs.h:951
 
bool contextualize_attrs(Column_parse_context *pc, Mem_root_array< PT_column_attr_base * > *attrs)
Definition: parse_tree_column_attrs.h:1027
 
LEX_CSTRING comment
Definition: parse_tree_column_attrs.h:965
 
enum_field_types type
Definition: parse_tree_column_attrs.h:956
 
decltype(Alter_info::flags) alter_info_flags_t
Definition: parse_tree_column_attrs.h:953
 
Value_generator * gcol_info
Definition: parse_tree_column_attrs.h:968
 
const CHARSET_INFO * charset
Definition: parse_tree_column_attrs.h:960
 
List< String > * interval_list
Definition: parse_tree_column_attrs.h:963
 
const char * dec
Definition: parse_tree_column_attrs.h:959
 
bool has_explicit_collation
Definition: parse_tree_column_attrs.h:961
 
Item * on_update_value
Definition: parse_tree_column_attrs.h:967
 
std::optional< gis::srid_t > m_srid
Definition: parse_tree_column_attrs.h:971
 
const char * length
Definition: parse_tree_column_attrs.h:958
 
Parse_tree_node super
Definition: parse_tree_column_attrs.h:952
 
bool is_overridden(Mem_root_array< PT_column_attr_base * > *attrs, PT_column_attr_base *cand)
Definition: parse_tree_column_attrs.h:1006
 
PT_type * type_node
Definition: parse_tree_column_attrs.h:976
 
alter_info_flags_t alter_info_flags
Definition: parse_tree_column_attrs.h:964
 
Item * default_value
Definition: parse_tree_column_attrs.h:966
 
Value_generator * default_val_info
Holds the expression to generate default values.
Definition: parse_tree_column_attrs.h:970
 
bool contextualize(Parse_context *pc) override
Definition: parse_tree_column_attrs.h:989
 
Sql_check_constraint_spec_list * check_const_spec_list
Definition: parse_tree_column_attrs.h:973
 
ulong type_flags
Definition: parse_tree_column_attrs.h:957
 
PT_field_def_base(PT_type *type_node)
Definition: parse_tree_column_attrs.h:978
 
uint uint_geom_type
Definition: parse_tree_column_attrs.h:962
 
Base class for regular (non-generated) column definition nodes.
Definition: parse_tree_column_attrs.h:1070
 
PT_field_def_base super
Definition: parse_tree_column_attrs.h:1071
 
bool contextualize(Parse_context *pc_arg) override
Definition: parse_tree_column_attrs.h:1080
 
PT_field_def(PT_type *type_node_arg, Mem_root_array< PT_column_attr_base * > *opt_attrs)
Definition: parse_tree_column_attrs.h:1076
 
Mem_root_array< PT_column_attr_base * > * opt_attrs
Definition: parse_tree_column_attrs.h:1073
 
Node for the generated default value, column attribute.
Definition: parse_tree_column_attrs.h:542
 
Value_generator m_default_value_expression
Definition: parse_tree_column_attrs.h:574
 
void apply_gen_default_value(Value_generator **default_value_expression) override
Definition: parse_tree_column_attrs.h:551
 
PT_generated_default_val_column_attr(Item *expr)
Definition: parse_tree_column_attrs.h:546
 
PT_column_attr_base super
Definition: parse_tree_column_attrs.h:543
 
enum Attr_type attr_type() const override
Definition: parse_tree_column_attrs.h:569
 
bool contextualize(Column_parse_context *pc) override
Do all context-sensitive things and mark the node as contextualized.
Definition: parse_tree_column_attrs.h:556
 
Base class for generated column definition nodes.
Definition: parse_tree_column_attrs.h:1095
 
Item * expr
Definition: parse_tree_column_attrs.h:1099
 
Mem_root_array< PT_column_attr_base * > * opt_attrs
Definition: parse_tree_column_attrs.h:1100
 
PT_generated_field_def(PT_type *type_node_arg, Item *expr, Virtual_or_stored virtual_or_stored, Mem_root_array< PT_column_attr_base * > *opt_attrs)
Definition: parse_tree_column_attrs.h:1103
 
PT_field_def_base super
Definition: parse_tree_column_attrs.h:1096
 
const Virtual_or_stored virtual_or_stored
Definition: parse_tree_column_attrs.h:1098
 
bool contextualize(Parse_context *pc_arg) override
Definition: parse_tree_column_attrs.h:1111
 
Node for the JSON type.
Definition: parse_tree_column_attrs.h:940
 
PT_json_type()
Definition: parse_tree_column_attrs.h:942
 
const CHARSET_INFO * get_charset() const override
Definition: parse_tree_column_attrs.h:943
 
Node for the NOT NULL column attribute.
Definition: parse_tree_column_attrs.h:184
 
enum Attr_type attr_type() const override
Definition: parse_tree_column_attrs.h:189
 
void apply_type_flags(ulong *type_flags) const override
Definition: parse_tree_column_attrs.h:185
 
Node for the NULL column attribute.
Definition: parse_tree_column_attrs.h:169
 
enum Attr_type attr_type() const override
Definition: parse_tree_column_attrs.h:176
 
void apply_type_flags(ulong *type_flags) const override
Definition: parse_tree_column_attrs.h:171
 
Node for numeric types.
Definition: parse_tree_column_attrs.h:633
 
const char * get_dec() const override
Definition: parse_tree_column_attrs.h:679
 
PT_numeric_type(THD *thd, Numeric_type type_arg, const char *length, const char *dec, ulong options)
Definition: parse_tree_column_attrs.h:641
 
PT_numeric_type(THD *thd, Int_type type_arg, const char *length, ulong options)
Definition: parse_tree_column_attrs.h:660
 
std::remove_const< decltype(PT_type::type)>::type Parent_type
Definition: parse_tree_column_attrs.h:638
 
const char * dec
Definition: parse_tree_column_attrs.h:635
 
ulong get_type_flags() const override
Definition: parse_tree_column_attrs.h:675
 
const char * get_length() const override
Definition: parse_tree_column_attrs.h:678
 
ulong options
Definition: parse_tree_column_attrs.h:636
 
const char * length
Definition: parse_tree_column_attrs.h:634
 
Node for the UPDATE NOW[([<precision>])] column attribute.
Definition: parse_tree_column_attrs.h:388
 
PT_on_update_column_attr(uint8 precision)
Definition: parse_tree_column_attrs.h:395
 
enum Attr_type attr_type() const override
Definition: parse_tree_column_attrs.h:409
 
bool contextualize(Column_parse_context *pc) override
Do all context-sensitive things and mark the node as contextualized.
Definition: parse_tree_column_attrs.h:398
 
const uint8 precision
Definition: parse_tree_column_attrs.h:391
 
void apply_on_update_value(Item **value) const override
Definition: parse_tree_column_attrs.h:396
 
Item * item
Definition: parse_tree_column_attrs.h:392
 
PT_column_attr_base super
Definition: parse_tree_column_attrs.h:389
 
Node for the PRIMARY [KEY] column attribute.
Definition: parse_tree_column_attrs.h:231
 
void apply_alter_info_flags(ulonglong *flags) const override
Definition: parse_tree_column_attrs.h:237
 
void apply_type_flags(ulong *type_flags) const override
Definition: parse_tree_column_attrs.h:233
 
enum Attr_type attr_type() const override
Definition: parse_tree_column_attrs.h:241
 
Node for the NOT SECONDARY column attribute.
Definition: parse_tree_column_attrs.h:197
 
enum Attr_type attr_type() const override
Definition: parse_tree_column_attrs.h:203
 
void apply_type_flags(unsigned long *type_flags) const override
Definition: parse_tree_column_attrs.h:199
 
Node for the SERIAL DEFAULT VALUE column attribute.
Definition: parse_tree_column_attrs.h:442
 
void apply_alter_info_flags(ulonglong *flags) const override
Definition: parse_tree_column_attrs.h:449
 
PT_column_attr_base super
Definition: parse_tree_column_attrs.h:443
 
void apply_type_flags(ulong *type_flags) const override
Definition: parse_tree_column_attrs.h:446
 
bool contextualize(Column_parse_context *pc) override
Do all context-sensitive things and mark the node as contextualized.
Definition: parse_tree_column_attrs.h:452
 
enum Attr_type attr_type() const override
Definition: parse_tree_column_attrs.h:460
 
Definition: parse_tree_column_attrs.h:925
 
ulong get_type_flags() const override
Definition: parse_tree_column_attrs.h:929
 
PT_serial_type()
Definition: parse_tree_column_attrs.h:927
 
bool is_serial_type() const override
Definition: parse_tree_column_attrs.h:932
 
Node for spatial types.
Definition: parse_tree_column_attrs.h:872
 
const CHARSET_INFO * get_charset() const override
Definition: parse_tree_column_attrs.h:879
 
Field::geometry_type geo_type
Definition: parse_tree_column_attrs.h:873
 
uint get_uint_geom_type() const override
Definition: parse_tree_column_attrs.h:880
 
const char * get_length() const override
Definition: parse_tree_column_attrs.h:881
 
PT_spacial_type(Field::geometry_type geo_type)
Definition: parse_tree_column_attrs.h:876
 
Node for the SRID column attribute.
Definition: parse_tree_column_attrs.h:526
 
void apply_srid_modifier(std::optional< gis::srid_t > *srid) const override
Definition: parse_tree_column_attrs.h:534
 
enum Attr_type attr_type() const override
Definition: parse_tree_column_attrs.h:538
 
PT_srid_column_attr(gis::srid_t srid)
Definition: parse_tree_column_attrs.h:532
 
gis::srid_t m_srid
Definition: parse_tree_column_attrs.h:529
 
PT_column_attr_base super
Definition: parse_tree_column_attrs.h:527
 
Node for the TIME, TIMESTAMP and DATETIME types.
Definition: parse_tree_column_attrs.h:814
 
const char * dec
Definition: parse_tree_column_attrs.h:815
 
const char * get_dec() const override
Definition: parse_tree_column_attrs.h:823
 
PT_time_type(Time_type time_type, const char *dec)
Definition: parse_tree_column_attrs.h:820
 
std::remove_const< decltype(PT_type::type)>::type Parent_type
Definition: parse_tree_column_attrs.h:817
 
Node for the TIMESTAMP type.
Definition: parse_tree_column_attrs.h:831
 
ulong type_flags
Definition: parse_tree_column_attrs.h:835
 
PT_timestamp_type(const char *dec)
Definition: parse_tree_column_attrs.h:838
 
const char * dec
Definition: parse_tree_column_attrs.h:834
 
const char * get_dec() const override
Definition: parse_tree_column_attrs.h:841
 
ulong get_type_flags() const override
Definition: parse_tree_column_attrs.h:842
 
bool contextualize(Parse_context *pc) override
Definition: parse_tree_column_attrs.h:844
 
PT_type super
Definition: parse_tree_column_attrs.h:832
 
Base class for all column type nodes.
Definition: parse_tree_column_attrs.h:606
 
virtual bool is_serial_type() const
Definition: parse_tree_column_attrs.h:620
 
virtual ulong get_type_flags() const
Definition: parse_tree_column_attrs.h:614
 
virtual const char * get_length() const
Definition: parse_tree_column_attrs.h:615
 
virtual const CHARSET_INFO * get_charset() const
Definition: parse_tree_column_attrs.h:617
 
virtual List< String > * get_interval_list() const
Definition: parse_tree_column_attrs.h:619
 
const enum_field_types type
Definition: parse_tree_column_attrs.h:608
 
virtual uint get_uint_geom_type() const
Definition: parse_tree_column_attrs.h:618
 
virtual const char * get_dec() const
Definition: parse_tree_column_attrs.h:616
 
PT_type(enum_field_types type)
Definition: parse_tree_column_attrs.h:611
 
Node for the UNIQUE [KEY] column attribute.
Definition: parse_tree_column_attrs.h:211
 
enum Attr_type attr_type() const override
Definition: parse_tree_column_attrs.h:221
 
void apply_alter_info_flags(ulonglong *flags) const override
Definition: parse_tree_column_attrs.h:217
 
void apply_type_flags(ulong *type_flags) const override
Definition: parse_tree_column_attrs.h:213
 
Node for the YEAR type.
Definition: parse_tree_column_attrs.h:789
 
PT_year_type()
Definition: parse_tree_column_attrs.h:791
 
Base class for parse tree nodes (excluding the Parse_tree_root hierarchy)
Definition: parse_tree_node_base.h:139
 
virtual bool contextualize(Column_parse_context *pc)
Do all context-sensitive things and mark the node as contextualized.
Definition: parse_tree_node_base.h:187
 
This class represents a query block, aka a query specification, which is a query consisting of a SELE...
Definition: sql_lex.h:1160
 
Class to represent the check constraint specifications obtained from the SQL statement parse.
Definition: sql_check_constraint.h:43
 
Item * check_expr
Check constraint expression.
Definition: sql_check_constraint.h:80
 
bool is_enforced
Check constraint state (enforced/not enforced)
Definition: sql_check_constraint.h:86
 
LEX_STRING name
Name of the check constraint.
Definition: sql_check_constraint.h:77
 
@ SL_WARNING
Definition: sql_error.h:63
 
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:168
 
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:34
 
void syntax_error_at(const YYLTYPE &location)
Definition: sql_class.h:4418
 
LEX * lex
Definition: sql_class.h:981
 
System_variables variables
Definition: sql_lexer_thd.h:62
 
bool binlog_need_explicit_defaults_ts
The member is served for marking a query that CREATEs or ALTERs a table declared with a TIMESTAMP col...
Definition: sql_class.h:2592
 
MEM_ROOT * mem_root
Definition: sql_lexer_thd.h:38
 
Used for storing information associated with generated column, default values generated from expressi...
Definition: field.h:483
 
void set_field_stored(bool stored)
Definition: field.h:536
 
void set_field_type(enum_field_types fld_type)
Definition: field.h:519
 
Item * expr_item
Item representing the generation expression.
Definition: field.h:493
 
Mem_root_array< Sql_check_constraint_spec * > Sql_check_constraint_spec_list
Definition: dd_table.h:49
 
const char * ER_THD(const THD *thd, int mysql_errno)
Definition: derror.cc:103
 
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:222
 
This file contains the field type.
 
enum_field_types
Column types for MySQL.
Definition: field_types.h:53
 
@ MYSQL_TYPE_TIME2
Internal to MySQL.
Definition: field_types.h:73
 
@ MYSQL_TYPE_VARCHAR
Definition: field_types.h:69
 
@ MYSQL_TYPE_LONGLONG
Definition: field_types.h:62
 
@ MYSQL_TYPE_LONG_BLOB
Definition: field_types.h:83
 
@ MYSQL_TYPE_BLOB
Definition: field_types.h:84
 
@ MYSQL_TYPE_TINY
Definition: field_types.h:55
 
@ MYSQL_TYPE_SET
Definition: field_types.h:80
 
@ MYSQL_TYPE_JSON
Definition: field_types.h:77
 
@ MYSQL_TYPE_STRING
Definition: field_types.h:86
 
@ MYSQL_TYPE_ENUM
Definition: field_types.h:79
 
@ MYSQL_TYPE_TINY_BLOB
Definition: field_types.h:81
 
@ MYSQL_TYPE_BIT
Definition: field_types.h:70
 
@ MYSQL_TYPE_GEOMETRY
Definition: field_types.h:87
 
@ MYSQL_TYPE_MEDIUM_BLOB
Definition: field_types.h:82
 
@ MYSQL_TYPE_DATETIME2
Internal to MySQL.
Definition: field_types.h:72
 
@ MYSQL_TYPE_DATE
Definition: field_types.h:64
 
@ MYSQL_TYPE_TIMESTAMP2
Definition: field_types.h:71
 
@ MYSQL_TYPE_YEAR
Definition: field_types.h:67
 
bool merge_charset_and_collation(const CHARSET_INFO *charset, const CHARSET_INFO *collation, const CHARSET_INFO **to)
(end of group Runtime_Environment)
Definition: sql_parse.cc:7264
 
void my_error(int nr, myf MyFlags,...)
Fill in and print a previously registered error message.
Definition: my_error.cc:216
 
#define PRI_KEY_FLAG
Field is part of a primary key.
Definition: mysql_com.h:155
 
#define FIELD_FLAGS_COLUMN_FORMAT
Field column format, bit 24-25.
Definition: mysql_com.h:187
 
#define ZEROFILL_FLAG
Field is zerofill.
Definition: mysql_com.h:160
 
#define UNSIGNED_FLAG
Field is unsigned.
Definition: mysql_com.h:159
 
#define UNIQUE_FLAG
Intern: Used by sql_yacc.
Definition: mysql_com.h:173
 
#define AUTO_INCREMENT_FLAG
field is a autoincrement field
Definition: mysql_com.h:165
 
#define FIELD_FLAGS_COLUMN_FORMAT_MASK
Definition: mysql_com.h:188
 
#define NOT_NULL_FLAG
Field can't be NULL.
Definition: mysql_com.h:154
 
#define BINCMP_FLAG
Intern: Used by sql_yacc.
Definition: mysql_com.h:174
 
#define FIELD_IS_INVISIBLE
Field is explicitly marked as invisible by the user.
Definition: mysql_com.h:198
 
#define EXPLICIT_NULL_FLAG
Field is explicitly specified as \ NULL by the user.
Definition: mysql_com.h:190
 
#define FIELD_FLAGS_STORAGE_MEDIA_MASK
Definition: mysql_com.h:186
 
#define NOT_SECONDARY_FLAG
Field will not be loaded in secondary engine.
Definition: mysql_com.h:196
 
#define FIELD_FLAGS_STORAGE_MEDIA
Field storage media, bit 22-23.
Definition: mysql_com.h:185
 
static int flags[50]
Definition: hp_test1.cc:40
 
constexpr const LEX_CSTRING EMPTY_CSTR
Definition: lex_string.h:48
 
A better implementation of the UNIX ctype(3) library.
 
MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_bin
Definition: ctype-bin.cc:511
 
This file follows Google coding style, except for the name MEM_ROOT (which is kept for historical rea...
 
This file includes constants used by all storage engines.
 
ha_storage_media
Definition: my_base.h:115
 
Header for compiler-dependent features.
 
Some integer typedefs for easier portability.
 
unsigned long long int ulonglong
Definition: my_inttypes.h:56
 
uint8_t uint8
Definition: my_inttypes.h:63
 
#define MYF(v)
Definition: my_inttypes.h:97
 
Common header for many mysys elements.
 
Common definition between mysql server & client.
 
const char * collation
Definition: audit_api_message_emit.cc:184
 
std::uint32_t srid_t
A spatial reference system ID (SRID).
Definition: srid.h:33
 
Definition: options.cc:49
 
Blob_type
Definition: parse_tree_column_attrs.h:741
 
Enum_type
Definition: parse_tree_column_attrs.h:884
 
Char_type
Definition: parse_tree_column_attrs.h:709
 
PT_enum_type_tmpl< Enum_type::ENUM > PT_enum_type
Node for the ENUM type.
Definition: parse_tree_column_attrs.h:916
 
PT_enum_type_tmpl< Enum_type::SET > PT_set_type
Node for the SET type.
Definition: parse_tree_column_attrs.h:923
 
Time_type
Definition: parse_tree_column_attrs.h:804
 
void move_cf_appliers(Parse_context *tddlpc, Column_parse_context *cpc)
Definition: parse_tree_helpers.cc:437
 
Int_type
Definition: parser_yystype.h:246
 
Numeric_type
Definition: parser_yystype.h:254
 
Virtual_or_stored
Definition: parser_yystype.h:244
 
column_format_type
Definition: field.h:190
 
void push_warning(THD *thd, Sql_condition::enum_severity_level severity, uint code, const char *message_text)
Push the warning to error list if there is still room in the list.
Definition: sql_error.cc:654
 
case opt name
Definition: sslopt-case.h:33
 
Definition: m_ctype.h:385
 
Parse context for column type attribute specific parse tree nodes.
Definition: parse_tree_column_attrs.h:73
 
const bool is_generated
Owner column is a generated one.
Definition: parse_tree_column_attrs.h:74
 
std::vector< CreateFieldApplier > cf_appliers
Definition: parse_tree_column_attrs.h:75
 
Column_parse_context(THD *thd_arg, Query_block *select_arg, bool is_generated)
Definition: parse_tree_column_attrs.h:76
 
bool binlog_need_explicit_defaults_ts
Definition: sql_lex.h:4217
 
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
 
Query_block * select
Current Query_block object.
Definition: parse_tree_node_base.h:124
 
THD *const thd
Current thread handler.
Definition: parse_tree_node_base.h:122
 
MEM_ROOT * mem_root
Current MEM_ROOT.
Definition: parse_tree_node_base.h:123
 
Bison "location" class.
Definition: parse_location.h:43
 
unsigned int uint
Definition: uca9-dump.cc:75