Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Un fournisseur me demande un compte postgreSQL avec le rôle SUPERUSER, car son application créé les objets ci-dessous :
CREATE FUNCTION pg_catalog.text(integer) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textin(int4out($1));';
CREATE CAST (integer AS text) WITH FUNCTION pg_catalog.text(integer) AS IMPLICIT;
CREATE FUNCTION pg_catalog.text(numeric) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textin(numeric_out($1));';
CREATE CAST (numeric AS text) WITH FUNCTION pg_catalog.text(numeric) AS IMPLICIT;
Je ne comprends pas pourquoi il a besoin de créer des objets dans le schéma pg_catalog, ni à quoi servent ces fonctions.
Est-ce une bonne pratique de réaliser ces opérations ? Ces objets peuvent-ils poser problème en cas de mise à jour de la version de POstgreSQL ?
Y a t'il moyen de les exécuter avec des privilèges moindre que SUPERUSER ? Y a t'il un autre moyen de répondre à leur problématique sans toucher au schéma pg_catalog ?
D'avance merci pour vos réponses.
Hors ligne
Bonjour,
Ces requêtes permettent d'avoir un transtypage automatique entre les types integer/numeric et text.
Il s'agit d'une extrêmement mauvaise idée. Cela conduira à peu près certainement a des dysfonctionnement divers (requête erronnées qui fonctionnent quand même, très mauvaises performances...).
Y a t'il un autre moyen de répondre à leur problématique sans toucher au schéma pg_catalog ?
Oui, ils peuvent corriger leur applicatif et gérer correctement les types. Il y a une bonne raison pour que ces transtypage n'existent pas par défaut.
Julien.
https://rjuju.github.io/
Hors ligne
Pages : 1