PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#51 Re : Général » Postgres 9.1 - Repercussion d'un changement de nom de domaine » 29/10/2015 13:29:07

Si pg_hba.conf ne contient que ces 2 lignes non commentés cela veut dire que seuls des accès par mot de passe sont autorisés.


Comme ces mots de passe ne figurent a priori pas dans le script Python (c'est rassurant ;-)) on peut supposer qu'ils se trouvent dans
le fichier des mots de passe. C'est une possibilité, il y'en a d'autres, mais c'est la plus probable.


Compte tenu des changements intervenus ce fichier ne doit plus se trouver dans l'emplacement attendu (le répertoire personnel de l'utilisateur).
L'utilisateur sous lequel s'exécutent le ou les scripts ne doit plus être le même qu'antérieurement. Il faut probablement récupérer le fichier de l'ancien compte
utilisateur et le copier au même emplacement mais pour l'utilisateur sous lequel les scripts Python sont exécutés.

#52 Re : Général » Postgres 9.1 - Repercussion d'un changement de nom de domaine » 29/10/2015 12:29:13

Ok merci pour ces précisions qui permettent d'y voir plus clair sur le type de problème rencontré.


A priori il s'agit donc d'un problème d'authentification: où sont situés les scripts Python par rapport au serveur ? Sur le même host/machine ?


Jetez un oeil sur votre fichier pg_hba.conf et notamment sur les lignes relatives au rôle postgres: voir la doc à ce sujet.
Les changements intervenus sur votre réseau font que pour le serveur le client (vos scripts) ne se présentent plus de la même manière pour lui: les conditions fixées
dans le fichier pg_hba.conf ne sont plus réunies pour autoriser l'accès.


Si vous n'arrivez pas à résoudre le problème pouvez vous donner un extrait de votre fichier pg_hba.conf, au moins les lignes concernant le rôle
postgres (sachant que l'ordre étant important l'intégralité du fichier, hors commentaires, serait mieux) ?

#53 Re : Général » Postgres 9.1 - Repercussion d'un changement de nom de domaine » 29/10/2015 10:12:24

Bonjour,


difficile de vous répondre en l'état, il faudrait des éléments supplémentaires, et notamment pour commencer: qu'essaie de faire exactement le script Python au moment où il demande un mot de passe (une connexion au serveur PostgreSQL) ?
Pouvez vous dire quelle est la commande qui échoue et quel est le message précisément ?


Concernant le changement du nom de domaine: quel changement avez vous fait exactement ? Pouvez vous décrire précisément le ou les changements (donnez des faux noms de domaines si vous voulez) ?


Quel est l'OS (et sa version éventuellement) ?


Il est peu probable que le problème concerne directement PostgreSQL et qu'il nécessite une quelconque réinstallation du serveur.

#54 Re : Général » Transaction annulée » 12/06/2012 17:07:32

A ma connaissance il faut rendre les contraintes DEFERRABLE. Et encore certaines ne le sont pas (NOT NULL et CHECK constraints).


Voir la documentation (partie DEFERRABLE, NOT DEFERRABLE)

#55 Re : Général » Espaces dans un champ character » 11/06/2012 15:58:48

Cela semble conforme à la documentation et notamment:


Les espaces finales sont ignorées lors de la comparaison de deux valeurs de type character et sont supprimées lors de la conversion d'une valeur character en un des autres types chaîne


Pour résoudre le problème essayez de faire un cast vers un VARCHAR:


select 'a' || cdrub::VARCHAR || 'a' from param_rub where oid = '15203';

#56 Re : phpPgAdmin » problème de connexion avec phppgadmin » 06/06/2012 15:34:59

Quel(s) message(s) exactement figurent dans les logs du serveur PostgreSQL pour ces tentatives avortées ?

#57 Re : PL/pgSQL » Problème de manipulation de séquence dans fonction trigger » 05/06/2012 09:30:10

Cela n'a peut être (probablement) rien à voir mais je remplacerais les guillemets simples entourant le corps de la fonction
par des $$ et je supprimerais les guillemets simples entourant le nom du langage (LANGUAGE plpgsql au lieu de LANGUAGE 'plpgsql').

