Files
email-tracker/external/duckdb/test/sql/collate/icu_collation_propagation.test
2025-10-24 19:21:19 -05:00

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