24#ifndef DD__FOREIGN_KEY_IMPL_INCLUDED
25#define DD__FOREIGN_KEY_IMPL_INCLUDED
46class Open_dictionary_tables_ctx;
253 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: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: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.
MYSQL_PLUGIN_IMPORT CHARSET_INFO * system_charset_info
Definition: mysqld.cc:1545
#define my_strcasecmp(s, a, b)
Definition: m_ctype.h:718
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:249
bool operator()(const dd::Foreign_key *fk1, const dd::Foreign_key *fk2) const
Definition: foreign_key_impl.h:250
unsigned int uint
Definition: uca9-dump.cc:75