Re: unintuitive subquery record wrapping
| От | Arjen Nienhuis |
|---|---|
| Тема | Re: unintuitive subquery record wrapping |
| Дата | |
| Msg-id | AANLkTinrO27iFse+w+ma9kOixXO4ayTDNbMj96V-8rxq@mail.gmail.com обсуждение исходный текст |
| Ответ на | Re: unintuitive subquery record wrapping (Rikard Pavelic <rikard.pavelic@zg.htnet.hr>) |
| Список | pgsql-general |
On Sat, Sep 18, 2010 at 12:40 PM, Rikard Pavelic <rikard.pavelic@zg.htnet.hr> 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;
В списке pgsql-general по дате отправления: