diff options
author | serg@serg.mysql.com <> | 2003-03-06 14:58:37 +0100 |
---|---|---|
committer | serg@serg.mysql.com <> | 2003-03-06 14:58:37 +0100 |
commit | cd3f3867ab5fc09f00a8b227b33cdc42b116b514 (patch) | |
tree | 2033cecc71658a2071b0e8011b59cd7f1cf49660 /strings | |
parent | 9257a27c8298cb8222ef0d5a0e750edbd0f2c4a5 (diff) | |
download | mariadb-git-cd3f3867ab5fc09f00a8b227b33cdc42b116b514.tar.gz |
trim spaces from CHAR() BINARY consistently
Diffstat (limited to 'strings')
-rw-r--r-- | strings/ctype-bin.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/strings/ctype-bin.c b/strings/ctype-bin.c index e7c3a941109..f34f63247ff 100644 --- a/strings/ctype-bin.c +++ b/strings/ctype-bin.c @@ -75,6 +75,21 @@ static int my_strnncoll_binary(CHARSET_INFO * cs __attribute__((unused)), return cmp ? cmp : (int) (slen - tlen); } +static int my_strnncollsp_binary(CHARSET_INFO * cs, + const uchar *s, uint slen, + const uchar *t, uint tlen) +{ + int len, cmp; + + for ( ; slen && my_isspace(cs, s[slen-1]) ; slen--); + for ( ; tlen && my_isspace(cs, t[tlen-1]) ; tlen--); + + len = ( slen > tlen ) ? tlen : slen; + + cmp= memcmp(s,t,len); + return cmp ? cmp : (int) (slen - tlen); +} + static void my_caseup_str_bin(CHARSET_INFO *cs __attribute__((unused)), char *str __attribute__((unused))) { @@ -308,7 +323,7 @@ CHARSET_INFO my_charset_bin = NULL, /* tab_from_uni */ 0, /* strxfrm_multiply */ my_strnncoll_binary, /* strnncoll */ - my_strnncoll_binary, + my_strnncollsp_binary, my_strnxfrm_bin, /* strxnfrm */ my_like_range_simple, /* like_range */ my_wildcmp_bin, /* wildcmp */ |