Functions as first-class values

From: Jon Smark <jon(dot)smark(at)yahoo(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Functions as first-class values
Date: 2011-04-06 13:43:44
Message-ID: 961874.23865.qm@web112804.mail.gq1.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

Is there support in PL/pgSQL for treating functions as first-class values?
Consider the pseudo-code simple example below, which illustrates how this
feature can be useful. I reckon that this behaviour can be emulated using
EXECUTE, but I suspect there are serious performance penalties.
Your thoughts?

Thanks in advance!
Jon

CREATE FUNCTION f1 (int) RETURNS boolean ...
CREATE FUNCTION f2 (int) RETURNS boolean ...
CREATE FUNCTION f3 (int) RETURNS boolean ...

CREATE FUNCTION do_stuff ...
BEGIN
CASE cond
WHEN 'a' THEN func := f1;
WHEN 'b' THEN func := f2;
WHEN 'c' THEN func := f3;
END CASE

SELECT * FROM foobar WHERE func (foobar.age);
END;

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Vibhor Kumar 2011-04-06 13:44:34 Re: Critical Bug
Previous Message tv 2011-04-06 13:43:34 Re: Critical Bug