pgsql-server/contrib/fuzzystrmatch README.fuzz ... - Mailing list pgsql-committers

From momjian@svr1.postgresql.org (Bruce Momjian)
Subject pgsql-server/contrib/fuzzystrmatch README.fuzz ...
Date
Msg-id 20030624225946.A967430FA78@svr1.postgresql.org
Whole thread Raw
List pgsql-committers
CVSROOT:    /cvsroot
Module name:    pgsql-server
Changes by:    momjian@svr1.postgresql.org    03/06/24 19:59:46

Modified files:
    contrib/fuzzystrmatch: README.fuzzystrmatch fuzzystrmatch.c
                           fuzzystrmatch.h

Log message:
    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)

    Joe Conway


pgsql-committers by date:

Previous
From: momjian@svr1.postgresql.org (Bruce Momjian)
Date:
Subject: pgsql-server/src/backend/utils/adt inet_net_ntop.c
Next
From: momjian@svr1.postgresql.org (Bruce Momjian)
Date:
Subject: pgsql-server/doc TODO