bug: fuzzystrmatch levenshtein is wrong
Marcin Mańk <marcin.mank@gmail.com>
From: marcin mank <marcin.mank@gmail.com>
To: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2009-12-07T13:33:36Z
Lists: pgsql-hackers
Attachments
- levenshtein.diff (application/octet-stream) patch
The current behavior of levenshtein(text,text,int,int,int) is wrong. Consider:
leki_dev=# select levenshtein('','a',2,4,5);
levenshtein
-------------
1
(1 row)
leki_dev=# select levenshtein('a','',2,4,5);
levenshtein
-------------
1
(1 row)
leki_dev=# select levenshtein('aa','a',2,4,5);
levenshtein
-------------
1
(1 row)
leki_dev=# select levenshtein('a','aa',2,4,5);
levenshtein
-------------
1
(1 row)
versus (after patch)
postgres=# select levenshtein('','a',2,4,5);
levenshtein
-------------
2
(1 row)
postgres=# select levenshtein('a','',2,4,5);
levenshtein
-------------
4
(1 row)
postgres=# select levenshtein('aa','a',2,4,5);
levenshtein
-------------
4
(1 row)
postgres=# select levenshtein('a','aa',2,4,5);
levenshtein
-------------
2
(1 row)
patch attached.
Greetings
Marcin Mańk