Bonjour,

pour l'instant, je teste sur une petite table les fonctions json de postgresql 9.4.5 avant de passer , si les résultats sont corrects, à des tables plus conséquentes (tables qui ne stockent pas de objets de type json, jsonb).

La table "types" à la structure suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
 
Colonne     |         Type                    |
idtype        | smallint                       |
 nom_type | character varying(25) |
le but est d'obtenir une sortie sous forme d'un objet json comme ci-dessous:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
{"types":[
    {"idtype":1, "nom_type":"valeur1"},
    {"idtype":2, "nom_type":"valeur2"},
    {"idtype":3, "nom_type":"valeur3"},
    {"idtype":4, "nom_type":"valeur4"}
]}
j'ai obtenu ce résultat via la requête:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
select json_build_object('types',(select array_to_json(array_agg(row_to_json(q)),true) from( select idtype, nom_type from types) q));
1) Est-il possible de simplifier cette requête ?

2) Les opérations sur les tables finales seront beaucoup plus complexes. Si le requêtage et la finalisation en objet json est souvent (toujours) aussi lourd, est-il préférable de passer par des fonction en plpython3u pour la mise en forme json ? Quel est votre retour d'expérience sur ce type de fonctionnalité ?

merci