Re: support ALTER COLUMN SET EXPRESSION over virtual generated column with check constraint
jian he <jian.universality@gmail.com>
From: jian he <jian.universality@gmail.com>
To: Matheus Alcantara <matheusssilv97@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-01-19T16:11:48Z
Lists: pgsql-hackers
Attachments
- v4-0001-Allow-ALTER-COLUMN-SET-EXPRESSION-on-virtual-columns-with-CHECK-c.patch (text/x-patch) patch v4-0001
On Sat, Jan 17, 2026 at 12:07 AM Matheus Alcantara <matheusssilv97@gmail.com> wrote: > > > > > <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. > hi. I ultimately settled on the following: + Replacing the expression of a 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. -- jian https://www.enterprisedb.com
Commits
-
Allow ALTER COLUMN SET EXPRESSION on virtual columns with CHECK constraints
- f80bedd52b15 19 (unreleased) landed