#58 Re : PgAdmin3 » [RÉSOLU] pgscript » 28/05/2012 09:11:09

pasqal a écrit :

bonsoir,

je tente un script qui commence comme ça :

DECLARE @layenom;
DECLARE @laytype;
SET @layenom = base_essai; -- indiquer le nom de la couche
SET @laytype = 'POINT'; -- type de couche : POINT MULTILINESTRING POLYGON

DECLARE ne déclare pas une variable mais un curseur et SET ne positionne pas n'importe quelle variable mais les paramètres d'éxécution.


Si ce que vous  cherchez à faire est de positionner des variables dans un script psql alors la solution est à chercher du côté de la meta commande
\set  nom valeur (ou d'utiliser le switch --set). Voir la doc de psql

#59 Re : PL/pgSQL » Triggers sur des tables liées » 22/05/2012 14:32:05

Gold.Strike a écrit :

De même, on sait si le document est à synchronisé que lorsqu'on mets à jour "doclien", car c'est lui qui sait à quelle table est liée un document.

donc le trigger est actuellement posé sur la table doclien ?


Gold.Strike a écrit :

Il ne me convient pas, car il ne marche que pour un UPDATE. Il faudrait que je l'adapte pour qu'il marche aussi dans le cas ou on ajoute un document. Mais comme le document est ajouté avant doclien, je ne sais pas trop quelle solution utiliser :

je suis désolé mais ce que vous décrivez m'apparaît confus (ca vient probablement de moi ;-)).


Pouvez vous préciser à partir de quel(s) succession d'événement(s) une synchronisation doit elle être planifiée ?
Dès l'insertion/modification de documents ou seulement après que doclien ait été mis à jour ?
Ou une autre succession de mises à jour, peu importe mais merci de la définir précisément ?


Si il s'agit "simplement" de synchroniser chaque table indépendamment de ce qui se passe dans les autres je suppose qu'une solution envisageable
est de poser la même fonction triggers sur toutes les tables qui se contenterait d'enregistrer dans la table synchronisation les modifications
effectuées.


Par contre si la synchronisation ne doit intervenir que sous certaines conditions qui concernent de multiples tables la solution sera différente.

#60 Re : Installation » Problème d'installation de PostGIS » 08/05/2012 18:02:38

gdhia a écrit :

Bonjour,

Sur mon serveur distant debian, j'ai déjà Postgresql installé sous

/etc/postgresql/8.3/.

j'essaye maintenant d'installer PostGIS. Je l'ai pour commencer téléchargé de son site et j'ai mit l'archive sous le dossier

/etc/postgresql/

par la suite j'ai extrait le contenu de l'archive ce qui m'a crée un nouveau dossier

/etc/postgresql/postgis-1.5.3/

sous le dossier postgis j'ai lancé la commande

./configure

la dernière ligne du rapport me dit:

configure: error: the PGXS Makefile /usr/lib/postgresql/8.3/lib/pgxs/src/makefiles/pgxs.mk cannot be found. Please install the PostgreSQL server development packages and re-run configure.

et puis ... rien

j'ai essayé de cherche ce fichier pgxs.mk sur mon serveur mais il semble ne pas y exister.

est ce que quelqu'un pourrait m'aider à passer ce problème et à installer PostGIS ?

Merci

Bonjour,


Il vous faut probablement installer le package debian postgresql-server-dev.


Voir http://postgis.refractions.net/document … #id2799864 pour les pré-requis.


Il n'est probablement pas nécessaire non plus de faire tout cela sous /etc

#61 Re : Général » Probleme sur une requete avec distinct et over() » 07/05/2012 18:49:15

palex a écrit :

presque mais du coup le count(distinct codification) from parution ne tient pas compte des conditions de la requete principal, si je rajotue des jointures

SELECT p.libelle, p.codification, p.numero, (SELECT count(DISTINCT codification) FROM parution) FROM parution p
join majointure1 A
join majointure2 B
join majointure3 C
where
A.datesuppression is null
and B.stock > 0
and C.libelle ilike 'toto';

il va falloir que je rajoute dans la sous requete les memes conditions wink
mais petit a petit tu arrive exactement a rejoindre mon probleme car ta prochaine idée sera surement de faire comme j'ai fait au debut avec directement :

SELECT p.libelle, p.codification, p.numero,  count(DISTINCT codification)  FROM parution p ....

mais vu qu il y a un limit afin de gérer la pagination et ne pas retourner au client 2000 lignes alors qu'on en veut uniquement 10, j'ai ajouté le mot clé over() pour ne pas s'areter au limit mais dès que je met le mot clé over(), je n'ai plus le droit d'utiliser distinct ou group by, comme je le disais je pense qu il me faudrait :

count(distinct codification) over() ou alors peut etre un count(codification) over(group by codification)  mais je ne crois pas que ce soit possible smile

Dans ce cas là pourquoi ne pas factoriser en utilisant  la clause WITH:

WITH ma_table AS(
    SELECT libelle, codification, numero
    FROM parution JOIN... JOIN... WHERE...
)
SELECT libelle, codification, numero, (SELECT count(DISTINCT codification) FROM ma_table) FROM ma_table;

#62 Re : Général » Probleme sur une requete avec distinct et over() » 07/05/2012 18:03:40

palex a écrit :

si tu fait un insert dans parution :

insert into parution values (tata, 5678, 4);

et que tu rejoue la requete tu auras surement une colonne count avec:

 libelle | codification | numero | count 
---------+--------------+--------+-------
 TOTO    | 3456         |      1 |     2
 TOTO    | 3456         |      2 |     2
 TITI    | 1234         |      6 |     2
 TITI    | 1234         |      7 |     2
 TATA    | 5678         |      4 |     1

je n'ai pas refait le test mais je suppose que le resultat sera celui ci car le count retourne uniquement le nombre de parution pour une codification et dans l'example TOTO => 2 et TITI =2 donc ta requete fonctionne mais c'est juste une question de données je pense non?

et moi j'aimerai avoir pour le cas ci dessus :

 libelle | codification | numero | count 
---------+--------------+--------+-------
 TOTO    | 3456         |      1 |     3
 TOTO    | 3456         |      2 |     3
 TITI    | 1234         |      6 |     3
 TITI    | 1234         |      7 |     3
 TATA    | 5678         |      4 |     3

si tu arrive a avoir le resultat voulu alors la je suis prenneur, je test en tout cas ta solution voir si je peux m'en sortir avec au cas ou
smile

Ah je commence à un peu mieux comprendre...


Peut être que cela conviendrait mieux:

SELECT p.libelle, p.codification, p.numero, (SELECT count(DISTINCT codification) FROM parution) FROM parution p;

#63 Re : Général » Probleme sur une requete avec distinct et over() » 07/05/2012 15:16:11

palex a écrit :

mais moi j'aimerais avoir :

TOTO    3456                 1     3
TOTO    3456                 2     3
TITI        1234                 4     3
TITI        1234                 5     3
TITI        1234                 6     3
TATA      11111                1      3

car a l'affichage de mon resultat sur la page j'ai uniquement besoin d'avoir le nombre de titre unique donc dans mon cas j'ai bien 3456, 1234 et 11111 donc 3 titres et dans le tableau qui est affiché en dessous je dois afficher les 6 lignes car elle dispose d'un numero différent, il ne s'agit pas des memes parutions.

Une solution éventuelle avec les sous-requêtes :


pour une table parution définie comme suit:

\d parution 
            Table « public.parution »
   Colonne    |       Type        | Modificateurs 
--------------+-------------------+---------------
 libelle      | character varying | 
 codification | character varying | 
 numero       | integer           | 

et avec les données suivantes:

SELECT * FROM parution;
 libelle | codification | numero 
---------+--------------+--------
 TOTO    | 3456         |      1
 TOTO    | 3456         |      2
 TITI    | 1234         |      6
 TITI    | 1234         |      7
(4 lignes)

On peut faire ca:

SELECT p.libelle, p.codification, p.numero, s.count FROM parution p INNER JOIN (SELECT codification, count(*) FROM parution GROUP BY codification) s ON (p.codification = s.codification);
 libelle | codification | numero | count 
---------+--------------+--------+-------
 TOTO    | 3456         |      1 |     2
 TOTO    | 3456         |      2 |     2
 TITI    | 1234         |      6 |     2
 TITI    | 1234         |      7 |     2
(4 lignes)

Mais je ne suis toujours pas sûr d'avoir bien compris le problème...

#64 Re : Général » Probleme sur une requete avec distinct et over() » 07/05/2012 11:04:39

palex a écrit :

bonjour

je dispose de cette requete:

...

le souci c'est que dans la table parutionpresse je peux avoir

libelle  | codification | numero
TOTO    3456                  1
TOTO    3456                  2
TITI        1234                 6
TITI        1234                 7

donc j'aimerai avoir dans mon "count(parutionpr1_.codificationTitre) over() as col_2_0_"   2 car j'ai bien 4 lignes mais qui corresponde a 2 parutions car la codification est identique.


Le OVER ne comporte pas de clause PARTITION BY donc il exécute le count
sur la totalité des lignes, soit 4 dans ce cas.


Enfin j'imagine car je ne suis pas sûr de bien comprendre l'exposé.


Pour y voir plus clair commencez par enlever le GROUP BY et mettre à la place du over actuel
un OVER(PARTITION BY produitpre0_.id, parutionpr1_.codificationTitre).

#65 Re : PL/pgSQL » insertion valeur » 02/05/2012 13:22:56

MOCAER19 a écrit :

Bonjour à tous ,

J'ai un petit soucis.
Je suis en train de créer une fonction :

CREATE FUNCTION
nom_fonction_mis_a_jour()
AS 'Mis à jour base de données APL'
LANGUAGE plpgsql;
UPDATE t_info_parcelle SET gel

INSERT INTO uhp VALUES()

UPDATE t_info_parcelle SET gel=t_info_parcelle.gel FROM gel WHERE t_info_parcelle.uhp=uhp.uhp;


Cependant, je souhaite paramétrer la table info_parcelle pour qu'elle se modifie quand j'insère des données dans la table uhp. Cependant, ma fonction INSERT TO ne marche pas, existe t-il un VALUES par défaut ?

Merci d'avance ! ^^


VALUES(DEFAULT) probablement...


M'enfin en l'état votre fonction ne risque pas de fonctionner,  elle contient quelques erreurs dont :


* Commande UPDATE sans clause RETURNING (OK avec PERFORM UPDATE... mais pas un simple UPDATE...)

* SET gel à quelle valeur. SET gel = DEFAULT peut être ?

* Même chose pour le VALUES()


Pensez également aux trigger si il s'agit d'alimenter une autre table lorsqu'il se passe quelque chose
dans une 1ère table : CREATE TRIGGER name AFTER INSERT ON table FOR EACH  ROW
EXECUTE PROCEDURE function_name ( arguments )...

#66 Re : Installation » problème de connexion depuis un windows » 21/04/2012 08:35:47

edlm a écrit :

est ce que le poste sous windows7 (srvC) a un serveur ident ? Je n'en sais rien (je connais mal le monde Windows et m'y intéresse peu)
mais je ne serais pas étonné si c'était le cas (pas de serveur ident sur Windows 7 par défaut).


