Re: Why cannot alter a column's type when it's used by a generated column
Chao Li <li.evan.chao@gmail.com>
From: Chao Li <li.evan.chao@gmail.com>
To: jian he <jian.universality@gmail.com>
Cc: Peter Eisentraut <peter@eisentraut.org>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2025-10-21T07:55:46Z
Lists: pgsql-hackers
> On Oct 21, 2025, at 15:30, jian he <jian.universality@gmail.com> wrote: > > +-- So, you can change a column's type as long as any dependent generated > +-- column already has a set expression defined: > +ALTER TABLE gtest27 > + ALTER COLUMN a TYPE float8, > + ALTER COLUMN x SET EXPRESSION AS ((a::int + b) * 2); > +\d gtest27 > + Table "generated_stored_tests.gtest27" > + Column | Type | Collation | Nullable | > Default > +--------+------------------+-----------+----------+--------------------------------------------------- > + a | double precision | | | > + b | bigint | | | > + x | bigint | | | generated always > as ((a::integer + b) * 2) stored > + > > the above output seems wrong? > one way to quickly test it is create table gtest27 again I don’t get what is wrong? Actually “make check” passed from my side: ``` % make check … 1..230 # All 230 tests passed. ``` Best regards, -- Chao Li (Evan) HighGo Software Co., Ltd. https://www.highgo.com/