diff options
Diffstat (limited to 'storage/innobase/btr/btr0cur.cc')
-rw-r--r-- | storage/innobase/btr/btr0cur.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/storage/innobase/btr/btr0cur.cc b/storage/innobase/btr/btr0cur.cc index 2b984b24fd1..2ae6da00549 100644 --- a/storage/innobase/btr/btr0cur.cc +++ b/storage/innobase/btr/btr0cur.cc @@ -2316,6 +2316,15 @@ any_extern: rec = page_cur_get_rec(page_cursor); } + /* We limit max record size to 16k for 64k page size. */ + if (!dict_table_is_comp(index->table) + && new_rec_size > REDUNDANT_REC_MAX_DATA_SIZE) { + ut_ad(srv_page_size == UNIV_PAGE_SIZE_MAX); + err = DB_OVERFLOW; + + goto func_exit; + } + if (UNIV_UNLIKELY(new_rec_size >= (page_get_free_space_of_empty(page_is_comp(page)) / 2))) { |