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

112 lines
1.8 KiB
SQL

# name: test/sql/function/string/regex_extract.test
# description: regex extract test
# group: [string]
statement ok
PRAGMA enable_verification
query T
SELECT regexp_extract('foobarbaz', 'b..')
----
bar
query T
SELECT regexp_extract('foobarbaz', 'B..')
----
(empty)
# pass in regex options
query T
SELECT regexp_extract('foobarbaz', 'B..', 0, 'i')
----
bar
query T
SELECT regexp_extract('foobarbaz', 'b..', 1)
----
(empty)
query T
SELECT regexp_extract('foobarbaz', '(b..)(b..)')
----
barbaz
query T
SELECT regexp_extract('foobarbaz', '(b..)(b..)', 1)
----
bar
query T
SELECT regexp_extract('foobarbaz', '(b..)(b..)', 2)
----
baz
statement error
SELECT regexp_extract('foobarbaz', '(b..)(b..)', -1)
----
<REGEX>:.*Invalid Input Error: Group index must be.*
statement error
SELECT regexp_extract('foobarbaz', '(b..)(b..)', 42)
----
<REGEX>:.*Invalid Input Error: Group index must be.*
statement ok
CREATE TABLE test (s VARCHAR, p VARCHAR, i INT)
statement ok
INSERT INTO test VALUES
('foobarbaz', 'b..', 0),
('foobarbaz', 'b..', 1),
('foobarbaz', '(b..)(b..)', 0),
('foobarbaz', '(b..)(b..)', 1),
('foobarbaz', '(b..)(b..)', 2)
statement error
SELECT regexp_extract(s, p, i) FROM test
----
<REGEX>:.*Invalid Input Error.*must be a constant.*
query T
SELECT regexp_extract(s, p, 0) FROM test
----
bar
bar
barbaz
barbaz
barbaz
query T
SELECT regexp_extract(s, 'b..', 0) FROM test
----
bar
bar
bar
bar
bar
statement error
SELECT regexp_extract(s, '(b..)(b..)', i) FROM test
----
<REGEX>:.*Invalid Input Error.*must be a constant.*
# null values
query T
SELECT regexp_extract('foobarbaz', NULL, 0)
----
NULL
query T
SELECT regexp_extract('foobarbaz', 'b..', NULL)
----
(empty)
query T
SELECT regexp_extract(NULL, 'b..')
----
NULL
statement error
SELECT regexp_extract('foobarbaz', 'b..', '1')
----
<REGEX>:.*Binder Error.*Could not choose a best candidate.*