23#ifndef DD__FOREIGN_KEY_IMPL_INCLUDED
24#define DD__FOREIGN_KEY_IMPL_INCLUDED
46class Open_dictionary_tables_ctx;
253 fk2->
name().c_str()) < 0);
Definition: collection.h:43
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
virtual const String_type & name() const =0
Definition: foreign_key_element.h:44
Definition: foreign_key_impl.h:56
Foreign_key_element * add_element() override
Definition: foreign_key_impl.cc:293
static Foreign_key_impl * clone(const Foreign_key_impl &other, Table_impl *table)
Definition: foreign_key_impl.h:218
Foreign_key_elements m_elements
Definition: foreign_key_impl.h:238
void set_unique_constraint_name(const String_type &name) override
Definition: foreign_key_impl.h:117
Entity_object_impl * impl() override
Definition: foreign_key_impl.h:198
void set_match_option(enum_match_option match_option) override
Definition: foreign_key_impl.h:127
void set_name(const String_type &name) override
Definition: foreign_key_impl.h:209
Table_impl * m_table
Definition: foreign_key_impl.h:234
String_type m_referenced_table_name
Definition: foreign_key_impl.h:232
Foreign_key_elements * elements() override
Definition: foreign_key_impl.h:195
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:248
void set_update_rule(enum_rule update_rule) override
Definition: foreign_key_impl.h:137
enum_rule m_update_rule
Definition: foreign_key_impl.h:225
bool validate() const override
Definition: foreign_key_impl.cc:122
Foreign_key_impl * clone(Table_impl *parent) const
Definition: foreign_key_impl.h:241
const String_type & referenced_table_name() const override
Definition: foreign_key_impl.h:179
bool store_children(Open_dictionary_tables_ctx *otx) override
Definition: foreign_key_impl.cc:160
String_type m_referenced_table_schema_name
Definition: foreign_key_impl.h:231
static Foreign_key_impl * restore_item(Table_impl *table)
Definition: foreign_key_impl.h:214
bool restore_attributes(const Raw_record &r) override
Definition: foreign_key_impl.cc:174
const String_type & unique_constraint_name() const override
Definition: foreign_key_impl.h:113
void set_ordinal_position(uint)
Definition: foreign_key_impl.h:92
bool is_persistent() const override
Is dictionary object persistent in dictionary tables ?
Definition: foreign_key_impl.h:203
String_type m_referenced_table_catalog_name
Definition: foreign_key_impl.h:230
void set_delete_rule(enum_rule delete_rule) override
Definition: foreign_key_impl.h:147
void set_referenced_table_schema_name(const String_type &name) override
Definition: foreign_key_impl.h:171
static void register_tables(Open_dictionary_tables_ctx *otx)
Definition: foreign_key_impl.cc:326
void set_referenced_table_name(const String_type &name) override
Definition: foreign_key_impl.h:183
void debug_print(String_type &outb) const override
Definition: foreign_key_impl.cc:267
void set_referenced_table_catalog_name(const String_type &name) override
Definition: foreign_key_impl.h:159
enum_rule m_delete_rule
Definition: foreign_key_impl.h:226
enum_rule delete_rule() const override
Definition: foreign_key_impl.h:145
enum_match_option m_match_option
Definition: foreign_key_impl.h:224
bool store_attributes(Raw_record *r) override
Definition: foreign_key_impl.cc:201
const String_type & referenced_table_catalog_name() const override
Definition: foreign_key_impl.h:155
enum_match_option match_option() const override
Definition: foreign_key_impl.h:125
bool restore_children(Open_dictionary_tables_ctx *otx) override
Definition: foreign_key_impl.cc:152
const Table & table() const override
Definition: foreign_key_impl.cc:84
const String_type & referenced_table_schema_name() const override
Definition: foreign_key_impl.h:167
~Foreign_key_impl() override=default
const Foreign_key_elements & elements() const override
Definition: foreign_key_impl.h:193
virtual uint ordinal_position() const
Definition: foreign_key_impl.h:94
void serialize(Sdi_wcontext *wctx, Sdi_writer *w) const override
Converts *this into json.
Definition: foreign_key_impl.cc:224
const Object_table & object_table() const override
Definition: foreign_key_impl.cc:320
String_type m_unique_constraint_name
Definition: foreign_key_impl.h:228
const String_type & name() const override
Definition: foreign_key_impl.h:206
bool drop_children(Open_dictionary_tables_ctx *otx) const override
Definition: foreign_key_impl.cc:166
Object_id id() const override
The unique dictionary object id.
Definition: foreign_key_impl.h:202
enum_rule update_rule() const override
Definition: foreign_key_impl.h:135
Foreign_key_impl()
Definition: foreign_key_impl.cc:68
const Table_impl & table_impl() const
Definition: foreign_key_impl.h:105
bool store(Open_dictionary_tables_ctx *otx) override
Store the DD object into DD table.
Definition: foreign_key_impl.cc:107
Table_impl & table_impl()
Definition: foreign_key_impl.h:107
const Entity_object_impl * impl() const override
Definition: foreign_key_impl.h:199
Definition: foreign_key.h:46
enum_match_option
Definition: foreign_key.h:61
enum_rule
Definition: foreign_key.h:53
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
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
Definition: table_impl.h:67
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:655
MYSQL_PLUGIN_IMPORT CHARSET_INFO * system_charset_info
Definition: mysqld.cc:1558
Functions related to handling of plugins and other dynamically loaded libraries.
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
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
const mysql_service_registry_t * r
Definition: pfs_example_plugin_employee.cc:85
This header provides Rapidjson Type Aliases.
Class used to sort Foreign key's by name for the same table.
Definition: foreign_key_impl.h:249
bool operator()(const dd::Foreign_key *fk1, const dd::Foreign_key *fk2) const
Definition: foreign_key_impl.h:250