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

#1 Re : Général » Activation checksums sur postgresql 11 » 06/01/2021 13:00:28

Exactement… voire en profiter pour passer à PG 12 ou 13 ? smile (si c'est possible évidemment)

#2 Re : Général » Activation checksums sur postgresql 11 » 06/01/2021 12:57:58

Sur PG 11 c'est mort. La fonctionnalité n'existe qu'en PG 12 et +

#3 Re : Optimisation » Creation index sur colonne text » 05/12/2020 11:17:13

Et est-ce que vous cherchez toujours le même motif, ou bien des motifs qui changent ? (sait-on jamais)

#4 Re : Optimisation » Creation index sur colonne text » 05/12/2020 11:15:31

Bonjour, il va falloir plus de détails. Quel genre de like ? du genre  like '%toto%' ?

#5 Re : Général » [RESOLU] pgbackrest archive push trop lent » 04/12/2020 20:28:17

ah. oui, comme écrit dans la doc, "Asynchronous operation is more efficient because it can reuse connections and take advantage of parallelism". mettez déjà "archive-async=y" . il vous faudra certainement aussi définir un spool-path

#6 Re : Général » [RESOLU] pgbackrest archive push trop lent » 04/12/2020 20:20:29

Sans savoir ce qui bloque c'est impossible de répondre. Il faut savoir si c'est le réseau qui ne suit pas, ou si c'est la production d'archives.
Vous pouvez toujours augmenter le nombre de processus, ou bien utiliser un algorithme de compression plus rapide (mettre compress-type à zst ça peut être un bon point de départ)

#7 Re : PHP » Problème de lenteur avec st_intersection (novice) » 01/12/2020 13:12:46

Oui, il doit y avoir moyen, mais j'ai vraiment l'impression qu'il est rendondant avec les autres. Sinon vous pouvez le découper, à coup de st_intersection par exemple (avec votre grille ?), ou de st_subdivide ?

#8 Re : PHP » Problème de lenteur avec st_intersection (novice) » 01/12/2020 12:39:35

Les deux jeux de données sont très similaires… à un polygone près:

gis=# select id,st_npoints(geom) as np from occ_2018 order by np desc limit 5;
  id  |   np   
------+--------
 7685 | 955200
 7670 | 11054
 8998 | 2579
 4473 | 2055
 12198 | 1802

C'est cette géométrie (7685) qui fait tout tomber. De ce que je vois dans qgis, c'est l'ensemble des rues de Lyon, ce polygone. Ou un truc ressemblant. Dès qu'on le supprime, ça va mieux.

#9 Re : PHP » Problème de lenteur avec st_intersection (novice) » 01/12/2020 10:16:34

Il vaudrait mieux un dump de la base, histoire de pouvoir reproduire le problème... parce que là, on peut en faire un peu ce qu'on veut, des gpkg

#11 Re : Général » Comparaison taille table/colonne INTEGER ET VARCHAR » 26/06/2020 11:16:57

C'est normal. Il y a des "frais fixes" pour un enregistrement dans les bases de données. On a un entête de bloc de taille fixe, et un entête d'enregistrement, de taille fixe aussi. C'est bien détaillé ici: https://www.postgresql.org/docs/current … ayout.html

L'entête de bloc est souvent négligeable. L'entête d'enregistrement beaucoup moins… c'est 23 octets sous Postgres.

#12 Re : PL/pgSQL » Détecter différents formats de date » 19/06/2020 11:22:30

Vous avez certainement intérêt à utiliser du pattern matching, avec des expressions régulières par exemple: https://www.postgresql.org/docs/12/func … SIX-REGEXP

#13 Re : Sécurité » Droit refusé sur une vue » 08/06/2020 16:40:53

Ok. Un dernier piège… un utilisateur pourrait tenter, par la vue, de changer id_reseau ¸ res_noeud.type_noeud ou res_noeud.date_suppression IS NULL. Et donc faire "disparaître" des données de la vue. Il vaudrait probablement mieux se prémunir de ça dans la fonction PL (un contrôle sur les insert/update dès le départ je pense)

#14 Re : Sécurité » Droit refusé sur une vue » 08/06/2020 15:22:36

Non, ça doit le faire, il faut que l'utilisateur propriétaire de la fonction trigger soit autorisé à manipuler les tables en dessous, mais pas l'utliisateur qui travaille sur les vues. Lui devrait juste avoir des droits sur la vue. Ça ne marche pas ?

#16 Re : Sécurité » Droit refusé sur une vue » 08/06/2020 10:08:06

La raison pour se protéger du search_path, c'est que c'est une variable de session. Donc si vous ne la forcez pas dans la fonction, un utilisateur mal intentionné pourra remplacer son search_path et essayer d'exploiter les noms d'objets sans schéma dans votre fonction, avec les droits améliorés de la fonction, vu qu'elle est security definer.

#17 Re : Sécurité » Droit refusé sur une vue » 08/06/2020 10:06:56

C'est exactement ce que dit la doc. Quand on fait une fonction security definer, il faut mettre un search_path restrictif (idéalement, uniquement pg_catalog, si on veut vraiment être sûr), et préfixer tous les objets auxquels on accède par leur schéma pour être vraiment explicite. Vu que c'est déjà presque bon dans votre fonction (currval('res_noeud_id_noeud_seq'::regclass) par exemple ne précise pas le schéma, il faudra le corriger), il suffit de modifier l'entête de la fonction par :

CREATE OR REPLACE FUNCTION res_eau_vanne_vue_edit()
RETURNS trigger SECURITY DEFINER SET search_path= '' AS

ou quelque chose de très approchant.

Vous pouvez le mettre avant ou après le bloc AS, ça n'a aucune importance.

Une fois que vous aurez fait ça, la fonction s'exécutera en tant que son propriétaire, et non plus en tant que l'utilisateur appelant. Faites donc bien attention à ce qu'elle appartienne à un utilisateur (role) ayant accès aux objets en question en écriture.

Si l'utilisateur n'est pas bon, vous pouvez faire un ALTER FUNCTION ... OWNER TO.

Et il faudra peut-être faire un GRANT EXECUTE sur cette fonction aux utilisateurs ayant accès à la vue (par défaut ça devrait être bon).

#18 Re : Sécurité » Droit refusé sur une vue » 08/06/2020 09:38:30

Pour le search_path vous faites référence à la doc de security definer qui vous recommande de mettre un search_path en dur ?

#19 Re : Sécurité » Droit refusé sur une vue » 05/06/2020 17:51:35

Je pense que le paragraphe que vous tirez de la doc, c'est pour les vues qui ne nécessitent pas de trigger instead of. Le trigger, lui, il exécute la fonction en tant que la personne connectée. À mon avis, si vous définissez la fonction comme security definer, avec comme propriétaire grp_aep_admin, ça marchera, puisque la fonction s'exécutera en tant que grp_aep_admin

#20 Re : Général » pgBackRest - ERROR: [070] » 03/06/2020 17:16:53

ça sent le portage 1:1 d'Oracle, c'est une pratique habituelle, séparer les data et les index dans des schémas différents

#21 Re : Général » pgBackRest - ERROR: [070] » 03/06/2020 15:25:25

Le répertoire cible d'un tablespace ne devrait pas être dans le PGDATA. Sinon vous courrez le risque de le backuper deux fois, d'avoir le système de backup qui écrase les mauvais fichiers, etc… c'est pour ça que pgbackrest refuse de backuper. Mieux vaut vous alerter maintenant.

À moins que axidata soit un point de montage vers un autre filesystem, ce tablespace n'a aucun intérêt pour postgres de toutes façons, le but d'un tablespace sous postgres, c'est juste de pouvoir utiliser un système de fichiers différent (sur un type de stockage différent par exemple) pour certains objets. Donc deux possibilités pour résoudre votre problème:
- soit axidata est un point de montage. Dans ce cas là, arrêtez l'instance, remontez le ailleurs, qui ne soit pas un sous répertoire de /axihome/base2/postgresdata/, et mettez à jour le lien symbolique (techniquement le tablespace n'est qu'un lien symbolique) de 'pg_tblspc/16432 pour pointer vers la nouvelle destination
- soit c'est juste un répertoire. dans ce cas, il ne sert vraiment à rien, vous allez plus vous compliquer la vie qu'autre chose. ramenez les objets dans le tablespace par défaut, supprimez le tablespace. ça a un sens sous oracle par exemple, parce qu'il gère des datafiles, sous postgres ça ne sert à rien.

#22 Re : Général » Conversion d'une chaine numérique vers un type oid » 29/04/2020 08:25:15

ou même vous débarasser de to_number...

postgres=# select 123456::oid;
  oid   
--------
 123456
(1 row)

Si vraiment vous avez besoin de partir d'une chaîne, vous pouvez aussi vous contenter de ça, postgres va deviner tout seul quoi faire:

postgres=# select '123456'::oid;
  oid   
--------
 123456
(1 row)

Les types numeric ne sont pas castables en oid par contre.

#23 Re : Réplication » Erreur Pgpol-II » 07/04/2020 09:51:46

+1. Avec pgpool, ça ne marchera pas. On a déjà essayé smile

#24 Re : Réplication » Erreur Pgpol-II » 07/04/2020 09:27:05

Ça dépend du problème à résoudre. C'est le côté "couteau suisse" de pgpool. Vous l'avez installé pour résoudre quel problème ?

#25 Re : Réplication » Erreur Pgpol-II » 07/04/2020 08:17:59

Aucune idée de la cause de votre problème. Par contre, je peux vous donner un conseil: virez pgpool. C'est mauvais pour la haute dispo, la répartition de charge et la réplication. Entre les bugs et la perte de performance, il n'y a vraiment aucun cas d'utilisation valable. Quel que soit votre cas d'utilisation, il y a mieux que pgpool (à peu près tout ce que vous pourrez trouver).

Pied de page des forums

Propulsé par FluxBB