24#ifndef DD__OBJECT_TABLE_DEFINITION_IMPL_INCLUDED
25#define DD__OBJECT_TABLE_DEFINITION_IMPL_INCLUDED
71 return "foreign_keys";
113 assert(element_numbers !=
nullptr && element_definitions !=
nullptr &&
114 element_numbers->find(element_name) == element_numbers->end() &&
116 element_definitions->end());
124 assert(element_numbers.find(element_name) != element_numbers.end());
125 return element_numbers.find(element_name)->second;
200 const char *tmp_name = src.c_str();
235 add_element(foreign_key_number, foreign_key_name, foreign_key_definition,
263 const std::vector<String_type> &
get_dml()
const override {
Definition: object_table_definition_impl.h:44
const String_type & get_table_name() const
Definition: object_table_definition_impl.h:212
std::map< String_type, int > Element_numbers
Definition: object_table_definition_impl.h:46
static bool is_dd_tablespace_encrypted()
Definition: object_table_definition_impl.h:152
void store_into_properties(Properties *table_def_properties) const override
Store the elements of the object table definition into a property object.
Definition: object_table_definition_impl.cc:141
virtual int index_number(const String_type &index_name) const
Definition: object_table_definition_impl.h:253
Element_definitions m_field_definitions
Definition: object_table_definition_impl.h:96
virtual bool restore_from_string(const String_type &ddl_statement)
Definition: object_table_definition_impl.h:269
Label
Definition: object_table_definition_impl.h:50
String_type get_ddl() const override
Get the SQL DDL statement for creating the dictionary table.
Definition: object_table_definition_impl.cc:100
void add_field(int field_number, const String_type &field_name, const String_type field_definition) override
Add a field to the object table definition.
Definition: object_table_definition_impl.h:218
static const char * key(Label label)
Definition: object_table_definition_impl.h:62
std::map< int, String_type > Element_definitions
Definition: object_table_definition_impl.h:47
Element_definitions m_foreign_key_definitions
Definition: object_table_definition_impl.h:102
int element_number(const String_type &element_name, const Element_numbers &element_numbers) const
Definition: object_table_definition_impl.h:122
Element_numbers m_option_numbers
Definition: object_table_definition_impl.h:104
bool set_element_properties(const String_type &prop_str, Element_numbers *element_numbers, Element_definitions *element_defs)
Definition: object_table_definition_impl.cc:59
Element_definitions m_option_definitions
Definition: object_table_definition_impl.h:105
virtual void add_option(int option_number, const String_type &option_name, const String_type &option_definition)
Definition: object_table_definition_impl.h:239
void set_table_name(const String_type &name) override
Set the name of the table.
Definition: object_table_definition_impl.h:214
virtual void add_populate_statement(const String_type &statement)
Definition: object_table_definition_impl.h:245
void set_schema_name(const String_type &name)
Definition: object_table_definition_impl.h:216
static const CHARSET_INFO * fs_name_collation()
Get the collation which is used for names related to the file system (e.g.
Definition: object_table_definition_impl.h:163
virtual int option_number(const String_type &option_name) const
Definition: object_table_definition_impl.h:257
void get_element_properties(dd::Properties *properties, const Element_numbers &element_numbers, const Element_definitions &element_defs) const
Definition: object_table_definition_impl.cc:38
void add_index(int index_number, const String_type &index_name, const String_type &index_definition) override
Add an index to the object table definition.
Definition: object_table_definition_impl.h:226
void add_sql_mode_field(int field_number, const String_type &field_name)
Definition: object_table_definition_impl.cc:88
String_type m_table_name
Definition: object_table_definition_impl.h:91
virtual void add_foreign_key(int foreign_key_number, const String_type &foreign_key_name, const String_type &foreign_key_definition)
Definition: object_table_definition_impl.h:232
static const char * fs_name_case(const String_type &src, char *buf)
Convert to lowercase if lower_case_table_names == 2.
Definition: object_table_definition_impl.h:199
Object_table_definition_impl()=default
Object_table_definition_impl(const String_type &schema_name, const String_type &table_name, const String_type &ddl_statement)
Definition: object_table_definition_impl.h:139
const std::vector< String_type > & get_dml() const override
Get the SQL DML statements for populating the table.
Definition: object_table_definition_impl.h:263
void add_element(int element_number, const String_type &element_name, const String_type &element_definition, Element_numbers *element_numbers, Element_definitions *element_definitions)
Definition: object_table_definition_impl.h:109
Element_numbers m_index_numbers
Definition: object_table_definition_impl.h:98
std::vector< String_type > m_dml_statements
Definition: object_table_definition_impl.h:107
~Object_table_definition_impl() override=default
static bool s_dd_tablespace_encrypted
Definition: object_table_definition_impl.h:88
bool restore_from_properties(const Properties &table_def_properties) override
Restore the elements of the object table definition from a property object.
Definition: object_table_definition_impl.cc:168
String_type m_ddl_statement
Definition: object_table_definition_impl.h:93
Element_definitions m_index_definitions
Definition: object_table_definition_impl.h:99
Element_numbers m_field_numbers
Definition: object_table_definition_impl.h:95
Element_numbers m_foreign_key_numbers
Definition: object_table_definition_impl.h:101
static const CHARSET_INFO * name_collation()
Get the collation which is used for the name field in the table.
Definition: object_table_definition_impl.h:181
virtual int field_number(const String_type &field_name) const
Definition: object_table_definition_impl.h:249
static void set_dd_tablespace_encrypted(bool is_encrypted)
Definition: object_table_definition_impl.h:148
String_type m_schema_name
Definition: object_table_definition_impl.h:90
The purpose of this interface is to enable retrieving the SQL statements necessary to create and popu...
Definition: object_table_definition.h:48
The Properties class defines an interface for storing key=value pairs, where both key and value may b...
Definition: properties.h:74
static char buf[MAX_BUF]
Definition: conf_to_src.cc:73
A better implementation of the UNIX ctype(3) library.
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_utf8mb3_tolower_ci
Definition: ctype-utf8.cc:5829
size_t my_casedn_str(const CHARSET_INFO *cs, char *str)
Definition: m_ctype.h:732
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_utf8mb3_bin
Definition: ctype-utf8.cc:5899
static char * my_stpcpy(char *dst, const char *src)
Copy a string from src to dst until (and including) terminating null byte.
Definition: m_string.h:142
uint lower_case_table_names
Definition: mysqld.cc:1345
Definition: buf0block_hint.cc:30
The version of the current data dictionary table definitions.
Definition: dictionary_client.h:43
bool is_encrypted(const String_type &type)
Definition: dd_table.h:422
Char_string_template< String_type_allocator > String_type
Definition: string_type.h:51
const char * table_name
Definition: rules_table_service.cc:56
case opt name
Definition: sslopt-case.h:29
Definition: m_ctype.h:421
Definition: mysqlslap.cc:219