Re: PostgreSQL9.1 trigger avec arguments

From: Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
To: Martine AGUERA <martine(dot)aguera(at)laas(dot)fr>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: PostgreSQL9.1 trigger avec arguments
Date: 2013-08-27 19:59:02
Message-ID: m2li3mx5vd.fsf@2ndQuadrant.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr> writes:
> Je crois que je vais transformer cela en article plus complet, merci
> pour le sujet :)

Et c'est enfin chose faite :

http://tapoueh.org/blog/2013/08/27-auditing-changes-with-hstore

> En réalité BEFORE INSERT est trop tôt pour pouvoir exploiter le type de
> données de NEW, qui n'est pas encore résolu. Cela permet de modifier le
> tuple afain qu'il respecte les contraintes du type de données…

Je m'étais fais avoir par une erreur pas si facile à corriger
(d'ailleurs personne ici semble n'avoir relevé) : un trigger par défaut
est FOR EACH STATEMENT, ce qui prive complètement sa procédure associée
d'accès au variables OLD et NEW, mais avec un message d'erreur étrange.

> ERROR: record "new" is not assigned yet
> DETAIL: The tuple structure of a not-yet-assigned record is indeterminate.

En précisant FOR EACH ROW on s'en sort très bien. Il se trouve que j'ai
fait à nouveau l'erreur récemment et que cette fois j'ai pris le temps
de comprendre et corriger, d'où la sortie tardive d'unarticle détaillé.

En espérant que cela soit encore utile,
--
Dimitri Fontaine
http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Pierre BOIZOT 2013-08-28 08:41:39 une autre histoire de triggers....
Previous Message Pierre BOIZOT 2013-08-25 20:26:01 Re: Oracle vers postgresql : Conversion de code : questions