Re: query ... returned 4 columns

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Sorin Schwimmer <sxn02(at)yahoo(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: query ... returned 4 columns
Date: 2007-03-10 05:42:46
Message-ID: 7942.1173505366@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Sorin Schwimmer <sxn02(at)yahoo(dot)com> writes:
> Having the same structure, I put
> INSERT INTO archive.expected_stuff VALUES(o);
> but it doesn't work. Instead, I had to rewrite as
> INSERT ... VALUES (o.source,o.warehouse...);

Of course. The former command implies that you are inserting a
composite value into a single composite-type column of expected_stuff,
which you are not.

The right way to express this IMHO is
INSERT INTO archive.expected_stuff VALUES(o.*);
which should expand into the longhand notation "o.source,o.warehouse..."
in the same way that "SELECT o.* FROM ..." would do. This does actually
work in 8.2 (and maybe 8.1, I forget). In older releases you gotta
write it out longhand :-(

regards, tom lane

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2007-03-10 06:01:27 Re: Moving from 32 to 64 bit builds on Solaris
Previous Message Tom Lane 2007-03-10 05:37:08 Re: Is This A Set Based Solution?