dynamic function question - Mailing list pgsql-general

From Chris Ochs
Subject dynamic function question
Date
Msg-id 064701c44a7c$3ec36750$250a8b0a@chris
Whole thread Raw
Responses Re: dynamic function question  (Stephan Szabo <sszabo@megazone.bigpanda.com>)
List pgsql-general
I read the docs but I'm still a little lost as to how to do this.

I have this function which works fine.

CREATE OR REPLACE FUNCTION lookup_customer_byemail(varchar) RETURNS SETOF
customer_rec AS
'
DECLARE
   r RECORD;
   in_email ALIAS FOR $1;
BEGIN
   FOR r IN SELECT
s_oid,mer_id,site_id,order_id,pymt_type,pymt_subtype,comp_name,f_name1,l_nam
e1,f_name2,l_name2,address,city,state
,zipcode,phone,cust_email,country from customers where cust_email ILIKE
in_email LOOP
   RETURN NEXT r;
   END LOOP;
   RETURN;
END '
LANGUAGE 'plpgsql';


What I would like to do is pass in the column name that is being queried
against (cust_email) so it can be dynamic.   I tried the following but it
always returns an empty set.

CREATE OR REPLACE FUNCTION lookup_customer(varchar,varchar) RETURNS SETOF
customer_rec AS
'
DECLARE
   r RECORD;
   in_string ALIAS FOR $1;
   in_column ALIAS FOR $2;
BEGIN
   FOR r IN SELECT
s_oid,mer_id,site_id,order_id,pymt_type,pymt_subtype,comp_name,f_name1,l_nam
e1,f_name2,l_name2,address,city,state
,zipcode,phone,cust_email,country from customers where in_column ILIKE
in_string LOOP
   RETURN NEXT r;
   END LOOP;
   RETURN;
END '
LANGUAGE 'plpgsql';


pgsql-general by date:

Previous
From: Jan Wieck
Date:
Subject: Re: [HACKERS] Slony-I goes BETA
Next
From: Bruce Momjian
Date:
Subject: Re: Building Thread-Safe on OS X