Files
email-tracker/external/duckdb/test/sql/function/string/test_translate.test
2025-10-24 19:21:19 -05:00

140 lines
2.1 KiB
SQL

# name: test/sql/function/string/test_translate.test
# description: TRANSLATE test
# group: [string]
statement ok
PRAGMA enable_verification
# test translate on NULLs
query T
select TRANSLATE('This is the main test string', NULL, 'ALT')
----
NULL
query T
select TRANSLATE(NULL, 'main', 'ALT')
----
NULL
query T
select TRANSLATE('This is the main test string', 'main', NULL)
----
NULL
# test translate on scalars
query T
select TRANSLATE('12', '2', 'a')
----
1a
query T
select TRANSLATE('abcde', 'abcde', 'fghij')
----
fghij
query T
select TRANSLATE('abcde', 'aabcc', '14235')
----
123de
query T
select TRANSLATE('https://dxyzdb.org', 'zyx.orghttps:/', 'kcu')
----
duckdb
query T
select TRANSLATE('12345', '14367', 'ax')
----
a2x5
query T
select TRANSLATE('hacco worcdxxx', 'acx2', 'el')
----
hello world
query T
select TRANSLATE('hacCo worcd', 'acC', 'ellaabb')
----
hello world
query T
select TRANSLATE('RÄcks', 'Ä', 'A')
----
RAcks
query T
select TRANSLATE('🦆', '🦆', 'D')
----
D
query T
select TRANSLATE('MotörHeadΩ', 'aeΩ', '')
----
MotörHÄed
query T
select TRANSLATE('This is 🐱.', '🐱', '🦆')
----
This is 🦆.
query T
select TRANSLATE('Äañt₡Xá你好世界我', 'ñá世界我xyz', 'naDBá')
----
ÄantXa你好DBá
# test translate on tables
statement ok
CREATE TABLE strings(a STRING, b STRING)
statement ok
INSERT INTO strings VALUES ('Hello', 'World'), ('HuLlD', NULL), ('MotörHead','RÄcks'), ('', NULL), ('Hi', '🦆')
query T
select TRANSLATE(a, 'öHl', 'oA-') FROM strings
----
Ae--o
AuL-D
MotorAead
(empty)
Ai
query T
select TRANSLATE(a, 'loD', '🦆') FROM strings
----
He🦆🦆
HuL🦆
MtörHead
(empty)
Hi
query T
select TRANSLATE(b, 'ÄW🦆l', 'ow🐱') FROM strings
----
word
NULL
Rocks
NULL
🐱
query T
select TRANSLATE(a, 'oel', 'OEL') FROM strings WHERE b IS NOT NULL
----
HELLO
MOtörHEad
Hi
# test incorrect usage of translate
statement error
select TRANSLATE(1)
----
<REGEX>:.*Binder Error.*No function matches.*
statement error
select TRANSLATE(1, 2)
----
<REGEX>:.*Binder Error.*No function matches.*
statement error
select TRANSLATE(1, 2, 3, 4)
----
<REGEX>:.*Binder Error.*No function matches.*