1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-20052 Add a MEM_ROOT pointer argument to Type_handler::make_xxx_field()

This commit is contained in:
Alexander Barkov
2019-07-12 06:58:51 +04:00
parent 1517087b54
commit e6ff3f9d1c
17 changed files with 496 additions and 333 deletions

View File

@ -3472,7 +3472,8 @@ public:
This information is not available in the binary log, so
we assume that these fields are the same on the master and on the slave.
*/
virtual Field *make_conversion_table_field(TABLE *TABLE,
virtual Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table,
uint metadata,
const Field *target) const= 0;
virtual void show_binlog_type(const Conv_source &src, String *str) const;
@ -3566,15 +3567,18 @@ public:
{
return true; // Error
}
virtual Field *make_table_field(const LEX_CSTRING *name,
virtual Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const= 0;
Field *make_and_init_table_field(const LEX_CSTRING *name,
Field *make_and_init_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
virtual Field *make_schema_field(TABLE *table,
virtual Field *make_schema_field(MEM_ROOT *root,
TABLE *table,
const Record_addr &addr,
const ST_FIELD_INFO &def,
bool show_field) const
@ -3943,7 +3947,8 @@ public:
DBUG_ASSERT(0);
return NULL;
}
Field *make_conversion_table_field(TABLE *TABLE,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table,
uint metadata,
const Field *target) const
{
@ -3980,7 +3985,8 @@ public:
{
return false;
}
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const
@ -4385,7 +4391,8 @@ public:
}
bool subquery_type_allows_materialization(const Item *inner,
const Item *outer) const;
Field *make_schema_field(TABLE *table,
Field *make_schema_field(MEM_ROOT *root,
TABLE *table,
const Record_addr &addr,
const ST_FIELD_INFO &def,
bool show_field) const;
@ -4971,18 +4978,21 @@ public:
{
return Item_send_tiny(item, protocol, buf);
}
Field *make_conversion_table_field(TABLE *TABLE, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_fix_attributes(Column_definition *c) const;
bool Column_definition_prepare_stage2(Column_definition *c,
handler *file,
ulonglong table_flags) const
{ return Column_definition_prepare_stage2_legacy_num(c, MYSQL_TYPE_TINY); }
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
Field *make_schema_field(TABLE *table,
Field *make_schema_field(MEM_ROOT *root,
TABLE *table,
const Record_addr &addr,
const ST_FIELD_INFO &def,
bool show_field) const;
@ -5022,18 +5032,21 @@ public:
uint32 max_display_length_for_field(const Conv_source &src) const
{ return 6; }
uint32 calc_pack_length(uint32 length) const { return 2; }
Field *make_conversion_table_field(TABLE *TABLE, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_fix_attributes(Column_definition *c) const;
bool Column_definition_prepare_stage2(Column_definition *c,
handler *file,
ulonglong table_flags) const
{ return Column_definition_prepare_stage2_legacy_num(c, MYSQL_TYPE_SHORT); }
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
Field *make_schema_field(TABLE *table,
Field *make_schema_field(MEM_ROOT *root,
TABLE *table,
const Record_addr &addr,
const ST_FIELD_INFO &def,
bool show_field) const;
@ -5073,18 +5086,21 @@ public:
{
return Item_send_long(item, protocol, buf);
}
Field *make_conversion_table_field(TABLE *TABLE, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_fix_attributes(Column_definition *c) const;
bool Column_definition_prepare_stage2(Column_definition *c,
handler *file,
ulonglong table_flags) const
{ return Column_definition_prepare_stage2_legacy_num(c, MYSQL_TYPE_LONG); }
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
Field *make_schema_field(TABLE *table,
Field *make_schema_field(MEM_ROOT *root,
TABLE *table,
const Record_addr &addr,
const ST_FIELD_INFO &def,
bool show_field) const;
@ -5137,7 +5153,8 @@ public:
{
return Item_send_longlong(item, protocol, buf);
}
Field *make_conversion_table_field(TABLE *TABLE, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_fix_attributes(Column_definition *c) const;
bool Column_definition_prepare_stage2(Column_definition *c,
@ -5146,11 +5163,13 @@ public:
{
return Column_definition_prepare_stage2_legacy_num(c, MYSQL_TYPE_LONGLONG);
}
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
Field *make_schema_field(TABLE *table,
Field *make_schema_field(MEM_ROOT *root,
TABLE *table,
const Record_addr &addr,
const ST_FIELD_INFO &def,
bool show_field) const;
@ -5170,7 +5189,8 @@ class Type_handler_vers_trx_id: public Type_handler_longlong
{
public:
virtual ~Type_handler_vers_trx_id() {}
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -5201,14 +5221,16 @@ public:
uint32 max_display_length_for_field(const Conv_source &src) const
{ return 9; }
uint32 calc_pack_length(uint32 length) const { return 3; }
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *mem_root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_fix_attributes(Column_definition *c) const;
bool Column_definition_prepare_stage2(Column_definition *c,
handler *file,
ulonglong table_flags) const
{ return Column_definition_prepare_stage2_legacy_num(c, MYSQL_TYPE_INT24); }
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -5241,7 +5263,8 @@ public:
{
return Item_send_short(item, protocol, buf);
}
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_fix_attributes(Column_definition *c) const;
void Column_definition_reuse_fix_attributes(THD *thd,
@ -5251,7 +5274,8 @@ public:
handler *file,
ulonglong table_flags) const
{ return Column_definition_prepare_stage2_legacy_num(c, MYSQL_TYPE_YEAR); }
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -5296,7 +5320,8 @@ public:
return print_item_value_csstr(thd, item, str);
}
void show_binlog_type(const Conv_source &src, String *str) const;
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_fix_attributes(Column_definition *c) const;
bool Column_definition_prepare_stage1(THD *thd,
@ -5312,7 +5337,8 @@ public:
bool Column_definition_prepare_stage2(Column_definition *c,
handler *file,
ulonglong table_flags) const;
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -5350,18 +5376,21 @@ public:
return Item_send_float(item, protocol, buf);
}
Field *make_num_distinct_aggregator_field(MEM_ROOT *, const Item *) const;
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_fix_attributes(Column_definition *c) const;
bool Column_definition_prepare_stage2(Column_definition *c,
handler *file,
ulonglong table_flags) const
{ return Column_definition_prepare_stage2_legacy_real(c, MYSQL_TYPE_FLOAT); }
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
Field *make_schema_field(TABLE *table,
Field *make_schema_field(MEM_ROOT *root,
TABLE *table,
const Record_addr &addr,
const ST_FIELD_INFO &def,
bool show_field) const;
@ -5404,18 +5433,21 @@ public:
{
return Item_send_double(item, protocol, buf);
}
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_fix_attributes(Column_definition *c) const;
bool Column_definition_prepare_stage2(Column_definition *c,
handler *file,
ulonglong table_flags) const
{ return Column_definition_prepare_stage2_legacy_real(c, MYSQL_TYPE_DOUBLE); }
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
Field *make_schema_field(TABLE *table,
Field *make_schema_field(MEM_ROOT *root,
TABLE *table,
const Record_addr &addr,
const ST_FIELD_INFO &def,
bool show_field) const;
@ -5456,7 +5488,8 @@ public:
{
return MYSQL_TIMESTAMP_TIME;
}
Field *make_schema_field(TABLE *table,
Field *make_schema_field(MEM_ROOT *root,
TABLE *table,
const Record_addr &addr,
const ST_FIELD_INFO &def,
bool show_field) const;
@ -5536,13 +5569,15 @@ public:
uint32 max_display_length_for_field(const Conv_source &src) const
{ return MIN_TIME_WIDTH; }
uint32 calc_pack_length(uint32 length) const;
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_prepare_stage2(Column_definition *c,
handler *file,
ulonglong table_flags) const
{ return Column_definition_prepare_stage2_legacy(c, MYSQL_TYPE_TIME); }
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -5564,13 +5599,15 @@ public:
enum_field_types real_field_type() const { return MYSQL_TYPE_TIME2; }
uint32 max_display_length_for_field(const Conv_source &src) const;
uint32 calc_pack_length(uint32 length) const;
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_prepare_stage2(Column_definition *c,
handler *file,
ulonglong table_flags) const
{ return Column_definition_prepare_stage2_legacy(c, MYSQL_TYPE_TIME2); }
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -5635,7 +5672,8 @@ public:
{
return true;
}
Field *make_schema_field(TABLE *table,
Field *make_schema_field(MEM_ROOT *root,
TABLE *table,
const Record_addr &addr,
const ST_FIELD_INFO &def,
bool show_field) const;
@ -5668,13 +5706,15 @@ class Type_handler_date: public Type_handler_date_common
public:
virtual ~Type_handler_date() {}
uint32 calc_pack_length(uint32 length) const { return 4; }
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_prepare_stage2(Column_definition *c,
handler *file,
ulonglong table_flags) const
{ return Column_definition_prepare_stage2_legacy(c, MYSQL_TYPE_DATE); }
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -5694,13 +5734,15 @@ public:
virtual ~Type_handler_newdate() {}
enum_field_types real_field_type() const { return MYSQL_TYPE_NEWDATE; }
uint32 calc_pack_length(uint32 length) const { return 3; }
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_prepare_stage2(Column_definition *c,
handler *file,
ulonglong table_flags) const
{ return Column_definition_prepare_stage2_legacy(c, MYSQL_TYPE_NEWDATE); }
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -5739,7 +5781,8 @@ public:
{
return true;
}
Field *make_schema_field(TABLE *table,
Field *make_schema_field(MEM_ROOT *root,
TABLE *table,
const Record_addr &addr,
const ST_FIELD_INFO &def,
bool show_field) const;
@ -5790,13 +5833,15 @@ public:
uint32 max_display_length_for_field(const Conv_source &src) const
{ return MAX_DATETIME_WIDTH; }
uint32 calc_pack_length(uint32 length) const;
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_prepare_stage2(Column_definition *c,
handler *file,
ulonglong table_flags) const
{ return Column_definition_prepare_stage2_legacy(c, MYSQL_TYPE_DATETIME); }
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -5818,13 +5863,15 @@ public:
enum_field_types real_field_type() const { return MYSQL_TYPE_DATETIME2; }
uint32 max_display_length_for_field(const Conv_source &src) const;
uint32 calc_pack_length(uint32 length) const;
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_prepare_stage2(Column_definition *c,
handler *file,
ulonglong table_flags) const
{ return Column_definition_prepare_stage2_legacy(c, MYSQL_TYPE_DATETIME2); }
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -5928,13 +5975,15 @@ public:
uint32 max_display_length_for_field(const Conv_source &src) const
{ return MAX_DATETIME_WIDTH; }
uint32 calc_pack_length(uint32 length) const;
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_prepare_stage2(Column_definition *c,
handler *file,
ulonglong table_flags) const
{ return Column_definition_prepare_stage2_legacy_num(c, MYSQL_TYPE_TIMESTAMP); }
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -5956,7 +6005,8 @@ public:
enum_field_types real_field_type() const { return MYSQL_TYPE_TIMESTAMP2; }
uint32 max_display_length_for_field(const Conv_source &src) const;
uint32 calc_pack_length(uint32 length) const;
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_prepare_stage2(Column_definition *c,
handler *file,
@ -5964,7 +6014,8 @@ public:
{
return Column_definition_prepare_stage2_legacy_num(c, MYSQL_TYPE_TIMESTAMP2);
}
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -5990,14 +6041,16 @@ public:
const Type_handler *type_handler_for_tmp_table(const Item *item) const;
const Type_handler *type_handler_for_union(const Item *item) const;
void show_binlog_type(const Conv_source &src, String *str) const;
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_fix_attributes(Column_definition *c) const;
bool Column_definition_prepare_stage2(Column_definition *c,
handler *file,
ulonglong table_flags) const
{ return Column_definition_prepare_stage2_legacy_num(c, MYSQL_TYPE_DECIMAL); }
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -6021,7 +6074,8 @@ public:
uint32 max_display_length_for_field(const Conv_source &src) const;
uint32 calc_pack_length(uint32 length) const;
void show_binlog_type(const Conv_source &src, String *str) const;
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_fix_attributes(Column_definition *c) const;
bool Column_definition_prepare_stage1(THD *thd,
@ -6037,7 +6091,8 @@ public:
bool Column_definition_prepare_stage2(Column_definition *c,
handler *file,
ulonglong table_flags) const;
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -6072,7 +6127,8 @@ public:
bool binary_cmp) const;
bool Item_save_in_value(THD *thd, Item *item, st_value *value) const;
bool Item_send(Item *item, Protocol *protocol, st_value *buf) const;
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_fix_attributes(Column_definition *c) const;
bool Column_definition_prepare_stage1(THD *thd,
@ -6089,7 +6145,8 @@ public:
handler *file,
ulonglong table_flags) const
{ return Column_definition_prepare_stage2_legacy(c, MYSQL_TYPE_NULL); }
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -6128,7 +6185,8 @@ public:
return varstring_type_handler(item);
}
void show_binlog_type(const Conv_source &src, String *str) const;
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_fix_attributes(Column_definition *c) const;
bool Column_definition_prepare_stage2(Column_definition *c,
@ -6136,7 +6194,8 @@ public:
ulonglong table_flags) const;
bool Key_part_spec_init_ft(Key_part_spec *part,
const Column_definition &def) const;
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -6208,7 +6267,8 @@ public:
}
bool is_param_long_data_type() const { return true; }
void show_binlog_type(const Conv_source &src, String *str) const;
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_fix_attributes(Column_definition *c) const;
bool Column_definition_prepare_stage2(Column_definition *c,
@ -6216,11 +6276,13 @@ public:
ulonglong table_flags) const;
bool Key_part_spec_init_ft(Key_part_spec *part,
const Column_definition &def) const;
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
Field *make_schema_field(TABLE *table,
Field *make_schema_field(MEM_ROOT *root,
TABLE *table,
const Record_addr &addr,
const ST_FIELD_INFO &def,
bool show_field) const;
@ -6255,7 +6317,8 @@ public:
}
uint32 max_display_length_for_field(const Conv_source &src) const;
void show_binlog_type(const Conv_source &src, String *str) const;
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
enum_dynamic_column_type dyncol_type(const Type_all_attributes *attr) const
{
@ -6270,7 +6333,8 @@ class Type_handler_blob_common: public Type_handler_longstr
public:
virtual ~Type_handler_blob_common() { }
virtual uint length_bytes() const= 0;
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const override;
const Type_handler *type_handler_for_tmp_table(const Item *item) const
override
@ -6318,7 +6382,8 @@ public:
override;
void Item_param_setup_conversion(THD *thd, Item_param *) const override;
Field *make_schema_field(TABLE *table,
Field *make_schema_field(MEM_ROOT *root,
TABLE *table,
const Record_addr &addr,
const ST_FIELD_INFO &def,
bool show_field) const override;
@ -6342,7 +6407,8 @@ public:
enum_field_types field_type() const { return MYSQL_TYPE_TINY_BLOB; }
uint32 max_display_length_for_field(const Conv_source &src) const;
uint32 calc_pack_length(uint32 length) const;
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -6360,7 +6426,8 @@ public:
enum_field_types field_type() const { return MYSQL_TYPE_MEDIUM_BLOB; }
uint32 max_display_length_for_field(const Conv_source &src) const;
uint32 calc_pack_length(uint32 length) const;
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -6380,7 +6447,8 @@ public:
uint32 calc_pack_length(uint32 length) const;
Item *create_typecast_item(THD *thd, Item *item,
const Type_cast_attributes &attr) const;
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -6398,7 +6466,8 @@ public:
enum_field_types field_type() const { return MYSQL_TYPE_BLOB; }
uint32 max_display_length_for_field(const Conv_source &src) const;
uint32 calc_pack_length(uint32 length) const;
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -6415,7 +6484,8 @@ public:
}
uint32 max_display_length_for_field(const Conv_source &src) const;
void show_binlog_type(const Conv_source &src, String *str) const;
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
enum_dynamic_column_type dyncol_type(const Type_all_attributes *attr) const
{
@ -6469,13 +6539,15 @@ public:
return MYSQL_TYPE_ENUM;
}
uint32 calc_pack_length(uint32 length) const;
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_fix_attributes(Column_definition *c) const;
bool Column_definition_prepare_stage2(Column_definition *c,
handler *file,
ulonglong table_flags) const;
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;
@ -6486,7 +6558,8 @@ public:
const Bit_addr &bit,
const Column_definition_attributes *attr,
uint32 flags) const;
Field *make_schema_field(TABLE *table,
Field *make_schema_field(MEM_ROOT *root,
TABLE *table,
const Record_addr &addr,
const ST_FIELD_INFO &def,
bool show_field) const;
@ -6505,13 +6578,15 @@ public:
return MYSQL_TYPE_SET;
}
uint32 calc_pack_length(uint32 length) const;
Field *make_conversion_table_field(TABLE *, uint metadata,
Field *make_conversion_table_field(MEM_ROOT *root,
TABLE *table, uint metadata,
const Field *target) const;
bool Column_definition_fix_attributes(Column_definition *c) const;
bool Column_definition_prepare_stage2(Column_definition *c,
handler *file,
ulonglong table_flags) const;
Field *make_table_field(const LEX_CSTRING *name,
Field *make_table_field(MEM_ROOT *root,
const LEX_CSTRING *name,
const Record_addr &addr,
const Type_all_attributes &attr,
TABLE *table) const;