Search Postgresql Archives

Re: unintuitive subquery record wrapping

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Sep 18, 2010 at 12:40 PM, Rikard Pavelic
<rikard.pavelic@xxxxxxxxxxx> wrote:
> On 18.9.2010 11:36, Arjen Nienhuis wrote:
>> I'm not sure what you want but maybe it's this:
>>
>>
>> => select * from (select t from t) sq;
>>    t
>> -------
>>  (1,x)
>> (1 row)
>>
>> => select (sq.t).* from (select t from t) sq;
>>  a | b
>> ---+---
>>  1 | x
>> (1 row)
>>
>>
>
> I know how to expand record to type or set by hand. That's not the issue.
> I'm just trying to understand if changing type of record when alias is
> different is intentional decision or unintentional.
> Because, if it's unintentional, I would like it to get fixed
> (I guess I'll have to take a look at the code if nobody answers me).
>
> I don't see any benefit in loosing type info because variable alias
> don't match.

It's not the alias. Subqueries are typed as "record". I think thats
because there is little difference between these:

(SELECT * FROM t)
(SELECT a, b FROM t)
(SELECT a + 1, b FROM t)
(SELECT 1, b FROM t)

Which of these should have type "t"?

You need to do this:

SELECT x FROM t x;

-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux