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