Как сформулировать массив литерала композитного типа, содержащего массивы?

У меня есть композитный тип, как

CREATE TYPE example AS (id integer, some_stuff integer[]);

, я могу использовать массив этого типа в качестве аргумента функции. Единственная проблема в том, что я не смог найти способ построить литературу массива для этого ... если я попробую получить его из PostgreSQL:

WITH elements AS (
    SELECT (12, '{1,2}')::example AS e UNION 
    SELECT (3, '{3,1}')::example 
)
SELECT array_agg(e) FROM elements;

Я получаю следующее:

{"(3,\"{3,1}\")","(12,\"{1,2}\")"}

Но посмотрите:

SELECT E'{"(3,\"{3,1}\")","(12,\"{1,2}\")"}'::example[];

ERROR:  malformed array literal: "{"(3,"{3,1}")","(12,"{1,2}")"}"
LINE 1: select E'{"(3,\"{3,1}\")","(12,\"{1,2}\")"}'::example[]

Есть ли способ сделать это?

9
задан dezso 9 September 2011 в 14:51
поделиться