mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
LIKE didn't work with non-default charset
This commit is contained in:
parent
253b2a9654
commit
2338e2eaf9
3 changed files with 88 additions and 1 deletions
|
@ -37,3 +37,70 @@ select * from t1 where a like "%abc\d%";
|
|||
a
|
||||
abcd
|
||||
drop table t1;
|
||||
SET NAMES koi8r;
|
||||
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET koi8r);
|
||||
INSERT INTO t1 VALUES ('фыва'),('Фыва'),('фЫва'),('фыВа'),('фывА'),('ФЫВА');
|
||||
INSERT INTO t1 VALUES ('фывапролдж'),('Фывапролдж'),('фЫвапролдж'),('фыВапролдж');
|
||||
INSERT INTO t1 VALUES ('фывАпролдж'),('фываПролдж'),('фывапРолдж'),('фывапрОлдж');
|
||||
INSERT INTO t1 VALUES ('фывапроЛдж'),('фывапролДж'),('фывапролдЖ'),('ФЫВАПРОЛДЖ');
|
||||
SELECT * FROM t1 WHERE a LIKE '%фЫва%';
|
||||
a
|
||||
фыва
|
||||
Фыва
|
||||
фЫва
|
||||
фыВа
|
||||
фывА
|
||||
ФЫВА
|
||||
фывапролдж
|
||||
Фывапролдж
|
||||
фЫвапролдж
|
||||
фыВапролдж
|
||||
фывАпролдж
|
||||
фываПролдж
|
||||
фывапРолдж
|
||||
фывапрОлдж
|
||||
фывапроЛдж
|
||||
фывапролДж
|
||||
фывапролдЖ
|
||||
ФЫВАПРОЛДЖ
|
||||
SELECT * FROM t1 WHERE a LIKE '%фЫв%';
|
||||
a
|
||||
фыва
|
||||
Фыва
|
||||
фЫва
|
||||
фыВа
|
||||
фывА
|
||||
ФЫВА
|
||||
фывапролдж
|
||||
Фывапролдж
|
||||
фЫвапролдж
|
||||
фыВапролдж
|
||||
фывАпролдж
|
||||
фываПролдж
|
||||
фывапРолдж
|
||||
фывапрОлдж
|
||||
фывапроЛдж
|
||||
фывапролДж
|
||||
фывапролдЖ
|
||||
ФЫВАПРОЛДЖ
|
||||
SELECT * FROM t1 WHERE a LIKE 'фЫва%';
|
||||
a
|
||||
фыва
|
||||
Фыва
|
||||
фЫва
|
||||
фыВа
|
||||
фывА
|
||||
ФЫВА
|
||||
фывапролдж
|
||||
Фывапролдж
|
||||
фЫвапролдж
|
||||
фыВапролдж
|
||||
фывАпролдж
|
||||
фываПролдж
|
||||
фывапРолдж
|
||||
фывапрОлдж
|
||||
фывапроЛдж
|
||||
фывапролДж
|
||||
фывапролдЖ
|
||||
ФЫВАПРОЛДЖ
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -24,3 +24,23 @@ select * from t1 where a like "%abcd%";
|
|||
select * from t1 where a like "%abc\d%";
|
||||
|
||||
drop table t1;
|
||||
|
||||
|
||||
#
|
||||
# Test like with non-default character set
|
||||
#
|
||||
|
||||
SET NAMES koi8r;
|
||||
|
||||
CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET koi8r);
|
||||
|
||||
INSERT INTO t1 VALUES ('ÆÙ×Á'),('æÙ×Á'),('Æù×Á'),('ÆÙ÷Á'),('ÆÙ×á'),('æù÷á');
|
||||
INSERT INTO t1 VALUES ('ÆÙ×ÁÐÒÏÌÄÖ'),('æÙ×ÁÐÒÏÌÄÖ'),('Æù×ÁÐÒÏÌÄÖ'),('ÆÙ÷ÁÐÒÏÌÄÖ');
|
||||
INSERT INTO t1 VALUES ('ÆÙ×áÐÒÏÌÄÖ'),('ÆÙ×ÁðÒÏÌÄÖ'),('ÆÙ×ÁÐòÏÌÄÖ'),('ÆÙ×ÁÐÒïÌÄÖ');
|
||||
INSERT INTO t1 VALUES ('ÆÙ×ÁÐÒÏìÄÖ'),('ÆÙ×ÁÐÒÏÌäÖ'),('ÆÙ×ÁÐÒÏÌÄö'),('æù÷áðòïìäö');
|
||||
|
||||
SELECT * FROM t1 WHERE a LIKE '%Æù×Á%';
|
||||
SELECT * FROM t1 WHERE a LIKE '%Æù×%';
|
||||
SELECT * FROM t1 WHERE a LIKE 'Æù×Á%';
|
||||
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -2139,7 +2139,7 @@ bool Item_func_like::turboBM_matches(const char* text, int text_len) const
|
|||
int shift = pattern_len;
|
||||
int j = 0;
|
||||
int u = 0;
|
||||
CHARSET_INFO *cs=system_charset_info; // QQ Needs to be fixed
|
||||
CHARSET_INFO *cs= cmp.cmp_collation.collation; // QQ Needs to be fixed
|
||||
|
||||
const int plm1= pattern_len - 1;
|
||||
const int tlmpl= text_len - pattern_len;
|
||||
|
|
Loading…
Reference in a new issue