Por favor, ayuda con esquemas

From: Jo Mateix <2uolap2(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Por favor, ayuda con esquemas
Date: 2012-03-13 22:18:08
Message-ID: CAOiapoN-aL0cdZmvhvfJD20yNry9aEq2TRHtODf6vRD-foLJLg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Creo esta función en esquema public :

CREATE OR REPLACE FUNCTION zz()
RETURNS text AS
$BODY$
DECLARE
declare resultado varchar(35);
BEGIN

select titulo into resultado
from empresas;

return resultado;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION zz()
OWNER TO postgres;

set search_path=esquema1,public;
select * from empresas; -- Me devuelve correctamente
el nombre de la empresa en esquema1
select zz(); -- Me devuelve
correctamente el nombre de la empresa en esquema1

set search_path=esquema2,public;
select * from empresas; -- Me devuelve correctamente
el nombre de la empresa en esquema2
select zz(); *Sigue devolviendo el nombre
de esquema1, porque?*
Por mucho que cambie el esquema con search_path, si no cierro la sesión, la
función zz() siempre se ejecuta en el esquema1.
Si cierro la sesión y la función se ejecuta primero en esquema2 devuelve el
resultado de este pero ya es imposible ejecutarla y que devuelva el
resultado del esquema1.

Es posible forzarle el esquema sobre el cual debe actuar? o bien limpiar la
memoria que se queda de la primera ejecución sin necesidad de cerrar la
sesión?

Versión postgres 8.3

Muchas gracias,

Jordi

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Linder Poclaba Lazaro 2012-03-13 22:37:55 Re: [pgsql-es-ayuda] Error al ejecutar una función en PostgreSQL
Previous Message Erick Urias 2012-03-13 20:41:17 Re: Caida de postgres 8.4