From 98694ab0cbaf623c6ad67dd45d6f90c5c6214fd1 Mon Sep 17 00:00:00 2001 From: Eugene Kosov Date: Sun, 3 Nov 2019 00:15:29 +0300 Subject: MDEV-20949 Stop issuing 'row size' error on DML Move row size check to early CREATE/ALTER TABLE phase. Stop checking on table open. dict_index_add_to_cache(): remove parameter 'strict', stop checking row size dict_index_t::record_size_info_t: this is a result of row size check operation create_table_info_t::row_size_is_acceptable(): performs row size check. Issues error or warning. Writes first overflow field to InnoDB log. create_table_info_t::create_table(): add row size check dict_index_t::record_size_info(): this is a refactored version of dict_index_t::rec_potentially_too_big(). New version doesn't change global state of a program but return all interesting info. And it's callers who decide how to handle row size overflow. dict_index_t::rec_potentially_too_big(): removed --- storage/innobase/row/row0mysql.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'storage/innobase/row') diff --git a/storage/innobase/row/row0mysql.cc b/storage/innobase/row/row0mysql.cc index a5795ff90e8..dabdeeec68b 100644 --- a/storage/innobase/row/row0mysql.cc +++ b/storage/innobase/row/row0mysql.cc @@ -2450,8 +2450,7 @@ row_create_index_for_mysql( } else { dict_build_index_def(table, index, trx); - err = dict_index_add_to_cache( - table, index, FIL_NULL, trx_is_strict(trx)); + err = dict_index_add_to_cache(table, index, FIL_NULL); ut_ad((index == NULL) == (err != DB_SUCCESS)); if (err != DB_SUCCESS) { -- cgit v1.2.1