Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group