why table.name is translated to (name.*)::name?

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема why table.name is translated to (name.*)::name?
Дата
Msg-id 162867791003300641h71e033d5n67d341c0aacf6ef7@mail.gmail.com
обсуждение исходный текст
Ответы Re: why table.name is translated to (name.*)::name?
Список pgsql-hackers
Hello,

I was noticed on little bit strange feature of PostgreSQL 8.4 and 9.0

we can use a non existing column "name". What does mean?


postgres=# create table h(a int, b int);
CREATE TABLE
Time: 2,604 ms
postgres=# insert into h values(199,22);
INSERT 0 1
Time: 0,970 ms
postgres=# explain verbose select h.name from h;                        QUERY PLAN
-------------------------------------------------------------Seq Scan on public.h  (cost=0.00..42.10 rows=2140
width=32) Output: (h.*)::name
 
(2 rows)

Time: 0,727 ms
postgres=# select h.name from h;  name
----------(199,22)
(1 row)

Time: 0,589 ms
postgres=#

Regards
Pavel Stehule


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Anindya Jyoti Roy
Дата:
Сообщение: Re: GSoC
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: Questions about 9.0 release note