Désolé je me suis trompé de ligne dans le fichier pg_hba.conf. Mon poste est sans objet.

#67 Re : Installation » problème de connexion depuis un windows » 21/04/2012 08:33:22

fraoustin a écrit :

et ainsi pour le pg_hba.conf

local   all         postgres                          ident
....

...
si je me place sur le poste srvB et que je lance la commande suivante:

psql -h srvA -U postgres postgres

tout fonctionne

si je fais la même chose avec le poste srvC (qui est en windows) cela ne fonctionne pas ...


est ce que le poste sous windows7 (srvC) a un serveur ident ? Je n'en sais rien (je connais mal le monde Windows et m'y intéresse peu)
mais je ne serais pas étonné si c'était le cas (pas de serveur ident sur Windows 7 par défaut).


Voir aussi http://www.postgresql.org/docs/9.1/stat … thods.html

#68 Re : Général » Procédure avec utilisation de WITH » 14/04/2012 09:42:15

Cette requête renvoi une vingtaine d'enregistrements. Je l’insère dans une procédure :

CREATE OR REPLACE FUNCTION test(OUT idauge integer)
  RETURNS SETOF record AS
...

il me semble qu'il y a une anomalie entre le fait de déclarer idauge comme paramètre de sortie
puis d'indiquer que la fonction retourne un SETOF record.


