summaryrefslogtreecommitdiff
path: root/storage/innobase
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2022-02-14 08:49:11 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2022-02-14 08:49:11 +0200
commite928fdbff1369036694320ee13b99d13fe6a3b60 (patch)
tree8f372ae14fae3862f701e2485ab5df0ccedc2985 /storage/innobase
parenta6ef239b9e3f49002617413d59262dccbb99ed87 (diff)
parente777645d483420fb65e26bb20fde4f0f9ebcd05c (diff)
downloadmariadb-git-e928fdbff1369036694320ee13b99d13fe6a3b60.tar.gz
Merge 10.2 into 10.3
Diffstat (limited to 'storage/innobase')
-rw-r--r--storage/innobase/row/row0sel.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/storage/innobase/row/row0sel.cc b/storage/innobase/row/row0sel.cc
index fbdb03e19b4..ed5b48b59e0 100644
--- a/storage/innobase/row/row0sel.cc
+++ b/storage/innobase/row/row0sel.cc
@@ -354,11 +354,16 @@ row_sel_sec_rec_is_for_clust_rec(
}
len = clust_len;
+ ulint prefix_len = ifield->prefix_len;
if (rec_offs_nth_extern(clust_offs, clust_pos)) {
+ /* BLOB can contain prefix. */
len -= BTR_EXTERN_FIELD_REF_SIZE;
+ if (!len) {
+ goto compare_blobs;
+ }
}
- if (ulint prefix_len = ifield->prefix_len) {
+ if (prefix_len) {
len = dtype_get_at_most_n_mbchars(
col->prtype, col->mbminlen,
col->mbmaxlen, prefix_len, len,
@@ -371,6 +376,7 @@ row_sel_sec_rec_is_for_clust_rec(
check_for_blob:
if (rec_offs_nth_extern(clust_offs,
clust_pos)) {
+compare_blobs:
if (!row_sel_sec_rec_is_for_blob(
col->mtype, col->prtype,
col->mbminlen,