PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Processus d'exécution des fonctions Postgresql

Pour des raisons de sécurité, pg_dump (ou pg_restore) émet une commande qui vide le search_path, donc quand vous restaurez le processus s'exécute avec un chemin de recherche vide. Mais il ne modifie pas du tout le corps du texte de votre fonction mais l'émet tel quel, il ne peut donc pas le modifier pour spécifier le nom complet de la table. Ainsi, la fonction ne peut pas trouver la table lorsqu'elle est exécutée dans le processus effectuant la restauration.

Vous pouvez entièrement qualifier le nom de la table dans la fonction, ou vous pouvez définir la fonction avec SET search_path = public . Ou vous pouvez modifier le fichier de vidage pour supprimer la partie qui efface le search_path, si vous n'êtes pas préoccupé par les implications en matière de sécurité.