> On Mar 3, 2024, at 11:06, yudhi s <learnerdatabas...@gmail.com> wrote:
> as the column addition using the traditional "Alter table" command in 
> postgres looks to be a full table rewrite

That's not always (or, really, usually) true.  Adding a new column in any 
recent version of PostgreSQL just alters the system catalogs; it does not 
rewrite the table.  Make sure the new column is either NULL-able, or has a 
simple DEFAULT expression (specifically, not using a VOLATILE function).  Per 
the documentation:

> When a column is added with ADD COLUMN and a non-volatile DEFAULT is 
> specified, the default is evaluated at the time of the statement and the 
> result stored in the table's metadata. That value will be used for the column 
> for all existing rows. If no DEFAULT is specified, NULL is used. In neither 
> case is a rewrite of the table required.
> 
> Adding a column with a volatile DEFAULT or changing the type of an existing 
> column will require the entire table and its indexes to be rewritten.

https://www.postgresql.org/docs/current/sql-altertable.html

Reply via email to