Commit 959f7415 authored by Oleksandr Byelkin's avatar Oleksandr Byelkin

Merge branch 'merge-xtradb-5.6' into 10.0

parents c2197e0c 3262afc6
......@@ -48,7 +48,7 @@ Created 1/20/1994 Heikki Tuuri
#define INNODB_VERSION_BUGFIX 39
#ifndef PERCONA_INNODB_VERSION
#define PERCONA_INNODB_VERSION 84.1
#define PERCONA_INNODB_VERSION 84.2
#endif
/* Enable UNIV_LOG_ARCHIVE in XtraDB */
......
......@@ -1873,6 +1873,8 @@ log_online_purge_changed_page_bitmaps(
for (i = 0; i < bitmap_files.count; i++) {
char full_bmp_file_name[2 * FN_REFLEN + 2];
/* We consider the end LSN of the current bitmap, derived from
the start LSN of the subsequent bitmap file, to determine
whether to remove the current bitmap. Note that bitmap_files
......@@ -1888,8 +1890,45 @@ log_online_purge_changed_page_bitmaps(
break;
}
/* In some non-trivial cases the sequence of .xdb files may
have gaps. For instance:
ib_modified_log_1_0.xdb
ib_modified_log_2_<mmm>.xdb
ib_modified_log_4_<nnn>.xdb
Adding this check as a safety precaution. */
if (bitmap_files.files[i].name[0] == '\0')
continue;
/* If redo log tracking is enabled, reuse 'bmp_file_home'
from 'log_bmp_sys'. Otherwise, compose the full '.xdb' file
path from 'srv_data_home', adding a path separator if
necessary. */
if (log_bmp_sys != NULL) {
ut_snprintf(full_bmp_file_name,
sizeof(full_bmp_file_name),
"%s%s", log_bmp_sys->bmp_file_home,
bitmap_files.files[i].name);
}
else {
char separator[2] = {0, 0};
const size_t srv_data_home_len =
strlen(srv_data_home);
ut_a(srv_data_home_len < FN_REFLEN);
if (srv_data_home_len != 0 &&
srv_data_home[srv_data_home_len - 1] !=
SRV_PATH_SEPARATOR) {
separator[0] = SRV_PATH_SEPARATOR;
}
ut_snprintf(full_bmp_file_name,
sizeof(full_bmp_file_name), "%s%s%s",
srv_data_home, separator,
bitmap_files.files[i].name);
}
if (!os_file_delete_if_exists(innodb_file_bmp_key,
bitmap_files.files[i].name)) {
full_bmp_file_name)) {
os_file_get_last_error(TRUE);
result = TRUE;
......
......@@ -4996,18 +4996,6 @@ row_rename_table_for_mysql(
goto funct_exit;
}
/* Wait for background fts sync to finish */
for (retry = 1; dict_fts_index_syncing(table); ++retry) {
DICT_BG_YIELD(trx);
if (retry % 100 == 0) {
ib_logf(IB_LOG_LEVEL_INFO,
"Unable to rename table %s to new name"
" %s because FTS sync is running on table."
" Retrying\n",
old_name, new_name);
}
}
/* We use the private SQL parser of Innobase to generate the query
graphs needed in updating the dictionary data from system tables. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment