23#ifndef DD__FOREIGN_KEY_IMPL_INCLUDED
24#define DD__FOREIGN_KEY_IMPL_INCLUDED
45class Open_dictionary_tables_ctx;
252 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:55
Foreign_key_element * add_element() override
Definition: foreign_key_impl.cc:292
static Foreign_key_impl * clone(const Foreign_key_impl &other, Table_impl *table)
Definition: foreign_key_impl.h:217
Foreign_key_elements m_elements
Definition: foreign_key_impl.h:237
void set_unique_constraint_name(const String_type &name) override
Definition: foreign_key_impl.h:116
Entity_object_impl * impl() override
Definition: foreign_key_impl.h:197
void set_match_option(enum_match_option match_option) override
Definition: foreign_key_impl.h:126
void set_name(const String_type &name) override
Definition: foreign_key_impl.h:208
Table_impl * m_table
Definition: foreign_key_impl.h:233
String_type m_referenced_table_name
Definition: foreign_key_impl.h:231
Foreign_key_elements * elements() override
Definition: foreign_key_impl.h:194
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:247
void set_update_rule(enum_rule update_rule) override
Definition: foreign_key_impl.h:136
enum_rule m_update_rule
Definition: foreign_key_impl.h:224
bool validate() const override
Definition: foreign_key_impl.cc:121
Foreign_key_impl * clone(Table_impl *parent) const
Definition: foreign_key_impl.h:240
const String_type & referenced_table_name() const override
Definition: foreign_key_impl.h:178
bool store_children(Open_dictionary_tables_ctx *otx) override
Definition: foreign_key_impl.cc:159
String_type m_referenced_table_schema_name
Definition: foreign_key_impl.h:230
static Foreign_key_impl * restore_item(Table_impl *table)
Definition: foreign_key_impl.h:213
bool restore_attributes(const Raw_record &r) override
Definition: foreign_key_impl.cc:173
const String_type & unique_constraint_name() const override
Definition: foreign_key_impl.h:112
void set_ordinal_position(uint)
Definition: foreign_key_impl.h:91
bool is_persistent() const override
Is dictionary object persistent in dictionary tables ?
Definition: foreign_key_impl.h:202
String_type m_referenced_table_catalog_name
Definition: foreign_key_impl.h:229
void set_delete_rule(enum_rule delete_rule) override
Definition: foreign_key_impl.h:146
void set_referenced_table_schema_name(const String_type &name) override
Definition: foreign_key_impl.h:170
static void register_tables(Open_dictionary_tables_ctx *otx)
Definition: foreign_key_impl.cc:325
void set_referenced_table_name(const String_type &name) override
Definition: foreign_key_impl.h:182
void debug_print(String_type &outb) const override
Definition: foreign_key_impl.cc:266
void set_referenced_table_catalog_name(const String_type &name) override
Definition: foreign_key_impl.h:158
enum_rule m_delete_rule
Definition: foreign_key_impl.h:225
enum_rule delete_rule() const override
Definition: foreign_key_impl.h:144
enum_match_option m_match_option
Definition: foreign_key_impl.h:223
bool store_attributes(Raw_record *r) override
Definition: foreign_key_impl.cc:200
const String_type & referenced_table_catalog_name() const override
Definition: foreign_key_impl.h:154
enum_match_option match_option() const override
Definition: foreign_key_impl.h:124
bool restore_children(Open_dictionary_tables_ctx *otx) override
Definition: foreign_key_impl.cc:151
const Table & table() const override
Definition: foreign_key_impl.cc:83
const String_type & referenced_table_schema_name() const override
Definition: foreign_key_impl.h:166
~Foreign_key_impl() override=default
const Foreign_key_elements & elements() const override
Definition: foreign_key_impl.h:192
virtual uint ordinal_position() const
Definition: foreign_key_impl.h:93
void serialize(Sdi_wcontext *wctx, Sdi_writer *w) const override
Converts *this into json.
Definition: foreign_key_impl.cc:223
const Object_table & object_table() const override
Definition: foreign_key_impl.cc:319
String_type m_unique_constraint_name
Definition: foreign_key_impl.h:227
const String_type & name() const override
Definition: foreign_key_impl.h:205
bool drop_children(Open_dictionary_tables_ctx *otx) const override
Definition: foreign_key_impl.cc:165
Object_id id() const override
The unique dictionary object id.
Definition: foreign_key_impl.h:201
enum_rule update_rule() const override
Definition: foreign_key_impl.h:134
Foreign_key_impl()
Definition: foreign_key_impl.cc:67
const Table_impl & table_impl() const
Definition: foreign_key_impl.h:104
bool store(Open_dictionary_tables_ctx *otx) override
Store the DD object into DD table.
Definition: foreign_key_impl.cc:106
Table_impl & table_impl()
Definition: foreign_key_impl.h:106
const Entity_object_impl * impl() const override
Definition: foreign_key_impl.h:198
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.
MYSQL_PLUGIN_IMPORT CHARSET_INFO * system_charset_info
Definition: mysqld.cc:1541
#define my_strcasecmp(s, a, b)
Definition: m_ctype.h:709
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:248
bool operator()(const dd::Foreign_key *fk1, const dd::Foreign_key *fk2) const
Definition: foreign_key_impl.h:249
unsigned int uint
Definition: uca9-dump.cc:74