summaryrefslogtreecommitdiff
path: root/strings
diff options
context:
space:
mode:
authorserg@serg.mysql.com <>2003-03-06 14:58:37 +0100
committerserg@serg.mysql.com <>2003-03-06 14:58:37 +0100
commitcd3f3867ab5fc09f00a8b227b33cdc42b116b514 (patch)
tree2033cecc71658a2071b0e8011b59cd7f1cf49660 /strings
parent9257a27c8298cb8222ef0d5a0e750edbd0f2c4a5 (diff)
downloadmariadb-git-cd3f3867ab5fc09f00a8b227b33cdc42b116b514.tar.gz
trim spaces from CHAR() BINARY consistently
Diffstat (limited to 'strings')
-rw-r--r--strings/ctype-bin.c17
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 */