Ich versuche, Ubuntuone auf einem Ubuntu-Server 15.04 zu installieren und es scheint, dass es ein paar Dinge gibt, die nicht mehr funktionieren.Postgres-Funktion gibt falschen Datentyp zurück
Das Hauptproblem, das ich habe, ist eine Abfrage, die fehlschlägt. Hier ist, wie es aussieht:
CREATE FUNCTION activity() RETURNS SETOF pg_stat_activity
LANGUAGE sql SECURITY DEFINER
SET search_path TO public
AS $$
SELECT
datid, datname, pid, usesysid, usename,
application_name, client_addr, client_hostname, client_port,
backend_start, xact_start, query_start, waiting,
CASE
WHEN query LIKE '<IDLE>%'
OR query LIKE 'autovacuum:%'
THEN query
ELSE
'<HIDDEN>'
END AS current_query
FROM pg_catalog.pg_stat_activity;
$$;
Wenn ich es laufen bekomme ich diesen Fehler:
ERROR: return type mismatch in function declared to return pg_stat_activity
DETAIL: Final statement returns boolean instead of timestamp with time zone at column 13.
CONTEXT: SQL function "activity"
Ich verstehe den Fehler, aber ich weiß nicht, wie es ein Bool zurückkehrt. Ich habe dieselbe Abfrage manuell ausgeführt und bekomme immer noch denselben Fehler. Beachten Sie, dass ich mit Postgres nicht so vertraut bin, also seien Sie bitte ausführlich.
Welcher Teil der Abfrage gibt einen Bool zurück? oder ist die Anfrage überhaupt korrekt?
Hinweis wurde der Antrag auf postgresql-9.1 geschrieben, aber ich bin mit 9.4
Thank you so viel, jetzt endlich verstehe ich das Problem offenbar. Ich werde deine Antwort dem Bugfix-Commit hinzufügen. – Ibu
Die Ansicht wurde in den Versionen 9.2 und 9.3 geändert. Siehe [in der Dokumentation v.9.4] (https://www.postgresql.org/docs/9.4/static/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW) – klin