@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;


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

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

Войти через центр авторизации
Похожие вопросы
НПЦ «САПСАН» Москва
от 100 000 до 120 000 руб.
Acme Crypto Corp Нижний Новгород
от 100 000 до 150 000 руб.
18 марта 2019, в 18:27
150000 руб./за проект
14 марта 2019, в 12:47
800 руб./в час
18 марта 2019, в 17:18
10000 руб./за проект