Re: Comment retrouver le source d'une fonction utilisé par un trigger ?

From: Mathieu Arnold <mat(at)mat(dot)cc>
To: Didier BRETIN <dbr(at)informactis(dot)com>
Cc: Pgsql Generale Fr <pgsql-fr-generale(at)postgresql(dot)org>
Subject: Re: Comment retrouver le source d'une fonction utilisé par un trigger ?
Date: 2005-10-08 13:08:12
Message-ID: 2A8DAE48AEF5C66A446AAC9E@cc-126-240.int.t-online.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

+-le 06/10/2005 15:54 +0200, Didier BRETIN écrivait :
| Bonjour,
|
| J'ai bataillé ce matin pour arriver à retrouver dans ma bdd, sous
| une version 7.2, (oui je sais c'est une vielle version ;) ), le source
| d'une fonction utilisé par un déclencheur (version française de trigger).

Tout dépends de ce en quoi est écrit cette fonction :-)

compta=> \d client_rib
(..)
Contraintes :
«client_rib_check» CHECK (rib_valid(etablissement, guichet, compte, clef))
(..)
Déclencheurs :
client_rib_hist AFTER INSERT OR DELETE OR UPDATE ON client_rib FOR EACH
ROW EXECUTE PROCEDURE historisation()

compta=> \df+ rib_valid

Liste des fonctions
Schéma | Nom | Type de données du résultat | Type de données
des paramètres | Propriétaire | Langage |
Code source
| Description
--------+-----------+-----------------------------+----------------------------------------------+--------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------
public | rib_valid | boolean | integer, integer,
character varying, integer | compta | plruby |
cle = args[0].to_i % 97;
cle = (cle * 100000 + args[1].to_i) % 97;
cle = (cle * 100000000000 +
args[2].upcase.tr('ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'12345678912345678923456789').to_i) % 97;
cle = ( cle * 100 ) % 97;
cle = 97 - cle;
return args[3] == cle;
|
(1 ligne)

mais :
compta=> \df+ historisation
Liste des
fonctions
Schéma | Nom | Type de données du résultat | Type de données des
paramètres | Propriétaire | Langage | Code source | Description
--------+---------------+-----------------------------+--------------------------------+--------------+---------+---------------+-------------
public | historisation | "trigger" |
| pgsql | c | historisation |
(1 ligne)

En effet, la 1ere est dans un langage interprété par le serveur, l'autre est
une librairie C. Dans le cas ou c'est du compilé, a moins d'avoir la source
ou un *bon* décompilateur, c'est chaud :-)

--
Mathieu Arnold

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Florian Ledoux 2005-10-10 09:22:36 SQLCode dans handler d'exception PL/pgSQL
Previous Message Francois Suter 2005-10-07 14:12:47 Re: Liste de consultances [WAS: Autorisation d'une pub]