MySQL 8.4.2
Source Code Documentation
|
Data dictionary global types. More...
#include "fsp0types.h"
#include "ibuf0types.h"
#include "mysql_com.h"
#include "rem0types.h"
#include "ut0mutex.h"
Go to the source code of this file.
Classes | |
struct | table_name_components |
class | index_id_t |
Globally unique index identifier. More... | |
Namespaces | |
namespace | dd |
The version of the current data dictionary table definitions. | |
namespace | dict_name |
Innodb data dictionary name. | |
Macros | |
#define | TEMP_FILE_PREFIX "#sql" |
Prefix for tmp tables, adopted from sql/table.h. More... | |
#define | TEMP_FILE_PREFIX_LENGTH 4 |
#define | TEMP_FILE_PREFIX_INNODB "#sql-ib" |
#define | TEMP_TABLE_PREFIX "#sql" |
#define | TEMP_TABLE_PATH_PREFIX "/" TEMP_TABLE_PREFIX |
Typedefs | |
using | dict_name::Convert_Func = std::function< void(std::string &)> |
Name string conversion callback. More... | |
typedef ib_id_t | table_id_t |
Table or partition identifier (unique within an InnoDB instance). More... | |
typedef ib_id_t | space_index_t |
Index identifier (unique within a tablespace). More... | |
typedef ib_mutex_t | DictSysMutex |
Enumerations | |
enum | dict_err_ignore_t { DICT_ERR_IGNORE_NONE = 0 , DICT_ERR_IGNORE_INDEX_ROOT = 1 , DICT_ERR_IGNORE_CORRUPT = 2 , DICT_ERR_IGNORE_FK_NOKEY = 4 , DICT_ERR_IGNORE_RECOVER_LOCK = 8 , DICT_ERR_IGNORE_ALL = 0xFFFF } |
Error to ignore when we load table dictionary into memory. More... | |
enum | ib_quiesce_t { QUIESCE_NONE , QUIESCE_START , QUIESCE_COMPLETE } |
Quiescing states for flushing tables to disk. More... | |
enum | spatial_status_t { SPATIAL_UNKNOWN = 0 , SPATIAL_NONE = 1 , SPATIAL_MIXED = 2 , SPATIAL_ONLY = 3 } |
whether a col is used in spatial index or regular index Note: the spatial status is part of persistent undo log, so we should not modify the values in MySQL 5.7 More... | |
Functions | |
void | dict_name::file_to_table (std::string &name, bool quiet) |
Conversion function to change for system to file name cs. More... | |
void | dict_name::table_to_file (std::string &name) |
Conversion function to change for file name to system cs. More... | |
bool | dict_name::is_partition (const std::string &dict_name) |
Check if it is a table partition. More... | |
void | dict_name::get_table (const std::string &dict_name, bool convert, std::string &schema, std::string &table, std::string &partition, bool &is_tmp) |
Get schema, table name, partition string and temporary attribute from dictionary table name. More... | |
void | dict_name::get_table (const std::string &dict_name, std::string &schema, std::string &table) |
Get schema and table name from dictionary table name. More... | |
std::optional< table_name_components > | dict_name::parse_tablespace_path (std::string path) |
Get schema, table name, partition, subpartition and absolute directory from dictionary from filepath. More... | |
void | dict_name::get_partition (const std::string &partition, bool convert, std::string &part, std::string &sub_part) |
Get partition and sub-partition name from partition string. More... | |
void | dict_name::build_table (const std::string &schema, const std::string &table, const std::string &partition, bool is_tmp, bool convert, std::string &dict_name) |
void | dict_name::build_partition (const dd::Partition *dd_part, std::string &partition) |
Build partition string from dd object. More... | |
void | dict_name::build_57_partition (const dd::Partition *dd_part, std::string &partition) |
Build 5.7 style partition string from dd object. More... | |
bool | dict_name::match_partition (const std::string &dict_name, const dd::Partition *dd_part) |
Check if dd partition matches with innodb dictionary table name. More... | |
void | dict_name::convert_to_space (std::string &dict_name) |
void | dict_name::rebuild_space (const std::string &dict_name, std::string &space_name) |
void | dict_name::rebuild (std::string &dict_name) |
Rebuild table name to convert from 5.7 format to 8.0. More... | |
std::ostream & | operator<< (std::ostream &out, const index_id_t &id) |
Display an index identifier. More... | |
Variables | |
constexpr char | dict_name::PART_SEPARATOR [] = "#p#" |
Partition separator in dictionary table name and file name. More... | |
constexpr size_t | dict_name::PART_SEPARATOR_LEN = sizeof(PART_SEPARATOR) - 1 |
Partition separator length excluding terminating NULL. More... | |
constexpr char | dict_name::SUB_PART_SEPARATOR [] = "#sp#" |
Sub-Partition separator in dictionary table name and file name. More... | |
constexpr size_t | dict_name::SUB_PART_SEPARATOR_LEN = sizeof(SUB_PART_SEPARATOR) - 1 |
Sub-Partition separator length excluding terminating NULL. More... | |
constexpr char | dict_name::ALT_PART_SEPARATOR [] = "#P#" |
Alternative partition separator from 8.0.17 and older versions. More... | |
constexpr char | dict_name::ALT_SUB_PART_SEPARATOR [] = "#SP#" |
Alternative sub-partition separator from 8.0.17 and older versions. More... | |
constexpr char | dict_name::SCHEMA_SEPARATOR [] = "/" |
Schema separator is forward slash irrespective of platform. More... | |
constexpr size_t | dict_name::SCHEMA_SEPARATOR_LEN = sizeof(SCHEMA_SEPARATOR) - 1 |
constexpr size_t | dict_name::MAX_DB_UTF8MB3_LEN = NAME_LEN + 1 |
The maximum length in bytes that a database name can occupy when stored in UTF8MB3, including the terminating null. More... | |
constexpr size_t | dict_name::MAX_DB_CHAR_LEN = NAME_CHAR_LEN |
The maximum length in characters for database name. More... | |
constexpr size_t | dict_name::MAX_TABLE_UTF8MB3_LEN |
The maximum length in bytes that a table name can occupy when stored in UTF8MB3, including the terminating null. More... | |
constexpr size_t | dict_name::MAX_TABLE_CHAR_LEN |
The maximum length in characters for table name. More... | |
constexpr char | dict_name::TMP_POSTFIX [] = "#tmp" |
Postfix for a table name which is being altered. More... | |
constexpr size_t | dict_name::TMP_POSTFIX_LEN = sizeof(TMP_POSTFIX) - 1 |
constexpr size_t | dict_name::MAX_SPACE_NAME_LEN |
Maximum space name length. More... | |
constexpr uint32_t | DICT_HDR_SPACE = 0 |
constexpr uint32_t | DICT_HDR_PAGE_NO = FSP_DICT_HDR_PAGE_NO |
constexpr uint64_t | DICT_IBUF_ID_MIN = 0xFFFFFFFF00000000ULL |
uint | ibuf_debug |
Flag to control insert buffer debugging. More... | |
constexpr uint32_t | SPATIAL_STATUS_SHIFT = 12 |
Shift for spatial status. More... | |
constexpr uint32_t | SPATIAL_STATUS_MASK = 3 << SPATIAL_STATUS_SHIFT |
Mask to encode/decode spatial status. More... | |
Data dictionary global types.
Created 1/8/1996 Heikki Tuuri
#define TEMP_FILE_PREFIX "#sql" |
Prefix for tmp tables, adopted from sql/table.h.
#define TEMP_FILE_PREFIX_INNODB "#sql-ib" |
#define TEMP_FILE_PREFIX_LENGTH 4 |
#define TEMP_TABLE_PATH_PREFIX "/" TEMP_TABLE_PREFIX |
#define TEMP_TABLE_PREFIX "#sql" |
typedef ib_mutex_t DictSysMutex |
typedef ib_id_t space_index_t |
Index identifier (unique within a tablespace).
typedef ib_id_t table_id_t |
Table or partition identifier (unique within an InnoDB instance).
enum dict_err_ignore_t |
Error to ignore when we load table dictionary into memory.
However, the table and index will be marked as "corrupted", and caller will be responsible to deal with corrupted table or index. Note: please define the IGNORE_ERR_* as bits, so their value can be or-ed together
enum ib_quiesce_t |
enum spatial_status_t |
whether a col is used in spatial index or regular index Note: the spatial status is part of persistent undo log, so we should not modify the values in MySQL 5.7
Enumerator | |
---|---|
SPATIAL_UNKNOWN | |
SPATIAL_NONE | Not used in gis index. |
SPATIAL_MIXED | Used in both spatial index and regular index. |
SPATIAL_ONLY | Only used in spatial index. |
|
inline |
Display an index identifier.
[in,out] | out | the output stream |
[in] | id | index identifier |
|
constexpr |
|
constexpr |
|
constexpr |
|
extern |
Flag to control insert buffer debugging.
|
constexpr |
Mask to encode/decode spatial status.
|
constexpr |
Shift for spatial status.