![]()  | 
  
    MySQL 9.5.0
    
   Source Code Documentation 
   | 
 
#include <dict0dict.h>
Public Types | |
| using | Table_LRU_list_base = UT_LIST_BASE_NODE_T(dict_table_t, table_LRU) | 
Public Member Functions | |
| template<typename Functor > | |
| void | for_each_table (Functor &functor) | 
| Iterate each table.  More... | |
Static Public Member Functions | |
| static bool | is_reserved (space_id_t space) | 
| Check if a tablespace id is a reserved tablespace ID.  More... | |
| static bool | is_dd_table_id (table_id_t id) | 
| Check if a table is hardcoded.  More... | |
Public Attributes | |
| DictSysMutex | mutex | 
| mutex protecting the data dictionary; protects also the disk-based dictionary system tables; this mutex serializes CREATE TABLE and DROP TABLE, as well as reading the dictionary data for a table from system tables  More... | |
| row_id_t | row_id | 
| the next row id to assign; NOTE that at a checkpoint this must be written to the dict system header and flushed to a file; in recovery this must be derived from the log records  More... | |
| hash_table_t * | table_hash | 
| hash table of the tables, based on name  More... | |
| hash_table_t * | table_id_hash | 
| hash table of the tables, based on id  More... | |
| size_t | size | 
| varying space in bytes occupied by the data dictionary table and index objects  More... | |
| dict_table_t * | sys_tables | 
| Handler to sys_* tables, they're only for upgrade.  More... | |
| dict_table_t * | sys_columns | 
| SYS_COLUMNS table.  More... | |
| dict_table_t * | sys_indexes | 
| SYS_INDEXES table.  More... | |
| dict_table_t * | sys_fields | 
| SYS_FIELDS table.  More... | |
| dict_table_t * | sys_virtual | 
| SYS_VIRTUAL table.  More... | |
| dict_table_t * | table_stats | 
| Permanent handle to mysql.innodb_table_stats.  More... | |
| dict_table_t * | index_stats | 
| Permanent handle to mysql.innodb_index_stats.  More... | |
| dict_table_t * | ddl_log | 
| Permanent handle to mysql.innodb_ddl_log.  More... | |
| dict_table_t * | dynamic_metadata | 
| Permanent handle to mysql.innodb_dynamic_metadata.  More... | |
| Table_LRU_list_base | table_LRU | 
| List of tables that can be evicted from the cache.  More... | |
| Table_LRU_list_base | table_non_LRU | 
| List of tables that can't be evicted from the cache.  More... | |
Static Public Attributes | |
| static std::set< dd::Object_id > | s_dd_table_ids = {} | 
| Set of ids of DD tables.  More... | |
| static constexpr space_id_t | s_log_space_id = 0xFFFFFFF0UL | 
| The first ID of the redo log pseudo-tablespace.  More... | |
| static constexpr space_id_t | s_invalid_space_id = 0xFFFFFFFF | 
| Use maximum UINT value to indicate invalid space ID.  More... | |
| static constexpr space_id_t | s_dict_space_id = 0xFFFFFFFE | 
| The data dictionary tablespace ID.  More... | |
| static constexpr space_id_t | s_temp_space_id = 0xFFFFFFFD | 
| The innodb_temporary tablespace ID.  More... | |
| static constexpr space_id_t | s_undo_space_id_range = 400000 | 
| The number of space IDs dedicated to each undo tablespace.  More... | |
| static constexpr space_id_t | s_min_undo_space_id | 
| The lowest undo tablespace ID.  More... | |
| static constexpr space_id_t | s_max_undo_space_id = s_log_space_id - 1 | 
| The highest undo tablespace ID.  More... | |
| static constexpr space_id_t | s_max_temp_space_id = s_min_undo_space_id - 1 | 
| Start space_ids for temporary tablespaces.  More... | |
| static constexpr space_id_t | s_temp_space_id_range = 400000 | 
| The number of space IDs dedicated to temporary tablespaces.  More... | |
| static constexpr space_id_t | s_min_temp_space_id | 
| Lowest temporary general space id.  More... | |
| static constexpr space_id_t | s_reserved_space_id = s_min_temp_space_id | 
| The first reserved tablespace ID.  More... | |
| static constexpr dd::Object_id | s_dd_dict_space_id = 1 | 
| The dd::Tablespace::id of the dictionary tablespace.  More... | |
| static constexpr dd::Object_id | s_dd_sys_space_id = 2 | 
| The dd::Tablespace::id of innodb_system.  More... | |
| static constexpr dd::Object_id | s_dd_temp_space_id = 3 | 
| The dd::Tablespace::id of innodb_temporary.  More... | |
| static const char * | s_dd_space_name = "mysql" | 
| The name of the data dictionary tablespace.  More... | |
| static const char * | s_dd_space_file_name = "mysql.ibd" | 
| The file name of the data dictionary tablespace.  More... | |
| static const char * | s_sys_space_name = "innodb_system" | 
| The name of the hard-coded system tablespace.  More... | |
| static const char * | s_temp_space_name = "innodb_temporary" | 
| The name of the predefined temporary tablespace.  More... | |
| static const char * | s_temp_space_file_name = "ibtmp1" | 
| The file name of the predefined temporary tablespace.  More... | |
| static const char * | s_file_per_table_name = "innodb_file_per_table" | 
| The hard-coded tablespace name innodb_file_per_table.  More... | |
| static const char * | s_default_undo_space_name_1 = "innodb_undo_001" | 
| These two undo tablespaces cannot be dropped.  More... | |
| static const char * | s_default_undo_space_name_2 = "innodb_undo_002" | 
| static constexpr table_id_t | s_dynamic_meta_table_id = 2 | 
| The table ID of mysql.innodb_dynamic_metadata.  More... | |
| static constexpr space_index_t | s_dynamic_meta_index_id = 2 | 
| The clustered index ID of mysql.innodb_dynamic_metadata.  More... | |
      
  | 
  inline | 
