diff options
author | Thirunarayanan Balathandayuthapani <thiru@mariadb.com> | 2023-04-11 18:18:26 +0530 |
---|---|---|
committer | Thirunarayanan Balathandayuthapani <thiru@mariadb.com> | 2023-04-11 18:18:54 +0530 |
commit | 6a470f99fe5c9c188f517b8c7f529cc3ecef71b6 (patch) | |
tree | 15026655a89d932e098836ca6c988722af2d649d | |
parent | fbed00a68725b3f74a5d8ba8635fcc2de5a659e8 (diff) | |
download | mariadb-git-bb-10.6-MDEV-29273.tar.gz |
MDEV-31025 Redundant table alter fails when fixed columnbb-10.6-MDEV-29273
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
-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 0b74d3b4311..3b03df3f47c 100644 --- a/storage/innobase/btr/btr0btr.cc +++ b/storage/innobase/btr/btr0btr.cc @@ -4754,7 +4754,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 70b51fbb812..5426aba08ef 100644 --- a/storage/innobase/row/row0merge.cc +++ b/storage/innobase/row/row0merge.cc @@ -700,11 +700,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()); } } } |