diff options
Diffstat (limited to 'mysql-test/t/func_group_innodb.test')
-rw-r--r-- | mysql-test/t/func_group_innodb.test | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/mysql-test/t/func_group_innodb.test b/mysql-test/t/func_group_innodb.test index 1bdfd8f54bb..bbc576b0fc7 100644 --- a/mysql-test/t/func_group_innodb.test +++ b/mysql-test/t/func_group_innodb.test @@ -83,3 +83,53 @@ explain select count(*), min(7), max(7) from t2m, t1i; select count(*), min(7), max(7) from t2m, t1i; drop table t1m, t1i, t2m, t2i; + + +--echo # +--echo # Bug #57954: BIT_AND function returns incorrect results when +--echo # semijoin=on + +CREATE TABLE c ( + pk INT, + col_varchar_key VARCHAR(1), + PRIMARY KEY (pk), + KEY col_varchar_key (col_varchar_key) +) ENGINE=InnoDB; +INSERT INTO c VALUES (11,NULL); +INSERT INTO c VALUES (16,'c'); +CREATE TABLE bb ( + pk INT, + col_varchar_key VARCHAR(1), + PRIMARY KEY (pk), + KEY col_varchar_key (col_varchar_key) +) ENGINE=InnoDB; +INSERT INTO bb VALUES (10,NULL); + +SELECT straight_join BIT_AND(c.pk) +FROM + bb, c + WHERE c.col_varchar_key='ABC' +ORDER BY c.pk; + +DROP TABLE c,bb; + +--echo # +--echo # Bug #58050: BIT_OR and BIT_XOR return incorrect results when +--echo # semijoin=on +--echo # + +CREATE TABLE t1 (pk INT PRIMARY KEY, b INT, c INT) ENGINE=InnoDB; +INSERT INTO t1 VALUES(1, 1, 1); + +CREATE TABLE t2 (pk INT PRIMARY KEY, b INT, c INT) ENGINE=InnoDB; +INSERT INTO t2 VALUES (1, 1, NULL); + +SELECT t1.* FROM t1 JOIN t2 ON t1.c=t2.c WHERE t1.pk=1; +SELECT BIT_OR(t1.b) FROM t1 JOIN t2 ON t1.c=t2.c WHERE t1.pk=1; +SELECT BIT_AND(t1.b) FROM t1 JOIN t2 ON t1.c=t2.c WHERE t1.pk=1; +SELECT BIT_XOR(t1.b) FROM t1 JOIN t2 ON t1.c=t2.c WHERE t1.pk=1; + +DROP TABLE t1, t2; + + +--echo End of 5.5 tests |