Re: support ALTER COLUMN SET EXPRESSION over virtual generated column with check constraint
| От | Matheus Alcantara |
|---|---|
| Тема | Re: support ALTER COLUMN SET EXPRESSION over virtual generated column with check constraint |
| Дата | |
| Msg-id | bbdc8dfd-3f23-46bb-ab23-255b9e6c06ee@gmail.com обсуждение исходный текст |
| Ответ на | Re: support ALTER COLUMN SET EXPRESSION over virtual generated column with check constraint (jian he <jian.universality@gmail.com>) |
| Список | pgsql-hackers |
On 16/01/26 08:31, jian he wrote: > On Thu, Jan 15, 2026 at 11:29 PM Matheus Alcantara > <matheusssilv97@gmail.com> wrote: >> >> + /* >> + * Find everything that depends on the column (constraints, indexes, etc), >> + * and record enough information to let us recreate the objects after >> + * rewrite. >> + */ >> + RememberAllDependentForRebuilding(tab, AT_SetExpression, rel, attnum, colName); >> + >> Perhaps this comments should be updated since we are now collecting >> these dependencies for virtual generated columns too that it not require >> a table rewrite. >> >> --- > > I guess we can change it as: > > /* > * Find everything that depends on the column (constraints, indexes, etc), > * and record enough information to let us recreate the objects. > */ > RememberAllDependentForRebuilding(tab, AT_SetExpression, rel, > attnum, colName); > It looks good. >> >> I think that it would be good to update the SET EXPRESSION AS >> documentation on doc/src/sgml/ref/alter_table.sgml to mention that for >> virtual columns the table is not rewritten but a full table scan may >> still be needed if the column has check constraints. >> > > In doc/src/sgml/ref/alter_table.sgml, I intended to change it as follows: > > <varlistentry id="sql-altertable-desc-set-expression"> > <term><literal>SET EXPRESSION AS</literal></term> > <listitem> > <para> > This form replaces the expression of a generated column. Existing data > in a stored generated column is rewritten and all the future changes > will apply the new generation expression. > + Virtual generated columns do not require a table rewrite. > + However if the column is part of a <literal>CHECK</literal> constraint > + expression, the constraint will be rebuilt, requiring a table scan to > + ensure that existing rows meet the constraint. > </para> Sounds good. -- Matheus Alcantara EDB: https://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: