Re: BUG #5644: Selecting ROW() in variable with 9.0 not compatible with 8.4

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Valentine Gogichashvili <valgog(at)gmail(dot)com>, pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #5644: Selecting ROW() in variable with 9.0 not compatible with 8.4
Date: 2010-09-17 01:31:55
Message-ID: AANLkTimEw00mMBawUovRRaRrjLnStjreZJ=u5fiE7qWE@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Thu, Sep 16, 2010 at 9:30 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Robert Haas <robertmhaas(at)gmail(dot)com> writes:
>> On Wed, Sep 8, 2010 at 11:42 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>>>>  SELECT ROW(10, 'a') INTO b.b2; -- ok in 8.4 but fails in 9.0 [ERROR:
>>>>  invalid input syntax for integer: "(10,a)"]
>
>>>>  SELECT 100, 'a' INTO b.b2;   -- ok in 9.0 but fails in 8.4 [ERROR:  cannot assign non-composite value to a row variable]
>
>> If we know the types of everything, is it possible to make both cases work?
>
> We don't know the types of everything at the point where the decision
> needs to be made.  Even if we did, allowing both would be a klugy
> unmaintainable mess IMO --- far more work than it's worth.

Bummer. Maybe we should have more-different syntax for the two cases
then. I've been bitten by this quite a few times over the years.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Andrew Dunstan 2010-09-17 02:00:26 Re: [BUGS] BUG #5305: Postgres service stops when closing Windows session
Previous Message Tom Lane 2010-09-17 01:30:36 Re: BUG #5644: Selecting ROW() in variable with 9.0 not compatible with 8.4