summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <bar@bar.mysql.r18.ru>2003-01-14 18:28:50 +0400
committerunknown <bar@bar.mysql.r18.ru>2003-01-14 18:28:50 +0400
commit5ce475835c84a79279b78838edc5113329a785ca (patch)
tree3144649134643eea925951158fa9473a75197666
parent8b255948974868d0c5281ab81e17e789c7a0894f (diff)
downloadmariadb-git-5ce475835c84a79279b78838edc5113329a785ca.tar.gz
bin chatset now handles strnncoll itself so we don't have to check
if charset is binary anymore
-rw-r--r--sql/field.cc30
-rw-r--r--strings/ctype-bin.c4
2 files changed, 2 insertions, 32 deletions
diff --git a/sql/field.cc b/sql/field.cc
index f81f72635b9..467096a4a71 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -4017,11 +4017,6 @@ int Field_string::pack_cmp(const char *a, const char *b, uint length)
uint a_length= (uint) (uchar) *a++;
uint b_length= (uint) (uchar) *b++;
- if (binary())
- {
- int cmp= memcmp(a,b,min(a_length,b_length));
- return cmp ? cmp : (int) (a_length - b_length);
- }
return my_strnncoll(field_charset,
(const uchar*)a,a_length,
(const uchar*)b,b_length);
@@ -4036,11 +4031,6 @@ int Field_string::pack_cmp(const char *b, uint length)
end--;
uint a_length = (uint) (end - ptr);
- if (binary())
- {
- int cmp= memcmp(ptr,b,min(a_length,b_length));
- return cmp ? cmp : (int) (a_length - b_length);
- }
return my_strnncoll(field_charset,
(const uchar*)ptr,a_length,
(const uchar*)b, b_length);
@@ -4231,11 +4221,6 @@ int Field_varstring::pack_cmp(const char *a, const char *b, uint key_length)
a_length= (uint) (uchar) *a++;
b_length= (uint) (uchar) *b++;
}
- if (binary())
- {
- int cmp= memcmp(a,b,min(a_length,b_length));
- return cmp ? cmp : (int) (a_length - b_length);
- }
return my_strnncoll(field_charset,
(const uchar *)a,a_length,
(const uchar *)b,b_length);
@@ -4254,11 +4239,6 @@ int Field_varstring::pack_cmp(const char *b, uint key_length)
{
b_length= (uint) (uchar) *b++;
}
- if (binary())
- {
- int cmp= memcmp(a,b,min(a_length,b_length));
- return cmp ? cmp : (int) (a_length - b_length);
- }
return my_strnncoll(field_charset,
(const uchar *)a,a_length,
(const uchar *)b,b_length);
@@ -4747,11 +4727,6 @@ int Field_blob::pack_cmp(const char *a, const char *b, uint key_length)
a_length= (uint) (uchar) *a++;
b_length= (uint) (uchar) *b++;
}
- if (binary())
- {
- int cmp= memcmp(a,b,min(a_length,b_length));
- return cmp ? cmp : (int) (a_length - b_length);
- }
return my_strnncoll(field_charset,
(const uchar *)a,a_length,
(const uchar *)b,b_length);
@@ -4775,11 +4750,6 @@ int Field_blob::pack_cmp(const char *b, uint key_length)
{
b_length= (uint) (uchar) *b++;
}
- if (binary())
- {
- int cmp= memcmp(a,b,min(a_length,b_length));
- return cmp ? cmp : (int) (a_length - b_length);
- }
return my_strnncoll(field_charset,
(const uchar *)a,a_length,
(const uchar *)b,b_length);
diff --git a/strings/ctype-bin.c b/strings/ctype-bin.c
index 0d7729721ad..e20afff1470 100644
--- a/strings/ctype-bin.c
+++ b/strings/ctype-bin.c
@@ -47,8 +47,8 @@ static int my_strnncoll_binary(CHARSET_INFO * cs __attribute__((unused)),
const uchar *s, uint slen,
const uchar *t, uint tlen)
{
- int len = ( slen > tlen ) ? tlen : slen;
- return memcmp(s,t,len);
+ int cmp= memcmp(s,t,min(slen,tlen));
+ return cmp ? cmp : (int) (slen - tlen);
}
static void my_caseup_str_bin(CHARSET_INFO *cs __attribute__((unused)),