diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index eb09a746a1c..86c4b8cf0dc 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -624,6 +624,9 @@ Note 1003 select high_priority md5(_latin1'hello') AS `md5('hello')`,sha(_latin1 SELECT lpad(12345, 5, "#"); lpad(12345, 5, "#") 12345 +SELECT conv(71, 10, 36), conv('1Z', 36, 10); +conv(71, 10, 36) conv('1Z', 36, 10) +1Z 71 create table t1 (id int(1), str varchar(10)) DEFAULT CHARSET=utf8; insert into t1 values (1,'aaaaaaaaaa'), (2,'bbbbbbbbbb'); create table t2 (id int(1), str varchar(10)) DEFAULT CHARSET=utf8; diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test index c9ead51c0a6..1e6d279f721 100644 --- a/mysql-test/t/func_str.test +++ b/mysql-test/t/func_str.test @@ -361,6 +361,13 @@ explain extended select md5('hello'), sha('abc'), sha1('abc'), soundex(''), 'moo SELECT lpad(12345, 5, "#"); +# +# Bug #2972 +# + +SELECT conv(71, 10, 36), conv('1Z', 36, 10); + + # # Bug #3089 diff --git a/strings/ctype-simple.c b/strings/ctype-simple.c index 719ae14f653..6e7d0b849e2 100644 --- a/strings/ctype-simple.c +++ b/strings/ctype-simple.c @@ -262,9 +262,9 @@ long my_strntol_8bit(CHARSET_INFO *cs, { if (c>='0' && c<='9') c -= '0'; - else if (c>='A' && c<='F') + else if (c>='A' && c<='Z') c = c - 'A' + 10; - else if (c>='a' && c<='f') + else if (c>='a' && c<='z') c = c - 'a' + 10; else break; @@ -384,9 +384,9 @@ ulong my_strntoul_8bit(CHARSET_INFO *cs, { if (c>='0' && c<='9') c -= '0'; - else if (c>='A' && c<='F') + else if (c>='A' && c<='Z') c = c - 'A' + 10; - else if (c>='a' && c<='f') + else if (c>='a' && c<='z') c = c - 'a' + 10; else break; @@ -499,9 +499,9 @@ longlong my_strntoll_8bit(CHARSET_INFO *cs __attribute__((unused)), { if (c>='0' && c<='9') c -= '0'; - else if (c>='A' && c<='F') + else if (c>='A' && c<='Z') c = c - 'A' + 10; - else if (c>='a' && c<='f') + else if (c>='a' && c<='z') c = c - 'a' + 10; else break; @@ -622,9 +622,9 @@ ulonglong my_strntoull_8bit(CHARSET_INFO *cs, { if (c>='0' && c<='9') c -= '0'; - else if (c>='A' && c<='F') + else if (c>='A' && c<='Z') c = c - 'A' + 10; - else if (c>='a' && c<='f') + else if (c>='a' && c<='z') c = c - 'a' + 10; else break;