• Bruce Momjian's avatar
    Jim C. Nasby wrote: · 7b1f6ffa
    Bruce Momjian authored
    > 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
    7b1f6ffa
README.fuzzystrmatch 3.64 KB