Yes, thanks - that's nicer - I am now using:

insert into t_array select array[data_comp]::mytype[] from t_composite;



On Wed, Oct 25, 2017 at 5:25 PM, Tom Lane <t...@sss.pgh.pa.us> wrote:

> "David G. Johnston" <david.g.johns...@gmail.com> writes:
> > On Wed, Oct 25, 2017 at 2:16 PM, Celia McInnis <celia.mcin...@gmail.com>
> >> Got it, finally...
> >> insert into t_array select array[row((data_comp).*)::mytype[] from
> >> t_composite;
> >>
> >> I'm not sure why I need (data_comp).* rather than some of the other
> things
> >> that I tried and failed with...
>
> > ​The ​unusual set of parentheses are so the parser interprets data_comp
> is
> > a column and not a table. Usually one write SELECT tbl.* FROM tbl so that
> > is the assumed meaning of "name".*
>
> If data_comp is a column of a composite type, you probably don't need all
> that notation anyway --- seems like array[data_comp::my_type] or
> array[data_comp]::my_type[] ought to work.
>
>                         regards, tom lane
>

Reply via email to