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: 2012-12-06 11:09:50
Message-ID: m2boe75tdt.fsf@2ndQuadrant.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Martine AGUERA <martine(dot)aguera(at)laas(dot)fr> writes:
> pour faire simple j'ai retenu dans un premier temps la proposition de
> Francois Figarola où je teste le nom de la table qui a déclenché le trigger
> et selon le cas j'utilise les noms des colonnes correspondantes.

C'est clairement mieux.

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…

Mes essais donnent donc, logiquement :

ERROR: record "new" is not assigned yet
DETAIL: The tuple structure of a not-yet-assigned record is indeterminate.
CONTEXT: PL/pgSQL function tg_duration() line 6 at assignment

La version dynamique qui fonctionne est détaillée dans l'article suivant
et je pensais pouvoir exploiter l'opérateur #= dans notre cas pratique.

http://tapoueh.org/blog/2010/11/24-dynamic-triggers-in-plpgsql.html
http://www.postgresql.org/docs/9.2/static/hstore.html

--
Dimitri Fontaine
http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Dimitri Fontaine 2012-12-07 10:31:18 Dépôt Debian/Ubuntu de paquets PostgreSQL
Previous Message Martine AGUERA 2012-12-06 10:51:03 Re: PostgreSQL9.1 trigger avec arguments