293 lines
4.0 KiB
SQL
293 lines
4.0 KiB
SQL
# name: test/sql/function/string/test_like.test
|
|
# description: Test LIKE statement
|
|
# group: [string]
|
|
|
|
statement ok
|
|
PRAGMA enable_verification
|
|
|
|
# scalar like
|
|
query T
|
|
SELECT 'aaa' LIKE 'bbb'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'aaa' LIKE 'abab'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'aaa' LIKE 'aaa'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'aaa' LIKE '%'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'aaa' LIKE '%a'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'aaa' LIKE '%b'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'aaa' LIKE 'a%'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'aaa' LIKE 'b%'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'aaa' LIKE 'a_a'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'aaa' LIKE 'a_'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'aaa' LIKE '__%'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'aaa' LIKE '____%'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'ababac' LIKE '%abac'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'ababac' LIKE '%%%abac'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'ababac' LIKE 'abab%%%%%'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'ababac' LIKE '%%%a%%%b%%a%b%%%%%a%c%%'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'ababac' LIKE '%%%a%%%b%%a%b%%%%%a%d%%'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'ababac' NOT LIKE '%abac'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'aabbccc' LIKE '%aa%bb%cc'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' LIKE ''
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' LIKE '%'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' LIKE 'zebra'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' LIKE 'zebra elephant tiger horse'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' LIKE 'zebra elephant tiger horse%'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' LIKE '%zebra elephant tiger horse%'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' LIKE '%zebra elephant tiger horse blabla'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' LIKE 'zebra elephant tiger horse blabla%'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' LIKE 'zebra%'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' LIKE '%horse'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' LIKE 'zebra%elephant%horse'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' LIKE 'zebra%elephant%tiger%horse'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' LIKE '%zebra%elephant%tiger%horse'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' LIKE 'zebra%elephant%tiger%horse%'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' LIKE '%zebra%elephant%tiger%horse%'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' LIKE '%%zebra %%%ele%phan%t t%ig%er% horse%'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' LIKE 'zebra%tiger%horse'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' LIKE 'zebra%tiger%elephant%horse'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' NOT LIKE ''
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' NOT LIKE '%'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' NOT LIKE 'zebra'
|
|
----
|
|
1
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' NOT LIKE 'zebra elephant tiger horse'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' NOT LIKE 'zebra%'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' NOT LIKE '%horse'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' NOT LIKE 'zebra%elephant%horse'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' NOT LIKE 'zebra%elephant%tiger%horse'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' NOT LIKE '%zebra%elephant%tiger%horse'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' NOT LIKE 'zebra%elephant%tiger%horse%'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' NOT LIKE '%zebra%elephant%tiger%horse%'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' NOT LIKE '%%zebra %%%ele%phan%t t%ig%er% horse%'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' NOT LIKE 'zebra%tiger%horse'
|
|
----
|
|
0
|
|
|
|
query T
|
|
SELECT 'zebra elephant tiger horse' NOT LIKE 'zebra%tiger%elephant%horse'
|
|
----
|
|
1
|
|
|
|
# like with table
|
|
statement ok
|
|
CREATE TABLE strings(s STRING, pat STRING);
|
|
|
|
statement ok
|
|
INSERT INTO strings VALUES ('abab', 'ab%'), ('aaa', 'a_a'), ('aaa', '%b%')
|
|
|
|
query T
|
|
SELECT s FROM strings WHERE s LIKE 'ab%'
|
|
----
|
|
abab
|
|
|
|
query T
|
|
SELECT s FROM strings WHERE 'aba' LIKE pat
|
|
----
|
|
abab
|
|
aaa
|
|
aaa
|
|
|
|
query T
|
|
SELECT s FROM strings WHERE s LIKE pat
|
|
----
|
|
abab
|
|
aaa
|
|
|
|
# Reject invalid collations
|
|
statement error
|
|
SELECT 'hello' LIKE 'hê?llo' COLLATE idontexist;
|
|
----
|
|
<REGEX>:.*Catalog Error.*does not exist.* |