# 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