288 lines
3.2 KiB
SQL
288 lines
3.2 KiB
SQL
# name: test/sql/function/string/test_levenshtein.test
|
|
# description: Test levenshtein function
|
|
# group: [string]
|
|
|
|
statement ok
|
|
PRAGMA enable_verification
|
|
|
|
|
|
# normal queries
|
|
query I
|
|
SELECT levenshtein('hallo', 'hallo')
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT levenshtein('hallo', 'hello')
|
|
----
|
|
1
|
|
|
|
query I
|
|
SELECT levenshtein('hello', 'hallo')
|
|
----
|
|
1
|
|
|
|
query I
|
|
SELECT levenshtein('lawn', 'flaw')
|
|
----
|
|
2
|
|
|
|
query I
|
|
SELECT levenshtein('flaw', 'lawn')
|
|
----
|
|
2
|
|
|
|
query I
|
|
SELECT levenshtein('kitten', 'sitting')
|
|
----
|
|
3
|
|
|
|
query I
|
|
SELECT levenshtein('sitting', 'kitten')
|
|
----
|
|
3
|
|
|
|
query I
|
|
SELECT levenshtein('hallo', 'hoi')
|
|
----
|
|
4
|
|
|
|
query I
|
|
SELECT levenshtein('hoi', 'hallo')
|
|
----
|
|
4
|
|
|
|
query I
|
|
SELECT levenshtein(NULL, 'hi')
|
|
----
|
|
NULL
|
|
|
|
query I
|
|
SELECT levenshtein('hi', NULL)
|
|
----
|
|
NULL
|
|
|
|
query I
|
|
SELECT levenshtein(NULL, NULL)
|
|
----
|
|
NULL
|
|
|
|
query I
|
|
SELECT levenshtein('', NULL)
|
|
----
|
|
NULL
|
|
|
|
query I
|
|
SELECT levenshtein(NULL, '')
|
|
----
|
|
NULL
|
|
|
|
query I
|
|
SELECT levenshtein('', 'hi')
|
|
----
|
|
2
|
|
|
|
query I
|
|
SELECT levenshtein('hi', '')
|
|
----
|
|
2
|
|
|
|
query I
|
|
SELECT levenshtein('', '')
|
|
----
|
|
0
|
|
|
|
|
|
statement ok
|
|
CREATE TABLE strings(s VARCHAR)
|
|
|
|
statement ok
|
|
INSERT INTO strings VALUES ('hello'), ('hallo'), ('aloha'), ('fello'), ('fellow'), ('ducks')
|
|
|
|
query I
|
|
SELECT levenshtein(s, 'hallo') FROM strings ORDER BY s
|
|
----
|
|
4
|
|
5
|
|
2
|
|
3
|
|
0
|
|
1
|
|
|
|
query I
|
|
SELECT levenshtein('hallo', s) FROM strings ORDER BY s
|
|
----
|
|
4
|
|
5
|
|
2
|
|
3
|
|
0
|
|
1
|
|
|
|
query I
|
|
SELECT levenshtein(NULL, s) FROM strings
|
|
----
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
|
|
query I
|
|
SELECT levenshtein(NULL, s) FROM strings
|
|
----
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
|
|
query I
|
|
SELECT levenshtein('', s) FROM strings ORDER BY s
|
|
----
|
|
5
|
|
5
|
|
5
|
|
6
|
|
5
|
|
5
|
|
|
|
query I
|
|
SELECT levenshtein(s, '') FROM strings ORDER BY s
|
|
----
|
|
5
|
|
5
|
|
5
|
|
6
|
|
5
|
|
5
|
|
|
|
|
|
statement ok
|
|
DROP TABLE strings
|
|
|
|
statement ok
|
|
CREATE TABLE strings(s VARCHAR)
|
|
|
|
statement ok
|
|
INSERT INTO strings VALUES (NULL)
|
|
|
|
query I
|
|
SELECT levenshtein(s, NULL) from strings
|
|
----
|
|
NULL
|
|
|
|
query I
|
|
SELECT levenshtein(NULL, s) from strings
|
|
----
|
|
NULL
|
|
|
|
query I
|
|
SELECT levenshtein('hi', s) from strings
|
|
----
|
|
NULL
|
|
|
|
query I
|
|
SELECT levenshtein(s, 'hi') from strings
|
|
----
|
|
NULL
|
|
|
|
query I
|
|
SELECT levenshtein('', s) FROM strings
|
|
----
|
|
NULL
|
|
|
|
query I
|
|
SELECT levenshtein(s, '') FROM strings
|
|
----
|
|
NULL
|
|
|
|
|
|
statement ok
|
|
DROP TABLE strings
|
|
|
|
statement ok
|
|
CREATE TABLE strings(s VARCHAR)
|
|
|
|
statement ok
|
|
INSERT INTO strings VALUES ('')
|
|
|
|
query I
|
|
SELECT levenshtein(NULL, s) FROM strings
|
|
----
|
|
NULL
|
|
|
|
query I
|
|
SELECT levenshtein(s, NULL) FROM strings
|
|
----
|
|
NULL
|
|
|
|
query I
|
|
SELECT levenshtein(s, '') FROM strings
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT levenshtein('', s) FROM strings
|
|
----
|
|
0
|
|
|
|
query I
|
|
SELECT levenshtein(s, 'hi') FROM strings
|
|
----
|
|
2
|
|
|
|
query I
|
|
SELECT levenshtein('hi', s) FROM strings
|
|
----
|
|
2
|
|
|
|
|
|
# editdist3
|
|
query I
|
|
SELECT editdist3('hallo', 'hello')
|
|
----
|
|
1
|
|
|
|
query I
|
|
SELECT editdist3(s, 'hello') FROM strings
|
|
----
|
|
5
|
|
|
|
# Comparing fields from two columns row wise
|
|
|
|
statement ok
|
|
DROP TABLE strings
|
|
|
|
statement ok
|
|
CREATE TABLE strings(s VARCHAR, t VARCHAR)
|
|
|
|
statement ok
|
|
INSERT INTO strings VALUES ('hello', 'hello'), ('hello', 'hallo'), ('flaw', 'lawn'),
|
|
('sitting', 'kitten'), ('hallo', 'aloha'), ('hello', 'aloha'),
|
|
(NULL, NULL), ('', ''),
|
|
(NULL, 'bora'), ('bora', NULL),
|
|
('hi', ''), ('', 'hi'),
|
|
(NULL, ''), ('', NULL)
|
|
|
|
|
|
query I
|
|
SELECT levenshtein(s, t) ld FROM strings
|
|
----
|
|
0
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
NULL
|
|
0
|
|
NULL
|
|
NULL
|
|
2
|
|
2
|
|
NULL
|
|
NULL
|