summaryrefslogtreecommitdiff
path: root/mysql-test/t/range.test
diff options
context:
space:
mode:
authorunknown <sergefp@mysql.com>2005-04-17 02:05:09 +0400
committerunknown <sergefp@mysql.com>2005-04-17 02:05:09 +0400
commit6b00231421ad954d207dd9a48518234145eb71a3 (patch)
treef12dadf57dcd02f4e4ec56fee2c1eaa645fa3ece /mysql-test/t/range.test
parent9b224e9180d26aa5b7e087537255c60c5c061ad3 (diff)
downloadmariadb-git-6b00231421ad954d207dd9a48518234145eb71a3.tar.gz
Fix for BUG#9348: when computing union of two intervals set lower bound to
minimum of lower bounds of two joined intervals. mysql-test/r/range.result: Testcase for BUG#9348 mysql-test/t/range.test: Testcase for BUG#9348
Diffstat (limited to 'mysql-test/t/range.test')
-rw-r--r--mysql-test/t/range.test21
1 files changed, 21 insertions, 0 deletions
diff --git a/mysql-test/t/range.test b/mysql-test/t/range.test
index 44f55da5722..3d3d4748fe3 100644
--- a/mysql-test/t/range.test
+++ b/mysql-test/t/range.test
@@ -445,3 +445,24 @@ explain select * from t1 where a=binary 'aaa';
explain select * from t1 where a='aaa' collate latin1_bin;
# this one cannot:
explain select * from t1 where a='aaa' collate latin1_german1_ci;
+drop table t1;
+
+# Test for BUG#9348 "result for WHERE A AND (B OR C) differs from WHERE a AND (C OR B)"
+CREATE TABLE t1 (
+ `CLIENT` char(3) character set latin1 collate latin1_bin NOT NULL default '000',
+ `ARG1` char(3) character set latin1 collate latin1_bin NOT NULL default '',
+ `ARG2` char(3) character set latin1 collate latin1_bin NOT NULL default '',
+ `FUNCTION` varchar(10) character set latin1 collate latin1_bin NOT NULL default '',
+ `FUNCTINT` int(11) NOT NULL default '0',
+ KEY `VERI_CLNT~2` (`ARG1`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+INSERT INTO t1 VALUES ('000',' 0',' 0','Text 001',0), ('000',' 0',' 1','Text 002',0),
+ ('000',' 1',' 2','Text 003',0), ('000',' 2',' 3','Text 004',0),
+ ('001',' 3',' 0','Text 017',0);
+
+SELECT count(*) FROM t1 WHERE CLIENT='000' AND (ARG1 != ' 1' OR ARG1 != ' 2');
+
+SELECT count(*) FROM t1 WHERE CLIENT='000' AND (ARG1 != ' 2' OR ARG1 != ' 1');
+drop table t1;
+