Re: current_query()

From: kernel <jucabapa(at)gmail(dot)com>
To: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: current_query()
Date: 2022-02-23 07:59:57
Message-ID: 89e22594-1905-2e6d-0f38-036b9b4fb431@gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


El 22/02/2022 a las 17:05, Jaime Casanova escribió:
> On Tue, Feb 22, 2022 at 10:55:16AM +0100, kernel wrote:
>> Hola,
>>
>> Estoy utilizando un sistema de auditoria a base de triggrers,  en cada tabla
>> tengo un triggers que llama a una función, en esta funcion utilizo la
>> funcion current_query().
>>
>> Hasta aquí todo bien, el problema es que cuando ejecuto varias instrucciones
>> a la  vez (desde pgadmin ) me trata todas las instrucciones como una sola
>>
>> ¿Hay alguna otra función que me devuelva la instrucción que activa el
>> trigger?
>>
>>
>> Ejemplo desde pgadmin:
>>
>>
>> select * from clientes;
>>
>> select * from productos;
>>
>> update  precios set precio = 0 where  familia = 'XX'  -- en esta tabla esta
>> el trigger
>>
>>
>> Actualmente la función current_query() me devuelve esto :  select * from
>> clientes;select * from productos;update  precios set precio = 0 where
>> familia = 'XX'
>>
> Las 3 consultas están en la misma ventana de pgAdmin? te aseguraste de
> marcar (señalar, seleccionar) el update antes? supongo que no porque no
> tiene ningún sentido ejecutar current_query() de ese modo.
>
> verás current_query() devuelve la consulta que se esté ejecutando en ese
> momento y si seleccionas current_query() y la ejecutas te devolverá:
> <sonido de tambores> "select current_query()".
>
> como no marcaste ninguna sentencia, en ese caso pgAdmin ejecuta todas
> las sentencias que están en esa ventana, pero se envían como una
> consulta multi-sentencia. Es decir, lo que estás viendo: "select
> consulta1; select consulta2; update...".
>
> el uso de current_query() tiene sentido dentro de funciones almacenadas
> y, quizá aunque no lo he probado en ejecución asincrónica de sentencias
> (https://www.postgresql.org/docs/14/libpq-async.html)
>
> Un ejemplo del uso de current_query() que buscas lo puedes encontrar
> aquí: https://github.com/2ndQuadrant/audit-trigger

Gracias Jaime,

Como comente , current_query  lo ejecuto dentro de un a función que es
llamada por un trigger, es por eso por lo que lo que quiero es saber si
hay alguna instrucción que me devuelva la sentencia que activo el trigger

Un Saludo

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message postgresql corrientes 2022-03-09 12:25:20 Fwd: PostgreSQL Corrientes Argentina
Previous Message Jaime Casanova 2022-02-22 16:05:19 Re: current_query()