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


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

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

Войти через TM ID
Похожие вопросы
Acme Crypto Corp Нижний Новгород
от 80 000 до 140 000 руб.
BTlabs Москва
от 60 000 руб.
Acme Crypto Corp Нижний Новгород
от 150 000 до 250 000 руб.
20 янв. 2019, в 00:12
16000 руб./за проект
19 янв. 2019, в 23:33
110000 руб./за проект