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).

#1 03/07/2023 10:51:54

laurence
Membre

création d'une fonction pg_catalog.text

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

#2 03/07/2023 11:17:22

rjuju
Administrateur

Re : création d'une fonction pg_catalog.text

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.

Hors ligne

Pied de page des forums