mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Simple charsets now have strncoll() field too
This commit is contained in:
@ -20,32 +20,30 @@
|
||||
#include "assert.h"
|
||||
|
||||
int my_strnxfrm_simple(CHARSET_INFO * cs,
|
||||
char *dest, uint len,
|
||||
const char *src, uint srclen)
|
||||
uchar *dest, uint len,
|
||||
const uchar *src, uint srclen)
|
||||
{
|
||||
uchar *map= cs->sort_order;
|
||||
DBUG_ASSERT(len >= srclen);
|
||||
|
||||
for ( ; len > 0 ; len-- )
|
||||
*dest++= (char) map[(uchar) *src++];
|
||||
*dest++= map[*src++];
|
||||
return srclen;
|
||||
}
|
||||
|
||||
int my_strnncoll_simple(CHARSET_INFO * cs, const char *s, uint slen,
|
||||
const char *t, uint tlen)
|
||||
int my_strnncoll_simple(CHARSET_INFO * cs, const uchar *s, uint slen,
|
||||
const uchar *t, uint tlen)
|
||||
{
|
||||
int len = ( slen > tlen ) ? tlen : slen;
|
||||
uchar *map= cs->sort_order;
|
||||
while (len--)
|
||||
{
|
||||
if (map[(uchar) *s++] != map[(uchar) *t++])
|
||||
return ((int) map[(uchar) s[-1]] -
|
||||
(int) map[(uchar) t[-1]]);
|
||||
if (map[*s++] != map[*t++])
|
||||
return ((int) map[s[-1]] - (int) map[t[-1]]);
|
||||
}
|
||||
return (int) (slen-tlen);
|
||||
}
|
||||
|
||||
|
||||
void my_caseup_str_8bit(CHARSET_INFO * cs,char *str)
|
||||
{
|
||||
register uchar *map=cs->to_upper;
|
||||
@ -53,7 +51,6 @@ void my_caseup_str_8bit(CHARSET_INFO * cs,char *str)
|
||||
str++;
|
||||
}
|
||||
|
||||
|
||||
void my_casedn_str_8bit(CHARSET_INFO * cs,char *str)
|
||||
{
|
||||
register uchar *map=cs->to_lower;
|
||||
@ -61,7 +58,6 @@ void my_casedn_str_8bit(CHARSET_INFO * cs,char *str)
|
||||
str++;
|
||||
}
|
||||
|
||||
|
||||
void my_caseup_8bit(CHARSET_INFO * cs, char *str, uint length)
|
||||
{
|
||||
register uchar *map=cs->to_upper;
|
||||
@ -76,6 +72,12 @@ void my_casedn_8bit(CHARSET_INFO * cs, char *str, uint length)
|
||||
*str= (char) map[(uchar) *str];
|
||||
}
|
||||
|
||||
void my_tosort_8bit(CHARSET_INFO *cs, char *str, uint length)
|
||||
{
|
||||
register uchar *map=cs->sort_order;
|
||||
for ( ; length>0 ; length--, str++)
|
||||
*str= (char) map[(uchar) *str];
|
||||
}
|
||||
|
||||
int my_strcasecmp_8bit(CHARSET_INFO * cs,const char *s, const char *t)
|
||||
{
|
||||
|
Reference in New Issue
Block a user