mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
bin chatset now handles strnncoll itself so we don't have to check
if charset is binary anymore
This commit is contained in:
30
sql/field.cc
30
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 a_length= (uint) (uchar) *a++;
|
||||||
uint b_length= (uint) (uchar) *b++;
|
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,
|
return my_strnncoll(field_charset,
|
||||||
(const uchar*)a,a_length,
|
(const uchar*)a,a_length,
|
||||||
(const uchar*)b,b_length);
|
(const uchar*)b,b_length);
|
||||||
@ -4036,11 +4031,6 @@ int Field_string::pack_cmp(const char *b, uint length)
|
|||||||
end--;
|
end--;
|
||||||
uint a_length = (uint) (end - ptr);
|
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,
|
return my_strnncoll(field_charset,
|
||||||
(const uchar*)ptr,a_length,
|
(const uchar*)ptr,a_length,
|
||||||
(const uchar*)b, b_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++;
|
a_length= (uint) (uchar) *a++;
|
||||||
b_length= (uint) (uchar) *b++;
|
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,
|
return my_strnncoll(field_charset,
|
||||||
(const uchar *)a,a_length,
|
(const uchar *)a,a_length,
|
||||||
(const uchar *)b,b_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++;
|
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,
|
return my_strnncoll(field_charset,
|
||||||
(const uchar *)a,a_length,
|
(const uchar *)a,a_length,
|
||||||
(const uchar *)b,b_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++;
|
a_length= (uint) (uchar) *a++;
|
||||||
b_length= (uint) (uchar) *b++;
|
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,
|
return my_strnncoll(field_charset,
|
||||||
(const uchar *)a,a_length,
|
(const uchar *)a,a_length,
|
||||||
(const uchar *)b,b_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++;
|
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,
|
return my_strnncoll(field_charset,
|
||||||
(const uchar *)a,a_length,
|
(const uchar *)a,a_length,
|
||||||
(const uchar *)b,b_length);
|
(const uchar *)b,b_length);
|
||||||
|
@ -47,8 +47,8 @@ static int my_strnncoll_binary(CHARSET_INFO * cs __attribute__((unused)),
|
|||||||
const uchar *s, uint slen,
|
const uchar *s, uint slen,
|
||||||
const uchar *t, uint tlen)
|
const uchar *t, uint tlen)
|
||||||
{
|
{
|
||||||
int len = ( slen > tlen ) ? tlen : slen;
|
int cmp= memcmp(s,t,min(slen,tlen));
|
||||||
return memcmp(s,t,len);
|
return cmp ? cmp : (int) (slen - tlen);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void my_caseup_str_bin(CHARSET_INFO *cs __attribute__((unused)),
|
static void my_caseup_str_bin(CHARSET_INFO *cs __attribute__((unused)),
|
||||||
|
Reference in New Issue
Block a user