CVSROOT:        /cvsroot
Module name:    pgsql-server
Changes by:     [EMAIL PROTECTED]       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


---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Reply via email to