Mario Reyna escribió: > > Hola.. este es mi primer post.. Hola, bienvenido (otra vez)
> alguien que me puede ayudar > por necesidades de diseño se cuenta con "n" esquemas en postgresql 8.4 que se > comportan exactamente igual (cuentan con las mismas tablas, funciones etc); > > La idea principal es que las funciones que se desarrollen, sean ejecutadas en > automaticos, en los esquemas almacenados en una tabla . Este diseño es muy malo, porque te está forzando a cometer cosas como la que sugieres. > mi idea inicial seria hacer una funcion en pl/pgsql > que se posicione atravez del search_path y compile le funcion. > usando el commando de la consula \i \i es una orden de psql, la cual es una aplicación cliente; como tal, no puede funcionar en plpgsql, que es una implementación totalmente del lado del servidor. Si quieres hacer una función que escriba a otra función (cosa que no te recomiendo; más bien, deberías replantear tu diseño para evitar estas cosas), puedes hacer algo de este estilo: create or replace function toastcheck_writer(text) returns text language plpgsql as $ff$ BEGIN /* our function header */ func = $f$ CREATE OR REPLACE FUNCTION toastcheck__$f$ || $1 || $f$() RETURNS void LANGUAGE plpgsql AS $$ DECLARE BEGIN PERFORM 'some sin'; $f$; /* And this is our constant footer */ func := func || $f$ col, sqlerrm; END; END LOOP; END; $$; $f$; RETURN func; END; $ff$; Esto de arriba, lo que hace es retornar un string que contiene un CREATE FUNCTION para crear una nueva función. Si quieres puedes usar 'EXECUTE func' al final en lugar del RETURN, y en ese caso se va a ejecutar (y por lo tanto se creará esa función). Te lo planteo sólo como una idea, pero no debes creer ni remotamente que te estoy sugiriendo usarla. -- Alvaro Herrera Vendo parcela en Valdivia: http://valdivia.vivastreet.cl/loteos-lotes+valdivia/parcela-en-cabo-blanco--valdivia/19288372 "La verdad no siempre es bonita, pero el hambre de ella sí" -- TIP 2: puedes desuscribirte de todas las listas simultáneamente (envía "unregister TuDirecciónDeCorreo" a majord...@postgresql.org)