Re: Show VIRTUAL keyword for virtual generated columns in pg_dump and psql

David G. Johnston <david.g.johnston@gmail.com>

From: "David G. Johnston" <david.g.johnston@gmail.com>
To: Lakshmi N <lakshmin.jhs@gmail.com>
Cc: "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>, "dean.a.rasheed@gmail.com" <dean.a.rasheed@gmail.com>, "peter@eisentraut.org" <peter@eisentraut.org>
Date: 2026-04-13T12:27:06Z
Lists: pgsql-hackers
On Monday, April 13, 2026, Lakshmi N <lakshmin.jhs@gmail.com> wrote:
>
> pg_dump and psql's \d currently display stored and virtual generated
> columns asymmetrically:
>

>
>     s_total integer GENERATED ALWAYS AS ((a + b)) STORED
>     v_total integer GENERATED ALWAYS AS ((a + b))
>
> Since VIRTUAL is default most likely this was omitted but with this
>
puts the burden on the reader to identify whether it is STORED or
> VIRTUAL since both kinds coexist in v19.
>

The output follows existing conventions of not printing extraneous text.
Additionally, storage itself is non-standard so the absence of a modifier
is producing standard-compliant output.  I would -1 changing pg_dump on
this basis.  I’d be inclined to go with the symmetry/readability argument
for psql \d though.

David J.