Re: como utilizar SET LOCAL

From: Diego Ayala <netdiego81(at)gmail(dot)com>
To: Anthony Sotolongo <asotolongo(at)gmail(dot)com>
Cc: Postgres Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: como utilizar SET LOCAL
Date: 2017-08-18 15:58:49
Message-ID: CANDf+nB0WpJXKR+cMBEquO5j0rXkcGQwg_6ior-oZQD3f=YMBg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gracias Anthony, ahora encontre el problema, debe tener set local
"prueba.app_user" = 'admin';, me falto prueba.

la diferencia que encuentro es que al usar SET SESSION, y asignar el valor,
con select current_setting, devuelve el valor asignado, sin embargo, al
usar SET LOCAL, y cargar la variable, primeramente si o si debo utilizar
SELECT set_config('prueba.app_user', 'admin', false); , para luego usar el
select current_setting.

El 18 de agosto de 2017, 11:37, Anthony Sotolongo <asotolongo(at)gmail(dot)com>
escribió:

> Hola Diego, te aseguraste que ese app_user es una variable de
> configuración? pues es el error que retorna!!!
>
> puede que se llame prueba.app_user
>
> asegúrate de tenerlo en el postgresql.conf por favor
>
>
> Saludos
>
>
> On 18/08/17 11:54, Diego Ayala wrote:
>
>> buenos dias, estoy teniendo un incoveniente para utilizar el SET LOCAL,
>> estuve haciendo algunas pruebas iniciales con SET SESSION, que funcionan
>> sin problemas:
>>
>> set session "prueba.user" = 'admin';
>> SELECT current_setting('prueba.user');
>>
>> retornando el resultado "admin"
>>
>> pero, al usar SET LOCAL
>>
>> set local "app_user" = 'admin';
>>
>> obtengo este resultado
>>
>> WARNING: SET LOCAL can only be used in transaction blocks
>>
>>
>> ERROR: unrecognized configuration parameter "app_user"
>>
>> ********** Error **********
>>
>> Ya lei la documentacion, que habla de usar solo en bloque de transaccion,
>> pero tampoco me funciona, tengo instalado PostgreSQL 9.4.10 64bits. sobre
>> RHE.
>>
>> Incluso cree una funcion para tratar de meterlo dentro de 1 transaccion.
>>
>>
>> Create or Replace function user_app()
>> Returns text AS
>> $BODY$
>> Declare
>> valor text;
>> Begin
>> set local "app_user" = 'admin';
>> SELECT current_setting('app.user') INTO valor;
>> return valor;
>>
>> END;
>> $BODY$
>> Language plpgsql;
>>
>>
>> mismo error
>>
>> ERROR: unrecognized configuration parameter "app_user"
>> CONTEXT: SQL statement "set local "app_user" = 'dreese'"
>> PL/pgSQL function user_app() line 5 at SQL statement
>> ********** Error **********
>>
>>
>> Si alguien me puede ayudar a entender como usar el LOCAL.
>>
>> Gracias de ante mano.
>>
>>
>>
>>
>>
>>
>>
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message mauricio pullabuestan 2017-08-22 18:54:07 Replicación Hot Standby
Previous Message Anthony Sotolongo 2017-08-18 15:37:09 Re: como utilizar SET LOCAL