summaryrefslogtreecommitdiffstats
path: root/storage/innobase/row/row0merge.cc
diff options
context:
space:
mode:
Diffstat (limited to 'storage/innobase/row/row0merge.cc')
-rw-r--r--storage/innobase/row/row0merge.cc36
1 files changed, 6 insertions, 30 deletions
diff --git a/storage/innobase/row/row0merge.cc b/storage/innobase/row/row0merge.cc
index 5df93fe6..188d8ba5 100644
--- a/storage/innobase/row/row0merge.cc
+++ b/storage/innobase/row/row0merge.cc
@@ -120,7 +120,7 @@ public:
ut_ad(mtr_started == scan_mtr->is_active());
DBUG_EXECUTE_IF("row_merge_instrument_log_check_flush",
- log_sys.set_check_flush_or_checkpoint(););
+ log_sys.set_check_for_checkpoint(););
for (idx_tuple_vec::iterator it = m_dtuple_vec.begin();
it != m_dtuple_vec.end();
@@ -128,7 +128,7 @@ public:
dtuple = *it;
ut_ad(dtuple);
- if (log_sys.check_flush_or_checkpoint()) {
+ if (log_sys.check_for_checkpoint()) {
if (mtr_started) {
if (!btr_pcur_move_to_prev_on_page(pcur)) {
error = DB_CORRUPTION;
@@ -2235,6 +2235,8 @@ end_of_index:
goto err_exit;
}
+ buf_page_make_young_if_needed(&block->page);
+
page_cur_set_before_first(block, cur);
if (!page_cur_move_to_next(cur)
|| page_cur_is_after_last(cur)) {
@@ -3545,17 +3547,6 @@ row_merge_sort(
of file marker). Thus, it must be at least one block. */
ut_ad(file->offset > 0);
- /* These thd_progress* calls will crash on sol10-64 when innodb_plugin
- is used. MDEV-9356: innodb.innodb_bug53290 fails (crashes) on
- sol10-64 in buildbot.
- */
-#ifndef __sun__
- /* Progress report only for "normal" indexes. */
- if (dup && !(dup->index->type & DICT_FTS)) {
- thd_progress_init(trx->mysql_thd, 1);
- }
-#endif /* __sun__ */
-
if (global_system_variables.log_warnings > 2) {
sql_print_information("InnoDB: Online DDL : merge-sorting"
" has estimated " ULINTPF " runs",
@@ -3564,15 +3555,6 @@ row_merge_sort(
/* Merge the runs until we have one big run */
do {
- /* Report progress of merge sort to MySQL for
- show processlist progress field */
- /* Progress report only for "normal" indexes. */
-#ifndef __sun__
- if (dup && !(dup->index->type & DICT_FTS)) {
- thd_progress_report(trx->mysql_thd, file->offset - num_runs, file->offset);
- }
-#endif /* __sun__ */
-
error = row_merge(trx, dup, file, block, tmpfd,
&num_runs, run_offset, stage,
crypt_block, space);
@@ -3596,13 +3578,6 @@ row_merge_sort(
ut_free(run_offset);
- /* Progress report only for "normal" indexes. */
-#ifndef __sun__
- if (dup && !(dup->index->type & DICT_FTS)) {
- thd_progress_end(trx->mysql_thd);
- }
-#endif /* __sun__ */
-
DBUG_RETURN(error);
}
@@ -4436,13 +4411,14 @@ row_merge_file_create(
merge_file->fd = row_merge_file_create_low(path);
merge_file->offset = 0;
merge_file->n_rec = 0;
-
+#ifdef HAVE_FCNTL_DIRECT
if (merge_file->fd != OS_FILE_CLOSED) {
if (srv_disable_sort_file_cache) {
os_file_set_nocache(merge_file->fd,
"row0merge.cc", "sort");
}
}
+#endif
return(merge_file->fd);
}