23#ifndef DD__COLUMN_IMPL_INCLUDED
24#define DD__COLUMN_IMPL_INCLUDED
50class Abstract_table_impl;
52class Open_dictionary_tables_ctx;
Definition: abstract_table_impl.h:57
Abstract base class for tables and views.
Definition: abstract_table.h:68
Definition: collection.h:43
size_t size() const
Definition: collection.h:228
Definition: column_impl.h:61
void set_generation_expression(const String_type &generation_expression) override
Definition: column_impl.h:297
std::optional< gis::srid_t > srs_id() const override
Definition: column_impl.h:424
bool is_numeric_scale_null() const override
Definition: column_impl.h:210
size_t elements_count() const override
Definition: column_impl.h:450
void set_default_option(const String_type &default_option) override
Definition: column_impl.h:331
static Column_impl * restore_item(Abstract_table_impl *table)
Definition: column_impl.h:479
Abstract_table_impl * m_table
Definition: column_impl.h:535
enum_column_key column_key() const override
Definition: column_impl.h:415
bool set_options(const String_type &options_raw) override
Definition: column_impl.h:369
bool is_default_value_utf8_null() const override
Definition: column_impl.h:276
const Properties & se_private_data() const override
Definition: column_impl.h:377
const String_type & column_type_utf8() const override
Definition: column_impl.h:442
bool is_unsigned() const override
Definition: column_impl.h:153
bool is_persistent() const override
Is dictionary object persistent in dictionary tables ?
Definition: column_impl.h:458
void set_column_type_utf8(const String_type &column_type_utf8) override
Definition: column_impl.h:446
size_t char_length() const override
Definition: column_impl.h:179
String_type m_update_option
Definition: column_impl.h:520
void set_has_no_default(bool has_no_default) override
Definition: column_impl.h:237
bool m_is_unsigned
Definition: column_impl.h:499
bool set_se_private_data(const String_type &se_private_data_raw) override
Definition: column_impl.h:387
void set_generation_expression_utf8(const String_type &generation_expression_utf8) override
Definition: column_impl.h:314
const String_type & generation_expression() const override
Definition: column_impl.h:293
bool m_is_nullable
Definition: column_impl.h:497
bool m_is_zerofill
Definition: column_impl.h:498
std::optional< gis::srid_t > m_srs_id
Definition: column_impl.h:548
Column_type_element * add_element() override
Definition: column_impl.cc:504
void set_name(const String_type &name) override
Definition: column_impl.h:464
const Properties & options() const override
Definition: column_impl.h:365
const String_type & name() const override
Definition: column_impl.h:461
bool is_datetime_precision_null() const override
Definition: column_impl.h:227
bool is_generation_expression_utf8_null() const override
Definition: column_impl.h:319
uint m_numeric_scale
Definition: column_impl.h:507
bool is_explicit_collation() const override
Definition: column_impl.h:129
void set_datetime_precision_null(bool is_null) override
Definition: column_impl.h:223
Properties & options() override
Definition: column_impl.h:367
bool is_auto_increment() const override
Definition: column_impl.h:163
bool validate() const override
Definition: column_impl.cc:137
const Entity_object_impl * impl() const override
Definition: column_impl.h:454
String_type m_default_value_utf8
Definition: column_impl.h:517
Object_id id() const override
The unique dictionary object id.
Definition: column_impl.h:457
enum_column_types m_type
Definition: column_impl.h:495
uint numeric_scale() const override
Definition: column_impl.h:199
Entity_object_impl * impl() override
Definition: column_impl.h:453
String_type m_column_type_utf8
Definition: column_impl.h:539
void set_hidden(enum_hidden_type hidden) override
Definition: column_impl.h:359
void set_default_value_utf8(const String_type &default_value_utf8) override
Definition: column_impl.h:266
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:201
String_type m_secondary_engine_attribute
Definition: column_impl.h:531
void set_srs_id(std::optional< gis::srid_t > srs_id) override
Definition: column_impl.h:420
void set_engine_attribute(LEX_CSTRING a) override
Definition: column_impl.h:395
bool m_numeric_scale_null
Definition: column_impl.h:508
Properties & se_private_data() override
Definition: column_impl.h:381
bool store_attributes(Raw_record *r) override
Definition: column_impl.cc:260
String_type m_generation_expression
Definition: column_impl.h:523
Column_impl()
Definition: column_impl.cc:75
Object_id collation_id() const override
Definition: column_impl.h:119
const String_type & default_option() const override
Definition: column_impl.h:327
Properties_impl m_se_private_data
Definition: column_impl.h:527
void set_numeric_precision(uint numeric_precision) override
Definition: column_impl.h:191
void set_type(enum_column_types type) override
Definition: column_impl.h:113
void set_comment(const String_type &comment) override
Definition: column_impl.h:351
uint numeric_precision() const override
Definition: column_impl.h:189
bool is_zerofill() const override
Definition: column_impl.h:145
uint ordinal_position() const override
Definition: column_impl.h:173
Properties_impl m_options
Definition: column_impl.h:526
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:544
void set_column_key(enum_column_key column_key) override
Definition: column_impl.h:411
void set_default_value_null(bool is_null) override
Definition: column_impl.h:252
const String_type & update_option() const override
Definition: column_impl.h:339
enum_column_key m_column_key
Definition: column_impl.h:546
void set_auto_increment(bool auto_increment) override
Definition: column_impl.h:165
uint m_datetime_precision
Definition: column_impl.h:509
Column_impl * clone(Abstract_table_impl *parent) const
Definition: column_impl.h:488
bool m_has_no_default
Definition: column_impl.h:512
bool m_is_virtual
Definition: column_impl.h:501
LEX_CSTRING secondary_engine_attribute() const override
Definition: column_impl.h:399
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:155
const String_type & default_value_utf8() const override
Definition: column_impl.h:262
void set_update_option(const String_type &update_option) override
Definition: column_impl.h:341
String_type m_default_value
Definition: column_impl.h:515
const String_type & comment() const override
Definition: column_impl.h:349
LEX_CSTRING engine_attribute() const override
Definition: column_impl.h:391
void set_zerofill(bool zerofill) override
Definition: column_impl.h:147
bool restore_attributes(const Raw_record &r) override
Definition: column_impl.cc:195
uint m_datetime_precision_null
Definition: column_impl.h:510
String_type m_generation_expression_utf8
Definition: column_impl.h:524
bool m_default_value_utf8_null
Definition: column_impl.h:516
const Column_type_element_collection & elements() const override
Definition: column_impl.h:432
bool has_no_default() const override
Definition: column_impl.h:235
size_t m_char_length
Definition: column_impl.h:505
void set_ordinal_position(uint ordinal_position)
Definition: column_impl.h:94
void set_secondary_engine_attribute(LEX_CSTRING a) override
Definition: column_impl.h:403
uint m_numeric_precision
Definition: column_impl.h:506
bool is_nullable() const override
Definition: column_impl.h:137
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:139
Column_type_element_collection m_elements
Definition: column_impl.h:537
String_type m_comment
Definition: column_impl.h:521
const String_type & default_value() const override
Definition: column_impl.h:245
enum_hidden_type hidden() const override
Definition: column_impl.h:357
void set_numeric_scale_null(bool is_null) override
Definition: column_impl.h:206
void set_is_explicit_collation(bool is_explicit_collation) override
Definition: column_impl.h:125
bool is_virtual() const override
Definition: column_impl.h:285
void set_default_value_utf8_null(bool is_null) override
Definition: column_impl.h:271
bool m_is_auto_increment
Definition: column_impl.h:500
static Column_impl * clone(const Column_impl &other, Abstract_table_impl *table)
Definition: column_impl.h:483
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:530
void set_collation_id(Object_id collation_id) override
Definition: column_impl.h:121
void set_virtual(bool is_virtual) override
Definition: column_impl.h:287
bool restore_children(Open_dictionary_tables_ctx *otx) override
Definition: column_impl.cc:163
enum_hidden_type m_hidden
Definition: column_impl.h:502
void set_datetime_precision(uint datetime_precision) override
Definition: column_impl.h:218
bool set_se_private_data(const Properties &se_private_data) override
Definition: column_impl.h:383
const String_type & generation_expression_utf8() const override
Definition: column_impl.h:310
uint datetime_precision() const override
Definition: column_impl.h:216
bool is_generation_expression_null() const override
Definition: column_impl.h:302
String_type m_default_option
Definition: column_impl.h:519
uint m_ordinal_position
Definition: column_impl.h:504
bool is_array() const override
Definition: column_impl.h:468
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:514
enum_column_types type() const override
Definition: column_impl.h:111
void set_char_length(size_t char_length) override
Definition: column_impl.h:181
void set_default_value(const String_type &default_value) override
Definition: column_impl.h:247
bool is_default_value_null() const override
Definition: column_impl.h:256
Object_id m_collation_id
Definition: column_impl.h:543
Definition: column_type_element.h:43
enum_hidden_type
Definition: column.h:94
enum_column_key
Definition: column.h:92
Definition: entity_object_impl.h:43
void set_name(const String_type &name) override
Definition: entity_object_impl.h:61
Object_id id() const override
The unique dictionary object id.
Definition: entity_object_impl.h:48
const String_type & name() const override
Definition: entity_object_impl.h:59
Entity_object_impl * impl() override
Definition: entity_object_impl.h:67
bool is_persistent() const override
Is dictionary object persistent in dictionary tables ?
Definition: entity_object_impl.h:56
This class represents all data dictionary table like mysql.tables, mysql.columns and more.
Definition: object_table.h:71
Auxiliary class for opening dictionary tables.
Definition: transaction_impl.h:75
The Properties_impl class implements the Properties interface.
Definition: properties_impl.h:76
bool insert_values(const Properties &properties) override
Insert key/value pairs from a different property object.
Definition: properties_impl.cc:103
The Properties class defines an interface for storing key=value pairs, where both key and value may b...
Definition: properties.h:73
Definition: raw_record.h:45
Opaque context which keeps reusable resoureces needed during deserialization.
Definition: sdi.cc:230
Opaque context which keeps reusable resources needed during serialization.
Definition: sdi.cc:128
constexpr value_type zerofill
Definition: classic_protocol_constants.h:271
constexpr value_type auto_increment
Definition: classic_protocol_constants.h:274
The version of the current data dictionary table definitions.
Definition: dictionary_client.h:42
RJ_Writer Sdi_writer
Alias for the rapidjson Writer type to use in serialization.
Definition: sdi_fwd.h:63
unsigned long long Object_id
Definition: object_id.h:30
enum_column_types
Definition: column.h:52
rapidjson::GenericValue< RJ_Encoding, RJ_Allocator > RJ_Value
Definition: sdi_fwd.h:48
Char_string_template< String_type_allocator > String_type
Definition: string_type.h:50
static mysql_service_status_t get(reference_caching_cache cache, unsigned service_name_index, const my_h_service **refs) noexcept
Definition: component.cc:113
static int exists(node_address *name, node_list const *nodes, u_int with_uid)
Definition: node_list.cc:105
const mysql_service_registry_t * r
Definition: pfs_example_plugin_employee.cc:85
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:72
Definition: mysql_lex_string.h:39
const char * str
Definition: mysql_lex_string.h:40
size_t length
Definition: mysql_lex_string.h:41
unsigned int uint
Definition: uca-dump.cc:29