Hello

2011/3/2 Pierre Racine <pierre.rac...@sbf.ulaval.ca>:
> Hi,
>
> I would like to write a generic plpgsql function with a text parameter being 
> a callback function name so that my general function can call this callback 
> function. e.g.:
>
> CREATE OR REPLACE FUNCTION ST_MyCallbackFunction(y int)
>    RETURNS int AS $$
>    DECLARE
>    BEGIN
>        RETURN someCalculationBasedOnY;
>    END;
>    $$ LANGUAGE 'plpgsql';
>
> CREATE OR REPLACE FUNCTION ST_MyGeneralFunction(callback text)
>    RETURNS SETOF geomval AS $$
>    DECLARE
>        x integer;
>        y integer;
>    BEGIN
>        y := somecalculation;
>        x := 'callback'(y);  --This is what I need

EXECUTE 'SELECT ' || callback || '($1)' USING y INTO x;

there are no other way than EXECUTE

attention - there is a sql injection risk

regards

Pavel Stehule

>        RETURN x;
>    END;
>    $$ LANGUAGE 'plpgsql';
>
> I don't want to do an EXECUTE statement since I have no table to put after 
> the FROM clause. I want to assign the resulting value directly to a variable 
> like in my example.
>
> Can I/How can I achieve this?
>
> Thanks,
>
> Pierre
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to