24#ifndef DD__COLUMN_IMPL_INCLUDED
25#define DD__COLUMN_IMPL_INCLUDED
51class Abstract_table_impl;
53class Open_dictionary_tables_ctx;
Definition: abstract_table_impl.h:58
Abstract base class for tables and views.
Definition: abstract_table.h:69
Definition: collection.h:44
size_t size() const
Definition: collection.h:229
Definition: column_impl.h:62
void set_generation_expression(const String_type &generation_expression) override
Definition: column_impl.h:298
std::optional< gis::srid_t > srs_id() const override
Definition: column_impl.h:425
bool is_numeric_scale_null() const override
Definition: column_impl.h:211
size_t elements_count() const override
Definition: column_impl.h:451
void set_default_option(const String_type &default_option) override
Definition: column_impl.h:332
static Column_impl * restore_item(Abstract_table_impl *table)
Definition: column_impl.h:480
Abstract_table_impl * m_table
Definition: column_impl.h:536
enum_column_key column_key() const override
Definition: column_impl.h:416
bool set_options(const String_type &options_raw) override
Definition: column_impl.h:370
bool is_default_value_utf8_null() const override
Definition: column_impl.h:277
const Properties & se_private_data() const override
Definition: column_impl.h:378
const String_type & column_type_utf8() const override
Definition: column_impl.h:443
bool is_unsigned() const override
Definition: column_impl.h:154
bool is_persistent() const override
Is dictionary object persistent in dictionary tables ?
Definition: column_impl.h:459
void set_column_type_utf8(const String_type &column_type_utf8) override
Definition: column_impl.h:447
size_t char_length() const override
Definition: column_impl.h:180
String_type m_update_option
Definition: column_impl.h:521
void set_has_no_default(bool has_no_default) override
Definition: column_impl.h:238
bool m_is_unsigned
Definition: column_impl.h:500
bool set_se_private_data(const String_type &se_private_data_raw) override
Definition: column_impl.h:388
void set_generation_expression_utf8(const String_type &generation_expression_utf8) override
Definition: column_impl.h:315
const String_type & generation_expression() const override
Definition: column_impl.h:294
bool m_is_nullable
Definition: column_impl.h:498
bool m_is_zerofill
Definition: column_impl.h:499
std::optional< gis::srid_t > m_srs_id
Definition: column_impl.h:549
Column_type_element * add_element() override
Definition: column_impl.cc:504
void set_name(const String_type &name) override
Definition: column_impl.h:465
const Properties & options() const override
Definition: column_impl.h:366
const String_type & name() const override
Definition: column_impl.h:462
bool is_datetime_precision_null() const override
Definition: column_impl.h:228
bool is_generation_expression_utf8_null() const override
Definition: column_impl.h:320
uint m_numeric_scale
Definition: column_impl.h:508
bool is_explicit_collation() const override
Definition: column_impl.h:130
void set_datetime_precision_null(bool is_null) override
Definition: column_impl.h:224
Properties & options() override
Definition: column_impl.h:368
bool is_auto_increment() const override
Definition: column_impl.h:164
bool validate() const override
Definition: column_impl.cc:137
const Entity_object_impl * impl() const override
Definition: column_impl.h:455
String_type m_default_value_utf8
Definition: column_impl.h:518
Object_id id() const override
The unique dictionary object id.
Definition: column_impl.h:458
enum_column_types m_type
Definition: column_impl.h:496
uint numeric_scale() const override
Definition: column_impl.h:200
Entity_object_impl * impl() override
Definition: column_impl.h:454
String_type m_column_type_utf8
Definition: column_impl.h:540
void set_hidden(enum_hidden_type hidden) override
Definition: column_impl.h:360
void set_default_value_utf8(const String_type &default_value_utf8) override
Definition: column_impl.h:267
bool store_children(Open_dictionary_tables_ctx *otx) override
Definition: column_impl.cc:178
void set_numeric_scale(uint numeric_scale) override
Definition: column_impl.h:202
String_type m_secondary_engine_attribute
Definition: column_impl.h:532
void set_srs_id(std::optional< gis::srid_t > srs_id) override
Definition: column_impl.h:421
void set_engine_attribute(LEX_CSTRING a) override
Definition: column_impl.h:396
bool m_numeric_scale_null
Definition: column_impl.h:509
Properties & se_private_data() override
Definition: column_impl.h:382
bool store_attributes(Raw_record *r) override
Definition: column_impl.cc:260
String_type m_generation_expression
Definition: column_impl.h:524
Column_impl()
Definition: column_impl.cc:75
Object_id collation_id() const override
Definition: column_impl.h:120
const String_type & default_option() const override
Definition: column_impl.h:328
Properties_impl m_se_private_data
Definition: column_impl.h:528
void set_numeric_precision(uint numeric_precision) override
Definition: column_impl.h:192
void set_type(enum_column_types type) override
Definition: column_impl.h:114
void set_comment(const String_type &comment) override
Definition: column_impl.h:352
uint numeric_precision() const override
Definition: column_impl.h:190
bool is_zerofill() const override
Definition: column_impl.h:146
uint ordinal_position() const override
Definition: column_impl.h:174
Properties_impl m_options
Definition: column_impl.h:527
bool deserialize(Sdi_rcontext *rctx, const RJ_Value &val) override
Re-establishes the state of *this by reading sdi information from the rapidjson DOM subobject provide...
Definition: column_impl.cc:387
bool m_is_explicit_collation
Definition: column_impl.h:545
void set_column_key(enum_column_key column_key) override
Definition: column_impl.h:412
void set_default_value_null(bool is_null) override
Definition: column_impl.h:253
const String_type & update_option() const override
Definition: column_impl.h:340
enum_column_key m_column_key
Definition: column_impl.h:547
void set_auto_increment(bool auto_increment) override
Definition: column_impl.h:166
uint m_datetime_precision
Definition: column_impl.h:510
Column_impl * clone(Abstract_table_impl *parent) const
Definition: column_impl.h:489
bool m_has_no_default
Definition: column_impl.h:513
bool m_is_virtual
Definition: column_impl.h:502
LEX_CSTRING secondary_engine_attribute() const override
Definition: column_impl.h:400
bool drop_children(Open_dictionary_tables_ctx *otx) const override
Definition: column_impl.cc:184
void set_unsigned(bool unsigned_flag) override
Definition: column_impl.h:156
const String_type & default_value_utf8() const override
Definition: column_impl.h:263
void set_update_option(const String_type &update_option) override
Definition: column_impl.h:342
String_type m_default_value
Definition: column_impl.h:516
const String_type & comment() const override
Definition: column_impl.h:350
LEX_CSTRING engine_attribute() const override
Definition: column_impl.h:392
void set_zerofill(bool zerofill) override
Definition: column_impl.h:148
bool restore_attributes(const Raw_record &r) override
Definition: column_impl.cc:195
uint m_datetime_precision_null
Definition: column_impl.h:511
String_type m_generation_expression_utf8
Definition: column_impl.h:525
bool m_default_value_utf8_null
Definition: column_impl.h:517
const Column_type_element_collection & elements() const override
Definition: column_impl.h:433
bool has_no_default() const override
Definition: column_impl.h:236
size_t m_char_length
Definition: column_impl.h:506
void set_ordinal_position(uint ordinal_position)
Definition: column_impl.h:95
void set_secondary_engine_attribute(LEX_CSTRING a) override
Definition: column_impl.h:404
uint m_numeric_precision
Definition: column_impl.h:507
bool is_nullable() const override
Definition: column_impl.h:138
void serialize(Sdi_wcontext *wctx, Sdi_writer *w) const override
Converts *this into json.
Definition: column_impl.cc:335
void set_nullable(bool nullable) override
Definition: column_impl.h:140
Column_type_element_collection m_elements
Definition: column_impl.h:538
String_type m_comment
Definition: column_impl.h:522
const String_type & default_value() const override
Definition: column_impl.h:246
enum_hidden_type hidden() const override
Definition: column_impl.h:358
void set_numeric_scale_null(bool is_null) override
Definition: column_impl.h:207
void set_is_explicit_collation(bool is_explicit_collation) override
Definition: column_impl.h:126
bool is_virtual() const override
Definition: column_impl.h:286
void set_default_value_utf8_null(bool is_null) override
Definition: column_impl.h:272
bool m_is_auto_increment
Definition: column_impl.h:501
static Column_impl * clone(const Column_impl &other, Abstract_table_impl *table)
Definition: column_impl.h:484
const Abstract_table & table() const override
Definition: column_impl.cc:131
static void register_tables(Open_dictionary_tables_ctx *otx)
Definition: column_impl.cc:564
String_type m_engine_attribute
Definition: column_impl.h:531
void set_collation_id(Object_id collation_id) override
Definition: column_impl.h:122
void set_virtual(bool is_virtual) override
Definition: column_impl.h:288
bool restore_children(Open_dictionary_tables_ctx *otx) override
Definition: column_impl.cc:163
enum_hidden_type m_hidden
Definition: column_impl.h:503
void set_datetime_precision(uint datetime_precision) override
Definition: column_impl.h:219
bool set_se_private_data(const Properties &se_private_data) override
Definition: column_impl.h:384
const String_type & generation_expression_utf8() const override
Definition: column_impl.h:311
uint datetime_precision() const override
Definition: column_impl.h:217
bool is_generation_expression_null() const override
Definition: column_impl.h:303
String_type m_default_option
Definition: column_impl.h:520
uint m_ordinal_position
Definition: column_impl.h:505
bool is_array() const override
Definition: column_impl.h:469
const Object_table & object_table() const override
Definition: column_impl.cc:558
void debug_print(String_type &outb) const override
Definition: column_impl.cc:443
bool m_default_value_null
Definition: column_impl.h:515
enum_column_types type() const override
Definition: column_impl.h:112
void set_char_length(size_t char_length) override
Definition: column_impl.h:182
void set_default_value(const String_type &default_value) override
Definition: column_impl.h:248
bool is_default_value_null() const override
Definition: column_impl.h:257
Object_id m_collation_id
Definition: column_impl.h:544
Definition: column_type_element.h:44
enum_hidden_type
Definition: column.h:96
enum_column_key
Definition: column.h:94
Definition: entity_object_impl.h:44
void set_name(const String_type &name) override
Definition: entity_object_impl.h:62
Object_id id() const override
The unique dictionary object id.
Definition: entity_object_impl.h:49
const String_type & name() const override
Definition: entity_object_impl.h:60
Entity_object_impl * impl() override
Definition: entity_object_impl.h:68
bool is_persistent() const override
Is dictionary object persistent in dictionary tables ?
Definition: entity_object_impl.h:57
This class represents all data dictionary table like mysql.tables, mysql.columns and more.
Definition: object_table.h:72
Auxiliary class for opening dictionary tables.
Definition: transaction_impl.h:76
The Properties_impl class implements the Properties interface.
Definition: properties_impl.h:77
bool insert_values(const Properties &properties) override
Insert key/value pairs from a different property object.
Definition: properties_impl.cc:104
The Properties class defines an interface for storing key=value pairs, where both key and value may b...
Definition: properties.h:74
Definition: raw_record.h:46
Opaque context which keeps reusable resoureces needed during deserialization.
Definition: sdi.cc:231
Opaque context which keeps reusable resources needed during serialization.
Definition: sdi.cc:129
constexpr value_type zerofill
Definition: classic_protocol_constants.h:274
constexpr value_type auto_increment
Definition: classic_protocol_constants.h:277
The version of the current data dictionary table definitions.
Definition: dictionary_client.h:43
RJ_Writer Sdi_writer
Alias for the rapidjson Writer type to use in serialization.
Definition: sdi_fwd.h:64
unsigned long long Object_id
Definition: object_id.h:31
enum_column_types
Definition: column.h:53
rapidjson::GenericValue< RJ_Encoding, RJ_Allocator > RJ_Value
Definition: sdi_fwd.h:49
Char_string_template< String_type_allocator > String_type
Definition: string_type.h:51
static mysql_service_status_t get(THD **thd) noexcept
Definition: mysql_current_thread_reader_all_empty.cc:31
static int exists(node_address *name, node_list const *nodes, u_int with_uid)
Definition: node_list.cc:106
const mysql_service_registry_t * r
Definition: pfs_example_plugin_employee.cc:86
This header provides Rapidjson Type Aliases.
MYSQL_LEX_CSTRING lex_cstring_handle(const STDSTRINGLIKE_TYPE &s)
Return a LEX_CSTRING handle to a std::string like (meaning something which has the c_str() and length...
Definition: strfunc.h:77
Definition: mysql_lex_string.h:40
const char * str
Definition: mysql_lex_string.h:41
size_t length
Definition: mysql_lex_string.h:42