Re: How do I insert and update into a table of arrays of composite types via a select command?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
Cc: Celia McInnis <celia(dot)mcinnis(at)gmail(dot)com>, "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: How do I insert and update into a table of arrays of composite types via a select command?
Date: 2017-10-25 21:25:20
Message-ID: 25479.1508966720@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

"David G. Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> writes:
> On Wed, Oct 25, 2017 at 2:16 PM, Celia McInnis <celia(dot)mcinnis(at)gmail(dot)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

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Celia McInnis 2017-10-25 21:33:53 Re: How do I insert and update into a table of arrays of composite types via a select command?
Previous Message David G. Johnston 2017-10-25 21:21:55 Re: How do I insert and update into a table of arrays of composite types via a select command?