diff --git a/tests/queries/0_stateless/01595_countMatches.reference b/tests/queries/0_stateless/01595_countMatches.reference new file mode 100644 index 00000000000..c65279c0b8e --- /dev/null +++ b/tests/queries/0_stateless/01595_countMatches.reference @@ -0,0 +1,24 @@ +basic +0 +0 +0 +1 +case sensitive +2 +1 +2 +2 +2 +2 +4 +4 +case insensitive +2 +1 +2 +2 +2 +2 +4 +4 +errors diff --git a/tests/queries/0_stateless/01595_countMatches.sql b/tests/queries/0_stateless/01595_countMatches.sql new file mode 100644 index 00000000000..6374fe7bc5b --- /dev/null +++ b/tests/queries/0_stateless/01595_countMatches.sql @@ -0,0 +1,29 @@ +select 'basic'; +select countMatches('', 'foo'); +select countMatches('foo', ''); +-- simply stop if zero bytes was processed +select countMatches('foo', '[f]{0}'); +-- but this is ok +select countMatches('foo', '[f]{0}foo'); + +select 'case sensitive'; +select countMatches('foobarfoo', 'foo'); +select countMatches('foobarfoo', 'foo.*'); +select countMatches('oooo', 'oo'); +select countMatches(concat(toString(number), 'foofoo'), 'foo') from numbers(2); +select countMatches('foobarbazfoobarbaz', 'foo(bar)(?:baz|)'); +select countMatches('foo.com bar.com baz.com bam.com', '([^. ]+)\.([^. ]+)'); +select countMatches('foo.com@foo.com bar.com@foo.com baz.com@foo.com bam.com@foo.com', '([^. ]+)\.([^. ]+)@([^. ]+)\.([^. ]+)'); + +select 'case insensitive'; +select countMatchesCaseInsensitive('foobarfoo', 'FOo'); +select countMatchesCaseInsensitive('foobarfoo', 'FOo.*'); +select countMatchesCaseInsensitive('oooo', 'Oo'); +select countMatchesCaseInsensitive(concat(toString(number), 'Foofoo'), 'foo') from numbers(2); +select countMatchesCaseInsensitive('foOBarBAZfoobarbaz', 'foo(bar)(?:baz|)'); +select countMatchesCaseInsensitive('foo.com BAR.COM baz.com bam.com', '([^. ]+)\.([^. ]+)'); +select countMatchesCaseInsensitive('foo.com@foo.com bar.com@foo.com BAZ.com@foo.com bam.com@foo.com', '([^. ]+)\.([^. ]+)@([^. ]+)\.([^. ]+)'); + +select 'errors'; +select countMatches(1, 'foo') from numbers(1); -- { serverError 43; } +select countMatches('foobarfoo', toString(number)) from numbers(1); -- { serverError 44; }