私はubuntuサーバー15.04にubuntuoneをインストールしようとしていますが、もう動作しないいくつかのものがあるようです。Postgres関数が間違ったデータ型を返しています
私が持っている主な問題は、失敗しているクエリです。ここではそれがどのように見えるかです:
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;
$$;
私はそれを実行すると、私はこのエラーを取得:
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"
私はエラーを理解し、私はそれがブール値を返しているのか分かりません。同じクエリを手動で実行しても、同じエラーが発生します。私はポストグルにあまり慣れていないので注意してください。
boolを返すクエリの部分は何ですか?またはクエリがまったく正しいですか?
注アプリケーションは、PostgreSQLの-9.1のために書かれましたが、私はあなたがpg_stat_activity
のレイアウトと互換性のある行を返すされていない9.4
はどうもありがとう、今私は最終的に、問題を明確に理解しています。あなたの応答をバグ修正コミットに追加します。 – Ibu
バージョン9.2および9.3でビューが変更されました。 [ドキュメントv.9.4](https://www.postgresql.org/docs/9.4/static/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW)を参照してください。 – klin