From: | Joe Conway <mail(at)joeconway(dot)com> |
---|---|
To: | jim(at)nasby(dot)net |
Cc: | "General (PostgreSQL)" <pgsql-general(at)postgresql(dot)org>, "Patches (PostgreSQL)" <pgsql-patches(at)postgresql(dot)org> |
Subject: | Re: Bug in metaphone (contrib/fuzzystrmatch) |
Date: | 2003-06-06 16:21:54 |
Message-ID: | 3EE0BFA2.3000208@joeconway.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general pgsql-patches |
Jim C. Nasby wrote:
> Second argument to metaphone is suposed to set the limit on the
> number of characters to return, but it breaks on some phrases:
>
> usps=# select metaphone(a,3),metaphone(a,4),metaphone(a,20) from
> (select 'Hello world'::varchar AS a) a;
> HLW | HLWR | HLWRLT
>
> usps=# select metaphone(a,3),metaphone(a,4),metaphone(a,20) from
> (select 'A A COMEAUX MEMORIAL'::varchar AS a) a;
> AKM | AKMKS | AKMKSMMRL
>
> In every case I've found that does this, the 4th and 5th letters are
> always 'KS'.
Nice catch.
There was a bug in the original metaphone algorithm from CPAN. Patch
attached (while I was at it I updated my email address, changed the
copyright to PGDG, and removed an unnecessary palloc). Here's how it
looks now:
regression=# select metaphone(a,4) from (select 'A A COMEAUX
MEMORIAL'::varchar AS a) a;
metaphone
-----------
AKMK
(1 row)
regression=# select metaphone(a,5) from (select 'A A COMEAUX
MEMORIAL'::varchar AS a) a;
metaphone
-----------
AKMKS
(1 row)
Please apply.
Thanks,
Joe
Attachment | Content-Type | Size |
---|---|---|
fuzzystrmatch-fix.patch | text/plain | 3.1 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Rory Campbell-Lange | 2003-06-06 16:38:07 | Re: Return Record |
Previous Message | Andre Truter | 2003-06-06 15:54:49 | Re: Nulls get converted to 0 problem |
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2003-06-06 17:41:30 | Re: Ipv6 network cleanup patch #2. |
Previous Message | Rod Taylor | 2003-06-06 15:49:52 | Re: Sequence usage patch |