| From: | Philip Semanchuk <philip(at)americanefficient(dot)com> | 
|---|---|
| To: | Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at> | 
| Cc: | PostgreSQL General <pgsql-general(at)lists(dot)postgresql(dot)org> | 
| Subject: | Re: ALTER COLUMN to change GENERATED ALWAYS AS expression? | 
| Date: | 2023-02-07 14:09:12 | 
| Message-ID: | B728C50A-9EF1-4E13-82D8-B6CEAFC51B1F@americanefficient.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
> On Feb 7, 2023, at 3:30 AM, Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at> wrote:
> 
> On Mon, 2023-02-06 at 12:04 -0500, Philip Semanchuk wrote:
>> I have a column defined GENERATED ALWAYS AS {my_expression} STORED. I’d like to change the
>> {my_expression} part. After reading the documentation for ALTER TABLE
>> (https://www.postgresql.org/docs/current/sql-altertable.html) and trying a few things that
>> resulted in syntax errors, there doesn’t seem to be a way to alter the column’s GENERATED
>> expression in place. It seems like my only option is to drop and re-add the column.
>> Is that correct?
> 
> I think that is correct.  But changing the expression would mean rewriting the column
> anyway.  The only downside is that a dropped column remains in the table, and no even
> a VACUUM (FULL) will get rid of it.
Thanks for the confirmation. I hadn’t realized that the column would remain in the table even after a DROP + VACUUM FULL. I’m curious — its presence as a deleted column doesn't affect performance in any meaningful way, does it?
In this case we have the option of dropping and re-creating the table entirely, and that's probably what I'll do.
Cheers
Philip
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Laurenz Albe | 2023-02-07 14:34:23 | Re: PostgreSQL | 
| Previous Message | Giovanni Biscontini | 2023-02-07 13:19:49 | Re: PostgreSQL |