155 std::string &table, std::string &partition,
bool &is_tmp);
175void get_partition(
const std::string &partition,
bool convert,
176 std::string &part, std::string &sub_part);
186void build_table(
const std::string &schema,
const std::string &table,
187 const std::string &partition,
bool is_tmp,
bool convert,
285 return (out <<
"[space=" <<
id.m_space_id <<
",index=" <<
id.m_index_id
317#ifndef UNIV_HOTBACKUP
322#define TEMP_FILE_PREFIX "#sql"
323#define TEMP_FILE_PREFIX_LENGTH 4
324#define TEMP_FILE_PREFIX_INNODB "#sql-ib"
326#define TEMP_TABLE_PREFIX "#sql"
327#define TEMP_TABLE_PATH_PREFIX "/" TEMP_TABLE_PREFIX
329#if defined UNIV_DEBUG || defined UNIV_IBUF_DEBUG
341 "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:237
space_index_t m_index_id
Index identifier within the tablespace.
Definition: dict0types.h:277
space_id_t m_space_id
Tablespace identifier.
Definition: dict0types.h:275
uint64_t conv_to_int() const
Convert an index_id to a 64 bit integer.
Definition: dict0types.h:261
index_id_t(space_id_t space_id, space_index_t index_id)
Constructor.
Definition: dict0types.h:242
bool is_ibuf() const
Check if the index belongs to the insert buffer.
Definition: dict0types.h:269
bool operator==(const index_id_t &other) const
Compare this to another index identifier.
Definition: dict0types.h:255
bool operator<(const index_id_t &other) const
Compare this to another index identifier.
Definition: dict0types.h:248
ib_id_t space_index_t
Index identifier (unique within a tablespace).
Definition: dict0types.h:234
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:346
@ SPATIAL_MIXED
Used in both spatial index and regular index.
Definition: dict0types.h:354
@ SPATIAL_NONE
Not used in gis index.
Definition: dict0types.h:351
@ SPATIAL_UNKNOWN
Definition: dict0types.h:348
@ SPATIAL_ONLY
Only used in spatial index.
Definition: dict0types.h:357
uint ibuf_debug
Flag to control insert buffer debugging.
Definition: ibuf0ibuf.cc:208
constexpr uint64_t DICT_IBUF_ID_MIN
Definition: dict0types.h:229
std::ostream & operator<<(std::ostream &out, const index_id_t &id)
Display an index identifier.
Definition: dict0types.h:284
constexpr uint32_t SPATIAL_STATUS_MASK
Mask to encode/decode spatial status.
Definition: dict0types.h:338
constexpr uint32_t DICT_HDR_PAGE_NO
Definition: dict0types.h:225
ib_mutex_t DictSysMutex
Definition: dict0types.h:318
dict_err_ignore_t
Error to ignore when we load table dictionary into memory.
Definition: dict0types.h:294
@ DICT_ERR_IGNORE_INDEX_ROOT
ignore error if index root page is FIL_NULL or incorrect value
Definition: dict0types.h:296
@ DICT_ERR_IGNORE_NONE
no error to ignore
Definition: dict0types.h:295
@ DICT_ERR_IGNORE_CORRUPT
skip corrupted indexes
Definition: dict0types.h:298
@ DICT_ERR_IGNORE_ALL
ignore all errors
Definition: dict0types.h:307
@ DICT_ERR_IGNORE_RECOVER_LOCK
Used when recovering table locks for resurrected transactions.
Definition: dict0types.h:301
@ DICT_ERR_IGNORE_FK_NOKEY
ignore error if any foreign key is missing
Definition: dict0types.h:299
ib_id_t table_id_t
Table or partition identifier (unique within an InnoDB instance).
Definition: dict0types.h:232
ib_quiesce_t
Quiescing states for flushing tables to disk.
Definition: dict0types.h:311
@ QUIESCE_NONE
Definition: dict0types.h:312
@ QUIESCE_START
Initialise, prepare to start.
Definition: dict0types.h:313
@ QUIESCE_COMPLETE
All done.
Definition: dict0types.h:314
constexpr uint32_t SPATIAL_STATUS_SHIFT
Shift for spatial status.
Definition: dict0types.h:335
constexpr uint32_t DICT_HDR_SPACE
Definition: dict0types.h:224
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
static char * path
Definition: mysqldump.cc:137
The version of the current data dictionary table definitions.
Definition: dictionary_client.h:43
Innodb data dictionary name.
Definition: dict0dd.cc:7319
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:7618
std::function< void(std::string &)> Convert_Func
Name string conversion callback.
Definition: dict0types.h:130
constexpr char PART_SEPARATOR[]
Partition separator in dictionary table name and file name.
Definition: dict0types.h:73
constexpr char SUB_PART_SEPARATOR[]
Sub-Partition separator in dictionary table name and file name.
Definition: dict0types.h:79
constexpr size_t PART_SEPARATOR_LEN
Partition separator length excluding terminating NULL.
Definition: dict0types.h:76
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:7456
std::optional< table_name_components > parse_tablespace_path(std::string path)
Get schema, table name, partition, subpartition and absolute directory from dictionary from filepath.
Definition: dict0dd.cc:7518
bool is_partition(const std::string &dict_name)
Check if it is a table partition.
Definition: dict0dd.cc:7451
constexpr size_t MAX_TABLE_CHAR_LEN
The maximum length in characters for table name.
Definition: dict0types.h:112
constexpr size_t MAX_DB_CHAR_LEN
The maximum length in characters for database name.
Definition: dict0types.h:99
void rebuild_space(const std::string &dict_name, std::string &space_name)
Definition: dict0dd.cc:7869
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:7768
void build_partition(const dd::Partition *dd_part, std::string &partition)
Build partition string from dd object.
Definition: dict0dd.cc:7738
constexpr char ALT_SUB_PART_SEPARATOR[]
Alternative sub-partition separator from 8.0.17 and older versions.
Definition: dict0types.h:88
constexpr size_t SUB_PART_SEPARATOR_LEN
Sub-Partition separator length excluding terminating NULL.
Definition: dict0types.h:82
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:107
constexpr char ALT_PART_SEPARATOR[]
Alternative partition separator from 8.0.17 and older versions.
Definition: dict0types.h:85
void rebuild(std::string &dict_name)
Rebuild table name to convert from 5.7 format to 8.0.
Definition: dict0dd.cc:7898
constexpr size_t MAX_SPACE_NAME_LEN
Maximum space name length.
Definition: dict0types.h:125
constexpr size_t SCHEMA_SEPARATOR_LEN
Definition: dict0types.h:92
constexpr char SCHEMA_SEPARATOR[]
Schema separator is forward slash irrespective of platform.
Definition: dict0types.h:91
void file_to_table(std::string &name, bool quiet)
Conversion function to change for system to file name cs.
Definition: dict0dd.cc:7320
constexpr size_t TMP_POSTFIX_LEN
Definition: dict0types.h:121
void convert_to_space(std::string &dict_name)
Definition: dict0dd.cc:7844
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:7580
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:96
constexpr char TMP_POSTFIX[]
Postfix for a table name which is being altered.
Definition: dict0types.h:120
void build_57_partition(const dd::Partition *dd_part, std::string &partition)
Build 5.7 style partition string from dd object.
Definition: dict0dd.cc:7749
void table_to_file(std::string &name)
Conversion function to change for file name to system cs.
Definition: dict0dd.cc:7329
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
Definition: dict0types.h:55
std::string table_name
Definition: dict0types.h:57
std::string directory
Definition: dict0types.h:60
std::string schema_name
Definition: dict0types.h:56
std::string subpartition
Definition: dict0types.h:59
std::string partition
Definition: dict0types.h:58
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