summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorEvgeny Potemkin <epotemkin@mysql.com>2009-12-09 18:43:45 +0300
committerEvgeny Potemkin <epotemkin@mysql.com>2009-12-09 18:43:45 +0300
commit1285ecd4688295c0aae28b314ef8a4c9ae3b6c14 (patch)
tree0eaf38662312ba5a5a800fbc6c47933862c0f967 /mysql-test
parent3a733bb4d8c6e1fc9bf9f07aff484d7fb62724a7 (diff)
downloadmariadb-git-1285ecd4688295c0aae28b314ef8a4c9ae3b6c14.tar.gz
Bug#49489: Uninitialized cache led to a wrong result.
Arg_comparator uses Item_cache objects to store constants being compared when they're need a type conversion. Because this cache wasn't initialized properly Arg_comparator might produce wrong comparison result. The Arg_comparator::cache_converted_constant function now initializes cache prior to usage. mysql-test/r/select.result: Added a test case for he bug#49489. mysql-test/t/select.test: Added a test case for he bug#49489. sql/item_cmpfunc.cc: Bug#49489: Uninitialized cache led to a wrong result. The Arg_comparator::cache_converted_constant function now initializes cache prior to usage.
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/r/select.result10
-rw-r--r--mysql-test/t/select.test9
2 files changed, 19 insertions, 0 deletions
diff --git a/mysql-test/r/select.result b/mysql-test/r/select.result
index d0b2a575a32..1750051289a 100644
--- a/mysql-test/r/select.result
+++ b/mysql-test/r/select.result
@@ -4609,4 +4609,14 @@ HAVING v <= 't'
ORDER BY pk;
v
DROP TABLE t1;
+#
+# Bug#49489 Uninitialized cache led to a wrong result.
+#
+CREATE TABLE t1(c1 DOUBLE(5,4));
+INSERT INTO t1 VALUES (9.1234);
+SELECT * FROM t1 WHERE c1 < 9.12345;
+c1
+9.1234
+DROP TABLE t1;
+# End of test for bug#49489.
End of 5.1 tests
diff --git a/mysql-test/t/select.test b/mysql-test/t/select.test
index ac65e5cbaf5..982aec726f7 100644
--- a/mysql-test/t/select.test
+++ b/mysql-test/t/select.test
@@ -3964,4 +3964,13 @@ ORDER BY pk;
DROP TABLE t1;
+--echo #
+--echo # Bug#49489 Uninitialized cache led to a wrong result.
+--echo #
+CREATE TABLE t1(c1 DOUBLE(5,4));
+INSERT INTO t1 VALUES (9.1234);
+SELECT * FROM t1 WHERE c1 < 9.12345;
+DROP TABLE t1;
+--echo # End of test for bug#49489.
+
--echo End of 5.1 tests