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

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