Fonctions sur JSON

From: Frederic Gaerel <frederic(dot)gaerel(at)chronopost(dot)fr>
To: pgsql-fr-generale <pgsql-fr-generale(at)postgresql(dot)org>
Subject: Fonctions sur JSON
Date: 2015-06-02 14:51:18
Message-ID: CACKqRo8RX2hWcPhm72wL=xRz2B8pvUrZZgy1T2oZhk1q-PXTQA@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Bonjour à tous.

J'ai une table contenant une colonne "accusé de réception" sous la forme
d'un json :
exemple :

WITH T AS (
SELECT '{"A":"NULL","B":"NULL","C":"NULL"}' AS accuse, 1234 valeur
UNION
SELECT '{"A":"2015-06-02","B":"NULL","C":"NULL"}', 5678
UNION
SELECT '{"A":"2015-06-01","B":"2015-06-02","C":"2015-06-03"}', 1011
)
SELECT accuse::json, valeur into tmp_json FROM T;

SELECT * FROM tmp_json;

Le principe est le suivant : A, B et C sont des clients qui viennent
positionner leurs accuses de réception spécifiques lors de la récupération
de la 'valeur'.

Si une ligne a été lue par tous les clients, elle est candidate à la purge.

Lors de la purge, je dois supprimer toutes les lignes :

- qui ont été lues par tous les clients : WHERE position('NULL'
IN accuse::text) = 0 (ici seule la ligne avec la valeur 1011 est
"purgeable")
et
- dont le MAX des accusés de réception ("2015-06-03") est strictement
inférieur à la date du jour : AND .... Là je sèche !!!

Une idée pour résoudre ce problème ?

Merci d'avance

*Frédéric Gaërel*

Expert Domaine Transport.
| frederic(dot)gaerel(at)chronopost(dot)fr

[image: Logo Chronopost]
Immeuble Orsud - 3/5 avenue Gallieni - CS 70103 - 94254 Gentilly Cedex |
chronopost.fr <http://www.chronopost.fr/>
Suivez nous sur Facebook <https://fr-fr.facebook.com/chronopost> et Twitter
<https://twitter.com/chronopost>.

[image: DPD Group]

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Frederic Gaerel 2015-06-03 08:17:13 Re: Fonctions sur JSON
Previous Message Stéphane Schildknecht 2015-05-28 11:06:11 Re: [pgsql-fr-generale] Re: [pgsql-fr-generale] Nouvelles versions mineures publiées