Re: vue paremetrable ?

From: "Marie-Claude QUIDOZ" <Marie-Claude(dot)QUIDOZ(at)cefe(dot)cnrs(dot)fr>
To: <pgsql-fr-generale(at)postgresql(dot)org>
Subject: Re: vue paremetrable ?
Date: 2012-11-14 10:20:10
Message-ID: AE1706B5C143C44589513A92F5945DB7B93A17@ZZML.newcefe.newage.fr
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Bonjour

Ma base de données contient des observations annuelles sur le comportement des mouettes. Elle est utilisée par des non spécialistes de SQL. L'outil utilisé pour consulter la base de données est PGadmin3.

Une recherche courante faite : "afficher moi le comportement des mouettes pour une année donnée" d'où ma requête simple
SELECT * FROM entree_donnees.bordereau_jaune WHERE annee_obs=2004.
C'est cette requête que j'aimerai "paramétrer" pour faciliter la vie des utilisateurs (ps : si j'arrive à faire celle-là, je pourrai en faire des plus complexes - les utilisateurs sont fana de tableaux croisés) et pour permettre son appel depuis un logiciel externe (style R, QGis, ...)

Ne trouvant pas comment faire une vue paramétrable, j'ai essayé de regarder du coté des fonctions...

En espérant que ca soit plus claire

> Dans le cas général une « vue paramétrable » n'existe pas avec PostgreSQL. Techniquement, le seul moyen de s'en rapprocher serait peut être l'utilisation des Foreign Data Wrappers…
J'ai déjà utilisée les FDW pour accéder à un fichier excel mais à première vue ça me semble assez loin de mon problème

A+

MCQ
-----Message d'origine-----
De : pgsql-fr-generale-owner(at)postgresql(dot)org [mailto:pgsql-fr-generale-owner(at)postgresql(dot)org] De la part de Dimitri Fontaine
Envoyé : mardi 13 novembre 2012 23:54
À : Marie-Claude QUIDOZ
Cc : pgsql-fr-generale(at)postgresql(dot)org
Objet : Re: [pgsql-fr-generale] vue paremetrable ?

Bonsoir,

"Marie-Claude QUIDOZ" <Marie-Claude(dot)QUIDOZ(at)cefe(dot)cnrs(dot)fr> writes:
> Pour exploiter ma base de données, j'ai créé une fonction paramétrable
> qui correspond à mes besoins (cf en dessous)
>
> CREATE or REPLACE FUNCTION entree_donnees.recherche_bordereau_jaune_annee_obs(integer)
> RETURNS SETOF entree_donnees.bordereau_jaune AS
> $BODY$
> SELECT * FROM entree_donnees.bordereau_jaune WHERE annee_obs=$1
> $BODY$
> LANGUAGE SQL VOLATILE;
>
> SELECT * FROM entree_donnees.recherche_bordereau_jaune_annee_obs(2004)
>
> L'idéal serait d'utiliser des vues paramétrables mais ca ne me semble pas possible.

Dans le cas général une « vue paramétrable » n'existe pas avec PostgreSQL. Techniquement, le seul moyen de s'en rapprocher serait peut être l'utilisation des Foreign Data Wrappers…

Ceci dit dans ce cas précis, l'exemple est si simple qu'il est difficile de comprendre l'objectif souhaité. À quel problème essayez-vous de répondre avec cette fonction ? Protection de l'accès aux données, simplification des API, autre ?

Enfin, cette fonction devrait vraissemblablement être marquée STABLE plutôt que volatile, sa lecture me laisse penser qu'elle retournera toujours les mêmes résultats pour les mêmes arguments tant que le contenu de la base de données n'est pas modifié.

À moins bien sûr que entree_donnees.bordereau_jaune soit une vue qui expose une colonne calculée du type now() ou random().

--
Dimitri Fontaine
http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support

--
Sent via pgsql-fr-generale mailing list (pgsql-fr-generale(at)postgresql(dot)org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-fr-generale

In response to

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message damien clochard 2012-11-14 15:44:38 Re: vue paremetrable ?
Previous Message Cédric Villemain 2012-11-14 09:15:34 Re: FOSDEM PGDay et Devroom 2013 - Annonce et Appel à Oracteurs