summaryrefslogtreecommitdiff
path: root/storage/innobase
diff options
context:
space:
mode:
authorThirunarayanan Balathandayuthapani <thiru@mariadb.com>2023-03-13 15:41:06 +0530
committerThirunarayanan Balathandayuthapani <thiru@mariadb.com>2023-03-14 13:34:23 +0530
commitdfdcd7ffab17cfc52545090acb26cb324d9de610 (patch)
tree19828b6290870f9fa21d978f394debb46ac36763 /storage/innobase
parent8b37e79a393dcaef3e09fb72564545e4909cbfb0 (diff)
downloadmariadb-git-dfdcd7ffab17cfc52545090acb26cb324d9de610.tar.gz
MDEV-26198 Assertion `0' failed in row_log_table_apply_op during
redundant table rebuild - InnoDB alter fails to apply the online log during redundant table rebuild. Problem is that InnoDB wrongly reads the length flags of the record while applying the temporary log record. rec_init_offsets_comp_ordinary(): For finding the n_core_null_bytes, InnoDB should use the same logic as rec_convert_dtuple_to_rec_comp().
Diffstat (limited to 'storage/innobase')
-rw-r--r--storage/innobase/rem/rem0rec.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/storage/innobase/rem/rem0rec.cc b/storage/innobase/rem/rem0rec.cc
index de300bf799a..3bb417eedff 100644
--- a/storage/innobase/rem/rem0rec.cc
+++ b/storage/innobase/rem/rem0rec.cc
@@ -287,7 +287,9 @@ rec_init_offsets_comp_ordinary(
!= n_core)
? UT_BITS_IN_BYTES(unsigned(index->get_n_nullable(n_core)))
: (redundant_temp
- ? UT_BITS_IN_BYTES(index->n_nullable)
+ ? (index->is_instant()
+ ? UT_BITS_IN_BYTES(index->get_n_nullable(n_core))
+ : UT_BITS_IN_BYTES(index->n_nullable))
: index->n_core_null_bytes);
if (mblob) {