On Tue, Mar 1, 2011 at 5:17 PM, Pavel Stehule <pavel.stehule@xxxxxxxxx> wrote: > Hello > > 2011/3/2 Pierre Racine <Pierre.Racine@xxxxxxxxxxxxx>: >> 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 another way if you are willing to write some C is to wrap and expose OidFunctionCall1 so it takes oid of function you want to call. merlin -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general