Cette fonction permet la comparaison deux versions d’une observation.
Elle exploite la table saisie.suivi_saisie_observation avec les fonctions windows : http://docs.postgresql.fr/9.2/functions-window.html
La table saisie.suivi_saisie_observation est créée sur le même modèle que la table audit de la documentation plpgsql :
- http://docs.postgresql.fr/9.1/plpgsql-trigger.html#plpgsql-trigger-audit-example
Chaque version de ligne de la table saisie.saisie_observation y est datée (date_operation). La fenêtre est une partition réalisée selon id_obs et ordonnée par date_operation. Les fonctions window sont expliquées ici dans la doc de postgresql :
- http://docs.postgresql.fr/9.2/functions-window.html
- http://docs.postgresql.fr/9.2/sql-expressions.html#syntax-window-functions
Des tests sont à ajouter, notamment pour vérifier que les versions de lignes existent.
Et on peut aller plus loin dans le comportement et afficher les valeur avant/aprés des champs modifiés.