Adding Peter and Dean based on the recent commit history for generated columns.
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 attached patch adds the VIRTUAL keyword to the output of both pg_dump and psql \d, so the display becomes:
s_total integer GENERATED ALWAYS AS ((a + b)) STORED v_total integer GENERATED ALWAYS AS ((a + b)) VIRTUAL
The fix is three one-line changes:
- src/bin/pg_dump/pg_dump.c: append " VIRTUAL" instead of bare ")" - src/bin/psql/describe.c: same for \d display - src/bin/pg_dump/t/002_pg_dump.pl: update TAP test regex
The parser already accepts the VIRTUAL keyword, so pg_dump output round-trips correctly (dump -> restore -> \d shows identical schema). I verified this with a CTAS + dump + restore cycle.