MySQL 8.0.39
Source Code Documentation
|
Import a tablespace to a running instance. More...
#include <errno.h>
#include <my_aes.h>
#include <sys/types.h>
#include <memory>
#include <vector>
#include "sql/dd/types/column_type_element.h"
#include "btr0pcur.h"
#include "dict0boot.h"
#include "dict0crea.h"
#include "dict0dd.h"
#include "dict0upgrade.h"
#include "ha_prototypes.h"
#include "ibuf0ibuf.h"
#include "lob0first.h"
#include "lob0impl.h"
#include "lob0lob.h"
#include "lob0pages.h"
#include "log0chkp.h"
#include "pars0pars.h"
#include "que0que.h"
#include "row0import.h"
#include "row0mysql.h"
#include "row0quiesce.h"
#include "row0sel.h"
#include "row0upd.h"
#include "sql/mysqld.h"
#include "srv0start.h"
#include "ut0new.h"
#include "zlob0first.h"
#include "my_dbug.h"
Classes | |
struct | row_stats_t |
For gathering stats on records during phase I. More... | |
struct | row_index_t |
Index information required by IMPORT. More... | |
struct | row_import |
Meta data required by IMPORT. More... | |
class | RecIterator |
Use the page cursor to iterate over records in a block. More... | |
class | IndexPurge |
Class that purges delete marked records from indexes, both secondary and cluster. More... | |
class | AbstractCallback |
Functor that is called for each physical page that is read from the tablespace file. More... | |
struct | FetchIndexRootPages |
Try and determine the index root pages by checking if the next/prev pointers are both FIL_NULL. More... | |
struct | FetchIndexRootPages::Index |
Index information gathered from the .ibd file. More... | |
class | PageConverter |
Functions | |
size_t | IO_BUFFER_SIZE (size_t m, size_t n) |
The size of the buffer to use for IO. More... | |
static void | row_import_discard_changes (row_prebuilt_t *prebuilt, trx_t *trx, dberr_t err) |
Clean up after import tablespace failure, this function will acquire the dictionary latches on behalf of the transaction if the transaction hasn't already acquired them. More... | |
static dberr_t | row_import_cleanup (row_prebuilt_t *prebuilt, trx_t *trx, dberr_t err) |
Clean up after import tablespace. More... | |
static dberr_t | row_import_error (row_prebuilt_t *prebuilt, trx_t *trx, dberr_t err) |
Report error during tablespace import. More... | |
static dberr_t | row_import_adjust_root_pages_of_secondary_indexes (trx_t *trx, dict_table_t *table, const row_import &cfg) |
Adjust the root page index node and leaf node segment headers, update with the new space id. More... | |
static dberr_t | row_import_set_sys_max_row_id (row_prebuilt_t *prebuilt, dict_table_t *table) |
Ensure that dict_sys->row_id exceeds SELECT MAX(DB_ROW_ID). More... | |
static dberr_t | row_import_cfg_read_string (FILE *file, byte *ptr, ulint max_len) |
Read the a string from the meta data file. More... | |
static dberr_t | row_import_cfg_read_index_fields (FILE *file, THD *thd, row_index_t *index, row_import *cfg) |
Write the meta data (index user fields) config file. More... | |
static dberr_t | row_import_read_index_data (FILE *file, THD *thd, row_import *cfg) |
Read the index names and root page numbers of the indexes and set the values. More... | |
static dberr_t | row_import_read_indexes (FILE *file, THD *thd, row_import *cfg) |
Set the index root page number for v1 format. More... | |
static byte * | row_import_read_bytes (FILE *file, size_t length) |
Read specified bytes from the meta data file. More... | |
static dberr_t | row_import_read_default_values (FILE *file, dict_col_t *col, mem_heap_t **heap, bool *read) |
Read the metadata config file. More... | |
static dberr_t | row_import_read_dropped_col_metadata (dd::Table *table_def, FILE *file, THD *thd, dict_col_t *col, const char *col_name) |
Read dd::Column metadata for the dropped table. More... | |
static dberr_t | row_import_read_columns (dd::Table *table_def, FILE *file, THD *thd, row_import *cfg) |
Read the meta data (table columns) config file. More... | |
static dberr_t | row_import_read_v1 (FILE *file, THD *thd, row_import *cfg) |
Read the contents of the <tablespace>.cfg file. More... | |
static dberr_t | row_import_read_v2 (FILE *file, THD *thd, row_import *cfg) |
Read tablespace flags and compression type info from <tablespace>.cfg file. More... | |
static dberr_t | row_import_read_common (dd::Table *table_def, FILE *file, THD *thd, row_import *cfg) |
Read the contents of the <tablespace>.cfg file. More... | |
static dberr_t | row_import_read_meta_data (dict_table_t *table, dd::Table *table_def, FILE *file, THD *thd, row_import &cfg) |
Read the contents of the <tablespace>.cfg file. More... | |
static dberr_t | row_import_read_cfg (dict_table_t *table, dd::Table *table_def, THD *thd, row_import &cfg) |
Read the contents of the <tablename>.cfg file. More... | |
static dberr_t | row_import_read_encryption_data (row_import &cfg, FILE *file, THD *thd) |
Read the contents of the .cfp file. More... | |
static dberr_t | row_import_read_cfp (dict_table_t *table, THD *thd, row_import &import) |
Read the contents of the .cfp file. More... | |
dberr_t | row_import_check_corruption (dict_table_t *table, THD *thd, bool missing) |
Check the correctness of clustered index of imported table. More... | |
dberr_t | row_import_for_mysql (dict_table_t *table, dd::Table *table_def, row_prebuilt_t *prebuilt) |
Imports a tablespace. More... | |
Import a tablespace to a running instance.
Created 2012-02-08 by Sunny Bains.
|
inline |
The size of the buffer to use for IO.
Note: os_file_read() doesn't expect reads to fail. If you set the buffer size to be greater than a multiple of the file size then it will assert. TODO: Fix this limitation of the IO functions.
m | page size of the tablespace. |
n | page size of the tablespace. |
number | of pages |
|
static |
Adjust the root page index node and leaf node segment headers, update with the new space id.
For all the table's secondary indexes.
trx | in: transaction used for the import |
table | in: table the indexes belong to |
cfg | Import context |
|
static |
Write the meta data (index user fields) config file.
file | in: file to write to |
thd | in/out: session |
index | Index being read in |
cfg | in/out: meta-data read |
Read the a string from the meta data file.
file | in/out: File to read from |
ptr | out: string to read |
max_len | in: maximum length of the output buffer in bytes |
dberr_t row_import_check_corruption | ( | dict_table_t * | table, |
THD * | thd, | ||
bool | missing | ||
) |
Check the correctness of clustered index of imported table.
Once there is corruption found, the IMPORT would be refused. This can help to detect the missing .cfg file for a table with instant added columns.
[in,out] | table | InnoDB table object |
[in,out] | thd | MySQL session variable |
[in] | missing | true if .cfg file is missing |
|
static |
Clean up after import tablespace.
prebuilt | in/out: prebuilt from handler |
trx | in/out: transaction for import |
err | in: error code |
|
static |
Clean up after import tablespace failure, this function will acquire the dictionary latches on behalf of the transaction if the transaction hasn't already acquired them.
prebuilt | in/out: prebuilt from handler |
trx | in/out: transaction for import |
err | in: error code |
|
static |
Report error during tablespace import.
prebuilt | in/out: prebuilt from handler |
trx | in/out: transaction for import |
err | in: error code |
dberr_t row_import_for_mysql | ( | dict_table_t * | table, |
dd::Table * | table_def, | ||
row_prebuilt_t * | prebuilt | ||
) |
Imports a tablespace.
The space id in the .ibd file must match the space id of the table in the data dictionary.
[in] | table | table |
[in] | table_def | dd table |
[in] | prebuilt | prebuilt struct in MySQL |
|
static |
Read specified bytes from the meta data file.
[in] | file | file to read from |
[in] | length | length of bytes to read |
|
static |
Read the contents of the <tablename>.cfg file.
[in] | table | table |
[in] | table_def | dd table |
[in] | thd | session |
[in,out] | cfg | contents of the .cfg file |
|
static |
Read the contents of the .cfp file.
[in] | table | table |
[in] | thd | session |
[in,out] | import | meta data |
|
static |
Read the meta data (table columns) config file.
Deserialise the contents of dict_col_t structure, along with the column name.
[in,out] | table_def | Table definition |
[in] | file | file to read from |
[in] | thd | session |
[in] | cfg | meta-data read |
|
static |
Read the contents of the <tablespace>.cfg file.
[in] | table_def | Table definition |
[in] | file | file to read from |
[in] | thd | session |
[in,out] | cfg | meta data |
|
static |
Read the metadata config file.
Deserialise the contents of dict_col_t::instant_default if exists. Refer to row_quiesce_write_default_value() for the format details.
[in] | file | file to read from |
[in,out] | col | column whose default value to read |
[in,out] | heap | memory heap to store default value |
[in,out] | read | true if default value read |
|
static |
Read dd::Column metadata for the dropped table.
[in,out] | table_def | Table definition |
[in] | file | file to read from |
[in] | thd | session |
[in] | col | dict_col_t |
[in] | col_name | name of the columns |
|
static |
Read the contents of the .cfp file.
[out] | cfg | the encryption key will be stored to it |
[in] | file | file to read from |
[in] | thd | session |
|
static |
Read the index names and root page numbers of the indexes and set the values.
Row format [root_page_no, len of str, str ... ]
file | in: File to read from |
thd | in: session |
cfg | in/out: meta-data read |
|
static |
Set the index root page number for v1 format.
file | in: File to read from |
thd | in: session |
cfg | in/out: meta-data read |
|
static |
Read the contents of the <tablespace>.cfg file.
[in] | table | dict table |
[in] | table_def | Table definition |
[in] | file | File to read from |
[in] | thd | session |
[out] | cfg | contents of the .cfg file |
|
static |
Read the contents of the <tablespace>.cfg file.
file | in: File to read from |
thd | in: session |
cfg | out: meta data |
|
static |
Read tablespace flags and compression type info from <tablespace>.cfg file.
[in] | file | File to read from |
[in] | thd | session |
[in,out] | cfg | meta data |
|
static |
Ensure that dict_sys->row_id exceeds SELECT MAX(DB_ROW_ID).
prebuilt | in/out: prebuilt from handler |
table | in: table to import |