23#ifndef DD__OBJECT_TABLE_DEFINITION_IMPL_INCLUDED
24#define DD__OBJECT_TABLE_DEFINITION_IMPL_INCLUDED
70 return "foreign_keys";
112 assert(element_numbers !=
nullptr && element_definitions !=
nullptr &&
113 element_numbers->find(element_name) == element_numbers->end() &&
115 element_definitions->end());
123 assert(element_numbers.find(element_name) != element_numbers.end());
124 return element_numbers.find(element_name)->second;
199 const char *tmp_name = src.c_str();
234 add_element(foreign_key_number, foreign_key_name, foreign_key_definition,
262 const std::vector<String_type> &
get_dml()
const override {
Definition: object_table_definition_impl.h:43
const String_type & get_table_name() const
Definition: object_table_definition_impl.h:211
std::map< String_type, int > Element_numbers
Definition: object_table_definition_impl.h:45
static bool is_dd_tablespace_encrypted()
Definition: object_table_definition_impl.h:151
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:140
virtual int index_number(const String_type &index_name) const
Definition: object_table_definition_impl.h:252
Element_definitions m_field_definitions
Definition: object_table_definition_impl.h:95
virtual bool restore_from_string(const String_type &ddl_statement)
Definition: object_table_definition_impl.h:268
Label
Definition: object_table_definition_impl.h:49
String_type get_ddl() const override
Get the SQL DDL statement for creating the dictionary table.
Definition: object_table_definition_impl.cc:99
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:217
static const char * key(Label label)
Definition: object_table_definition_impl.h:61
std::map< int, String_type > Element_definitions
Definition: object_table_definition_impl.h:46
Element_definitions m_foreign_key_definitions
Definition: object_table_definition_impl.h:101
int element_number(const String_type &element_name, const Element_numbers &element_numbers) const
Definition: object_table_definition_impl.h:121
Element_numbers m_option_numbers
Definition: object_table_definition_impl.h:103
bool set_element_properties(const String_type &prop_str, Element_numbers *element_numbers, Element_definitions *element_defs)
Definition: object_table_definition_impl.cc:58
Element_definitions m_option_definitions
Definition: object_table_definition_impl.h:104
virtual void add_option(int option_number, const String_type &option_name, const String_type &option_definition)
Definition: object_table_definition_impl.h:238
void set_table_name(const String_type &name) override
Set the name of the table.
Definition: object_table_definition_impl.h:213
virtual void add_populate_statement(const String_type &statement)
Definition: object_table_definition_impl.h:244
void set_schema_name(const String_type &name)
Definition: object_table_definition_impl.h:215
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:162
virtual int option_number(const String_type &option_name) const
Definition: object_table_definition_impl.h:256
void get_element_properties(dd::Properties *properties, const Element_numbers &element_numbers, const Element_definitions &element_defs) const
Definition: object_table_definition_impl.cc:37
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:225
void add_sql_mode_field(int field_number, const String_type &field_name)
Definition: object_table_definition_impl.cc:87
String_type m_table_name
Definition: object_table_definition_impl.h:90
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:231
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:198
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:138
const std::vector< String_type > & get_dml() const override
Get the SQL DML statements for populating the table.
Definition: object_table_definition_impl.h:262
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:108
Element_numbers m_index_numbers
Definition: object_table_definition_impl.h:97
std::vector< String_type > m_dml_statements
Definition: object_table_definition_impl.h:106
~Object_table_definition_impl() override=default
static bool s_dd_tablespace_encrypted
Definition: object_table_definition_impl.h:87
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:167
String_type m_ddl_statement
Definition: object_table_definition_impl.h:92
Element_definitions m_index_definitions
Definition: object_table_definition_impl.h:98
Element_numbers m_field_numbers
Definition: object_table_definition_impl.h:94
Element_numbers m_foreign_key_numbers
Definition: object_table_definition_impl.h:100
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:180
virtual int field_number(const String_type &field_name) const
Definition: object_table_definition_impl.h:248
static void set_dd_tablespace_encrypted(bool is_encrypted)
Definition: object_table_definition_impl.h:147
String_type m_schema_name
Definition: object_table_definition_impl.h:89
The purpose of this interface is to enable retrieving the SQL statements necessary to create and popu...
Definition: object_table_definition.h:47
The Properties class defines an interface for storing key=value pairs, where both key and value may b...
Definition: properties.h:73
static char buf[MAX_BUF]
Definition: conf_to_src.cc:72
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:736
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:141
uint lower_case_table_names
Definition: mysqld.cc:1340
Definition: buf0block_hint.cc:29
The version of the current data dictionary table definitions.
Definition: dictionary_client.h:42
bool is_encrypted(const String_type &type)
Definition: dd_table.h:421
Char_string_template< String_type_allocator > String_type
Definition: string_type.h:50
const char * table_name
Definition: rules_table_service.cc:55
case opt name
Definition: sslopt-case.h:32
Definition: m_ctype.h:422
Definition: mysqlslap.cc:218