mariadb/storage/innobase/dict
Eugene Kosov 5ebef42238 MDEV-19292 "Row size too large" error when creating table with lots columns when row format is DYNAMIC or COMPRESSED
Basic idea of the patch: disallow creating tables which allow to create
rows which are too big to insert. In other words, if user created a table user
should never see an errors like 'can not insert row as it is too big for current
page size'.

SET innodb_strict_mode=OFF; will allow to create very long tables and only a
warning will be issued.

dict_table_t::get_overflow_field_local_len(): this function lets know a maximum
local field len for overflow fields for every file and row format.

innobase_check_column_length(): improve name to too_big_key_part_length()
and reuse in a different part of code.

create_table_info_t::prepare_create_table(): add check for maximum allowed
key part length to keep ALGORITHM=COPY behavior similar to ALGORITHM=INPLACE
behavior. Affected test is innodb.strict_mode

Rename dict_index_too_big_for_tree() to
dict_index_t::rec_potentially_too_big(): copy overflow-related size computation
from dtuple_convert_big_rec(). A lot of tests was changed because of that.
I wonder whether users will complain about it?

Test innodb.max_record_size tests dict_index_t::rec_potentially_too_big()
for different row formats and page sizes.
2019-07-05 17:02:21 +03:00
..
dict0boot.cc Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
dict0crea.cc Remove unnecessary pointer indirection for rw_lock_t 2019-05-13 18:46:12 +03:00
dict0defrag_bg.cc Remove unnecessary pointer indirection for rw_lock_t 2019-05-13 18:46:12 +03:00
dict0dict.cc MDEV-19292 "Row size too large" error when creating table with lots columns when row format is DYNAMIC or COMPRESSED 2019-07-05 17:02:21 +03:00
dict0load.cc Remove unnecessary pointer indirection for rw_lock_t 2019-05-13 18:46:12 +03:00
dict0mem.cc Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
dict0stats.cc Remove unnecessary pointer indirection for rw_lock_t 2019-05-13 18:46:12 +03:00
dict0stats_bg.cc Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00