Я пытаюсь установить ubuntuone на сервер ubuntu 15.04, и кажется, что есть несколько вещей, которые больше не работают.Функция 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"
Я понимаю ошибку, но я не знаю, как она возвращается логическое значение. Я выполнил тот же запрос вручную и по-прежнему получаю ту же ошибку. Обратите внимание, что я не слишком хорошо знаком с postgres, поэтому, пожалуйста, детализируйте.
Какая часть запроса возвращает bool? или это правильный запрос?
Обратите внимание на приложение было написано для PostgreSQL-9.1, но я бегу 9.4
Спасибо большое, теперь я, наконец, ясно понять проблему. Я добавлю ваш ответ на фиксацию bugfix. – Ibu
Вид был изменен в версиях 9.2 и 9.3. См. Его [в документации v.9.4] (https://www.postgresql.org/docs/9.4/static/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW) – klin