wir haben eine Software die Probleme mit zweistelligen Postgres Versionsnummern hat.
Gibt es eine Möglichkeit den Rückgabewert von “select version()” zu ändern
Ich hatte probiert eine Funktion mit dem Namen anzulegen, das klappt auch ohne
Fehlermeldung aber die Ausgabe ändert sich nicht.
Als Notlösung habe ich jetzt binär in der Software das version() durch versino()
ersetzt und versino als Funktion angelegt.
Alternativ könnte man die Postgres patchen und selbst compilieren.
Das ist aber beides unschön.
Eigentlich würde ich dazu raten, den Bug in der Software zu fixen.
Wenn Du eine neue Funktion mit demselben Namen anlegst, wird dennoch zuerst in den internen Schemen gesucht. Wenn Du in der Software den Funktionsnamen ändern kannst, kannst Du sicherlich auch das Schema angeben, wo diese Funktion definiert ist.
edb=*# create or replace function version() returns text as $$begin return 'Hellor world'; end;$$ language plpgsql;
CREATE FUNCTION
edb=*# select version();
version
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 13.3 (EnterpriseDB Advanced Server 13.3.7 (Ubuntu 13.3.7-1+ubuntu4)) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0, 64-bit
(1 row)
edb=*# select public.version();
version
--------------
Hellor world
(1 row)
edb=*#