diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2020-04-28 08:42:45 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2020-04-28 19:39:51 +0300 |
commit | 2644e52fdbb7943a549f467b4dfd97da2592039d (patch) | |
tree | 7497a231bf292bd4a7320719b87c07b037e93286 /storage/innobase/row | |
parent | 547cb280b87831fb02bedd411f8a3486258f8859 (diff) | |
download | mariadb-git-2644e52fdbb7943a549f467b4dfd97da2592039d.tar.gz |
MDEV-22384 Wrong estimate of affected BLOB columns in update of PRIMARY KEY
During the UPDATE of PRIMARY KEY columns, we may miscalculate the
size of the clustered index record.
row_upd_clust_rec_by_insert(): Pass the total number of off-page columns,
which may include such columns that were inherited from the record
and not created as part of the UPDATE operation.
This is based on
mysql/mysql-server@490c45e8c8e07197958dbb21214fd45ed668b559
which is a follow-up to
mysql/mysql-server@1fa475b85d24de4b9ce2958c0eed738c221fc82c
which we filed and fixed as MDEV-21511.
No test case was provided by Oracle.
Diffstat (limited to 'storage/innobase/row')
-rw-r--r-- | storage/innobase/row/row0upd.cc | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/storage/innobase/row/row0upd.cc b/storage/innobase/row/row0upd.cc index 31d4d31c1f9..3cd2a1ef04f 100644 --- a/storage/innobase/row/row0upd.cc +++ b/storage/innobase/row/row0upd.cc @@ -2805,8 +2805,7 @@ check_fk: mtr_commit(mtr); err = row_ins_clust_index_entry( - index, entry, thr, - node->upd_ext ? node->upd_ext->n_ext : 0); + index, entry, thr, dtuple_get_n_ext(entry)); node->state = UPD_NODE_INSERT_CLUSTERED; mem_heap_free(heap); |