107 lines
1.5 KiB
SQL
107 lines
1.5 KiB
SQL
# name: test/sql/collate/icu_collation_propagation.test
|
|
# description: Test collations with string functions
|
|
# group: [collate]
|
|
|
|
statement ok
|
|
create table tbl (a varchar, b varchar);
|
|
|
|
statement ok
|
|
insert into tbl values ('ö', '>>>>>ö<<<<<'), ('o', '>>>>>o<<<<<'), ('p', '>>>>>p<<<<<');
|
|
|
|
require icu
|
|
|
|
# test propagation of collation through string functions
|
|
query I
|
|
select concat(a collate de, a) from tbl order by all;
|
|
----
|
|
oo
|
|
öö
|
|
pp
|
|
|
|
query I
|
|
select lower(a collate de) from tbl order by all;
|
|
----
|
|
o
|
|
ö
|
|
p
|
|
|
|
query I
|
|
select upper(a collate de) from tbl order by all;
|
|
----
|
|
O
|
|
Ö
|
|
P
|
|
|
|
query I
|
|
select trim(b collate de, '<>') from tbl order by all
|
|
----
|
|
o
|
|
ö
|
|
p
|
|
|
|
query I
|
|
select ltrim(b collate de, '<>') from tbl order by all
|
|
----
|
|
o<<<<<
|
|
ö<<<<<
|
|
p<<<<<
|
|
|
|
query I
|
|
select rtrim(b collate de, '<>') from tbl order by all
|
|
----
|
|
>>>>>o
|
|
>>>>>ö
|
|
>>>>>p
|
|
|
|
query I
|
|
select repeat(a collate de, 10) from tbl order by all;
|
|
----
|
|
oooooooooo
|
|
öööööööööö
|
|
pppppppppp
|
|
|
|
query I
|
|
select left(b collate de, 6) from tbl order by all;
|
|
----
|
|
>>>>>o
|
|
>>>>>ö
|
|
>>>>>p
|
|
|
|
query I
|
|
select right(b collate de, 6) from tbl order by all;
|
|
----
|
|
o<<<<<
|
|
ö<<<<<
|
|
p<<<<<
|
|
|
|
query I
|
|
select right(left(b collate de, 6), 1) from tbl order by all;
|
|
----
|
|
o
|
|
ö
|
|
p
|
|
|
|
query I
|
|
select reverse(a collate de) from tbl order by all;
|
|
----
|
|
o
|
|
ö
|
|
p
|
|
|
|
# test application of collation
|
|
query I
|
|
select a from tbl where contains(b collate de, 'o') order by all
|
|
----
|
|
o
|
|
|
|
query I
|
|
select a from tbl where starts_with(b collate de, '>>>>>o') order by all
|
|
----
|
|
o
|
|
|
|
query I
|
|
select a from tbl where b collate de like '%>o<%' order by all
|
|
----
|
|
o
|
|
|