24#ifndef DD__FOREIGN_KEY_IMPL_INCLUDED
25#define DD__FOREIGN_KEY_IMPL_INCLUDED
47class Open_dictionary_tables_ctx;
254 fk2->
name().c_str()) < 0);
Definition: collection.h:44
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
virtual const String_type & name() const =0
Definition: foreign_key_element.h:45
Definition: foreign_key_impl.h:57
Foreign_key_element * add_element() override
Definition: foreign_key_impl.cc:294
static Foreign_key_impl * clone(const Foreign_key_impl &other, Table_impl *table)
Definition: foreign_key_impl.h:219
Foreign_key_elements m_elements
Definition: foreign_key_impl.h:239
void set_unique_constraint_name(const String_type &name) override
Definition: foreign_key_impl.h:118
Entity_object_impl * impl() override
Definition: foreign_key_impl.h:199
void set_match_option(enum_match_option match_option) override
Definition: foreign_key_impl.h:128
void set_name(const String_type &name) override
Definition: foreign_key_impl.h:210
Table_impl * m_table
Definition: foreign_key_impl.h:235
String_type m_referenced_table_name
Definition: foreign_key_impl.h:233
Foreign_key_elements * elements() override
Definition: foreign_key_impl.h:196
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: foreign_key_impl.cc:249
void set_update_rule(enum_rule update_rule) override
Definition: foreign_key_impl.h:138
enum_rule m_update_rule
Definition: foreign_key_impl.h:226
bool validate() const override
Definition: foreign_key_impl.cc:123
Foreign_key_impl * clone(Table_impl *parent) const
Definition: foreign_key_impl.h:242
const String_type & referenced_table_name() const override
Definition: foreign_key_impl.h:180
bool store_children(Open_dictionary_tables_ctx *otx) override
Definition: foreign_key_impl.cc:161
String_type m_referenced_table_schema_name
Definition: foreign_key_impl.h:232
static Foreign_key_impl * restore_item(Table_impl *table)
Definition: foreign_key_impl.h:215
bool restore_attributes(const Raw_record &r) override
Definition: foreign_key_impl.cc:175
const String_type & unique_constraint_name() const override
Definition: foreign_key_impl.h:114
void set_ordinal_position(uint)
Definition: foreign_key_impl.h:93
bool is_persistent() const override
Is dictionary object persistent in dictionary tables ?
Definition: foreign_key_impl.h:204
String_type m_referenced_table_catalog_name
Definition: foreign_key_impl.h:231
void set_delete_rule(enum_rule delete_rule) override
Definition: foreign_key_impl.h:148
void set_referenced_table_schema_name(const String_type &name) override
Definition: foreign_key_impl.h:172
static void register_tables(Open_dictionary_tables_ctx *otx)
Definition: foreign_key_impl.cc:327
void set_referenced_table_name(const String_type &name) override
Definition: foreign_key_impl.h:184
void debug_print(String_type &outb) const override
Definition: foreign_key_impl.cc:268
void set_referenced_table_catalog_name(const String_type &name) override
Definition: foreign_key_impl.h:160
enum_rule m_delete_rule
Definition: foreign_key_impl.h:227
enum_rule delete_rule() const override
Definition: foreign_key_impl.h:146
enum_match_option m_match_option
Definition: foreign_key_impl.h:225
bool store_attributes(Raw_record *r) override
Definition: foreign_key_impl.cc:202
const String_type & referenced_table_catalog_name() const override
Definition: foreign_key_impl.h:156
enum_match_option match_option() const override
Definition: foreign_key_impl.h:126
bool restore_children(Open_dictionary_tables_ctx *otx) override
Definition: foreign_key_impl.cc:153
const Table & table() const override
Definition: foreign_key_impl.cc:85
const String_type & referenced_table_schema_name() const override
Definition: foreign_key_impl.h:168
~Foreign_key_impl() override=default
const Foreign_key_elements & elements() const override
Definition: foreign_key_impl.h:194
virtual uint ordinal_position() const
Definition: foreign_key_impl.h:95
void serialize(Sdi_wcontext *wctx, Sdi_writer *w) const override
Converts *this into json.
Definition: foreign_key_impl.cc:225
const Object_table & object_table() const override
Definition: foreign_key_impl.cc:321
String_type m_unique_constraint_name
Definition: foreign_key_impl.h:229
const String_type & name() const override
Definition: foreign_key_impl.h:207
bool drop_children(Open_dictionary_tables_ctx *otx) const override
Definition: foreign_key_impl.cc:167
Object_id id() const override
The unique dictionary object id.
Definition: foreign_key_impl.h:203
enum_rule update_rule() const override
Definition: foreign_key_impl.h:136
Foreign_key_impl()
Definition: foreign_key_impl.cc:69
const Table_impl & table_impl() const
Definition: foreign_key_impl.h:106
bool store(Open_dictionary_tables_ctx *otx) override
Store the DD object into DD table.
Definition: foreign_key_impl.cc:108
Table_impl & table_impl()
Definition: foreign_key_impl.h:108
const Entity_object_impl * impl() const override
Definition: foreign_key_impl.h:200
Definition: foreign_key.h:47
enum_match_option
Definition: foreign_key.h:62
enum_rule
Definition: foreign_key.h:54
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
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
Definition: table_impl.h:68
A better implementation of the UNIX ctype(3) library.
int my_strcasecmp(const CHARSET_INFO *cs, const char *s1, const char *s2)
Definition: m_ctype.h:653
MYSQL_PLUGIN_IMPORT CHARSET_INFO * system_charset_info
Definition: mysqld.cc:1542
Functions related to handling of plugins and other dynamically loaded libraries.
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
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
const mysql_service_registry_t * r
Definition: pfs_example_plugin_employee.cc:86
This header provides Rapidjson Type Aliases.
Class used to sort Foreign key's by name for the same table.
Definition: foreign_key_impl.h:250
bool operator()(const dd::Foreign_key *fk1, const dd::Foreign_key *fk2) const
Definition: foreign_key_impl.h:251