summaryrefslogtreecommitdiff
path: root/mysql-test/t/func_str.test
diff options
context:
space:
mode:
authorunknown <evgen@moonbone.local>2006-05-28 22:01:38 +0400
committerunknown <evgen@moonbone.local>2006-05-28 22:01:38 +0400
commitfd7d4d742993cb33641565e5f9923ae6a21fdb61 (patch)
tree92cb12e483eb1ba657db44d5d64e5cd5abb98d52 /mysql-test/t/func_str.test
parentc12d80151a6010e8dbb7138af09675749516dc15 (diff)
downloadmariadb-git-fd7d4d742993cb33641565e5f9923ae6a21fdb61.tar.gz
Fixed bug#15351: Wrong collation used for comparison of md5() and sha()
argument can lead to a wrong result. md5() and sha() functions treat their arguments as case sensitive strings. But when they are compared their arguments were compared as a case insensitive strings which leads to two functions with different arguments and thus different results to being identical. This can lead to a wrong decision made in the range optimizer and thus lead to a wrong result set. Item_func_md5::fix_length_and_dec() and Item_func_sha::fix_length_and_dec() functions now set binary collation on their arguments. sql/item_strfunc.cc: Fixed bug#15351: Wrong collation used for comparison of md5() and sha() argument can lead to a wrong result. Item_func_md5::fix_length_and_dec() and Item_func_sha::fix_length_and_dec() functions now set binary collation on their arguments. mysql-test/r/func_str.result: Added test case for the bug#15351: Wrong collation used for comparison of md5() and sha() argument can lead to a wrong result. mysql-test/t/func_str.test: Added test case for the bug#15351: Wrong collation used for comparison of md5() and sha() argument can lead to a wrong result.
Diffstat (limited to 'mysql-test/t/func_str.test')
-rw-r--r--mysql-test/t/func_str.test12
1 files changed, 12 insertions, 0 deletions
diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test
index c2f76dbac43..c36e15a08b9 100644
--- a/mysql-test/t/func_str.test
+++ b/mysql-test/t/func_str.test
@@ -669,4 +669,16 @@ drop table t1;
select load_file("lkjlkj");
select ifnull(load_file("lkjlkj"),"it's null");
+#
+# Bug#15351: Wrong collation used for comparison of md5() and sha()
+# parameter can lead to a wrong result.
+#
+create table t1 (f1 varchar(4), f2 varchar(64), unique key k1 (f1,f2));
+insert into t1 values ( 'test',md5('test')), ('test', sha('test'));
+select * from t1 where f1='test' and (f2= md5("test") or f2= md5("TEST"));
+select * from t1 where f1='test' and (f2= md5("TEST") or f2= md5("test"));
+select * from t1 where f1='test' and (f2= sha("test") or f2= sha("TEST"));
+select * from t1 where f1='test' and (f2= sha("TEST") or f2= sha("test"));
+drop table t1;
+
--echo End of 4.1 tests