diff options
author | tnurnberg@white.intern.koehntopp.de <> | 2008-03-27 03:18:46 +0100 |
---|---|---|
committer | tnurnberg@white.intern.koehntopp.de <> | 2008-03-27 03:18:46 +0100 |
commit | bdabc5241daaa32bb85e64b7ca426f21599c8b73 (patch) | |
tree | 9acb8b8357369ca61d4d9a70a27a4fbf71a09dd1 /mysql-test/t/range.test | |
parent | eac3a26efab4f3886ba68ed24cc1ddfc453dfa0e (diff) | |
parent | e09d9838259f831c27c546a2fea3a24e6b432733 (diff) | |
download | mariadb-git-bdabc5241daaa32bb85e64b7ca426f21599c8b73.tar.gz |
Merge mysql.com:/misc/mysql/34731/50-34731
into mysql.com:/misc/mysql/34731/51-34731
Diffstat (limited to 'mysql-test/t/range.test')
-rw-r--r-- | mysql-test/t/range.test | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/mysql-test/t/range.test b/mysql-test/t/range.test index 514e3074292..e1411e7fd46 100644 --- a/mysql-test/t/range.test +++ b/mysql-test/t/range.test @@ -972,6 +972,52 @@ EXPLAIN SELECT a FROM t1 WHERE a='b' OR a='B'; DROP TABLE t1; +# +# Bug #34731: highest possible value for INT erroneously filtered by WHERE +# + +# test UNSIGNED. only occurs when indexed. +CREATE TABLE t1 (f1 TINYINT(11) UNSIGNED NOT NULL, PRIMARY KEY (f1)); + +INSERT INTO t1 VALUES (127),(254),(0),(1),(255); + +# test upper bound +# count 5 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < 256; +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < 256.0; +# count 4 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < 255; + +# show we don't fiddle with lower bound on UNSIGNED +# count 0 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < -1; +# count 5 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 > -1; + +DROP TABLE t1; + + +# test signed. only occurs when index. +CREATE TABLE t1 ( f1 TINYINT(11) NOT NULL, PRIMARY KEY (f1)); + +INSERT INTO t1 VALUES (127),(126),(0),(-128),(-127); + +# test upper bound +# count 5 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < 128; +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < 128.0; +# count 4 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < 127; + +# test lower bound +# count 5 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 > -129; +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 > -129.0; +# count 4 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 > -128; + +DROP TABLE t1; + # End of 5.0 tests # BUG#22393 fix: Adjust 'ref' estimate if we have 'range' estimate for |