forked from apache/datafusion
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathregexp_replace.slt
More file actions
129 lines (109 loc) · 2.43 KB
/
regexp_replace.slt
File metadata and controls
129 lines (109 loc) · 2.43 KB
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
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# Import common test data
include ./init_data.slt.part
query T
SELECT regexp_replace(str, pattern, 'X', concat('g', flags)) FROM regexp_test_data;
----
NULL
Xbc
X
aXc
AbC
aBC
4000
X
X
X
X
X
# test string view
statement ok
CREATE TABLE t_stringview AS
SELECT arrow_cast(str, 'Utf8View') as str, arrow_cast(pattern, 'Utf8View') as pattern, arrow_cast(flags, 'Utf8View') as flags FROM regexp_test_data;
query T
SELECT regexp_replace(str, pattern, 'X', concat('g', flags)) FROM t_stringview;
----
NULL
Xbc
X
aXc
AbC
aBC
4000
X
X
X
X
X
statement ok
DROP TABLE t_stringview;
query T
SELECT regexp_replace('ABCabcABC', '(abc)', 'X', 'gi');
----
XXX
query T
SELECT regexp_replace('ABCabcABC', '(abc)', 'X', 'i');
----
XabcABC
query T
SELECT regexp_replace('foobarbaz', 'b..', 'X', 'g');
----
fooXX
query T
SELECT regexp_replace('foobarbaz', 'b..', 'X');
----
fooXbaz
query T
SELECT regexp_replace('foobarbaz', 'b(..)', 'X\\1Y', 'g');
----
fooXarYXazY
query T
SELECT regexp_replace('foobarbaz', 'b(..)', 'X\\1Y', NULL);
----
NULL
query T
SELECT regexp_replace('foobarbaz', 'b(..)', NULL, 'g');
----
NULL
query T
SELECT regexp_replace('foobarbaz', NULL, 'X\\1Y', 'g');
----
NULL
query T
SELECT regexp_replace('Thomas', '.[mN]a.', 'M');
----
ThM
query T
SELECT regexp_replace(NULL, 'b(..)', 'X\\1Y', 'g');
----
NULL
query T
SELECT regexp_replace('foobar', 'bar', 'xx', 'gi')
----
fooxx
query T
SELECT regexp_replace(arrow_cast('foobar', 'Dictionary(Int32, Utf8)'), 'bar', 'xx', 'gi')
----
fooxx
query TTT
select
regexp_replace(col, NULL, 'c'),
regexp_replace(col, 'a', NULL),
regexp_replace(col, 'a', 'c', NULL)
from (values ('a'), ('b')) as tbl(col);
----
NULL NULL NULL
NULL NULL NULL