summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2020-04-28 08:42:45 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2020-04-28 19:39:51 +0300
commit2644e52fdbb7943a549f467b4dfd97da2592039d (patch)
tree7497a231bf292bd4a7320719b87c07b037e93286
parent547cb280b87831fb02bedd411f8a3486258f8859 (diff)
downloadmariadb-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.
-rw-r--r--storage/innobase/row/row0upd.cc3
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);