Re: How to write UDF in C that resemble the LIKE function - Mailing list pgsql-interfaces

From Michael Fuhr
Subject Re: How to write UDF in C that resemble the LIKE function
Date
Msg-id 20050213040755.GA25541@winnie.fuhr.org
Whole thread Raw
In response to How to write UDF in C that resemble the LIKE function  (b t <qtboyzz@yahoo.com>)
List pgsql-interfaces
On Sat, Feb 12, 2005 at 07:40:17PM -0800, b t wrote:
>  
> I have a question, as part of the project that I have to do for school,
> we have to implement a User Define Function in C that is similar like the
> LIKE funtion in PostgreSQL. For example where a customer is searching for
> an actor whose last name sounds like "Schwarseneger" (notice the typo).
> However, the customer is not sure neither about the spelling nor the
> pronunciation. The real star name should be "Schwarzenegger".

The contrib/fuzzystrmatch module contains implementations of the
soundex, levenshtein, and metaphone algorithms.  Here's an example:

CREATE TABLE actor (   id    serial PRIMARY KEY,   name  text NOT NULL
);

INSERT INTO actor (name) VALUES ('Schwarzenegger');

SELECT * FROM actor WHERE soundex(name) = soundex('Schwarseneger');id |      name      
----+---------------- 1 | Schwarzenegger

You could create a functional index to speed up queries on large
tables:

CREATE INDEX actor_name_soundex_idx ON actor (soundex(name));

-- 
Michael Fuhr
http://www.fuhr.org/~mfuhr/


pgsql-interfaces by date:

Previous
From: Tom Lane
Date:
Subject: Re: How to write UDF in C that resemble the LIKE function
Next
From: "Francisco Figueiredo Jr."
Date:
Subject: Re: Function return number of affected rows