Есть ли какой-либо документ, описывающий формат кортежа, который придерживается сервер PostgreSQL? Официальная документация выглядит тайной об этом.
Один кортеж кажется достаточно простым, чтобы понять, но когда дело доходит до массивов кортежей, массивов составных кортежей и, наконец, вложенных массивов составных кортежей, невозможно быть уверенным в этом формате, просто взглянув на вывод.
Я прошу об этом после моей первоначальной попытки реализовать pg-tuple анализатор, который до сих пор отсутствует, чтобы иметь возможность анализировать кортежи PostgreSQL в Node. JS
<сильные > Примеры
create type type_A as (
a int,
b text
);
- с простым текстом:
(1,hello)
- со сложным текстом:
(1,"hello world!")
create type type_B as (
c type_A,
d type_A[]
);
-
массив простых значений:
{"(2,two)","(3,three)"}
-
для
type_B[]
мы можем получить:
{"(\"(7,inner)\",\"{\"\"(88,eight-1)\"\",\"\"(99,nine-2)\"\"}\")","(\"(77,inner)\",\"{\"\"(888,eight-3)\"\",\"\"(999,nine-4)\"\"}\")"}
Он становится еще более сложным для многомерных массивов составных типов.
UPDATE
Поскольку кажется, что вообще нет спецификации, Я начал работать над обращением его. Не уверен, что это можно сделать полностью, потому что из некоторых исходных примеров часто неясно, какие правила форматирования применяются.