fix regexp expr bug: should consider collations of input params

This commit is contained in:
akaError
2023-03-15 08:11:05 +00:00
committed by ob-robot
parent e9bec81a96
commit 25d104df14
3 changed files with 112 additions and 31 deletions

View File

@ -6328,3 +6328,49 @@ select * from t1 where c1 regexp '^U';
c1
UNPRESS123
UNPRESS456
set names gbk;
select 'a' collate gbk_bin regexp 'A';
'a' collate gbk_bin regexp 'A'
0
select 'a' collate gbk_chinese_ci regexp 'A';
'a' collate gbk_chinese_ci regexp 'A'
1
select 'a' regexp 'A' collate gbk_chinese_ci;
'a' regexp 'A' collate gbk_chinese_ci
1
select 'a' regexp 'A' collate gbk_bin;
'a' regexp 'A' collate gbk_bin
0
select 'a' collate gbk_bin regexp 'A' collate gbk_bin;
'a' collate gbk_bin regexp 'A' collate gbk_bin
0
select 'a' collate gbk_chinese_ci regexp 'A' collate gbk_chinese_ci;
'a' collate gbk_chinese_ci regexp 'A' collate gbk_chinese_ci
1
select 'a' collate gbk_bin regexp 'A' collate gbk_chinese_ci;
ERROR HY000: Illegal mix of collations
select 'a' collate gbk_chinese_ci regexp 'A' collate gbk_bin;
ERROR HY000: Illegal mix of collations
set names latin1;
select 'a' collate latin1_bin regexp 'A';
'a' collate latin1_bin regexp 'A'
0
select 'a' collate latin1_swedish_ci regexp 'A';
'a' collate latin1_swedish_ci regexp 'A'
1
select 'a' regexp 'A' collate latin1_swedish_ci;
'a' regexp 'A' collate latin1_swedish_ci
1
select 'a' regexp 'A' collate latin1_bin;
'a' regexp 'A' collate latin1_bin
0
select 'a' collate latin1_bin regexp 'A' collate latin1_bin;
'a' collate latin1_bin regexp 'A' collate latin1_bin
0
select 'a' collate latin1_swedish_ci regexp 'A' collate latin1_swedish_ci;
'a' collate latin1_swedish_ci regexp 'A' collate latin1_swedish_ci
1
select 'a' collate latin1_bin regexp 'A' collate latin1_swedish_ci;
ERROR HY000: Illegal mix of collations
select 'a' collate latin1_swedish_ci regexp 'A' collate latin1_bin;
ERROR HY000: Illegal mix of collations

View File

@ -454,4 +454,31 @@ drop table if exists t1;
create table t1(c1 blob);
insert into t1 values('UNPRESS123');
insert into t1 values('UNPRESS456');
select * from t1 where c1 regexp '^U';
select * from t1 where c1 regexp '^U';
##bug48378677
set names gbk;
select 'a' collate gbk_bin regexp 'A';
select 'a' collate gbk_chinese_ci regexp 'A';
select 'a' regexp 'A' collate gbk_chinese_ci;
select 'a' regexp 'A' collate gbk_bin;
select 'a' collate gbk_bin regexp 'A' collate gbk_bin;
select 'a' collate gbk_chinese_ci regexp 'A' collate gbk_chinese_ci;
--error 1267
select 'a' collate gbk_bin regexp 'A' collate gbk_chinese_ci;
--error 1267
select 'a' collate gbk_chinese_ci regexp 'A' collate gbk_bin;
set names latin1;
select 'a' collate latin1_bin regexp 'A';
select 'a' collate latin1_swedish_ci regexp 'A';
select 'a' regexp 'A' collate latin1_swedish_ci;
select 'a' regexp 'A' collate latin1_bin;
select 'a' collate latin1_bin regexp 'A' collate latin1_bin;
select 'a' collate latin1_swedish_ci regexp 'A' collate latin1_swedish_ci;
--error 1267
select 'a' collate latin1_bin regexp 'A' collate latin1_swedish_ci;
--error 1267
select 'a' collate latin1_swedish_ci regexp 'A' collate latin1_bin;