Re: pg_dump insert column GENERATED

Дмитрий Иванов <firstdismay@gmail.com>

From: Дмитрий Иванов <firstdismay@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Adrian Klaver <adrian.klaver@aklaver.com>, pgsql-general <pgsql-general@lists.postgresql.org>
Date: 2021-11-22T15:12:11Z
Lists: pgsql-general
Рад помочь!
--
С уважением, Дмитрий!


пн, 22 нояб. 2021 г. в 19:55, Tom Lane <tgl@sss.pgh.pa.us>:

> =?UTF-8?B?0JTQvNC40YLRgNC40Lkg0JjQstCw0L3QvtCy?= <firstdismay@gmail.com>
> writes:
> > Uchet=# select attname, attgenerated from pg_attribute
> > Uchet-# where attrelid = 'bpd.object'::regclass and attnum > 0;
> >             attname            | attgenerated
> > -------------------------------+--------------
> >  id                            |
> >  id_class                      |
> >  id_position                   |
> >  ........pg.dropped.4........  |
> >  ........pg.dropped.5........  |
> >  ........pg.dropped.6........  |
> >  bquantity                     |
> >  ........pg.dropped.8........  |
> >  ........pg.dropped.9........  |
> >  id_position_root              |
> >  id_conception                 |
> >  barcode_unit                  |
> >  id_unit_conversion_rule       |
> >  ........pg.dropped.14........ |
> >  timestamp                     |
> >  on_freeze                     |
> >  timestamp_class               |
> >  name                          |
> >  id_class_root                 |
> >  id_group                      |
> >  id_group_root                 |
> >  id_object_carrier             |
> >  desc                          |
> >  ........pg.dropped.24........ |
> >  ........pg.dropped.25........ |
> >  ........pg.dropped.26........ |
> >  id_class_prop_object_carrier  |
> >  id_pos_temp_prop              |
> >  ........pg.dropped.29........ |
> >  mc                            |
> >  is_inside                     | s
>
> Hah ... that gave me the clue I needed.  If there are dropped
> column(s) before the GENERATED one, pg_dump gets it wrong ---
> but only in --inserts mode, not the default COPY mode, which
> no doubt explains why nobody noticed.  There is code in there
> to inject DEFAULT, but it must be indexing the flag array wrong.
>
> Will fix, thanks for the report!
>
>                         regards, tom lane
>

Commits

  1. Fix pg_dump --inserts mode for generated columns with dropped columns.