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]
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 |