diff options
author | unknown <serg@serg.mysql.com> | 2003-03-06 14:58:37 +0100 |
---|---|---|
committer | unknown <serg@serg.mysql.com> | 2003-03-06 14:58:37 +0100 |
commit | a60c0569f3957bd713cc52f13d20a0fe407469bc (patch) | |
tree | 2033cecc71658a2071b0e8011b59cd7f1cf49660 | |
parent | 401f3fb41807062707ae949a9554765db3ba9351 (diff) | |
download | mariadb-git-a60c0569f3957bd713cc52f13d20a0fe407469bc.tar.gz |
trim spaces from CHAR() BINARY consistently
-rw-r--r-- | mysql-test/r/binary.result | 1 | ||||
-rw-r--r-- | strings/ctype-bin.c | 17 |
2 files changed, 17 insertions, 1 deletions
diff --git a/mysql-test/r/binary.result b/mysql-test/r/binary.result index 4d5eb62cc71..3534776c503 100644 --- a/mysql-test/r/binary.result +++ b/mysql-test/r/binary.result @@ -62,6 +62,7 @@ a b hello hello select * from t1 ignore index (b) where b="hello "; a b +hello hello alter table t1 modify b tinytext not null, drop key b, add key (b(100)); select * from t1 where b="hello "; a b 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 */ |