Iterate each table.
| Functor | visitor | 
| [in,out] | functor | to be invoked on each table | 
      
  | 
  inlinestatic | 
Check if a table is hardcoded.
it only includes the dd tables
| [in] | id | table ID | 
| true | if the table is a persistent hard-coded table (dict_table_t::is_temporary() will not hold) | 
| false | if the table is not hard-coded (it can be persistent or temporary) | 
      
  | 
  inlinestatic | 
Check if a tablespace id is a reserved tablespace ID.
| [in] | space | tablespace id to check | 
| dict_table_t* dict_sys_t::ddl_log | 
Permanent handle to mysql.innodb_ddl_log.
| dict_table_t* dict_sys_t::dynamic_metadata | 
Permanent handle to mysql.innodb_dynamic_metadata.
| dict_table_t* dict_sys_t::index_stats | 
Permanent handle to mysql.innodb_index_stats.
| DictSysMutex dict_sys_t::mutex | 
mutex protecting the data dictionary; protects also the disk-based dictionary system tables; this mutex serializes CREATE TABLE and DROP TABLE, as well as reading the dictionary data for a table from system tables
| row_id_t dict_sys_t::row_id | 
the next row id to assign; NOTE that at a checkpoint this must be written to the dict system header and flushed to a file; in recovery this must be derived from the log records
      
  | 
  staticconstexpr | 
The dd::Tablespace::id of the dictionary tablespace.
      
  | 
  static | 
The file name of the data dictionary tablespace.
      
  | 
  static | 
The name of the data dictionary tablespace.
      
  | 
  staticconstexpr | 
The dd::Tablespace::id of innodb_system.
      
  | 
  static | 
Set of ids of DD tables.
The set of SE private IDs of DD tables.
Used to tell whether a table is a DD table. Since the DD tables can be rebuilt with new SE private IDs, this set replaces checks based on ranges of IDs.
      
  | 
  staticconstexpr | 
The dd::Tablespace::id of innodb_temporary.
      
  | 
  static | 
These two undo tablespaces cannot be dropped.
      
  | 
  static | 
      
  | 
  staticconstexpr | 
The data dictionary tablespace ID.
      
  | 
  staticconstexpr | 
The clustered index ID of mysql.innodb_dynamic_metadata.
      
  | 
  staticconstexpr | 
The table ID of mysql.innodb_dynamic_metadata.
      
  | 
  static | 
The hard-coded tablespace name innodb_file_per_table.
      
  | 
  staticconstexpr | 
Use maximum UINT value to indicate invalid space ID.
      
  | 
  staticconstexpr | 
The first ID of the redo log pseudo-tablespace.
      
  | 
  staticconstexpr | 
Start space_ids for temporary tablespaces.
      
  | 
  staticconstexpr | 
The highest undo tablespace ID.
      
  | 
  staticconstexpr | 
Lowest temporary general space id.
      
  | 
  staticconstexpr | 
The lowest undo tablespace ID.
      
  | 
  staticconstexpr | 
The first reserved tablespace ID.
      
  | 
  static | 
The name of the hard-coded system tablespace.
      
  | 
  static | 
The file name of the predefined temporary tablespace.
      
  | 
  staticconstexpr | 
The innodb_temporary tablespace ID.
      
  | 
  staticconstexpr | 
The number of space IDs dedicated to temporary tablespaces.
      
  | 
  static | 
The name of the predefined temporary tablespace.
      
  | 
  staticconstexpr | 
The number of space IDs dedicated to each undo tablespace.
| size_t dict_sys_t::size | 
varying space in bytes occupied by the data dictionary table and index objects
| dict_table_t* dict_sys_t::sys_columns | 
SYS_COLUMNS table.
| dict_table_t* dict_sys_t::sys_fields | 
SYS_FIELDS table.
| dict_table_t* dict_sys_t::sys_indexes | 
SYS_INDEXES table.
| dict_table_t* dict_sys_t::sys_tables | 
Handler to sys_* tables, they're only for upgrade.
SYS_TABLES table
| dict_table_t* dict_sys_t::sys_virtual | 
SYS_VIRTUAL table.
| hash_table_t* dict_sys_t::table_hash | 
hash table of the tables, based on name
| hash_table_t* dict_sys_t::table_id_hash | 
hash table of the tables, based on id
| Table_LRU_list_base dict_sys_t::table_LRU | 
List of tables that can be evicted from the cache.
| Table_LRU_list_base dict_sys_t::table_non_LRU | 
List of tables that can't be evicted from the cache.
| dict_table_t* dict_sys_t::table_stats | 
Permanent handle to mysql.innodb_table_stats.