Имеется вот такой код (под сполером), состоящий из двух функций, возвращающих JSON
Одна функция возвращает массив, преобразованный в JSON, а вторая использует его в качестве объекта в другом JSON
spoiler
create or replace function sheduller.get_duty (worship_id sheduller.worship.id%type) returns json as $$
declare
d_ret json;
begin
select array_to_json(array_agg(row_to_json(row_duty))) into d_ret from
(select * from sheduller.duty duty where duty.id = worship_id) row_duty;
return d_ret;
end;
$$
language plpgsql security invoker;
create or replace function sheduller.get_sheduler_day (dday date) returns json as $$
declare
d_ret json;
begin
select array_to_json(array_agg(row_to_json(row_worship))) into d_ret from
(select worship.* , sheduller.get_duty(worship.id) as duty from sheduller.worship worship where worship.day = dday) row_worship;
return d_ret;
end;
$$
language plpgsql security invoker;
Этот код работает, но наверняка можно сделать тоже самое, но одной функцией. Может кто-то подсказать, как?