summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThirunarayanan Balathandayuthapani <thiru@mariadb.com>2023-04-11 18:18:26 +0530
committerThirunarayanan Balathandayuthapani <thiru@mariadb.com>2023-04-11 18:18:54 +0530
commit6a470f99fe5c9c188f517b8c7f529cc3ecef71b6 (patch)
tree15026655a89d932e098836ca6c988722af2d649d
parentfbed00a68725b3f74a5d8ba8635fcc2de5a659e8 (diff)
downloadmariadb-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.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 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());
}
}
}