File: func_regexp.result

package info (click to toggle)
mysql-8.0 8.0.43-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,273,924 kB
  • sloc: cpp: 4,684,605; ansic: 412,450; pascal: 108,398; java: 83,641; perl: 30,221; cs: 27,067; sql: 26,594; sh: 24,181; python: 21,816; yacc: 17,169; php: 11,522; xml: 7,388; javascript: 7,076; makefile: 2,194; lex: 1,075; awk: 670; asm: 520; objc: 183; ruby: 97; lisp: 86
file content (250 lines) | stat: -rw-r--r-- 7,531 bytes parent folder | download
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
drop table if exists t1;
set names latin1;
drop table if exists t1;
create table t1 as
select repeat(' ', 64) as s1, repeat(' ',64) as s2
union
select null, null;
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `s1` varchar(64) CHARACTER SET latin1 DEFAULT NULL,
  `s2` varchar(64) CHARACTER SET latin1 DEFAULT NULL
) ENGINE=default_engine DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
delete from t1;
insert into t1 values('aaa','aaa');
insert into t1 values('aaa|qqq','qqq');
insert into t1 values('gheis','^[^a-dXYZ]+$');
insert into t1 values('aab','^aa?b');
insert into t1 values('Baaan','^Ba*n');
insert into t1 values('aaa','qqq|aaa');
insert into t1 values('qqq','qqq|aaa');
insert into t1 values('bbb','qqq|aaa');
insert into t1 values('bbb','qqq');
insert into t1 values('aaa','aba');
insert into t1 values(null,'abc');
insert into t1 values('def',null);
insert into t1 values(null,null);
select HIGH_PRIORITY s1 regexp s2 from t1;
s1 regexp s2
1
1
1
1
1
1
1
0
0
0
NULL
NULL
NULL
SELECT 'ghi' REGEXP 'ghi[';
ERROR HY000: The regular expression contains an unclosed bracket expression.
drop table t1;
create table t1 (xxx char(128));
insert into t1 (xxx) values('this is a test of some long text to see what happens');
analyze table t1;
Table	Op	Msg_type	Msg_text
test.t1	analyze	status	OK
select * from t1 where xxx regexp('is a test of some long text to');
xxx
this is a test of some long text to see what happens
explain select * from t1 where xxx regexp('is a test of some long text to');
id	select_type	table	partitions	type	possible_keys	key	key_len	ref	rows	filtered	Extra
1	SIMPLE	t1	NULL	ALL	NULL	NULL	NULL	NULL	1	100.00	Using where
Warnings:
Note	1003	/* select#1 */ select `test`.`t1`.`xxx` AS `xxx` from `test`.`t1` where regexp_like(`test`.`t1`.`xxx`,'is a test of some long text to')
select * from t1 where xxx regexp('is a test of some long text to ');
xxx
this is a test of some long text to see what happens
select * from t1 where xxx regexp('is a test of some long text to s');
xxx
this is a test of some long text to see what happens
select * from t1 where xxx regexp('is a test of some long text to se');
xxx
this is a test of some long text to see what happens
drop table t1;
create table t1 (xxx char(128));
insert into t1 (xxx) values('this is some text: to test - out.reg exp (22/45)');
select * from t1 where xxx REGEXP '^this is some text: to test - out\\.reg exp [[(][0-9]+[/\\][0-9]+[])][ ]*$';
ERROR HY000: The regular expression contains an unclosed bracket expression.
drop table t1;
# The Henry Spencer library used prior to ICU was inonsistent
# here. When the regular expression search is performed in a
# case-insensitive manner, both '[[:lower:]]' and '[[:upper:]]'
# will match.
select _latin1 0xFF regexp _latin1 '[[:lower:]]' COLLATE latin1_bin;
_latin1 0xFF regexp _latin1 '[[:lower:]]' COLLATE latin1_bin
1
select _koi8r  0xFF regexp _koi8r  '[[:lower:]]' COLLATE koi8r_bin;
_koi8r  0xFF regexp _koi8r  '[[:lower:]]' COLLATE koi8r_bin
0
select _latin1 0xFF regexp _latin1 '[[:upper:]]' COLLATE latin1_bin;
_latin1 0xFF regexp _latin1 '[[:upper:]]' COLLATE latin1_bin
0
select _koi8r  0xFF regexp _koi8r  '[[:upper:]]' COLLATE koi8r_bin;
_koi8r  0xFF regexp _koi8r  '[[:upper:]]' COLLATE koi8r_bin
1
select _latin1 0xF7 regexp _latin1 '[[:alpha:]]';
_latin1 0xF7 regexp _latin1 '[[:alpha:]]'
0
select _koi8r  0xF7 regexp _koi8r  '[[:alpha:]]';
_koi8r  0xF7 regexp _koi8r  '[[:alpha:]]'
1
select _latin1'a' regexp _latin1'A' collate latin1_general_ci;
_latin1'a' regexp _latin1'A' collate latin1_general_ci
1
select _latin1'a' regexp _latin1'A' collate latin1_bin;
_latin1'a' regexp _latin1'A' collate latin1_bin
0
create table t1 (a varchar(40));
insert into t1 values ('C1'),('C2'),('R1'),('C3'),('R2'),('R3');
prepare stmt1 from 'select a from t1 where a rlike ? order by a';
set @a="^C.*";
execute stmt1 using @a;
a
C1
C2
C3
set @a="^R.*";
execute stmt1 using @a;
a
R1
R2
R3
deallocate prepare stmt1;
drop table t1;
End of 4.1 tests
SELECT 1 REGEXP NULL;
1 REGEXP NULL
NULL
SELECT '' REGEXP BINARY NULL;
ERROR HY000: Character set 'latin1_swedish_ci' cannot be used in conjunction with 'binary' in call to regexp_like.
SELECT NULL REGEXP BINARY NULL;
NULL REGEXP BINARY NULL
NULL
Warnings:
Warning	1287	'BINARY expr' is deprecated and will be removed in a future release. Please use CAST instead
SELECT 'A' REGEXP BINARY NULL;
ERROR HY000: Character set 'latin1_swedish_ci' cannot be used in conjunction with 'binary' in call to regexp_like.
SELECT "ABC" REGEXP BINARY NULL;
ERROR HY000: Character set 'latin1_swedish_ci' cannot be used in conjunction with 'binary' in call to regexp_like.
End of 5.0 tests
CREATE TABLE t1(a INT, b CHAR(4));
INSERT INTO t1 VALUES (1, '6.1'), (1, '7.0'), (1, '8.0');
PREPARE stmt1 FROM "SELECT a FROM t1 WHERE a=1 AND '7.0' REGEXP b LIMIT 1";
EXECUTE stmt1;
a
1
EXECUTE stmt1;
a
1
EXECUTE stmt1;
a
1
EXECUTE stmt1;
a
1
DEALLOCATE PREPARE stmt1;
DROP TABLE t1;
End of 5.1 tests
SELECT ' '  REGEXP '[[:blank:]]';
' '  REGEXP '[[:blank:]]'
1
SELECT '\t' REGEXP '[[:blank:]]';
'\t' REGEXP '[[:blank:]]'
1
SELECT ' '  REGEXP '[[:space:]]';
' '  REGEXP '[[:space:]]'
1
SELECT '\t' REGEXP '[[:space:]]';
'\t' REGEXP '[[:space:]]'
1
#
# Bug#22836180: REGEXP, ASSERTION FAILED: !THD->IS_ERROR()
# IN SETUP_FIELDS()
#
DO 1 regexp (multilinestring(point(1,1)));
ERROR HY000: Incorrect arguments to multilinestring
#
# Bug#58026: massive recursion and crash in regular expression handling
#
SELECT '1' RLIKE RPAD('1', 10000, '(');
# Bug#33089668: Calling regexp_instr() with NULL causes all
#               further calls of it to return NULL
SELECT REGEXP_INSTR(e, 'pattern')
FROM (VALUES ROW('Find pattern'), ROW(NULL), ROW('Find pattern')) AS v(e);
REGEXP_INSTR(e, 'pattern')
6
NULL
6
SELECT REGEXP_LIKE(e, 'pattern')
FROM (VALUES ROW('Find pattern'), ROW(NULL), ROW('Find pattern')) AS v(e);
REGEXP_LIKE(e, 'pattern')
1
NULL
1
SELECT REGEXP_REPLACE(e, 'pattern', 'xyz')
FROM (VALUES ROW('Find pattern'), ROW(NULL), ROW('Find pattern')) AS v(e);
REGEXP_REPLACE(e, 'pattern', 'xyz')
Find xyz
NULL
Find xyz
SELECT REGEXP_SUBSTR(e, 'pattern')
FROM (VALUES ROW('Find pattern'), ROW(NULL), ROW('Find pattern')) AS v(e);
REGEXP_SUBSTR(e, 'pattern')
pattern
NULL
pattern
CREATE FUNCTION r_instr(input_text VARCHAR(255)) RETURNS INT DETERMINISTIC
RETURN REGEXP_INSTR(input_text, 'pattern');
SELECT r_instr('Find pattern');
r_instr('Find pattern')
6
SELECT r_instr(NULL);
r_instr(NULL)
NULL
SELECT r_instr('Find pattern');
r_instr('Find pattern')
6
DROP FUNCTION r_instr;
CREATE FUNCTION r_like(input_text VARCHAR(255)) RETURNS BOOLEAN DETERMINISTIC
RETURN REGEXP_LIKE(input_text, 'pattern');
SELECT r_like('Find pattern');
r_like('Find pattern')
1
SELECT r_like(NULL);
r_like(NULL)
NULL
SELECT r_like('Find pattern');
r_like('Find pattern')
1
DROP FUNCTION r_like;
CREATE FUNCTION r_replace(input_text VARCHAR(255))
RETURNS VARCHAR(255) DETERMINISTIC
RETURN REGEXP_REPLACE(input_text, 'pattern', 'xyz');
SELECT r_replace('Find pattern');
r_replace('Find pattern')
Find xyz
SELECT r_replace(NULL);
r_replace(NULL)
NULL
SELECT r_replace('Find pattern');
r_replace('Find pattern')
Find xyz
DROP FUNCTION r_replace;
CREATE FUNCTION r_substr(input_text VARCHAR(255))
RETURNS VARCHAR(255) DETERMINISTIC
RETURN REGEXP_SUBSTR(input_text, 'pattern');
SELECT r_substr('Find pattern');
r_substr('Find pattern')
pattern
SELECT r_substr(NULL);
r_substr(NULL)
NULL
SELECT r_substr('Find pattern');
r_substr('Find pattern')
pattern
DROP FUNCTION r_substr;