diff --git a/mysql-8.0.19/storage/innobase/btr/btr0btr.cc b/mysql-8.0.19/storage/innobase/btr/btr0btr.cc index 6614bbfa1..9da1bf932 100644 --- a/mysql-8.0.19/storage/innobase/btr/btr0btr.cc +++ b/mysql-8.0.19/storage/innobase/btr/btr0btr.cc @@ -2219,7 +2219,7 @@ static rec_t *btr_insert_into_right_sibling(uint32_t flags, btr_cur_t *cursor, page_t *next_page; btr_cur_t next_father_cursor; rec_t *rec = NULL; - ulint max_size; + ulint max_size = 0; const space_id_t space = block->page.id.space(); @@ -2234,8 +2234,12 @@ static rec_t *btr_insert_into_right_sibling(uint32_t flags, btr_cur_t *cursor, page_cur_search(next_block, cursor->index, tuple, PAGE_CUR_LE, &next_page_cursor); - max_size = page_get_max_insert_size_after_reorganize(next_page, 1); - + if (is_leaf && !cursor->index->is_clustered() && + !cursor->index->table->is_temporary() && + !next_block->page.size.is_compressed()) { + max_size = page_get_max_insert_size_after_reorganize(next_page, 1); + } + /* Extends gap lock for the next page */ if (!dict_table_is_locking_disabled(cursor->index->table)) { lock_update_split_left(next_block, block);