Re: Schema propietario

From: Oswaldo Hernández <listas(at)soft-com(dot)es>
To: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Schema propietario
Date: 2005-04-28 14:13:49
Message-ID: 4270EF9D.5020808@soft-com.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Alvaro Herrera escribió:
> On Thu, Apr 28, 2005 at 12:09:57PM +0200, Oswaldo Hernández wrote:
>
>>Hola a todos,
>>
>>Cuando establezco un schema de trabajo con 'set current_schema' y desde
>>este llamo a una funcion que se encuentra en otro schema, dentro de esta
>> funcion current_schema() devuelve el shema establecido anteriormente.
>>
>>Hasta aqui perfecto.
>>
>>Pero, en ciertos casos me interesaria que esta funcion pudiera obtener
>>el schema donde esta instalada en vez del schema atual de trabajo.
>>
>>No encuentro ninguna funcion que me de este dato, ¿existe?
>
>
> Hum, puedes ser un poco mas explicito? De partida no me queda claro que
> es current_schema ... que version estas usando?
>

Postgresql 8.0.2

Disculpa, me he liado, queria decir que establezco el schema de trabajo
con 'set search_path to miesquemadetrabajo'.

La pregunta es si una funcion puede saber en que esquema esta instalada
(propietario de la funcion), puesto que 'selet current_schema()'
devuelve el primer esquema del search path.

Intento explicarme:

varios esquemas totalmente identicos, esquema a, esquema b, esquema c ...

En todos hay una funcion llamada 'actualizadatos' y una tabla llamada
'datos'.

La funcion 'actualiza_datos' modifica la tabla 'datos' con

update datos set ..........

Ahora bien:

. establezco 'set search_path to a'
. ejecuto a la funcion 'actualizadatos()'
. la tabla 'datos' del esquema 'a' ha sido actualizada.

. ahora, sin cambiar el search_path ejecuto 'b.actualizadatos()'
. la tabla 'datos' del esquema -> 'a' <- ha sido actualizada.

Lo que me gustaria conseguir es que la funcion actualizara la tabla de
su esquema, no la tabla que hay en el 'current_schema'

Esto se podria conseguir pasandole el esquema como parámetro a la
función, pero si esta funcion es un trigger esto se complica un poco.

No se si me he explicado bien.

Gracias.

--
*****************************************
Oswaldo Hernández
oswaldo(at)soft-com(dot)es
*****************************************

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Manuel Sugawara 2005-04-28 14:45:32 Re: Ayuda con Check (listo)
Previous Message Alvaro Herrera 2005-04-28 13:08:19 Re: Schema propietario