![]()  | 
  
    MySQL 8.0.44
    
   Source Code Documentation 
   | 
 
Data structure that contains the information about shared tablespaces. More...
#include <fsp0sysspace.h>
Public Member Functions | |
| SysTablespace () | |
| ~SysTablespace () override | |
| void | set_tablespace_full_status (bool is_full) | 
| Set tablespace full status.  More... | |
| bool | get_tablespace_full_status () | 
| Get tablespace full status.  More... | |
| void | set_sanity_check_status (bool status) | 
| Set sanity check status.  More... | |
| bool | get_sanity_check_status () | 
| Get sanity check status.  More... | |
| bool | parse_params (const char *filepath_spec, bool supports_raw) | 
| Parse the input params and populate member variables.  More... | |
| dberr_t | check_file_spec (bool create_new_db, ulint min_expected_size) | 
| Check the data file specification.  More... | |
| void | shutdown () | 
| Free the memory allocated by parse()  More... | |
| bool | created_new_raw () const | 
| ulint | can_auto_extend_last_file () const | 
| void | set_last_file_size (page_no_t size) | 
| Set the last file size.  More... | |
| page_no_t | last_file_size () const | 
| Get the number of pages in the last data file in the tablespace.  More... | |
| page_no_t | get_autoextend_increment () const | 
| page_no_t | get_pages_from_size (os_offset_t size) | 
| Round the number of bytes in the file to MegaBytes and then return the number of pages.  More... | |
| page_no_t | get_increment () const | 
| dberr_t | open_or_create (bool is_temp, bool create_new_db, page_no_t *sum_new_sizes, lsn_t *flush_lsn) | 
| Open or create the data files.  More... | |
  Public Member Functions inherited from Tablespace | |
| Tablespace () | |
| virtual | ~Tablespace () | 
| Tablespace (const Tablespace &) | |
| Tablespace & | operator= (const Tablespace &) | 
| void | set_name (const char *name) | 
| Set tablespace name.  More... | |
| const char * | name () const | 
| Get tablespace name.  More... | |
| void | set_path (const char *path, size_t len) | 
| Set tablespace path and filename members.  More... | |
| void | set_path (const char *path) | 
| Set tablespace path and filename members.  More... | |
| const char * | path () const | 
| Get tablespace path.  More... | |
| void | set_space_id (space_id_t space_id) | 
| Set the space id of the tablespace.  More... | |
| space_id_t | space_id () const | 
| Get the space id of the tablespace.  More... | |
| void | set_flags (uint32_t fsp_flags) | 
| Set the tablespace flags.  More... | |
| uint32_t | flags () const | 
| Get the tablespace flags.  More... | |
| void | set_ignore_read_only (bool read_only_status) | 
| Set Ignore Read Only Status for tablespace.  More... | |
| void | shutdown () | 
| Free the memory allocated by the Tablespace object.  More... | |
| page_no_t | get_sum_of_sizes () const | 
| void | delete_files () | 
| Delete all the data files.  More... | |
| bool | intersection (const Tablespace *other_space) | 
| Check if two tablespaces have common data file names.  More... | |
| dberr_t | add_datafile (const char *datafile_added) | 
| Use the ADD DATAFILE path to create a Datafile object and add it to the front of m_files.  More... | |
| Datafile * | first_datafile () | 
| void | set_autoextend_size (uint64_t size) | 
| uint64_t | get_autoextend_size () const | 
Private Types | |
| enum | file_status_t { FILE_STATUS_VOID = 0 , FILE_STATUS_RW_PERMISSION_ERROR , FILE_STATUS_READ_WRITE_ERROR , FILE_STATUS_NOT_REGULAR_FILE_ERROR } | 
Private Member Functions | |
| dberr_t | read_lsn_and_check_flags (lsn_t *flushed_lsn) | 
| Check the tablespace header for this tablespace.  More... | |
| dberr_t | file_not_found (Datafile &file, bool create_new_db) | 
| Note that the data file was not found.  More... | |
| void | file_found (Datafile &file) | 
| Note that the data file was found.  More... | |
| dberr_t | create (Datafile &file) | 
| Create a data file.  More... | |
| dberr_t | create_file (Datafile &file) | 
| Create a data file.  More... | |
| dberr_t | open_file (Datafile &file) | 
| Open a data file.  More... | |
| dberr_t | set_size (Datafile &file) | 
| Set the size of the file.  More... | |
| page_no_t | parse_units (char *&ptr) | 
| Convert a numeric string that optionally ends in upper or lower case G, M, or K, rounding off to the nearest number of megabytes.  More... | |
| dberr_t | check_size (Datafile &file) | 
| Verify the size of the physical file.  More... | |
| dberr_t | check_file_status (const Datafile &file, file_status_t &reason) | 
| Check if a file can be opened in the correct mode.  More... | |
Static Private Member Functions | |
| static char * | parse_file_name (char *ptr) | 
| Put the pointer to the next byte after a valid file name.  More... | |
Private Attributes | |
| bool | m_auto_extend_last_file | 
| if true, then we auto-extend the last data file  More... | |
| page_no_t | m_last_file_size_max | 
| if != 0, this tells the max size auto-extending may increase the last data file size  More... | |
| bool | m_created_new_raw | 
| If the following is true we do not allow inserts etc.  More... | |
| bool | m_is_tablespace_full | 
| Tablespace full status.  More... | |
| bool | m_sanity_checks_done | 
| if false, then sanity checks are still pending  More... | |
Additional Inherited Members | |
  Public Types inherited from Tablespace | |