Le RETURNS ne devrait-il pas être RETURNS SETOF integer ?

#69 Re : Général » CHECK : Correspondance de motif d'une chaîne contenant un underscore » 05/04/2012 15:07:13

NicoFromIGN a écrit :

Bonjour,

Typiquement ma chaîne devra ressembler à 'toto_titi' où la présence de l'underscore est obligatoire.

Problème : l'underscore est utilisé dans Postgresql pour remplacer n'importe quel caractère lors de la définition du motif!

Utilisez le caractère d'échappement. Voir la documentation.

#70 Re : Installation » PostgreSQL 9.1.3 sur Mac OS X Lion et accès distant » 04/04/2012 18:20:00

unbewusst a écrit :
edlm a écrit :

L'IPV6 où se trouvent les bases étant fixe (freebox).

Le DNAT est il bien en place ? Port ouvert sur la freebox et redirigé sur le port qui est à l'écoute sur le serveur PostgreSQL ?


Ah purée, qu'elle andouille je fais, je n'ai pas redirigé 5432 sur 198.162.0.10

damned !

Bon, ça se complique un peu, j'ai deux serveurs psql l'un en 198.162.0.10 sous Mac OS X et un autre en 198.162.0.20 sous Xubuntu.

Il faudra que je change de port sur l'un des côtés.


