summaryrefslogtreecommitdiff
path: root/sql/ha_innodb.cc
diff options
context:
space:
mode:
authorevgen@moonbone.local <>2005-08-09 22:05:07 +0400
committerevgen@moonbone.local <>2005-08-09 22:05:07 +0400
commit2a025ffbebfbe7ee9cdf90ba5a1a317818c32fdb (patch)
treea1efb99bb6b73a6b8c883fc13864a3b8630767f3 /sql/ha_innodb.cc
parent083da3ecee010fc0deae65aba6d61da8cf8433d9 (diff)
downloadmariadb-git-2a025ffbebfbe7ee9cdf90ba5a1a317818c32fdb.tar.gz
Fix bug #12340 Wrong comparison in ha_innobase::cmp_ref()
When PRIMARY KEY is present ha_innobase::cmp_ref() uses it to compare refs. After comparing part of key it moves pointers to compare next part. For varchar parts pointers were moved only by length of parts, not including bytes containig part length itself. This results in wrong comparision and wrong number of deleted records.
Diffstat (limited to 'sql/ha_innodb.cc')
-rw-r--r--sql/ha_innodb.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc
index d98222975c5..026bc0da13d 100644
--- a/sql/ha_innodb.cc
+++ b/sql/ha_innodb.cc
@@ -6852,8 +6852,8 @@ ha_innobase::cmp_ref(
return(result);
}
- ref1 += key_part->length;
- ref2 += key_part->length;
+ ref1 += key_part->store_length;
+ ref2 += key_part->store_length;
}
return(0);