Re: [HACKERS] "SELECT *" vs hidden columns and logical column order

Поиск
Список
Период
Сортировка
От Robert Haas
Тема Re: [HACKERS] "SELECT *" vs hidden columns and logical column order
Дата
Msg-id CA+TgmoYQ8YBAGqo_e=HgV27qbCa=Eo6f-XxLEWh90cMQY6GDNA@mail.gmail.com
обсуждение исходный текст
Ответ на [HACKERS] "SELECT *" vs hidden columns and logical column order  (Thomas Munro <thomas.munro@enterprisedb.com>)
Список pgsql-hackers
On Wed, Jun 28, 2017 at 11:52 PM, Thomas Munro
<thomas.munro@enterprisedb.com> wrote:
> I am aware of at three potential projects that would change the
> meaning of "SELECT *":
>
> 1.  Incremental MATERIALIZED VIEW maintenance probably needs to be
> able to use a hidden counter column which you can ask for by name but
> will otherwise not show up to users:
>
> https://www.postgresql.org/message-id/1371480075.55528.YahooMailNeo@web162901.mail.bf1.yahoo.com
>
> 2.  SQL:2011 temporal tables track system time and/or valid time with
> columns that users create and then declare to be temporal control
> columns.  I don't think they show up unless you name them directly (I
> didn't check the standard but I noticed that it's that way in another
> product), so I guess that's basically the same as (1).
>
> 3.  Logical column order aka ALTER COLUMN POSITION, a recurring topic
> on pgsql-hackers for which patches have been written but nothing has
> so far managed to stick:
>
> https://www.postgresql.org/message-id/flat/20141209174146.GP1768%40alvh.no-ip.org
>
> Suppose someone wanted to chip away at a small piece of incremental
> matviews by inventing a way to declare 'hidden' columns: is there
> really a dependency here as implied in the 2013 email above?  Is
> anyone planning to revive logical column order?

If someone were planning to revive logical column order, adding say a
column attdisplaypos which controlled how an asterisk in the target
list is expanded, then it would seem to make sense to use
attdisplaypos = 0, say, to mean "don't *-expand this column at all".

Of course, somebody could also propose to add attisdisplayed as a
Boolean column and refactor all the code that currently uses attnum
for that purpose to rely on attisdisplayed instead.  That code would
then presumably get refactored again if attdisplaypos ever showed up,
but probably the second refactoring would be pretty easy.  The really
hard part here is probably finding all of the places that are relying
on attnum < 0 as a proxy for whether the column should be displayed.

BTW, if we get either of these things, can I vote for, as a follow-on
patch, changing OID columns to be displayed by default, at least in
system catalogs?  I don't think that having the primary keys of our
system catalogs as a hidden column is particularly user-friendly.

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



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

Предыдущее
От: Pavel Stehule
Дата:
Сообщение: Re: [HACKERS] Parallel COPY FROM execution
Следующее
От: Robert Haas
Дата:
Сообщение: Re: [HACKERS] Small comment fix in partition.c