File: test_translate.test

package info (click to toggle)
duckdb 1.5.1-2
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 299,196 kB
  • sloc: cpp: 865,414; ansic: 57,292; python: 18,871; sql: 12,663; lisp: 11,751; yacc: 7,412; lex: 1,682; sh: 747; makefile: 558
file content (140 lines) | stat: -rw-r--r-- 2,183 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# 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Ω', 'eÄ')
----
MotörHÄed

query T
select TRANSLATE('This is 🐱.', '🐱', '🦆')
----
This is 🦆.

query T
select TRANSLATE('Äañt₡Xá你好世界我', 'ñá世界我xyz', 'naDBá')
----
Äant₡Xa你好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.*