Re: Insert/select union bug

From: Peter <peter(at)greatnowhere(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Insert/select union bug
Date: 2006-09-27 10:05:56
Message-ID: 451A4D04.5040403@greatnowhere.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Martijn van Oosterhout wrote:
> On Wed, Sep 27, 2006 at 12:14:44PM +0300, Peter wrote:
>
>> create table temp(a timestamptz);
>>
>> insert into temp(a) select NULL; /* this passes */
>>
>> insert into temp(a) select NULL union select NULL; /* fails:
>> ERROR: column "a" is of type timestamp with time zone but expression is
>> of type text
>> */
>>
>
> Perhaps you could indicate in the subselects the type? For example:
>
> insert into temp(a) select NULL::timestamptz union select NULL;
>
> I think as long as the first has the right type, you're set.
>
> BTW, UNION ALL is probably more efficient.
>
> Have a nice day,
>

UNION ALL would probably be quicker still, you're right.

Typecast eliminates the issue, you're right on that as well. However, my
problem is that those statements are dynamically generated on various
tables/columns, so typecasting would mean extracting target field type
and translating fieldtype code into SQL typename. Rather messy.

Peter

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message jef peeraer 2006-09-27 10:16:46 pl/pgsql NEW variable substitution
Previous Message Martijn van Oosterhout 2006-09-27 09:57:54 Re: Insert/select union bug