| typedef std::vector< Datafile, ut::allocator< Datafile > > | files_t | 
  Public Attributes inherited from Tablespace | |
| files_t | m_files | 
| Data file information - each Datafile can be accessed globally.  More... | |
  Protected Attributes inherited from Tablespace | |
| bool | m_ignore_read_only | 
| Ignore server read only configuration for this tablespace.  More... | |
Data structure that contains the information about shared tablespaces.
Currently this can be the system tablespace or a temporary table tablespace
      
  | 
  private | 
      
  | 
  inline | 
      
  | 
  inlineoverride | 
      
  | 
  inline | 
Check the data file specification.
| [in] | create_new_db | True if a new database is to be created | 
| [in] | min_expected_size | Minimum expected tablespace size in bytes | 
      
  | 
  private | 
Check if a file can be opened in the correct mode.
| [in,out] | file | data file object | 
| [out] | reason | exact reason if file_status check failed. | 
Verify the size of the physical file.
| [in] | file | data file object | 
Create a data file.
| [in,out] | file | data file object | 
Create a data file.
| [in,out] | file | data file object | 
      
  | 
  inline | 
      
  | 
  private | 
Note that the data file was found.
| [in,out] | file | data file object | 
Note that the data file was not found.
| [in] | file | data file object | 
| [in] | create_new_db | true if a new instance to be created | 
      
  | 
  inline | 
| page_no_t SysTablespace::get_increment | ( | ) | const | 
      
  | 
  inline | 
Round the number of bytes in the file to MegaBytes and then return the number of pages.
Note: Only system tablespaces are required to be at least 1 megabyte.
      
  | 
  inline | 
Get sanity check status.
      
  | 
  inline | 
Get tablespace full status.
      
  | 
  inline | 
Get the number of pages in the last data file in the tablespace.
Open a data file.
| [in,out] | file | data file object | 
| dberr_t SysTablespace::open_or_create | ( | bool | is_temp, | 
| bool | create_new_db, | ||
| page_no_t * | sum_new_sizes, | ||
| lsn_t * | flush_lsn | ||
| ) | 
Open or create the data files.
| [in] | is_temp | whether this is a temporary tablespace | 
| [in] | create_new_db | whether we are creating a new database | 
| [out] | sum_new_sizes | sum of sizes of the new files added | 
| [out] | flush_lsn | lsn stored at offset FIL_PAGE_FILE_FLUSH_LSN in the system tablespace header; might be nullptr if not interested in having that | 
      
  | 
  staticprivate | 
Put the pointer to the next byte after a valid file name.
Note that we must step over the ':' in a Windows filepath. A Windows path normally looks like "C:\ibdata\ibdata1:1G", but a Windows raw partition may have a specification like "\\.\C::1Gnewraw" or "\\.\PHYSICALDRIVE2:1Gnewraw".
| [in] | ptr | system tablespace file path spec | 
| bool SysTablespace::parse_params | ( | const char * | filepath_spec, | 
| bool | supports_raw | ||
| ) | 
Parse the input params and populate member variables.
| [in] | filepath_spec | path to data files | 
| [in] | supports_raw | true if the tablespace supports raw devices | 
      
  | 
  private | 
Convert a numeric string that optionally ends in upper or lower case G, M, or K, rounding off to the nearest number of megabytes.
Convert a numeric string representing a number of bytes optionally ending in upper or lower case G, M, or K, to a number of megabytes, rounding down to the nearest megabyte.
Then return the number of pages in the file.
| [in,out] | ptr | Pointer to a numeric string | 
Check the tablespace header for this tablespace.
| [out] | flushed_lsn | value stored at offset FIL_PAGE_FILE_FLUSH_LSN | 
      
  | 
  inline | 
Set the last file size.
| [in] | size | the size to set | 
      
  | 
  inline | 
Set sanity check status.
| [in] | status | true if sanity checks are done | 
Set the size of the file.
| [in,out] | file | data file object | 
      
  | 
  inline | 
Set tablespace full status.
| [in] | is_full | true if full | 
| void SysTablespace::shutdown | ( | ) | 
Free the memory allocated by parse()
Frees the memory allocated by the parse method.
      
  | 
  private | 
if true, then we auto-extend the last data file
      
  | 
  private | 
If the following is true we do not allow inserts etc.
This protects the user from forgetting the 'newraw' keyword to my.cnf
      
  | 
  private | 
Tablespace full status.
      
  | 
  private | 
if != 0, this tells the max size auto-extending may increase the last data file size
      
  | 
  private | 
if false, then sanity checks are still pending