diff options
author | Thirunarayanan Balathandayuthapani <thiru@mariadb.com> | 2023-04-11 18:36:55 +0530 |
---|---|---|
committer | Thirunarayanan Balathandayuthapani <thiru@mariadb.com> | 2023-04-19 17:11:14 +0530 |
commit | 2bfd04e3145b238df5f31143b98b1df501f43d1e (patch) | |
tree | b6de2849bba7cb9f1938d9e1bc3663074796a1b0 /storage/innobase | |
parent | b2bbc66a41a7b3b622fbcd477e777c45e3248886 (diff) | |
download | mariadb-git-2bfd04e3145b238df5f31143b98b1df501f43d1e.tar.gz |
MDEV-31025 Redundant table alter fails when fixed column
stored externally
row_merge_buf_add(): Has strict assert that fixed length mismatch
shouldn't happen while rebuilding the redundant row format table
btr_index_rec_validate(): Fixed size column can be stored externally.
So sum of inline stored length and external stored length of the
column should be equal to total column length
Diffstat (limited to 'storage/innobase')
-rw-r--r-- | storage/innobase/btr/btr0btr.cc | 2 | ||||
-rw-r--r-- | storage/innobase/row/row0merge.cc | 5 |
2 files changed, 1 insertions, 6 deletions
diff --git a/storage/innobase/btr/btr0btr.cc b/storage/innobase/btr/btr0btr.cc index f54a8e1125a..2df94715750 100644 --- a/storage/innobase/btr/btr0btr.cc +++ b/storage/innobase/btr/btr0btr.cc @@ -4713,7 +4713,7 @@ n_field_mismatch: len -= BTR_EXTERN_FIELD_REF_SIZE; ulint extern_len = mach_read_from_4( data + len + BTR_EXTERN_LEN + 4); - if (fixed_size == extern_len) { + if (fixed_size == extern_len + len) { goto next_field; } } diff --git a/storage/innobase/row/row0merge.cc b/storage/innobase/row/row0merge.cc index 9d755ce6f1e..f0aed489f22 100644 --- a/storage/innobase/row/row0merge.cc +++ b/storage/innobase/row/row0merge.cc @@ -681,11 +681,6 @@ error: row_field, field, col->len, old_table->space->zip_size(), conv_heap); - } else { - /* Field length mismatch should not - happen when rebuilding redundant row - format table. */ - ut_ad(index->table->not_redundant()); } } } |