Я бы хотел, чтобы PostgreSQL возвращал результат запроса как один массив JSON. Учитывая,
create table t (a int primary key, b text);
insert into t values (1, 'value1');
insert into t values (2, 'value2');
insert into t values (3, 'value3');
Мне хотелось бы что-то похожее на
[{"a":1,"b":"value1"},{"a":2,"b":"value2"},{"a":3,"b":"value3"}]
или
{"a":[1,2,3], "b":["value1","value2","value3"]}
(на самом деле было бы более полезно знать оба). Я пробовал некоторые вещи вроде
select row_to_json(row) from (select * from t) row;
select array_agg(row) from (select * from t) row;
select array_to_string(array_agg(row), '') from (select * from t) row;
И я чувствую, что я рядом, но на самом деле не так. Должен ли я искать другую документацию, кроме 9.15. Функции и операторы JSON?
Кстати, я не уверен в своей идее. Это обычное дизайнерское решение? Мое мышление состоит в том, что я мог бы, конечно, взять результат (например) из первого из указанных выше трех запросов и немного манипулировать им в приложении перед его обслуживанием клиенту, но если PostgreSQL может напрямую создать конечный объект JSON, это было бы проще, потому что я все еще не включал никакой зависимости от какой-либо библиотеки JSON в своем приложении.