summaryrefslogtreecommitdiff
path: root/storage/innobase
diff options
context:
space:
mode:
authorThirunarayanan Balathandayuthapani <thiru@mariadb.com>2023-04-11 18:36:55 +0530
committerThirunarayanan Balathandayuthapani <thiru@mariadb.com>2023-04-19 17:11:14 +0530
commit2bfd04e3145b238df5f31143b98b1df501f43d1e (patch)
treeb6de2849bba7cb9f1938d9e1bc3663074796a1b0 /storage/innobase
parentb2bbc66a41a7b3b622fbcd477e777c45e3248886 (diff)
downloadmariadb-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.cc2
-rw-r--r--storage/innobase/row/row0merge.cc5
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());
}
}
}