mirror of
https://github.com/MariaDB/server.git
synced 2025-11-28 17:36:30 +03:00
MDEV-7152 Wrong result set for WHERE a='oe' COLLATE utf8_german2_ci AND a='oe'
- The code that tested if
WHERE expr=value AND expr=const
can be rewritten to:
WHERE const=value AND expr=const
was incomplete in case of STRING_RESULT.
- Moving the test into a new function, to reduce duplicate code.
This commit is contained in:
@@ -13136,5 +13136,28 @@ SELECT BINARY 'A' = 'a';
|
||||
BINARY 'A' = 'a'
|
||||
0
|
||||
#
|
||||
# Wrong result set for WHERE a='oe' COLLATE utf8_german2_ci AND a='oe'
|
||||
#
|
||||
SET NAMES utf8 COLLATE utf8_german2_ci;
|
||||
CREATE TABLE t1 (a CHAR(10) CHARACTER SET utf8);
|
||||
INSERT INTO t1 VALUES ('ö'),('oe');
|
||||
SELECT * FROM t1 WHERE a='oe' AND a='oe' COLLATE utf8_german2_ci;
|
||||
a
|
||||
oe
|
||||
SELECT * FROM t1 WHERE a='oe' COLLATE utf8_german2_ci AND a='oe';
|
||||
a
|
||||
oe
|
||||
EXPLAIN EXTENDED SELECT * FROM t1 WHERE a='oe' AND a='oe' COLLATE utf8_german2_ci;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((`test`.`t1`.`a` = 'oe') and (`test`.`t1`.`a` = 'oe'))
|
||||
EXPLAIN EXTENDED SELECT * FROM t1 WHERE a='oe' COLLATE utf8_german2_ci AND a='oe';
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((`test`.`t1`.`a` = 'oe') and (`test`.`t1`.`a` = 'oe'))
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of MariaDB-10.0 tests
|
||||
#
|
||||
|
||||
@@ -594,6 +594,18 @@ SET NAMES utf8 COLLATE utf8_unicode_ci;
|
||||
SELECT 'a' = BINARY 'A';
|
||||
SELECT BINARY 'A' = 'a';
|
||||
|
||||
--echo #
|
||||
--echo # Wrong result set for WHERE a='oe' COLLATE utf8_german2_ci AND a='oe'
|
||||
--echo #
|
||||
SET NAMES utf8 COLLATE utf8_german2_ci;
|
||||
CREATE TABLE t1 (a CHAR(10) CHARACTER SET utf8);
|
||||
INSERT INTO t1 VALUES ('ö'),('oe');
|
||||
SELECT * FROM t1 WHERE a='oe' AND a='oe' COLLATE utf8_german2_ci;
|
||||
SELECT * FROM t1 WHERE a='oe' COLLATE utf8_german2_ci AND a='oe';
|
||||
EXPLAIN EXTENDED SELECT * FROM t1 WHERE a='oe' AND a='oe' COLLATE utf8_german2_ci;
|
||||
EXPLAIN EXTENDED SELECT * FROM t1 WHERE a='oe' COLLATE utf8_german2_ci AND a='oe';
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # End of MariaDB-10.0 tests
|
||||
--echo #
|
||||
|
||||
Reference in New Issue
Block a user