Alvaro,
gracias por la explicacion.
Voy a probar con audit_trigger que es lo que mas se aproxima a lo que estoy buscando.
Saludos

Gustavo J. Vaccaro

http://www.gjv.com.ar

El 17/08/2015 a las 12:41 p.m., Alvaro Herrera escribió:
Gustavo Vaccaro escribió:

    Alvaro,<br>
    ok, pero si quisiera obtener las instrucciones de una fecha que
    todavia no fue eliminada por la rotacion del WAL ¿podria hacerlo?<br>
El WAL registra cambios a nivel físico.  Si quieres, puedes intentar
descomponer los bytes que fueron registrados en el WAL para que sean una
tupla de algún catálogo de sistema que te interese (e.g. pg_class),
saber que es un UPDATE o un INSERT o un DELETE, luego identificar la
tupla original (en caso de UPDATE), luego tratar de "decodificar" qué
tipo de sentencia DDL representa ese cambio.  Honestamente, este trabajo
es tan complicado, tedioso y propenso a errores que yo ni siquiera lo
intentaría (sin mencionar que habría que hacer un esfuerzo adicional en
cada migración de versión).  Ah, y no sé qué harás cuando te encuentres
con 9.5 y su molesta (je) habilidad de comprimir los registros WAL
eliminando secuencias de bytes de la tupla modificada que aparecían en
la tupla original.

https://www.flickr.com/photos/nauright/11341288174/

    Ejemplo: detecte un error en una funcion y quiero ver las
    instrucciones que impactaron en un tabla ¿puedo verlas?<br>
    Te estoy hablando, poder ver lo que paso en mi base de datos de
    testing (no en produccion) en la ultima ejecucion.<br>
    Tengo el probelma que todas las instrucciones que genero desde mi
    aplicacion quedan grabadas en pg_log, pero no quedan las generadas
    por el trigger o funcion.
Además de lo que ya mencioné antes, que no volveré a mencionar, y que
resuelve tus requerimientos sin necesidad de decodificar WAL, también te
puede servir audit_trigger.

</eot>