147 std::string &table, std::string &partition,
bool &is_tmp);
161void get_partition(
const std::string &partition,
bool convert,
162 std::string &part, std::string &sub_part);
172void build_table(
const std::string &schema,
const std::string &table,
173 const std::string &partition,
bool is_tmp,
bool convert,
271 return (out <<
"[space=" <<
id.m_space_id <<
",index=" <<
id.m_index_id
303#ifndef UNIV_HOTBACKUP
308#define TEMP_FILE_PREFIX "#sql"
309#define TEMP_FILE_PREFIX_LENGTH 4
310#define TEMP_FILE_PREFIX_INNODB "#sql-ib"
312#define TEMP_TABLE_PREFIX "#sql"
313#define TEMP_TABLE_PATH_PREFIX "/" TEMP_TABLE_PREFIX
315#if defined UNIV_DEBUG || defined UNIV_IBUF_DEBUG
327 "SPATIAL_STATUS_MASK < REC_VERSION_56_MAX_INDEX_COL_LEN");
uint32_t space_id_t
Tablespace identifier.
Definition: api0api.h:51
Definition: partition.h:51
Globally unique index identifier.
Definition: dict0types.h:223
space_index_t m_index_id
Index identifier within the tablespace.
Definition: dict0types.h:263
space_id_t m_space_id
Tablespace identifier.
Definition: dict0types.h:261
uint64_t conv_to_int() const
Convert an index_id to a 64 bit integer.
Definition: dict0types.h:247
index_id_t(space_id_t space_id, space_index_t index_id)
Constructor.
Definition: dict0types.h:228
bool is_ibuf() const
Check if the index belongs to the insert buffer.
Definition: dict0types.h:255
bool operator==(const index_id_t &other) const
Compare this to another index identifier.
Definition: dict0types.h:241
bool operator<(const index_id_t &other) const
Compare this to another index identifier.
Definition: dict0types.h:234
ib_id_t space_index_t
Index identifier (unique within a tablespace).
Definition: dict0types.h:220
spatial_status_t
whether a col is used in spatial index or regular index Note: the spatial status is part of persisten...
Definition: dict0types.h:332
@ SPATIAL_MIXED
Used in both spatial index and regular index.
Definition: dict0types.h:340
@ SPATIAL_NONE
Not used in gis index.
Definition: dict0types.h:337
@ SPATIAL_UNKNOWN
Definition: dict0types.h:334
@ SPATIAL_ONLY
Only used in spatial index.
Definition: dict0types.h:343
uint ibuf_debug
Flag to control insert buffer debugging.
Definition: ibuf0ibuf.cc:208
constexpr uint64_t DICT_IBUF_ID_MIN
Definition: dict0types.h:215
std::ostream & operator<<(std::ostream &out, const index_id_t &id)
Display an index identifier.
Definition: dict0types.h:270
constexpr uint32_t SPATIAL_STATUS_MASK
Mask to encode/decode spatial status.
Definition: dict0types.h:324
constexpr uint32_t DICT_HDR_PAGE_NO
Definition: dict0types.h:211
ib_mutex_t DictSysMutex
Definition: dict0types.h:304
dict_err_ignore_t
Error to ignore when we load table dictionary into memory.
Definition: dict0types.h:280
@ DICT_ERR_IGNORE_INDEX_ROOT
ignore error if index root page is FIL_NULL or incorrect value
Definition: dict0types.h:282
@ DICT_ERR_IGNORE_NONE
no error to ignore
Definition: dict0types.h:281
@ DICT_ERR_IGNORE_CORRUPT
skip corrupted indexes
Definition: dict0types.h:284
@ DICT_ERR_IGNORE_ALL
ignore all errors
Definition: dict0types.h:293
@ DICT_ERR_IGNORE_RECOVER_LOCK
Used when recovering table locks for resurrected transactions.
Definition: dict0types.h:287
@ DICT_ERR_IGNORE_FK_NOKEY
ignore error if any foreign key is missing
Definition: dict0types.h:285
ib_id_t table_id_t
Table or partition identifier (unique within an InnoDB instance).
Definition: dict0types.h:218
ib_quiesce_t
Quiescing states for flushing tables to disk.
Definition: dict0types.h:297
@ QUIESCE_NONE
Definition: dict0types.h:298
@ QUIESCE_START
Initialise, prepare to start.
Definition: dict0types.h:299
@ QUIESCE_COMPLETE
All done.
Definition: dict0types.h:300
constexpr uint32_t SPATIAL_STATUS_SHIFT
Shift for spatial status.
Definition: dict0types.h:321
constexpr uint32_t DICT_HDR_SPACE
Definition: dict0types.h:210
constexpr uint32_t FSP_DICT_HDR_PAGE_NO
data dictionary header page, in tablespace 0
Definition: fsp0types.h:174
Insert buffer global types.
#define IBUF_SPACE_ID
Definition: ibuf0types.h:38
Common definition between mysql server & client.
#define NAME_LEN
Definition: mysql_com.h:67
#define NAME_CHAR_LEN
Field/table name length.
Definition: mysql_com.h:60
The version of the current data dictionary table definitions.
Definition: dictionary_client.h:43
Innodb data dictionary name.
Definition: dict0dd.cc:7158
void build_table(const std::string &schema, const std::string &table, const std::string &partition, bool is_tmp, bool convert, std::string &dict_name)
Definition: dict0dd.cc:7395
std::function< void(std::string &)> Convert_Func
Name string conversion callback.
Definition: dict0types.h:122
constexpr char PART_SEPARATOR[]
Partition separator in dictionary table name and file name.
Definition: dict0types.h:65
constexpr char SUB_PART_SEPARATOR[]
Sub-Partition separator in dictionary table name and file name.
Definition: dict0types.h:71
constexpr size_t PART_SEPARATOR_LEN
Partition separator length excluding terminating NULL.
Definition: dict0types.h:68
void get_table(const std::string &dict_name, std::string &schema, std::string &table)
Get schema and table name from dictionary table name.
Definition: dict0dd.cc:7295
bool is_partition(const std::string &dict_name)
Check if it is a table partition.
Definition: dict0dd.cc:7290
constexpr size_t MAX_TABLE_CHAR_LEN
The maximum length in characters for table name.
Definition: dict0types.h:104
constexpr size_t MAX_DB_CHAR_LEN
The maximum length in characters for database name.
Definition: dict0types.h:91
void rebuild_space(const std::string &dict_name, std::string &space_name)
Definition: dict0dd.cc:7662
bool match_partition(const std::string &dict_name, const dd::Partition *dd_part)
Check if dd partition matches with innodb dictionary table name.
Definition: dict0dd.cc:7561
void build_partition(const dd::Partition *dd_part, std::string &partition)
Build partition string from dd object.
Definition: dict0dd.cc:7531
constexpr char ALT_SUB_PART_SEPARATOR[]
Alternative sub-partition separator from 8.0.17 and older versions.
Definition: dict0types.h:80
constexpr size_t SUB_PART_SEPARATOR_LEN
Sub-Partition separator length excluding terminating NULL.
Definition: dict0types.h:74
constexpr size_t MAX_TABLE_UTF8MB3_LEN
The maximum length in bytes that a table name can occupy when stored in UTF8MB3, including the termin...
Definition: dict0types.h:99
constexpr char ALT_PART_SEPARATOR[]
Alternative partition separator from 8.0.17 and older versions.
Definition: dict0types.h:77
void rebuild(std::string &dict_name)
Rebuild table name to convert from 5.7 format to 8.0.
Definition: dict0dd.cc:7691
constexpr size_t MAX_SPACE_NAME_LEN
Maximum space name length.
Definition: dict0types.h:117
constexpr size_t SCHEMA_SEPARATOR_LEN
Definition: dict0types.h:84
constexpr char SCHEMA_SEPARATOR[]
Schema separator is forward slash irrespective of platform.
Definition: dict0types.h:83
void file_to_table(std::string &name, bool quiet)
Conversion function to change for system to file name cs.
Definition: dict0dd.cc:7159
constexpr size_t TMP_POSTFIX_LEN
Definition: dict0types.h:113
void convert_to_space(std::string &dict_name)
Definition: dict0dd.cc:7637
void get_partition(const std::string &partition, bool convert, std::string &part, std::string &sub_part)
Get partition and sub-partition name from partition string.
Definition: dict0dd.cc:7357
constexpr size_t MAX_DB_UTF8MB3_LEN
The maximum length in bytes that a database name can occupy when stored in UTF8MB3,...
Definition: dict0types.h:88
constexpr char TMP_POSTFIX[]
Postfix for a table name which is being altered.
Definition: dict0types.h:112
void build_57_partition(const dd::Partition *dd_part, std::string &partition)
Build 5.7 style partition string from dd object.
Definition: dict0dd.cc:7542
void table_to_file(std::string &name)
Conversion function to change for file name to system cs.
Definition: dict0dd.cc:7168
Record manager global types.
constexpr uint32_t REC_VERSION_56_MAX_INDEX_COL_LEN
Maximum indexed field length for tables that have atomic BLOBs.
Definition: rem0types.h:72
case opt name
Definition: sslopt-case.h:33
Data structure for newly added virtual column in a table.
Definition: dict0mem.h:835
Data structure for a column in a table.
Definition: dict0mem.h:489
Data structure for a field in an index.
Definition: dict0mem.h:895
Data structure for a foreign key constraint; an example: FOREIGN KEY (A, B) REFERENCES TABLE2 (C,...
Definition: dict0mem.h:1666
Data structure for an index.
Definition: dict0mem.h:1046
Definition: dict0dict.h:1005
Data structure for a database table.
Definition: dict0mem.h:1909
Data structure for a virtual column in a table.
Definition: dict0mem.h:815
Definition: dict0crea.h:148
Definition: dict0crea.h:112
unsigned int uint
Definition: uca9-dump.cc:75
uint64_t ib_id_t
The generic InnoDB system object identifier data type.
Definition: univ.i:443
#define ut_ad(EXPR)
Debug assertion.
Definition: ut0dbg.h:69