Si le serveur PostgreSQL n'est destiné à servir que des clients qui sont sur le réseau local privé (192.168.0.0)
l'ouverture du port sur la Freebox et la redirection d'adresses ne sont non seulement pas nécessaires mais
inutilement risqués.

#71 Re : Installation » PostgreSQL 9.1.3 sur Mac OS X Lion et accès distant » 04/04/2012 17:06:19

L'IPV6 où se trouvent les bases étant fixe (freebox).

Le DNAT est il bien en place ? Port ouvert sur la freebox et redirigé sur le port qui est à l'écoute sur le serveur PostgreSQL ?

#72 Re : Général » copy ou \copy » 03/04/2012 11:15:05

Dans quel base êtes vous connecté ?  Sous psql que donne la commande \d ?

Si vous vous êtes connecté sous l'utilisateur postgres probable que vous soyez dans
la base postgres et non dans celle où vous supposez être.

#73 Re : Général » Aide sur requete » 30/03/2012 14:01:43

Eh bien voilà... désolé la requête que je tentais de faire passer était :


SELECT * FROM cas2 CROSS JOIN (SELECT max(depart), min(arrivee) FROM cas2) t(depart, arrivee) 
    WHERE cas2.depart <= t.depart AND cas2.arrivee >= t.arrivee;
 depart | arrivee | depart | arrivee
--------+---------+--------+---------
      5 |      50 |     20 |      30
     10 |      30 |     20 |      30
     20 |      40 |     20 |      30
(3 rows)

#74 Re : Général » Aide sur requete » 30/03/2012 13:58:35

Est ce que ca ne serait pas plutôt ca que cherche à faire cafu3:


SELECT * FROM cas2 CROSS JOIN (SELECT max(depart), min(arrivee) FROM cas2) t(depart, arrivee) WHERE cas2.depart <= t.depart AND cas2.arrivee >= t.arrivee;
 depart | arrivee | depart | arrivee
--------+---------+--------+---------
      5 |      50 |     20 |      30
     10 |      30 |     20 |      30
     20 |      40 |     20 |      30
(3 rows)

à savoir identifier les lignes de la requête qui ont une plage commune.


Au passage, rien à voir avec le thread, mais je me demandais si il existait une passerelle FluxBB <==> mail parce que j'avoue que j'ai un peu de mal là... ;-) Désolé si je me rate au niveau du formatage... j'essaierai de faire mieux la prochaine fois si c'est le cas.

Pied de page des forums

Propulsé par FluxBB