PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Gibt es eine Möglichkeit, die Funktionsüberladung in Postgres zu deaktivieren

Erwin hat eine korrekte Antwort gesendet. Meine nächste Antwort bezieht sich auf die Möglichkeit, das Überladen zu deaktivieren.

Es ist nicht möglich, das Überladen zu deaktivieren – dies ist eine Basisfunktion des PostgreSQL-Funktions-API-Systems – und kann nicht deaktiviert werden. Wir wissen, dass es einige Nebenwirkungen gibt, wie z. B. eine starke Starrheit der Funktionssignatur - aber es schützt vor einigen unangenehmen Nebenwirkungen, wenn die Funktion in Ansichten, Tabellendefinitionen usw. verwendet wird. Sie können sie also nicht deaktivieren.

Sie können einfach überprüfen, ob Sie überladene Funktionen haben oder nicht:

postgres=# select count(*), proname 
               from pg_proc 
              where pronamespace <> 11 
              group by proname 
              having count(*) > 1;
 count | proname 
-------+---------
(0 rows)