summaryrefslogtreecommitdiff
path: root/storage/innobase
diff options
context:
space:
mode:
authorThirunarayanan Balathandayuthapani <thiru@mariadb.com>2020-02-07 16:01:31 +0530
committerThirunarayanan Balathandayuthapani <thiru@mariadb.com>2020-02-07 16:01:31 +0530
commit3be751d5b9076239baaa07677ab81304fcd92207 (patch)
tree7192bf26bdfd7337b0857f421090e81548723b27 /storage/innobase
parentebbc572b828007e519aee8595dd98938aa2d2f9d (diff)
downloadmariadb-git-3be751d5b9076239baaa07677ab81304fcd92207.tar.gz
MDEV-21608 Assertion `n_ext == dtuple_get_n_ext(dtuple)' failed during updation of PK
- n_ext value may be less than dtuple_get_n_ext(dtuple) when PK is being updated and new record inherits the externally stored fields from delete mark old record.
Diffstat (limited to 'storage/innobase')
-rw-r--r--storage/innobase/include/rem0rec.ic6
1 files changed, 5 insertions, 1 deletions
diff --git a/storage/innobase/include/rem0rec.ic b/storage/innobase/include/rem0rec.ic
index 7a9b31648da..eae1c52a2a5 100644
--- a/storage/innobase/include/rem0rec.ic
+++ b/storage/innobase/include/rem0rec.ic
@@ -1626,7 +1626,11 @@ rec_get_converted_size(
data_size = dtuple_get_data_size(dtuple, 0);
- ut_ad(n_ext == dtuple_get_n_ext(dtuple));
+ /* If primary key is being updated then the new record inherits
+ externally stored fields from the delete-marked old record.
+ In that case, n_ext may be less value than
+ dtuple_get_n_ext(tuple). */
+ ut_ad(n_ext <= dtuple_get_n_ext(dtuple));
extra_size = rec_get_converted_extra_size(
data_size, dtuple_get_n_fields(dtuple), n_ext);