@mike-kon
осваиваю новые (для себя) технологии

Как можно на ProgreSQL ограничиться одной функцией при формировании JSON?

Имеется вот такой код (под сполером), состоящий из двух функций, возвращающих 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;


Этот код работает, но наверняка можно сделать тоже самое, но одной функцией. Может кто-то подсказать, как?
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ответы на вопрос 1
Melkij
@Melkij
PostgreSQL DBA
json_agg есть нативный, если я верно понял о чём вы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы