Re: Functions as first-class values
От | Merlin Moncure |
---|---|
Тема | Re: Functions as first-class values |
Дата | |
Msg-id | BANLkTinMw6+Zkh7-QOt2=Y_LFZ7z3b0LKQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Functions as first-class values (Pavel Stehule <pavel.stehule@gmail.com>) |
Список | pgsql-general |
On Wed, Apr 6, 2011 at 9:10 AM, Pavel Stehule <pavel.stehule@gmail.com> wrote: > Hello > > 2011/4/6 Jon Smark <jon.smark@yahoo.com>: >> 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; >> > > no it isn't possible. it can be done with a small C wrapper though. see archives. merlin
В списке pgsql-general по дате отправления: